Changes : ps

This commit is contained in:
venbatechnologies@gmail.com 2019-04-25 19:51:39 +05:30
parent fcb68c7b24
commit 992e8d5375
39 changed files with 1062 additions and 239 deletions

View File

@ -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",

View File

@ -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": {

View File

@ -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: {

View File

@ -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: '',

View File

@ -13,7 +13,7 @@
<div class="user-pro-wrap">
<div class="user-profile-thumb text-center">
<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>
</div>
@ -123,7 +123,24 @@
<mat-icon>{{ menuitem.icon }}</mat-icon>
<!--<span>{{ menuitem.name | translate }}</span>-->
</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'">
<mat-icon>settings</mat-icon>
</button>

View File

@ -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;
}

View File

@ -8,12 +8,12 @@
</div>
<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)="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>
<mat-card>
<mat-tab-group (selectedTabChange)="onTabClick($event)">
<mat-tab >
<mat-tab>
<ng-template mat-tab-label><mat-icon>select_all</mat-icon>&nbsp;All</ng-template>
<app-all-pd [bindFilterValue]="filterValue" (loadPdView)="viewPDDetails($event)"></app-all-pd>
</mat-tab>

View File

@ -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;

View File

@ -306,6 +306,7 @@
<input matInput placeholder="Approximate Market Value" formControlName="approximate_market_value"
OnlyNumber type="text" autocomplete="off">
<mat-hint align="start" style="font-size:90%" *ngIf="sup.get('approximate_market_value').value != ''">{{"&#8377;"}} {{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 *ngIf="sup.get('assets_mode').value != ''" style="width:45%">
@ -352,8 +353,8 @@
<mat-form-field style="width:45%">
<mat-label>Age of Asset in Years</mat-label>
<input matInput autocomplete="off" placeholder="eg.999" formControlName="vintage_personal"
minlength="1" maxlength="3" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
<input matInput autocomplete="off" placeholder="eg.99" formControlName="vintage_personal"
minlength="1" maxlength="2" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
<!-- <mat-error> Invalid format</mat-error> -->
</mat-form-field>

View File

@ -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) {

View File

@ -90,8 +90,7 @@
<mat-option value="owned">Owned</mat-option>
<mat-option value="rented">Rented</mat-option>
</mat-select>
<mat-error *ngIf="itemrow.controls['business_address_availability'].hasError('required')">Ownership Type
Required</mat-error>
<mat-error *ngIf="itemrow.controls['business_ownership_type'].hasError('required')">Ownership Type Required</mat-error>
</mat-form-field>
<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"
OnlyNumber type="text" autocomplete="off">
<mat-hint align="start" style="font-size:90%" *ngIf="itemrow.get('business_approximate_market_value').value != ''">{{"&#8377;"}} {{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 style="width:45%">
@ -129,8 +129,8 @@
<mat-form-field style="width:45%">
<mat-label>Approx Vintage</mat-label>
<input matInput autocomplete="off" placeholder="eg.999" formControlName="business_vintage"
minlength="1" maxlength="3" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
<input matInput autocomplete="off" placeholder="eg.99" formControlName="business_vintage"
minlength="1" maxlength="2" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,3)">
<!-- <mat-error> Invalid format</mat-error> -->
</mat-form-field>
@ -178,7 +178,7 @@
<div [formGroupName]="i">
<div fxLayout="row wrap" fxLayoutGap="5px" fxLayoutAlign="start none">
<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>
<mat-option>Select</mat-option>
<mat-option *ngFor="let asset of m_assets_type" [value]="asset.id" [disabled]="asset.flag!=1">{{
@ -279,7 +279,6 @@
</div>
</div>
</div>
<!--Desction Dynamic details : END -->
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
@ -291,6 +290,7 @@
<mat-option value="owned">Owned</mat-option>
<mat-option value="rented">Rented</mat-option>
</mat-select>
<mat-error *ngIf="sup.controls['business_ownership_type'].hasError('required')">Ownership Type Required</mat-error>
</mat-form-field>
@ -306,7 +306,8 @@
<mat-form-field style="width:45%">
<input matInput placeholder="Approximate Market Value" formControlName="business_approximate_market_value"
OnlyNumber type="text" autocomplete="off">
<mat-hint align="start" style="font-size:90%" *ngIf="sup.get('business_approximate_market_value').value != ''">{{"&#8377;"}} {{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 != ''">{{"&#8377;"}} {{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 style="width:45%">
@ -329,8 +330,8 @@
<mat-form-field style="width:45%">
<mat-label>Approx Vintage</mat-label>
<input matInput autocomplete="off" placeholder="eg.999" formControlName="business_vintage"
minlength="1" maxlength="3" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,1)">
<input matInput autocomplete="off" placeholder="eg.99" formControlName="business_vintage"
minlength="1" maxlength="2" OnlyNumber type="text" (keyup)="calculateVintagePurchase($event.target.value,i,1)">
<!-- <mat-error> Invalid format</mat-error> -->
</mat-form-field>

View File

@ -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 = <FormArray>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();
}

View File

@ -291,7 +291,7 @@
{{SL.state_name}}
</mat-option>
</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 style="width:45%;">
<mat-select multiple formControlName="city_name"
@ -299,7 +299,7 @@
<mat-option *ngFor="let CL of filterCity(stateList,saleList.value.state_name)"
[value]="CL.city_id">{{CL.city_name}}</mat-option>
</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>
@ -370,7 +370,7 @@
<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)"
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]=" 'Out of Total Export Sales what % of Sales is done in ' getPlaceHolderName(countryList.get('country_name').value)" formControlName="approx_sale" required> -->
</mat-form-field>
@ -951,7 +951,7 @@
<!-- <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)"
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>
<button type="button" class="mr-1 mb-1 hover-icon"
@ -1071,7 +1071,7 @@
<!-- <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)"
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>
@ -1239,7 +1239,7 @@
<mat-form-field style="width:35%;">
<input matInput placeholder="Approx % of Revenue From Service"
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>
<button type="button" class="mr-1 mb-1 hover-icon"

View File

@ -40,8 +40,7 @@
<input matInput placeholder="Raw Material Name" formControlName="manufacturing_raw_material_name">
</mat-form-field>-->
<mat-form-field style="width: 45%">
<input matInput placeholder="Client Name" formControlName="manufacturing_client_name" required>
<mat-error *ngIf="items.controls['manufacturing_client_name'].hasError('required')">Client Name Required</mat-error>
<input matInput placeholder="Client Name" formControlName="manufacturing_client_name">
</mat-form-field>
</div>
<div fxLayout="row nowrap">
@ -174,8 +173,7 @@
<input matInput placeholder="Trade Product Name" formControlName="trade_product_name">
</mat-form-field>-->
<mat-form-field style="width: 45%">
<input matInput placeholder="Client Name" formControlName="trade_client_name" required>
<mat-error *ngIf="items.controls['trade_client_name'].hasError('required')">Client Name Required</mat-error>
<input matInput placeholder="Client Name" formControlName="trade_client_name">
</mat-form-field>
</div>
<div fxLayout="row nowrap" fxLayoutGap="2px" fxLayoutAlign="start none">
@ -308,8 +306,7 @@
</mat-select>
</mat-form-field>
<mat-form-field style="width: 45%">
<input matInput placeholder="Client Name" formControlName="service_provider_client_name" required>
<mat-error *ngIf="items.controls['service_provider_client_name'].hasError('required')">Client Name Required</mat-error>
<input matInput placeholder="Client Name" formControlName="service_provider_client_name">
</mat-form-field>
</div>
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">

View File

@ -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]);}

