Changes : ps
This commit is contained in:
parent
fcb68c7b24
commit
992e8d5375
282
ng6-seed/package-lock.json
generated
282
ng6-seed/package-lock.json
generated
@ -903,6 +903,15 @@
|
|||||||
"acorn": "^5.0.0"
|
"acorn": "^5.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"adler-32": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz",
|
||||||
|
"integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=",
|
||||||
|
"requires": {
|
||||||
|
"exit-on-epipe": "~1.0.1",
|
||||||
|
"printj": "~1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"adm-zip": {
|
"adm-zip": {
|
||||||
"version": "0.4.11",
|
"version": "0.4.11",
|
||||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz",
|
||||||
@ -1963,6 +1972,17 @@
|
|||||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
|
||||||
},
|
},
|
||||||
|
"cfb": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cfb/-/cfb-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-ZqfxNGWTMKhd0a/n6YKJLq8hWbd5kR3cA4kXwUj9vVEdHlwJ09werR8gN15Z7Y1FTXqdD6dE3GGCxv4uc28raA==",
|
||||||
|
"requires": {
|
||||||
|
"adler-32": "~1.2.0",
|
||||||
|
"commander": "^2.16.0",
|
||||||
|
"crc-32": "~1.2.0",
|
||||||
|
"printj": "~1.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"chalk": {
|
"chalk": {
|
||||||
"version": "2.2.2",
|
"version": "2.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz",
|
||||||
@ -2157,6 +2177,22 @@
|
|||||||
"sprintf-js": "^1.0.3"
|
"sprintf-js": "^1.0.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"codepage": {
|
||||||
|
"version": "1.14.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz",
|
||||||
|
"integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=",
|
||||||
|
"requires": {
|
||||||
|
"commander": "~2.14.1",
|
||||||
|
"exit-on-epipe": "~1.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"commander": {
|
||||||
|
"version": "2.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
|
||||||
|
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"collection-visit": {
|
"collection-visit": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
||||||
@ -2443,6 +2479,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"crc-32": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
|
||||||
|
"requires": {
|
||||||
|
"exit-on-epipe": "~1.0.1",
|
||||||
|
"printj": "~1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"create-ecdh": {
|
"create-ecdh": {
|
||||||
"version": "4.0.3",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
|
||||||
@ -3709,6 +3754,11 @@
|
|||||||
"integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
|
"integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"exit-on-epipe": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
|
||||||
|
},
|
||||||
"expand-braces": {
|
"expand-braces": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
|
||||||
@ -4222,6 +4272,11 @@
|
|||||||
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
|
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"frac": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
|
||||||
|
},
|
||||||
"fragment-cache": {
|
"fragment-cache": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
||||||
@ -4293,8 +4348,7 @@
|
|||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"aproba": {
|
"aproba": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@ -4308,23 +4362,21 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"delegates": "1.0.0",
|
"delegates": "^1.0.0",
|
||||||
"readable-stream": "2.3.6"
|
"readable-stream": "^2.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -4337,20 +4389,17 @@
|
|||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"console-control-strings": {
|
"console-control-strings": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"core-util-is": {
|
"core-util-is": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@ -4391,7 +4440,7 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minipass": "2.2.4"
|
"minipass": "^2.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fs.realpath": {
|
"fs.realpath": {
|
||||||
@ -4406,14 +4455,14 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"aproba": "1.2.0",
|
"aproba": "^1.0.3",
|
||||||
"console-control-strings": "1.1.0",
|
"console-control-strings": "^1.0.0",
|
||||||
"has-unicode": "2.0.1",
|
"has-unicode": "^2.0.0",
|
||||||
"object-assign": "4.1.1",
|
"object-assign": "^4.1.0",
|
||||||
"signal-exit": "3.0.2",
|
"signal-exit": "^3.0.0",
|
||||||
"string-width": "1.0.2",
|
"string-width": "^1.0.1",
|
||||||
"strip-ansi": "3.0.1",
|
"strip-ansi": "^3.0.1",
|
||||||
"wide-align": "1.1.2"
|
"wide-align": "^1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glob": {
|
"glob": {
|
||||||
@ -4422,12 +4471,12 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "1.0.6",
|
"inflight": "^1.0.4",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2",
|
||||||
"minimatch": "3.0.4",
|
"minimatch": "^3.0.4",
|
||||||
"once": "1.4.0",
|
"once": "^1.3.0",
|
||||||
"path-is-absolute": "1.0.1"
|
"path-is-absolute": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"has-unicode": {
|
"has-unicode": {
|
||||||
@ -4442,7 +4491,7 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"safer-buffer": "2.1.2"
|
"safer-buffer": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ignore-walk": {
|
"ignore-walk": {
|
||||||
@ -4451,7 +4500,7 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimatch": "3.0.4"
|
"minimatch": "^3.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inflight": {
|
"inflight": {
|
||||||
@ -4460,15 +4509,14 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "1.4.0",
|
"once": "^1.3.0",
|
||||||
"wrappy": "1.0.2"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.3",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
@ -4480,9 +4528,8 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "1.0.1"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"isarray": {
|
"isarray": {
|
||||||
@ -4495,25 +4542,22 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "1.1.11"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"minipass": {
|
"minipass": {
|
||||||
"version": "2.2.4",
|
"version": "2.2.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "^5.1.1",
|
||||||
"yallist": "3.0.2"
|
"yallist": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minizlib": {
|
"minizlib": {
|
||||||
@ -4522,14 +4566,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minipass": "2.2.4"
|
"minipass": "^2.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mkdirp": {
|
"mkdirp": {
|
||||||
"version": "0.5.1",
|
"version": "0.5.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimist": "0.0.8"
|
"minimist": "0.0.8"
|
||||||
}
|
}
|
||||||
@ -4546,9 +4589,9 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.9",
|
"debug": "^2.1.2",
|
||||||
"iconv-lite": "0.4.21",
|
"iconv-lite": "^0.4.4",
|
||||||
"sax": "1.2.4"
|
"sax": "^1.2.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-pre-gyp": {
|
"node-pre-gyp": {
|
||||||
@ -4557,16 +4600,16 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"detect-libc": "1.0.3",
|
"detect-libc": "^1.0.2",
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"needle": "2.2.0",
|
"needle": "^2.2.0",
|
||||||
"nopt": "4.0.1",
|
"nopt": "^4.0.1",
|
||||||
"npm-packlist": "1.1.10",
|
"npm-packlist": "^1.1.6",
|
||||||
"npmlog": "4.1.2",
|
"npmlog": "^4.0.2",
|
||||||
"rc": "1.2.7",
|
"rc": "^1.1.7",
|
||||||
"rimraf": "2.6.2",
|
"rimraf": "^2.6.1",
|
||||||
"semver": "5.5.0",
|
"semver": "^5.3.0",
|
||||||
"tar": "4.4.1"
|
"tar": "^4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nopt": {
|
"nopt": {
|
||||||
@ -4575,8 +4618,8 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"abbrev": "1.1.1",
|
"abbrev": "1",
|
||||||
"osenv": "0.1.5"
|
"osenv": "^0.1.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"npm-bundled": {
|
"npm-bundled": {
|
||||||
@ -4591,8 +4634,8 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ignore-walk": "3.0.1",
|
"ignore-walk": "^3.0.1",
|
||||||
"npm-bundled": "1.0.3"
|
"npm-bundled": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"npmlog": {
|
"npmlog": {
|
||||||
@ -4601,17 +4644,16 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"are-we-there-yet": "1.1.4",
|
"are-we-there-yet": "~1.1.2",
|
||||||
"console-control-strings": "1.1.0",
|
"console-control-strings": "~1.1.0",
|
||||||
"gauge": "2.7.4",
|
"gauge": "~2.7.3",
|
||||||
"set-blocking": "2.0.0"
|
"set-blocking": "~2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
@ -4623,9 +4665,8 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1.0.2"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"os-homedir": {
|
"os-homedir": {
|
||||||
@ -4646,8 +4687,8 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"os-homedir": "1.0.2",
|
"os-homedir": "^1.0.0",
|
||||||
"os-tmpdir": "1.0.2"
|
"os-tmpdir": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
@ -4668,10 +4709,10 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"deep-extend": "0.5.1",
|
"deep-extend": "^0.5.1",
|
||||||
"ini": "1.3.5",
|
"ini": "~1.3.0",
|
||||||
"minimist": "1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"strip-json-comments": "2.0.1"
|
"strip-json-comments": "~2.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minimist": {
|
"minimist": {
|
||||||
@ -4688,13 +4729,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "~1.0.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "~2.0.3",
|
||||||
"isarray": "1.0.0",
|
"isarray": "~1.0.0",
|
||||||
"process-nextick-args": "2.0.0",
|
"process-nextick-args": "~2.0.0",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "~5.1.1",
|
||||||
"string_decoder": "1.1.1",
|
"string_decoder": "~1.1.1",
|
||||||
"util-deprecate": "1.0.2"
|
"util-deprecate": "~1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rimraf": {
|
"rimraf": {
|
||||||
@ -4703,14 +4744,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "7.1.2"
|
"glob": "^7.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
"version": "5.1.1",
|
"version": "5.1.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"safer-buffer": {
|
"safer-buffer": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
@ -4746,11 +4786,10 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "1.1.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
"strip-ansi": "3.0.1"
|
"strip-ansi": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"string_decoder": {
|
"string_decoder": {
|
||||||
@ -4759,16 +4798,15 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "5.1.1"
|
"safe-buffer": "~5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "2.1.1"
|
"ansi-regex": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-json-comments": {
|
"strip-json-comments": {
|
||||||
@ -4783,13 +4821,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"chownr": "1.0.1",
|
"chownr": "^1.0.1",
|
||||||
"fs-minipass": "1.2.5",
|
"fs-minipass": "^1.2.5",
|
||||||
"minipass": "2.2.4",
|
"minipass": "^2.2.4",
|
||||||
"minizlib": "1.1.0",
|
"minizlib": "^1.1.0",
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": "^0.5.0",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "^5.1.1",
|
||||||
"yallist": "3.0.2"
|
"yallist": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"util-deprecate": {
|
"util-deprecate": {
|
||||||
@ -4804,20 +4842,18 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "1.0.2"
|
"string-width": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
},
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"dev": true,
|
"dev": true
|
||||||
"optional": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -8142,6 +8178,11 @@
|
|||||||
"utila": "~0.4"
|
"utila": "~0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"printj": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
|
||||||
|
},
|
||||||
"process": {
|
"process": {
|
||||||
"version": "0.11.10",
|
"version": "0.11.10",
|
||||||
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
||||||
@ -9629,6 +9670,14 @@
|
|||||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"ssf": {
|
||||||
|
"version": "0.10.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz",
|
||||||
|
"integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==",
|
||||||
|
"requires": {
|
||||||
|
"frac": "~1.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"sshpk": {
|
"sshpk": {
|
||||||
"version": "1.14.2",
|
"version": "1.14.2",
|
||||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
|
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
|
||||||
@ -11089,6 +11138,27 @@
|
|||||||
"integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=",
|
"integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"xlsx": {
|
||||||
|
"version": "0.14.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.14.2.tgz",
|
||||||
|
"integrity": "sha512-6+4TkmU34s1p/qsl8omWSEOa7pOtWlw4SuRJH/FGRk3iF/gcvSWGgCI1L28NaSDx2tI82aeq2SPY+xeFQJD27A==",
|
||||||
|
"requires": {
|
||||||
|
"adler-32": "~1.2.0",
|
||||||
|
"cfb": "^1.1.0",
|
||||||
|
"codepage": "~1.14.0",
|
||||||
|
"commander": "~2.17.1",
|
||||||
|
"crc-32": "~1.2.0",
|
||||||
|
"exit-on-epipe": "~1.0.1",
|
||||||
|
"ssf": "~0.10.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"commander": {
|
||||||
|
"version": "2.17.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
|
||||||
|
"integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"xml2js": {
|
"xml2js": {
|
||||||
"version": "0.4.19",
|
"version": "0.4.19",
|
||||||
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
|
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
|
||||||
|
|||||||
@ -73,6 +73,7 @@
|
|||||||
"sweetalert2": "^7.28.4",
|
"sweetalert2": "^7.28.4",
|
||||||
"tether": "^1.4.0",
|
"tether": "^1.4.0",
|
||||||
"viewerjs": "^1.3.1",
|
"viewerjs": "^1.3.1",
|
||||||
|
"xlsx": "^0.14.2",
|
||||||
"zone.js": "^0.8.26"
|
"zone.js": "^0.8.26"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@ -32,7 +32,7 @@ import {MatProgressBarModule} from '@angular/material/progress-bar';
|
|||||||
import {MatSelectModule} from '@angular/material/select';
|
import {MatSelectModule} from '@angular/material/select';
|
||||||
import {MatCardModule} from '@angular/material/card';
|
import {MatCardModule} from '@angular/material/card';
|
||||||
import {ChangePasswordDialog} from './settings/users/user-profile/user-profile.component';
|
import {ChangePasswordDialog} from './settings/users/user-profile/user-profile.component';
|
||||||
|
import { MatFormFieldModule } from '@angular/material';
|
||||||
import { AppRoutes } from './app.routing';
|
import { AppRoutes } from './app.routing';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
import { AdminLayoutComponent } from './layouts/admin/admin-layout.component';
|
import { AdminLayoutComponent } from './layouts/admin/admin-layout.component';
|
||||||
@ -81,6 +81,7 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
|
|||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
MatCardModule,
|
MatCardModule,
|
||||||
DemoMaterialModule,
|
DemoMaterialModule,
|
||||||
|
MatFormFieldModule,
|
||||||
HttpClientModule,
|
HttpClientModule,
|
||||||
TranslateModule.forRoot({
|
TranslateModule.forRoot({
|
||||||
loader: {
|
loader: {
|
||||||
|
|||||||
@ -30,6 +30,10 @@ export const AppRoutes: Routes = [{
|
|||||||
path:'quality_check_discussion',
|
path:'quality_check_discussion',
|
||||||
loadChildren:'./quality-check/quality-check.module#QualityCheckModule'
|
loadChildren:'./quality-check/quality-check.module#QualityCheckModule'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path:'reports',
|
||||||
|
loadChildren:'./reports/reports.module#ReportsModule'
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}, {
|
}, {
|
||||||
path: '',
|
path: '',
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<div class="user-pro-wrap">
|
<div class="user-pro-wrap">
|
||||||
<div class="user-profile-thumb text-center">
|
<div class="user-profile-thumb text-center">
|
||||||
<div class="user-i">
|
<div class="user-i">
|
||||||
<img [src]="profileurl ||'https://image.ibb.co/mGjZB9/usernew.png'" class="rad-full mb-1" width="100" height="100" alt="">
|
<img [src]="profileurl ||'http://image.ibb.co/mGjZB9/usernew.png'" class="rad-full mb-1" width="100" height="100" alt="">
|
||||||
<div> <span>{{fullName}}</span></div>
|
<div> <span>{{fullName}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -123,7 +123,24 @@
|
|||||||
<mat-icon>{{ menuitem.icon }}</mat-icon>
|
<mat-icon>{{ menuitem.icon }}</mat-icon>
|
||||||
<!--<span>{{ menuitem.name | translate }}</span>-->
|
<!--<span>{{ menuitem.name | translate }}</span>-->
|
||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
|
<!-- <span *ngFor="let menuitem of horizontalMenuItems.getAll()">
|
||||||
|
<span *ngIf="menuitem.type === 'multi'">
|
||||||
|
<button [mat-menu-trigger-for]="multi" matTooltip="{{ menuitem.name}}" matTooltipPosition="below" mat-icon-button class="ml-xs" *ngIf="userRoleType=='10'">
|
||||||
|
<mat-icon>{{ menuitem.icon }}</mat-icon>
|
||||||
|
</button>
|
||||||
|
<mat-menu #multi="matMenu" class="opt-menu" x-position="before">
|
||||||
|
<div mat-menu-item class="head-menu grad-blue">
|
||||||
|
{{ menuitem.name}}
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<div *ngFor="let childitem of menuitem.children">
|
||||||
|
<button mat-menu-item [routerLink]="['/'+childitem.state ]">{{ childitem.name | translate }}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</mat-menu>
|
||||||
|
</span>
|
||||||
|
</span> -->
|
||||||
<button [mat-menu-trigger-for]="multi" matTooltip="Settings" matTooltipPosition="below" mat-icon-button class="ml-xs" *ngIf="userRoleType=='10'">
|
<button [mat-menu-trigger-for]="multi" matTooltip="Settings" matTooltipPosition="below" mat-icon-button class="ml-xs" *ngIf="userRoleType=='10'">
|
||||||
<mat-icon>settings</mat-icon>
|
<mat-icon>settings</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@ -6,34 +6,37 @@ import { Pipe, PipeTransform } from '@angular/core';
|
|||||||
export class RoleMenuItemsPipe implements PipeTransform {
|
export class RoleMenuItemsPipe implements PipeTransform {
|
||||||
|
|
||||||
transform(value: any, type: any): any {
|
transform(value: any, type: any): any {
|
||||||
//this is for horizontal menu filter
|
// this is for horizontal menu filter
|
||||||
// if(type=="1"){
|
if(type=="1"){
|
||||||
// if(localStorage.getItem('user_role')=="10"){
|
switch(localStorage.getItem('user_role')){
|
||||||
// return value
|
case '4': case '5': return value.filter(val=>val.state!="setting" && val.state!="quality_check_discussion" && val.state!="reports");
|
||||||
// }
|
case '6': case '7': return value.filter(val=>val.state!="setting" && val.state!="personal_discussion" && val.state!="reports");
|
||||||
// else if(localStorage.getItem('user_role')=="6" || localStorage.getItem('user_role')=="7"){
|
case '10': return value;
|
||||||
// return value.filter(val=>val.state!="setting" && val.state!="personal_discussion")
|
default: return value.filter(val=>val.state!="setting" && val.state!="quality_check_discussion");
|
||||||
// }
|
}
|
||||||
// else{
|
}
|
||||||
// return value.filter(val=>val.state!="setting" && val.state!="quality_check_discussion")
|
// this is for vertical menu filter
|
||||||
// }
|
else if(type=="2"){
|
||||||
// }
|
switch(localStorage.getItem('user_role')){
|
||||||
//this is for vertical menu filter
|
case '4': case '5': return value.filter(val=>val.state!="setting" && val.state!="quality_check_discussion" && val.state!="reports");
|
||||||
// else if(type=="2"){
|
case '6': case '7': return value.filter(val=>val.state!="setting" && val.state!="personal_discussion" && val.state!="reports");
|
||||||
// if(localStorage.getItem('user_role')=="10"){
|
case '10': return value;
|
||||||
// return value
|
default: return value.filter(val=>val.state!="setting" && val.state!="quality_check_discussion");
|
||||||
// }
|
}
|
||||||
// else if(localStorage.getItem('user_role')=="6" || localStorage.getItem('user_role')=="7"){
|
}
|
||||||
// return value.filter(val=>val.state!='' && val.state!="personal_discussion")
|
else{
|
||||||
// }
|
return [];
|
||||||
// else{
|
}
|
||||||
// return value.filter(val=>val.state!='' && val.state!="quality_check_discussion")
|
// if(localStorage.getItem('user_role')=="10"){
|
||||||
// }
|
// return value
|
||||||
// }
|
// }
|
||||||
// else{
|
// else if(localStorage.getItem('user_role')=="6" || localStorage.getItem('user_role')=="7"){
|
||||||
// return [];
|
// return value.filter(val=>val.state!='' && val.state!="personal_discussion" && val.state!="reports")
|
||||||
// }
|
// }
|
||||||
return value;
|
// else{
|
||||||
|
// return value.filter(val=>val.state!='' && val.state!="quality_check_discussion")
|
||||||
|
// }
|
||||||
|
// return value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,12 +8,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div fxFlex="50" class="pb-0 text-sm-right">
|
<div fxFlex="50" class="pb-0 text-sm-right">
|
||||||
<button mat-fab (click)="viewMapPdDetails()" class="mr-1 mb-1 hover-icon" matTooltip="Map view" matTooltipPosition="above"><mat-icon>map</mat-icon></button>
|
<button mat-fab (click)="viewMapPdDetails()" class="mr-1 mb-1 hover-icon" matTooltip="Map view" matTooltipPosition="above"><mat-icon>map</mat-icon></button>
|
||||||
<button mat-fab (click)="addPdDetails()" class="mr-1 mb-1 hover-icon" matTooltip="Add PD" matTooltipPosition="above" *ngIf="roleAccessDetails.trigger"><mat-icon>add</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button mat-fab (click)="addPdDetails()" class="mr-1 mb-1 hover-icon" matTooltip="Add PD" matTooltipPosition="above" *ngIf="roleAccessDetails.trigger"><mat-icon>add</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<mat-card>
|
<mat-card>
|
||||||
<mat-tab-group (selectedTabChange)="onTabClick($event)">
|
<mat-tab-group (selectedTabChange)="onTabClick($event)">
|
||||||
<mat-tab >
|
<mat-tab>
|
||||||
<ng-template mat-tab-label><mat-icon>select_all</mat-icon> All</ng-template>
|
<ng-template mat-tab-label><mat-icon>select_all</mat-icon> All</ng-template>
|
||||||
<app-all-pd [bindFilterValue]="filterValue" (loadPdView)="viewPDDetails($event)"></app-all-pd>
|
<app-all-pd [bindFilterValue]="filterValue" (loadPdView)="viewPDDetails($event)"></app-all-pd>
|
||||||
</mat-tab>
|
</mat-tab>
|
||||||
|
|||||||
@ -38,7 +38,7 @@ export class ListPdComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
// roles checks for enables events
|
// roles checks for enables events
|
||||||
roleAccessDetails:any
|
roleAccessDetails:any
|
||||||
|
public userRoleID = localStorage.getItem('user_role') ;
|
||||||
constructor( notifier: NotifierService, private route: ActivatedRoute,
|
constructor( notifier: NotifierService, private route: ActivatedRoute,
|
||||||
private router: Router, private _pd: PdTrigerService) {
|
private router: Router, private _pd: PdTrigerService) {
|
||||||
this.notifier = notifier;
|
this.notifier = notifier;
|
||||||
|
|||||||
@ -306,6 +306,7 @@
|
|||||||
<input matInput placeholder="Approximate Market Value" formControlName="approximate_market_value"
|
<input matInput placeholder="Approximate Market Value" formControlName="approximate_market_value"
|
||||||
OnlyNumber type="text" autocomplete="off">
|
OnlyNumber type="text" autocomplete="off">
|
||||||
<mat-hint align="start" style="font-size:90%" *ngIf="sup.get('approximate_market_value').value != ''">{{"₹"}} {{sup.get('approximate_market_value').value | numberToWords}} Only</mat-hint>
|
<mat-hint align="start" style="font-size:90%" *ngIf="sup.get('approximate_market_value').value != ''">{{"₹"}} {{sup.get('approximate_market_value').value | numberToWords}} Only</mat-hint>
|
||||||
|
<mat-error *ngIf="sup.controls['approximate_market_value'].hasError('required')">Approximate Market Value Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field *ngIf="sup.get('assets_mode').value != ''" style="width:45%">
|
<mat-form-field *ngIf="sup.get('assets_mode').value != ''" style="width:45%">
|
||||||
@ -352,8 +353,8 @@
|
|||||||
<mat-form-field style="width:45%">
|
<mat-form-field style="width:45%">
|
||||||
|
|
||||||
<mat-label>Age of Asset in Years</mat-label>
|
<mat-label>Age of Asset in Years</mat-label>
|
||||||
<input matInput autocomplete="off" placeholder="eg.999" formControlName="vintage_personal"
|
<input matInput autocomplete="off" placeholder="eg.99" formControlName="vintage_personal"
|
||||||
minlength="1" maxlength="3" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
|
minlength="1" maxlength="2" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
|
||||||
<!-- <mat-error> Invalid format</mat-error> -->
|
<!-- <mat-error> Invalid format</mat-error> -->
|
||||||
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|||||||
@ -943,7 +943,7 @@ export class AssetsInfoComponent implements OnInit {
|
|||||||
|
|
||||||
|
|
||||||
let Avaliablity = 1;
|
let Avaliablity = 1;
|
||||||
|
if (value !== null) {
|
||||||
if (value.length > 0) {
|
if (value.length > 0) {
|
||||||
|
|
||||||
value.forEach(option => {
|
value.forEach(option => {
|
||||||
@ -952,13 +952,13 @@ export class AssetsInfoComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Avaliablity == 0) {
|
if (Avaliablity == 0) {
|
||||||
|
|
||||||
ChdCtrls.controls.other_owner.setValidators([Validators.required]);
|
ChdCtrls.controls.other_owner.setValidators([Validators.required]);
|
||||||
this.isOtherOwner[ParInx] = true;
|
this.isOtherOwner[ParInx] = true;
|
||||||
console.log(ChdCtrls.controls.other_owner);
|
// console.log(ChdCtrls.controls.other_owner);
|
||||||
|
|
||||||
|
|
||||||
} else if (Avaliablity == 1) {
|
} else if (Avaliablity == 1) {
|
||||||
|
|||||||
@ -90,8 +90,7 @@
|
|||||||
<mat-option value="owned">Owned</mat-option>
|
<mat-option value="owned">Owned</mat-option>
|
||||||
<mat-option value="rented">Rented</mat-option>
|
<mat-option value="rented">Rented</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error *ngIf="itemrow.controls['business_address_availability'].hasError('required')">Ownership Type
|
<mat-error *ngIf="itemrow.controls['business_ownership_type'].hasError('required')">Ownership Type Required</mat-error>
|
||||||
Required</mat-error>
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field style="width:45%" *ngIf="(itemrow.get('business_ownership_type').value == 'rented')">
|
<mat-form-field style="width:45%" *ngIf="(itemrow.get('business_ownership_type').value == 'rented')">
|
||||||
@ -107,6 +106,7 @@
|
|||||||
<input matInput placeholder="Approximate Market Value" formControlName="business_approximate_market_value"
|
<input matInput placeholder="Approximate Market Value" formControlName="business_approximate_market_value"
|
||||||
OnlyNumber type="text" autocomplete="off">
|
OnlyNumber type="text" autocomplete="off">
|
||||||
<mat-hint align="start" style="font-size:90%" *ngIf="itemrow.get('business_approximate_market_value').value != ''">{{"₹"}} {{itemrow.get('business_approximate_market_value').value | numberToWords}} Only</mat-hint>
|
<mat-hint align="start" style="font-size:90%" *ngIf="itemrow.get('business_approximate_market_value').value != ''">{{"₹"}} {{itemrow.get('business_approximate_market_value').value | numberToWords}} Only</mat-hint>
|
||||||
|
<mat-error *ngIf="itemrow.controls['business_approximate_market_value'].hasError('required')">Approximate Market Value Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field style="width:45%">
|
<mat-form-field style="width:45%">
|
||||||
@ -129,8 +129,8 @@
|
|||||||
|
|
||||||
<mat-form-field style="width:45%">
|
<mat-form-field style="width:45%">
|
||||||
<mat-label>Approx Vintage</mat-label>
|
<mat-label>Approx Vintage</mat-label>
|
||||||
<input matInput autocomplete="off" placeholder="eg.999" formControlName="business_vintage"
|
<input matInput autocomplete="off" placeholder="eg.99" formControlName="business_vintage"
|
||||||
minlength="1" maxlength="3" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
|
minlength="1" maxlength="2" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
|
||||||
<!-- <mat-error> Invalid format</mat-error> -->
|
<!-- <mat-error> Invalid format</mat-error> -->
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
@ -178,7 +178,7 @@
|
|||||||
<div [formGroupName]="i">
|
<div [formGroupName]="i">
|
||||||
<div fxLayout="row wrap" fxLayoutGap="5px" fxLayoutAlign="start none">
|
<div fxLayout="row wrap" fxLayoutGap="5px" fxLayoutAlign="start none">
|
||||||
<mat-form-field style="width:100%">
|
<mat-form-field style="width:100%">
|
||||||
<mat-select (selectionChange)="selectedAssetsType($event,i)" placeholder="Asset Type"
|
<mat-select (selectionChange)="selectedAssetsType($event,i);setRequiredValidation($event.value,sup,2);" placeholder="Asset Type"
|
||||||
formControlName="business_assets_mode" requried>
|
formControlName="business_assets_mode" requried>
|
||||||
<mat-option>Select</mat-option>
|
<mat-option>Select</mat-option>
|
||||||
<mat-option *ngFor="let asset of m_assets_type" [value]="asset.id" [disabled]="asset.flag!=1">{{
|
<mat-option *ngFor="let asset of m_assets_type" [value]="asset.id" [disabled]="asset.flag!=1">{{
|
||||||
@ -279,7 +279,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Desction Dynamic details : END -->
|
<!--Desction Dynamic details : END -->
|
||||||
|
|
||||||
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
||||||
@ -291,6 +290,7 @@
|
|||||||
<mat-option value="owned">Owned</mat-option>
|
<mat-option value="owned">Owned</mat-option>
|
||||||
<mat-option value="rented">Rented</mat-option>
|
<mat-option value="rented">Rented</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
|
<mat-error *ngIf="sup.controls['business_ownership_type'].hasError('required')">Ownership Type Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
@ -306,7 +306,8 @@
|
|||||||
<mat-form-field style="width:45%">
|
<mat-form-field style="width:45%">
|
||||||
<input matInput placeholder="Approximate Market Value" formControlName="business_approximate_market_value"
|
<input matInput placeholder="Approximate Market Value" formControlName="business_approximate_market_value"
|
||||||
OnlyNumber type="text" autocomplete="off">
|
OnlyNumber type="text" autocomplete="off">
|
||||||
<mat-hint align="start" style="font-size:90%" *ngIf="sup.get('business_approximate_market_value').value != ''">{{"₹"}} {{sup.get('business_approximate_market_value').value | numberToWords}} Only</mat-hint>
|
<mat-hint align="start" style="font-size:90%" *ngIf="sup.get('business_approximate_market_value').value != ''">{{"₹"}} {{sup.get('business_approximate_market_value').value | numberToWords}} Only</mat-hint>
|
||||||
|
<mat-error *ngIf="sup.controls['business_approximate_market_value'].hasError('required')">Approximate Market Value Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field style="width:45%">
|
<mat-form-field style="width:45%">
|
||||||
@ -329,8 +330,8 @@
|
|||||||
|
|
||||||
<mat-form-field style="width:45%">
|
<mat-form-field style="width:45%">
|
||||||
<mat-label>Approx Vintage</mat-label>
|
<mat-label>Approx Vintage</mat-label>
|
||||||
<input matInput autocomplete="off" placeholder="eg.999" formControlName="business_vintage"
|
<input matInput autocomplete="off" placeholder="eg.99" formControlName="business_vintage"
|
||||||
minlength="1" maxlength="3" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,1)">
|
minlength="1" maxlength="2" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,1)">
|
||||||
<!-- <mat-error> Invalid format</mat-error> -->
|
<!-- <mat-error> Invalid format</mat-error> -->
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
|
|||||||
@ -598,14 +598,14 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
result.forEach((datas, index) => {
|
result.forEach((datas, index) => {
|
||||||
|
|
||||||
let Avaliablity = 1;
|
let Avaliablity = 1;
|
||||||
|
if (datas.business_name_of_the_owner !== null) {
|
||||||
if (datas.business_name_of_the_owner.length > 0) {
|
if (datas.business_name_of_the_owner.length > 0) {
|
||||||
datas.business_name_of_the_owner.forEach(option => {
|
datas.business_name_of_the_owner.forEach(option => {
|
||||||
if (option.id == 0 && option.group_id == 2) {
|
if (option.id == 0 && option.group_id == 2) {
|
||||||
Avaliablity = option.id;
|
Avaliablity = option.id;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}}
|
||||||
this.isOtherOwnerForAddress[index] = Avaliablity == 0 ? true : false;
|
this.isOtherOwnerForAddress[index] = Avaliablity == 0 ? true : false;
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -652,14 +652,14 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
result.forEach((datas, index) => {
|
result.forEach((datas, index) => {
|
||||||
|
|
||||||
let Avaliablity = 1;
|
let Avaliablity = 1;
|
||||||
|
if(datas.business_name_of_the_owner !== null){
|
||||||
if (datas.business_name_of_the_owner.length > 0) {
|
if (datas.business_name_of_the_owner.length > 0) {
|
||||||
datas.business_name_of_the_owner.forEach(option => {
|
datas.business_name_of_the_owner.forEach(option => {
|
||||||
if (option.id == 0 && option.group_id == 2) {
|
if (option.id == 0 && option.group_id == 2) {
|
||||||
Avaliablity = option.id;
|
Avaliablity = option.id;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}}
|
||||||
this.isOtherOwner[index] = Avaliablity == 0 ? true : false;
|
this.isOtherOwner[index] = Avaliablity == 0 ? true : false;
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -889,7 +889,7 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
let ChdCtrls: any = <FormArray>ParCtrls.controls[ParInx];
|
let ChdCtrls: any = <FormArray>ParCtrls.controls[ParInx];
|
||||||
|
|
||||||
let Avaliablity = 1;
|
let Avaliablity = 1;
|
||||||
|
if (value !== null ) {
|
||||||
if (value.length > 0) {
|
if (value.length > 0) {
|
||||||
|
|
||||||
value.forEach(option => {
|
value.forEach(option => {
|
||||||
@ -898,7 +898,7 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Avaliablity == 0) {
|
if (Avaliablity == 0) {
|
||||||
|
|
||||||
@ -928,6 +928,7 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
|
|
||||||
let Avaliablity = 1;
|
let Avaliablity = 1;
|
||||||
|
|
||||||
|
if (value !== null ) {
|
||||||
if (value.length > 0) {
|
if (value.length > 0) {
|
||||||
|
|
||||||
value.forEach(option => {
|
value.forEach(option => {
|
||||||
@ -937,7 +938,7 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (Avaliablity == 0) {
|
if (Avaliablity == 0) {
|
||||||
|
|
||||||
ChdCtrls.controls.business_name_of_the_other_owner.setValidators([Validators.required]);
|
ChdCtrls.controls.business_name_of_the_other_owner.setValidators([Validators.required]);
|
||||||
@ -963,32 +964,47 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
item.controls.business_address_availability.setValidators([Validators.required]);
|
item.controls.business_address_availability.setValidators([Validators.required]);
|
||||||
item.controls.business_is_pd_visited.setValidators([Validators.required]);
|
item.controls.business_is_pd_visited.setValidators([Validators.required]);
|
||||||
item.controls.business_pd_visited_remark.setValidators([Validators.required]);
|
item.controls.business_pd_visited_remark.setValidators([Validators.required]);
|
||||||
|
item.controls.business_ownership_type.setValidators([Validators.required]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
item.controls.business_years.clearValidators();
|
item.controls.business_years.clearValidators();
|
||||||
item.controls.business_address_availability.clearValidators();
|
item.controls.business_address_availability.clearValidators();
|
||||||
item.controls.business_is_pd_visited.clearValidators();
|
item.controls.business_is_pd_visited.clearValidators();
|
||||||
item.controls.business_pd_visited_remark.clearValidators();
|
item.controls.business_pd_visited_remark.clearValidators();
|
||||||
|
item.controls.business_ownership_type.clearValidators();
|
||||||
|
|
||||||
}
|
}
|
||||||
item.controls.business_years.updateValueAndValidity();
|
item.controls.business_years.updateValueAndValidity();
|
||||||
item.controls.business_address_availability.updateValueAndValidity();
|
item.controls.business_address_availability.updateValueAndValidity();
|
||||||
item.controls.business_is_pd_visited.updateValueAndValidity();
|
item.controls.business_is_pd_visited.updateValueAndValidity();
|
||||||
item.controls.business_pd_visited_remark.updateValueAndValidity();
|
item.controls.business_pd_visited_remark.updateValueAndValidity();
|
||||||
|
item.controls.business_ownership_type.updateValueAndValidity();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if(flag == 2){
|
||||||
|
if(value != ''){
|
||||||
|
item.controls.business_ownership_type.setValidators([Validators.required]);}
|
||||||
|
else{
|
||||||
|
item.controls.business_ownership_type.setValue('');
|
||||||
|
item.controls.business_ownership_type.clearValidators();}
|
||||||
|
item.controls.business_ownership_type.updateValueAndValidity();
|
||||||
|
}
|
||||||
if (flag == 3) {
|
if (flag == 3) {
|
||||||
if (value == 'owned') {
|
if (value == 'owned') {
|
||||||
|
item.controls.business_monthly_rented_amt.setValue('');
|
||||||
item.controls.business_monthly_rented_amt.clearValidators();
|
item.controls.business_monthly_rented_amt.clearValidators();
|
||||||
item.controls.business_name_of_the_owner.setValidators([Validators.required]);
|
item.controls.business_name_of_the_owner.setValidators([Validators.required]);
|
||||||
|
item.controls.business_approximate_market_value.setValidators([Validators.required]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
item.controls.business_monthly_rented_amt.setValidators([Validators.required]);
|
item.controls.business_monthly_rented_amt.setValidators([Validators.required]);
|
||||||
item.controls.business_name_of_the_owner.clearValidators();
|
item.controls.business_name_of_the_owner.clearValidators();
|
||||||
|
item.controls.business_approximate_market_value.clearValidators();
|
||||||
}
|
}
|
||||||
item.controls.business_monthly_rented_amt.updateValueAndValidity();
|
item.controls.business_monthly_rented_amt.updateValueAndValidity();
|
||||||
item.controls.business_name_of_the_owner.updateValueAndValidity();
|
item.controls.business_name_of_the_owner.updateValueAndValidity();
|
||||||
|
item.controls.business_approximate_market_value.updateValueAndValidity();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag == 5) {
|
if (flag == 5) {
|
||||||
@ -1010,15 +1026,19 @@ export class BusinessAssetsInfoComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
if (flag == 7) {
|
if (flag == 7) {
|
||||||
if (value == 'owned') {
|
if (value == 'owned') {
|
||||||
|
item.controls.business_monthly_rented_amt.setValue('');
|
||||||
item.controls.business_monthly_rented_amt.clearValidators();
|
item.controls.business_monthly_rented_amt.clearValidators();
|
||||||
item.controls.business_name_of_the_owner.setValidators([Validators.required]);
|
item.controls.business_name_of_the_owner.setValidators([Validators.required]);
|
||||||
|
item.controls.business_approximate_market_value.setValidators([Validators.required]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
item.controls.business_monthly_rented_amt.setValidators([Validators.required]);
|
item.controls.business_monthly_rented_amt.setValidators([Validators.required]);
|
||||||
item.controls.business_name_of_the_owner.clearValidators();
|
item.controls.business_name_of_the_owner.clearValidators();
|
||||||
|
item.controls.business_approximate_market_value.clearValidators();
|
||||||
}
|
}
|
||||||
item.controls.business_monthly_rented_amt.updateValueAndValidity();
|
item.controls.business_monthly_rented_amt.updateValueAndValidity();
|
||||||
item.controls.business_name_of_the_owner.updateValueAndValidity();
|
item.controls.business_name_of_the_owner.updateValueAndValidity();
|
||||||
|
item.controls.business_approximate_market_value.updateValueAndValidity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -291,7 +291,7 @@
|
|||||||
{{SL.state_name}}
|
{{SL.state_name}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error *ngIf="manufacturing.controls['pan_india_options'].hasError('required')">Is PAN India Required</mat-error>
|
<mat-error *ngIf="saleList.controls['state_name'].hasError('required')">State Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width:45%;">
|
<mat-form-field style="width:45%;">
|
||||||
<mat-select multiple formControlName="city_name"
|
<mat-select multiple formControlName="city_name"
|
||||||
@ -299,7 +299,7 @@
|
|||||||
<mat-option *ngFor="let CL of filterCity(stateList,saleList.value.state_name)"
|
<mat-option *ngFor="let CL of filterCity(stateList,saleList.value.state_name)"
|
||||||
[value]="CL.city_id">{{CL.city_name}}</mat-option>
|
[value]="CL.city_id">{{CL.city_name}}</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
<mat-error *ngIf="manufacturing.controls['city_name'].hasError('required')">City Required</mat-error>
|
<mat-error *ngIf="saleList.controls['city_name'].hasError('required')">City Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
@ -370,7 +370,7 @@
|
|||||||
<mat-form-field style="width:70%;">
|
<mat-form-field style="width:70%;">
|
||||||
<input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Out of Total Export Sales what % of Sales is done in' : getPlaceHolderName(countryList.get('country_name').value)"
|
<input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Out of Total Export Sales what % of Sales is done in' : getPlaceHolderName(countryList.get('country_name').value)"
|
||||||
formControlName="approx_sale" required>
|
formControlName="approx_sale" required>
|
||||||
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % of Sale Required</mat-error>
|
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % Required</mat-error>
|
||||||
<!-- <input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Approx % of Sale' : getPlaceHolderName(countryList.get('country_name').value)" formControlName="approx_sale" required> -->
|
<!-- <input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Approx % of Sale' : getPlaceHolderName(countryList.get('country_name').value)" formControlName="approx_sale" required> -->
|
||||||
<!-- <input matInput [placeholder]=" 'Out of Total Export Sales what % of Sales is done in ' getPlaceHolderName(countryList.get('country_name').value)" formControlName="approx_sale" required> -->
|
<!-- <input matInput [placeholder]=" 'Out of Total Export Sales what % of Sales is done in ' getPlaceHolderName(countryList.get('country_name').value)" formControlName="approx_sale" required> -->
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
@ -951,7 +951,7 @@
|
|||||||
<!-- <input matInput placeholder="Approx % of Sale" formControlName="approx_sale" required> -->
|
<!-- <input matInput placeholder="Approx % of Sale" formControlName="approx_sale" required> -->
|
||||||
<input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Out of Total Export Sales what % of Sales is done in' : getPlaceHolderName(countryList.get('country_name').value)"
|
<input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Out of Total Export Sales what % of Sales is done in' : getPlaceHolderName(countryList.get('country_name').value)"
|
||||||
formControlName="approx_sale" required>
|
formControlName="approx_sale" required>
|
||||||
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % of Sale Required</mat-error>
|
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<button type="button" class="mr-1 mb-1 hover-icon"
|
<button type="button" class="mr-1 mb-1 hover-icon"
|
||||||
@ -1071,7 +1071,7 @@
|
|||||||
<!-- <input matInput placeholder="Approx % of Sale" c -->
|
<!-- <input matInput placeholder="Approx % of Sale" c -->
|
||||||
<input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Out of Total Export Sales what % of Sales is done in' : getPlaceHolderName(countryList.get('country_name').value)"
|
<input matInput [placeholder]="countryList.get('country_name').value == '' ? 'Out of Total Export Sales what % of Sales is done in' : getPlaceHolderName(countryList.get('country_name').value)"
|
||||||
formControlName="approx_sale" required>
|
formControlName="approx_sale" required>
|
||||||
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % of Sale Required</mat-error>
|
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
@ -1239,7 +1239,7 @@
|
|||||||
<mat-form-field style="width:35%;">
|
<mat-form-field style="width:35%;">
|
||||||
<input matInput placeholder="Approx % of Revenue From Service"
|
<input matInput placeholder="Approx % of Revenue From Service"
|
||||||
formControlName="approx_sale" required>
|
formControlName="approx_sale" required>
|
||||||
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % of Sales Required</mat-error>
|
<mat-error *ngIf="countryList.controls['approx_sale'].hasError('required')">Approx % Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<button type="button" class="mr-1 mb-1 hover-icon"
|
<button type="button" class="mr-1 mb-1 hover-icon"
|
||||||
|
|||||||
@ -40,8 +40,7 @@
|
|||||||
<input matInput placeholder="Raw Material Name" formControlName="manufacturing_raw_material_name">
|
<input matInput placeholder="Raw Material Name" formControlName="manufacturing_raw_material_name">
|
||||||
</mat-form-field>-->
|
</mat-form-field>-->
|
||||||
<mat-form-field style="width: 45%">
|
<mat-form-field style="width: 45%">
|
||||||
<input matInput placeholder="Client Name" formControlName="manufacturing_client_name" required>
|
<input matInput placeholder="Client Name" formControlName="manufacturing_client_name">
|
||||||
<mat-error *ngIf="items.controls['manufacturing_client_name'].hasError('required')">Client Name Required</mat-error>
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="row nowrap">
|
<div fxLayout="row nowrap">
|
||||||
@ -174,8 +173,7 @@
|
|||||||
<input matInput placeholder="Trade Product Name" formControlName="trade_product_name">
|
<input matInput placeholder="Trade Product Name" formControlName="trade_product_name">
|
||||||
</mat-form-field>-->
|
</mat-form-field>-->
|
||||||
<mat-form-field style="width: 45%">
|
<mat-form-field style="width: 45%">
|
||||||
<input matInput placeholder="Client Name" formControlName="trade_client_name" required>
|
<input matInput placeholder="Client Name" formControlName="trade_client_name">
|
||||||
<mat-error *ngIf="items.controls['trade_client_name'].hasError('required')">Client Name Required</mat-error>
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="row nowrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
<div fxLayout="row nowrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
||||||
@ -308,8 +306,7 @@
|
|||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 45%">
|
<mat-form-field style="width: 45%">
|
||||||
<input matInput placeholder="Client Name" formControlName="service_provider_client_name" required>
|
<input matInput placeholder="Client Name" formControlName="service_provider_client_name">
|
||||||
<mat-error *ngIf="items.controls['service_provider_client_name'].hasError('required')">Client Name Required</mat-error>
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
||||||
|
|||||||
@ -170,7 +170,7 @@ export class CurrentLoanComponent implements OnInit {
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
this._pd.getAssetsWithLoanFromBusiness(this.pdid).subscribe(data => {
|
this._pd.getAssetsWithLoanFromBusiness(this.pdid).subscribe(data => {
|
||||||
console.log(data);
|
|
||||||
if (data.dataStatus == true) {
|
if (data.dataStatus == true) {
|
||||||
|
|
||||||
let AssetData = data.record;
|
let AssetData = data.record;
|
||||||
@ -200,7 +200,7 @@ console.log(data);
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log('AssetData.other_assests.length',AssetData.other_assests.length,AssetData.other_assests);
|
|
||||||
if (AssetData.other_assests.length > 0) {
|
if (AssetData.other_assests.length > 0) {
|
||||||
AssetData.other_assests.map(element => {
|
AssetData.other_assests.map(element => {
|
||||||
this.dataFromAssets.push({
|
this.dataFromAssets.push({
|
||||||
@ -213,7 +213,7 @@ console.log('AssetData.other_assests.length',AssetData.other_assests.length,Asse
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.log('this.dataFromAssets',this.dataFromAssets);
|
|
||||||
// id: "4", name: "Equipments and machinaries", isactive: "1", flag: "1", is_others: "0"
|
// id: "4", name: "Equipments and machinaries", isactive: "1", flag: "1", is_others: "0"
|
||||||
// id: "7", name: "Investments", isactive: "1", flag: "0", is_others: "0"
|
// id: "7", name: "Investments", isactive: "1", flag: "0", is_others: "0"
|
||||||
// id: "6", name: "Life Insurance Policy", isactive: "1", flag: "0", is_others: "0"
|
// id: "6", name: "Life Insurance Policy", isactive: "1", flag: "0", is_others: "0"
|
||||||
@ -604,7 +604,7 @@ console.log('this.dataFromAssets',this.dataFromAssets);
|
|||||||
}
|
}
|
||||||
|
|
||||||
setRequiredValidation(value, item, flag) {
|
setRequiredValidation(value, item, flag) {
|
||||||
console.log('value, item, flag',value, item, flag);
|
|
||||||
if (flag == 1) {
|
if (flag == 1) {
|
||||||
if(value == 1){
|
if(value == 1){
|
||||||
item.controls.others_loan_type.setValidators([Validators.required]);}
|
item.controls.others_loan_type.setValidators([Validators.required]);}
|
||||||
|
|||||||
@ -536,7 +536,7 @@ export class EmploymentInfoComponent implements OnInit {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
validateAllFormFields(formGroup: any) {
|
validateAllFormFields(formGroup: any) {
|
||||||
console.log('validateAllFormFields');
|
// console.log('validateAllFormFields');
|
||||||
Object.keys(formGroup.controls).forEach(field => {
|
Object.keys(formGroup.controls).forEach(field => {
|
||||||
const control = formGroup.get(field);
|
const control = formGroup.get(field);
|
||||||
if (control instanceof FormControl) {
|
if (control instanceof FormControl) {
|
||||||
|
|||||||
@ -248,7 +248,7 @@ export class FinalRemarksComponent implements OnInit {
|
|||||||
|
|
||||||
/** To Save/Edited Popup Data */
|
/** To Save/Edited Popup Data */
|
||||||
onSubmit() {
|
onSubmit() {
|
||||||
console.log('this._finalRemarkForm.value',this._finalRemarkForm.value);
|
// console.log('this._finalRemarkForm.value',this._finalRemarkForm.value);
|
||||||
this.submitted = true;
|
this.submitted = true;
|
||||||
if (this._finalRemarkForm.controls.final_custormer_remark_type.value == 1) {
|
if (this._finalRemarkForm.controls.final_custormer_remark_type.value == 1) {
|
||||||
this._finalRemarkForm.controls['final_other_customer_behaviour'].setValidators([Validators.required]);
|
this._finalRemarkForm.controls['final_other_customer_behaviour'].setValidators([Validators.required]);
|
||||||
|
|||||||
@ -115,7 +115,7 @@ export class GeneralInfoComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this._pd.retriveFile(this.pdid,'18',null).subscribe(data => {
|
this._pd.retriveFile(this.pdid,'18',null).subscribe(data => {
|
||||||
console.log(data);
|
|
||||||
if (data.status == 200) {
|
if (data.status == 200) {
|
||||||
if(data.records.length>0){
|
if(data.records.length>0){
|
||||||
data.records.forEach((val, index) => {
|
data.records.forEach((val, index) => {
|
||||||
@ -133,7 +133,6 @@ export class GeneralInfoComponent implements OnInit {
|
|||||||
else{
|
else{
|
||||||
this.documentsAndFilesList = [];
|
this.documentsAndFilesList = [];
|
||||||
}
|
}
|
||||||
console.log('this.documentsAndFilesList',this.documentsAndFilesList);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/***************************** ng Oninit Section Ends Here **********************************/
|
/***************************** ng Oninit Section Ends Here **********************************/
|
||||||
@ -436,7 +435,6 @@ export class GeneralInfoComponent implements OnInit {
|
|||||||
addMoreCompanies() {
|
addMoreCompanies() {
|
||||||
let control: any = this._generalForm.get('companies') as FormArray;
|
let control: any = this._generalForm.get('companies') as FormArray;
|
||||||
let setValues: any = { company_order_id: control.controls.length + 1, company_name: '', is_company_applicant: false, business_entity_type: '', business_entity_type_other: '', business_years: '', business_month: '',business_date_object: '', is_active: true, is_new: true, associate_pd_id:this.pdid}
|
let setValues: any = { company_order_id: control.controls.length + 1, company_name: '', is_company_applicant: false, business_entity_type: '', business_entity_type_other: '', business_years: '', business_month: '',business_date_object: '', is_active: true, is_new: true, associate_pd_id:this.pdid}
|
||||||
console.log('setValues',setValues);
|
|
||||||
control.push(this.createCompanies(setValues))
|
control.push(this.createCompanies(setValues))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -626,7 +624,7 @@ export class GeneralInfoComponent implements OnInit {
|
|||||||
temp: number = 0;
|
temp: number = 0;
|
||||||
submitGeneralForm(formData: any) {
|
submitGeneralForm(formData: any) {
|
||||||
|
|
||||||
console.log('formData',formData);
|
// console.log('formData',formData);
|
||||||
if (formData.individuals.length > 0) {
|
if (formData.individuals.length > 0) {
|
||||||
formData.individuals.forEach((val, index) => {
|
formData.individuals.forEach((val, index) => {
|
||||||
|
|
||||||
|
|||||||
@ -85,7 +85,7 @@ export class LoanDetailsComponent implements OnInit {
|
|||||||
private _pd: PdTrigerService,
|
private _pd: PdTrigerService,
|
||||||
private dialogRef: MatDialogRef<LoanDetailsComponent>,
|
private dialogRef: MatDialogRef<LoanDetailsComponent>,
|
||||||
@Inject(MAT_DIALOG_DATA) public pd_all_details: any) {
|
@Inject(MAT_DIALOG_DATA) public pd_all_details: any) {
|
||||||
// console.log('this.pd_all_details.pdapplicants_detials',this.pd_all_details.pdapplicants_detials);
|
|
||||||
this.applicants = this.pd_all_details.pdapplicants_detials;
|
this.applicants = this.pd_all_details.pdapplicants_detials;
|
||||||
// this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});
|
// this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});
|
||||||
this.applicants = this.applicants.filter(appt => appt.applicant_type != 2)
|
this.applicants = this.applicants.filter(appt => appt.applicant_type != 2)
|
||||||
@ -515,7 +515,7 @@ export class LoanDetailsComponent implements OnInit {
|
|||||||
|
|
||||||
/** Source Changes with Validation */
|
/** Source Changes with Validation */
|
||||||
sourceChange(evt) {
|
sourceChange(evt) {
|
||||||
// console.log('sourceChange');
|
|
||||||
this.isOtherSource = evt.some(e => e == 1) // this return true or false Only;
|
this.isOtherSource = evt.some(e => e == 1) // this return true or false Only;
|
||||||
|
|
||||||
if (this.isOtherSource) {
|
if (this.isOtherSource) {
|
||||||
@ -550,7 +550,7 @@ export class LoanDetailsComponent implements OnInit {
|
|||||||
|
|
||||||
/**For Setting Validations */
|
/**For Setting Validations */
|
||||||
selectedBalancesTransferChanges(event: any) {
|
selectedBalancesTransferChanges(event: any) {
|
||||||
// console.log('selectedBalancesTransferChanges',event);
|
|
||||||
if (event.value == 'no') {
|
if (event.value == 'no') {
|
||||||
this.loanDetailsForm.controls['source'].setValidators([Validators.required]);
|
this.loanDetailsForm.controls['source'].setValidators([Validators.required]);
|
||||||
this.loanDetailsForm.controls['source'].updateValueAndValidity();
|
this.loanDetailsForm.controls['source'].updateValueAndValidity();
|
||||||
@ -568,7 +568,6 @@ export class LoanDetailsComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
else if (event.value == 'yes') {
|
else if (event.value == 'yes') {
|
||||||
|
|
||||||
// console.log(event.value,'yes');
|
|
||||||
|
|
||||||
this.loanDetailsForm.controls['source'].setValue('');
|
this.loanDetailsForm.controls['source'].setValue('');
|
||||||
this.loanDetailsForm.controls['source'].clearValidators();
|
this.loanDetailsForm.controls['source'].clearValidators();
|
||||||
@ -634,8 +633,6 @@ export class LoanDetailsComponent implements OnInit {
|
|||||||
|
|
||||||
mortage_type(mortage_value)
|
mortage_type(mortage_value)
|
||||||
{
|
{
|
||||||
// console.log('mortage_value',mortage_value);
|
|
||||||
// console.log('this.m_mortageTypeProperty',this.m_mortageTypeProperty);
|
|
||||||
let mortagetypes = this.m_mortageTypeProperty.filter(mor => mor.mortage_property_id == mortage_value)[0];
|
let mortagetypes = this.m_mortageTypeProperty.filter(mor => mor.mortage_property_id == mortage_value)[0];
|
||||||
let property_name = mortagetypes.property_name.replace(/\s/g, "").toLowerCase();
|
let property_name = mortagetypes.property_name.replace(/\s/g, "").toLowerCase();
|
||||||
if(property_name=='others')
|
if(property_name=='others')
|
||||||
@ -691,7 +688,7 @@ export class LoanDetailsComponent implements OnInit {
|
|||||||
|
|
||||||
/** To save Loan FOrm Details */
|
/** To save Loan FOrm Details */
|
||||||
submitLoanDetails() {
|
submitLoanDetails() {
|
||||||
// console.log('submitLoanDetails');
|
|
||||||
if(this.isOtherSource == false){
|
if(this.isOtherSource == false){
|
||||||
this.loanDetailsForm.controls['other_source'].setValue('');
|
this.loanDetailsForm.controls['other_source'].setValue('');
|
||||||
this.loanDetailsForm.controls['other_source'].clearValidators();
|
this.loanDetailsForm.controls['other_source'].clearValidators();
|
||||||
|
|||||||
@ -271,10 +271,8 @@ export class OtherIncomeComponent implements OnInit {
|
|||||||
|
|
||||||
let ChildCtrl : any = control.controls[cnt]
|
let ChildCtrl : any = control.controls[cnt]
|
||||||
|
|
||||||
console.log(ChildCtrl.controls.source.value);
|
|
||||||
|
|
||||||
if(ChildCtrl.controls.source.value == 1){
|
if(ChildCtrl.controls.source.value == 1){
|
||||||
console.log('ChildCtrl.controls.source.value');
|
|
||||||
ChildCtrl.controls['others_source'].setValidators([Validators.required]);}
|
ChildCtrl.controls['others_source'].setValidators([Validators.required]);}
|
||||||
else{
|
else{
|
||||||
ChildCtrl.controls['others_source'].clearValidators();
|
ChildCtrl.controls['others_source'].clearValidators();
|
||||||
|
|||||||
@ -110,8 +110,6 @@ export class RentalVerificationComponent implements OnInit {
|
|||||||
this.existing_rental_count_id = rentalVal.length;
|
this.existing_rental_count_id = rentalVal.length;
|
||||||
//RIV = Rental Income Verification
|
//RIV = Rental Income Verification
|
||||||
rentalVal.forEach((RIV, inx) => {
|
rentalVal.forEach((RIV, inx) => {
|
||||||
console.log('RIV.rental_count_id',RIV.rental_count_id);
|
|
||||||
console.log('RIV',RIV,inx);
|
|
||||||
let annualRentAmt: any = 0;
|
let annualRentAmt: any = 0;
|
||||||
// get property unit details
|
// get property unit details
|
||||||
if (RIV.property_unit_details) {
|
if (RIV.property_unit_details) {
|
||||||
|
|||||||
@ -160,8 +160,7 @@ export class StockComponent implements OnInit {
|
|||||||
let type4length = type4[0].hasOwnProperty("products") ? type4[0].products.length : 0;
|
let type4length = type4[0].hasOwnProperty("products") ? type4[0].products.length : 0;
|
||||||
|
|
||||||
let rm_api = record.from_supplier.hasOwnProperty("raw_material") ? record.from_supplier.raw_material : [];
|
let rm_api = record.from_supplier.hasOwnProperty("raw_material") ? record.from_supplier.raw_material : [];
|
||||||
console.log(rm_api);
|
|
||||||
|
|
||||||
let params: any = {};
|
let params: any = {};
|
||||||
params.parent_pdid = this.parent_pdid;
|
params.parent_pdid = this.parent_pdid;
|
||||||
params.pd_id = this.pdid;
|
params.pd_id = this.pdid;
|
||||||
@ -170,7 +169,6 @@ export class StockComponent implements OnInit {
|
|||||||
this._pd.retriveForm(params).subscribe(value => {
|
this._pd.retriveForm(params).subscribe(value => {
|
||||||
if (value.status == 200) {
|
if (value.status == 200) {
|
||||||
let dataForm = value.records;
|
let dataForm = value.records;
|
||||||
console.log(value.records);
|
|
||||||
if (dataForm !== undefined) {
|
if (dataForm !== undefined) {
|
||||||
this.stockForms = this.fb.group({
|
this.stockForms = this.fb.group({
|
||||||
parent_pdid: [this.parent_pdid],
|
parent_pdid: [this.parent_pdid],
|
||||||
@ -822,18 +820,18 @@ export class StockComponent implements OnInit {
|
|||||||
let not_stock1 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0);
|
let not_stock1 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0);
|
||||||
// if(not_stock1 > 0){ this.stockForms.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue('not applicable') }
|
// if(not_stock1 > 0){ this.stockForms.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue('not applicable') }
|
||||||
if(not_stock1 > 0){
|
if(not_stock1 > 0){
|
||||||
console.log('not_stock1',not_stock1);
|
|
||||||
this.RMsufficientList[0].disabled = false;
|
this.RMsufficientList[0].disabled = false;
|
||||||
this.RMsufficientList[2].disabled = true;
|
this.RMsufficientList[2].disabled = true;
|
||||||
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');
|
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');
|
||||||
}
|
}
|
||||||
else if(not_stock1 == 0){
|
else if(not_stock1 == 0){
|
||||||
console.log('0',not_stock1);
|
|
||||||
this.RMsufficientList[0].disabled = true;
|
this.RMsufficientList[0].disabled = true;
|
||||||
this.RMsufficientList[2].disabled = false;
|
this.RMsufficientList[2].disabled = false;
|
||||||
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');
|
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');
|
||||||
}
|
}
|
||||||
console.log('this.RMsufficientList',this.RMsufficientList);
|
|
||||||
}
|
}
|
||||||
if(flag == 2) {
|
if(flag == 2) {
|
||||||
this.FinishedCounterArray[index] = value != "" ? 1 : 0
|
this.FinishedCounterArray[index] = value != "" ? 1 : 0
|
||||||
@ -857,20 +855,19 @@ export class StockComponent implements OnInit {
|
|||||||
let not_stock_ws = this.not_stock_of_ws.reduce((sum, val) => sum + +val, 0);
|
let not_stock_ws = this.not_stock_of_ws.reduce((sum, val) => sum + +val, 0);
|
||||||
let not_stock_tg = this.not_stock_of_tg.reduce((sum, val) => sum + +val, 0);
|
let not_stock_tg = this.not_stock_of_tg.reduce((sum, val) => sum + +val, 0);
|
||||||
let not_stock2 = not_stock_fg + not_stock_ws + not_stock_tg;
|
let not_stock2 = not_stock_fg + not_stock_ws + not_stock_tg;
|
||||||
console.log('not_stock2',not_stock2);
|
|
||||||
if(not_stock2 > 0){
|
if(not_stock2 > 0){
|
||||||
console.log('not_stock2',not_stock2);
|
|
||||||
this.TGsufficientList[0].isdisabled = false;
|
this.TGsufficientList[0].isdisabled = false;
|
||||||
this.TGsufficientList[2].isdisabled = true;
|
this.TGsufficientList[2].isdisabled = true;
|
||||||
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');
|
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');
|
||||||
}
|
}
|
||||||
else if(not_stock2 == 0){
|
else if(not_stock2 == 0){
|
||||||
console.log('0',not_stock2);
|
|
||||||
this.TGsufficientList[0].isdisabled = true;
|
this.TGsufficientList[0].isdisabled = true;
|
||||||
this.TGsufficientList[2].isdisabled = false;
|
this.TGsufficientList[2].isdisabled = false;
|
||||||
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');
|
// this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');
|
||||||
}
|
}
|
||||||
console.log('Data',this.TGsufficientList);
|
|
||||||
// else if(not_stock == 0){
|
// else if(not_stock == 0){
|
||||||
// this.stockForms.controls['is_sufficiant_finished_and_traded_goods'].setValue('');
|
// this.stockForms.controls['is_sufficiant_finished_and_traded_goods'].setValue('');
|
||||||
// }
|
// }
|
||||||
|
|||||||
@ -31,10 +31,8 @@
|
|||||||
<input matInput placeholder="Raw Material Name" formControlName="manufacturing_raw_material_name">
|
<input matInput placeholder="Raw Material Name" formControlName="manufacturing_raw_material_name">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 45%">
|
<mat-form-field style="width: 45%">
|
||||||
<input matInput placeholder="Supplier Name" formControlName="manufacturing_supplier_name" required>
|
<input matInput placeholder="Supplier Name" formControlName="manufacturing_supplier_name">
|
||||||
<mat-error *ngIf="items.controls['manufacturing_supplier_name'].hasError('required')">Supplier Name Required</mat-error>
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="row nowrap">
|
<div fxLayout="row nowrap">
|
||||||
<mat-form-field style="width: 15%">
|
<mat-form-field style="width: 15%">
|
||||||
@ -169,8 +167,7 @@
|
|||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 45%">
|
<mat-form-field style="width: 45%">
|
||||||
<input matInput placeholder="Supplier Name" formControlName="trade_supplier_name" required>
|
<input matInput placeholder="Supplier Name" formControlName="trade_supplier_name">
|
||||||
<mat-error *ngIf="items.controls['trade_supplier_name'].hasError('required')">Supplier Name Required</mat-error>
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="row nowrap">
|
<div fxLayout="row nowrap">
|
||||||
|
|||||||
@ -91,11 +91,11 @@
|
|||||||
<button mat-raised-button class="mr-1 mb-1" color="primary" style="cursor: not-allowed !important;">
|
<button mat-raised-button class="mr-1 mb-1" color="primary" style="cursor: not-allowed !important;">
|
||||||
<strong> {{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Addon Pending' : master.pd_status | titlecase}}</strong>
|
<strong> {{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Addon Pending' : master.pd_status | titlecase}}</strong>
|
||||||
</button>
|
</button>
|
||||||
<button *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdMaster(master)" matTooltipPosition="above" matTooltip="Edit PD Master"><mat-icon>edit</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdMaster(master)" matTooltipPosition="above" matTooltip="Edit PD Master"><mat-icon>edit</mat-icon></button>
|
||||||
<button *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Trigger" matTooltipPosition="above" (click)="directTriggerPD(mandatoryFieldsValidations,master)"><mat-icon>flash_on</mat-icon></button>
|
<button *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Trigger" matTooltipPosition="above" (click)="directTriggerPD(mandatoryFieldsValidations,master)"><mat-icon>flash_on</mat-icon></button>
|
||||||
|
</span>
|
||||||
<button *ngIf="roleAccessDetails.reports && master.pd_type_name && currentPDStatus==pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="PD Report" matTooltipPosition="above" (click)="getPDIDReport(viewID)"><mat-icon>ballot</mat-icon></button>
|
<span *ngIf="userRoleID != 4 || userRoleID != 8 || userRoleID != 9"><button *ngIf="roleAccessDetails.reports && master.pd_type_name && currentPDStatus==pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="PD Report" matTooltipPosition="above" (click)="getPDIDReport(viewID)"><mat-icon>ballot</mat-icon></button></span>
|
||||||
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdListCompoent()"><mat-icon>close</mat-icon></button>
|
<span><button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdListCompoent()"><mat-icon>close</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <hr/> -->
|
<!-- <hr/> -->
|
||||||
@ -119,10 +119,10 @@
|
|||||||
{{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : master.pd_status | titlecase}}
|
{{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : master.pd_status | titlecase}}
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="60" align="right">
|
<div fxFlex="60" align="right">
|
||||||
<button *ngIf="roleAccessDetails.trigger && addresses.assigned_pd==null || addresses.assigned_pd==''" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" [matTooltip]="master.fk_primary_address_id ? 'Initiate PD for this address' : 'Initiate Address for PD Process'" matTooltipPosition="above" (click)="initiateAddtionalPD(master,addresses,master.fk_primary_address_id ? true : false)"><mat-icon>where_to_vote</mat-icon></button>
|
<span><button *ngIf="roleAccessDetails.trigger && addresses.assigned_pd==null || addresses.assigned_pd==''" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" [matTooltip]="master.fk_primary_address_id ? 'Initiate PD for this address' : 'Initiate Address for PD Process'" matTooltipPosition="above" (click)="initiateAddtionalPD(master,addresses,master.fk_primary_address_id ? true : false)"><mat-icon>where_to_vote</mat-icon></button></span>
|
||||||
<button *ngIf="roleAccessDetails.allocate && addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && master.pd_status!=pdStatusCheck.ADD_ON_PENDING && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button *ngIf="roleAccessDetails.allocate && addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && master.pd_status!=pdStatusCheck.ADD_ON_PENDING && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button></span>
|
||||||
<button *ngIf="roleAccessDetails.schedule && addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && master.pd_status!=pdStatusCheck.ADD_ON_PENDING && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button>
|
<span *ngIf="userRoleID != 6 || userRoleID != 7 || userRoleID != 8 || userRoleID != 9 "><button *ngIf="roleAccessDetails.schedule && addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && master.pd_status!=pdStatusCheck.ADD_ON_PENDING && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
|
||||||
<button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.TRIGGERED && enableStartPD" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,master.pd_status)"><mat-icon>question_answer</mat-icon></button>
|
<span *ngIf="userRoleID != 6 || userRoleID != 7 || userRoleID != 8 || userRoleID != 9 "><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.TRIGGERED && enableStartPD" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,master.pd_status)"><mat-icon>question_answer</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -161,9 +161,9 @@
|
|||||||
{{addresses.addtional_pd_data[0].pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : addresses.addtional_pd_data[0].pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : addresses.addtional_pd_data[0].pd_status | titlecase}}
|
{{addresses.addtional_pd_data[0].pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : addresses.addtional_pd_data[0].pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : addresses.addtional_pd_data[0].pd_status | titlecase}}
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="60" align="right">
|
<div fxFlex="60" align="right">
|
||||||
<button *ngIf="roleAccessDetails.allocate && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.COMPLETED && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.ADD_ON_PENDING && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button *ngIf="roleAccessDetails.allocate && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.COMPLETED && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.ADD_ON_PENDING && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button></span>
|
||||||
<button *ngIf="roleAccessDetails.schedule && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.COMPLETED && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.ADD_ON_PENDING && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button>
|
<span *ngIf="userRoleID != 6 || userRoleID != 7 || userRoleID != 8 || userRoleID != 9 "><button *ngIf="roleAccessDetails.schedule && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.COMPLETED && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.ADD_ON_PENDING && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
|
||||||
<button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.TRIGGERED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].pd_status)"><mat-icon>question_answer</mat-icon></button>
|
<span *ngIf="userRoleID != 6 || userRoleID != 7 || userRoleID != 8 || userRoleID != 9 "><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.TRIGGERED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].pd_status)"><mat-icon>question_answer</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="row nowrap">
|
<div fxLayout="row nowrap">
|
||||||
@ -245,7 +245,7 @@
|
|||||||
<mat-card-title>Applicants</mat-card-title>
|
<mat-card-title>Applicants</mat-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED">
|
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED">
|
||||||
<button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdApplicant(pdApplicantData,CustomerSegmentAbbr)"><mat-icon>edit</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdApplicant(pdApplicantData,CustomerSegmentAbbr)"><mat-icon>edit</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</mat-card-header>
|
</mat-card-header>
|
||||||
|
|
||||||
@ -289,7 +289,7 @@
|
|||||||
<mat-card-title>Additional Requirements</mat-card-title>
|
<mat-card-title>Additional Requirements</mat-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED">
|
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="roleAccessDetails.trigger && currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED">
|
||||||
<button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editAdditionalRequirement(pdAdditionalReqData)"><mat-icon>edit</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editAdditionalRequirement(pdAdditionalReqData)"><mat-icon>edit</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</mat-card-header>
|
</mat-card-header>
|
||||||
<mat-card-content *ngIf="pdAdditionalReqData.length>0; else noRequirement">
|
<mat-card-content *ngIf="pdAdditionalReqData.length>0; else noRequirement">
|
||||||
|
|||||||
@ -28,7 +28,7 @@ import Swal from 'sweetalert2';
|
|||||||
export class ViewPdComponent implements OnInit, OnDestroy {
|
export class ViewPdComponent implements OnInit, OnDestroy {
|
||||||
pipe = new DatePipe('en-US');
|
pipe = new DatePipe('en-US');
|
||||||
private notifier: NotifierService;
|
private notifier: NotifierService;
|
||||||
|
public userRoleID = localStorage.getItem('user_role');
|
||||||
errorMessage: any;
|
errorMessage: any;
|
||||||
pdMasterData: any = [];
|
pdMasterData: any = [];
|
||||||
pdAddressesData: any = [];
|
pdAddressesData: any = [];
|
||||||
@ -118,9 +118,9 @@ export class ViewPdComponent implements OnInit, OnDestroy {
|
|||||||
this.masterPdLogsData = Object.keys(data.records.pd_logs.master).map(function (key) {
|
this.masterPdLogsData = Object.keys(data.records.pd_logs.master).map(function (key) {
|
||||||
return data.records.pd_logs.master[key];
|
return data.records.pd_logs.master[key];
|
||||||
});
|
});
|
||||||
// console.log('data.records.pd_addressdata', data.records.pd_addressdata);
|
|
||||||
this.pdMasterData[0].addresses = data.records.pd_address.filter(item => item.isactive == 1);
|
this.pdMasterData[0].addresses = data.records.pd_address.filter(item => item.isactive == 1);
|
||||||
console.log('this.pdMasterData[0].addresses', this.pdMasterData[0].addresses);
|
|
||||||
this.currentPDStatus = data.records.pd_master_details[0].pd_status;
|
this.currentPDStatus = data.records.pd_master_details[0].pd_status;
|
||||||
this.pdAdditionalReqData = data.records.pd_additional_requirements;
|
this.pdAdditionalReqData = data.records.pd_additional_requirements;
|
||||||
// enable pd start time
|
// enable pd start time
|
||||||
@ -212,7 +212,6 @@ export class ViewPdComponent implements OnInit, OnDestroy {
|
|||||||
.subscribe(dataresult => {
|
.subscribe(dataresult => {
|
||||||
if (flag == 1) {
|
if (flag == 1) {
|
||||||
let ffd: any = [];
|
let ffd: any = [];
|
||||||
console.log('this.FilteredFieldNames',this.FilteredFieldNames);
|
|
||||||
this.FilteredFieldNames.forEach(field => {
|
this.FilteredFieldNames.forEach(field => {
|
||||||
ffd.push(field.frontEnd_FieldName);
|
ffd.push(field.frontEnd_FieldName);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -98,10 +98,10 @@
|
|||||||
<button mat-raised-button class="mr-1 mb-1" color="primary" style="cursor: not-allowed !important;">
|
<button mat-raised-button class="mr-1 mb-1" color="primary" style="cursor: not-allowed !important;">
|
||||||
<strong> {{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Addon Pending' : master.pd_status | titlecase}}</strong>
|
<strong> {{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Addon Pending' : master.pd_status | titlecase}}</strong>
|
||||||
</button>
|
</button>
|
||||||
<button *ngIf="currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED || currentPDStatus==pdStatusCheck.COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdMaster(master)" matTooltipPosition="above" matTooltip="Edit PD Master"><mat-icon>edit</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button *ngIf="currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED || currentPDStatus==pdStatusCheck.COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdMaster(master)" matTooltipPosition="above" matTooltip="Edit PD Master"><mat-icon>edit</mat-icon></button></span>
|
||||||
<!-- <button *ngIf="currentPDStatus==pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Trigger" matTooltipPosition="above" (click)="directTriggerPD(mandatoryFieldsValidations,master)"><mat-icon>flash_on</mat-icon></button> -->
|
<!-- <button *ngIf="currentPDStatus==pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Trigger" matTooltipPosition="above" (click)="directTriggerPD(mandatoryFieldsValidations,master)"><mat-icon>flash_on</mat-icon></button> -->
|
||||||
|
|
||||||
<button *ngIf="master.pd_type_name && currentPDStatus==pdStatusCheck.COMPLETED || currentPDStatus==pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="PD Report" matTooltipPosition="above" (click)="getPDIDReport(viewID)"><mat-icon>ballot</mat-icon></button>
|
<span *ngIf="userRoleID != 4 || userRoleID != 8 || userRoleID != 9"><button *ngIf="master.pd_type_name && currentPDStatus==pdStatusCheck.COMPLETED || currentPDStatus==pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="PD Report" matTooltipPosition="above" (click)="getPDIDReport(viewID)"><mat-icon>ballot</mat-icon></button></span>
|
||||||
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdListCompoent()"><mat-icon>close</mat-icon></button>
|
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdListCompoent()"><mat-icon>close</mat-icon></button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -125,8 +125,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div fxFlex="60" align="right">
|
<div fxFlex="60" align="right">
|
||||||
<button *ngIf="addresses.assigned_pd==null || addresses.assigned_pd==''" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" [matTooltip]="master.fk_primary_address_id ? 'Initiate Address for Additional PD Process' : 'Initiate Address for PD Process'" matTooltipPosition="above" (click)="initiateAddtionalPD(master,addresses,master.fk_primary_address_id ? true : false)"><mat-icon>where_to_vote</mat-icon></button>
|
<button *ngIf="addresses.assigned_pd==null || addresses.assigned_pd==''" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" [matTooltip]="master.fk_primary_address_id ? 'Initiate Address for Additional PD Process' : 'Initiate Address for PD Process'" matTooltipPosition="above" (click)="initiateAddtionalPD(master,addresses,master.fk_primary_address_id ? true : false)"><mat-icon>where_to_vote</mat-icon></button>
|
||||||
<button *ngIf="addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button *ngIf="addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button></span>
|
||||||
<button *ngIf="addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button>
|
<span *ngIf="userRoleID != 6 || userRoleID != 7 || userRoleID != 8 || userRoleID != 9 "><button *ngIf="addresses.assigned_pd && master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -166,8 +166,8 @@
|
|||||||
{{addresses.addtional_pd_data[0].pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : addresses.addtional_pd_data[0].pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : addresses.addtional_pd_data[0].pd_status | titlecase}}
|
{{addresses.addtional_pd_data[0].pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : addresses.addtional_pd_data[0].pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : addresses.addtional_pd_data[0].pd_status | titlecase}}
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="60" align="right">
|
<div fxFlex="60" align="right">
|
||||||
<button *ngIf="addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button *ngIf="addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button></span>
|
||||||
<button *ngIf="addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button>
|
<span *ngIf="userRoleID != 6 || userRoleID != 7 || userRoleID != 8 || userRoleID != 9 "><button *ngIf="addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].pd_status!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="row nowrap">
|
<div fxLayout="row nowrap">
|
||||||
@ -247,7 +247,7 @@
|
|||||||
<mat-card-title>Applicants</mat-card-title>
|
<mat-card-title>Applicants</mat-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED || currentPDStatus==pdStatusCheck.COMPLETED">
|
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED || currentPDStatus==pdStatusCheck.COMPLETED">
|
||||||
<button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdApplicant(pdApplicantData)"><mat-icon>edit</mat-icon></button>
|
<!-- <span *ngIf="userRoleID == 10 || userRoleID == 3"><button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editPdApplicant(pdApplicantData)"><mat-icon>edit</mat-icon></button></span> -->
|
||||||
</div>
|
</div>
|
||||||
</mat-card-header>
|
</mat-card-header>
|
||||||
|
|
||||||
@ -291,7 +291,7 @@
|
|||||||
<mat-card-title>Additional Requirements</mat-card-title>
|
<mat-card-title>Additional Requirements</mat-card-title>
|
||||||
</div>
|
</div>
|
||||||
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED || currentPDStatus==pdStatusCheck.COMPLETED">
|
<div fxFlex="30" align="end" style="padding: 10px !important;" *ngIf="currentPDStatus==pdStatusCheck.DRAFT || currentPDStatus==pdStatusCheck.TRIGGERED || currentPDStatus==pdStatusCheck.ALLOCATED || currentPDStatus==pdStatusCheck.SCHEDULED || currentPDStatus==pdStatusCheck.COMPLETED">
|
||||||
<button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editAdditionalRequirement(pdAdditionalReqData)"><mat-icon>edit</mat-icon></button>
|
<span *ngIf="userRoleID == 10 || userRoleID == 3"><button mat-raised-button mat-button-sm mat-icon-button class="mr-1 mb-1 hover-icon" type="button" (click)="editAdditionalRequirement(pdAdditionalReqData)"><mat-icon>edit</mat-icon></button></span>
|
||||||
</div>
|
</div>
|
||||||
</mat-card-header>
|
</mat-card-header>
|
||||||
<mat-card-content *ngIf="pdAdditionalReqData.length>0; else noRequirement">
|
<mat-card-content *ngIf="pdAdditionalReqData.length>0; else noRequirement">
|
||||||
|
|||||||
@ -37,6 +37,7 @@ export class QcViewComponent implements OnInit, OnDestroy {
|
|||||||
currentPDStatus:string;
|
currentPDStatus:string;
|
||||||
pdAdditionalReqData: any=[];
|
pdAdditionalReqData: any=[];
|
||||||
enableStartPD: boolean;
|
enableStartPD: boolean;
|
||||||
|
public userRoleID = localStorage.getItem('user_role');
|
||||||
// create values for status check
|
// create values for status check
|
||||||
pdStatusCheck :any={
|
pdStatusCheck :any={
|
||||||
"DRAFT" :'DRAFT',
|
"DRAFT" :'DRAFT',
|
||||||
|
|||||||
217
ng6-seed/src/app/reports/pd-mis/pd-mis.component.html
Normal file
217
ng6-seed/src/app/reports/pd-mis/pd-mis.component.html
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
<!-- <div *ngIf="listView"> -->
|
||||||
|
<mat-card>
|
||||||
|
<div fxLayout="row" fxLayoutAlign="start center" class="mb-1">
|
||||||
|
<div class="ml-xs mr-xs" style="width: 100%;">
|
||||||
|
<mat-card-title><span> PD MIS Report </span>
|
||||||
|
<button class="btn_export" mat-raised-button color="primary" (click)="ExportTOExcel()" >Export CSV</button>
|
||||||
|
</mat-card-title>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<mat-card-content>
|
||||||
|
|
||||||
|
<div class="filter-container mat-elevation-z8">
|
||||||
|
|
||||||
|
<div fxLayout="row" fxLayoutAlign="start center" class="filter-header">
|
||||||
|
<div *ngIf="!noRecordFound" class="ml-xs mr-xs" style="width: 100%;">
|
||||||
|
<form [formGroup]="reportform">
|
||||||
|
<mat-expansion-panel>
|
||||||
|
<mat-expansion-panel-header>
|
||||||
|
<mat-panel-title class="text-xs-left">
|
||||||
|
<h6 class="mt-0">
|
||||||
|
<mat-icon>filter_list</mat-icon> Filter</h6>
|
||||||
|
</mat-panel-title>
|
||||||
|
|
||||||
|
</mat-expansion-panel-header>
|
||||||
|
<div>
|
||||||
|
<mat-form-field dividerColor="primary" class="ml-xs mr-xs" style="width: 30%;">
|
||||||
|
<input matInput type="text" placeholder="Application ID" formControlName="applicant_id">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field color="accent" class="date1 ml-xs mr-xs" style="width: 30%;">
|
||||||
|
<mat-label>From Date</mat-label>
|
||||||
|
<input matInput [max]="maxDate" [matDatepicker]="picker1" formControlName="from_date" (dateChange)="getDateObjects($event.target.value)">
|
||||||
|
<mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
|
||||||
|
<mat-datepicker #picker1 color="primary"></mat-datepicker>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field color="accent" class="date2 ml-xs mr-xs" style="width: 30%;">
|
||||||
|
<mat-label>To Date</mat-label>
|
||||||
|
<input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="picker2" formControlName="to_date" >
|
||||||
|
<mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
|
||||||
|
<mat-datepicker #picker2 color="primary"></mat-datepicker>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field dividerColor="primary" class="ml-xs mr-xs" style="width: 30%;">
|
||||||
|
<input matInput type="text" placeholder="City" formControlName="city">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field dividerColor="primary" class="ml-xs mr-xs" style="width: 30%;">
|
||||||
|
<input matInput type="text" placeholder="Branch" formControlName="branch">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<div align="right">
|
||||||
|
<button type="button" mat-raised-button mat-icon-button
|
||||||
|
matTooltip="Search" matTooltipPosition="above" class="mr-1 mb-1 hover-icon" color="primary" type="button" (click)="searchform(reportform.value)">
|
||||||
|
<mat-icon>search</mat-icon>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</mat-expansion-panel>
|
||||||
|
</form>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="noRecordFound" class="nocontent ml-xs mr-xs" style="width: 80%;">No records found</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="example-container mat-elevation-z8 " #TABLE>
|
||||||
|
<table mat-table #table *ngIf="!noRecordFound" [dataSource]="dataSource" matSort>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="serialno" sticky>
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header>Sl </th>
|
||||||
|
<td mat-cell *matCellDef="let row; let i = index;"> {{row.serialno}} </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="applicant" sticky>
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name of the Main Applicant </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.applicant" mat-line>{{row.applicant}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="application_id">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Lender Ref No </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.application_id" mat-line>{{row.application_id}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="sineedge_ref_no">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Sineedge Ref No </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.sineedge_ref" mat-line>{{row.sineedge_ref}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="created_on">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Created </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.created_on" mat-line> {{row.created_on | date: 'dd-MM-yyyy'}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="name_of_underwriter">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name of Underwriter </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.lender" mat-line>{{row.lender}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<!--<ng-container matColumnDef="Contact Person at IMGC">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Contact Person at IMGC </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.branch" mat-line>{{row.branch}}</span> </td>
|
||||||
|
</ng-container> -->
|
||||||
|
|
||||||
|
<!-- <ng-container matColumnDef="designation_of_contact_person">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Designation of contact person </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.branch" mat-line>{{row.branch}}</span> </td>
|
||||||
|
</ng-container> -->
|
||||||
|
|
||||||
|
<ng-container matColumnDef="lender_contact_person">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Lender Contact Person </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.lender_contact" mat-line>{{row.lender_contact}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="branch">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Lender Branch </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.branch" mat-line>{{row.branch}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="city">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> PD City </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.city" mat-line>{{row.city}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="ocl">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Outside City Limits (Yes/No) </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.is_outside_city_limit" mat-line>{{row.is_outside_city_limit}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="receiving_pd_date">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Date & Time of receiving PD Request
|
||||||
|
DD:MM:YY HH:MM </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.triggered" mat-line>{{row.triggered | date: 'dd-MM-yyyy hh:mm a'}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="confirmation_pd_date">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Date & Time of Confirmation from PD Officer that PD fixed
|
||||||
|
DD:MM:YY HH:MM</th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.scheduled" mat-line>{{row.scheduled | date: 'dd-MM-yyyy hh:mm a'}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="start_of_conducting_pd_date">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Date & Time of Start of conducting PD
|
||||||
|
DD:MM:YY HH:MM</th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.started" mat-line>{{row.started | date: 'dd-MM-yyyy hh:mm a'}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="end_of_conducting_pd_date">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Date & Time of End of conducting PD
|
||||||
|
DD:MM:YY HH:MM</th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.complete" mat-line>{{row.complete | date: 'dd-MM-yyyy hh:mm a'}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="sending_pd_report_date">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Date & Time of sending PD Report to IMGC
|
||||||
|
DD:MM:YY HH:MM
|
||||||
|
</th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.qc_complete" mat-line>{{row.qc_complete | date: 'dd-MM-yyyy hh:mm a'}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
|
||||||
|
<ng-container matColumnDef="agency_name">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> PD Agency Name </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.pd_agency" mat-line>{{row.pd_agency}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="officer_name">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> PD officer`s Name </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.pd_officer" mat-line>{{row.pd_officer}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="pd_status">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Status of the PD </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.current_status" mat-line>{{row.current_status}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container matColumnDef="remark">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Earlier Remarks on Status for Reference
|
||||||
|
(Status 'as on Date' given in Bracket ..DD/MM) </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.remarks" mat-line>{{row.remarks}}</span> </td>
|
||||||
|
</ng-container>
|
||||||
|
<!-- <ng-container matColumnDef="overall_tat">
|
||||||
|
<th mat-header-cell *matHeaderCellDef mat-sort-header> Overall TAT from initiation till current stage </th>
|
||||||
|
<td mat-cell *matCellDef="let row">
|
||||||
|
<span *ngIf="row.current_status" mat-line>{{row.current_status}}</span> </td>
|
||||||
|
</ng-container> -->
|
||||||
|
|
||||||
|
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
|
||||||
|
<tr mat-row *matRowDef="let row; columns: displayedColumns;">
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<mat-paginator *ngIf="!noRecordFound" [pageSize]="pageSize" [pageSizeOptions]="[5, 10, 25, 50, 100]" showFirstLastButtons></mat-paginator>
|
||||||
|
</div>
|
||||||
|
</mat-card-content>
|
||||||
|
</mat-card>
|
||||||
|
<!-- </div> -->
|
||||||
|
<!-- <div *ngIf="!listView">
|
||||||
|
<app-pd-team-edit [childMessage]="parentMessage"></app-pd-team-edit>
|
||||||
|
</div> -->
|
||||||
61
ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss
Normal file
61
ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/** Card title */
|
||||||
|
.mat-card-title{
|
||||||
|
font-size: 25px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Table CSS -nocontent */
|
||||||
|
.nocontent {
|
||||||
|
color: red;
|
||||||
|
font-size: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
min-width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filter-header {
|
||||||
|
min-height: 64px;
|
||||||
|
padding: 8px 24px 0;
|
||||||
|
}
|
||||||
|
.date1{
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
.date2{
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn_export
|
||||||
|
{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.example-container {
|
||||||
|
max-height: 600px;
|
||||||
|
width: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
margin-top: 2%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-header-cell {
|
||||||
|
padding: 0 10px 0 10px;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
font-size: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-cell {
|
||||||
|
padding: 0 10px 0 10px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-table-sticky {
|
||||||
|
border-right: 1px solid #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mat-footer-cell {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.2rem !important;
|
||||||
|
padding: 0 10px 0 10px;
|
||||||
|
}
|
||||||
25
ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts
Normal file
25
ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { PdMisComponent } from './pd-mis.component';
|
||||||
|
|
||||||
|
describe('PdMisComponent', () => {
|
||||||
|
let component: PdMisComponent;
|
||||||
|
let fixture: ComponentFixture<PdMisComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ PdMisComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(PdMisComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
237
ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts
Normal file
237
ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
import { Component, OnInit ,ViewChild,ElementRef,OnDestroy} from '@angular/core';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { ReportsService } from '../reports.service';
|
||||||
|
import { DatePipe } from '@angular/common';
|
||||||
|
import { FormGroup, FormControl,FormBuilder } from '@angular/forms';
|
||||||
|
import * as XLSX from 'xlsx';
|
||||||
|
import { MatSort,MatPaginator, MatTableDataSource } from '@angular/material';
|
||||||
|
import Swal from 'sweetalert2';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-pd-mis',
|
||||||
|
templateUrl: './pd-mis.component.html',
|
||||||
|
styleUrls: ['./pd-mis.component.scss']
|
||||||
|
})
|
||||||
|
export class PdMisComponent implements OnInit {
|
||||||
|
|
||||||
|
pipe = new DatePipe('en-US');
|
||||||
|
color = 'primary';
|
||||||
|
pageSize = 10;
|
||||||
|
userData = null;
|
||||||
|
noRecordFound: boolean = false;
|
||||||
|
maxDate: any;
|
||||||
|
minDate: any;
|
||||||
|
array_value:any=[];
|
||||||
|
|
||||||
|
public reportform: FormGroup;
|
||||||
|
public dataLength: number;
|
||||||
|
public dataSource = new MatTableDataSource();
|
||||||
|
|
||||||
|
displayedColumns = ['serialno',
|
||||||
|
'applicant',
|
||||||
|
'application_id',
|
||||||
|
'sineedge_ref_no',
|
||||||
|
'created_on',
|
||||||
|
'name_of_underwriter',
|
||||||
|
'lender_contact_person',
|
||||||
|
'branch',
|
||||||
|
'city',
|
||||||
|
'ocl',
|
||||||
|
'receiving_pd_date',
|
||||||
|
'confirmation_pd_date',
|
||||||
|
'start_of_conducting_pd_date',
|
||||||
|
'end_of_conducting_pd_date',
|
||||||
|
'sending_pd_report_date',
|
||||||
|
'agency_name',
|
||||||
|
'officer_name',
|
||||||
|
'pd_status'];
|
||||||
|
|
||||||
|
@ViewChild(MatPaginator) paginator: MatPaginator;
|
||||||
|
@ViewChild(MatSort) sort: MatSort;
|
||||||
|
@ViewChild('TABLE') table: ElementRef;
|
||||||
|
|
||||||
|
constructor(private reportsService:ReportsService,private route:ActivatedRoute,private router:Router,private form_builder:FormBuilder) {
|
||||||
|
this.reportform = this.form_builder.group({ from_date:[null],to_date:[null],city:[null],branch:[null],applicant_id:[null] });
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit(){
|
||||||
|
this.maxDate = new Date();
|
||||||
|
this.getPDMISDailyReportContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
getPDMISDailyReportContent() {
|
||||||
|
|
||||||
|
this.reportsService.getPDMISDailyReport().subscribe(
|
||||||
|
data => {
|
||||||
|
|
||||||
|
if(data.dataStatus == true){
|
||||||
|
|
||||||
|
this.noRecordFound = false;
|
||||||
|
this.userData = data.records;
|
||||||
|
this.dataLength = data.records.length;
|
||||||
|
if(data.records.length >= 1){
|
||||||
|
this.userData = this.userData.map((val, i)=>{
|
||||||
|
val['serialno'] = i + 1;
|
||||||
|
return val;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.dataSource.data = this.userData;
|
||||||
|
}else{
|
||||||
|
this.noRecordFound = true;
|
||||||
|
this.dataLength = 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
ExportTOExcel()
|
||||||
|
{
|
||||||
|
const ws: XLSX.WorkSheet=XLSX.utils.table_to_sheet(this.table.nativeElement);
|
||||||
|
const wb: XLSX.WorkBook = XLSX.utils.book_new();
|
||||||
|
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
|
||||||
|
|
||||||
|
/* save to file */
|
||||||
|
XLSX.writeFile(wb, 'Daily MIS Report.xlsx');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ngAfterViewInit() {
|
||||||
|
|
||||||
|
this.dataSource.paginator = this.paginator;
|
||||||
|
this.dataSource.sort = this.sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** For Display Tables Filtering */
|
||||||
|
applyFilter(filterValue: string) {
|
||||||
|
filterValue = filterValue.trim(); // Remove whitespace
|
||||||
|
filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches
|
||||||
|
this.dataSource.filter = filterValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
searchform(value:any){
|
||||||
|
|
||||||
|
this.reportsService.getPDMISDailyReport().subscribe(
|
||||||
|
data => {
|
||||||
|
if(data['dataStatus']==true)
|
||||||
|
{
|
||||||
|
this.array_value = data.records;
|
||||||
|
|
||||||
|
if(value.applicant_id !== null && value.applicant_id != ''){
|
||||||
|
this.array_value = this.filterForApplicantID(this.array_value,value.applicant_id);
|
||||||
|
}
|
||||||
|
if(value.city !== null && value.city != ''){
|
||||||
|
this.array_value = this.filterForCity(this.array_value,value.city);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(value.branch !== null && value.branch != ''){
|
||||||
|
// this.array_value = this.array_value.filter(val => val.branch == value.branch );
|
||||||
|
// this.array_value = this.array_value.filter(val => this.customFilter(val,value.brach,3));
|
||||||
|
this.array_value = this.filterForBranch(this.array_value,value.branch);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(value.from_date !== null && value.to_date !== null){
|
||||||
|
// console.log('value',value.from_date);
|
||||||
|
// console.log('value',value.to_date);
|
||||||
|
let from_Date = this.pipe.transform(value.from_date,'yyyy-MM-dd HH:mm:ss');
|
||||||
|
let to_Date = this.pipe.transform(value.to_date,'yyyy-MM-dd HH:mm:ss');
|
||||||
|
this.array_value = this.array_value.filter(val => val.created_on >= from_Date && val.created_on <= to_Date );
|
||||||
|
// console.log('this.array_value',this.array_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(this.array_value);
|
||||||
|
|
||||||
|
this.noRecordFound = false;
|
||||||
|
this.dataLength = this.array_value.length;
|
||||||
|
if(this.array_value.length >= 1){
|
||||||
|
this.userData = this.array_value.map((val, i)=>{
|
||||||
|
val['serialno'] = i + 1;
|
||||||
|
return val;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.dataSource.data = this.array_value;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.dataSource.data = this.array_value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
filterForApplicantID(arrayData: any, Values: any) {
|
||||||
|
Values = Values.toLowerCase();
|
||||||
|
if (Values) {
|
||||||
|
|
||||||
|
let Filter: any = [];
|
||||||
|
|
||||||
|
let getAllApplicationIDOnly = arrayData.map(v => v.application_id.replace(/[^A-Za-z0-9]/ig, "").toLowerCase());
|
||||||
|
|
||||||
|
let searched_filter_array = getAllApplicationIDOnly.filter(val => val.includes(Values));
|
||||||
|
|
||||||
|
Filter = searched_filter_array.map(x => {
|
||||||
|
let findIndex = getAllApplicationIDOnly.indexOf(x);
|
||||||
|
return arrayData[findIndex];
|
||||||
|
});
|
||||||
|
|
||||||
|
return Filter.length > 0 ? Filter : arrayData;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return arrayData;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filterForCity(arrayData: any, Values: any) {
|
||||||
|
Values = Values.toLowerCase();
|
||||||
|
if (Values) {
|
||||||
|
let Filter: any = [];
|
||||||
|
|
||||||
|
let getAllCityOnly = arrayData.map(v => v.city.replace(/[^A-Za-z0-9]/ig, "").toLowerCase());
|
||||||
|
|
||||||
|
let searched_filter_array = getAllCityOnly.filter(val => val.includes(Values));
|
||||||
|
|
||||||
|
Filter = searched_filter_array.map(x => {
|
||||||
|
let findIndex = getAllCityOnly.indexOf(x);
|
||||||
|
return arrayData[findIndex];
|
||||||
|
});
|
||||||
|
|
||||||
|
return Filter.length > 0 ? Filter : arrayData;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return arrayData;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filterForBranch(arrayData: any, Values: any) {
|
||||||
|
Values = Values.toLowerCase();
|
||||||
|
if (Values) {
|
||||||
|
let Filter: any = [];
|
||||||
|
|
||||||
|
let getAllBranchOnly = arrayData.map(v => v.branch.replace(/[^A-Za-z0-9]/ig, "").toLowerCase());
|
||||||
|
|
||||||
|
let searched_filter_array = getAllBranchOnly.filter(val => val.includes(Values));
|
||||||
|
|
||||||
|
Filter = searched_filter_array.map(x => {
|
||||||
|
let findIndex = getAllBranchOnly.indexOf(x);
|
||||||
|
return arrayData[findIndex];
|
||||||
|
});
|
||||||
|
|
||||||
|
return Filter.length > 0 ? Filter : arrayData;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return arrayData;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// customFilter(array,value,flag){
|
||||||
|
// if(flag == 3){
|
||||||
|
// var str = array.branch.split("").join("").toLowercase();
|
||||||
|
// return str.includes(value)?array:null;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
getDateObjects(values: any) {
|
||||||
|
|
||||||
|
let selected_date = this.pipe.transform(values, 'yyyy/MM/dd');
|
||||||
|
this.minDate = new Date(selected_date);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
16
ng6-seed/src/app/reports/reports-routing.module.ts
Normal file
16
ng6-seed/src/app/reports/reports-routing.module.ts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
import { PdMisComponent } from './pd-mis/pd-mis.component';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path:'',
|
||||||
|
component:PdMisComponent
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule]
|
||||||
|
})
|
||||||
|
export class ReportsRoutingModule { }
|
||||||
13
ng6-seed/src/app/reports/reports.module.spec.ts
Normal file
13
ng6-seed/src/app/reports/reports.module.spec.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { ReportsModule } from './reports.module';
|
||||||
|
|
||||||
|
describe('ReportsModule', () => {
|
||||||
|
let reportsModule: ReportsModule;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
reportsModule = new ReportsModule();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create an instance', () => {
|
||||||
|
expect(reportsModule).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
102
ng6-seed/src/app/reports/reports.module.ts
Normal file
102
ng6-seed/src/app/reports/reports.module.ts
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { MatInputModule } from '@angular/material';
|
||||||
|
import { ReportsRoutingModule } from './reports-routing.module';
|
||||||
|
import { PdMisComponent } from './pd-mis/pd-mis.component';
|
||||||
|
import {MatDatepickerModule} from '@angular/material/datepicker';
|
||||||
|
|
||||||
|
import {
|
||||||
|
MatCardModule,
|
||||||
|
MatIconModule,
|
||||||
|
MatRadioModule,
|
||||||
|
MatButtonModule,
|
||||||
|
MatSelectModule,
|
||||||
|
MatDialogModule,
|
||||||
|
MatProgressBarModule,MatToolbarModule,MatCheckboxModule,
|
||||||
|
MatTableModule,MatPaginatorModule,MatSortModule} from '@angular/material';
|
||||||
|
import {MatSlideToggleModule} from '@angular/material/slide-toggle';
|
||||||
|
import {MatFormFieldModule} from '@angular/material/form-field'
|
||||||
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||||
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
|
import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
|
||||||
|
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
|
||||||
|
import { NotifierModule, NotifierOptions } from 'angular-notifier';
|
||||||
|
import { DragulaModule } from 'ng2-dragula';
|
||||||
|
import {MatListModule} from '@angular/material/list';
|
||||||
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
|
import { ReportsService } from '../reports/reports.service';
|
||||||
|
import {MatExpansionModule} from '@angular/material/expansion';
|
||||||
|
const customNotifierOptions: NotifierOptions = {
|
||||||
|
position: {
|
||||||
|
horizontal: {
|
||||||
|
position: 'right',
|
||||||
|
distance: 12
|
||||||
|
},
|
||||||
|
vertical: {
|
||||||
|
position: 'top',
|
||||||
|
distance: 32,
|
||||||
|
gap: 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
theme: 'material',
|
||||||
|
behaviour: {
|
||||||
|
autoHide: 5000,
|
||||||
|
onClick: 'hide',
|
||||||
|
onMouseover: 'pauseAutoHide',
|
||||||
|
showDismissButton: true,
|
||||||
|
stacking: 4
|
||||||
|
},
|
||||||
|
animations: {
|
||||||
|
enabled: true,
|
||||||
|
show: {
|
||||||
|
preset: 'slide',
|
||||||
|
speed: 300,
|
||||||
|
easing: 'ease'
|
||||||
|
},
|
||||||
|
hide: {
|
||||||
|
preset: 'fade',
|
||||||
|
speed: 300,
|
||||||
|
easing: 'ease',
|
||||||
|
offset: 50
|
||||||
|
},
|
||||||
|
shift: {
|
||||||
|
speed: 300,
|
||||||
|
easing: 'ease'
|
||||||
|
},
|
||||||
|
overlap: 150
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
MatExpansionModule,
|
||||||
|
CommonModule,
|
||||||
|
MatFormFieldModule,
|
||||||
|
MatInputModule,
|
||||||
|
ReportsRoutingModule,
|
||||||
|
FormsModule, ReactiveFormsModule,
|
||||||
|
MatCardModule,
|
||||||
|
MatIconModule,
|
||||||
|
MatInputModule,
|
||||||
|
MatRadioModule,
|
||||||
|
MatButtonModule,
|
||||||
|
MatTableModule,
|
||||||
|
MatPaginatorModule,
|
||||||
|
MatProgressBarModule,
|
||||||
|
MatDialogModule,
|
||||||
|
MatSortModule,
|
||||||
|
MatSelectModule,
|
||||||
|
FlexLayoutModule,
|
||||||
|
NgxMatSelectSearchModule,
|
||||||
|
NgxDatatableModule,
|
||||||
|
MatSlideToggleModule,
|
||||||
|
MatTooltipModule,
|
||||||
|
MatListModule,DragulaModule,
|
||||||
|
MatDatepickerModule,
|
||||||
|
NotifierModule.withConfig(customNotifierOptions),
|
||||||
|
],
|
||||||
|
exports: [MatExpansionModule],
|
||||||
|
declarations: [PdMisComponent],
|
||||||
|
providers:[ReportsService]
|
||||||
|
})
|
||||||
|
export class ReportsModule { }
|
||||||
12
ng6-seed/src/app/reports/reports.service.spec.ts
Normal file
12
ng6-seed/src/app/reports/reports.service.spec.ts
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { ReportsService } from './reports.service';
|
||||||
|
|
||||||
|
describe('ReportsService', () => {
|
||||||
|
beforeEach(() => TestBed.configureTestingModule({}));
|
||||||
|
|
||||||
|
it('should be created', () => {
|
||||||
|
const service: ReportsService = TestBed.get(ReportsService);
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
29
ng6-seed/src/app/reports/reports.service.ts
Normal file
29
ng6-seed/src/app/reports/reports.service.ts
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { HttpClient } from '@angular/common/http';
|
||||||
|
import { Observable,of } from 'rxjs';
|
||||||
|
|
||||||
|
/** Imported Service Files Are., */
|
||||||
|
import { AwsService } from '../AwsService/aws.service';
|
||||||
|
|
||||||
|
/** Environment */
|
||||||
|
import { environment } from 'environments/environment'
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class ReportsService {
|
||||||
|
// baseUrl = 'http://192.168.0.14/kani/sine_db/sparqapi/api/PD_MIS_report';
|
||||||
|
private apiUrl = environment.apiEndpoint;
|
||||||
|
|
||||||
|
constructor(private _http: HttpClient,private _aws: AwsService) {}
|
||||||
|
|
||||||
|
// getPDMISDailyReportLocal(): Observable<any> {
|
||||||
|
// return this._http.get(this.baseUrl);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// get Details
|
||||||
|
getPDMISDailyReport(): Observable<any> {
|
||||||
|
return this._http.get(this.apiUrl + 'PD_MIS_report');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -30,7 +30,7 @@ const HORIZONTALMENUITEMS = [
|
|||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
state:'setting',
|
state:'setting',
|
||||||
name:'Settings',
|
name:'Manage',
|
||||||
type:'multi',
|
type:'multi',
|
||||||
icon:'settings',
|
icon:'settings',
|
||||||
children:[
|
children:[
|
||||||
@ -59,6 +59,12 @@ const HORIZONTALMENUITEMS = [
|
|||||||
type:'link',
|
type:'link',
|
||||||
icon:'done_all',
|
icon:'done_all',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
state:'reports',
|
||||||
|
name:'Reports',
|
||||||
|
type:'link',
|
||||||
|
icon:'report',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|||||||
@ -86,8 +86,13 @@ const MENUITEMS : Menu[] = [
|
|||||||
name:'Quality Check',
|
name:'Quality Check',
|
||||||
type:'link',
|
type:'link',
|
||||||
icon:'done_all',
|
icon:'done_all',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
state:'reports',
|
||||||
|
name:'Reports',
|
||||||
|
type:'link',
|
||||||
|
icon:'report',
|
||||||
}
|
}
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|||||||
BIN
ng6-seed/src/assets/images/defaultuserimage.png
Normal file
BIN
ng6-seed/src/assets/images/defaultuserimage.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
Loading…
Reference in New Issue
Block a user