@csmart/ngc-smart-victim 0.1.5 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. package/karma.conf.js +32 -0
  2. package/ng-package.json +7 -0
  3. package/package.json +13 -26
  4. package/src/lib/caseNote/caseNote.component.css +20 -0
  5. package/src/lib/caseNote/caseNote.component.html +188 -0
  6. package/src/lib/caseNote/caseNote.component.ts +248 -0
  7. package/src/lib/common-dialog/common-dialog.component.css +10 -0
  8. package/src/lib/common-dialog/common-dialog.component.html +23 -0
  9. package/src/lib/common-dialog/common-dialog.component.spec.ts +25 -0
  10. package/src/lib/common-dialog/common-dialog.component.ts +21 -0
  11. package/src/lib/common-dialog/common-dialog.module.ts +25 -0
  12. package/src/lib/common-dialog/common-dialog.service.ts +35 -0
  13. package/src/lib/contact/contact.component.css +20 -0
  14. package/src/lib/contact/contact.component.html +124 -0
  15. package/src/lib/contact/contact.component.ts +176 -0
  16. package/src/lib/intake.service.ts +82 -0
  17. package/src/lib/safetyPlan/serviceProvider.component.ts +94 -0
  18. package/src/lib/safetyPlan/victimSafetyPlan.component.css +27 -0
  19. package/src/lib/safetyPlan/victimSafetyPlan.component.html +85 -0
  20. package/src/lib/safetyPlan/victimSafetyPlan.component.ts +178 -0
  21. package/src/lib/safetyPlan/victimSafetyPlanDetail.component.html +234 -0
  22. package/src/lib/safetyPlan/victimSafetyPlanDetail.component.ts +492 -0
  23. package/src/lib/shared/app.shared.module.ts +118 -0
  24. package/src/lib/shared/directives/phone-mask.directive.ts +41 -0
  25. package/src/lib/shared/validators/date.validator.ts +73 -0
  26. package/src/lib/shared/validators/index.ts +1 -0
  27. package/src/lib/smart-victim-delete-confirm.component.ts +35 -0
  28. package/src/lib/smart-victim-detail/smart-victim-detail.component.css +43 -0
  29. package/src/lib/smart-victim-detail/smart-victim-detail.component.html +860 -0
  30. package/src/lib/smart-victim-detail/smart-victim-detail.component.spec.ts +25 -0
  31. package/src/lib/smart-victim-detail/smart-victim-detail.component.ts +1241 -0
  32. package/src/lib/smart-victim.component.css +192 -0
  33. package/src/lib/smart-victim.component.html +133 -0
  34. package/src/lib/smart-victim.component.spec.ts +25 -0
  35. package/src/lib/smart-victim.component.ts +323 -0
  36. package/src/lib/smart-victim.model.ts +301 -0
  37. package/src/lib/smart-victim.module.ts +116 -0
  38. package/src/lib/smart-victim.service.spec.ts +12 -0
  39. package/src/lib/smart-victim.service.ts +563 -0
  40. package/src/lib/victim-routing.module.ts +34 -0
  41. package/{lib/victimSearch/VictimSearchFilter.d.ts → src/lib/victimSearch/VictimSearchFilter.ts} +4 -2
  42. package/src/lib/victimSearch/victimSearchForm.component.html +35 -0
  43. package/src/lib/victimSearch/victimSearchForm.component.ts +41 -0
  44. package/src/public-api.ts +12 -0
  45. package/src/test.ts +22 -0
  46. package/tsconfig.lib.json +37 -0
  47. package/tsconfig.spec.json +17 -0
  48. package/tslint.json +17 -0
  49. package/bundles/csmart-ngc-smart-victim.umd.js +0 -6426
  50. package/bundles/csmart-ngc-smart-victim.umd.js.map +0 -1
  51. package/bundles/csmart-ngc-smart-victim.umd.min.js +0 -16
  52. package/bundles/csmart-ngc-smart-victim.umd.min.js.map +0 -1
  53. package/csmart-ngc-smart-victim.d.ts +0 -19
  54. package/csmart-ngc-smart-victim.metadata.json +0 -1
  55. package/esm2015/csmart-ngc-smart-victim.js +0 -25
  56. package/esm2015/lib/caseNote/caseNote.component.js +0 -349
  57. package/esm2015/lib/common-dialog/common-dialog.component.js +0 -46
  58. package/esm2015/lib/common-dialog/common-dialog.module.js +0 -32
  59. package/esm2015/lib/common-dialog/common-dialog.service.js +0 -63
  60. package/esm2015/lib/contact/contact.component.js +0 -228
  61. package/esm2015/lib/intake.service.js +0 -183
  62. package/esm2015/lib/safetyPlan/serviceProvider.component.js +0 -130
  63. package/esm2015/lib/safetyPlan/victimSafetyPlan.component.js +0 -257
  64. package/esm2015/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -556
  65. package/esm2015/lib/shared/app.shared.module.js +0 -81
  66. package/esm2015/lib/shared/directives/phone-mask.directive.js +0 -168
  67. package/esm2015/lib/shared/validators/date.validator.js +0 -108
  68. package/esm2015/lib/shared/validators/index.js +0 -7
  69. package/esm2015/lib/smart-victim-delete-confirm.component.js +0 -61
  70. package/esm2015/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1405
  71. package/esm2015/lib/smart-victim.component.js +0 -476
  72. package/esm2015/lib/smart-victim.model.js +0 -631
  73. package/esm2015/lib/smart-victim.module.js +0 -84
  74. package/esm2015/lib/smart-victim.service.js +0 -792
  75. package/esm2015/lib/victim-routing.module.js +0 -40
  76. package/esm2015/lib/victimSearch/VictimSearchFilter.js +0 -20
  77. package/esm2015/lib/victimSearch/victimSearchForm.component.js +0 -59
  78. package/esm2015/public-api.js +0 -13
  79. package/esm5/csmart-ngc-smart-victim.js +0 -25
  80. package/esm5/lib/caseNote/caseNote.component.js +0 -372
  81. package/esm5/lib/common-dialog/common-dialog.component.js +0 -48
  82. package/esm5/lib/common-dialog/common-dialog.module.js +0 -36
  83. package/esm5/lib/common-dialog/common-dialog.service.js +0 -75
  84. package/esm5/lib/contact/contact.component.js +0 -281
  85. package/esm5/lib/intake.service.js +0 -194
  86. package/esm5/lib/safetyPlan/serviceProvider.component.js +0 -99
  87. package/esm5/lib/safetyPlan/victimSafetyPlan.component.js +0 -306
  88. package/esm5/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -628
  89. package/esm5/lib/shared/app.shared.module.js +0 -85
  90. package/esm5/lib/shared/directives/phone-mask.directive.js +0 -184
  91. package/esm5/lib/shared/validators/date.validator.js +0 -108
  92. package/esm5/lib/shared/validators/index.js +0 -7
  93. package/esm5/lib/smart-victim-delete-confirm.component.js +0 -51
  94. package/esm5/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1497
  95. package/esm5/lib/smart-victim.component.js +0 -528
  96. package/esm5/lib/smart-victim.model.js +0 -541
  97. package/esm5/lib/smart-victim.module.js +0 -84
  98. package/esm5/lib/smart-victim.service.js +0 -1063
  99. package/esm5/lib/victim-routing.module.js +0 -44
  100. package/esm5/lib/victimSearch/VictimSearchFilter.js +0 -24
  101. package/esm5/lib/victimSearch/victimSearchForm.component.js +0 -70
  102. package/esm5/public-api.js +0 -13
  103. package/fesm2015/csmart-ngc-smart-victim.js +0 -5682
  104. package/fesm2015/csmart-ngc-smart-victim.js.map +0 -1
  105. package/fesm5/csmart-ngc-smart-victim.js +0 -6203
  106. package/fesm5/csmart-ngc-smart-victim.js.map +0 -1
  107. package/lib/caseNote/caseNote.component.d.ts +0 -45
  108. package/lib/common-dialog/common-dialog.component.d.ts +0 -11
  109. package/lib/common-dialog/common-dialog.module.d.ts +0 -2
  110. package/lib/common-dialog/common-dialog.service.d.ts +0 -8
  111. package/lib/contact/contact.component.d.ts +0 -37
  112. package/lib/intake.service.d.ts +0 -54
  113. package/lib/safetyPlan/serviceProvider.component.d.ts +0 -16
  114. package/lib/safetyPlan/victimSafetyPlan.component.d.ts +0 -49
  115. package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +0 -57
  116. package/lib/shared/app.shared.module.d.ts +0 -2
  117. package/lib/shared/directives/phone-mask.directive.d.ts +0 -14
  118. package/lib/shared/validators/date.validator.d.ts +0 -9
  119. package/lib/shared/validators/index.d.ts +0 -1
  120. package/lib/smart-victim-delete-confirm.component.d.ts +0 -9
  121. package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +0 -109
  122. package/lib/smart-victim.component.d.ts +0 -63
  123. package/lib/smart-victim.model.d.ts +0 -204
  124. package/lib/smart-victim.module.d.ts +0 -2
  125. package/lib/smart-victim.service.d.ts +0 -67
  126. package/lib/victim-routing.module.d.ts +0 -2
  127. package/lib/victimSearch/victimSearchForm.component.d.ts +0 -11
  128. package/public-api.d.ts +0 -4
@@ -0,0 +1,1241 @@
1
+ import { Component, OnInit, OnChanges, Input, Output, EventEmitter, ViewChild } from '@angular/core';
2
+ import { FormBuilder, FormGroup, FormControl,Validators,ValidatorFn } from '@angular/forms';
3
+ import { MatRadioChange, MatRadioGroup } from '@angular/material/radio';
4
+ import { Victim,VictimDrugUse, Contact, VictimAdvocate,VictimGuardian,VictimWeaponUse,VictimSupport } from '../smart-victim.model';
5
+ import { NgcSmartVictimService } from '../smart-victim.service';
6
+ import { Router, ActivatedRoute } from '@angular/router';
7
+ import { CommonDialogService} from '.././common-dialog/common-dialog.service';
8
+ import { DatePipe, formatDate, Location} from '@angular/common';
9
+ import { coerceBooleanProperty}from'@angular/cdk/coercion';
10
+ import { MatTableDataSource} from '@angular/material/table';
11
+ import { AddressValidators, SmartAddressComponent } from '@csmart/ngc-smart-address';
12
+ import { MatDialog } from '@angular/material/dialog';
13
+ import { MatSnackBar } from '@angular/material/snack-bar';
14
+ import { MatInput } from '@angular/material/input';
15
+ import { MatSelect } from '@angular/material/select';
16
+
17
+ export interface BooleanFn {
18
+ (): boolean;
19
+ }
20
+ export interface StringFn {
21
+ (): string;
22
+ }
23
+
24
+ export function conditionalValidator(predicate: BooleanFn,
25
+ validator: ValidatorFn,
26
+ errorNamespace?: string): ValidatorFn {
27
+ return (formControl => {
28
+ if (!formControl.parent) {
29
+ return null;
30
+ }
31
+ let error = null;
32
+ if (predicate()) {
33
+ error = validator(formControl);
34
+ }
35
+ if (errorNamespace && error) {
36
+ const customError = {};
37
+ customError[errorNamespace] = error;
38
+ error = customError
39
+ }
40
+ return error;
41
+ })
42
+ }
43
+
44
+
45
+ export function stringConditionalValidator(predicate: StringFn,
46
+ validator: ValidatorFn,
47
+ errorNamespace?: string): ValidatorFn {
48
+ return (formControl => {
49
+ if (!formControl.parent) {
50
+ return null;
51
+ }
52
+ let error = null;
53
+ if (predicate()=='YS') {
54
+ error = validator(formControl);
55
+ }
56
+ if (errorNamespace && error) {
57
+ const customError = {};
58
+ customError[errorNamespace] = error;
59
+ error = customError
60
+ }
61
+ return error;
62
+ })
63
+ }
64
+
65
+ @Component({
66
+ selector: 'csmart-victim-detail',
67
+ templateUrl: './smart-victim-detail.component.html',
68
+ styleUrls: ['./smart-victim-detail.component.css'],
69
+ providers: [CommonDialogService]
70
+ })
71
+ export class SmartVictimDetailComponent implements OnInit, OnChanges {
72
+ @Input() victimDetail = <Victim>{};
73
+ @Input() staffId: number;
74
+ @Input() offenderId: number;
75
+ @Input() isIntake: boolean;
76
+
77
+ @Output() onSave = new EventEmitter();
78
+ @Output() onCancel = new EventEmitter();
79
+ @ViewChild("addressComponent") addressComponent: SmartAddressComponent;
80
+
81
+
82
+ victimId: number;
83
+ victimForm: FormGroup;
84
+
85
+ drugs: any;
86
+ victimSupportTypes: any;
87
+ prefixes: any;
88
+ //victim: Victim = <Victim>{};
89
+ suffixes: any;
90
+ relationshipTypes: any;
91
+ genders: any;
92
+ docketlist: any;
93
+ weaponTypes: any;
94
+ flagOption: any;
95
+ selectedWeaponTypes: any;
96
+ selectedVictimSupportTypes: any;
97
+ selectedDrugs: any;
98
+ id: any;
99
+ hidden: boolean=true;
100
+ private sub: any;
101
+ victimAdvocate: VictimAdvocate = <VictimAdvocate>{};
102
+ victimGuardian: VictimGuardian = <VictimGuardian>{};
103
+ victimWeaponUse: VictimWeaponUse;
104
+ victimSupport: VictimSupport;
105
+ victimDrugUse: VictimDrugUse;
106
+ result: any;
107
+ editMode: any;
108
+ guardianTabFlag: boolean = false;
109
+ advocateTabFlag: boolean = false;
110
+ commonChildrenDivFlag: boolean = false;
111
+ cpoExpirationDivFlag : boolean = false;
112
+ supportInPlaceDivFlag: boolean = false;
113
+ weaponInvolvedDivFlag: boolean = false;
114
+ drugUseDivFlag: boolean = false;
115
+ showDelete: boolean = false;
116
+ addressId: number = 0;
117
+ advocateAddressId: number = 0;
118
+ guardianAddressId: number = 0;
119
+ datePipe = new DatePipe('en-US');
120
+ emailPattern = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$";
121
+ phoneNumber = "\\d{10}";
122
+ editVictim: Victim = <Victim>{};
123
+ victimAge: number;
124
+ otherWeaponFlag: boolean = false;
125
+ otherDrugFlag: boolean = false;
126
+
127
+ contactDataSource= new MatTableDataSource();
128
+ contactList: Contact[];
129
+ guardianPhoneExistFlag: boolean = false;
130
+ advocatePhoneExistFlag: boolean = false;
131
+ phoneValidationFlag: boolean = false;
132
+ guaridanNoPhoneChkFlag: boolean = true;
133
+ advocateNoPhoneChkFlag: boolean = true;
134
+
135
+ addressValidators: AddressValidators = {
136
+ street: [],
137
+ street2: [],
138
+ city: [],
139
+ stateCode: [],
140
+ zipCode: [],
141
+ psaCode: [],
142
+ };
143
+
144
+ constructor(
145
+ private location: Location,
146
+ private formBuilder: FormBuilder,
147
+ private dialog: MatDialog,
148
+ private route: ActivatedRoute,
149
+ private router: Router,
150
+ public snackBar: MatSnackBar,
151
+ private commonDialogService: CommonDialogService,
152
+ private victimService: NgcSmartVictimService) {
153
+ this.initForm();
154
+ }
155
+
156
+ private initForm() {
157
+
158
+ this.victimForm = this.formBuilder.group({
159
+ underSupervisionFlag: new FormControl('', Validators.compose([ Validators.required])),
160
+ victimOffenderRelationshipTypeId:new FormControl('', Validators.compose([ Validators.required])),
161
+ lastName: new FormControl('', Validators.compose([ Validators.required])),
162
+ firstName: new FormControl('', Validators.compose([ Validators.required])),
163
+ middleName: new FormControl('', ),
164
+ prefixId: new FormControl('', ),
165
+ suffixId: new FormControl('', ),
166
+ genderCode:new FormControl('', ),
167
+ birthDate: new FormControl('', ),
168
+ homePhone: new FormControl('', ),
169
+ cellPhone: new FormControl('', ),
170
+ workPhone: new FormControl('', ),
171
+ email:new FormControl('', Validators.compose([Validators.pattern(this.emailPattern) ])),
172
+ minorFlag:new FormControl('', Validators.compose([ Validators.required])),
173
+ victimAdvocateFlag: new FormControl('', Validators.compose([ Validators.required])),
174
+ guardianLastName:new FormControl('', ),
175
+ guardianFirstName: new FormControl('',),
176
+ guardianPrefixId:new FormControl('', ),
177
+ guardianSuffixId: new FormControl('', ),
178
+ //guardianGender:new FormControl('', ),
179
+ guardianBirthDate: new FormControl('', ),
180
+ guardianNoPhoneFlag:new FormControl(true),
181
+
182
+ guardianHomePhone:new FormControl('', Validators.compose([Validators.pattern(this.phoneNumber) ] )),
183
+ guardianCellPhone:new FormControl('', Validators.compose([Validators.pattern(this.phoneNumber) ] )),
184
+ guardianWorkPhone:new FormControl('', Validators.compose([Validators.pattern(this.phoneNumber) ] )),
185
+
186
+
187
+ guardianEmail:new FormControl('', Validators.compose([Validators.pattern(this.emailPattern) ])),
188
+ advocateNoPhoneFlag: new FormControl(true),
189
+
190
+
191
+ advocateWorkPhone:new FormControl('', Validators.compose([ Validators.pattern(this.phoneNumber) ] )),
192
+ advocateHomePhone:new FormControl('', Validators.compose([ Validators.pattern(this.phoneNumber) ] )),
193
+ advocateCellPhone: new FormControl('', Validators.compose([ Validators.pattern(this.phoneNumber) ] )),
194
+
195
+
196
+ advocateSuffixId:new FormControl('', ),
197
+ advocatePrefixId: new FormControl('', ),
198
+ advocateFirstName: new FormControl('', stringConditionalValidator(() => this.victimForm.get('victimAdvocateFlag').value, Validators.required, 'illuminatiError')),
199
+ advocateLastName: new FormControl('', stringConditionalValidator(() => this.victimForm.get('victimAdvocateFlag').value, Validators.required,'illuminatiError')),
200
+ advocateEmail: new FormControl('', Validators.compose([Validators.pattern(this.emailPattern) ])),
201
+ emergencyContact: new FormControl('', ),
202
+ emergencyContactPhone:new FormControl('', Validators.compose([Validators.pattern(this.phoneNumber) ])),
203
+ emergencyChildren: new FormControl('', ),
204
+ emergencyCpo: new FormControl('', ),
205
+ emergencyDrug:new FormControl('', ),
206
+ emergencySupport: new FormControl('', ),
207
+ emergencyWeapon: new FormControl('', ),
208
+ drug: new FormControl('', ),
209
+ weapon: new FormControl('', ),
210
+ support: new FormControl('', ),
211
+ commonChildrenFlag: new FormControl('', ),
212
+ commonChildrenNumber:new FormControl('', ),
213
+ cpoExpirationFlag: new FormControl('', ),
214
+ cpoExpirationDate: new FormControl('', ),
215
+ accessRisk:new FormControl('', ),
216
+ drugUseFlag:new FormControl('', ),
217
+ supportInPlaceFlag: new FormControl('', ),
218
+ weaponInvolvedFlag: new FormControl('', ),
219
+ otherWeapon: new FormControl('', ),
220
+ otherDrug: new FormControl('', ),
221
+ alcoholUseFlag:new FormControl('', ),
222
+ victimSupports:new FormControl('', ),
223
+ victimWeaponUses:new FormControl('', ),
224
+ victimDrugUses:new FormControl('', ),
225
+ allowCsosaContactFlag: new FormControl('', ),
226
+ liveWithOffenderFlag: new FormControl('', ),
227
+
228
+
229
+ });
230
+
231
+ this.victimForm.markAsPristine();
232
+ this.victimForm.markAsUntouched();
233
+
234
+ }
235
+
236
+ private _getVictim() {
237
+ if (this.victimId === 0) {
238
+
239
+ return;
240
+ };
241
+ if (this.editMode == true) {
242
+ console.log('find victim id inside getVictim');
243
+ console.log(this.victimId);
244
+
245
+ if (this.victimId === undefined) {
246
+ this.sub = this.route.params.subscribe(params => {
247
+ this.victimId = params['victimId'];
248
+ console.log('my this.victimId');
249
+ console.log(this.victimId);
250
+ });
251
+ }
252
+
253
+ this.victimService.getVictim(this.victimId)
254
+ .subscribe((victim: Victim) => {
255
+ console.log('victim data 1');
256
+ console.log(victim);
257
+ this.editVictim = <Victim>victim;
258
+
259
+ var supportsData =[];
260
+ this.editVictim.victimSupports.forEach( t=>{supportsData.push(t.victimSupportTypeId); } )
261
+ const victimSupportsControl = this.victimForm.get('victimSupports');
262
+ victimSupportsControl.setValue(supportsData);
263
+
264
+
265
+ var weaponUsesData =[];
266
+ var otherWeapon = "";
267
+ this.editVictim.victimWeaponUses.forEach( t=>{
268
+ weaponUsesData.push(t.weaponTypeId);
269
+ if (t.weaponTypeId == "OTHER"){
270
+ otherWeapon = t.otherWeapon;
271
+ this.otherWeaponFlag = true;
272
+ }
273
+
274
+ } )
275
+
276
+
277
+ const victimWeaponUsesControl = this.victimForm.get('victimWeaponUses');
278
+ victimWeaponUsesControl.setValue(weaponUsesData);
279
+
280
+ const otherWeaponControl = this.victimForm.get('otherWeapon');
281
+ otherWeaponControl.setValue(otherWeapon);
282
+
283
+
284
+ //this.weaponUsesData = this.editVictim.victimWeaponUses;
285
+
286
+ var drugUseData =[];
287
+ var otherDrug = "";
288
+
289
+ console.log('load this.editVictim.victimDrugUses');
290
+ console.log(this.editVictim.victimDrugUses);
291
+ this.editVictim.victimDrugUses.forEach( t=>{
292
+
293
+ if (t.drugTypeId === null){
294
+ otherDrug = t.otherDrug;
295
+ this.otherDrugFlag = true;
296
+ t.drugTypeId ='OTHER';
297
+
298
+ }
299
+ drugUseData.push(t.drugTypeId);
300
+
301
+ } )
302
+
303
+ console.log('this.editVictim.victimDrugUses after push');
304
+ console.log(drugUseData);
305
+
306
+
307
+
308
+ const victimDrugUsesControl = this.victimForm.get('victimDrugUses');
309
+ victimDrugUsesControl.setValue(drugUseData);
310
+
311
+ const otherDrugControl = this.victimForm.get('otherDrug');
312
+ otherDrugControl.setValue(otherDrug);
313
+
314
+
315
+
316
+ //contact
317
+ this.victimService.getContacts(this.victimId).subscribe(
318
+ contactList => {
319
+ console.log('contactList');
320
+ console.log(contactList);
321
+ this.contactList = contactList;
322
+ this.contactDataSource.data = this.contactList;
323
+ }
324
+ );
325
+
326
+ //no phone field
327
+
328
+ if ( this.editVictim.guardianNoPhoneFlag === false ){
329
+ this.victimForm.patchValue({guardianNoPhoneFlag: false});
330
+ }
331
+ if ( this.editVictim.advocateNoPhoneFlag === false ){
332
+ this.victimForm.patchValue({advocateNoPhoneFlag: false});
333
+ }
334
+
335
+ }, error => {
336
+ this.snackBar.open("Error occured while retriving Victim Information. Please try again.");
337
+ });
338
+ return;
339
+ } else {
340
+ //new
341
+
342
+ }
343
+ }
344
+
345
+ ngOnChanges() {
346
+
347
+ }
348
+
349
+ onClear() {
350
+ if (this.addressComponent) this.addressComponent.reset();
351
+ }
352
+
353
+ showAddress(value){
354
+
355
+ if (value.checked){
356
+
357
+ this.victimService.getCurrentHousing(this.offenderId).subscribe(
358
+ (item: any) => {
359
+ this.addressId = item.housing.addressId;
360
+ this.victimForm.patchValue({addressId: this.addressId})
361
+ })
362
+ }
363
+ else{
364
+ this.addressComponent.reset();
365
+ }
366
+
367
+
368
+ }
369
+
370
+ onAddressChange(addressId) {
371
+ this.victimForm.patchValue({addressId: addressId})
372
+ this.addressId = addressId;
373
+ }
374
+ onGuardianAddressChange(MyGuardianAddressId) {
375
+ this.victimForm.patchValue({guardianAddressId: MyGuardianAddressId})
376
+ this.guardianAddressId = MyGuardianAddressId;
377
+ }
378
+ onAdvocateAddressChange(MyAdvocateAddressId) {
379
+ this.victimForm.patchValue({advocateAddressId: MyAdvocateAddressId})
380
+ this.advocateAddressId = MyAdvocateAddressId;
381
+ }
382
+ cancel() {
383
+ this.victimForm.reset();
384
+ }
385
+
386
+
387
+
388
+
389
+ ngOnInit() {
390
+
391
+ console.log('show offenderId');
392
+ console.log(this.offenderId);
393
+ console.log('show staffId');
394
+ console.log(this.staffId);
395
+ console.log('show isIntake');
396
+ console.log(this.isIntake);
397
+ //this.victimDetail.guardianNoPhoneFlag = true;
398
+ //this.victimForm.value.guardianNoPhoneFlag = true;
399
+ //this.victimForm.get('guardianNoPhoneFlag').setValue(true);
400
+
401
+ //required field
402
+ const requiredImplementation = {get:function():boolean{if(this._required){return this._required;}
403
+ if(this.ngControl&&this.ngControl.control&&this.ngControl.control.validator
404
+ ){const emptyValueControl=Object.assign({},
405
+ this.ngControl.control);(emptyValueControl as any).value=null;
406
+ return('required'in(this.ngControl.control.validator(emptyValueControl)||{}));}
407
+ return false;},set:function(value:boolean){this._required=coerceBooleanProperty(value);},};
408
+ Object.defineProperty(MatInput.prototype,'required',requiredImplementation,);
409
+ Object.defineProperty(MatSelect.prototype,'required',requiredImplementation,);
410
+ Object.defineProperty(MatRadioGroup.prototype,'required',requiredImplementation,);
411
+ //required field end
412
+
413
+
414
+
415
+ if (this.victimDetail!=null) {
416
+ // edit record
417
+ this.editMode = true;
418
+ this.showDelete= true;
419
+ this.victimId = this.victimDetail.victimId;
420
+
421
+ this.guardianTabFlag = this.victimDetail.minorFlag;
422
+
423
+
424
+ if (this.victimDetail.victimAdvocateFlag=='YS'){
425
+ this.advocateTabFlag = true;
426
+ }
427
+
428
+ if (this.otherWeaponFlag == true){
429
+ const otherWeaponControl = this.victimForm.get('otherWeapon');
430
+ otherWeaponControl.setValidators(Validators.required);
431
+
432
+ }
433
+
434
+ if (this.otherDrugFlag == true){
435
+ const otherDrugControl = this.victimForm.get('otherDrug');
436
+ otherDrugControl.setValidators(Validators.required);
437
+
438
+ }
439
+
440
+ this.cpoExpirationDivFlag =this.victimDetail.cpoExpirationFlag;
441
+ this.commonChildrenDivFlag = this.victimDetail.commonChildrenFlag;
442
+ this.supportInPlaceDivFlag= this.victimDetail.supportInPlaceFlag;
443
+ this.weaponInvolvedDivFlag= this.victimDetail.weaponInvolvedFlag;
444
+ this.drugUseDivFlag= this.victimDetail.drugUseFlag;
445
+ this.addressId = this.victimDetail.addressId;
446
+ this.guardianAddressId = this.victimDetail.guardianAddressId;
447
+ this.advocateAddressId = this.victimDetail.advocateAddressId;
448
+
449
+ this._getVictim();
450
+
451
+ } else {
452
+ //add new record
453
+ this.victimForm.patchValue({guardianNoPhoneFlag: true});
454
+ this.victimForm.patchValue({advocateNoPhoneFlag: true});
455
+
456
+ }
457
+
458
+ this.victimService.getFlagOptionYesNoUnknowns().subscribe(
459
+ (items: any) => {
460
+ this.flagOption = items;
461
+ }
462
+ );
463
+ this.victimService.getGenders().subscribe(
464
+ (items: any) => {
465
+ this.genders = items;
466
+ }
467
+ );
468
+ this.victimService.getPrefixes().subscribe(
469
+ (items: any) => {
470
+ this.prefixes = items;
471
+ }
472
+ );
473
+ this.victimService.getSuffixes().subscribe(
474
+ (items: any) => {
475
+ this.suffixes = items;
476
+ }
477
+ );
478
+ this.victimService.getRelationshipTypes().subscribe(
479
+ (items: any) => {
480
+ this.relationshipTypes = items.filter( (y) => (y.relationshipCategoryId === 'ST' || y.relationshipCategoryId === 'FM' ));
481
+ }
482
+ );
483
+ this.victimService.getSupportTypes().subscribe(
484
+ (items: any) => {
485
+ this.victimSupportTypes = items;
486
+ }
487
+ );
488
+ this.victimService.getWeaponTypes().subscribe(
489
+ (items: any) => {
490
+ this.weaponTypes = items;
491
+ }
492
+ );
493
+ this.victimService.getDrugsTypes().subscribe(
494
+ (items: any) => {
495
+ console.log('drug lookup items');
496
+ console.log(items);
497
+ this.drugs = items;
498
+ this.drugs.push({drugTypeId: 'OTHER', name: 'Other'});
499
+ console.log(this.drugs);
500
+ }
501
+ );
502
+ // this.victimService.getDocketList(this.offenderId).subscribe(
503
+ // (items: any) => {
504
+ // this.docketlist = items;
505
+ // }
506
+
507
+ // );
508
+
509
+ this.victimForm.get('minorFlag').valueChanges
510
+ .subscribe(value => {
511
+ // this.victimForm.get('guardianFirstName').updateValueAndValidity();
512
+ // this.victimForm.get('guardianLastName').updateValueAndValidity();
513
+ this.victimForm.get('guardianWorkPhone').updateValueAndValidity();
514
+ this.victimForm.get('guardianHomePhone').updateValueAndValidity();
515
+ this.victimForm.get('guardianCellPhone').updateValueAndValidity();
516
+
517
+ });
518
+
519
+
520
+ this.victimForm.get('victimAdvocateFlag').valueChanges
521
+ .subscribe(value => {
522
+ this.victimForm.get('advocateFirstName').updateValueAndValidity();
523
+ this.victimForm.get('advocateLastName').updateValueAndValidity();
524
+ this.victimForm.get('advocateWorkPhone').updateValueAndValidity();
525
+ this.victimForm.get('advocateHomePhone').updateValueAndValidity();
526
+ this.victimForm.get('advocateCellPhone').updateValueAndValidity();
527
+
528
+ });
529
+
530
+ }
531
+
532
+ back(){
533
+
534
+ //this.onSave.emit(this.victimDetail);
535
+ this.router.navigate(['victimList']);
536
+
537
+ }
538
+
539
+ deleteVictim() {
540
+ this.commonDialogService
541
+ .confirm('', 'Do you want to delete this Victim?', 'Yes', 'No')
542
+ .subscribe(res => {this.result = res;
543
+ if (this.result) {
544
+ this.victimService.deleteVictims(this.victimDetail.victimId)
545
+ .subscribe(result => {
546
+ this.snackBar.open('Delete Successfully!', '', {
547
+ duration: 3000, });}
548
+
549
+ );
550
+ // this.router.navigate(['victim']);
551
+ this.onSave.emit(this.victimDetail);
552
+ }
553
+ });
554
+
555
+ }
556
+
557
+ radioMinorChange($event: MatRadioChange){
558
+ // const guardianLastNameControl = this.victimForm.get('guardianLastName');
559
+ //const guardianFirstNameControl = this.victimForm.get('guardianFirstName');
560
+
561
+
562
+ if ($event.value === true) {
563
+ this.guardianTabFlag = true;
564
+ // guardianLastNameControl.setValidators(Validators.required);
565
+ // guardianFirstNameControl.setValidators(Validators.required);
566
+ //this.victimForm.value.guardianNoPhoneFlag = true;
567
+
568
+
569
+ }
570
+ else{
571
+ this.guardianTabFlag = false;
572
+ // guardianLastNameControl.clearValidators();
573
+ // guardianFirstNameControl.clearValidators();
574
+
575
+
576
+ }
577
+
578
+ //guardianLastNameControl.updateValueAndValidity();
579
+ // guardianFirstNameControl.updateValueAndValidity();
580
+
581
+ }
582
+
583
+ radioAdvocateChange($event: MatRadioChange){
584
+
585
+ const advocateLastNameControl = this.victimForm.get('advocateLastName');
586
+ const advocateFirstNameControl = this.victimForm.get('advocateFirstName');
587
+ // const advocateNoPhoneControl = this.victimForm.get('advocateNoPhoneFlag');
588
+
589
+
590
+
591
+ if ($event.value === "YS") {
592
+ this.advocateTabFlag = true;
593
+ advocateLastNameControl.setValidators(Validators.required);
594
+ advocateFirstNameControl.setValidators(Validators.required);
595
+
596
+
597
+ }
598
+ else{
599
+ this.advocateTabFlag = false;
600
+
601
+ advocateLastNameControl.clearValidators();
602
+ advocateFirstNameControl.clearValidators();
603
+
604
+ }
605
+
606
+ advocateLastNameControl.updateValueAndValidity();
607
+ advocateFirstNameControl.updateValueAndValidity();
608
+
609
+ }
610
+
611
+ radioCicChange($event: MatRadioChange){
612
+ if ($event.value === true) {
613
+ this.commonChildrenDivFlag = true;
614
+ // requrie field
615
+ this.setValidators('commonChildren');
616
+ }
617
+ else{
618
+ this.commonChildrenDivFlag = false;
619
+ }
620
+ }
621
+
622
+ setValidators(type) {
623
+ if(type == 'commonChildren'){
624
+ this.victimForm.get('commonChildrenNumber').clearValidators();
625
+ this.victimForm.get('commonChildrenNumber').setValidators(Validators.required);
626
+ }
627
+ else if (type == 'cpo'){
628
+ this.victimForm.get('cpoExpirationDate').clearValidators();
629
+ this.victimForm.get('cpoExpirationDate').setValidators(Validators.required);
630
+
631
+ }
632
+ }
633
+ radioSupportChange($event: MatRadioChange){
634
+ if ($event.value === true) {
635
+ this.supportInPlaceDivFlag = true;
636
+ }
637
+ else{
638
+ this.supportInPlaceDivFlag = false;
639
+ }
640
+ }
641
+ radioWeaponChange($event: MatRadioChange){
642
+ if ($event.value === true) {
643
+ this.weaponInvolvedDivFlag = true;
644
+ }
645
+ else{
646
+ this.weaponInvolvedDivFlag = false;
647
+ }
648
+ }
649
+ radioDrugChange($event: MatRadioChange){
650
+ if ($event.value === true) {
651
+ this.drugUseDivFlag = true;
652
+ }
653
+ else{
654
+ this.drugUseDivFlag = false;
655
+ }
656
+ }
657
+
658
+ radioCpoChange($event: MatRadioChange){
659
+ if ($event.value === true) {
660
+ this.cpoExpirationDivFlag = true;
661
+ this.setValidators('cpo');
662
+ }
663
+ else{
664
+ this.cpoExpirationDivFlag = false;
665
+ }
666
+ }
667
+
668
+ handleDOBChange($event ){
669
+ var ageDifMs = Date.now() - $event.value;
670
+ var ageDate = new Date(ageDifMs);
671
+ if( Math.abs(ageDate.getUTCFullYear() - 1970) <= 18){
672
+
673
+ this.snackBar.open('Victim is a Minor. This information is a sensitive and should not be disclosed to any unauthorized parties. Contact the legal guardian.', '', {
674
+ duration: 6000,});
675
+ const minorControl = this.victimForm.get('minorFlag');
676
+ minorControl.setValue(true);
677
+ // const guardianLastNameControl = this.victimForm.get('guardianLastName');
678
+ // const guardianFirstNameControl = this.victimForm.get('guardianFirstName');
679
+
680
+
681
+ this.guardianTabFlag = true;
682
+ // guardianLastNameControl.setValidators(Validators.required);
683
+ // guardianFirstNameControl.setValidators(Validators.required);
684
+
685
+
686
+
687
+ }
688
+
689
+ }
690
+ checkOtherWeapon(WeaponUse){
691
+
692
+ const otherWeaponControl = this.victimForm.get('otherWeapon');
693
+ if (WeaponUse.includes("OTHER")){
694
+ this.otherWeaponFlag = true;
695
+ otherWeaponControl.setValidators(Validators.required)
696
+
697
+ }else{
698
+ this.otherWeaponFlag = false;
699
+ otherWeaponControl.clearValidators();
700
+ }
701
+ otherWeaponControl.updateValueAndValidity();
702
+ }
703
+
704
+ checkOtherDrug(DrugUse){
705
+
706
+ const otherDrugControl = this.victimForm.get('otherDrug');
707
+ if (DrugUse.includes("OTHER")){
708
+ this.otherDrugFlag = true;
709
+ otherDrugControl.setValidators(Validators.required)
710
+
711
+
712
+ }else{
713
+ this.otherDrugFlag = false;
714
+ otherDrugControl.clearValidators();
715
+
716
+
717
+ }
718
+ otherDrugControl.updateValueAndValidity();
719
+ }
720
+
721
+ //#region "save victim"
722
+ saveVictim() {
723
+
724
+
725
+ //guardian phone logic
726
+ if (!this.victimForm.value.guardianNoPhoneFlag)
727
+ {
728
+ if (this.victimForm.value.guardianHomePhone){
729
+ if (this.victimForm.value.guardianHomePhone !== null){
730
+ if (this.victimForm.value.guardianHomePhone !== ""){
731
+ this.guardianPhoneExistFlag = true;
732
+ }
733
+ }
734
+ }
735
+
736
+
737
+
738
+ if (this.victimForm.value.guardianWorkPhone !== undefined){
739
+ if (this.victimForm.value.guardianWorkPhone !== null){
740
+ if (this.victimForm.value.guardianWorkPhone !== ""){
741
+ this.guardianPhoneExistFlag = true;
742
+ }
743
+ }
744
+ }
745
+
746
+
747
+ if (this.victimForm.value.guardianCellPhone){
748
+ if (this.victimForm.value.guardianCellPhone !== null){
749
+ if (this.victimForm.value.guardianCellhone !== ""){
750
+ this.guardianPhoneExistFlag = true;
751
+ }
752
+ }
753
+ }
754
+
755
+ }
756
+
757
+ console.log('this.victimForm.value.guardianNoPhoneFlag');
758
+ console.log(this.victimForm.value.guardianNoPhoneFlag);
759
+ console.log('this.guardianPhoneExistFlag');
760
+ console.log(this.guardianPhoneExistFlag);
761
+
762
+
763
+ if (this.guardianPhoneExistFlag === false && this.victimForm.value.guardianNoPhoneFlag === false)
764
+ {
765
+
766
+ this.phoneValidationFlag = true;
767
+ this.commonDialogService
768
+ .warning('', 'Please check the guardian phone field. You have to fill one of the three phone fileds.', 'Ok')
769
+ .subscribe(res => {this.result = res;
770
+
771
+ });
772
+ }
773
+ console.log('this.phoneValidationFlag');
774
+ console.log(this.phoneValidationFlag);
775
+
776
+ //advocate phone logic
777
+ if (!this.victimForm.value.advocateNoPhoneFlag)
778
+ {
779
+ if (this.victimForm.value.advocateHomePhone){
780
+ if (this.victimForm.value.advocateHomePhone !== null){
781
+ if (this.victimForm.value.advocateHomePhone !== ""){
782
+ this.advocatePhoneExistFlag = true;
783
+ }
784
+ }
785
+ }
786
+
787
+
788
+
789
+ if (this.victimForm.value.advocateWorkPhone !== undefined){
790
+ if (this.victimForm.value.advocateWorkPhone !== null){
791
+ if (this.victimForm.value.advocateWorkPhone !== ""){
792
+ this.advocatePhoneExistFlag = true;
793
+ }
794
+ }
795
+ }
796
+
797
+
798
+ if (this.victimForm.value.advocateCellPhone){
799
+ if (this.victimForm.value.advocateCellPhone !== null){
800
+ if (this.victimForm.value.advocateCellhone !== ""){
801
+ this.advocatePhoneExistFlag = true;
802
+ }
803
+ }
804
+ }
805
+
806
+ }
807
+
808
+ console.log('this.victimForm.value.advocateNoPhoneFlag');
809
+ console.log(this.victimForm.value.advocateNoPhoneFlag);
810
+ console.log('this.advocatePhoneExistFlag');
811
+ console.log(this.advocatePhoneExistFlag);
812
+
813
+ if(this.advocatePhoneExistFlag === false && this.victimForm.value.advocateNoPhoneFlag === false)
814
+ {
815
+
816
+ this.phoneValidationFlag = true;
817
+ this.commonDialogService
818
+ .warning('', 'Please check the advocate phone field. You have to fill one of the three phone fileds.', 'Ok')
819
+ .subscribe(res => {this.result = res;
820
+
821
+ });
822
+ }
823
+
824
+
825
+ console.log('this.phoneValidationFlag 1');
826
+ console.log(this.phoneValidationFlag);
827
+ if ( this.phoneValidationFlag === false){
828
+
829
+
830
+ if (this.victimDetail === null){
831
+ //insert new victim
832
+
833
+ var myVictimSupports = [];
834
+ if (this.victimForm.value.victimSupports){
835
+ this.victimForm.value.victimSupports.forEach(element => {
836
+ const victimSupport= <VictimSupport>{};
837
+ victimSupport.victimId= this.victimForm.value.victimId;
838
+ victimSupport.victimSupportTypeId= element;
839
+ victimSupport.modifiedBy= this.staffId;
840
+ myVictimSupports.push(victimSupport);
841
+ });
842
+ }
843
+
844
+ var myVictimDrugUses = [];
845
+ console.log('this.victimForm.value.victimDrugUses during save');
846
+ console.log(this.victimForm.value.victimDrugUses);
847
+ if (this.victimForm.value.victimDrugUses){
848
+ this.victimForm.value.victimDrugUses.forEach(element => {
849
+ const victimDrugUse = <VictimDrugUse>{};
850
+ victimDrugUse.drugTypeId = element;
851
+
852
+ if (element ==="OTHER" || element === "" || element === null){
853
+ victimDrugUse.drugTypeId = null;
854
+ victimDrugUse.otherDrug = this.victimForm.value.otherDrug;
855
+ }
856
+ else{
857
+ victimDrugUse.drugTypeId = element;
858
+ victimDrugUse.otherDrug = null;
859
+ }
860
+
861
+ victimDrugUse.modifiedBy = this.staffId;
862
+ victimDrugUse.victimId = this.victimForm.value.victimId;
863
+ myVictimDrugUses.push(victimDrugUse);
864
+ });
865
+ }
866
+
867
+ console.log('this.victimForm.value.victimDrugUses during save 1');
868
+ console.log(this.victimForm.value.victimDrugUses);
869
+
870
+
871
+
872
+ var myVictimWeaponUses = [];
873
+
874
+ if (this.victimForm.value.victimWeaponUses){
875
+ this.victimForm.value.victimWeaponUses.forEach(element => {
876
+ const victimWeaponUse = <VictimWeaponUse>{};
877
+ victimWeaponUse.victimId= this.victimForm.value.victimId;
878
+ victimWeaponUse.weaponTypeId= element;
879
+
880
+ if (element =="OTHER"){
881
+ victimWeaponUse.otherWeapon = this.victimForm.value.otherWeapon;
882
+ }
883
+ else{
884
+ victimWeaponUse.otherWeapon = null;
885
+ }
886
+
887
+ victimWeaponUse.modifiedBy= this.staffId;
888
+ myVictimWeaponUses.push(victimWeaponUse);
889
+ });
890
+ }
891
+
892
+ const newVictim = {
893
+ victimId: 0,
894
+ offenderId: this.offenderId,
895
+ victimOffenderRelationshipTypeId:this.victimForm.value.victimOffenderRelationshipTypeId,
896
+ lastName: this.victimForm.value.lastName,
897
+ firstName: this.victimForm.value.firstName,
898
+ middleName: this.victimForm.value.middleName ? this.victimForm.value.middleName : null,
899
+ prefixId:this.victimForm.value.prefixId ? this.victimForm.value.prefixId : null ,
900
+ suffixId:this.victimForm.value.suffixId ? this.victimForm.value.suffixId: null,
901
+ birthDate:this.victimForm.value.birthDate? this.victimForm.value.birthDate : null,
902
+ genderCode: this.victimForm.value.genderCode? this.victimForm.value.genderCode: null,
903
+ underSupervisionFlag: this.victimForm.value.underSupervisionFlag,
904
+ minorFlag: this.victimForm.value.minorFlag,
905
+ victimAdvocateFlag: this.victimForm.value.victimAdvocateFlag,
906
+ homePhone: this.victimForm.value.homePhone? this.victimForm.value.homePhone.replace(/[()\s-]/g, '') : null,
907
+ workPhone: this.victimForm.value.workPhone ? this.victimForm.value.workPhone.replace(/[()\s-]/g, '') : null,
908
+ cellPhone: this.victimForm.value.cellPhone ? this.victimForm.value.cellPhone.replace(/[()\s-]/g, ''): null,
909
+ email: this.victimForm.value.email ? this.victimForm.value.email: null,
910
+ addressId: this.victimForm.value.addressId ? this.victimForm.value.addressId: 1,
911
+ emergencyContact: this.victimForm.value.emergencyContact ? this.victimForm.value.emergencyContact : null,
912
+ emergencyContactPhone: this.victimForm.value.emergencyContactPhone ? this.victimForm.value.emergencyContactPhone.replace(/[()\s-]/g, ''): null ,
913
+ commonChildrenFlag: this.victimForm.value.commonChildrenFlag,
914
+ commonChildrenNumber: this.victimForm.value.commonChildrenNumber,
915
+ cpoExpirationFlag: this.victimForm.value.cpoExpirationFlag,
916
+ cpoExpirationDate: this.victimForm.value.cpoExpirationDate ? this.datePipe.transform(this.victimForm.value.startDate, 'short') : null,
917
+ supportInPlaceFlag: this.victimForm.value.supportInPlaceFlag,
918
+ weaponInvolvedFlag: this.victimForm.value.weaponInvolvedFlag,
919
+ drugUseFlag: this.victimForm.value.drugUseFlag,
920
+ alcoholUseFlag: this.victimForm.value.alcoholUseFlag,
921
+ accessRisk:this.victimForm.value.accessRisk,
922
+ modifiedBy:this.staffId,
923
+ vVictimAdvocate: null,
924
+ vVictimGuardian: null,
925
+ victimDrugUses: myVictimDrugUses,
926
+ victimSupports: myVictimSupports,
927
+ victimWeaponUses: myVictimWeaponUses,
928
+
929
+ advocateFirstName: null,
930
+ advocateLastName: null,
931
+ advocateEmail: null,
932
+ advocatePrefixId: null,
933
+ advocateSuffixId: null,
934
+ advocateNoPhoneFlag: null,
935
+ advocateHomePhone: null,
936
+ advocateWorkPhone: null,
937
+ advocateCellPhone: null,
938
+ advocateAddressId: null,
939
+ guardianFirstName: null,
940
+ guardianLastName: null,
941
+ guardianEmail: null,
942
+ guardianPrefixId: null,
943
+ guardianSuffixId: null,
944
+ guardianNoPhoneFlag: null,
945
+ guardianHomePhone: null,
946
+ guardianWorkPhone: null,
947
+ guardianCellPhone: null,
948
+ guardianAddressId: null,
949
+ guardianBirthDate: null,
950
+ relationship: null,
951
+ //relationship: this.victimForm.value.victimOffenderRelationshipTypeId? this.victimForm.value.victimOffenderRelationshipTypeId : null,
952
+ allowCsosaContactFlag:this.victimForm.value.allowCsosaContactFlag? this.victimForm.value.allowCsosaContactFlag : null,
953
+ liveWithOffenderFlag:this.victimForm.value.liveWithOffenderFlag? this.victimForm.value.liveWithOffenderFlag : null,
954
+
955
+
956
+ }
957
+
958
+ if (this.addressId == 0){
959
+ newVictim.addressId = null;
960
+ } else {
961
+ newVictim.addressId = this.addressId;
962
+ }
963
+
964
+ newVictim.advocateAddressId = this.advocateAddressId;
965
+ newVictim.guardianAddressId = this.guardianAddressId;
966
+ console.log('newVictim');
967
+ console.log(newVictim);
968
+ this.victimService.postVictims(newVictim).subscribe(
969
+ (items: any) => {
970
+
971
+ const id = items ? items.victimId : '';
972
+
973
+ if (this.victimForm.value.victimAdvocateFlag == "YS"){
974
+ console.log('add advocate');
975
+ const victimAdvocate: VictimAdvocate = {
976
+ victimAdvocateId: id,
977
+ lastName: this.victimForm.value.advocateLastName,
978
+ firstName: this.victimForm.value.advocateFirstName,
979
+ prefixId: this.victimForm.value.advocatePrefixId,
980
+ suffixId: this.victimForm.value.advocateSuffixId,
981
+ addressId: this.advocateAddressId ? this.advocateAddressId: null,
982
+ noPhoneFlag: this.victimForm.value.advocateNoPhoneFlag ? this.victimForm.value.advocateNoPhoneFlag: null,
983
+ homePhone: this.victimForm.value.advocateHomePhone ? this.victimForm.value.advocateHomePhone.replace(/[()\s-]/g, '') : null,
984
+ workPhone: this.victimForm.value.advocateWorkPhone ? this.victimForm.value.advocateWorkPhone.replace(/[()\s-]/g, '') : null,
985
+ cellPhone: this.victimForm.value.advocateCellPhone ? this.victimForm.value.advocateCellPhone.replace(/[()\s-]/g, '') : null,
986
+ email: this.victimForm.value.advocateEmail,
987
+ modifiedBy: this.staffId
988
+
989
+
990
+ };
991
+
992
+ this.victimService.postVictimAdvocate(id, victimAdvocate).subscribe();
993
+ }
994
+
995
+ if (this.victimForm.value.minorFlag == true){
996
+
997
+ const victimGuardian: VictimGuardian = {
998
+ victimGuardianId: id,
999
+ lastName: this.victimForm.value.guardianLastName,
1000
+ firstName: this.victimForm.value.guardianFirstName,
1001
+ prefixId: this.victimForm.value.guardianPrefixId,
1002
+ suffixId: this.victimForm.value.guardianSuffixId,
1003
+ birthDate: this.victimForm.value.guardianBirthDate,
1004
+ addressId: this.guardianAddressId? this.guardianAddressId: null,
1005
+ noPhoneFlag: this.victimForm.value.guardianNoPhoneFlag? this.victimForm.value.guardianNoPhoneFlag: null,
1006
+ homePhone: this.victimForm.value.guardianHomePhone ? this.victimForm.value.guardianHomePhone.replace(/[()\s-]/g, '') : null,
1007
+ workPhone: this.victimForm.value.guardianWorkPhone ? this.victimForm.value.guardianWorkPhone.replace(/[()\s-]/g, '') : null,
1008
+ cellPhone: this.victimForm.value.guardianCellPhone ? this.victimForm.value.guardianCellPhone.replace(/[()\s-]/g, '') : null,
1009
+ email: this.victimForm.value.guardianEmail,
1010
+ modifiedBy: this.staffId
1011
+
1012
+
1013
+ };
1014
+
1015
+ this.victimService.postVictimGuardian(id, victimGuardian).subscribe();
1016
+
1017
+ }
1018
+
1019
+ this.snackBar.open('Add Victim Successfully!', '', {
1020
+ duration: 3000,
1021
+ });
1022
+
1023
+ //insert new
1024
+ if (this.isIntake===true){
1025
+ this.router.navigate(['victimHome']);
1026
+ }
1027
+ else
1028
+ {
1029
+ this.router.navigate(['victimList']);
1030
+ }
1031
+ //this.onSave.emit(this.victimDetail);
1032
+
1033
+ }
1034
+ );
1035
+
1036
+ }
1037
+ else {
1038
+ //update victim
1039
+
1040
+
1041
+ this.victimDetail.underSupervisionFlag = this.victimForm.value.underSupervisionFlag;
1042
+ this.victimDetail.victimOffenderRelationshipTypeId = this.victimForm.value.victimOffenderRelationshipTypeId;
1043
+ this.victimDetail.lastName = this.victimForm.value.lastName;
1044
+ this.victimDetail.firstName = this.victimForm.value.firstName;
1045
+ this.victimDetail.middleName = this.victimForm.value.middleName;
1046
+ this.victimDetail.prefixId = this.victimForm.value.prefixId ? this.victimForm.value.prefixId : null;
1047
+ this.victimDetail.suffixId = this.victimForm.value.suffixId ? this.victimForm.value.suffixId : null;
1048
+ this.victimDetail.birthDate = this.victimForm.value.birthDate;
1049
+ this.victimDetail.genderCode = this.victimForm.value.genderCode;
1050
+ this.victimDetail.minorFlag = this.victimForm.value.minorFlag;
1051
+ this.victimDetail.homePhone = this.victimForm.value.homePhone? this.victimForm.value.homePhone.replace(/[()\s-]/g, '') : null;
1052
+ this.victimDetail.workPhone = this.victimForm.value.workPhone? this.victimForm.value.workPhone.replace(/[()\s-]/g, ''): null;
1053
+ this.victimDetail.cellPhone = this.victimForm.value.cellPhone? this.victimForm.value.cellPhone.replace(/[()\s-]/g, ''): null;
1054
+ this.victimDetail.email = this.victimForm.value.email;
1055
+ this.victimDetail.victimAdvocateFlag = this.victimForm.value.victimAdvocateFlag;
1056
+ this.victimDetail.emergencyContact = this.victimForm.value.emergencyContact;
1057
+ this.victimDetail.emergencyContactPhone = this.victimForm.value.emergencyContactPhone? this.victimForm.value.emergencyContactPhone.replace(/[()\s-]/g, ''): null;
1058
+ this.victimDetail.commonChildrenFlag = this.victimForm.value.commonChildrenFlag;
1059
+ this.victimDetail.commonChildrenNumber = this.victimForm.value.commonChildrenNumber;
1060
+ this.victimDetail.cpoExpirationDate = this.victimForm.value.cpoExpirationDate;
1061
+ this.victimDetail.cpoExpirationFlag = this.victimForm.value.cpoExpirationFlag;
1062
+ this.victimDetail.supportInPlaceFlag = this.victimForm.value.supportInPlaceFlag;
1063
+ this.victimDetail.weaponInvolvedFlag = this.victimForm.value.weaponInvolvedFlag;
1064
+ this.victimDetail.drugUseFlag = this.victimForm.value.drugUseFlag;
1065
+ this.victimDetail.alcoholUseFlag = this.victimForm.value.alcoholUseFlag;
1066
+ this.victimDetail.accessRisk = this.victimForm.value.accessRisk;
1067
+ this.victimDetail.addressId = this.addressId;
1068
+ this.victimDetail.allowCsosaContactFlag = this.victimForm.value.allowCsosaContactFlag;
1069
+ this.victimDetail.liveWithOffenderFlag = this.victimForm.value.liveWithOffenderFlag;
1070
+
1071
+
1072
+ this.victimDetail.victimSupports = [];
1073
+ this.victimForm.value.victimSupports.forEach(element => {
1074
+ const victimSupport= <VictimSupport>{};
1075
+ victimSupport.victimId= this.victimDetail.victimId;
1076
+ victimSupport.victimSupportTypeId= element;
1077
+ victimSupport.modifiedBy= this.staffId;
1078
+ this.victimDetail.victimSupports.push(victimSupport);
1079
+ });
1080
+
1081
+
1082
+ this.victimDetail.victimDrugUses = [];
1083
+
1084
+ console.log('this.victimForm.value.victimDrugUses calculate')
1085
+ console.log(this.victimForm.value.victimDrugUses)
1086
+
1087
+ this.victimForm.value.victimDrugUses.forEach(element => {
1088
+ const victimDrugUse = <VictimDrugUse>{};
1089
+ victimDrugUse.drugTypeId = element;
1090
+ console.log('this.victimForm.value.victimDrugUses before')
1091
+ console.log(this.victimForm.value.victimDrugUses)
1092
+
1093
+ if (element === "OTHER" || element === "" ){
1094
+ victimDrugUse.drugTypeId = null;
1095
+ victimDrugUse.otherDrug = this.victimForm.value.otherDrug;
1096
+ }
1097
+ else{
1098
+ victimDrugUse.drugTypeId = element;
1099
+ victimDrugUse.otherDrug = null;
1100
+ }
1101
+
1102
+ victimDrugUse.modifiedBy = this.staffId;
1103
+ victimDrugUse.victimId = this.victimDetail.victimId;
1104
+ this.victimDetail.victimDrugUses.push(victimDrugUse);
1105
+ console.log('this.victimForm.value.victimDrugUses after')
1106
+ console.log(this.victimForm.value.victimDrugUses)
1107
+
1108
+ });
1109
+
1110
+
1111
+
1112
+ this.victimForm.value.victimDrugUses.filter(word => ( !(word.drugTypeId === null && word.otherDrug === null) ));
1113
+
1114
+
1115
+ console.log('adjust this.victimForm.value.victimDrugUses ')
1116
+ console.log(this.victimForm.value.victimDrugUses)
1117
+
1118
+ this.victimDetail.victimWeaponUses = [];
1119
+ this.victimForm.value.victimWeaponUses.forEach(element => {
1120
+ const victimWeaponUse = <VictimWeaponUse>{};
1121
+ victimWeaponUse.victimId= this.victimDetail.victimId;
1122
+ victimWeaponUse.weaponTypeId= element;
1123
+
1124
+ console.log('weapon element');
1125
+ console.log(element);
1126
+ console.log(this.victimForm.value.otherWeapon);
1127
+ console.log(this.victimForm.value.victimWeaponUses);
1128
+
1129
+ if (element =="OTHER"){
1130
+ victimWeaponUse.otherWeapon=this.victimForm.value.otherWeapon;
1131
+ }
1132
+ else{
1133
+ victimWeaponUse.otherWeapon = null;
1134
+ }
1135
+
1136
+ victimWeaponUse.modifiedBy= this.staffId;
1137
+ this.victimDetail.victimWeaponUses.push(victimWeaponUse);
1138
+
1139
+ });
1140
+
1141
+
1142
+ console.log('this.victimDetail before emit');
1143
+ console.log(this.victimDetail);
1144
+
1145
+
1146
+ this.victimService.putVictims(this.victimDetail.victimId,this.victimDetail).subscribe(
1147
+ (items: any) => {
1148
+ this.snackBar.open('Update Successfully!', '', {
1149
+ duration: 3000,
1150
+ });
1151
+
1152
+ //Advocate section
1153
+
1154
+ this.victimAdvocate.victimAdvocateId = this.victimDetail.victimId;
1155
+ this.victimAdvocate.lastName= this.victimForm.value.advocateLastName;
1156
+ this.victimAdvocate.firstName= this.victimForm.value.advocateFirstName;
1157
+ this.victimAdvocate.prefixId= this.victimForm.value.advocatePrefixId ? this.victimForm.value.advocatePrefixId : null;
1158
+ this.victimAdvocate.suffixId= this.victimForm.value.advocateSuffixId ? this.victimForm.value.advocateSuffixId : null;
1159
+ this.victimAdvocate.addressId= this.advocateAddressId ? this.advocateAddressId : null;
1160
+ this.victimAdvocate.noPhoneFlag= this.victimForm.value.advocateNoPhoneFlag? true: false;
1161
+ this.victimAdvocate.homePhone= this.victimForm.value.advocateHomePhone ? this.victimForm.value.advocateHomePhone.replace(/[()\s-]/g, '') : null;
1162
+ this.victimAdvocate.workPhone= this.victimForm.value.advocateWorkPhone ? this.victimForm.value.advocateWorkPhone.replace(/[()\s-]/g, '') : null;
1163
+ this.victimAdvocate.cellPhone= this.victimForm.value.advocateCellPhone ? this.victimForm.value.advocateCellPhone.replace(/[()\s-]/g, '') : null;
1164
+ this.victimAdvocate.email= this.victimForm.value.advocateEmail ? this.victimForm.value.advocateEmail : null;
1165
+ this.victimAdvocate.modifiedBy= this.staffId;
1166
+
1167
+ console.log('work on advocate part');
1168
+ if (this.victimDetail.victimAdvocateFlag=='YS')
1169
+ {
1170
+ console.log('work on advocate flag is YS ');
1171
+ if(this.victimDetail.advocateFirstName != null){
1172
+ console.log('check advocate fisrt name ');
1173
+ console.log(this.victimDetail.advocateFirstName);
1174
+ this.victimService.putVictimAdvocate(this.victimDetail.victimId,this.victimAdvocate).subscribe(
1175
+ resp=>{} );
1176
+ }
1177
+ else
1178
+ {
1179
+ console.log('add advocate');
1180
+ console.log(this.victimAdvocate);
1181
+ this.victimService.postVictimAdvocate(this.victimDetail.victimId, this.victimAdvocate).subscribe();
1182
+ }
1183
+
1184
+
1185
+ }
1186
+
1187
+
1188
+ // guardian section
1189
+ this.victimGuardian.victimGuardianId = this.victimDetail.victimId;
1190
+ this.victimGuardian.lastName = this.victimForm.value.guardianLastName;
1191
+ this.victimGuardian.firstName = this.victimForm.value.guardianFirstName;
1192
+ this.victimGuardian.prefixId = this.victimForm.value.guardianPrefixId ? this.victimForm.value.guardianPrefixId : null;
1193
+ this.victimGuardian.suffixId = this.victimForm.value.guardianSuffixId ? this.victimForm.value.guardianSuffixId : null;
1194
+ this.victimGuardian.addressId = this.guardianAddressId ? this.guardianAddressId : null;
1195
+ this.victimGuardian.noPhoneFlag = this.victimForm.value.guardianNoPhoneFlag? true: false;
1196
+ this.victimGuardian.homePhone = this.victimForm.value.guardianHomePhone ? this.victimForm.value.guardianHomePhone.replace(/[()\s-]/g, '') : null;
1197
+ this.victimGuardian.workPhone = this.victimForm.value.guardianWorkPhone ? this.victimForm.value.guardianWorkPhone.replace(/[()\s-]/g, '') : null;
1198
+ this.victimGuardian.cellPhone = this.victimForm.value.guardianCellPhone ? this.victimForm.value.guardianCellPhone.replace(/[()\s-]/g, '') : null;
1199
+ this.victimGuardian.email = this.victimForm.value.guardianEmail ? this.victimForm.value.guardianEmail : null;
1200
+ this.victimGuardian.modifiedBy = this.staffId;
1201
+
1202
+ if (this.victimDetail.minorFlag == true)
1203
+ {
1204
+ if(this.victimDetail.guardianFirstName != null )
1205
+ this.victimService.putVictimGuardian(this.victimDetail.victimId,this.victimGuardian).subscribe(
1206
+ resp=>{
1207
+ }
1208
+ );
1209
+ else
1210
+ {
1211
+ console.log('add gurdian');
1212
+ console.log(this.victimGuardian);
1213
+ this.victimService.postVictimGuardian(this.victimDetail.victimId, this.victimGuardian).subscribe();
1214
+ }
1215
+
1216
+ }
1217
+
1218
+
1219
+ }
1220
+
1221
+ );
1222
+
1223
+ }
1224
+ }//end of this.phoneValidationFlag = false
1225
+ console.log('this.victimDetail');
1226
+ console.log(this.victimDetail);
1227
+ this.onSave.emit(this.victimDetail);
1228
+
1229
+ }
1230
+
1231
+ //#endregion "save victim"
1232
+ addContact(){
1233
+
1234
+ this.router.navigate(['victimContact',this.victimId]);
1235
+ }
1236
+ formatLabel(value: number) {
1237
+ return value;
1238
+ }
1239
+
1240
+
1241
+ }