From 992e8d5375502d5be0fb7389933ec5da073f24be Mon Sep 17 00:00:00 2001 From: "venbatechnologies@gmail.com" Date: Thu, 25 Apr 2019 19:51:39 +0530 Subject: [PATCH] Changes : ps --- ng6-seed/package-lock.json | 282 +++++++++++------- ng6-seed/package.json | 1 + ng6-seed/src/app/app.module.ts | 3 +- ng6-seed/src/app/app.routing.ts | 4 + .../layouts/admin/admin-layout.component.html | 21 +- .../src/app/layouts/role-menu-items.pipe.ts | 59 ++-- .../manage-pd/list-pd/list-pd.component.html | 4 +- .../manage-pd/list-pd/list-pd.component.ts | 2 +- .../assets-info/assets-info.component.html | 5 +- .../assets-info/assets-info.component.ts | 6 +- .../business-assets-info.component.html | 19 +- .../business-assets-info.component.ts | 36 ++- .../business-info.component.html | 12 +- .../client-info/client-info.component.html | 9 +- .../current-loan/current-loan.component.ts | 8 +- .../employment-info.component.ts | 2 +- .../final-remarks/final-remarks.component.ts | 2 +- .../general-info/general-info.component.ts | 6 +- .../loan-details/loan-details.component.ts | 11 +- .../other-income/other-income.component.ts | 4 +- .../rental-verification.component.ts | 2 - .../start-pd/forms/stock/stock.component.ts | 17 +- .../supplier-info.component.html | 7 +- .../list-pd/view-pd/view-pd.component.html | 28 +- .../list-pd/view-pd/view-pd.component.ts | 7 +- .../qc-list/qc-view/qc-view.component.html | 16 +- .../qc-list/qc-view/qc-view.component.ts | 1 + .../app/reports/pd-mis/pd-mis.component.html | 217 ++++++++++++++ .../app/reports/pd-mis/pd-mis.component.scss | 61 ++++ .../reports/pd-mis/pd-mis.component.spec.ts | 25 ++ .../app/reports/pd-mis/pd-mis.component.ts | 237 +++++++++++++++ .../src/app/reports/reports-routing.module.ts | 16 + .../src/app/reports/reports.module.spec.ts | 13 + ng6-seed/src/app/reports/reports.module.ts | 102 +++++++ .../src/app/reports/reports.service.spec.ts | 12 + ng6-seed/src/app/reports/reports.service.ts | 29 ++ .../menu-items/horizontal-menu-items.ts | 8 +- .../src/app/shared/menu-items/menu-items.ts | 7 +- .../src/assets/images/defaultuserimage.png | Bin 0 -> 16670 bytes 39 files changed, 1062 insertions(+), 239 deletions(-) create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.html create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts create mode 100644 ng6-seed/src/app/reports/reports-routing.module.ts create mode 100644 ng6-seed/src/app/reports/reports.module.spec.ts create mode 100644 ng6-seed/src/app/reports/reports.module.ts create mode 100644 ng6-seed/src/app/reports/reports.service.spec.ts create mode 100644 ng6-seed/src/app/reports/reports.service.ts create mode 100644 ng6-seed/src/assets/images/defaultuserimage.png diff --git a/ng6-seed/package-lock.json b/ng6-seed/package-lock.json index 12a45c745..2d75f21dc 100755 --- a/ng6-seed/package-lock.json +++ b/ng6-seed/package-lock.json @@ -903,6 +903,15 @@ "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": { "version": "0.4.11", "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", "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": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", @@ -2157,6 +2177,22 @@ "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": { "version": "1.0.0", "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": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -3709,6 +3754,11 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "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": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", @@ -4222,6 +4272,11 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -4293,8 +4348,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -4308,23 +4362,21 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -4337,20 +4389,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -4391,7 +4440,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -4406,14 +4455,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -4422,12 +4471,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -4442,7 +4491,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "^2.1.0" } }, "ignore-walk": { @@ -4451,7 +4500,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -4460,15 +4509,14 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -4480,9 +4528,8 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -4495,25 +4542,22 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, "minizlib": { @@ -4522,14 +4566,13 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -4546,9 +4589,9 @@ "dev": true, "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -4557,16 +4600,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -4575,8 +4618,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -4591,8 +4634,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -4601,17 +4644,16 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -4623,9 +4665,8 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -4646,8 +4687,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -4668,10 +4709,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -4688,13 +4729,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -4703,14 +4744,13 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -4746,11 +4786,10 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -4759,16 +4798,15 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -4783,13 +4821,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -4804,20 +4842,18 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -8142,6 +8178,11 @@ "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": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -9629,6 +9670,14 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "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": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", @@ -11089,6 +11138,27 @@ "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", "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": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", diff --git a/ng6-seed/package.json b/ng6-seed/package.json index 4e2de9bb2..b4941516d 100755 --- a/ng6-seed/package.json +++ b/ng6-seed/package.json @@ -73,6 +73,7 @@ "sweetalert2": "^7.28.4", "tether": "^1.4.0", "viewerjs": "^1.3.1", + "xlsx": "^0.14.2", "zone.js": "^0.8.26" }, "devDependencies": { diff --git a/ng6-seed/src/app/app.module.ts b/ng6-seed/src/app/app.module.ts index 065f01152..d20883e56 100755 --- a/ng6-seed/src/app/app.module.ts +++ b/ng6-seed/src/app/app.module.ts @@ -32,7 +32,7 @@ import {MatProgressBarModule} from '@angular/material/progress-bar'; import {MatSelectModule} from '@angular/material/select'; import {MatCardModule} from '@angular/material/card'; import {ChangePasswordDialog} from './settings/users/user-profile/user-profile.component'; - +import { MatFormFieldModule } from '@angular/material'; import { AppRoutes } from './app.routing'; import { AppComponent } from './app.component'; import { AdminLayoutComponent } from './layouts/admin/admin-layout.component'; @@ -81,6 +81,7 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { MatSelectModule, MatCardModule, DemoMaterialModule, + MatFormFieldModule, HttpClientModule, TranslateModule.forRoot({ loader: { diff --git a/ng6-seed/src/app/app.routing.ts b/ng6-seed/src/app/app.routing.ts index 15c0a3cf3..6d249f73c 100755 --- a/ng6-seed/src/app/app.routing.ts +++ b/ng6-seed/src/app/app.routing.ts @@ -30,6 +30,10 @@ export const AppRoutes: Routes = [{ path:'quality_check_discussion', loadChildren:'./quality-check/quality-check.module#QualityCheckModule' }, + { + path:'reports', + loadChildren:'./reports/reports.module#ReportsModule' + }, ] }, { path: '', diff --git a/ng6-seed/src/app/layouts/admin/admin-layout.component.html b/ng6-seed/src/app/layouts/admin/admin-layout.component.html index b6532d29d..d9ce4be35 100755 --- a/ng6-seed/src/app/layouts/admin/admin-layout.component.html +++ b/ng6-seed/src/app/layouts/admin/admin-layout.component.html @@ -13,7 +13,7 @@
@@ -123,7 +123,24 @@ {{ menuitem.icon }} - + + diff --git a/ng6-seed/src/app/layouts/role-menu-items.pipe.ts b/ng6-seed/src/app/layouts/role-menu-items.pipe.ts index d60358ae6..692d7d88d 100644 --- a/ng6-seed/src/app/layouts/role-menu-items.pipe.ts +++ b/ng6-seed/src/app/layouts/role-menu-items.pipe.ts @@ -6,34 +6,37 @@ import { Pipe, PipeTransform } from '@angular/core'; export class RoleMenuItemsPipe implements PipeTransform { transform(value: any, type: any): any { - //this is for horizontal menu filter - // if(type=="1"){ - // if(localStorage.getItem('user_role')=="10"){ - // return value - // } - // else if(localStorage.getItem('user_role')=="6" || localStorage.getItem('user_role')=="7"){ - // return value.filter(val=>val.state!="setting" && val.state!="personal_discussion") - // } - // else{ - // return value.filter(val=>val.state!="setting" && val.state!="quality_check_discussion") - // } - // } - //this is for vertical menu filter - // else if(type=="2"){ - // if(localStorage.getItem('user_role')=="10"){ - // return value - // } - // else if(localStorage.getItem('user_role')=="6" || localStorage.getItem('user_role')=="7"){ - // return value.filter(val=>val.state!='' && val.state!="personal_discussion") - // } - // else{ - // return value.filter(val=>val.state!='' && val.state!="quality_check_discussion") - // } - // } - // else{ - // return []; - // } - return value; + // this is for horizontal menu filter + if(type=="1"){ + switch(localStorage.getItem('user_role')){ + 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"); + case '10': return value; + default: 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')){ + 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"); + case '10': return value; + default: return value.filter(val=>val.state!="setting" && val.state!="quality_check_discussion"); + } + } + else{ + return []; + } + // if(localStorage.getItem('user_role')=="10"){ + // return value + // } + // else if(localStorage.getItem('user_role')=="6" || localStorage.getItem('user_role')=="7"){ + // return value.filter(val=>val.state!='' && val.state!="personal_discussion" && val.state!="reports") + // } + // else{ + // return value.filter(val=>val.state!='' && val.state!="quality_check_discussion") + // } + // return value; } diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html index 44c93113d..15217dd03 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html @@ -8,12 +8,12 @@
- +
- + select_all All diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts index ef896a1ad..4ac69c234 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts @@ -38,7 +38,7 @@ export class ListPdComponent implements OnInit, OnDestroy { // roles checks for enables events roleAccessDetails:any - + public userRoleID = localStorage.getItem('user_role') ; constructor( notifier: NotifierService, private route: ActivatedRoute, private router: Router, private _pd: PdTrigerService) { this.notifier = notifier; diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.html index ba9900586..adeae3e20 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.html +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.html @@ -306,6 +306,7 @@ {{"₹"}} {{sup.get('approximate_market_value').value | numberToWords}} Only + Approximate Market Value Required @@ -352,8 +353,8 @@ Age of Asset in Years - + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.ts index 8c2117916..9be483aed 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/assets-info/assets-info.component.ts @@ -943,7 +943,7 @@ export class AssetsInfoComponent implements OnInit { let Avaliablity = 1; - + if (value !== null) { if (value.length > 0) { value.forEach(option => { @@ -952,13 +952,13 @@ export class AssetsInfoComponent implements OnInit { } }); } - + } if (Avaliablity == 0) { ChdCtrls.controls.other_owner.setValidators([Validators.required]); this.isOtherOwner[ParInx] = true; - console.log(ChdCtrls.controls.other_owner); + // console.log(ChdCtrls.controls.other_owner); } else if (Avaliablity == 1) { diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.html index 26bdcca23..949d0d89d 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.html +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.html @@ -90,8 +90,7 @@ Owned Rented - Ownership Type - Required + Ownership Type Required @@ -107,6 +106,7 @@ {{"₹"}} {{itemrow.get('business_approximate_market_value').value | numberToWords}} Only + Approximate Market Value Required @@ -129,8 +129,8 @@ Approx Vintage - + @@ -178,7 +178,7 @@
- Select {{ @@ -279,7 +279,6 @@
-
@@ -291,6 +290,7 @@ Owned Rented + Ownership Type Required @@ -306,7 +306,8 @@ - {{"₹"}} {{sup.get('business_approximate_market_value').value | numberToWords}} Only + {{"₹"}} {{sup.get('business_approximate_market_value').value | numberToWords}} Only + Approximate Market Value Required @@ -329,8 +330,8 @@ Approx Vintage - + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.ts index 052047e3e..b29b7ff3a 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-assets-info/business-assets-info.component.ts @@ -598,14 +598,14 @@ export class BusinessAssetsInfoComponent implements OnInit { result.forEach((datas, index) => { let Avaliablity = 1; - + if (datas.business_name_of_the_owner !== null) { if (datas.business_name_of_the_owner.length > 0) { datas.business_name_of_the_owner.forEach(option => { if (option.id == 0 && option.group_id == 2) { Avaliablity = option.id; } }); - } + }} this.isOtherOwnerForAddress[index] = Avaliablity == 0 ? true : false; }); @@ -652,14 +652,14 @@ export class BusinessAssetsInfoComponent implements OnInit { result.forEach((datas, index) => { let Avaliablity = 1; - +if(datas.business_name_of_the_owner !== null){ if (datas.business_name_of_the_owner.length > 0) { datas.business_name_of_the_owner.forEach(option => { if (option.id == 0 && option.group_id == 2) { Avaliablity = option.id; } }); - } + }} this.isOtherOwner[index] = Avaliablity == 0 ? true : false; }); @@ -889,7 +889,7 @@ export class BusinessAssetsInfoComponent implements OnInit { let ChdCtrls: any = ParCtrls.controls[ParInx]; let Avaliablity = 1; - + if (value !== null ) { if (value.length > 0) { value.forEach(option => { @@ -898,7 +898,7 @@ export class BusinessAssetsInfoComponent implements OnInit { } }); } - + } if (Avaliablity == 0) { @@ -928,6 +928,7 @@ export class BusinessAssetsInfoComponent implements OnInit { let Avaliablity = 1; + if (value !== null ) { if (value.length > 0) { value.forEach(option => { @@ -937,7 +938,7 @@ export class BusinessAssetsInfoComponent implements OnInit { }); } - + } if (Avaliablity == 0) { 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_is_pd_visited.setValidators([Validators.required]); item.controls.business_pd_visited_remark.setValidators([Validators.required]); - + item.controls.business_ownership_type.setValidators([Validators.required]); } else { + item.controls.business_years.clearValidators(); item.controls.business_address_availability.clearValidators(); item.controls.business_is_pd_visited.clearValidators(); item.controls.business_pd_visited_remark.clearValidators(); + item.controls.business_ownership_type.clearValidators(); } item.controls.business_years.updateValueAndValidity(); item.controls.business_address_availability.updateValueAndValidity(); item.controls.business_is_pd_visited.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 (value == 'owned') { + item.controls.business_monthly_rented_amt.setValue(''); item.controls.business_monthly_rented_amt.clearValidators(); item.controls.business_name_of_the_owner.setValidators([Validators.required]); + item.controls.business_approximate_market_value.setValidators([Validators.required]); } else { item.controls.business_monthly_rented_amt.setValidators([Validators.required]); 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_name_of_the_owner.updateValueAndValidity(); + item.controls.business_approximate_market_value.updateValueAndValidity(); } if (flag == 5) { @@ -1010,15 +1026,19 @@ export class BusinessAssetsInfoComponent implements OnInit { } if (flag == 7) { if (value == 'owned') { + item.controls.business_monthly_rented_amt.setValue(''); item.controls.business_monthly_rented_amt.clearValidators(); item.controls.business_name_of_the_owner.setValidators([Validators.required]); + item.controls.business_approximate_market_value.setValidators([Validators.required]); } else { item.controls.business_monthly_rented_amt.setValidators([Validators.required]); 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_name_of_the_owner.updateValueAndValidity(); + item.controls.business_approximate_market_value.updateValueAndValidity(); } diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-info/business-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-info/business-info.component.html index 8a18f79d0..e8d71c328 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-info/business-info.component.html +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/business-info/business-info.component.html @@ -291,7 +291,7 @@ {{SL.state_name}} - Is PAN India Required + State Required {{CL.city_name}} - City Required + City Required @@ -370,7 +370,7 @@ - Approx % of Sale Required + Approx % Required @@ -951,7 +951,7 @@ - Approx % of Sale Required + Approx % Required
@@ -174,8 +173,7 @@ --> - - Client Name Required +
@@ -308,8 +306,7 @@ - - Client Name Required +
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.ts index 471724fea..12b66421f 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/current-loan/current-loan.component.ts @@ -170,7 +170,7 @@ export class CurrentLoanComponent implements OnInit { } else { this._pd.getAssetsWithLoanFromBusiness(this.pdid).subscribe(data => { -console.log(data); + if (data.dataStatus == true) { 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) { AssetData.other_assests.map(element => { 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: "7", name: "Investments", 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) { - console.log('value, item, flag',value, item, flag); + if (flag == 1) { if(value == 1){ item.controls.others_loan_type.setValidators([Validators.required]);} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/employment-info/employment-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/employment-info/employment-info.component.ts index d97d598ca..cdfc23c47 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/employment-info/employment-info.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/employment-info/employment-info.component.ts @@ -536,7 +536,7 @@ export class EmploymentInfoComponent implements OnInit { // } validateAllFormFields(formGroup: any) { - console.log('validateAllFormFields'); + // console.log('validateAllFormFields'); Object.keys(formGroup.controls).forEach(field => { const control = formGroup.get(field); if (control instanceof FormControl) { diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/final-remarks/final-remarks.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/final-remarks/final-remarks.component.ts index c11f5f29b..8eb4d18d4 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/final-remarks/final-remarks.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/final-remarks/final-remarks.component.ts @@ -248,7 +248,7 @@ export class FinalRemarksComponent implements OnInit { /** To Save/Edited Popup Data */ onSubmit() { - console.log('this._finalRemarkForm.value',this._finalRemarkForm.value); + // console.log('this._finalRemarkForm.value',this._finalRemarkForm.value); this.submitted = true; if (this._finalRemarkForm.controls.final_custormer_remark_type.value == 1) { this._finalRemarkForm.controls['final_other_customer_behaviour'].setValidators([Validators.required]); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.ts index c23f0690b..26a0d9561 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.ts @@ -115,7 +115,7 @@ export class GeneralInfoComponent implements OnInit { }); this._pd.retriveFile(this.pdid,'18',null).subscribe(data => { - console.log(data); + if (data.status == 200) { if(data.records.length>0){ data.records.forEach((val, index) => { @@ -133,7 +133,6 @@ export class GeneralInfoComponent implements OnInit { else{ this.documentsAndFilesList = []; } - console.log('this.documentsAndFilesList',this.documentsAndFilesList); }); } /***************************** ng Oninit Section Ends Here **********************************/ @@ -436,7 +435,6 @@ export class GeneralInfoComponent implements OnInit { addMoreCompanies() { 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} - console.log('setValues',setValues); control.push(this.createCompanies(setValues)) } @@ -626,7 +624,7 @@ export class GeneralInfoComponent implements OnInit { temp: number = 0; submitGeneralForm(formData: any) { - console.log('formData',formData); + // console.log('formData',formData); if (formData.individuals.length > 0) { formData.individuals.forEach((val, index) => { diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.ts index 3f48ff128..4760f9b47 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/loan-details/loan-details.component.ts @@ -85,7 +85,7 @@ export class LoanDetailsComponent implements OnInit { private _pd: PdTrigerService, private dialogRef: MatDialogRef, @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.push({'pd_co_applicant_id':'0','applicant_name':'Others'}); this.applicants = this.applicants.filter(appt => appt.applicant_type != 2) @@ -515,7 +515,7 @@ export class LoanDetailsComponent implements OnInit { /** Source Changes with Validation */ sourceChange(evt) { -// console.log('sourceChange'); + this.isOtherSource = evt.some(e => e == 1) // this return true or false Only; if (this.isOtherSource) { @@ -550,7 +550,7 @@ export class LoanDetailsComponent implements OnInit { /**For Setting Validations */ selectedBalancesTransferChanges(event: any) { -// console.log('selectedBalancesTransferChanges',event); + if (event.value == 'no') { this.loanDetailsForm.controls['source'].setValidators([Validators.required]); this.loanDetailsForm.controls['source'].updateValueAndValidity(); @@ -568,7 +568,6 @@ export class LoanDetailsComponent implements OnInit { } else if (event.value == 'yes') { - // console.log(event.value,'yes'); this.loanDetailsForm.controls['source'].setValue(''); this.loanDetailsForm.controls['source'].clearValidators(); @@ -634,8 +633,6 @@ export class LoanDetailsComponent implements OnInit { 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 property_name = mortagetypes.property_name.replace(/\s/g, "").toLowerCase(); if(property_name=='others') @@ -691,7 +688,7 @@ export class LoanDetailsComponent implements OnInit { /** To save Loan FOrm Details */ submitLoanDetails() { - // console.log('submitLoanDetails'); + if(this.isOtherSource == false){ this.loanDetailsForm.controls['other_source'].setValue(''); this.loanDetailsForm.controls['other_source'].clearValidators(); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.ts index 24246a164..8f5810c7d 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/other-income/other-income.component.ts @@ -271,10 +271,8 @@ export class OtherIncomeComponent implements OnInit { let ChildCtrl : any = control.controls[cnt] - console.log(ChildCtrl.controls.source.value); - if(ChildCtrl.controls.source.value == 1){ - console.log('ChildCtrl.controls.source.value'); + ChildCtrl.controls['others_source'].setValidators([Validators.required]);} else{ ChildCtrl.controls['others_source'].clearValidators(); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/rental-verification/rental-verification.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/rental-verification/rental-verification.component.ts index 99452a226..906a81a30 100644 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/rental-verification/rental-verification.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/rental-verification/rental-verification.component.ts @@ -110,8 +110,6 @@ export class RentalVerificationComponent implements OnInit { this.existing_rental_count_id = rentalVal.length; //RIV = Rental Income Verification rentalVal.forEach((RIV, inx) => { - console.log('RIV.rental_count_id',RIV.rental_count_id); - console.log('RIV',RIV,inx); let annualRentAmt: any = 0; // get property unit details if (RIV.property_unit_details) { diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/stock/stock.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/stock/stock.component.ts index 71cee6742..0b6605c9f 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/stock/stock.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/stock/stock.component.ts @@ -160,8 +160,7 @@ export class StockComponent implements OnInit { 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 : []; - console.log(rm_api); - + let params: any = {}; params.parent_pdid = this.parent_pdid; params.pd_id = this.pdid; @@ -170,7 +169,6 @@ export class StockComponent implements OnInit { this._pd.retriveForm(params).subscribe(value => { if (value.status == 200) { let dataForm = value.records; - console.log(value.records); if (dataForm !== undefined) { this.stockForms = this.fb.group({ 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); // if(not_stock1 > 0){ this.stockForms.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue('not applicable') } if(not_stock1 > 0){ - console.log('not_stock1',not_stock1); + this.RMsufficientList[0].disabled = false; this.RMsufficientList[2].disabled = true; // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue(''); } else if(not_stock1 == 0){ - console.log('0',not_stock1); + this.RMsufficientList[0].disabled = true; this.RMsufficientList[2].disabled = false; // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable'); } - console.log('this.RMsufficientList',this.RMsufficientList); + } if(flag == 2) { 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_tg = this.not_stock_of_tg.reduce((sum, val) => sum + +val, 0); let not_stock2 = not_stock_fg + not_stock_ws + not_stock_tg; - console.log('not_stock2',not_stock2); + if(not_stock2 > 0){ - console.log('not_stock2',not_stock2); + this.TGsufficientList[0].isdisabled = false; this.TGsufficientList[2].isdisabled = true; // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue(''); } else if(not_stock2 == 0){ - console.log('0',not_stock2); + this.TGsufficientList[0].isdisabled = true; this.TGsufficientList[2].isdisabled = false; // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable'); } - console.log('Data',this.TGsufficientList); // else if(not_stock == 0){ // this.stockForms.controls['is_sufficiant_finished_and_traded_goods'].setValue(''); // } diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html index f7f0d13ed..ba14a3ee4 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/supplier-info/supplier-info.component.html @@ -31,10 +31,8 @@ - - Supplier Name Required + -
@@ -169,8 +167,7 @@ - - Supplier Name Required +
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html index bb36c7e3f..827325cdb 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html @@ -91,11 +91,11 @@ - - - - - + + + + +
@@ -119,10 +119,10 @@ {{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : master.pd_status | titlecase}}
- - - - + + + +
@@ -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}}
- - - + + +
@@ -245,7 +245,7 @@ Applicants
- +
@@ -289,7 +289,7 @@ Additional Requirements
- +
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts index bf132d14a..f3ef2cc7e 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts @@ -28,7 +28,7 @@ import Swal from 'sweetalert2'; export class ViewPdComponent implements OnInit, OnDestroy { pipe = new DatePipe('en-US'); private notifier: NotifierService; - + public userRoleID = localStorage.getItem('user_role'); errorMessage: any; pdMasterData: 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) { 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); - console.log('this.pdMasterData[0].addresses', this.pdMasterData[0].addresses); + this.currentPDStatus = data.records.pd_master_details[0].pd_status; this.pdAdditionalReqData = data.records.pd_additional_requirements; // enable pd start time @@ -212,7 +212,6 @@ export class ViewPdComponent implements OnInit, OnDestroy { .subscribe(dataresult => { if (flag == 1) { let ffd: any = []; - console.log('this.FilteredFieldNames',this.FilteredFieldNames); this.FilteredFieldNames.forEach(field => { ffd.push(field.frontEnd_FieldName); }); diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html index bfabb09db..fccc33b41 100755 --- a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html +++ b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html @@ -98,10 +98,10 @@ - + - + @@ -125,8 +125,8 @@
- - + +
@@ -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}}
- - + +
@@ -247,7 +247,7 @@ Applicants
- +
@@ -291,7 +291,7 @@ Additional Requirements
- +
diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts index ba272484a..59d9b86cc 100755 --- a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts +++ b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts @@ -37,6 +37,7 @@ export class QcViewComponent implements OnInit, OnDestroy { currentPDStatus:string; pdAdditionalReqData: any=[]; enableStartPD: boolean; + public userRoleID = localStorage.getItem('user_role'); // create values for status check pdStatusCheck :any={ "DRAFT" :'DRAFT', diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.html b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.html new file mode 100644 index 000000000..36d958ef5 --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.html @@ -0,0 +1,217 @@ + + +
+
+ PD MIS Report + + +
+
+ + +
+ +
+
+
+ + + +
+ filter_list Filter
+
+ +
+
+ + + + + + From Date + + + + + + + To Date + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Sl {{row.serialno}} Name of the Main Applicant + {{row.applicant}} Lender Ref No + {{row.application_id}} Sineedge Ref No + {{row.sineedge_ref}} Created + {{row.created_on | date: 'dd-MM-yyyy'}} Name of Underwriter + {{row.lender}} Lender Contact Person + {{row.lender_contact}} Lender Branch + {{row.branch}} PD City + {{row.city}} Outside City Limits (Yes/No) + {{row.is_outside_city_limit}} Date & Time of receiving PD Request + DD:MM:YY HH:MM + {{row.triggered | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of Confirmation from PD Officer that PD fixed + DD:MM:YY HH:MM + {{row.scheduled | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of Start of conducting PD + DD:MM:YY HH:MM + {{row.started | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of End of conducting PD + DD:MM:YY HH:MM + {{row.complete | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of sending PD Report to IMGC + DD:MM:YY HH:MM + + {{row.qc_complete | date: 'dd-MM-yyyy hh:mm a'}} PD Agency Name + {{row.pd_agency}} PD officer`s Name + {{row.pd_officer}} Status of the PD + {{row.current_status}} Earlier Remarks on Status for Reference + (Status 'as on Date' given in Bracket ..DD/MM) + {{row.remarks}}
+
+ +
+
+
+ + diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss new file mode 100644 index 000000000..445d2270e --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss @@ -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; +} \ No newline at end of file diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts new file mode 100644 index 000000000..ed0cd8b8e --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts @@ -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; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PdMisComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PdMisComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts new file mode 100644 index 000000000..a1295d2cd --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts @@ -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); + } + + } + diff --git a/ng6-seed/src/app/reports/reports-routing.module.ts b/ng6-seed/src/app/reports/reports-routing.module.ts new file mode 100644 index 000000000..58f7ff0b0 --- /dev/null +++ b/ng6-seed/src/app/reports/reports-routing.module.ts @@ -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 { } diff --git a/ng6-seed/src/app/reports/reports.module.spec.ts b/ng6-seed/src/app/reports/reports.module.spec.ts new file mode 100644 index 000000000..1874284d7 --- /dev/null +++ b/ng6-seed/src/app/reports/reports.module.spec.ts @@ -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(); + }); +}); diff --git a/ng6-seed/src/app/reports/reports.module.ts b/ng6-seed/src/app/reports/reports.module.ts new file mode 100644 index 000000000..9dbb9acb1 --- /dev/null +++ b/ng6-seed/src/app/reports/reports.module.ts @@ -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 { } diff --git a/ng6-seed/src/app/reports/reports.service.spec.ts b/ng6-seed/src/app/reports/reports.service.spec.ts new file mode 100644 index 000000000..7a1b4746c --- /dev/null +++ b/ng6-seed/src/app/reports/reports.service.spec.ts @@ -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(); + }); +}); diff --git a/ng6-seed/src/app/reports/reports.service.ts b/ng6-seed/src/app/reports/reports.service.ts new file mode 100644 index 000000000..a9992f9a4 --- /dev/null +++ b/ng6-seed/src/app/reports/reports.service.ts @@ -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 { + // return this._http.get(this.baseUrl); + // } + + // get Details + getPDMISDailyReport(): Observable { + return this._http.get(this.apiUrl + 'PD_MIS_report'); + } + +} diff --git a/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts b/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts index 12d6afdcd..3838f8a2d 100755 --- a/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts +++ b/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts @@ -30,7 +30,7 @@ const HORIZONTALMENUITEMS = [ // }, { state:'setting', - name:'Settings', + name:'Manage', type:'multi', icon:'settings', children:[ @@ -59,6 +59,12 @@ const HORIZONTALMENUITEMS = [ type:'link', icon:'done_all', }, + { + state:'reports', + name:'Reports', + type:'link', + icon:'report', + }, ]; @Injectable() diff --git a/ng6-seed/src/app/shared/menu-items/menu-items.ts b/ng6-seed/src/app/shared/menu-items/menu-items.ts index 68d1ebb84..65381e3da 100755 --- a/ng6-seed/src/app/shared/menu-items/menu-items.ts +++ b/ng6-seed/src/app/shared/menu-items/menu-items.ts @@ -86,8 +86,13 @@ const MENUITEMS : Menu[] = [ name:'Quality Check', type:'link', icon:'done_all', + }, + { + state:'reports', + name:'Reports', + type:'link', + icon:'report', } - ]; @Injectable() diff --git a/ng6-seed/src/assets/images/defaultuserimage.png b/ng6-seed/src/assets/images/defaultuserimage.png new file mode 100644 index 0000000000000000000000000000000000000000..23f677e1361201ed3bfccc9f0cdd4d4c7f92d4f1 GIT binary patch literal 16670 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 literal 0 HcmV?d00001