View File

@ -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) {

View File

@ -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]);

View File

@ -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) => {

View File

@ -85,7 +85,7 @@ export class LoanDetailsComponent implements OnInit {
private _pd: PdTrigerService,
private dialogRef: MatDialogRef<LoanDetailsComponent>,
@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();

View File

@ -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();

View File

@ -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) {

View File

@ -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('');
// }

View File

@ -31,10 +31,8 @@
<input matInput placeholder="Raw Material Name" formControlName="manufacturing_raw_material_name">
</mat-form-field>
<mat-form-field style="width: 45%">
<input matInput placeholder="Supplier Name" formControlName="manufacturing_supplier_name" required>
<mat-error *ngIf="items.controls['manufacturing_supplier_name'].hasError('required')">Supplier Name Required</mat-error>
<input matInput placeholder="Supplier Name" formControlName="manufacturing_supplier_name">
</mat-form-field>
</div>
<div fxLayout="row nowrap">
<mat-form-field style="width: 15%">
@ -169,8 +167,7 @@
</mat-select>
</mat-form-field>
<mat-form-field style="width: 45%">
<input matInput placeholder="Supplier Name" formControlName="trade_supplier_name" required>
<mat-error *ngIf="items.controls['trade_supplier_name'].hasError('required')">Supplier Name Required</mat-error>
<input matInput placeholder="Supplier Name" formControlName="trade_supplier_name">
</mat-form-field>
</div>
<div fxLayout="row nowrap">

View File

@ -91,11 +91,11 @@
<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>
</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>
<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.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>
<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 *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>
</span>
<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>
<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>
<!-- <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}}
</div>
<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>
<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>
<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>
<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><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>
<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>
<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>
<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>
@ -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}}
</div>
<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>
<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>
<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 == 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>
<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>
<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 fxLayout="row nowrap">
@ -245,7 +245,7 @@
<mat-card-title>Applicants</mat-card-title>
</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">
<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>
</mat-card-header>
@ -289,7 +289,7 @@
<mat-card-title>Additional Requirements</mat-card-title>
</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">
<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>
</mat-card-header>
<mat-card-content *ngIf="pdAdditionalReqData.length>0; else noRequirement">

View File

@ -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);
});

View File

@ -98,10 +98,10 @@
<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>
</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="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>
</div>
@ -125,8 +125,8 @@
</div>
<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 && 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>
<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 == 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>
<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>
@ -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}}
</div>
<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>
<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 == 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>
<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 fxLayout="row nowrap">
@ -247,7 +247,7 @@
<mat-card-title>Applicants</mat-card-title>
</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">
<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>
</mat-card-header>
@ -291,7 +291,7 @@
<mat-card-title>Additional Requirements</mat-card-title>
</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">
<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>
</mat-card-header>
<mat-card-content *ngIf="pdAdditionalReqData.length>0; else noRequirement">

View File

@ -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',

View 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> -->

View 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;
}

View 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();
});
});

View 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);
}
}

View 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 { }

View 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();
});
});

View 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 { }

View 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();
});
});

View 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');
}
}

View File

@ -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()

View File

@ -86,8 +86,13 @@ const MENUITEMS : Menu[] = [
name:'Quality Check',
type:'link',
icon:'done_all',
},
{
state:'reports',
name:'Reports',
type:'link',
icon:'report',
}
];
@Injectable()

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB