0" >
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.spec.ts
new file mode 100644
index 000000000..509a8948a
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CaptureBtnComponent } from './capture-btn.component';
+
+describe('CaptureBtnComponent', () => {
+ let component: CaptureBtnComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ CaptureBtnComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(CaptureBtnComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.ts
new file mode 100644
index 000000000..9dfbb91cd
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component.ts
@@ -0,0 +1,69 @@
+// import { Component, OnInit } from '@angular/core';
+
+// @Component({
+// selector: 'app-capture-btn',
+// templateUrl: './capture-btn.component.html',
+// styleUrls: ['./capture-btn.component.scss']
+// })
+// export class CaptureBtnComponent implements OnInit {
+
+// constructor() { }
+
+// ngOnInit() {
+// }
+
+// }
+
+import { Component, OnInit, Output, EventEmitter, Input, Injectable } from '@angular/core';
+import { Ng2ImgMaxService } from 'ng2-img-max';
+import { LoaderService } from 'app/shared/loaderService/loader.service';
+@Injectable({
+ providedIn: 'root'
+})
+@Component({
+ selector: 'app-capture-btn',
+ templateUrl: './capture-btn.component.html',
+ styleUrls: ['./capture-btn.component.scss']
+})
+export class CaptureBtnComponent implements OnInit {
+
+ @Input() addMoreBtn;
+ @Output() imageDataEmitter = new EventEmitter
+ @Output() singleDataEmitter = new EventEmitter
+ sales_pd_type: string;
+ role_id: string;
+
+ constructor(private ng2ImgMax:Ng2ImgMaxService,private loaderService:LoaderService) {
+ this.role_id = localStorage.getItem('user_role')
+ this.sales_pd_type = localStorage.getItem('sales_pd_type')
+ console.log(this.sales_pd_type)
+ }
+
+ ngOnInit(): void {
+ console.log(this.addMoreBtn)
+ }
+ capturedImage(event){
+ this.loaderService.showMatSpinnerDialog('Fetching Data...')
+ console.log(event);
+ let imageData= event.target.files[0]
+
+ this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
+ result => {
+
+ this.imageDataEmitter.emit(result)
+ this.singleDataEmitter.emit(result)
+ this.loaderService.closeMatSpinnerDialog()
+ },
+ error => {
+ console.log('😢 Oh no!', error);
+ }
+ );
+
+ }
+ capture(event){
+ event.preventDefault();
+ let element:HTMLElement = document.getElementById('input-file') as HTMLElement
+ element.click();
+ }
+}
+
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service.spec.ts
new file mode 100644
index 000000000..0ca160ef2
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service.spec.ts
@@ -0,0 +1,12 @@
+import { TestBed } from '@angular/core/testing';
+
+import { CameraService } from './camera.service';
+
+describe('CameraService', () => {
+ beforeEach(() => TestBed.configureTestingModule({}));
+
+ it('should be created', () => {
+ const service: CameraService = TestBed.get(CameraService);
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service.ts
new file mode 100644
index 000000000..134dc53fc
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/camera/camera.service.ts
@@ -0,0 +1,111 @@
+import { Injectable } from '@angular/core';
+import { DatePipe } from '@angular/common';
+import * as watermark from 'watermarkjs';
+
+
+@Injectable({
+ providedIn: 'root'
+})
+export class CameraService {
+pipe = new DatePipe('en-US')
+ constructor() {
+ setTimeout(()=>{
+ this.getPosition().then(res=>{
+ console.log("geolocation",res)
+ },err=>{
+ console.log("Error in geo",err);
+ })
+ },2000)
+ }
+ addWatermarks(base64Img,geoCords?) {
+
+ return new Promise((resolve, reject) => {
+
+ // this.constant.getGeoTag().then(geoCoordinates => {
+ // this.getPosition().then(geoCords=>{
+ // console.log(geoCords);
+ // this.geoCords = geoCoordinates
+ // });
+ // this.geoCords=localStorage.getItem('current_coordinates')
+ // console.log("corrds",this.geoCords)
+ let raw_img = base64Img
+ var today = new Date();
+ // let today_loc = today.toLocaleString('en-US', { timeZone: "Asia/Kolkata" })
+ let today_loc=this.pipe.transform(today, 'yyyy-MM-dd, h:mm a')
+ var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate();
+ // var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
+ var dateTime = 'Date : ' + today_loc;
+
+ console.log(date)
+
+ // fetch(raw_img)
+ // .then(res => res.blob())
+ // .then(blob => {
+ watermark([raw_img, 'assets/images/PD_watermark.png'])
+ .image(watermark.image.upperRight())
+ .then(img => {
+ raw_img = img.src;
+
+ let text = watermark.text
+ watermark([raw_img])
+ .image(text.upperLeft(dateTime, '19px sans-serif', '#ff0000', 1.0))
+ // .image(text.upperLeft(dateTime, '20px sans-serif', '#ff0000', 1.0))
+ .then(img => {
+ raw_img = img.src;
+ console.log("2d", raw_img)
+ // resolve(img.src)
+ console.log(geoCords)
+ // let geoCoordinates = geoCords ? geoCords : '-'
+ if(geoCords) {
+ let Location = `Location : ` + geoCords
+ watermark([raw_img])
+ .image(text.upperLeft(Location, '19px sans-serif', '#ff0000', 1.0, 40 ))
+ .then(img => {
+ raw_img = img.src
+ console.log("3rd", raw_img)
+ resolve(img.src)
+ // localStorage.removeItem('current_coordinates')
+ });
+ }
+ else {
+ resolve(img.src)
+ }
+ });
+ });
+
+
+ // },err=>{
+ // console.log("Error in geo",err);
+ // switch(err.code) {
+ // case 1:
+ // alert("Geolocation permission is denied. Please allow the permission to capture");
+ // break;
+ // case 2:
+ // alert("Do not get the geolocation of your place");
+ // break;
+ // case 2:
+ // alert("Something went wrong");
+ // break;
+ // }
+ // reject(err);
+ // })
+ })
+ // });
+ }
+ getPosition(): Promise
+ {
+ return new Promise((resolve, reject) => {
+
+ navigator.geolocation.getCurrentPosition(resp => {
+ console.log("Geo",resp.coords);
+ let latLong:string = resp.coords.latitude+', '+resp.coords.longitude
+ // resolve({lng: resp.coords.longitude, lat: resp.coords.latitude});
+ resolve(latLong)
+ },
+ err => {
+ resolve('error');
+ });
+ });
+
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/data-service/data-service.service.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/data-service/data-service.service.spec.ts
new file mode 100644
index 000000000..8fda02d39
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/data-service/data-service.service.spec.ts
@@ -0,0 +1,12 @@
+import { TestBed } from '@angular/core/testing';
+
+import { DataServiceService } from './data-service.service';
+
+describe('DataServiceService', () => {
+ beforeEach(() => TestBed.configureTestingModule({}));
+
+ it('should be created', () => {
+ const service: DataServiceService = TestBed.get(DataServiceService);
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/data-service/data-service.service.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/data-service/data-service.service.ts
new file mode 100644
index 000000000..91759c0c5
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/data-service/data-service.service.ts
@@ -0,0 +1,25 @@
+import { Injectable } from '@angular/core';
+ export interface errorMsgInterface {
+ title:string;
+ subtitle:string;
+ message:string;
+ is_homebtn:boolean
+ }
+@Injectable({
+ providedIn: 'root'
+})
+export class DataServiceService {
+ errorMsg:errorMsgInterface
+ getPDImageData:any;
+ constructor() {
+ this.errorMsg ={
+ title:"404",
+ subtitle:'Not Found',
+ message:'The requested URL is not found on the server',
+ is_homebtn:false
+ }
+ }
+ setErrorMsg(obj:errorMsgInterface) {
+ this.errorMsg = obj
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/api-service.service.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/api-service.service.spec.ts
new file mode 100644
index 000000000..ab0f1bd04
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/api-service.service.spec.ts
@@ -0,0 +1,12 @@
+import { TestBed } from '@angular/core/testing';
+
+import { ApiServiceService } from './api-service.service';
+
+describe('ApiServiceService', () => {
+ beforeEach(() => TestBed.configureTestingModule({}));
+
+ it('should be created', () => {
+ const service: ApiServiceService = TestBed.get(ApiServiceService);
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/api-service.service.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/api-service.service.ts
new file mode 100644
index 000000000..2da2e6b20
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/api-service.service.ts
@@ -0,0 +1,85 @@
+// import { Injectable } from '@angular/core';
+
+// @Injectable({
+// providedIn: 'root'
+// })
+// export class ApiServiceService {
+
+// constructor() { }
+// }
+
+import { Injectable } from '@angular/core';
+import { HttpClient, HttpParams } from '@angular/common/http';
+import { environment } from 'environments/environment';
+import { Observable } from 'rxjs';
+import { AwsService } from 'app/AwsService/aws.service';
+
+const apiUrl = environment.apiEndpoint
+@Injectable({
+ providedIn: 'root'
+})
+
+export class ApiServiceService {
+ // for pd questions component
+ public curr_credit_pd_data:any = {}
+ public raw_credit_pd_template:any;
+ public user_login_details:any ={}
+
+ constructor(private http:HttpClient,private _awsService:AwsService) { }
+ loadTemplate() {
+ return this.http.get('assets/credit_pd_template.json').map(rr=>{
+ let returnValue ={dataStatus:true,status:200,records:{template:JSON.stringify(rr)}}
+ this.raw_credit_pd_template= returnValue.records.template
+ return returnValue
+ })
+ }
+ getCityPincode(value){
+ let params={records:{state_id:value}}
+ return this.http.post(apiUrl+"getListOfStatesAndCities",params)
+ }
+ api_post_method(api_name:string,params,api_method?){
+
+ if(api_method.toUpperCase() == 'POST'){
+ return this.http.post(apiUrl+api_name,params)
+ }
+ else{
+ return this.http.get(apiUrl+api_name)
+ }
+ }
+ getSalesPDSectionData(params) {
+ return this.http.post(apiUrl+'getSalesPDSectionData',{records:params})
+ }
+
+ listSMCCreditPD():Observable {
+ let value= localStorage.getItem('LocalSetEntity')
+ // let params = new HttpParams().set("paramName",value) //Create new HttpParams
+ return this.http.get(apiUrl+'listSMCCreditPD/'+value);
+ }
+ saveSMCCreditPD(params) {
+ let params_defined:any={"smc_credit_pd":this.curr_credit_pd_data.smc_credit_pd == null ? '' : this.curr_credit_pd_data.smc_credit_pd
+ ,"fk_sales_pd_id":this.curr_credit_pd_data.fk_sales_pd_id,"lender_id":this.curr_credit_pd_data.lender_id,"product_id":this.curr_credit_pd_data.product_id,"smc_credit_pd_type":this.curr_credit_pd_data.smc_credit_pd_type,"createdby":this._awsService.getlocale(),"status":params.status}
+ return this.http.post(apiUrl+'saveSMCCreditPD',{records:params_defined});
+ }
+ loadSalesPDTemplate():Observable {
+ let lender_id= localStorage.getItem('LocalSetEntity')
+ let params = {"records":{"lender_id":lender_id,"product_id":this.curr_credit_pd_data.product_id,"sales_pd_type":this.curr_credit_pd_data.smc_credit_pd_type,"pd_type":"2"}}
+ return this.http.post(apiUrl+'loadSalesPDTemplate',params).map((res:any)=>{
+ if(res['dataStatus'] && res.hasOwnProperty('records') && res.records.hasOwnProperty('template')){
+ this.raw_credit_pd_template = res.records.template
+ }
+ return res
+ })
+ }
+ saveSMCCreditPDsection(params1):Observable {
+ let params = {"records":{"smc_credit_pd":this.curr_credit_pd_data.smc_credit_pd,"lender_id":this.curr_credit_pd_data.lender_id,"product_id":this.curr_credit_pd_data.product_id,"fk_createdby":this._awsService.getlocale(),"geo_location":"","section_id":params1.section_id,"questions":params1.questions,"is_complete":"0"}}
+ return this.http.post(apiUrl+'saveSMCCreditPDsection',params)
+ }
+
+ getSalesPDImgDataCusLink(params) {
+ return this.http.post(apiUrl+'getSalesPDImgDataCusLink',params)
+ }
+ getSMCCreditPDSectionData(params) {
+ return this.http.post(apiUrl+'getSMCCreditPDSectionData',{records:params})
+ }
+}
+
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/question-service.service.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/question-service.service.spec.ts
new file mode 100644
index 000000000..278cf9a36
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/question-service.service.spec.ts
@@ -0,0 +1,12 @@
+import { TestBed } from '@angular/core/testing';
+
+import { QuestionServiceService } from './question-service.service';
+
+describe('QuestionServiceService', () => {
+ beforeEach(() => TestBed.configureTestingModule({}));
+
+ it('should be created', () => {
+ const service: QuestionServiceService = TestBed.get(QuestionServiceService);
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/question-service.service.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/question-service.service.ts
new file mode 100644
index 000000000..59236b31f
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/question-service.service.ts
@@ -0,0 +1,470 @@
+// import { Injectable } from '@angular/core';
+
+// @Injectable({
+// providedIn: 'root'
+// })
+// export class QuestionServiceService {
+
+// constructor() { }
+// }
+
+
+import { environment } from 'environments/environment';
+import { Injectable } from '@angular/core';
+import { Observable, of, forkJoin } from 'rxjs';
+import { HttpClient, HttpParams } from '@angular/common/http';
+import { catchError, map } from 'rxjs/operators';
+import { Observer } from 'rxjs';
+import { FormGroup, FormControl, FormArray, FormBuilder, Validators } from '@angular/forms';
+//import { SalesPdProvider } from '../sales-pd/sales-pd';
+
+import { DatePipe } from '@angular/common';
+import { SalesPdService } from './sales-pd.service';
+import { ApiServiceService } from './api-service.service';
+const api_url = environment.apiEndpoint;
+@Injectable({
+ providedIn: 'root'
+})
+export class QuestionServiceService {
+ datepipe: DatePipe;
+ curr_pd_info: any;
+ constructor(public http: HttpClient,private _fb:FormBuilder,private salesPDProvider:SalesPdService,private apiService:ApiServiceService) {
+ this.datepipe=new DatePipe('en-US')
+ }
+ // FOR CREATING A FORM CONTROL DYNAMICALLY
+ assignFormControl_array(formgroup: FormGroup, ques_data: any) {
+ // alert('question');
+ this.curr_pd_info = this.apiService.curr_credit_pd_data
+ console.log(formgroup, ques_data)
+ const control: any = formgroup.get('questions') as FormArray
+ ques_data.forEach((val, index) => {
+ console.log("quees", val)
+ if (val.hasOwnProperty('is_repeatable') && val.is_repeatable == '1') {
+ control.push(this._fb.group({
+ "is_repeatable": [val.is_repeatable || null],
+ "is_multi_disabled":[val.is_multi_disabled || '0'],
+ "group_title": [val.group_title || null], "group_type": [val.group_type || null]
+ ,"question_key":[val.question && val.question.length > 0 ? val.question[0].question_key : val.question_key]
+ }))
+ // let temp=val
+
+ // control.push(this.createValue(temp))
+
+ control.controls[index].addControl('questions_group', this._fb.array([]))
+
+ let childControl: any = control.controls[index].get('questions_group') as FormArray
+
+ childControl.push(this._fb.group({ 'questions': this._fb.array([]) }))
+ console.log("cc", childControl, control, index)
+ let sub_childControl: any = childControl.controls[0].get('questions') as FormArray
+ val.question.forEach((group_indi, arr_index) => {
+ // if(group_indi.api_properties != null && typeof(group_indi.api_properties) == 'object'){
+ console.log("api pro", val.api_properties)
+ // let param
+ // val.api_properties.forEach(val=>param=val)
+ // console.log(param)
+ group_indi.raw_validations = group_indi.validations
+ sub_childControl.push(this.createValue(group_indi))
+ this.addAdditionalControl(group_indi,sub_childControl,arr_index)
+ // if(group_indi.type == '5'){
+ // sub_childControl.controls[arr_index].removeControl('answer_value');
+ // console.log("loop",arr_index,sub_childControl);
+ // sub_childControl.controls[arr_index].addControl('answer_value',this._fb.array([]))
+ // }
+ // if(group_indi.type == '1'){
+ // sub_childControl.controls[arr_index].addControl('field_type',new FormControl(group_indi.field_type))
+ // }
+ // if(val.type == '8'){
+ // sub_childControl.controls[index].addControl('select_search',new FormControl(val.field_type))
+ // }
+
+ if (group_indi.api_properties != null) {
+ this.apiPropertiesCall(group_indi).then(res => {
+ if (res != false) {
+ group_indi.answers = []
+ // group_indi.answers=this.convertArrayNames(val.api_properties.fields,res)
+ sub_childControl.controls[arr_index]['controls'].answers.setValue(this.convertArrayNames(group_indi.api_properties.fields, res))
+
+ }
+ })
+ }
+ // else{
+ // setTimeout(()=>{
+ // sub_childControl.push(this.createValue(group_indi))
+ // },200)
+ // }
+ // sub_childControl.push(this.createValue(group_indi))
+ })
+ // }
+ // else{
+ // sub_childControl.push(this.createValue(group_indi))
+ // }
+ // setTimeout(()=>{
+
+ // },500)
+
+ console.log("dd112", formgroup, childControl)
+ // let key_list=Object.keys(val)
+ // console.log(Object.keys(val))
+ // key_list.forEach(key=>{
+ // childControl.controls
+ // })
+ }
+ else {
+ // console.log("con",control)
+ // let key_list=Object.keys(val)
+ // console.log(Object.keys(val))
+ // let curr_object
+ // console.log("apikd",typeof(val.api_properties))
+ // if(val.api_properties != null && typeof(val.api_properties) == 'object'){
+ val.raw_validations = val.validations
+ control.push(this.createValue(val))
+ // for checkbox remove the form control and add the formarray for multiple values
+ this.addAdditionalControl(val, control, index)
+ // if(val.type == '5'){
+ // control.controls[index].removeControl('answer_value');
+ // console.log("loop",index,control);
+ // control.controls[index].addControl('answer_value',this._fb.array([]))
+ // }
+ // if(val.type == '1'){
+ // control.controls[index].addControl('field_type',new FormControl(val.field_type))
+ // }
+ // if(val.type == '8'){
+ // control.controls[index].addControl('select_search',new FormControl(val.field_type))
+ // }
+ if (val.api_properties != null) {
+ this.apiPropertiesCall(val).then(res => {
+ console.log("chekc", res)
+ if (res != false) {
+ // val.answers=[]
+ // val.answers=this.convertArrayNames(val.api_properties.fields,res)
+ control.controls[index]['controls'].answers.setValue(this.convertArrayNames(val.api_properties.fields, res))
+
+ }
+ }, err => console.log(err))
+ }
+ // else{
+ // setTimeout(()=>{
+ // control.push(this.createValue(val))
+ // },200)
+ // }
+
+ // }
+ // else{
+ // control.push(this.createValue(val))
+ // }
+ console.log(formgroup)
+
+ }
+ console.log('149')
+ }, err => console.log(err))
+ console.log('151')
+ return formgroup
+ }
+ // END OF FORM CREATION
+
+ // FOR CREATING THE FORM CONTROL FOR SPECIFIC FORM ARRAY
+ createValue(data){
+ let is_amt_in_words=false
+ let answer_value_loc='';
+ let answers_from_client=[]
+ if(data.hasOwnProperty('answer_value') && data.answer_value != '' || null){
+ let values_for_cli:any = this.getAnswerValue(data)
+ if(values_for_cli.flag == 1){
+ answer_value_loc=values_for_cli.values
+ }
+ else{
+ answers_from_client=values_for_cli.values
+ }
+ }
+ // if(data.hasOwnProperty('field_type')){
+ // if(data.field_type == 'num'){
+ // is_amt_in_words=true
+ // }
+ // }
+ return this._fb.group({
+ "answer_value":[{value:answer_value_loc,disabled:answer_value_loc != '' ? true : false}], // OLD VALIDATION >>>> data.type != '6' ? Validators.compose([Validators.required]) : ''
+ "question":[data.question],
+ "question_key":[data.question_key],
+ "type":[data.type],
+ "raw_validations":[data.raw_validations],
+ "validations":[data.raw_validations],
+ "api_properties":[data.api_properties],
+ "onchange_properties":[data.onchange_properties],
+ "answers":[answers_from_client.length != 0 ? answers_from_client: data.answers],
+ "is_repeatable":[data.is_repeatable || null],
+ "is_multiple":[data.is_multiple || 0],
+ "group_title":[data.group_title || null]
+ })
+ }
+ // END OF CREATEVALUE FUN
+
+ // FOR REQUESTING THE API AUTOMATICALLY FROM JSON
+ apiPropertiesCall(val){
+ return new Promise((resolve,reject)=>{
+ if(val.api_properties != null && typeof(val.api_properties) == 'object'){
+ let pd_info = this.curr_pd_info
+ console.log(pd_info)
+ let params = val.api_properties.params
+ if(val.api_properties.hasOwnProperty('params_type') && val.api_properties.params_type == 'expression') {
+ params = eval(val.api_properties.params)
+ console.log(params,this.curr_pd_info.smc_credit_pd)
+ // debugger;
+ }
+ this.salesPDProvider.api_post_method(val.api_properties.api,params,val.api_properties.api_method).subscribe(res=>{
+ if(res['dataStatus']){
+ if(res.hasOwnProperty('records')){
+ res=res['records']
+ }
+ resolve(res)
+ console.log(res)
+ // val.answers=res
+ }
+ else{
+ resolve(false)
+ }
+ })
+ }
+ else{
+ resolve(false)
+ }
+ })
+ }
+ // END OF API PROPERTIES CALL
+
+ // ---FOR CONVERTING THE ANSWER KEYS UNIQUE
+ convertArrayNames(fieldName,data_from_api){
+ let val1=[]
+ let modified_json = data_from_api.map(
+ obj => {
+ if(fieldName.length > 0) {
+ return {
+ "answer_id" : obj[fieldName[0]],
+ "answer":obj[fieldName[1]],
+
+ }
+ }
+ else {
+ return {
+ "answer_id" : obj,
+ "answer":obj,
+ }
+ }
+ });
+ return modified_json
+ }
+ // END OF CONVERTARRAYNAMES FUN--
+
+ // --- FOR SETTING THE VALUE DEFAULT WITH DISABLED AND GENERATE THE ANSWERS FOR FIELDS(EX. refer 'GET_FY_YEARS' switch)
+ getAnswerValue(value_obj) {
+ if (value_obj != null && value_obj.hasOwnProperty('answer_value')) {
+ let return_value = { flag: 1, values: '' };
+ let user_det: any = localStorage.getItem("user_details")
+ user_det = JSON.parse(user_det);
+ switch (value_obj.answer_value) {
+ case 'CURRENT_USER':
+ console.log("current user", user_det)
+ return_value.values = user_det.user_first_name + ' ' + user_det.user_last_name
+ break;
+ case "CURRENT_DESIGNATION":
+ return_value.values = user_det.designation_name != null ? user_det.designation_name : ''
+ break;
+ case "CURRENT_DATE":
+ let date = new Date()
+ return_value.values = this.datepipe.transform(date, 'dd-MM-yyyy, h:mm:ss a')
+ break;
+ case "GET_FY_YEARS":
+ return_value.values = this.getCurrentFyYears()
+ return_value.flag = 2
+ break;
+ default:
+ return_value.values = ''
+ break
+ }
+ return return_value
+ }
+ return ''
+ }
+ // --END OF GETANSWERVALUE FUN
+
+ addAdditionalControl(data,curr_control,curr_index,purpose?){
+ console.log(data,curr_control,curr_index)
+
+ //FOR CHECKBOX CHANGE THE VALUE STORAGE AS ARRAY
+ if(data.type == '5'){
+ console.log('305')
+ curr_control.controls[curr_index].removeControl('answer_value');
+ curr_control.controls[curr_index].addControl('answer_value',this._fb.array([]))
+ }
+
+ //FOR numeric of string field
+ if(data.type == '1'){
+ console.log('292')
+ curr_control.controls[curr_index].addControl('field_type',new FormControl(data.field_type))
+ curr_control.controls[curr_index].addControl('place_holder',new FormControl(data.place_holder))
+ }
+
+ //FOR SEARCHABLE FIELD VALUE KEY ()
+ if(data.type == '8'){
+ curr_control.controls[curr_index].addControl('select_search',new FormControl(data.field_type))
+ }
+ if(purpose == 'additional_field'){
+ curr_control.controls[curr_index].addControl('additional_field',new FormControl(1))
+ }
+
+ // FOR IMAGE STATUS
+ if(data.type == '6'){
+ curr_control.controls[curr_index].addControl('is_loader',new FormControl(''))
+ curr_control.controls[curr_index].addControl('is_saved',new FormControl(''))
+ curr_control.controls[curr_index].addControl('is_image_status',new FormControl(false))
+ }
+
+ if(data.hasOwnProperty('question_enable') && data.question_enable != null && data.question_enable) {
+ console.log('313',data.hasOwnProperty('question_enable') && data.question_enable != null && data.question_enable)
+ let expression= data.question_enable;
+ console.log("Check started",expression,expression.includes('PD_FORM_VALUES'));
+ if(expression.includes('PD_FORM_VALUES')) {
+ console.log('311',expression.includes('PD_FORM_VALUES'))
+ let sales_pd_id = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ console.log('319',sales_pd_id)
+ // this.salesPDProvider.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(sales_pd_id => {
+ setTimeout(()=>{
+ if(sales_pd_id) {
+ console.log('322',sales_pd_id)
+ let PD_FORM_VALUES = localStorage.getItem('PD_FORM_VALUES-'+sales_pd_id)
+ console.log('324',PD_FORM_VALUES)
+ if(PD_FORM_VALUES) {
+ console.log('326',PD_FORM_VALUES)
+ PD_FORM_VALUES = JSON.parse(PD_FORM_VALUES)
+ console.log('328',PD_FORM_VALUES)
+ // expression = expression.split('PD_FORM_VALUES').join(local_pd_form_values)
+ console.log("ex",expression)
+ let result = eval(expression)
+ console.log(result);
+ if(!result) {
+ console.log('324',!result,curr_control.removeAt(curr_index))
+ curr_control.removeAt(curr_index);
+ }
+ }
+ }
+ },500)
+
+ // })
+ }
+ // expression = expression.split(res).join(control_value_obj.answer_value)
+ }
+ console.log(curr_control,curr_control.controls[curr_index])
+ //FOR SETTING THE VALIDATORS
+ this.settingArrayofValidators(data,curr_control.controls[curr_index],curr_index)
+ }
+
+// FOR SETTING THE ARRAY OF VALIDATORS COMING FROM JSON Temp,
+ settingArrayofValidators(data,curr_control,curr_index){
+ console.log("entered 334",data,curr_control,curr_index);
+ if(data.hasOwnProperty('validations') && data.validations.length > 0 ){
+ const validList :any= [];
+ let validator_value
+ data.validations=data.validations.filter(val=>val.isactive != '0')
+ data.validations.forEach(valid => {
+ if(valid.value != null && !valid.hasOwnProperty('validation_to')){
+ validator_value= this.getvalidatorValue(valid)
+ }
+ else{
+ validator_value=this.setValueForValidator(valid)
+ console.log("cc 345",validator_value)
+
+ }
+ validList.push(validator_value);
+ });
+ // console.log("valid",validList,curr_control)
+ // let val="Validators.required"
+ // console.log(typeof(Validators))
+ // console.log(typeof(`${val}`))
+
+ // let val1=`${val}`
+ // console.log(typeof(eval(val)))
+ // console.log(eval(val))
+ console.log( '358',validList)
+ // curr_control.controls[curr_index].controls.answer_value.setValidators(validList)
+ curr_control.controls.answer_value.setValidators(validList)
+ console.log("ddvdeeqq 361", curr_control.controls.answer_value.setValidators(validList),validList)
+ curr_control.controls.answer_value.updateValueAndValidity()
+ console.log("after setting validators 363",curr_control)
+ }
+ }
+ // END OF SETTINGARRAYOFVALIDATORS FUN
+
+ // FOR GETTING THE VALIDATION VALUE
+ getvalidatorValue(value_obj){
+ if(value_obj != null && value_obj.hasOwnProperty('value')){
+ let value_of_validator
+ switch(value_obj.value){
+ case 'CURRENT_YEAR':
+ value_of_validator=new Date().getFullYear()
+ break;
+ default:
+ value_of_validator=''
+ break;
+ }
+ value_obj.validator=String(value_of_validator)
+ return this.setValueForValidator(value_obj)
+ }
+ }
+ // END OF GETVALIDATORVALUE FUN
+
+ // FOR GENERATING THE FY YEAR FIELD ANSWERS
+ getCurrentFyYears(){
+ let month=new Date().getMonth()
+ let year=new Date().getFullYear()
+ let fy:any=[];
+ if(month >=3){
+ fy.push({fy_year:year-1+'-'+(year),curr:year})
+ }
+ else{
+ fy.push({fy_year:year-2+'-'+(year-1),curr:year-1})
+ }
+ console.log(fy)
+ for(let i=0;i<=2;i++){
+ fy.push({fy_year:(fy[i].curr-2)+'-'+(fy[i].curr-1),curr:fy[i].curr-1})
+ }
+ return fy.map(val=>({answer:val.fy_year,answer_id:val.fy_year}))
+ }
+ // END OF GETCURRFYYEARS FUN
+
+ // FOR CREATING THE CORRECT VALIDATION
+ setValueForValidator(value_obj){
+ console.log("setvlaue of validator",value_obj.validator,typeof(value_obj.validator))
+ let return_value
+ if(value_obj != null && value_obj.hasOwnProperty('validator')){
+ switch(value_obj.name)
+ {
+ case 'required':
+ return_value=Validators.required
+ break;
+ case 'minLength':
+ return_value=Validators.minLength(value_obj.validator)
+ break;
+ case 'maxLength':
+ return_value=Validators.maxLength(value_obj.validator)
+ break;
+ case 'min':
+ return_value=Validators.min(value_obj.validator)
+ break;
+ case 'max':
+ return_value=Validators.max(value_obj.validator)
+ break;
+ case 'pattern':
+ return_value=Validators.pattern(value_obj.validator)
+ break;
+ default:
+ return_value=''
+ break;
+ }
+ return return_value
+ }
+ else{
+ return false
+ }
+ }
+}
+
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/sales-pd.service.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/sales-pd.service.spec.ts
new file mode 100644
index 000000000..3371d184c
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/sales-pd.service.spec.ts
@@ -0,0 +1,12 @@
+import { TestBed } from '@angular/core/testing';
+
+import { SalesPdService } from './sales-pd.service';
+
+describe('SalesPdService', () => {
+ beforeEach(() => TestBed.configureTestingModule({}));
+
+ it('should be created', () => {
+ const service: SalesPdService = TestBed.get(SalesPdService);
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/sales-pd.service.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/sales-pd.service.ts
new file mode 100644
index 000000000..1c4e20111
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/providers/services/sales-pd.service.ts
@@ -0,0 +1,755 @@
+// import { Injectable } from '@angular/core';
+
+// @Injectable({
+// providedIn: 'root'
+// })
+// export class SalesPdService {
+
+// constructor() { }
+// }
+
+
+import { environment } from 'environments/environment';
+import { Injectable } from '@angular/core';
+import { Observable, of, forkJoin } from 'rxjs';
+import { HttpClient, HttpParams } from '@angular/common/http';
+import { catchError, map } from 'rxjs/operators';
+import { Observer } from 'rxjs';
+const api_url = environment.apiEndpoint;
+@Injectable({
+ providedIn: 'root'
+})
+
+export class SalesPdService {
+ available_sections:any;
+ original_rawData:any;
+ current_section:any;
+ constructor(private _http:HttpClient) { }
+ advancedFilter(params): Observable{
+ return this._http.post(api_url+'filterSalesPDList',{"records":params})
+ }
+ //checking
+ // getData1(product_id,sales_pd_type?){
+ // let users:any=localStorage.getItem('user_details')
+ // users=JSON.parse(users)
+ // console.log('users');
+ // console.log(users);
+ // let params = {records:{lender_id:users.fk_entity_id,product_id:product_id,sales_pd_type:sales_pd_type}}
+ // return new Observable((observer:any)=>{
+
+
+
+ // // START OF GETTING LOCAL TEMPLATE ONLY ON BROWSER
+
+ // let fileName = product_id
+ // if(sales_pd_type) {
+ // fileName += '-'+sales_pd_type
+ // }
+ // alert('filename');
+ // alert(fileName);
+ // let api_properties= this._http.post(api_url+'assets/data/sales_pd_templates/8-1.json',{params : params})
+ // // api_properties = {method:'get', api_url+`assets/data/sales_pd_templates/${fileName}.json`,{params : params}
+ // //return ;
+ // // END OF GETTIG LOCAL TEMPLATE
+
+
+ // })
+ // }
+ // getSalesPd(): Observable {
+ // var lender_id= localStorage.getItem('LocalSetEntity')
+ // let user_role_id = localStorage.getItem('LenderRoleID')
+ // let user_id = this._aws.getlocale()
+ // // console.log('555',value);
+ // return this._http.get(api_url + `listSalesPD/${lender_id}/${user_id}/${user_role_id}`)
+ // // .pipe(
+ // // catchError(this.handleError('operation', []))
+ // // )
+ // }
+
+ getData(product_id,sales_pd_type?) {
+ let users:any=localStorage.getItem('user_details')
+ console.log(users)
+ users=JSON.parse(users)
+ let apiName
+ let params
+ if(users.user_role != '20'){
+ apiName = 'loadSalesPDTemplate'
+ params = {records:{lender_id:users.fk_entity_id,product_id:product_id,sales_pd_type:sales_pd_type}}
+ }else if(users.user_role == '20'){
+ apiName = 'loadFlyhiPDTemplate'
+ params = {records:{lender_id:users.fk_entity_id,sales_pd_type:null,pd_type:'2'}}
+ }
+ console.log(params)
+ return new Observable((observer:any)=>{
+ console.log('111111')
+
+ // if(this.networkProvider.getCurrentNetworkStatus() == ConnectionStatus.online) {
+ // console.log(this.platform.is('cordova'))
+ // let api_properties
+ // if(users.user_role != '20'){
+ let api_properties = {method:'post', api_name:api_url+apiName,params : params}
+ // console.log(api_properties)
+ // }else if(users.user_role == '20'){
+ // let api_properties = {method:'get', api_name:`assets/data/flyhi.json`,params : params}
+ // }
+ // START OF GETTING LOCAL TEMPLATE ONLY ON BROWSER
+ // if(!this.platform.is('cordova')) {
+ // let fileName = product_id
+ // if(sales_pd_type) {
+ // fileName += '-'+sales_pd_type
+ // }
+
+ // }
+ // END OF GETTIG LOCAL TEMPLATE
+
+ return this._http[api_properties.method](api_properties.api_name,api_properties.params).subscribe(result=>{
+ // if(!this.platform.is('cordova') && !result.hasOwnProperty('dataStatus')) {
+ // result = {dataStatus:true,status:200,records:{template:JSON.stringify(result)}}
+ // }
+ if(result['dataStatus']) {
+ console.log(result)
+ // return this.ioniz2acStorageProvider.checkAndInsertApiDataLocally(result,params,'loadSalesPDTemplate',true).then(res=>{
+ observer.next(result)
+ observer.complete();
+ // })
+ }
+ else{
+ observer.next(result)
+ observer.complete();
+ }
+ })
+ // }
+ // else {
+ // return this.ionicStorageProvider.getApiDataFromLocally(params,'loadSalesPDTemplate').subscribe(result=>{
+ // observer.next(result)
+ // observer.complete();
+ // })
+ // }
+ })
+ }
+// getData(product_id,sales_pd_type?) {
+// let users:any=localStorage.getItem('user_details')
+// console.log(users)
+// users=JSON.parse(users)
+// let params = new HttpParams().set('lender_id',users.fk_entity_id).set('product_id',product_id).set('sales_pd_type',sales_pd_type)
+// console.log(params)
+// let paramValue = {records:{params}}
+// console.log(paramValue)
+// // return this._http.get(this.apiUrl + "loadFullTemplate", options)
+// // return this._http.get(api_url + "loadSMCPDTemplate",paramValue)
+
+// // .pipe(
+// // catchError(this.handleError('operation', []))
+// // )
+// }
+// // getCMUsers(state_id,user_type):Observable {
+// // let param = new HttpParams().set('state_id',state_id).set('usertype',user_type)
+// // return this._http.get(this.apiUrl+"getCMUsers",{params:param})
+// // }
+// loadPDTemplates(pdId: string,randString): Observable {
+// const options = pdId ?
+// { params: new HttpParams().set('pd_id', pdId).set('random_string',randString) } : {};
+// // return this._http.get(this.apiUrl + "loadFullTemplate", options)
+// return this._http.get(api_url + "loadSMCPDTemplate", options)
+
+// .pipe(
+// catchError(this.handleError('operation', []))
+// )
+// }
+// private handleError(operation = 'operation', result?: T) {
+// return (error: any): Observable => {
+// return of(result as T);
+// };
+// }
+
+saveQuestions(params): Observable{
+ console.log('saveQuestions',params)
+ let result_from_api:any;
+ let userid:any=localStorage.getItem("user_details")
+ userid=JSON.parse(userid).userid;
+ params.createdby=userid
+ let product_id=localStorage.getItem('product_id_salesPD')
+ let sales_pd_type = localStorage.getItem('sales_pd_type');
+ let users:any=localStorage.getItem('user_details')
+
+ console.log("userid"+userid)
+ console.log("product_id"+product_id)
+ console.log("sales_pd_type"+sales_pd_type)
+ console.log("users"+users)
+
+ users=JSON.parse(users)
+ // let pd_primary_key;
+ return Observable.create((observer:Observer) => {
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ // this.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ console.log(key_value)
+ params.sales_pd_id=key_value
+ let apiName
+ if(users.user_role != '20'){
+ params.lender_id=users.fk_entity_id,
+ params.product_id=product_id
+ params.sales_pd_type = sales_pd_type
+
+ console.log(params)
+ apiName = 'saveSalesPD'
+ }else if(users.user_role == '20'){
+ apiName = 'saveFlyhiPD'
+ }
+ let modified_values =params;
+ if(key_value != null ? (typeof(key_value) == 'string' ? !key_value.includes('local') : true) : true) {
+ console.log('160',params)
+ return this._http.post(api_url+apiName,{records:params}).pipe().subscribe(result => {
+ console.log(result)
+ // let result = {dataStatus:false,records:{}};
+ result_from_api =result
+
+ // else{
+ if(!params.hasOwnProperty('status') && params.status != 'COMPLETED') {
+ console.log('176')
+ if(params.sales_pd_id != null) {
+ console.log('178')
+ modified_values.sales_pd_id = params.sales_pd_id
+ }
+ else{
+ console.log('182')
+ modified_values.sales_pd_id = result['records']
+ }
+ }
+ if(params.hasOwnProperty('status') && params.status == 'COMPLETED') {
+ console.log('187')
+ if(!result_from_api.hasOwnProperty('pd_status') && result_from_api['pd_status'] != 'DRAFT'){
+ console.log('189')
+ // this.offlineManagerProvider.deleteCompletedPD(params.sales_pd_id).then(rd=>{
+ observer.next(result_from_api);
+ observer.complete();
+ // })
+ }
+ else{
+ console.log('196')
+ observer.next(result_from_api);
+ observer.complete();
+ }
+ }
+ else {
+ console.log('202')
+ // this.checkAndCreatePDLocally(modified_values,params,'online').then(lc=>{
+
+ observer.next(result_from_api);
+ observer.complete();
+ // })
+ }
+ // }
+ })
+ }
+
+ else{
+ console.log('214')
+ if(params.hasOwnProperty('status') && params.status != 'COMPLETED') {
+ console.log('216')
+ modified_values.sales_pd_id = null
+ }
+ let req_params = {url:api_url+apiName,
+ params:JSON.stringify({records:params}),method:'POST'}
+ let dd = {product_id:modified_values.product_id,lender_id:modified_values.lender_id}
+ this.getProductAbbrbyId(dd).then(product_abbr=>{
+ modified_values.abbr = product_abbr
+ // this.checkAndCreatePDLocally(modified_values,params,'offline',req_params).then(lc=>{
+ // console.log("last offline",lc);
+ // if(params.hasOwnProperty('status') && params.status != 'COMPLETED') {
+ // result_from_api ={dataStatus:true,records:lc.local_pd_id}
+ // }
+ // else{
+ // result_from_api = {dataStatus:true,records:true}
+ // }
+ // console.log("at last ",result_from_api,params);
+ // // this.insertData_Replace('sales_pd_id_PRIMARYKEY',lc.local_pd_id).then(resul=>{
+ // observer.next(result_from_api);
+ // observer.complete();
+ // // })
+ // })
+ })
+ }
+ observer.next(result_from_api);
+ observer.complete();
+
+ // })
+ })
+}
+
+saveSalesPDSection(params){
+ console.log(params);
+ let users:any=localStorage.getItem('user_details')
+ console.log('user');
+ console.log(users);
+ users=JSON.parse(users)
+ params.fk_createdby=users.userid;
+
+ return Observable.create((observer:Observer)=>{
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ // this.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ params.sales_pd_id=key_value
+ let values={sales_pd_id:params.sales_pd_id,dataStatus:true}
+ let section_data=JSON.stringify({section_id:params.section_id,section_name:params.section_name,onsubmit:null,questions:params.questions})
+ let modified_params = params
+
+ let users:any=localStorage.getItem('user_details')
+ console.log(users)
+ users=JSON.parse(users)
+ let apiName
+ if(users.user_role != '20'){
+ apiName = 'saveSalesPDsection'
+ }else if(users.user_role == '20'){
+ apiName = 'saveFlyhiPDsection'
+ }
+ // console.log("###################$%%",(key_value != null ? (typeof(key_value) == 'string' ? !key_value.includes('local') : true ) : true));
+ // if((key_value != null ? (typeof(key_value) == 'string' ? !key_value.includes('local') : true ) : true)) {
+ // alert('positive');
+ return this._http.post(api_url+apiName,{records:params}).pipe().subscribe(response=>{
+ // delete modified_params.questions
+ modified_params.is_synced = true;
+ modified_params.section_data = section_data
+ if(modified_params.section_id != '9'){
+ // this.checkAndCreatePDLocally(values,'','online','',modified_params).then(res=>{
+ observer.next(response)
+ observer.complete()
+ // })
+ }
+ else {
+ observer.next(response)
+ observer.complete()
+ }
+ })
+ // }
+ // else if(modified_params.section_id != '9'){
+ // // console.log("#######params",modified_params)
+ // let offline_params = modified_params
+ // offline_params.request_items={url:api_url+'saveSalesPDsection',
+ // params:JSON.stringify({records:params}),method:'POST'}
+ // offline_params.is_synced = false
+ // offline_params.section_data = section_data
+ // console.log(offline_params.request_items.params)
+ // // this.checkAndCreatePDLocally(values,'','offline','',offline_params).then(res=>{
+ // // observer.next({dataStatus:true});
+ // // observer.complete()
+ // // })
+ // }
+ // else{
+ // observer.next({dataStatus:true});
+ // observer.complete()
+ // }
+ // })
+ })
+}
+
+api_post_method(api_name:string,params,api_method?){
+
+ return Observable.create((observer:Observer)=>{
+if(api_method.toUpperCase() == 'POST'){
+return this._http.post(api_url+api_name,params).subscribe(result=> {
+ if(result['dataStatus']) {
+ //return this.ionicStorageProvider.checkAndInsertApiDataLocally(result,params,api_name,true).then(r=>{
+ observer.next(result);
+ observer.complete()
+//},err=>console.log("ionnic storage err",err));
+}
+else {
+observer.next(result);
+observer.complete()
+}
+})
+}
+else{
+ return this._http.get(api_url+api_name).pipe().subscribe(result=> {
+ //return this.ionicStorageProvider.checkAndInsertApiDataLocally(result,params,api_name).then(rr=>{
+ observer.next(result);
+ observer.complete()
+ // },err=>console.log("ionnic storage err",err));
+ })
+}
+})
+
+// FOR CREDIT PD STACKHOLDER INFO API
+//else {
+// return this.ionicStorageProvider.getApiDataFromLocally(params,api_name)
+//}
+}
+getData_fromLocal(key){
+ // if(key == 'sales_pd_id_PRIMARYKEY'){
+ // let sales_pd_id_PRIMARYKEY = 459
+ // key = sales_pd_id_PRIMARYKEY
+ // }else if(key == 'sales_rand_string'){
+ // let sales_rand_string = 'KudFEmAQPmrauNmt'
+ // key = sales_rand_string
+ // }
+
+ console.log("get data key",key);
+
+ // console.log("get data provider",this.storage.get(key))
+ // console.log("all key in storage",this.storage.keys())
+ return key;
+ // return this.storage.get(key);
+ // return localStorage.getItem(key)
+ }
+ getSalesPdpdf(pdfdetail): Observable {
+ let users:any=localStorage.getItem('user_details')
+ console.log(users)
+ users=JSON.parse(users)
+ let apiName
+ if(users.user_role != '20'){
+ apiName = 'downloadSalesPDReport'
+ }else if(users.user_role == '20'){
+ apiName = 'downloadFlyhiPDReport'
+ }
+ return this._http.get(api_url +apiName+"/"+ pdfdetail)
+}
+
+ getSalesPDSectionData(params){
+ let users:any=localStorage.getItem('user_details')
+ console.log(users)
+ users=JSON.parse(users)
+ let apiName
+ if(users.user_role != '20'){
+ apiName = 'getSalesPDSectionData'
+ }else if(users.user_role == '20'){
+ apiName = 'getFlyhiPDSectionData'
+ }
+ console.log(params)
+ return Observable.create((observer:Observer)=>{
+ let values={sales_pd_id:params.sales_pd_id,dataStatus:true}
+ this._http.post(api_url+apiName,{records:params}).subscribe(result =>{
+ console.log(result)
+ let modified_values:any =result
+ modified_values.section_id = params.section_id
+ if(result['dataStatus']) {
+ if(params.section_id != 'all') {
+ modified_values = result['records'][0]
+ modified_values.is_synced = true
+ observer.next(result);
+ observer.complete()
+ }
+ // if(this.networkProvider.getCurrentNetworkStatus() == ConnectionStatus.online) {
+ // this.checkAndCreatePDLocally(values,'','online','',modified_values).then(res=>{
+ // observer.next(result);
+ // observer.complete()
+ // })
+ // }
+ else {
+ observer.next(result);
+ observer.complete()
+ }
+ }
+ else{
+ observer.next(result);
+ observer.complete()
+ }
+ },err=>{
+ observer.next(err);
+ observer.complete();
+ })
+})
+}
+getSalesPDImgDataCusLink(params) {
+ return this._http.post(api_url+'getSalesPDImgDataCusLink',params)
+}
+generateSatelliteImg(params,form_structure):Observable {
+ return Observable.create((observer:Observer)=>{
+ // this.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ params.sales_pd_id = key_value
+ let values={sales_pd_id:key_value,dataStatus:true}
+ let section_data=JSON.stringify({section_id:form_structure.section_id,section_name:form_structure.section_name,onsubmit:null,questions:form_structure.questions})
+let modified_params = form_structure
+ if(key_value != null ? (typeof(key_value) == 'string' ? !key_value.includes('local') : true) : true) {
+ this._http.post(api_url+'generateSatelliteImg',params).pipe()
+ .subscribe(result =>{
+ observer.next(result);
+ observer.complete();
+ }
+ ,err=>{
+ console.clear();
+ console.log("err>>>>",err)
+ observer.next(err);
+ observer.complete();
+ })
+ }
+ else {
+ console.log("#######params",modified_params)
+ let offline_params = modified_params
+ offline_params.request_items=[{url:api_url+'generateSatelliteImg',
+ params:JSON.stringify(params),method:'POST'}]
+ offline_params.is_synced = false
+ offline_params.section_data = section_data
+ console.log(offline_params.request_items.params)
+ //this.checkAndCreatePDLocally(values,'','offline','',offline_params).then(res=>{
+ observer.next({dataStatus:true});
+ observer.complete()
+ // })
+ }
+ // })
+ })
+}
+// getMasterForFlyhiPD(){
+// return this._http.get(api_url+'getMasterForFlyhiPD').map(result=>{
+// return result;
+// })
+// }
+
+
+getAllMasterDatas(TableName: string): Observable {
+ let params = { "master_name": TableName }
+ return new Observable((observer:any)=>{
+ // if(this.networkProvider.getCurrentNetworkStatus() == ConnectionStatus.online) {
+ return this._http.post(api_url + 'getListOfMaster', { "master_name": TableName }).subscribe(result=>{
+ console.log(result)
+ // return this.ionicStorageProvider.checkAndInsertApiDataLocally(result,params,'getListOfMaster',true).then(rr=>{
+ observer.next(result);
+ observer.complete();
+ // })
+ })
+ // }
+ // else {
+ // return this.ionicStorageProvider.getApiDataFromLocally(params,'getListOfMaster').subscribe(result=>{
+ // observer.next(result);
+ // observer.complete();
+ // })
+ // }
+})
+}
+getCityPincode(value){
+ let params={records:{state_id:value}}
+ return new Observable((observer:any)=>{
+ //if(this.networkProvider.getCurrentNetworkStatus() == ConnectionStatus.online) {
+ return this._http.post(api_url+"getListOfStatesAndCities",params).subscribe(result=>{
+ console.log(result)
+ // return this.ionicStorageProvider.checkAndInsertApiDataLocally(result,params,'getListOfStatesAndCities',true).then(res=>{
+ observer.next(result);
+ observer.complete();
+ // })
+ })
+ //}
+ //else {
+ //return this.ionicStorageProvider.getApiDataFromLocally(params,'getListOfStatesAndCities').subscribe(result=>{
+ // observer.next(result);
+ // observer.complete();
+ //})
+ //}
+})
+}
+
+
+
+ getProductAbbrbyId(obj) {
+ if(obj){
+ return new Promise((resolve,reject)=>{
+ return this.getEntityPreferences(obj.lender_id).subscribe(result=>{
+ if(result && result['dataStatus']) {
+ let productforLender = result['records'].salespd_products
+ if(productforLender && productforLender.length > 0) {
+ let product_abbr = productforLender.filter(val=>val.product_id == obj.product_id).map(va=>va.product_abbr)[0]
+ resolve(product_abbr)
+ }
+ }
+ })
+ })
+ }
+ }
+ getEntityPreferences(entity_id){
+ // return this.http.get(this.apiurl+'getEntityPreferences/'+entity_id);
+ let params = {entity_id:entity_id}
+ // if(this.networkProvider.getCurrentNetworkStatus() == ConnectionStatus.online) {
+ return this._http.get(api_url+'getEntityPreferences/'+entity_id).map(result=>{
+ // this.ionicStorageProvider.checkAndInsertApiDataLocally(result,params,'getEntityPreferences');
+ return result;
+ })
+ //}
+ // else {
+ //return this.ionicStorageProvider.getApiDataFromLocally(params,'getEntityPreferences');
+ // }
+ }
+ insertData_Replace(key,data){
+ // console.log(key)
+ return key;
+ return data;
+ }
+
+ getSalesPDList(is_sales_login){
+ // let params = new HttpParams().set("paramName",paramValue)
+
+ // console.log("Api Stauts ",this.networkProvider.getCurrentNetworkStatus())
+ let det:any=localStorage.getItem('user_details')
+ console.log('494',det,localStorage.getItem('user_details'))
+ det=JSON.parse(det)
+ console.log('494',det)
+ let params = {'fk_entity_id':det.fk_entity_id,userid:det.userid}
+ // if(this.networkProvider.getCurrentNetworkStatus() == ConnectionStatus.online) {
+ let complete_url = api_url+'listSalesPD/'+det.fk_entity_id
+ if(is_sales_login) {
+ complete_url = complete_url+'/'+det.userid+'/'+det.user_role
+ }
+ return this._http.get(complete_url).map(res=>{
+ // this.ionicStorageProvider.checkAndInsertApiDataLocally(res,params,'listSalesPD');
+ return res;
+ })
+ // }
+ // else{
+ // return this.ionicStorageProvider.getApiDataFromLocally(params,'listSalesPD');
+ // }
+ }
+
+ saveSalesPDImage(params,form_structure?): Observable{
+ return Observable.create((observer:Observer) => {
+ // this.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ // this.cameraService.getGeoTag().then(geoCords=>{
+ //params.location=geoCords
+ console.log(key_value)
+ params.fk_sales_pd_id=key_value
+ console.log(params)
+ let users:any=localStorage.getItem('user_details')
+ console.log(users)
+ users=JSON.parse(users)
+ let apiName
+ if(users.user_role != '20'){
+ apiName = 'saveSalesPDImage'
+ }else if(users.user_role == '20'){
+ apiName = 'saveFlyhiPDImage'
+ }
+ // let values={sales_pd_id:key_value,dataStatus:true}
+ // let section_data=JSON.stringify({section_id:form_structure.section_id,section_name:form_structure.section_name,onsubmit:null,questions:form_structure.questions})
+ // let modified_params = form_structure
+ if(key_value != null ? (typeof(key_value) == 'string' ? !key_value.includes('local') : true) : true) {
+ this._http.post(api_url+apiName,{records:params},{
+ reportProgress: true,
+ }).pipe().subscribe(result => {
+ console.log(result)
+ // modified_params.is_synced = true
+ // modified_params.section_data = section_data
+ // this.checkAndCreatePDLocally(values,'','online','',modified_params).then(res=>{
+ observer.next(result);
+ observer.complete();
+ // })
+ },err=>{
+ console.clear();
+ // console.log("err>>>>",err)
+ observer.next(err);
+ observer.complete();
+ })
+ }
+ else {
+ // console.log("#######params",modified_params)
+ // let offline_params = modified_params
+ // offline_params.request_items=[{url:this.apiUrl+'saveSalesPDImage',
+ // params:JSON.stringify({records:params}),method:'POST'}]
+ // offline_params.is_synced = false
+ // offline_params.section_data = section_data
+ // console.log(offline_params)
+ // debugger
+ // this.checkAndCreatePDLocally(values,'','offline','',offline_params).then(res=>{
+ observer.next({dataStatus:true});
+ observer.complete()
+ // })
+ }
+//})
+// })
+ })
+ }
+ updateSectionDataLocally(params,form_structure){
+ return Observable.create((observer:Observer) => {
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ // this.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ // params.location=geoCords
+ params.fk_sales_pd_id=key_value
+ let values={sales_pd_id:key_value,dataStatus:true}
+ let section_data=JSON.stringify({section_id:form_structure.section_id,section_name:form_structure.section_name,onsubmit:null,questions:form_structure.questions})
+ let modified_params = form_structure
+ if(key_value != null ? (typeof(key_value) == 'string' ? !key_value.includes('local') : true) : true){
+ modified_params.is_synced = true
+ modified_params.section_data = section_data
+ // this.checkAndCreatePDLocally(values,'','online','',modified_params).then(res=>{
+ observer.next('');
+ observer.complete();
+ //})
+ // },err=>{
+ // console.clear();
+ // // console.log("err>>>>",err)
+ // observer.next(err);
+ // observer.complete();
+ // })
+ }
+ else {
+ // console.log("#######params",modified_params)
+ let offline_params = modified_params
+ offline_params.request_items=[{url:api_url+'saveSalesPDImage',
+ params:JSON.stringify({records:params}),method:'POST'}]
+ offline_params.is_synced = false
+ offline_params.section_data = section_data
+ console.log(offline_params)
+ // this.checkAndCreatePDLocally(values,'','offline','',offline_params).then(res=>{
+ observer.next({dataStatus:true});
+ observer.complete()
+ //})
+ }
+// })
+ })
+ }
+ clear_local_key(key){
+ return null;
+ //return this.storage.remove(key)
+ }
+
+ generatesalereport(params :any): Observable {
+ // let httpParams = new HttpParams().set('pdid', countpdid);
+ // httpParams = httpParams.append('random_string',randomString);
+ return this._http.get(api_url + 'regenerateSaleReport?sales_pd_id=' +params)
+ // .pipe(
+ // catchError(this.handleError('role', []))
+ // )
+}
+generatemail(params :any): Observable {
+ // let httpParams = new HttpParams().set('pdid', countpdid);
+ // httpParams = httpParams.append('random_string',randomString);
+ return this._http.get(api_url + 'resendSaleReportMail?sales_pd_id=' +params)
+ // .pipe(
+ // catchError(this.handleError('role', []))
+ // )
+}
+generatesateliteimage(param:any): Observable{
+ return this._http.post(api_url + 'regenerateSatelliteImg',param )
+ }
+
+
+ uploadSalesDatatoCET(id): Observable {
+ let users:any=localStorage.getItem('user_details');
+ console.log(users);
+ users=JSON.parse(users);
+ // return this._http.get("http://localhost/AWSEC2/sparqapi/api/uploadSalesPDDataToCETApp/590");
+ return this._http.get(api_url +"uploadSalesPDDataToCETApp/"+id);
+ }
+
+ loadTemplatelocal(){
+
+ return this._http.get('assets/data/flyhi.json').map(rr=>{
+ let returnValue ={dataStatus:true,status:200,records:{template:JSON.stringify(rr)}}
+ // this.raw_credit_pd_template= returnValue.records.template
+ return returnValue
+ })
+
+ }
+ savePDImages(imagesDetails)
+{
+ console.log('savepdimg',imagesDetails);
+ let record = {'records':imagesDetails};
+ return this._http.post(api_url+'saveFIPDImg',record).pipe(
+ map(response=>{
+ console.log('img response',response);
+ // this.checkSavedPics(response['dataStatus'],imagesDetails)
+ // console.log('check Img',this.checkSavedPics);
+ return response;
+ },err=>{
+ console.log("Error in savePDImages",err)
+ // this.checkSavedPics('',imagesDetails)
+ // return err
+ })
+ )
+}
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.html
new file mode 100644
index 000000000..8a64a88c4
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.html
@@ -0,0 +1,553 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.scss
new file mode 100644
index 000000000..b2fbe2f40
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.scss
@@ -0,0 +1,125 @@
+// ques-template {
+ mat-radio-button,mat-checkbox{
+ margin-top: 13px;
+ }
+ .radio-gap{
+ margin-top: 10px;
+ margin-bottom: 10px;
+ }
+ .radio-btn-gap{
+ margin:10px;
+ }
+ .doc-image-bucket{
+ padding:0 5px 0 0 !important;
+ width: 175px;
+ height: 126px !important;
+ color:black;
+ //width:130px;
+ //border:3px solid black;
+ //border-radius: 20px;
+ //background-color: gray;
+// }
+.add-more-image{
+ width: 60%;
+ padding:0 5px 0 0 !important;
+ width: 120px;
+ height: 80px !important;
+ // border: 2px solid gainsboro;
+ // border-style: dashed;
+ // border-radius: 10px;
+}
+.hr, hr{
+ font-size: 25px;
+}
+// .btn-no-pad{
+// padding: 8px 8px 8px 5px;
+
+// }
+.save-btn{
+ margin-top: 3%;
+}
+// .mat-input-invalid .mat-input-placeholder {
+// color: red;
+// }
+
+// .mat-input-invalid .mat-input-ripple {
+// background-color: red;
+// }
+}
+// textarea.mat-input-element {
+// overflow: hidden !important;
+// }
+::ng-deep .mat-select-value-text{
+ line-height: initial !important;
+ word-wrap: break-word !important;
+ white-space: pre-wrap !important;
+}
+::ng-deep .mat-select-value-text {
+ margin: 1rem 0;
+ overflow: visible;
+ line-height: initial;
+ word-wrap: break-word;
+ white-space: pre-wrap;
+ }
+
+ .mat-option-text.mat-option-text {
+ white-space: normal;
+ }
+ ::ng-deep .mat-select-panel mat-option.mat-option {
+ height: unset;
+ }
+
+ ::ng-deep .mat-option-text.mat-option-text {
+ white-space: normal;
+ }
+
+ .top .thumbnail{
+ //height: 400px;
+ position: relative;
+
+ }
+
+ .top .thumbnail .date {
+ // margin-right: 13px;
+ position: absolute;
+ right: -10px;
+ top: 4px;
+
+ background-color: #e00201 ;
+ }
+ .top .thumbnail .date1 {
+ // margin-right: 13px;
+ position: absolute;
+ right: -10px;
+ top: 50px;
+ background-color: #e00201 ;
+ }
+ .thumbnail{
+ max-width: 200px;
+ width: auto;
+ // height: 200px;
+ margin-top: 25px;
+ padding: 1.4%;
+ }
+
+ .dummy-img {
+ width: 125px;
+ height: 120px;
+ }
+
+ .dummy-img {
+ width: 200px;
+ height: 170px;
+ border: 3px dashed rgba(0, 0, 0, 0.2);
+ border-radius: 7px;
+ background: #eeee;
+ color: gray;
+ }
+
+ .image-class {
+ width: 200px;
+ height: 170px;
+ }
+ hr{
+ color: #e00201;
+ }
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.spec.ts
new file mode 100644
index 000000000..0cd85cdaf
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { QuesTemplateComponent } from './ques-template.component';
+
+describe('QuesTemplateComponent', () => {
+ let component: QuesTemplateComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ QuesTemplateComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(QuesTemplateComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.ts
new file mode 100644
index 000000000..bec4ac544
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/ques-template.component.ts
@@ -0,0 +1,2265 @@
+import { Component, Input, EventEmitter, Output,ViewChild, ElementRef, Injectable } from '@angular/core';
+import { FormGroup, FormArray, FormBuilder, FormControl,FormControlName } from '@angular/forms';
+//import { QuesServiceProvider } from '../../providers/ques-service/ques-service';
+//import { SalesPdService } from '../../providers/sales-pd/sales-pd';
+//import { Camera } from '@ionic-native/camera';
+//import { CameraProvider } from '../../providers/camera/camera';
+//import { ConstantsProvider } from '../../../../providers/constants/constants';
+//import { SalesPdService } from '../../../../providers/common-provider/toast';
+import { NotifierService } from 'angular-notifier';
+import { takeUntil, single } from 'rxjs/operators';
+import { Subject } from 'rxjs';
+import { CdkTextareaAutosize } from '@angular/cdk/text-field';
+//import { LoadingProvider } from '../../../../providers/common-provider/loading';
+//import { NavController } from 'ionic-angular/navigation/nav-controller';
+// import { Section9, Section1, Section2, Section3, Section4, Section5, Section6, Section7, Section8 } from '../../home/home';
+import { MatAccordion, MatExpansionPanel, MatDialog, MatDialogRef } from '@angular/material';
+import { HttpEventType, HttpResponse } from '@angular/common/http';
+//import { NetworkDetectionProvider, ConnectionStatus } from '../../../../providers/network-detection/network-detection';
+import { photoJSONStructure } from './PhotographJSONStructure';
+import { SalesPdService } from '../ques-template/providers/services/sales-pd.service';
+import { QuestionServiceService } from '../ques-template/providers/services/question-service.service';
+//import { AlertDialogComponent } from 'app/lender-credit-pd/alert-dialog/alert-dialog.component';
+import { Router, ActivatedRoute } from '@angular/router';
+import { LoaderService } from 'app/shared/loaderService/loader.service';
+//import { SectionListComponent } from 'app/sales-pd/section-list/section-list.component';
+
+import { CameraService } from '../ques-template/providers/camera/camera.service';
+import { ApiServiceService } from '../ques-template/providers/services/api-service.service';
+import { FormComponent } from '../form/form.component';
+import { PdTrigerService } from 'app/personal-discussion/pd-service/pd-triger.service';
+// import { ImageEditComponent } from './image-edit/image-edit.component';
+// const originFormControlNameNgOnChanges = FormControlName.prototype.ngOnChanges;
+// FormControlName.prototype.ngOnChanges = function () {
+// const result = originFormControlNameNgOnChanges.apply(this, arguments);
+// this.control.nativeElement = this.valueAccessor._elementRef.nativeElement;
+// return result;
+// };
+
+@Injectable({
+ providedIn: 'root'
+})
+@Component({
+ selector: 'app-ques-template',
+ templateUrl: './ques-template.component.html',
+ styleUrls: ['./ques-template.component.scss']
+})
+export class QuesTemplateComponent {
+ photoStructure = photoJSONStructure
+ text: string;
+ private notifier: NotifierService;
+ // notifier: NotifierService;
+ @Input() questions_JSON:any;
+ @Input() json_answers:any;
+ quesAnsForm: FormGroup;
+ step: number=0;
+ local_city: any;
+ local_pincode: any;
+ @Output() emitter=new EventEmitter()
+ @Output() imageUploadCheck = new EventEmitter()
+ local_ques_JSON: any;
+ geoCoordinates: string;
+ fileredSearchValue: any=[];
+ protected _onDestroy=new Subject();
+ submit_btn: boolean=false;
+ original_result_data: any={is_complete:''};
+ // spinner_access:boolean=false
+ raw_data_Section: any={status:''};
+ @ViewChild('autosize') autosize: CdkTextareaAutosize;
+ @ViewChild('accordion') Accordion: MatAccordion
+ @ViewChild('mapanel') matExpansionPanel:MatExpansionPanel
+ @Output() imageDataEmitter = new EventEmitter
+ @Output() singleDataEmitter = new EventEmitter
+ @ViewChild('dummy_img_more') dummyImgMoreRef: ElementRef;
+ emittedFormGroup: any = null;
+ sales_pd_id: any;
+ sales_pd_type: string;
+ cus_type;
+ current_index: any;
+ tmp_ques:any;
+ imageData: any;
+ records: any;
+ image_question_name:any =[]
+ tmp_control: QuestionServiceService;
+ tmp:any =[];
+ roleID: any;
+ pdstatus: string;
+ local_city1: any;
+ local_pincode1: any;
+ role_id: any;
+ pd_all_details_data: any;
+ parent_index: any=[];
+ parent_control: any=[];
+ constructor( private pdTriggerService:PdTrigerService,private cameraService: CameraService,public dialogRef: MatDialogRef,private route: ActivatedRoute,private router: Router,private dialog:MatDialog,private _fb:FormBuilder,private questionService:QuestionServiceService,private SalesPdService:SalesPdService,notifier: NotifierService,private loaderService:LoaderService) {
+ this.role_id = localStorage.getItem('LenderRoleID')
+ console.log('Hello QuesTemplateComponent Component');
+ this.text = 'Hello World';
+ this.notifier = notifier;
+ //this.cameraProvider.checkGPSPermission();
+ //alert('abi1');
+ //this.ngOnChanges()
+ this.roleID = localStorage.getItem('user_role')
+ console.log(this.roleID)
+
+ }
+ ngOnChanges(){
+
+
+ //alert('abi');
+ // this.loaderService.showMatSpinnerDialog('Fetching Data...')
+ //this.loadingProvider.pdloader("Fetching Data...")
+ // this.quesAnsForm=this._fb.group({questions:this._fb.array([])})
+ this.quesAnsForm=new FormGroup({questions:this._fb.array([])})
+
+ console.log('tamil');
+ console.log(this.quesAnsForm);
+ let raw_data_ques:any=localStorage.getItem('question_temp_salespd')
+ console.log(raw_data_ques)
+ console.log('localstorage');
+ console.log(localStorage.getItem('question_temp_salespd'));
+ raw_data_ques=JSON.parse(raw_data_ques)
+
+ console.log(raw_data_ques);
+ console.log('endtamil');
+
+ console.log('questions_JSON',this.questions_JSON);
+
+
+ // this.questions_JSON={"section_id":"1","section_name":"General Section","onsubmit":null,"questions":[{"question":"Name of The Main Loan Applicant","question_key":"main_loan_applicant","place_holder":"Enter text","type":"1","answers":null,"api_properties":null,"is_repeatable":null,"field_type":"string","validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"Main Loan Applicant Name Required","value":null},{"name":"pattern","isactive":"1","validator":"[A-Za-z ]*","message":"alphabets only ","value":null}],"onchange_properties":null},{"question":"Name of the Company/Firm","question_key":"company_name","place_holder":"Enter text","type":"1","answers":null,"api_properties":null,"onchange_properties":null,"is_repeatable":null,"field_type":"string","validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"Company Name Required","value":null}]},{"question":"Name of Person Met during visit","question_key":"person_met_during_visit","place_holder":"Enter text","type":"1","answers":null,"api_properties":null,"onchange_properties":null,"is_repeatable":null,"field_type":"string","validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"Person Met Name Required","value":null},{"name":"pattern","isactive":"1","validator":"[A-Za-z ]*","message":"alphabets only ","value":null}]},{"question":"Address Visited","question_key":"address_visited","place_holder":"Enter door no,street","type":"1","answers":null,"api_properties":null,"onchange_properties":null,"is_repeatable":null,"field_type":"string","validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"Address Required","value":null}]},{"question":"State","question_key":"state","type":"1","answers":null,"api_properties":{"api":"getListOfMaster","api_method":"POST","params":{"master_name":"STATE"},"fields":["state_id","name"]},"onchange_properties":[{"purpose":"api","api":"getListOfStatesAndCities","api_method":"POST","params":"{records:{state_id:'value_of_answer'}}","fields":["state_id","name"],"local_variable":"local_city"}],"is_repeatable":null,"validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"State Required","value":null}]},{"question":"City","question_key":"city","type":"1","answers":null,"api_properties":"local_city","onchange_properties":null,"is_repeatable":null,"validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"CIty Required","value":null}]},{"question":"Pincode","question_key":"pincode","type":"1","answers":null,"api_properties":"local_pincode","onchange_properties":[{"purpose":"FORM_CTRL","form_controls":[{"insert_index":"pincode","expression":"(pincode == 1)","value_keys":["pincode"],"questions":[{"question_key":"pincode_others","question":"Specify the Pincode","place_holder":"Enter the Pincode","type":"1","api_properties":null,"answers":null,"onchange_properties":null,"is_repeatable":null,"field_type":"num","validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"Pincode is Required","value":null},{"name":"pattern","isactive":"1","validator":"[0-9]{6}","message":"Pincode should be 6 digit","value":null}]}]}]}],"is_repeatable":null,"validations":[{"name":"required","isactive":"1","validator":"Validators.required","message":"Pincode Required","value":null}]}],"order_id":1}
+
+ //if(raw_data_ques == null){
+ // if(raw_data_ques.hasOwnProperty('sections') ){
+
+ console.log("FROM COMPONENT",this.questions_JSON);
+ // this.questions_JSON.questions = this.json_answers
+ this.local_ques_JSON=this.questions_JSON;
+ // if(this.local_ques_JSON.section_id == raw_data_ques.sections[raw_data_ques.sections.length -1].section_id){
+ // this.submit_btn=true
+ // // this.sendDatatoApi()
+ // }
+ console.log('99',this.local_ques_JSON.section_id)
+
+ this.quesAnsForm = this.questionService.assignFormControl_array(this.quesAnsForm,this.local_ques_JSON.questions)
+ console.log(this.quesAnsForm);
+
+ // localStorage.setItem('sales_pd_id_PRIMARYKEY', 'null')
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+
+ // let key_value = null
+ // let sec = 'sec'
+ // let rr = this.local_ques_JSON.section_id
+ //have to check the local question tomorrow
+ // let resultData = sec+rr
+ // console.log(resultData)
+
+ // this.SalesPdService.getData_fromLocal('sec'+this.local_ques_JSON.section_id).then(resultData=>{
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then((key_value)=>{
+ // console.log(this.local_ques_JSON.section_id,key_value,resultData)
+
+ console.log( this.json_answers)
+
+ console.log( this.quesAnsForm)
+
+ let resultData=null;
+ // let key_value='43';
+ this.sales_pd_id = key_value
+ console.log('key value',key_value,this.sales_pd_id);
+ if(resultData == null ){
+ let questions ={questions: this.json_answers}
+ this.quesAnsForm.patchValue(questions)
+ console.log('iam here',resultData)
+ //this.original_result_data=resultData
+ this.original_result_data = questions
+ this.checkGroupandPatchValues()
+ this.loaderService.closeMatSpinnerDialog()
+ }
+ else if(key_value != null){
+ console.log('key value',key_value,this.sales_pd_id);
+ this.getSalesPDSectionFromApi(key_value)
+ }
+ else{
+ this.loaderService.closeMatSpinnerDialog()
+ }
+
+
+ // })
+ // })
+
+ // }
+//}
+//this.sales_pd_type = localStorage.getItem('sales_pd_type')
+
+ }
+ getSalesPDSectionFromApi(sales_pd_id){
+ this.roleID = localStorage.getItem('user_role')
+console.log(this.roleID)
+let completed = localStorage.getItem('completedPD')
+let status = JSON.parse(completed)
+console.log(status)
+this.pdstatus = status.status
+console.log(this.pdstatus)
+ // alert('pass');
+ console.log(sales_pd_id)
+ // this.loaderService.showMatSpinnerDialog('Fetching Data...')
+ // this.checkGroupandPatchValues()
+ // this.loadingProvider.pdloader("Fetching Data...")
+ let params={sales_pd_id:sales_pd_id,section_id:this.local_ques_JSON.section_id}
+ console.log('141',params)
+ this.SalesPdService.getSalesPDSectionData(params).subscribe(response=>{
+ console.log('response');
+ console.log(response);
+ if(response['dataStatus']){
+ // alert('3rd');
+ this.raw_data_Section=response['records'][0]
+ //this.original_result_data=response['records'][0].section_data
+ // this.original_result_data=JSON.parse(this.original_result_data);
+ console.log(this.original_result_data)
+ console.log(response['records'][0].section_data)
+
+ // this.original_result_data.questions=this.original_result_data.questions.filter(val=>val.question_key == 'selfie_with_person_met')
+ this.checkGroupandPatchValues()
+ this.loaderService.closeMatSpinnerDialog()
+ }
+ else{
+ // alert('4th');
+ this.sendAutomaticallyToApi()
+ // FOR DISPLAYING THE CUSTOMER CAPTURED IMAGE (STRUCTURED DYNAMICALLY CREATED IN FRONTEND) (***TELE PD ONLY***)
+
+ if(sales_pd_id && this.sales_pd_type && this.sales_pd_type == '2' && this.local_ques_JSON.section_id == '9' && !this. sales_pd_id.includes('local')) {
+ let sales_rand_string = localStorage.getItem('sales_rand_string')
+ // this.SalesPdService.getData_fromLocal('sales_rand_string').then((sales_rand_string)=>{
+ let params = {"rand_string":sales_rand_string}
+ this.SalesPdService.getSalesPDImgDataCusLink(params).subscribe(result=>{
+ if(result['dataStatus']){
+ this.updateCustomerImages(result['records'])
+ this.checkGroupandPatchValues()
+ }
+ this.loaderService.closeMatSpinnerDialog()
+ },err=>{
+ this.loaderService.closeMatSpinnerDialog()
+ })
+ // })
+}
+ else{
+ // alert('5th');
+ this.loaderService.closeMatSpinnerDialog()
+ }
+ }
+
+ },err=>{
+ this.loaderService.closeMatSpinnerDialog()
+ })
+ }
+ // For Officer Details Form
+ sendAutomaticallyToApi(){
+ if(this.local_ques_JSON.section_id == '8'){
+ this.onSubmit(1);
+ }
+ }
+ // for Image section creating a image stucture with images for patching values.
+ updateCustomerImages(img_values) {
+ if(this.local_ques_JSON.section_id == '9'){
+ // let img_values:any=`{"img_data": [
+ // {
+ // "img_key": "selfie_with_person_met",
+ // "img_name": "Person met",
+ // "img_url": "https://mllj2j8xvfl0.i.optimole.com/Lsv2lkg-oXPY0cKC/w:auto/h:auto/q:98/https://s15165.pcdn.co/wp-content/uploads/2018/06/what-is-a-website-url.jpg",
+ // "is_multiple": 0
+ // },
+ // {
+ // "heading":"Name Board Seen",
+ // "img_key": "name_board_seen",
+ // "img_name": "Name Board Seen",
+ // "img_data":[ {
+ // "img_url":"https://www.howtogeek.com/wp-content/uploads/2018/06/shutterstock_1006988770.png"
+ // },
+ // {
+ // "img_url":"https://mllj2j8xvfl0.i.optimole.com/Lsv2lkg-oXPY0cKC/w:auto/h:auto/q:98/https://s15165.pcdn.co/wp-content/uploads/2018/06/what-is-a-website-url.jpg"
+ // }],
+ // "is_multiple": 1
+ // },
+ // {
+ // "heading":"Stock Photograph",
+ // "img_key": "stock_image",
+ // "img_name": "stock photo",
+ // "img_data":[{
+ // "img_url":"https://www.howtogeek.com/wp-content/uploads/2018/06/shutterstock_1006988770.png"
+ // }],
+ // "is_multiple": 1
+ // },
+ // {
+ // "heading":"Workplace Interior Photograph",
+ // "img_key": "workplace_interior_image",
+ // "img_name": "Workplace Interior Photograph",
+ // "img_data":[ {
+ // "img_url":"https://www.howtogeek.com/wp-content/uploads/2018/06/shutterstock_1006988770.png"
+ // },
+ // {
+ // "img_url":"https://mllj2j8xvfl0.i.optimole.com/Lsv2lkg-oXPY0cKC/w:auto/h:auto/q:98/https://s15165.pcdn.co/wp-content/uploads/2018/06/what-is-a-website-url.jpg"
+ // }],
+ // "is_multiple": 1
+ // }
+ // ]}`
+ // img_values = JSON.parse(img_values)
+ let createPhotoStructure:any=this.quesAnsForm.value.questions
+ console.log("update Image fun",this.quesAnsForm.value,img_values,this.quesAnsForm.get('questions')['controls'][0],this.photoStructure)
+ if(img_values.img_data.length > 0) {
+ // img_values.img_data.forEach(img_obj=>{
+ for(let img_obj of img_values.img_data) {
+ if(img_obj) {
+ let findRootIndex = createPhotoStructure.findIndex(val=>val.question_key == img_obj.img_key)
+ let current_control_obj:any =[]
+ current_control_obj = createPhotoStructure[findRootIndex]
+ console.log(createPhotoStructure[findRootIndex],createPhotoStructure[findRootIndex].is_repeatable)
+ if(img_obj.is_multiple != '1'){
+ current_control_obj.answer_value = img_obj.img_url
+ }
+ else {
+ if(img_obj.hasOwnProperty('img_data') && img_obj.img_data.length > 0) {
+ // img_obj.img_data.forEach(multi_obj=>{
+ for(let multi_obj of img_obj.img_data) {
+ if(multi_obj) {
+ // console.log(multi_obj)
+ let temp_obj:any = []
+ temp_obj.length = 0;
+
+ temp_obj = {}
+ temp_obj = {"answer_value": "",
+ "question": "Approach to PD Location",
+ "question_key": "approach_to_pd_location",
+ "type": "6",
+ "raw_validations": [],
+ "validations": [],
+ "api_properties": null,
+ "onchange_properties": null,
+ "answers": null,
+ "is_repeatable": null,
+ "group_title": null,
+ "is_loader": "",
+ "is_saved": "",
+ "is_image_status": false}
+ temp_obj.question = img_obj.img_name
+ temp_obj.question_key = img_obj.img_key
+ temp_obj.answer_value = multi_obj.img_url
+ // console.log(temp_obj);
+ // debugger;
+ // current_control_obj.questions_group.unshift({questions:[temp_obj]})
+ createPhotoStructure[findRootIndex].questions_group.unshift({questions:[temp_obj]})
+ }
+ }
+ // })
+ }
+ }
+ }
+ }
+ console.log(createPhotoStructure);
+ // debugger;
+ this.original_result_data.questions= createPhotoStructure;
+ // this.quesAnsForm.get('questions').patchValue(createPhotoStructure);
+ }
+
+ }
+ }
+ proceedonChangeProperty(local_value_obj?){
+ console.log("On Change Property",this.quesAnsForm.value.questions);
+
+ this.quesAnsForm.controls.questions['controls'].forEach((val,p_i)=>{
+
+ // --- FOR ONCHANGE PROPERTIES---
+ if(val.value.onchange_properties != null){
+ let onChangeProperties_value=val.value.onchange_properties
+ onChangeProperties_value.forEach(onChangeProperty=>{
+ if(onChangeProperty.purpose == 'FORM_CTRL'){
+
+ this.creteNewField(onChangeProperty,this.quesAnsForm,'',this.original_result_data,"edit");
+ }
+ })
+ }
+
+ // JSON QUESTION CHANGE FOR SINGLE
+ console.log("key",p_i,this.quesAnsForm.value)
+ if (this.original_result_data.questions[p_i] != undefined) {
+ if (this.quesAnsForm.value.questions[p_i].question_key !== this.original_result_data.questions[p_i].question_key) {
+ // ADDING THE QUESTION TO FETCHED DATA ARRAY
+ if (this.quesAnsForm.value.questions.filter(data => data.question_key! == this.quesAnsForm.value.questions[p_i].question_key) == 0) {
+ this.original_result_data.questions.splice(p_i, 0, this.quesAnsForm.value.questions[p_i])
+ }
+ // ---- END OF ADDING DATA ----
+
+ // REMOVING THE QUESTION TO FETCHED DATA ARRAY
+ else {
+ console.log("Else part>>", this.quesAnsForm.value.questions[p_i].question_key, this.original_result_data.questions[p_i].question_key, val)
+ this.original_result_data.questions.splice(p_i, 1)
+ console.log("after", this.original_result_data.questions, this.quesAnsForm.value.questions)
+ }
+ // --- END OF REMOVING QUESTION ---
+ }
+ }
+ //---- END OF JSON QUESTION CHANGE----
+
+ if(val.value.is_repeatable == '1'){
+ val.controls.questions_group.controls.forEach((group_ques,g_i)=>{
+ // console.clear()
+
+ group_ques.value.questions.forEach((single_ques,s_i)=>{
+
+ // --- FOR ONCHANGE PROPERTIES---
+ if(single_ques.onchange_properties != null){
+ let onChangeProperties_value=single_ques.onchange_properties
+ onChangeProperties_value.forEach(onChangeProperty=>{
+ if(onChangeProperty.purpose == 'FORM_CTRL'){
+
+ this.creteNewField(onChangeProperty,group_ques,'',this.original_result_data.questions[p_i].questions_group[g_i],"edit");
+ }
+ })
+ }
+ // ---END OF ON CHANGE PROPERTIES---
+
+ // ----FOR SUBFIELD GENERATION IN GROUP QUES----
+ let control=this.quesAnsForm.get('questions')['controls'][p_i].get('questions_group')['controls'][g_i].get('questions')['controls'][s_i] as FormArray
+ if (control.value.answers != null && control.value.answers.length > 0) {
+ let answer_value_obj=local_value_obj.questions[p_i].questions_group[g_i].questions[s_i]
+ if(answer_value_obj != undefined){
+
+ this.creatSubField(control, answer_value_obj.answer_value)
+ }
+ }
+ // ----END OF SUBFIELD GENERATION----
+
+ // JSON QUESTION CHANGE FOR GROUP
+ // setTimeout(()=>{
+ let form_c=single_ques
+ let form_control=this.quesAnsForm.value.questions[p_i].questions_group[g_i].questions[s_i]
+ let local__g_data=this.original_result_data.questions[p_i].questions_group[g_i].questions
+ if(local__g_data[s_i] != undefined){
+ if(form_control.question_key != local__g_data[s_i].question_key){
+ local__g_data.splice(s_i,0,form_c)
+ }
+
+ }
+ // })
+ //---- END OF JSON QUESTION CHANGE----
+ })
+ })
+ }
+
+ })
+ }
+ checkGroupandPatchValues(){
+ console.log('371')
+ let modified=this.original_result_data
+ console.log( this.questions_JSON ,modified)
+ // this.questions_JSON = modified.questions
+ modified.questions.forEach((parent_ques,p_i)=>{
+ // FOR ADDING THE GROUP QUES TO DISPLAY WITHOUT CONSIDERING INDEX 0
+ if(parent_ques.is_repeatable == '1'){
+ parent_ques.questions_group.forEach((group_ques,g_i)=>{
+ if(g_i != 0){
+ let parent_control=this.quesAnsForm.get('questions')['controls'][p_i] as FormArray
+
+ if(parent_control.value.hasOwnProperty('questions_group')){
+ this.addData(g_i-1,parent_control,group_ques.questions,'','')
+ }
+ }
+})
+}
+ // FOR CREATING A SUBFIELD FOR CHOOSED OPTION OTHERS
+ else {
+ let control=this.quesAnsForm.get('questions')['controls'][p_i]
+ if(control != undefined && control != null){
+ if (control.value.answers != null && control.value.answers.length > 0) {
+ this.creatSubField(control, parent_ques.answer_value)
+ }
+ }
+ }
+})
+this.proceedonChangeProperty(modified)
+
+
+
+ this.quesAnsForm.get('questions').patchValue(this.original_result_data.questions);
+ console.log( this.quesAnsForm)
+ }
+ setStep(index: number) {
+ this.step = index;
+ }
+
+ nextStep() {
+ this.step++;
+ }
+
+ prevStep() {
+ this.step--;
+ }
+ httpListener(event){
+ if (event.type === HttpEventType.UploadProgress) {
+ // This is an upload progress event. Compute and show the % done:
+ const percentDone = Math.round(100 * event.loaded / event.total);
+ console.log(`File is ${percentDone}% uploaded.`);
+ } else if (event instanceof HttpResponse) {
+ console.log('File is completely uploaded!');
+ }
+ }
+ getIndex(index,q,data,single_ques) {
+ console.log('curr', index);
+ console.log(q);
+
+ // setTimeout(function(){
+ // console.log(q);
+ // },3000);
+ // console.log(q.controls);
+ this.tmp =[]
+ this.tmp.push(q)
+ console.log(data);
+ data.forEach(element => {
+ console.log(element.question_key);
+ });
+ console.log(this.tmp);
+
+ this.tmp[0].value.question_key
+ console.log( this.tmp[0].value.group_title)
+ console.log( this.tmp[0].value.question_key)
+
+
+
+ this.tmp_ques = single_ques;
+ console.log(single_ques)
+ this.tmp_control = this.questionService
+
+ this.current_index = index;
+ }
+ addImage(event, index, parent_index, data,single_ques1) {
+ // this.loaderService.showMatSpinnerDialog('Fetching Data...')
+ // this.ngxService.start();
+ console.log(this.quesAnsForm)
+
+ console.log(parent_index)
+ console.log(this.tmp_ques)
+ console.log(parent_index['controls'].questions_group)
+
+ this.tmp[0].value.group_title
+ console.log( this.tmp[0].value.question_key)
+
+ console.log(data)
+ data[0].question = this.tmp[0].value.group_title
+ data[0].question_key = this.tmp[0].value.question_key
+ data=data.filter(group_indi=>!group_indi.hasOwnProperty('additional_field') && group_indi.additional_field != 1 )
+ console.log(data)
+ console.log(single_ques1)
+ let single_ques = this.tmp_ques
+
+ console.log(single_ques)
+ console.log(event, index);
+ this.imageData = this.quesAnsForm.value.questions
+
+ console.log(this.quesAnsForm.value.questions)
+ // console.log(this.questions_JSON.questions)
+ console.log(this.imageData);
+ const reader = new FileReader();
+ // let imagePath = event;
+ reader.readAsDataURL(event);
+ reader.onload = (_event) => {
+ // this.imageData = reader.result;
+ this.cameraService.getPosition().then(geoCords => {
+ let geoCoordinates;
+ if (geoCords != 'error') {
+ geoCoordinates = geoCords;
+ } else {
+ geoCoordinates = null;
+ }
+ console.log(geoCords);
+ console.log(this.imageData);
+ console.log(this.current_index);
+ this.cameraService.addWatermarks(reader.result, geoCoordinates).then(watermarked_img => {
+ if (this.current_index != 'last') {
+ if (this.imageData[this.current_index].is_multiple == 1) {
+ console.log('multi');
+ let img_param = {img_url: watermarked_img, is_base64: true, link: geoCoordinates};
+ this.imageData[this.current_index].img_data.push(img_param);
+ console.log(this.imageData)
+ // this.sendImage(this.imageData, this.imageData[this.current_index].img_data.length - 1);
+ } else {
+ this.imageData[this.current_index].img_url = watermarked_img;
+ this.imageData[this.current_index].is_base64 = true;
+ this.imageData[this.current_index].link = geoCoordinates;
+ console.log(this.imageData)
+ // this.sendImage(this.imageData);
+ }
+ } else {
+ this.getImageName().then(result => {
+ console.log(result);
+ this.imageData.push( {
+ img_key: 'common_image',
+ img_name:this.tmp[0].value.group_title,
+ img_url: watermarked_img,
+ fk_form_id: '',
+ is_base64: true,
+ link: geoCoordinates
+ });
+ // let el = document.getElementById('dummy-img-more');
+ // el.scrollIntoView();
+ setTimeout(() => {
+ this.dummyImgMoreRef.nativeElement.scrollIntoView({behavior: 'smooth', block: 'end'});
+ }, 1000);
+ // this.sendImage(this.imageData);
+ });
+ }
+ console.log(watermarked_img);
+ console.log(single_ques.controls)
+ console.log(single_ques.value.question)
+
+ this.image_question_name = single_ques.value.question
+ single_ques.controls.answer_value.setValue(watermarked_img)
+ // this.sales_pd_id = Number(this.sales_pd_id)
+ // console.log(this.sales_pd_id)
+
+ // if(this.networkDetection.getCurrentNetworkStatus() == ConnectionStatus.online && (typeof(this.sales_pd_id) == 'string' ? !this.sales_pd_id.includes('local') : true) ) {
+ single_ques.controls.is_image_status.setValue(true)
+ single_ques.controls.is_loader.setValue(true);
+ single_ques.controls.is_saved.setValue(false);
+ let params={"fk_sales_pd_id":"","img":watermarked_img,"img_name":single_ques.value.question_key,"location": geoCoordinates}
+ let storage_param=this.questions_JSON
+ let form_structure=this.questions_JSON
+ form_structure.questions=this.quesAnsForm.getRawValue().questions
+ console.log( form_structure.questions)
+ form_structure.is_complete=1
+
+
+ // else {
+ // single_ques.controls.is_image_status.setValue(true)
+ // single_ques.controls.is_loader.setValue(false);
+ // single_ques.controls.is_saved.setValue(true);
+ // }
+ this.emittedFormGroup = this.quesAnsForm.getRawValue()
+ // PASSING THE VALUE TO PARENT COMPONENT
+ this.imageUploadCheck.emit(this.emittedFormGroup);
+ this.pd_all_details_data = JSON.parse(localStorage.getItem('pd_all_details'))
+ console.log(this.pd_all_details_data)
+ // let param = {
+ // "pd_id": this.pd_all_details_data.pdMasterList.pd_id,
+ // "formid": this.pd_all_details_data.FormData.form_id,
+ // "company_id":null,
+ // "images": [
+ // {
+ // "image": watermarked_img
+ // }
+ // ],
+ // "Name": single_ques.value.question_key,
+ // "link":geoCoordinates,
+ // "image_key":single_ques.value.question_key,
+ // "is_show_report":"1",
+ // "pd_image_alias_name":single_ques.value.question,
+ // "isLoader":true,
+ // "isSaved":false,
+ // "pd_document_id":null,
+ // "pd_document_name":single_ques.value.question
+ // }
+ let ind = parseInt(this.current_index)+1
+ let index_pdid = this.pd_index( single_ques.value.question_key)
+ let param ={
+
+ "pd_id": this.pd_all_details_data.pdMasterList.pd_id,
+ "formid": this.pd_all_details_data.FormData.form_id,
+ "image": watermarked_img,
+ "image_key": single_ques.value.question_key,
+ "location": geoCoordinates,
+ "is_show_report": "1",
+ "pd_image_alias_name": single_ques.value.question,
+ "pd_document_title": single_ques.value.question+' '+ind,
+ "pd_document_id": null
+
+ }
+
+
+ console.log(param)
+ this.SalesPdService.savePDImages(param).subscribe(apiresult=>{
+ console.log(apiresult)
+ if(apiresult['dataStatus']){
+ // }
+ // })
+
+ // this.SalesPdService.saveSalesPDImage(params,form_structure).subscribe(apiresult=>{
+ // if(apiresult['dataStatus']){
+ single_ques.controls.is_loader.setValue(false);
+ single_ques.controls.is_saved.setValue(true);
+ this.httpListener(apiresult);
+ form_structure.questions=this.quesAnsForm.getRawValue().questions
+ this.SalesPdService.updateSectionDataLocally(params,form_structure).subscribe(res=>{
+ })
+ storage_param.questions=this.quesAnsForm.getRawValue().questions
+ console.log( storage_param.questions)
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ console.log(key_value)
+ storage_param.sales_pd_id=key_value
+ // this.salesPDProvider.insertData_Replace('sec'+storage_param.section_id,storage_param)
+ // })
+ // console.log("image saved successfully")
+ this.notifier.notify("success","Image Saved Successfully");
+
+ }else{
+ single_ques.controls.is_loader.setValue(false);
+ single_ques.controls.is_saved.setValue(false);
+ this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
+ // this.toastProvider.lenderappmessage("Something went wrong");
+ }
+ console.log(this.tmp_ques)
+ // this.tmp[1].controls.questions_group
+ // console.log(parent_index['controls'].questions_group)
+ // let control: any = parent_index['controls'].questions_group as FormArray
+ this.tmp.length
+ console.log(this.tmp[0])
+ let control: any = this.tmp[0].controls.questions_group
+ console.log(control)
+ console.log(this.current_index )
+ parent_index
+
+ control.push(this._fb.group({ 'questions': this._fb.array([]) }))
+ let sub_childControl: any = control.controls[this.current_index + 1].get('questions') as FormArray
+ console.log(sub_childControl)
+ console.log(data)
+
+
+ data.forEach((group_indi,arr_index )=> {
+ console.log(group_indi,arr_index)
+ delete group_indi.answer_value
+ sub_childControl.push(this.questionService.createValue(group_indi))
+ this.questionService.addAdditionalControl(group_indi, sub_childControl, arr_index)
+ this.tmp = []
+ this.loaderService.closeMatSpinnerDialog()
+ })
+
+ })
+ // this.ngxService.stop();
+ }, err => {
+ console.log('dk', err);
+ //this.ngxService.stop();
+ });
+ });
+ };
+ }
+ index(event,parent_index,parent_control){
+console.log(event,parent_index,parent_control)
+this.parent_index = []
+this.parent_index.push(parent_index)
+this.parent_control = []
+this.parent_control.push( parent_control)
+
+ }
+ captureImg(event,parent_index,parent_control){
+ parent_index = this.parent_index[0]
+ parent_control = this.parent_control[0]
+ console.log("started")
+ // this.loaderService.showMatSpinnerDialog('Fetching Data...')
+ console.log(parent_index)
+
+ let single_ques = this.tmp_ques
+ console.log(parent_control)
+ console.log(event);
+ this.imageData = this.quesAnsForm.value.questions
+
+ console.log(this.quesAnsForm.value.questions)
+ // console.log(this.questions_JSON.questions)
+ console.log(this.imageData);
+ const reader = new FileReader();
+ // let imagePath = event;
+ reader.readAsDataURL(event);
+ reader.onload = (_event) => {
+ // this.imageData = reader.result;
+ this.cameraService.getPosition().then(geoCords => {
+ let geoCoordinates;
+ if (geoCords != 'error') {
+ geoCoordinates = geoCords;
+ } else {
+ geoCoordinates = null;
+ }
+ console.log(geoCords,reader.result);
+ console.log(this.imageData);
+ console.log(this.current_index);
+ this.current_index = parent_index;
+ console.log(this.current_index);
+ this.cameraService.addWatermarks(reader.result, geoCoordinates).then(watermarked_img => {
+ if (this.current_index != 'last') {
+ if (this.imageData[this.current_index].is_multiple == 1) {
+ console.log('multi');
+ let img_param = {img_url: watermarked_img, is_base64: true, link: geoCoordinates};
+ this.imageData[this.current_index].img_data.push(img_param);
+ console.log(this.imageData)
+ // this.sendImage(this.imageData, this.imageData[this.current_index].img_data.length - 1);
+ } else {
+ this.imageData[this.current_index].img_url = watermarked_img;
+ this.imageData[this.current_index].is_base64 = true;
+ this.imageData[this.current_index].link = geoCoordinates;
+ console.log(this.imageData)
+ // this.sendImage(this.imageData);
+ }
+ } else {
+ this.getImageName().then(result => {
+ console.log(result);
+ this.imageData.push( {
+ img_key: 'common_image',
+ img_name: result,
+ img_url: watermarked_img,
+ fk_form_id: '',
+ is_base64: true,
+ link: geoCoordinates
+ });
+ // let el = document.getElementById('dummy-img-more');
+ // el.scrollIntoView();
+ setTimeout(() => {
+ this.dummyImgMoreRef.nativeElement.scrollIntoView({behavior: 'smooth', block: 'end'});
+ }, 1000);
+ // this.sendImage(this.imageData);
+ });
+ }
+ console.log(watermarked_img);
+ parent_control.controls.answer_value.setValue(watermarked_img)
+
+
+ console.log(geoCoordinates)
+ this.geoCoordinates = localStorage.getItem('current_coordinates')
+ console.log(this.geoCoordinates)
+ //SENDING SINGLE IMAGE TO API WITH PRIMARY KEY
+ let params={"fk_sales_pd_id":"","img":watermarked_img,"img_name":parent_control.value.question_key,"location": geoCoordinates ,"img_id":null}
+ let storage_param=this.questions_JSON
+ const form_structure=this.questions_JSON
+ form_structure.questions=this.quesAnsForm.getRawValue().questions
+ form_structure.is_complete=1
+
+ // if(this.networkDetection.getCurrentNetworkStatus() == ConnectionStatus.online && typeof(this.sales_pd_id) != 'string' && (typeof(this.sales_pd_id) == 'string' ? !this.sales_pd_id.includes('local') : true) ) {
+ parent_control.controls.is_image_status.setValue(true)
+ parent_control.controls.is_loader.setValue(true);
+ parent_control.controls.is_saved.setValue(false);
+ // }
+ // else {
+ // parent_control.controls.is_image_status.setValue(true)
+ // parent_control.controls.is_loader.setValue(false);
+ // parent_control.controls.is_saved.setValue(true);
+ // }
+
+ this.emittedFormGroup = this.quesAnsForm.getRawValue()
+ this.imageUploadCheck.emit(this.emittedFormGroup);
+ console.log(params,form_structure)
+ this.pd_all_details_data = JSON.parse(localStorage.getItem('pd_all_details'))
+ console.log(this.pd_all_details_data)
+ // let param = {
+ // "pd_id": this.pd_all_details_data.pdMasterList.pd_id,
+ // "formid": this.pd_all_details_data.FormData.form_id,
+ // "company_id":null,
+ // "images": [
+ // {
+ // "image": watermarked_img
+ // }
+ // ],
+ // "Name": parent_control.value.question_key,
+ // "image_key":parent_control.value.question_key,
+ // "link":geoCoordinates,
+ // "is_show_report":"1",
+ // "pd_image_alias_name":parent_control.value.question,
+ // "isLoader":true,
+ // "isSaved":false,
+ // "pd_document_id":null,
+ // "pd_document_name":parent_control.value.question
+ // }
+ let index_pdid = this.pd_index( parent_control.value.question_key)
+ console.log(index_pdid)
+ let param ={
+
+ "pd_id": this.pd_all_details_data.pdMasterList.pd_id,
+ "formid": this.pd_all_details_data.FormData.form_id,
+ "image": watermarked_img,
+ "image_key": parent_control.value.question_key,
+ "location": geoCoordinates,
+ "is_show_report": "1",
+ "pd_image_alias_name": parent_control.value.question,
+ "pd_document_title": parent_control.value.question,
+ "pd_document_id": null
+
+
+ }
+ console.log(this.current_index,param)
+ this.SalesPdService.savePDImages(param).subscribe(apiresult=>{
+ console.log(apiresult)
+ if(apiresult['dataStatus']){
+ // }
+ // // this.SalesPdService.saveSalesPDImage(params,form_structure).subscribe(apiresult=>{
+ // // console.log(apiresult)
+ // // if(apiresult['dataStatus']){
+
+ // parent_control.controls.is_loader.setValue(false);
+ // parent_control.controls.is_saved.setValue(true);
+
+ // form_structure.questions=this.quesAnsForm.getRawValue().questions
+ // // this.httpListener(apiresult);
+ // console.log(params)
+ // this.SalesPdService.updateSectionDataLocally(params,form_structure).subscribe(res=>{
+ // console.log(res)
+ // this.sendGeoCordsForSatellite(geoCoordinates,form_structure)
+ // })
+ // console.log("Result",apiresult['dataStatus'])
+ // // this.toastProvider.lenderappmessage(parent_control.value.question+ " Saved Successfully")
+ // storage_param.questions=this.quesAnsForm.getRawValue().questions
+ // // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ // // let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ // // storage_param.sales_pd_id=key_value
+ // // this.salesPDProvider.insertData_Replace('sec'+storage_param.section_id,storage_param)
+ // // })
+ // let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+
+ // // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ // console.log(key_value)
+ // storage_param.sales_pd_id=key_value
+ // // this.salesPDProvider.insertData_Replace('sec'+storage_param.section_id,storage_param)
+ // // })
+ // // console.log("image saved successfully")
+ this.notifier.notify("success","Image Saved Successfully");
+
+ // this.loaderService.closeMatSpinnerDialog()
+ }
+ })
+ // this.ngxService.stop();
+ }, err => {
+ console.log('dk', err);
+ //this.ngxService.stop();
+ });
+ });
+ };
+ }
+ addData(group_index, parent_index, data, event, options?: any, single_ques?) {
+ // console.clear();
+ data=data.filter(group_indi=>!group_indi.hasOwnProperty('additional_field') && group_indi.additional_field != 1 )
+
+ if (options == 'camera') {
+
+ // this.cameraProvider.getpicture().then(res => {
+
+ // if (res != 'error') {
+ // this.geoCoordinates = localStorage.getItem('current_coordinates')
+ // this.cameraProvider.addWatermarks(res).then(watermarkedImage => {
+ // single_ques.controls.answer_value.setValue(watermarkedImage)
+ // // this.sales_pd_id = Number(this.sales_pd_id)
+ // // console.log(this.sales_pd_id)
+
+ // // if(this.networkDetection.getCurrentNetworkStatus() == ConnectionStatus.online && (typeof(this.sales_pd_id) == 'string' ? !this.sales_pd_id.includes('local') : true) ) {
+ // single_ques.controls.is_image_status.setValue(true)
+ // single_ques.controls.is_loader.setValue(true);
+ // single_ques.controls.is_saved.setValue(false);
+ // // }
+
+ // //SENDING SINGLE IMAGE TO API WITH PRIMARY KEY
+ // let params={"fk_sales_pd_id":"","img":watermarkedImage,"img_name":single_ques.value.question_key}
+ // let storage_param=this.questions_JSON
+ // let form_structure=this.questions_JSON
+ // form_structure.questions=this.quesAnsForm.getRawValue().questions
+ // form_structure.is_complete=1
+
+
+ // // else {
+ // // single_ques.controls.is_image_status.setValue(true)
+ // // single_ques.controls.is_loader.setValue(false);
+ // // single_ques.controls.is_saved.setValue(true);
+ // // }
+ // this.emittedFormGroup = this.quesAnsForm.getRawValue()
+ // // PASSING THE VALUE TO PARENT COMPONENT
+ // this.imageUploadCheck.emit(this.emittedFormGroup);
+
+ // this.SalesPdService.saveSalesPDImage(params,form_structure).subscribe(apiresult=>{
+ // if(apiresult['dataStatus']){
+ // single_ques.controls.is_loader.setValue(false);
+ // single_ques.controls.is_saved.setValue(true);
+ // this.httpListener(apiresult);
+ // form_structure.questions=this.quesAnsForm.getRawValue().questions
+ // this.SalesPdService.updateSectionDataLocally(params,form_structure).subscribe(res=>{
+ // })
+ // storage_param.questions=this.quesAnsForm.getRawValue().questions
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ // storage_param.sales_pd_id=key_value
+ // // this.SalesPdService.insertData_Replace('sec'+storage_param.section_id,storage_param)
+ // })
+ // console.log("image saved successfully")
+ // }
+ // else{
+ // single_ques.controls.is_loader.setValue(false);
+ // single_ques.controls.is_saved.setValue(false);
+ // this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
+ // // this.SalesPdService.lenderappmessage("Something went wrong");
+ // }
+ // this.emittedFormGroup = this.quesAnsForm.getRawValue()
+ // this.imageUploadCheck.emit(this.emittedFormGroup);
+ // },err=>{
+ // single_ques.controls.is_loader.setValue(false);
+ // single_ques.controls.is_saved.setValue(false);
+ // this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
+ // console.log("error",err);
+ // // this.SalesPdService.lenderappmessage('Network Error')
+ // this.emittedFormGroup = this.quesAnsForm.getRawValue()
+ // this.imageUploadCheck.emit(this.emittedFormGroup);
+ // })
+ // })
+ // let control: any = parent_index['controls'].questions_group as FormArray
+ // control.push(this._fb.group({ 'questions': this._fb.array([]) }))
+ // let sub_childControl: any = control.controls[group_index + 1].get('questions') as FormArray
+ // data.forEach((group_indi,arr_index )=> {
+ // delete group_indi.answer_value
+ // sub_childControl.push(this.questionService.createValue(group_indi))
+ // this.questionService.addAdditionalControl(group_indi, sub_childControl, arr_index)
+ // })
+ // }
+ // }, error => {
+ // console.log("Camera Error ", JSON.stringify(error));
+ // })
+
+// let base64='data:image/jpeg;base64,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'
+// single_ques.controls.answer_value.setValue(base64)
+// console.clear();
+// console.log(single_ques);
+// single_ques.controls.is_image_status.setValue(true);
+// single_ques.controls.is_loader.setValue(true);
+// single_ques.controls.is_saved.setValue(false);
+// console.log(single_ques);
+// let control: any = parent_index['controls'].questions_group as FormArray
+// control.push(this._fb.group({ 'questions': this._fb.array([]) }))
+// let sub_childControl: any = control.controls[group_index + 1].get('questions') as FormArray
+// data.forEach(group_indi => {
+// delete group_indi.answer_value
+// sub_childControl.push(this.questionService.createValue(group_indi))
+// })
+
+// let storage_param=this.questions_JSON
+// storage_param.questions=this.quesAnsForm.getRawValue().questions
+
+// this.SalesPdService.insertData_Replace('sec'+storage_param.section_id,storage_param)
+// let params={"fk_sales_pd_id":"","img":base64,"img_name":single_ques.value.question_key}
+// // let storage_param=this.questions_JSON
+// this.SalesPdService.saveSalesPDImage(params).subscribe(apiresult=>{
+// if(apiresult['dataStatus']){
+// single_ques.controls.is_loader.setValue(false);
+// single_ques.controls.is_saved.setValue(true);
+// this.httpListener(apiresult);
+// storage_param.questions=this.quesAnsForm.getRawValue().questions
+// this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+// storage_param.sales_pd_id=key_value
+// this.SalesPdService.insertData_Replace('sec'+storage_param.section_id,storage_param)
+// })
+// console.log("image saved successfully")
+// }
+// else{
+// single_ques.controls.is_loader.setValue(false);
+// single_ques.controls.is_saved.setValue(false);
+// this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
+// this.SalesPdService.lenderappmessage("Something went wrong");
+// }
+// },err=>{
+// single_ques.controls.is_loader.setValue(false);
+// single_ques.controls.is_saved.setValue(false);
+// this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
+// console.log("error",err);
+// this.SalesPdService.lenderappmessage('Network Error')
+// })
+ //camera capture
+
+ }
+ else {
+ let control: any = parent_index['controls'].questions_group as FormArray
+ if(event!= ''){
+ event.stopPropagation()
+ }
+
+ this.step = control.length
+ control.push(this._fb.group({ 'questions': this._fb.array([]) }))
+ let sub_childControl: any = control.controls[group_index + 1].get('questions') as FormArray
+ data.forEach((group_indi, arr_index) => {
+ sub_childControl.push(this.questionService.createValue(group_indi))
+ this.questionService.addAdditionalControl(group_indi, sub_childControl, arr_index)
+ })
+
+
+ }
+ }
+ sendGeoCordsForSatellite(geoCords,form_structure){
+ let params = {"sales_pd_id":'',"geo_location":geoCords}
+ this.SalesPdService.generateSatelliteImg(params,form_structure).subscribe(val=>{})
+ }
+
+ removeData(group_index,parent_control){
+ let control:any=parent_control['controls'].questions_group as FormArray
+ control.removeAt(group_index)
+ event.stopPropagation()
+ this.step=control.length-1
+ }
+ onChange_checkbox(event,sec_control){
+ console.log(event,sec_control)
+ const control=sec_control.get('answer_value') as FormArray
+
+ if(event.checked) {
+ control.push(new FormControl(event.source.value))
+ } else {
+ const i = control.controls.findIndex(x => x.value === event.source.value);
+ control.removeAt(i);
+ }
+ }
+ creatSubField(sec_control,choosen_value){
+
+ let curr_answer:any=[]
+ console.log(sec_control,choosen_value)
+ if(typeof(choosen_value) == 'object'){
+ curr_answer =sec_control.value.answers.filter(val=>choosen_value.filter(arr_val=>arr_val == val.answer).length > 0 && val.hasOwnProperty('subfield_key') && val.subfield_key != '' && val.subfield_caption != '')
+ }
+ else{
+ curr_answer=sec_control.value.answers.filter(val=>val.answer == choosen_value && val.hasOwnProperty('subfield_key') && val.subfield_key != '' && val.subfield_caption != '')
+ }
+ if(curr_answer.length >0){
+ curr_answer=curr_answer[0]
+ console.log(curr_answer)
+ sec_control.addControl('subfield_key',new FormControl(curr_answer.subfield_key))
+ sec_control.addControl('subfield_caption',new FormControl(curr_answer.subfield_caption))
+ sec_control.addControl('subfield_value',new FormControl(''))
+ }
+ else{
+ sec_control.removeControl('subfield_key')
+ sec_control.removeControl('subfield_caption')
+ sec_control.removeControl('subfield_value')
+ }
+ }
+
+ onChangeProperty(event,sec_control,group_ques,options?,sec_index?){
+ this.fileredSearchValue=[]
+
+ if( sec_control.value.answers!= null && sec_control.value.answers.length > 0){
+ this.creatSubField(sec_control,event.value)
+ }
+ //FOR API CALLS
+ // console.log(sec_control.value);
+ if(sec_control.value.onchange_properties != null && sec_control.value.onchange_properties.length >0){
+
+ let onChangeProperties_value=sec_control.value.onchange_properties
+
+// let new_name=`{
+// "purpose":"FORM_CTRL",
+// "form_controls":[
+// {
+// "insert_index":"total_work_exp",
+// "expression":"(total_work_exp > vintage_in_current_biz)",
+// "value_keys":[
+// "total_work_exp",
+// "vintage_in_current_biz"],
+// "questions":[
+// {
+// "question_key":"previous_experience_details2",
+// "question":"Previous Experience2",
+// "type":"1",
+// "api_properties":null,
+// "answers":null,
+// "onchange_properties":null,
+// "is_repeatable":null,
+// "field_type":"string",
+// "validations":[{
+// "isactive": "1",
+// "message": "Name Required",
+// "name": "required",
+// "validator": "Validators.required",
+// "value": null
+// }]
+
+// }]
+
+// },
+// {
+// "insert_index":"vintage_in_current_biz",
+// "expression":"(total_work_exp > vintage_in_current_biz)",
+// "value_keys":[
+// "total_work_exp",
+// "vintage_in_current_biz"],
+// "questions":[{
+// "question_key":"vintage1",
+// "question":"Vintage check",
+// "type":"1",
+// "api_properties":null,
+// "answers":null,
+// "onchange_properties":null,
+// "is_repeatable":null,
+// "field_type":"string",
+// "validations":[]
+
+// }]
+
+// }
+// ]
+
+// }`
+// onChangeProperties_value.push(JSON.parse(new_name))
+
+ onChangeProperties_value.forEach(onChangeProperty=>{
+ console.log("api",onChangeProperty)
+ if(onChangeProperty.purpose == 'api2'){
+ if(onChangeProperty.api == 'getListOfStatesAndCities'){
+ this.SalesPdService.getCityPincode(event.value).subscribe(res=>{
+ console.log('1082')
+ if(res['dataStatus']){
+ console.log('1084')
+ this.local_city1=res['records'].cities
+ this.local_pincode1=res['records'].pincode
+ console.log(this.quesAnsForm.controls.questions['controls'])
+ this.quesAnsForm.controls.questions['controls'].forEach((val,index)=>{
+ console.log(val)
+ // if(val.value.hasOwnProperty('questions_group')){
+ // console.log('1089',val.value.questions_group[0]['questions'])
+ // console.log('1089',val.value.questions_group)
+
+ // val.value.questions_group[0]['questions'].forEach((getCity2,index)=>{
+ // console.log(getCity2)
+ // if(getCity2.api_properties == 'local_city1'){
+ // console.log('1091',getCity2.controls)
+ // this.local_city1=this.questionService.convertArrayNames(['city_id','city_name'],this.local_city1)
+ // console.log('1096',getCity2)
+ // getCity2.answers =(this.local_city1)
+ // console.log(getCity2.answer)
+ // }
+ // else if(getCity2.api_properties == 'local_pincode1'){
+ // this.local_pincode1=this.questionService.convertArrayNames(['pincode_id','pincode'],this.local_pincode1)
+ // getCity2.answers=(this.local_pincode1)
+ // }
+
+ // })
+
+ // // })
+ // }
+
+ // console.log('1089',val.value.hasOwnProperty('questions_group'))
+ if(val.value.api_properties == 'local_city1'){
+ console.log('1091')
+ this.local_city1=this.questionService.convertArrayNames(['city_id','city_name'],this.local_city1)
+ val.controls.answers.setValue(this.local_city1)
+ }
+ else if(val.value.api_properties == 'local_pincode1'){
+ this.local_pincode1=this.questionService.convertArrayNames(['pincode_id','pincode'],this.local_pincode1)
+ val.controls.answers.setValue(this.local_pincode1)
+ }
+
+ })
+
+ }
+ })
+ }
+ else{
+ this.SalesPdService.api_post_method(onChangeProperty.api,onChangeProperty.params,onChangeProperty.api_method).subscribe(result=>{
+ if(result['dataStatus']){
+ if(result.hasOwnProperty('records')){
+ result=result['records']
+ }
+ let ques_control= this.quesAnsForm.controls.questions['controls']
+ if(options == 2){
+ ques_control=group_ques.controls.questions['controls']
+ }
+
+ ques_control.forEach((val,index)=>{
+
+ if(val.value.api_properties == onChangeProperty.local_variable){
+ let values1=this.questionService.convertArrayNames(onChangeProperty.fields,result)
+ val.controls.answers.setValue(values1)
+ }
+
+ })
+ }
+ })
+ }
+ }
+ if(onChangeProperty.purpose == 'api'){
+ if(onChangeProperty.api == 'getListOfStatesAndCities'){
+ this.SalesPdService.getCityPincode(event.value).subscribe(res=>{
+ if(res['dataStatus']){
+ this.local_city=res['records'].cities
+ this.local_pincode=res['records'].pincode
+ console.log(this.quesAnsForm.controls.questions['controls'])
+ this.quesAnsForm.controls.questions['controls'].forEach((val,index)=>{
+ console.log(val)
+ if(val.value.api_properties == 'local_city'){
+
+ this.local_city=this.questionService.convertArrayNames(['city_id','city_name'],this.local_city)
+ console.log(this.local_city)
+ console.log(val.controls)
+ val.controls.answers.setValue(this.local_city)
+ }
+ else if(val.value.api_properties == 'local_pincode'){
+ this.local_pincode=this.questionService.convertArrayNames(['pincode_id','pincode'],this.local_pincode)
+ val.controls.answers.setValue(this.local_pincode)
+ }
+
+ })
+
+ }
+ })
+ }
+ else{
+ this.SalesPdService.api_post_method(onChangeProperty.api,onChangeProperty.params,onChangeProperty.api_method).subscribe(result=>{
+ if(result['dataStatus']){
+ if(result.hasOwnProperty('records')){
+ result=result['records']
+ }
+ let ques_control= this.quesAnsForm.controls.questions['controls']
+ if(options == 2){
+ ques_control=group_ques.controls.questions['controls']
+ }
+
+ ques_control.forEach((val,index)=>{
+
+ if(val.value.api_properties == onChangeProperty.local_variable){
+ let values1=this.questionService.convertArrayNames(onChangeProperty.fields,result)
+ val.controls.answers.setValue(values1)
+ }
+
+ })
+ }
+ })
+ }
+ }
+ if(onChangeProperty.purpose == 'validations'){
+
+ if(options == 2){
+ this.setValidations_onChange(onChangeProperty,group_ques,sec_control,sec_index)
+ }
+ else{
+ this.setValidations_onChange(onChangeProperty,this.quesAnsForm,sec_control,sec_index)
+ }
+ }
+ if(onChangeProperty.purpose == 'FORM_CTRL'){
+
+ if(options == 2){
+ this.creteNewField(onChangeProperty,group_ques,sec_control,sec_index)
+ }
+ else{
+ this.creteNewField(onChangeProperty,this.quesAnsForm,sec_control,sec_index)
+ }
+ }
+ })
+ }
+ }
+ creteNewField(form_control_obj_raw,group_ques,sec_control,sec_index,purpose?){
+ console.log(group_ques,form_control_obj_raw,sec_index);
+ if(form_control_obj_raw.form_controls.length > 0){
+ form_control_obj_raw.form_controls.forEach(form_control_obj=>{
+ if(form_control_obj.value_keys != null && form_control_obj.value_keys.length > 0 ){
+ let expression_value=form_control_obj.expression
+ form_control_obj.value_keys.forEach(res=>{
+ let control_value_obj
+ if(purpose != 'edit'){
+ control_value_obj =group_ques.value.questions.filter(val=>val.question_key == res)[0]
+ }
+ else{
+ control_value_obj =sec_index.questions.filter(val=>val.question_key == res)[0]
+ }
+ if(control_value_obj){
+ if(control_value_obj.answer_value == ''){
+ control_value_obj.answer_value =0
+ }
+ // expression_value=expression_value.replace(res,control_value_obj.answer_value)
+ expression_value = expression_value.split(res).join(control_value_obj.answer_value)
+ }
+ })
+
+ let calc_exp=eval(expression_value)
+
+ if(calc_exp != false){
+ if(form_control_obj.questions.length > 0){
+ let question_index_after
+ group_ques.value.questions.forEach((val,index,arr)=>{
+
+ if(val.question_key == form_control_obj.insert_index){
+ question_index_after= arr.indexOf(val)
+ }
+ })
+ console.log(question_index_after,sec_index);
+ this.createControl(form_control_obj,group_ques,question_index_after,1) //FOR ADD CONTOL
+ }
+ }
+ else{
+ this.createControl(form_control_obj,group_ques,'',2) //FOR REMOVE CONTROL
+ }
+ }
+ })
+ }
+ }
+ createControl(form_control_obj,group_ques,question_index_after,options){
+ console.log(form_control_obj,group_ques,question_index_after)
+ let ques_control=group_ques.get('questions') as FormArray
+ let inserted_control_obj=form_control_obj
+ inserted_control_obj.questions.sort()
+ inserted_control_obj.questions.reverse()
+ inserted_control_obj.questions.forEach(val=>{
+ if(options == 1){
+ let check_dup=ques_control.value.filter(control_key=>control_key.question_key == val.question_key)
+ if(check_dup.length == 0){
+ val.raw_validations=val.validations
+ ques_control.insert(question_index_after+1,this.questionService.createValue(val))
+
+ this.questionService.addAdditionalControl(val, ques_control, question_index_after+1,"additional_field")
+ }
+ }
+ else{
+ ques_control.controls.forEach((control_key,index)=>{
+ if(control_key.value.question_key == val.question_key){
+ ques_control.removeAt(index)
+ }
+ })
+ }
+ })
+ }
+ setValidations_onChange(validation_obj_raw,group_ques,sec_control,sec_index){
+
+
+ if(validation_obj_raw.validations.length > 0){
+ validation_obj_raw.validations.forEach(validation_obj=>{
+ console.log("sing",validation_obj)
+ //FOR CHECKING THE EXPRESSION OR NORMAL VALIDATION
+ if(validation_obj.hasOwnProperty('value_keys')){
+
+ if( validation_obj.value_keys != null){
+
+
+ let expression_value=validation_obj.value
+ validation_obj.value_keys.forEach(res=>{
+ let validator_value_obj=group_ques.value.questions.filter(val=>val.question_key ==
+ res)[0]
+ if(validator_value_obj){
+ expression_value=expression_value.replace(res,validator_value_obj.answer_value)
+ }
+ })
+
+ // validation_obj.value=expression_value
+ validation_obj.validator=eval(expression_value)
+
+ if(validation_obj.validator == false){
+ validation_obj.isactive='0'
+ // // MAKING THE DECISION FOR SETTING THE VALIDATOR FOR CURRENT CONTROL OR OTHERS
+ this.proceedValidationSet(validation_obj,group_ques,sec_index,'')
+ }
+ else{
+ validation_obj.isactive='1'
+ let validator_single=this.questionService.setValueForValidator(validation_obj)
+ console.log(validator_single)
+ // // MAKING THE DECISION FOR SETTING THE VALIDATOR FOR CURRENT CONTROL OR OTHERS
+ this.proceedValidationSet(validation_obj,group_ques,sec_index,validator_single)
+ }
+ //END OF EXPRESSION CHECK
+ }
+ else{
+ // STARTING VALUE VALIDATION
+ let validator_value_obj
+
+
+
+ validator_value_obj=group_ques.value.questions.filter(val=>val.question_key ==
+ validation_obj.value)[0]
+ console.log(validator_value_obj)
+
+ validation_obj.validator=validator_value_obj.answer_value
+
+ // let validator_single=this.questionService.setValueForValidator(validation_obj)
+ // console.log(validator_single)
+ // MAKING THE DECISION FOR SETTING THE VALIDATOR FOR CURRENT CONTROL OR OTHERS
+ this.proceedValidationSet(validation_obj,group_ques,sec_index,'')
+
+ // END OF VALUE VALIDATION
+ }
+
+ //
+
+ // }
+ // else{
+
+ // }
+
+ }
+ })
+ }
+ }
+
+ proceedValidationSet(validation_obj,group_ques,sec_index,validator_single?){
+ let ques_control;
+ if(validation_obj.validation_to == null){
+ console.log("entered",group_ques,sec_index);
+ ques_control=group_ques.controls.questions['controls'][sec_index]
+
+
+ // if(validation_obj.isactive == '1'){
+ // ques_control.controls.answer_value.setValidators(validator_single)
+ // ques_control.controls.answer_value.updateValueAndValidity()
+ // }
+ // else{
+ // ques_control.controls.answer_value.clearValidators()
+ // ques_control.controls.answer_value.updateValueAndValidity()
+ // }
+ // validation_obj.validator=validator_single
+ let new_validation_obj=this.updateValidationMsg(ques_control,validation_obj)
+
+ this.questionService.settingArrayofValidators({validations:new_validation_obj},ques_control,sec_index)
+ }
+ else{
+ ques_control=group_ques.controls.questions['controls']
+ let other_control=ques_control.filter(val=>{
+ if(val.controls.question_key.value == validation_obj.validation_to){
+ return val
+ }
+ })[0]
+ // let updateMsg=other_control.value.validations.filter(val=>val.name != validation_obj.name)
+ // updateMsg.push(validation_obj)
+ console.log(other_control)
+ // other_control.controls.answer_value.setValidators(validator_single)
+ // if(validation_obj.isactive == '1'){
+ // other_control.controls.answer_value.setValidators(validator_single)
+ // other_control.controls.answer_value.updateValueAndValidity()
+ // }
+ // else{
+ // other_control.controls.answer_value.clearValidators()
+ // other_control.controls.answer_value.updateValueAndValidity()
+ // }
+
+ // other_control.controls.validations.setValue(updateMsg);
+ // validation_obj.validator=validator_single
+ let new_validations_obj=this.updateValidationMsg(other_control,validation_obj)
+ console.log("new validations obj",new_validations_obj,other_control)
+ this.questionService.settingArrayofValidators({validations:new_validations_obj},other_control,'')
+ }
+ }
+ updateValidationMsg(ques_control,validation_obj){
+ console.log("updae msg",ques_control,validation_obj);
+ let updateMsg=ques_control.value.validations.filter(val=>val.name != validation_obj.name)
+ updateMsg.push(validation_obj)
+ ques_control.controls.validations.setValue(updateMsg);
+ return updateMsg;
+ }
+ onSubmitProperty(sales_pd_id = this.sales_pd_id){
+ // this.loaderService.showMatSpinnerDialog('Please wait...')
+ console.log(this.sales_pd_id)
+ let return_val=[]
+ let send_val:boolean=true
+ // this.local_ques_JSON.onsubmit=[
+ // {
+ // "expression": "(function () {let sum_val=null;let ques_key=[];control.questions_group.forEach(ques_obj=>{ques_obj.questions.map(ques=>{if(ques.question_key == submitProperty.key_name){ques_key.push(ques)}})});if(ques_key.length >=3){return true}else{return false}return sum_val}())",
+ // "key_name": "approach_to_pd_location",
+ // "msg": "Minimum 3 image required in approach"
+ // },
+ // {
+ // "expression": "(function () {let sum_val=null;let ques_key=[];if(control.question_key == submitProperty.key_name && control.answer_value == ''){return false}else{return true}return sum_val}())",
+ // "key_name": "selfie_with_person_met",
+ // "msg": "Selfie Person met pic is required"
+ // }
+ // {
+ // "expression": "(function () {let sum_val=null;let ques_key=[];if(control.question_key == submitProperty.key_name){return control.answer_value.length >= 100}}())",
+ // "key_name": "brief_business_service",
+ // "msg": "Please enter more details"
+ // }
+ // ]
+ // console.log(this.local_ques_JSON);
+ if(this.local_ques_JSON.hasOwnProperty('onsubmit') && this.local_ques_JSON.onsubmit != null){
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then((sales_pd_id)=>{
+ for(let i=0; i{
+ let parent_ques
+ for( parent_ques of this.quesAnsForm.value.questions){
+ // this.local_ques_JSON.onsubmit.forEach(submitProperty=>{
+
+ let submitProperty=this.local_ques_JSON.onsubmit[i]
+
+
+ if((parent_ques.is_repeatable == '1' && parent_ques.questions_group[0].questions.filter(val=>val.question_key == submitProperty.key_name).length > 0 ) || parent_ques.question_key == submitProperty.key_name){
+
+
+ return_val.length = 0
+ let val=this.calculation(parent_ques,submitProperty,sales_pd_id)
+
+ if(val != true && val != 100){
+ this.notifier.notify("info",submitProperty.msg);
+ //this.SalesPdService.lenderappmessage(submitProperty.msg)
+ // this.notifier.notify("info","submit");
+ return_val.push(false);
+ break;
+ }
+ else {
+ return_val.push(true);
+ }
+ }
+ else if(parent_ques.question_key == submitProperty.key_name) {
+ let val=this.calculation(parent_ques,submitProperty,sales_pd_id)
+ if(val != true) {
+ this.notifier.notify("info",submitProperty.msg);
+ // this.SalesPdService.lenderappmessage(submitProperty.msg)
+ return_val.push(false) ;
+ }
+ else{
+ return_val.push(true) ;
+ }
+ }
+ else{
+ send_val =true
+ }
+ // })
+ // })
+ }
+ // console.log(return_val.filter(val=>val == false).length > 0)
+ if(return_val.filter(val=>val == false).length > 0){
+ break;
+ }
+ }
+// })
+ console.log(return_val)
+ if(return_val.length > 0){
+ if(return_val.filter(res=>res == false).length > 0){
+ send_val = false
+ }
+ else{
+ send_val =true
+ }
+ }
+ }
+ return send_val
+ }
+ calculation(control,submitProperty,sales_pd_id?){
+ function addorUpdateLocalStorage(key,value) {
+ if(sales_pd_id == null || !sales_pd_id) {
+ return;
+ }
+
+ let storageKey = 'PD_FORM_VALUES-'+sales_pd_id
+ let existing_value:any = localStorage.getItem(storageKey)
+ if(existing_value ) {
+ existing_value = JSON.parse(existing_value);
+ if(Object.keys(existing_value).length > 0) {
+ existing_value[key] = value
+ }
+ // existing_value.push(value)
+ }
+ else {
+ existing_value = {}
+ existing_value[key] =value
+ }
+ localStorage.setItem(storageKey,JSON.stringify(existing_value))
+
+ }
+
+ console.log("control",control)
+ // let exp=`
+ // (function () {if(control.question_key == 'constitution'){addorUpdateLocalStorage('constitution',control.answer_value);}return true}());`
+
+ //for image total check
+ // let exp=`
+ // (function () {let sum_val=null
+ // let ques_key=[]
+ // control.questions_group.forEach(ques_obj=>{
+ // ques_obj.questions.map(ques=>{
+ // // console.log(ques)
+ // if(ques.question_key == 'name_board_seen'){
+ // ques_key.push(ques)
+ // }
+ // })
+ // })
+ // if(ques_key.length >= 3){
+ // sum_val=true
+ // }
+ // else{
+ // sum_val=false
+ // }
+ // return sum_val }());`
+
+
+ let val= eval(submitProperty.expression);
+ // let val = eval(exp);
+ console.log(val)
+ return val
+ }
+
+ // addorUpdateLocalStorage(key,value) {
+
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then((sales_pd_id)=>{
+ // let storageKey = 'PD_FORM_VALUES-'+sales_pd_id
+ // let existing_value:any = localStorage.getItem(storageKey)
+ // if(existing_value ) {
+ // existing_value = JSON.parse(existing_value);
+ // if(Object.keys(existing_value).length > 0) {
+ // existing_value[key] = value
+ // }
+ // // existing_value.push(value)
+ // }
+ // else {
+ // existing_value[key] =value
+ // }
+ // localStorage.setItem(storageKey,JSON.stringify(existing_value))
+ // })
+ // }
+
+ // searchFun(control,index){
+ // console.log(control,index);
+
+ // this.fileredSearchValue[index]=this.constantProvider.searchValue(control.value.answers,control.controls['select_search'].value,'')
+ // console.log(this.fileredSearchValue)
+
+
+
+ // }
+ public findInvalidControls() {
+ const controls = this.quesAnsForm.get('questions')['controls'];
+ console.log(controls)
+ for (const name in controls) {
+ if (controls[name].invalid) {
+ let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid'));
+ let firstInvalidField;
+ for(let val in invalidFields){
+ if( invalidFields[val].nodeName == 'MAT-FORM-FIELD'){ //INPUT FOR INPUT FIELD
+ firstInvalidField=invalidFields[val]
+ break;
+ }
+ }
+ if(firstInvalidField != undefined){
+ firstInvalidField.scrollIntoView(true)
+ }
+ break;
+ }
+ }
+ // return invalid;
+}
+ onSubmit(flag){
+ console.log(this.quesAnsForm)
+ console.log(this.quesAnsForm.getRawValue())
+ // this.loaderService.showMatSpinnerDialog('Please wait...')
+ //1-Submit 0-Draft
+
+ // alert(' enter save');
+ // this.submit_btn=true;
+
+ if(flag != 0){
+ if(this.quesAnsForm.invalid){
+ let msg:string="Please Fill all the Fields";
+ if(this.submit_btn == true){
+ msg="Please take the necessary pictures"
+ }
+ this.notifier.notify("info",msg);
+ // this.notifier.notify("info","submit");
+ //this.SalesPdService.lenderappmessage(msg)
+ // this.Accordion.displayMode
+ if(this.matExpansionPanel!= undefined){
+ this.matExpansionPanel.open()
+ }
+ this.findInvalidControls()
+ return
+ }
+ // CHECKING THE SAVE IMAGE REQUEST IS STILL PENDING
+ if(this.submit_btn == true && this.emittedFormGroup != null){
+ // console.clear();
+ console.log(this.quesAnsForm.dirty);
+ let form_structure=this.quesAnsForm.getRawValue().questions
+ // form_structure.forEach(parent_ques=>{
+ for(let i=0; i{
+ // group_ques.questions.forEach(single_ques=>{
+ if(single_ques.is_loader == true){
+ this.notifier.notify("info","Some images are still uploading. Please wait...");
+ //this.SalesPdService.lenderappmessage("Some images are still uploading. Please wait...")
+ return;
+ }
+ // })
+ // })
+ }
+ }
+ }
+ }
+ // })
+ }
+ //END OF IMAGE SAVE REQUEST CHECK
+ let checkProperty=this.onSubmitProperty()
+ console.log("check rp",checkProperty)
+ if(checkProperty == false){
+ return;
+ }
+ }
+
+ let storage_param=this.questions_JSON
+ console.log('1storage_param');
+ console.log(storage_param);
+ storage_param.questions=this.quesAnsForm.getRawValue().questions
+ storage_param.is_complete=flag
+ // alert('storageflg');
+ // alert(storage_param.is_complete);
+
+ this.loaderService.showMatSpinnerDialog('Please wait...')
+ if (this.submit_btn && flag == 0) {
+ // alert('empty');
+ // this.insertSectionDataLocally(storage_param)
+ storage_param.questions=this.questions_JSON.questions
+
+ setTimeout(()=>{
+ this.emitter.emit(storage_param)
+ this.loaderService.closeMatSpinnerDialog()
+ })
+ return;
+ }
+ console.log(this.quesAnsForm.dirty)
+ console.log('local');
+ console.log(this.local_ques_JSON);
+ console.log(this.local_ques_JSON.section_id)
+ // if(this.quesAnsForm.dirty){
+
+ if(this.local_ques_JSON.section_id == 1 || this.submit_btn){
+ let result = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ console.log(result,'local')
+ // storage_param.sales_pd_id = result
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(result=>{
+ // alert('raja')
+ // let result='43';
+ console.log('resultmaran');
+ console.log(result);
+ if(result != null && !this.submit_btn){
+ // alert('a')
+ console.log('storage_param');
+ console.log(storage_param);
+ this.sendSectiontoApi(storage_param)
+ }
+ else{
+ // alert('finalelse');
+ console.log(storage_param);
+ console.log('finalelse');
+ this.sendDatatoApi(storage_param)
+ }
+ // })
+ }
+ //this if condition is used for section 1
+ else{
+ this.sendSectiontoApi(storage_param)
+ }
+ // }
+ // else if(!this.submit_btn){
+ // if(flag == 1 && ((this.raw_data_Section.hasOwnProperty('status') && this.raw_data_Section.status == '0') || (this.original_result_data.hasOwnProperty('is_complete') && this.original_result_data.is_complete == 0))){
+ // this.sendSectiontoApi(storage_param)
+ // }
+ // else{
+ // this.loaderService.closeMatSpinnerDialog()
+ // this.insertSectionDataLocally(storage_param)
+ // }
+ // }
+ // else{
+ // this.sendDatatoApi(storage_param)
+ // }
+ }
+ sendSectiontoApi(params){
+ if(params.section_id != 9){
+ setTimeout(()=>{
+ this.loaderService.showMatSpinnerDialog('Please wait...')
+ },1000)
+}
+ // alert('lastsave');
+ console.log('lastsave');
+ console.log(params);
+ console.log('1158',this.local_ques_JSON.section_id)
+ this.SalesPdService.saveSalesPDSection(params).subscribe(response=>{
+ if(this.local_ques_JSON.section_id != 9){
+ if(response.dataStatus){
+ console.log('response',response);
+ // alert('saved successfully');
+ this.loaderService.closeMatSpinnerDialog()
+ this.notifier.notify("success","Saved Successfully");
+ // let product_id=localStorage.getItem('product_id_salesPD')
+ // this.router.navigate(['../../sectionlist',product_id,this.sales_pd_type],{ relativeTo: this.route })
+ //this.SalesPdService.lenderappmessage("Saved Successfully..");
+ setTimeout(()=>{
+ this.insertSectionDataLocally(params) //FOR INSERTING AND REDIRECTING TO NEXT PAGE
+ this.loaderService.closeMatSpinnerDialog()
+ },1200)
+ }
+ else{
+ this.loaderService.closeMatSpinnerDialog()
+ }
+ }
+ },err=>this.loaderService.closeMatSpinnerDialog())
+ // this.loaderService.closeMatSpinnerDialog()
+ }
+ sendDatatoApi(section_data?){
+ // // alert('a');
+ // console.log('a');
+ // console.log(section_data);
+ // this.loaderService.showMatSpinnerDialog('Please wait...')
+ // // this.cameraProvider.getGeoTag().then(geo_cords=>{
+ // // let params={pd_json:JSON.stringify(res),geo_location:geo_cords}
+ // if(this.submit_btn){
+ // // alert('b');
+ // const dialogRef = this.dialog.open(AlertDialogComponent, {
+ // width: '500px',
+ // data: {buttons:[{name:"Complete",visible:true,id:'Complete'},{name:'Cancel',visible:'true',id:'cancel'}],title:'Complete Verification',
+ // msg:'You are completing this Verification, once completed you will not be able to make changes'}
+ // });
+
+ // dialogRef.afterClosed().subscribe(data => {
+ // console.log(data)
+ // if(data != 'cancel'){
+ // this.saveSalesPDAPI(section_data)
+ // }
+ // else{
+ // this.loaderService.closeMatSpinnerDialog()
+ // }
+ // })
+
+ // }
+ // else{
+ // this.saveSalesPDAPI(section_data)
+ // }
+
+
+ // })
+
+ // })
+ }
+ saveSalesPDAPI(section_data){
+ // // alert('gayathri');
+ // console.log(section_data);
+ // console.log('gayathri');
+ // let params:any={}
+ // if(this.submit_btn){
+ // params.status="COMPLETED"
+ // }
+ // console.log(this.submit_btn)
+ // this.SalesPdService.saveQuestions(params).subscribe((apiresult:any)=>{
+ // console.log('fun cal api',apiresult)
+ // if(apiresult['dataStatus']){
+ // if(apiresult['records'] != true && typeof(apiresult['records']) != 'object'){
+ // console.log('1710')
+ // this.sales_pd_id = apiresult['records']
+ // localStorage.setItem('sales_pd_id_PRIMARYKEY',String(apiresult['records']))
+ // // this.SalesPdService.insertData_Replace('sales_pd_id_PRIMARYKEY',String(apiresult['records'])).then(local_result=>{
+ // localStorage.setItem('sales_rand_string',String(apiresult['rand_string']))
+ // // this.SalesPdService.insertData_Replace('sales_rand_string',String(apiresult['rand_string'])).then(()=>{
+ // console.log(this.submit_btn)
+ // if(!this.submit_btn){
+ // console.log('1718')
+ // this.sendSectiontoApi(section_data)
+ // }
+ // // })
+ // // })
+ // }
+ // else
+ // if(!this.submit_btn){
+ // console.log('1726')
+ // this.sendSectiontoApi(section_data)
+ // }
+ // else if(apiresult.hasOwnProperty('pd_status') && apiresult['pd_status'] == 'DRAFT'){
+ // // this.SalesPdService.setAlert("Personal Discussion is not completed","Some of the sections are saved as draft. Kindly check and complete that.")
+ // console.log('1731')
+ // let section_redirect=apiresult['records']
+ // let section_dis_names:any=[];
+ // if(section_redirect.length > 0){
+ // section_redirect.forEach(res=>{
+ // section_dis_names.push(res.sectin_name)
+ // })
+ // }
+
+ // const dialogRef = this.dialog.open(AlertDialogComponent, {
+ // width: '500px',
+ // data: {buttons:[{name:"Ok",visible:true,id:'ok'},{name:"Cancel",visible:true,id:'cancel'}],title:'Sales PD is incomplete',
+ // msg: 'The Following sections are not Saved' + section_dis_names }
+ // });
+
+ // // this.notifier.notify("success","Sales PD is incomplete","The Following sections are not Saved "+section_dis_names+'')
+ // // let alert=this.SalesPdService.setAlertWithOkButton("Sales PD is incomplete","The Following sections are not Saved "+section_dis_names+'')
+ // // alert.present()
+
+ // }
+ // else{
+ // console.log('1752')
+ // section_data.questions=this.questions_JSON.questions
+ // section_data.is_completed=true
+ // setTimeout(()=>{
+ // this.emitter.emit(section_data)
+ // })
+ // }
+ // // this.insertSectionDataLocally(section_data)
+
+ // // this.SalesPDService.clearLocalData()
+ // // if(res.length > 1){
+ // // this.SalesPdService.lenderappmessage("Saved Successfully..!");
+ // // }
+ // // setTimeout(()=>{
+ // // this.navCtrl.setRoot(SalesPDlistPage)
+ // // },2000)
+
+ // }
+ // else{
+ // this.notifier.notify("warning","Something went wrong");
+ // //this.SalesPdService.lenderappmessage("Something went wrong");
+ // // setTimeout(()=>{
+ // // this.navCtrl.pop();
+ // // })
+ // }
+ // // this.loaderService.closeMatSpinnerDialog();
+ // this.loaderService.closeMatSpinnerDialog()
+ // },err=>{
+ // this.loaderService.closeMatSpinnerDialog();
+ // // this.loaderService.closeMatSpinnerDialog()
+
+ // //this.SalesPdService.lenderappmessage('Network Error')
+ // this.notifier.notify("warning","Network Error");
+ // this.sendDatatoApi(section_data);
+ // })
+ }
+ redirect_to_section(section_id){
+ // let re_section:any=Section1
+ // switch (parseInt(section_id)) {
+ // case 1:
+ // re_section = Section1
+ // break;
+ // case 2:
+ // re_section = Section2
+ // break;
+ // case 3:
+ // re_section = Section3
+ // break;
+ // case 4:
+ // re_section = Section4
+ // break;
+ // case 5:
+ // re_section = Section5
+ // break;
+ // case 6:
+ // re_section = Section6
+ // break;
+ // case 7:
+ // re_section = Section7
+ // break;
+ // case 8:
+ // re_section = Section8
+ // break;
+ // case 9:
+ // re_section = Section9
+ // break;
+ // default:
+ // re_section=''
+ // break;
+ // }
+ // let product_id=localStorage.getItem('product_id_salesPD')
+ // if(re_section != ''){
+ // this.router.navigate([re_section,{product_id:product_id}], {relativeTo: this.route});
+ // // this.navCtrl.setRoot(re_section,{product_id:product_id})
+ // }
+ // else{
+ // // this.router.pop();
+ // this.dialogRef.close();
+ // }
+ }
+
+ insertSectionDataLocally(section_data){
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ section_data.sales_pd_id=key_value
+ // this.SalesPdService.insertData_Replace('sec'+section_data.section_id,section_data)
+ // })
+ section_data.questions=this.questions_JSON.questions
+ setTimeout(()=>{
+ this.emitter.emit(section_data)
+ })
+ }
+ // SENDING SALES PD SECTION 9 STRUCTURE(photographs)
+ ngOnDestroy(){
+ // console.clear()
+ console.log("dirty check",this.quesAnsForm.dirty)
+ if(this.local_ques_JSON.section_id == 9 && this.emittedFormGroup != null){
+ // FOR SENDING THE IMAGE SECTION (SECTION ID 9) JSON Structure
+ let form_structure=this.quesAnsForm.getRawValue().questions
+ form_structure.forEach((parent_ques,p_index, p_object)=>{
+ if(parent_ques.hasOwnProperty('is_repeatable') && parent_ques.is_repeatable != '1'){
+ if(parent_ques.answer_value != '' && parent_ques.answer_value != null){
+ //parent_ques.answer_value = 'SAVED'
+ if(parent_ques.is_loader == false && parent_ques.is_saved == false){
+ p_object.splice(p_index,1)
+ }
+ }
+ }
+ else{
+ parent_ques.questions_group.forEach((group_ques,g_index,g_object)=>{
+ group_ques.questions.forEach((single_ques,s_index, s_object)=>{
+ if(single_ques.answer_value != '' && single_ques.answer_value != null){
+ // single_ques.answer_value = 'SAVED'
+ if(single_ques.is_loader == false && single_ques.is_saved == false){
+ // single_ques.is_saved = ''
+ // single_ques.is_loader = ''
+ // single_ques.is_image_status=false
+ g_object.splice(g_index,1)
+ // delete parent_ques.questions_group[g_index]
+ }
+ }
+ })
+ })
+ }
+ })
+
+ let sectionApi_param=this.questions_JSON
+ sectionApi_param.questions=form_structure
+ sectionApi_param.is_complete=1
+ this.sendSectiontoApi(sectionApi_param)
+ }
+ }
+ imageReupload(single_ques){
+
+ let storage_param=this.questions_JSON
+ storage_param.questions=this.quesAnsForm.getRawValue().questions
+
+ let data=single_ques.value
+ let params={"fk_sales_pd_id":"","img":data.answer_value,"img_name":data.question_key}
+ const form_structure=this.questions_JSON
+ form_structure.questions=this.quesAnsForm.getRawValue().questions
+ form_structure.is_complete=1
+
+ // if(this.networkDetection.getCurrentNetworkStatus() == ConnectionStatus.online && typeof(this.sales_pd_id) != 'string' && (typeof(this.sales_pd_id) == 'string' ? !this.sales_pd_id.includes('local') : true) ) {
+ single_ques.controls.is_image_status.setValue(true);
+ single_ques.controls.is_loader.setValue(true);
+ single_ques.controls.is_saved.setValue(false);
+ // }
+ // else {
+ // single_ques.controls.is_image_status.setValue(true)
+ // single_ques.controls.is_loader.setValue(false);
+ // single_ques.controls.is_saved.setValue(true);
+ // }
+
+ this.SalesPdService.saveSalesPDImage(params,form_structure).subscribe(apiresult=>{
+ if(apiresult['dataStatus']){
+ single_ques.controls.is_loader.setValue(false);
+ single_ques.controls.is_saved.setValue(true);
+ this.httpListener(apiresult);
+ form_structure.questions=this.quesAnsForm.getRawValue().questions
+ // this.httpListener(apiresult);
+ this.SalesPdService.updateSectionDataLocally(params,form_structure).subscribe(res=>{
+ })
+ storage_param.questions=this.quesAnsForm.getRawValue().questions
+ let key_value = localStorage.getItem('sales_pd_id_PRIMARYKEY')
+ // this.SalesPdService.getData_fromLocal('sales_pd_id_PRIMARYKEY').then(key_value=>{
+ storage_param.sales_pd_id=key_value
+ // this.SalesPdService.insertData_Replace('sec'+storage_param.section_id,storage_param)
+ // })
+ this.notifier.notify("success","Image Saved Successfully");
+ // console.log("image saved successfully")
+ }
+ else{
+ single_ques.controls.is_loader.setValue(false);
+ single_ques.controls.is_saved.setValue(false);
+ this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
+ this.notifier.notify("warning","Something went wrong");
+ //this.SalesPdService.lenderappmessage("Something went wrong");
+ }
+ },err=>{
+ single_ques.controls.is_loader.setValue(false);
+ single_ques.controls.is_saved.setValue(false);
+ this.SalesPdService.clear_local_key('sec'+storage_param.section_id)
+ console.log("error",err);
+ this.notifier.notify("warning","Something went wrong");
+ // this.SalesPdService.lenderappmessage('Network Error')
+ })
+ }
+ cancelLoader(control){
+ control.controls.is_loader.setValue(false);
+ control.controls.is_image_status.setValue(false);
+ }
+ getImageName() {
+ return new Promise((resolve, reject) => {
+ let img_name = prompt('Enter the Image Name');
+ if (img_name != null) {
+ console.log(img_name);
+ // return img_name;
+ resolve(img_name);
+ } else {
+ console.log('no name');
+ }
+ });
+ }
+ imageCrop(pic,question,index) {
+
+ }
+ save_image(){
+ this.pd_all_details_data = JSON.parse(localStorage.getItem('pd_all_details'))
+ console.log(this.pd_all_details_data)
+ let data = this.quesAnsForm.getRawValue().questions
+ data.forEach(element => {
+
+ if(element.hasOwnProperty('answer_value') ){
+ console.log(element)
+ if(element.answer_value != ''){
+ element.answer_value = 'saved'
+ }
+
+ }else{
+ element.questions_group.forEach(e => {
+ e.questions.forEach(c => {
+ if(c.hasOwnProperty('answer_value') ){
+ console.log(c)
+ if(c.answer_value != ''){
+ c.answer_value = 'saved'
+ }
+ }
+
+ });
+
+ });
+
+
+ }
+
+ });
+ console.log(data)
+ let params = {
+
+
+
+ "parent_pdid": this.pd_all_details_data.pdMasterList.pd_id,
+ "pdid": this.pd_all_details_data.pdMasterList.pd_id,
+ "formid": this.pd_all_details_data.FormData.form_id,
+ "fk_createdby":'',
+ "photograph_details":data
+
+ }
+
+ console.log(params)
+ this.pdTriggerService.saveForm(params).subscribe(result=>{
+ if(result['dataStatus']) {
+ this.notifier.notify("success","Saved successfully..")
+ setTimeout(()=>{
+ this.dialogRef.close('refresh')
+ },1500)
+ }
+ else {
+ this.notifier.notify("warning","Something went wrong");
+ }
+ this.loaderService.closeMatSpinnerDialog()
+ },err=>{
+ this.loaderService.closeMatSpinnerDialog()
+ this.notifier.notify("warning","Network Error");
+ })
+ }
+
+ pd_index(param){
+ let data = this.json_answers
+ let ans;
+ data.forEach(element => {
+
+ if(element.hasOwnProperty('question_key') ){
+ // console.log(element)
+ if(element.question_key == param){
+ console.log(element)
+ ans = element
+ return element
+
+
+ }
+
+ }
+ });
+ return ans
+ }
+}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.html
new file mode 100644
index 000000000..09f13ab3a
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.html
@@ -0,0 +1,6 @@
+
+
+
\ No newline at end of file
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.spec.ts
new file mode 100644
index 000000000..95074e520
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { SingleCaptureBtnComponent } from './single-capture-btn.component';
+
+describe('SingleCaptureBtnComponent', () => {
+ let component: SingleCaptureBtnComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ SingleCaptureBtnComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(SingleCaptureBtnComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.ts
new file mode 100644
index 000000000..9baee8bd9
--- /dev/null
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component.ts
@@ -0,0 +1,99 @@
+// import { Component, OnInit } from '@angular/core';
+
+// @Component({
+// selector: 'app-single-capture-btn',
+// templateUrl: './single-capture-btn.component.html',
+// styleUrls: ['./single-capture-btn.component.scss']
+// })
+// export class SingleCaptureBtnComponent implements OnInit {
+
+// constructor() { }
+
+// ngOnInit() {
+// }
+
+// }
+
+import { Component, OnInit, Output, EventEmitter, Input, Injectable } from '@angular/core';
+import { Ng2ImgMaxService } from 'ng2-img-max';
+import { LoaderService } from 'app/shared/loaderService/loader.service';
+import { MatDialog } from '@angular/material';
+@Injectable({
+ providedIn: 'root'
+})
+
+@Component({
+ selector: 'app-single-capture-btn',
+ templateUrl: './single-capture-btn.component.html',
+ styleUrls: ['./single-capture-btn.component.scss']
+})
+export class SingleCaptureBtnComponent {
+
+
+ @Input() addMoreBtn;
+
+ @Output() singleDataEmitter = new EventEmitter
+ sales_pd_type: string;
+ role_id: string;
+
+ constructor(private ng2ImgMax:Ng2ImgMaxService,private loaderService:LoaderService,private dialog: MatDialog) {
+ this.role_id = localStorage.getItem('user_role')
+ this.sales_pd_type = localStorage.getItem('sales_pd_type')
+ console.log(this.sales_pd_type)
+ }
+
+ ngOnInit(): void {
+ console.log(this.addMoreBtn)
+ }
+ singlecapturedImage(event){
+ this.loaderService.showMatSpinnerDialog('Fetching Data...')
+ console.log(event);
+ let imageData= event.target.files[0]
+ // const dialogRef = this.dialog.open(ImageEditComponent, {
+ // data: { 'data': event},
+ // // position: { right: '0'},
+ // disableClose: true,
+ // // height: '80%',
+
+ // minWidth: '80%',
+ // maxWidth: '80%',
+
+
+ // });
+ // dialogRef.afterClosed()
+ // .subscribe(dataresult => {
+ // console.log(dataresult)
+
+ // // if(dataresult == 1){
+ // // this.getApiData()
+ // // }
+
+
+
+
+ // });
+
+ this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe(
+ result => {
+ console.log(result);
+ this.singleDataEmitter.emit(result)
+ this.loaderService.closeMatSpinnerDialog()
+ },
+ error => {
+ console.log('😢 Oh no!', error);
+ }
+ );
+
+ }
+ singlecapture(event){
+ event.preventDefault();
+ let element:HTMLElement = document.getElementById('input-files') as HTMLElement
+ element.click();
+ }
+}
+
+
+
+
+
+
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.html
index 8b2369bcd..317f3bb28 100755
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.html
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/forms/general-info/general-info.component.html
@@ -105,26 +105,36 @@
-
+
+
+
+
+
+
+
+
{{mainApplicantName}}
- {{pdMasterList.customer_segment_name}}
+ {{pdMasterList.customer_segment_name}}
+
+
-
{{pdMasterList.product_name}}/{{pdMasterList.subproduct_name}}
+ {{pdMasterList.fk_pd_type !='4' ?pdMasterList.product_name : pdMasterList.fi_type}} /{{pdMasterList.subproduct_name}}
close
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd2/start-pd2.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd2/start-pd2.component.ts
index 8804df978..06c43a073 100644
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd2/start-pd2.component.ts
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/start-pd/start-pd2/start-pd2.component.ts
@@ -18,6 +18,7 @@ import { FormGroupComponent } from './../forms-dynamic/form-group/form-group.com
// import { ImageCaptureComponent } from './Form-Dynamic/image-capture/image-capture.component';
import { LoaderService } from 'app/shared/loaderService/loader.service';
+import { QueriesDocsComponent } from '../forms/queries-docs/queries-docs.component';
@@ -57,6 +58,7 @@ export class StartPd2Component implements OnInit, OnDestroy {
private notifier: NotifierService;
vendor_status_arr: any = [];
photographButtons: any[];
+ fi_id: string;
constructor(notifier: NotifierService, private dialog: MatDialog, private fb: FormBuilder, private route: ActivatedRoute,
private router: Router,
@@ -66,6 +68,9 @@ export class StartPd2Component implements OnInit, OnDestroy {
// console.log(this.route.snapshot.params['pdid'],this.route.snapshot.params['rdmstr']);
this.notifier = notifier;
this.currentPDStatus = false;
+
+ this.fi_id =this.route.snapshot.params['fiid'];
+ console.log( this.fi_id)
}
ngOnInit() {
@@ -78,7 +83,7 @@ export class StartPd2Component implements OnInit, OnDestroy {
// Ps.initialize(elemSidebar, { wheelSpeed: 2, suppressScrollX: true });
// Ps.initialize(elemContent, { wheelSpeed: 2, suppressScrollX: true });
}
- this.loadTemplates(this.startPD,1,this.randomString);
+ this.loadTemplates(this.startPD,1,this.randomString,this.fi_id);
// this.getCreditPDTemplate();
@@ -112,9 +117,9 @@ export class StartPd2Component implements OnInit, OnDestroy {
// load templates details
- loadTemplates(startID:string,type:number,randomString:string){
+ loadTemplates(startID:string,type:number,randomString:string,fi_id:string){
// console.log('start pd component inside - loadTemplates params are,',startID,type,randomString);
- this._pd.loadPDTemplates2(startID,randomString).subscribe(
+ this._pd.loadPDTemplates2(startID,randomString,fi_id).subscribe(
data => {
console.log("after reponse = ", data);
console.log("after reponse = ", data.records.pdmaster_details);
@@ -190,7 +195,7 @@ export class StartPd2Component implements OnInit, OnDestroy {
.subscribe(dataresult => {
if(dataresult.update_status==true){
setTimeout(()=>{
- checkType==2 ? this.router.navigate(['../../viewpd', this.pdMasterList.parent_pd_id], {relativeTo: this.route}) : this.loadTemplates(this.startPD,2,this.randomString);
+ checkType==2 ? this.router.navigate(['../../viewpd', this.pdMasterList.parent_pd_id], {relativeTo: this.route}) : this.loadTemplates(this.startPD,2,this.randomString,this.fi_id);
let data = {
"pd_id": this.startPD,
"regenerate":0,
@@ -211,7 +216,7 @@ export class StartPd2Component implements OnInit, OnDestroy {
}
else {
- checkType==1 ? this.router.navigate(['../../viewpd', this.pdMasterList.parent_pd_id], {relativeTo: this.route}) : this.loadTemplates(this.startPD,2,this.randomString);
+ checkType==1 ? this.router.navigate(['../../viewpd', this.pdMasterList.parent_pd_id], {relativeTo: this.route}) : this.loadTemplates(this.startPD,2,this.randomString,this.fi_id);
}
if(checkType == 2){
// this.loadTemplates(this.startPD,2,this.randomString);
@@ -262,6 +267,9 @@ export class StartPd2Component implements OnInit, OnDestroy {
}else if(details.form_id == '18'){
componen_name = GeneralInfoComponent
data = this.pdFullDetails;
+ }else if(details.form_id == '31'){
+ componen_name = QueriesDocsComponent
+ data = this.pdFullDetails;
}
const dialogRef = this.dialog.open(componen_name, {
@@ -280,7 +288,7 @@ export class StartPd2Component implements OnInit, OnDestroy {
.subscribe(dataresult => {
// this.notifier.notify('success', 'Successfully allocated.!');
// if(dataresult == 'refresh') {
- this.loadTemplates(this.startPD,2,this.randomString);
+ this.loadTemplates(this.startPD,2,this.randomString,this.fi_id);
// }
});
@@ -292,7 +300,9 @@ export class StartPd2Component implements OnInit, OnDestroy {
}
// load pd view component
loadPdViewCompoent() {
- this.router.navigate(['../../../viewpd', this.pdMasterList.parent_pd_id,this.randomString], {relativeTo: this.route});
+ this.router.navigate(["personal_discussion/pdlist/viewpd/"+this.pdMasterList.parent_pd_id+"/"+this.randomString])
+ // this.router.navigate(['../../../viewpd', this.pdMasterList.parent_pd_id,this.randomString], {relativeTo: this.route});
+ // this.router.navigate(['personal_discussion/pdlist/viewpd', this.pdMasterList.parent_pd_id,this.randomString], {relativeTo: this.route});
}
}
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts
index 3a9c38f67..7bb109229 100755
--- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts
@@ -397,8 +397,9 @@ export class ViewPdComponent implements OnInit, OnDestroy {
}
// pd allocation to
pdAllocationTo(pdData: any,childData: any) {
+
pdData.pd_id = childData.assigned_pd;
- if (pdData.fk_pd_type == 1 || pdData.fk_pd_type == 3 || pdData.fk_pd_type == 2) {
+ if (pdData.fk_pd_type == 1 || pdData.fk_pd_type == 3 || pdData.fk_pd_type == 2 || pdData.fk_pd_type == 4) {
const dialogRef = this.dialog.open(PdAllocationComponent, {
data: pdData,
position: { right: '0' },
@@ -524,12 +525,28 @@ export class ViewPdComponent implements OnInit, OnDestroy {
dialogRef.afterClosed()
.subscribe(dataresult => {
if (dataresult.update_status == true) {
- this.router.navigate(['../../../startpd',pdDetails.assigned_pd,this.masterRandomString], { relativeTo: this.route });
+ console.log(pdDetails)
+
+ if( pdDetails.addtional_pd_data[0].fk_pd_type =='4'){
+ this.router.navigate(['../../../startpd2',pdDetails.assigned_pd,this.masterRandomString], { relativeTo: this.route });
+ }else{
+ this.router.navigate(['../../../startpd',pdDetails.assigned_pd,this.masterRandomString], { relativeTo: this.route });
+ }
+
+
}
});
}
else {
- this.router.navigate(['../../../startpd', pdDetails.assigned_pd,this.masterRandomString], { relativeTo: this.route });
+ console.log(pdDetails)
+
+ if( pdDetails.addtional_pd_data[0].fk_pd_type=='4'){
+ this.router.navigate(['../../../startpd2',pdDetails.assigned_pd,this.masterRandomString
+ ], { relativeTo: this.route });
+ }else{
+ this.router.navigate(['../../../startpd',pdDetails.assigned_pd,this.masterRandomString], { relativeTo: this.route });
+ }
+ // this.router.navigate(['../../../startpd', pdDetails.assigned_pd,this.masterRandomString], { relativeTo: this.route });
}
}
getPDStart2(pdDetails: any, status: string) {
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts
index 46e1e5702..8be198314 100755
--- a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts
@@ -165,6 +165,14 @@ import {
import { CropToolsComponent } from './list-pd/start-pd/forms/dialogue/crop-tools/crop-tools.component';
import { FacialRecognitionModalComponent } from './list-pd/start-pd/forms/facial-recognition/facial-recognition-modal/facial-recognition-modal.component';
import { ImageVideoComponent } from './list-pd/view-pd/image-video/image-video.component';
+import { QuesTemplateComponent } from './list-pd/start-pd/forms-dynamic/ques-template/ques-template.component';
+import { CaptureBtnComponent } from './list-pd/start-pd/forms-dynamic/ques-template/capture-btn/capture-btn.component';
+import { SingleCaptureBtnComponent } from './list-pd/start-pd/forms-dynamic/ques-template/single-capture-btn/single-capture-btn.component';
+import { Ng2ImgMaxService } from 'ng2-img-max/dist/src/ng2-img-max.service';
+import { ImgMaxSizeService } from 'ng2-img-max/dist/src/img-max-size.service';
+import { ImgExifService } from 'ng2-img-max/dist/src/img-exif.service';
+import { ImgMaxPXSizeService } from 'ng2-img-max/dist/src/img-maxpx-size.service';
+import { Ng2ImgMaxModule } from 'ng2-img-max';
/**
* Custom angular notifier options
*/
@@ -210,8 +218,8 @@ const pdCustomNotifierOptions: NotifierOptions = {
};
@NgModule({
- declarations: [TelePdAllocationComponent, FinancialInfoComponent, BusinessInfoComponent, EmploymentInfoComponent, StockComponent, BankingDetailsComponent, ListPdComponent, FamilyDetailsComponent, AddressComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent,VendorPdAllocationComponent, DuplicatePdComponent,FacialRecognitionModalComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, CurrentLoanComponent, AssetsInfoComponent, LoanDetailsComponent, OtherIncomeComponent, SupplierInfoComponent, PersonalInfoComponent, LenderRepresentativeComponent, PdReportComponent, AssessedIncomeComponent, AllocationViewMoreComponent, PdRequirementComponent,PdCollectedDocsComponent, GeneralInfoComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent, QcReviewComponent, BusinessInfoGroupComponent, SearchRelationPipe, RupeeCurrencyFormatPipe, NumberToWordsPipe, DeleteRecordsCountPipe, BusinessAssetsInfoComponent, BusinessBankingDetailsComponent, SalesDetailsComponent, DailySalesDetailsComponent, SalesCalculationComponent, ManageSalesComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, PdLocatedMapViewDirective, ViewLocationComponent, GetAnswerableFormsPipe, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent ,ManageDailyPurchaseComponent, DailyPurchaseDetailsComponent, ManageRentalVerificationComponent, FuturePlansAndBusinessEnvironmentComponent, ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent,QueriesDocsComponent, ImageDocsComponent,CustomTitleCaseDirective, SpeedDialFabComponent,VideoPlayerComponent,
- DynamicFormComponent,DynamicQuestionTemplateComponent, ImagesAllComponent,AnswerOptionCreateDialogComponent,FormComponent,FormGroupComponent, ImageVideoComponent],
+ declarations: [QuesTemplateComponent,TelePdAllocationComponent, FinancialInfoComponent, BusinessInfoComponent, EmploymentInfoComponent, StockComponent, BankingDetailsComponent, ListPdComponent, FamilyDetailsComponent, AddressComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent,VendorPdAllocationComponent, DuplicatePdComponent,FacialRecognitionModalComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, CurrentLoanComponent, AssetsInfoComponent, LoanDetailsComponent, OtherIncomeComponent, SupplierInfoComponent, PersonalInfoComponent, LenderRepresentativeComponent, PdReportComponent, AssessedIncomeComponent, AllocationViewMoreComponent, PdRequirementComponent,PdCollectedDocsComponent, GeneralInfoComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent, QcReviewComponent, BusinessInfoGroupComponent, SearchRelationPipe, RupeeCurrencyFormatPipe, NumberToWordsPipe, DeleteRecordsCountPipe, BusinessAssetsInfoComponent, BusinessBankingDetailsComponent, SalesDetailsComponent, DailySalesDetailsComponent, SalesCalculationComponent, ManageSalesComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, PdLocatedMapViewDirective, ViewLocationComponent, GetAnswerableFormsPipe, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent ,ManageDailyPurchaseComponent, DailyPurchaseDetailsComponent, ManageRentalVerificationComponent, FuturePlansAndBusinessEnvironmentComponent, ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent,QueriesDocsComponent, ImageDocsComponent,CustomTitleCaseDirective, SpeedDialFabComponent,VideoPlayerComponent,
+ DynamicFormComponent,DynamicQuestionTemplateComponent, ImagesAllComponent,AnswerOptionCreateDialogComponent,FormComponent,FormGroupComponent, ImageVideoComponent,CaptureBtnComponent, SingleCaptureBtnComponent,],
imports: [
CommonModule,
ManagePdRoutingModule,
@@ -239,7 +247,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
MatSelectModule, MatListModule,MatGridListModule, MatTabsModule, MatBadgeModule, MatCheckboxModule,MatStepperModule,MatSidenavModule ,MatMenuModule, MatButtonToggleModule,
ReactiveFormsModule,
MatBottomSheetModule,
-
+ Ng2ImgMaxModule ,
MatDividerModule,
MatNativeDateModule,
@@ -262,7 +270,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
MatVideoModule
],
- exports: [FacialRecognitionModalComponent,DuplicatePdComponent,VendorPdAllocationComponent,PdLocatedMapViewDirective, PdAllocationComponent, SmartPdAllocationComponent, TelePdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, SupplierInfoComponent, PersonalInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent, AssessedIncomeComponent, AllocationViewMoreComponent, GeneralInfoComponent, PdRequirementComponent,PdCollectedDocsComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, BusinessOtherFamilyMemberComponent, BusinessInfoGroupComponent,DailySalesDetailsComponent, SalesCalculationComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManageSalesComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, ViewLocationComponent, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent, DailyPurchaseDetailsComponent, ManageDailyPurchaseComponent,ManageRentalVerificationComponent,ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent],
+ exports: [FacialRecognitionModalComponent,DuplicatePdComponent,VendorPdAllocationComponent,PdLocatedMapViewDirective, PdAllocationComponent, SmartPdAllocationComponent, TelePdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent,StartPd2Component, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, SupplierInfoComponent, PersonalInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent, AssessedIncomeComponent, AllocationViewMoreComponent, GeneralInfoComponent, PdRequirementComponent,PdCollectedDocsComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, BusinessOtherFamilyMemberComponent, BusinessInfoGroupComponent,DailySalesDetailsComponent, SalesCalculationComponent, PurchaseDetailsComponent, BusinessExpenseDetailsComponent, HouseHoldDetailsComponent, OtherBusinessIncomeDetailsComponent, ManageSalesComponent, ManagePurchaseComponent, ManageBusinesExpenseComponent, ManageHouseHoldComponent, ManageOtherBusinessIncomeComponent, GrossProfitCalculationComponent, ManageDailySalesComponent, PdStatusChangeDialogueComponent, ViewLocationComponent, ConfirmAiDetailsComponent, RentalVerificationComponent, InitiateAdditionalPdComponent, DailyPurchaseDetailsComponent, ManageDailyPurchaseComponent,ManageRentalVerificationComponent,ImageCropComponent,CropToolsComponent,PurchaseCalculationComponent,CaptureBtnComponent, SingleCaptureBtnComponent,],
providers: [PdTrigerService, GetGeometricLocationService,{provide: MAT_DATE_LOCALE, useValue: 'en-GB'},
{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},
{provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}, PdLocatedMapViewDirective,QuesFormService],
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts
index 87dd51206..8b5945d7f 100755
--- a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts
+++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts
@@ -36,6 +36,10 @@ const routes: Routes = [
path: 'viewpd/:pdid/:rdmstr',
component: ViewPdComponent,
},
+ {
+ path: 'viewpd/:pdid/:rdmstr/:fiid',
+ component: ViewPdComponent,
+ },
{
path: 'startpd/:pdid/:rdmstr',
component: StartPdComponent,
@@ -44,6 +48,10 @@ const routes: Routes = [
path: 'startpd2/:pdid/:rdmstr',
component: StartPd2Component,
},
+ {
+ path: 'startpd2/:pdid/:rdmstr/:fiid',
+ component: StartPd2Component,
+ },
{
path: 'pd_report/:pdid/:rdmstr',
component: PdReportComponent,
diff --git a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts
index 9b5729385..0ba628a5d 100755
--- a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts
+++ b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts
@@ -415,10 +415,11 @@ export class PdTrigerService {
catchError(this.handleError('operation', []))
)
}
- loadPDTemplates2(pdId: string,randomString): Observable {
+ loadPDTemplates2(pdId: string,randomString,fi_id): Observable {
let httpParams = new HttpParams().set('pd_id', pdId);
httpParams = httpParams.append('random_string',randomString);
+ // httpParams = httpParams.append('fi_id',fi_id);
// console.log('loadFullTemplate api load httpParams are',httpParams);
const options = pdId ? { params: httpParams } : {};
console.log(options)
@@ -1130,12 +1131,19 @@ export class PdTrigerService {
return this._http.post(this.apiUrl+'saveNewSMCTempAddresses',params)
}
getPDSectionData(pd_id,pd_form_id,form_group) {
+ console.log(pd_id.fk_pd_type)
+ if(pd_form_id != '34'){
+
+
+
if(form_group == 1){
return this._http.post(this.apiUrl+'getPDFormDetails',{ "pd_id":pd_id,"pd_form_id":pd_form_id,"company_id":1})
}else{
return this._http.post(this.apiUrl+'getPDFormDetails',{ "pd_id":pd_id.pd_id,"pd_form_id":pd_form_id,parent_pdid:pd_id.parent_pd_id})
}
-
+ }else{
+ return this._http.get(this.apiUrl+'getFIPDImgDetails?pd_id='+pd_id.pd_id)
+ }
}
@@ -1150,7 +1158,7 @@ export class PdTrigerService {
return this._http.get(this.apiUrl+'getPDFormDetails',params)
}
- loadCreditPDTemplate2(form_id,mapid,Formname,template_id):Observable {
+ loadCreditPDTemplate2(form_id,mapid,fi_fk_pd_type,template_id):Observable {
//return this._http.get(this.apiUrl + "formWiseJSONTemplateV2?form_id=5&map_id=7").map(result)
@@ -1176,12 +1184,22 @@ export class PdTrigerService {
return apivalue
})
}else{
- return this._http.get(this.apiUrl + "formWiseJSONTemplateV2?form_id="+form_id+"&map_id="+mapid+"").map(result=>{
- console.log(result)
- let apivalue ={dataStatus:true,status:200,records:{template:JSON.stringify(result)}}
- console.log(apivalue)
- return apivalue
- })
+ if(fi_fk_pd_type == '4'){
+ return this._http.get(this.apiUrl + "FIformWiseTemplate?form_id="+form_id+"").map(result=>{
+ console.log(result)
+ let apivalue ={dataStatus:true,status:200,records:{template:JSON.stringify(result)}}
+ console.log(apivalue)
+ return apivalue
+ })
+ }else{
+ return this._http.get(this.apiUrl + "formWiseJSONTemplateV2?form_id="+form_id+"&map_id="+mapid+"").map(result=>{
+ console.log(result)
+ let apivalue ={dataStatus:true,status:200,records:{template:JSON.stringify(result)}}
+ console.log(apivalue)
+ return apivalue
+ })
+ }
+
}
// }
diff --git a/ng6-seed/src/assets/data/SMC_CREDIT_TEMPLATES/DONE/6.json b/ng6-seed/src/assets/data/SMC_CREDIT_TEMPLATES/DONE/6.json
index 456727fcc..53473f34e 100644
--- a/ng6-seed/src/assets/data/SMC_CREDIT_TEMPLATES/DONE/6.json
+++ b/ng6-seed/src/assets/data/SMC_CREDIT_TEMPLATES/DONE/6.json
@@ -1,736 +1,790 @@
{
- "section_id":"6",
- "section_name":"Banking Details",
+ "section_id":"3",
+ "section_name":"Office Visit Information",
"onsubmit":[
],
- "questions":[ {
- "question":"Is the Personal Banking Information Available",
- "question_key":"Is_the_Personal_Banking_Information_Available",
- "type":"3",
- "sub_title":"Personal Banking Details",
- "field_width":"65",
- "api_properties":null,
- "answers":[
- {
- "answer_id":"Yes",
- "answer":"Yes"
- },
- {
- "answer_id":"No",
- "answer":"No"
- }
- ],
- "onchange_properties":[
- {
+ "questions":[
+ {
+ "question": "Employer Brief",
+ "question_key": "employer_brief",
+ "type": "1",
+ "disable":false,
+ "field_width": "45",
+ "answers": null,
+ "api_properties": null,
+ "onchange_properties": null,
+ "is_repeatable": null,
+ "validations": [
+ {
+ "name": "required",
+ "isactive": "1",
+ "validator": "Validators.required",
+ "message": "Field Required",
+ "value": null
+ }
+ ]
+ } , {
+ "question": "Salary confirmed by Person met ?",
+ "question_key": "salary_confirmed_by_person_met",
+ "type": "3",
+ "disable":false,
+ "field_width": "45",
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
+ },
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "api_properties": null,
+ "onchange_properties": [{
"purpose":"FORM_CTRL",
"form_controls":[
{
- "insert_index":"Is_the_Personal_Banking_Information_Available",
- "expression":"(String('Is_the_Personal_Banking_Information_Available') == String('Yes'))",
+ "insert_index":"salary_confirmed_by_person_met",
+ "expression":"(String('salary_confirmed_by_person_met') == String('Yes'))",
"value_keys":[
- "Is_the_Personal_Banking_Information_Available"
+ "salary_confirmed_by_person_met"
],
"questions":[
- {
- "question":[
- {
- "question_key":"Account_Holder_Name",
- "question":"Account Holder's Name",
- "place_holder":"Enter the text",
- "type":"4",
- "api_properties":
- {
- "purpose":"answer_options_local",
- "master_name":"pd_applicants",
- "fields":["pd_co_applicant_id","applicant_name"]
- },
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"30",
- "validations":[
- ]
- },{
- "question_key":"Banking_name",
- "question":"Banking Name",
- "place_holder":"Enter the text",
- "type":"8",
- "api_properties":{
- "api":"getListOfMaster",
- "api_method":"POST",
- "params":{
- "master_name":"BTLENDERLIST"
- },
- "fields":[
- "bt_lender_list_id",
- "lender_name"
- ]
- },
- "answers":null,
- "onchange_properties":[{
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"Banking_name",
- "expression":"(String('Banking_name') == String('1'))",
- "value_keys":[
- "Banking_name"
- ],
- "questions":[
- {
- "question":"Salary Credited in this account",
- "question_key":"Salary_Credited_in_this_account",
- "type":"1",
- "field_width":"30",
- "api_properties":null,
- "parent_question_key":"Banking_name",
- "answers":[
- {
- "answer_id":"YES",
- "answer":"YES"
- },
- {
- "answer_id":"NO",
- "answer":"NO"
- }, {
- "answer_id":"NA",
- "answer":"NA"
- }
-
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
- }]
-
-
-
- }],
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"30",
- "validations":[
- ]
- }, {
- "question":"Account Type",
- "question_key":"Is_the_Personal_Banking_Information_Available",
- "place_holder":"Enter text",
- "type":"3",
- "field_width":"30",
- "api_properties":{
- "api":"getListOfMaster",
- "api_method":"POST",
- "params":{
- "master_name":"ACCOUNTTYPE"
- },
- "fields":[
- "id",
- "name"
- ]
- },
- "answers": null,
- "onchange_properties":[
- {
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"Is_the_Personal_Banking_Information_Available",
- "expression":"(String('Is_the_Personal_Banking_Information_Available') == String('4'))",
- "value_keys":[
- "Is_the_Personal_Banking_Information_Available"
- ],
- "questions":[
- {
- "question":"Limit in case of OD / CC account",
- "question_key":"Limit_in_case_of_OD_CC_account",
- "type":"1",
- "field_type":"numtoword",
- "field_width":"45",
- "api_properties":null,
- "parent_question_key":"loan_type",
- "answers":[
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
- }]
-
-
-
- }, {
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"Is_the_Personal_Banking_Information_Available",
- "expression":"(String('Is_the_Personal_Banking_Information_Available') == String('3'))",
- "value_keys":[
- "Is_the_Personal_Banking_Information_Available"
- ],
- "questions":[
- {
- "question":"Limit in case of OD / CC account",
- "question_key":"limit_in_case_of_OD_CC_account",
- "type":"1",
- "field_width":"45",
- "field_type":"numtoword",
- "api_properties":null,
- "parent_question_key":"loan_type",
- "answers":[
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
- }]
-
-
-
- }],
- "is_repeatable":null,
- "field_type":"string",
- "validations":[
- {
- "name":"required",
- "isactive":"1",
- "validator":"Validators.required",
- "message":"Personal Banking Information Required",
- "value":null
- }
- ]
- }, {
- "question_key":null,
- "question":null,
- "place_holder":"Enter the text",
- "type":null,
- "api_properties":null,
- "sub_title":"Number of Years / Months since account was started",
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"100",
- "validations":[
- ]
- }, {
- "question_key":"year",
- "question":"Year",
- "place_holder":"Enter the text",
- "type":"1",
- "api_properties":null,
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"25",
- "validations":[
- ]
- }, {
- "question_key":"month",
- "question":"Month",
- "place_holder":"Enter the text",
- "type":"1",
- "api_properties":null,
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"25",
- "validations":[
- ]
- },
- {
- "question":"Is this same AC used for?",
- "question_key":"Is_this_same_AC_used_for",
- "place_holder":"Enter the text",
- "type":"3",
- "api_properties":null,
- "answers":[
- {
- "answer_id":"Personal",
- "answer":"Personal"
- },
- {
- "answer_id":"Business",
- "answer":"Business"
- },
- {
- "answer_id":"Both",
- "answer":"Both"
- }
- ],
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"25",
- "validations":[
- ]
- }
- ],
- "is_repeatable":"1",
- "group_title":"Personal Banking Details",
- "group_key":"Personal_Banking_Details",
- "form_name":"Personal Banking Details"
- }
- ]
- }]
-
-}],
- "is_repeatable":null,
- "validations":[
-
- ]
- }, {
- "question":"Is the Business Information Available",
- "question_key":"Is_the_Business_Information_Available",
- "type":"3",
- "sub_title":"Business Details",
- "field_width":"65",
- "api_properties":null,
- "answers":[
- {
- "answer_id":"Yes",
- "answer":"Yes"
- },
- {
- "answer_id":"No",
- "answer":"No"
- }
- ],
- "onchange_properties":[
- {
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"Is_the_Business_Information_Available",
- "expression":"(String('Is_the_Business_Information_Available') == String('Yes'))",
- "value_keys":[
- "Is_the_Business_Information_Available"
- ],
- "questions":[
{
- "question":[
- {
- "question_key":"Account_Holder_name",
- "question":"Account Holder's Name",
- "place_holder":"Enter the text",
- "type":"4",
- "api_properties":
- {
- "purpose":"answer_options_local",
- "master_name":"pd_applicants",
- "fields":["pd_co_applicant_id","applicant_name"]
- },
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"30",
- "validations":[
- ]
- },{
- "question_key":"banking_name",
- "question":"Banking Name",
- "place_holder":"Enter the text",
- "type":"8",
- "api_properties":{
- "api":"getListOfMaster",
- "api_method":"POST",
- "params":{
- "master_name":"BTLENDERLIST"
- },
- "fields":[
- "bt_lender_list_id",
- "lender_name"
- ]
- },
- "answers":null,
- "onchange_properties":[{
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"banking_name",
- "expression":"(String('banking_name') == String('1'))",
- "value_keys":[
- "banking_name"
- ],
- "questions":[
- {
- "question":"Salary Credited in this account",
- "question_key":"salary_Credited_in_this_account",
- "type":"1",
- "field_width":"30",
- "api_properties":null,
- "parent_question_key":"banking_name",
- "answers":[
- {
- "answer_id":"YES",
- "answer":"YES"
- },
- {
- "answer_id":"NO",
- "answer":"NO"
- }, {
- "answer_id":"NA",
- "answer":"NA"
- }
-
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
- }]
-
-
-
- }],
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"30",
- "validations":[
- ]
- }, {
- "question":"Account Type",
- "question_key":"Account_Type",
- "place_holder":"Enter text",
- "type":"3",
- "field_width":"30",
- "api_properties":null,
- "answers":[
- {
- "answer_id":"CC",
- "answer":"CC"
- },
- {
- "answer_id":"Current",
- "answer":"Current"
- },
- {
- "answer_id":"OD",
- "answer":"OD"
- },
- {
- "answer_id":"Savings",
- "answer":"Savings"
- }
- ],
- "onchange_properties":[
- {
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"Account_Type",
- "expression":"(String('Account_Type') == String('4'))",
- "value_keys":[
- "Account_Type"
- ],
- "questions":[
-
- {
- "question":"Limit in case of OD / CC account",
- "question_key":"Limit_in_case_of_OD_CC_account",
- "type": "1",
- "field_width": "45",
- "field_type":"numtoword",
- "api_properties": null,
- "parent_question_key":"loan_type",
- "answers":[
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }, {
- "question":"Is the main business account",
- "question_key":"Is_the_main_business_account",
- "type":"3",
- "field_width":"45",
- "api_properties":null,
- "parent_question_key":"loan_type",
- "answers":[
- {
- "answer_id":"YES",
- "answer":"YES"
- },
- {
- "answer_id":"NO",
- "answer":"NO"
- }
-
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
- }]
-
+ "question":"Gross Monthly Salary",
+ "question_key":"gross_monthly_salary",
+ "place_holder":"Gross Monthly Salary",
+ "field_type":"numtoword",
+ "type":"1",
+ "field_width":"45",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_confirmed_by_person_met",
+ "answers":null,
+ "validations":[
+ ]
-
- }, {
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"Account_Type",
- "expression":"(String('Account_Type') == String('3'))",
- "value_keys":[
- "Account_Type"
- ],
- "questions":[
- {
- "question":"Limit in case of OD / CC account",
- "question_key":"limit_in_case_of_OD_CC_account",
- "type":"1",
- "field_width":"45",
- "api_properties":null,
- "parent_question_key":"loan_type",
- "answers":[
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }, {
- "question":"Is the main business account",
- "question_key":"is_the_main_business_account",
- "type":"3",
- "field_width":"45",
- "api_properties":null,
- "parent_question_key":"loan_type",
- "answers":[
- {
- "answer_id":"YES",
- "answer":"YES"
- },
- {
- "answer_id":"NO",
- "answer":"NO"
- }
-
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
- }]
-
-
-
- }, {
+ }, {
+ "question":"Net Monthly Salary",
+ "question_key":"net_monthly_salary",
+ "place_holder":"Net Monthly Salary",
+ "field_type":"numtoword",
+ "type":"1",
+ "field_width":"45",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_confirmed_by_person_met",
+ "answers":null,
+ "validations":[
+ ]
+
+ }]
+ }]
+}, {
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"salary_confirmed_by_person_met",
+ "expression":"(String('salary_confirmed_by_person_met') == String('No'))",
+ "value_keys":[
+ "salary_confirmed_by_person_met"
+ ],
+ "questions":[
+
+ {
+ "question":"why salary amount was not confirmed?",
+ "question_key":"why_salary_amount_was_not_confirmed",
+ "place_holder":"why salary amount was not confirmed?",
+ "field_type":"text",
+ "type":"1",
+ "field_width":"45",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_confirmed_by_person_met",
+ "answers":null,
+ "validations":[
+ ]
+
+ } ]
+ }]
+}],
+ "is_repeatable": null,
+ "validations": [
+ {
+ "name": "required",
+ "isactive": "1",
+ "validator": "Validators.required",
+ "message": "Field Required",
+ "value": null
+ }
+ ]
+ }, {
+ "question": "Since how long working with this employer?",
+ "question_key": "since_how_long_working_with_this_employer?",
+ "field_type":"null",
+ "sub_title":"Since how long working with this employer?",
+ "disable":false,
+ "field_width": "100",
+ "answers": null,
+ "api_properties": null,
+ "onchange_properties": null,
+ "is_repeatable": null,
+ "validations": []
+ },
+ {
+ "question": "Year*",
+ "question_key": "year",
+ "type": "1",
+ "field_type":"num",
+
+ "disable":false,
+ "field_width": "25",
+ "answers": null,
+ "api_properties": null,
+ "onchange_properties": null,
+ "is_repeatable": null,
+ "validations": [
+ {
+ "name": "required",
+ "isactive": "1",
+ "validator": "Validators.required",
+ "message": "Field Required",
+ "value": null
+ }
+ ]
+ },
+ {
+ "question": "Month",
+ "question_key": "month",
+ "type": "1",
+ "disable":false,
+ "field_type":"num",
+ "field_width": "25",
+ "answers": null,
+ "api_properties": null,
+ "onchange_properties": null,
+ "is_repeatable": null,
+ "validations": [
+ {
+ "name": "required",
+ "isactive": "1",
+ "validator": "Validators.required",
+ "message": "Field Required",
+ "value": null
+ }
+ ]
+ }, {
+ "question":"Mode of Getting Salary?",
+ "question_key":"mode_of_getting_salary",
+ "type":"3",
+ "field_width":"45",
+ "api_properties":null,
+ "answers":[
+ {
+ "answer_id":"Bank Transfer",
+ "answer":"Bank Transfer"
+ },
+ {
+ "answer_id":"Paid in Cash ",
+ "answer":"Paid in Cash "
+ }, {
+ "answer_id":"Both Bank Transfer & Cash ",
+ "answer":"Both Bank Transfer & Cash "
+ }
+ ],
+ "onchange_properties": [],
+ "is_repeatable":null,
+ "validations":[
+
+ ]
+ }, {
+ "question":"Salary Register was seen ?",
+ "question_key":"salary_register_was_seen",
+ "sub_title":"Documents Sighted",
+ "type":"2",
+ "field_width":"100",
+ "api_properties":null,
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
+ },
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "onchange_properties": [ {
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"salary_register_was_seen",
+ "expression":"(String('salary_register_was_seen') == String('No'))",
+ "value_keys":[
+ "salary_register_was_seen"
+ ],
+ "questions":[
+
+ {
+ "question":"Why documents are not available?",
+ "question_key":"Why_documents_are_not_available",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"4",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":[{
"purpose":"FORM_CTRL",
"form_controls":[
{
- "insert_index":"Account_Type",
- "expression":"(String('Account_Type') == String('2'))",
+ "insert_index":"Why_documents_are_not_available",
+ "expression":"(String('Why_documents_are_not_available').includes('Others_please_specify'))",
"value_keys":[
- "Account_Type"
+ "Why_documents_are_not_available"
],
"questions":[
- {
- "question":"Is the main business account",
- "question_key":"is_the_main_Business_account",
- "type":"3",
- "field_width":"45",
- "api_properties":null,
- "parent_question_key":"loan_type",
- "answers":[
- {
- "answer_id":"YES",
- "answer":"YES"
- },
- {
- "answer_id":"NO",
- "answer":"NO"
- }
-
-
- ],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
+
+ {
+ "question":"Others ",
+ "question_key":"Others_please_specify_Why_documents_are_not_available",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"1",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"cash_voucher_was_seen",
+ "answers":null,
+ "validations":[
+ ]
+
+ } ]
}]
-
+ }],
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_register_was_seen",
+ "answers":[ {
+ "answer_id":"Documents_were_not_shared_by_Employer",
+ "answer":"Documents were not shared by Employer"
+ },
+ {
+ "answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
+ "answer":"Documents are not issued by Employer to Employee"
+ } , {
+ "answer_id":"Documents_were_not_available",
+ "answer":"Documents were not available"
+ } , {
+ "answer_id":"Employer_was_not_available",
+ "answer":"Employer was not available"
+ } , {
+ "answer_id":"Others_please_specify",
+ "answer":"Others please specify"
+ } ],
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "validations":[
+
+ ]
+ }, {
+ "question":"Cash voucher was seen ?",
+ "question_key":"cash_voucher_was_seen",
-
- },{
- "purpose":"FORM_CTRL",
- "form_controls":[
- {
- "insert_index":"Account_Type",
- "expression":"(String('Account_Type') == String('1'))",
- "value_keys":[
- "Account_Type"
- ],
- "questions":[
- {
- "question":"Is the main business account",
- "question_key":"is_the_main_Business_Account",
- "type":"3",
- "field_width":"45",
- "api_properties":null,
- "parent_question_key":"loan_type",
- "answers":[
- {
- "answer_id":"YES",
- "answer":"YES"
- },
- {
- "answer_id":"NO",
- "answer":"NO"
- }
-
-
+ "type":"2",
+ "field_width":"100",
+ "api_properties":null,
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
+ },
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "onchange_properties": [ {
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"cash_voucher_was_seen",
+ "expression":"(String('cash_voucher_was_seen') == String('No'))",
+ "value_keys":[
+ "cash_voucher_was_seen"
+ ],
+ "questions":[
+
+ {
+ "question":"Why documents are not available?",
+ "question_key":"Why_documents_are_not_available_cash_voucher",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"4",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":[{
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"Why_documents_are_not_available_cash_voucher",
+ "expression":"(String('Why_documents_are_not_available_cash_voucher').includes('Others_please_specify'))",
+ "value_keys":[
+ "Why_documents_are_not_available_cash_voucher"
],
- "onchange_properties": [],
- "is_repeatable":null,
- "validations":[
-
- ]
- }]
- }]
-
-
-
- }],
- "is_repeatable":null,
- "field_type":"string",
- "validations":[
- {
- "name":"required",
- "isactive":"1",
- "validator":"Validators.required",
- "message":"Business Details Required",
- "value":null
- }
- ]
- }, {
- "question_key":null,
- "question":null,
- "place_holder":"Enter the text",
- "type":null,
- "api_properties":null,
- "sub_title":"Number of Years / Months since account was started",
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"100",
- "validations":[
- ]
- }, {
- "question_key":"year",
- "question":"Year",
- "place_holder":"Enter the text",
- "type":"1",
- "api_properties":null,
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"25",
- "validations":[
- ]
- }, {
- "question_key":"month",
- "question":"Month",
- "place_holder":"Enter the text",
- "type":"1",
- "api_properties":null,
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"25",
- "validations":[
- ]
- }
-
- ],
- "is_repeatable":"1",
- "group_title":"Business Details",
- "group_key":"Business_Details",
- "form_name":"Business Details"
- }
- ]
- }]
+ "questions":[
+
+ {
+ "question":"Others ",
+ "question_key":"Others_please_specify_Why_documents_are_not_available_cash_voucher",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"1",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"cash_voucher_was_seen",
+ "answers":null,
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"cash_voucher_was_seen",
+ "answers":[ {
+ "answer_id":"Documents_were_not_shared_by_Employer",
+ "answer":"Documents were not shared by Employer"
+ },
+ {
+ "answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
+ "answer":"Documents are not issued by Employer to Employee"
+ } , {
+ "answer_id":"Documents_were_not_available",
+ "answer":"Documents were not available"
+ } , {
+ "answer_id":"Employer_was_not_available",
+ "answer":"Employer was not available"
+ } , {
+ "answer_id":"Others_please_specify",
+ "answer":"Others please specify"
+ } ],
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "validations":[
+
+ ]
+ }, {
+ "question":"Salary Slip was seen ?",
+ "question_key":"salary_slip_was_seen",
+
+ "type":"2",
+ "field_width":"100",
+ "api_properties":null,
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
+ },
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "onchange_properties": [ {
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"salary_slip_was_seen",
+ "expression":"(String('salary_slip_was_seen') == String('No'))",
+ "value_keys":[
+ "salary_slip_was_seen"
+ ],
+ "questions":[
+
+ {
+ "question":"Why documents are not available?",
+ "question_key":"Why_documents_are_not_available_salary_slip",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"4",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":[{
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"Why_documents_are_not_available_salary_slip",
+ "expression":"(String('Why_documents_are_not_available_salary_slip').includes('Others_please_specify'))",
+ "value_keys":[
+ "Why_documents_are_not_available_salary_slip"
+ ],
+ "questions":[
+
+ {
+ "question":"Others ",
+ "question_key":"Others_please_specify_Why_documents_are_not_available_salary_slip",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"1",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_slip_was_seen",
+ "answers":null,
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_slip_was_seen",
+ "answers":[ {
+ "answer_id":"Documents_were_not_shared_by_Employer",
+ "answer":"Documents were not shared by Employer"
+ },
+ {
+ "answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
+ "answer":"Documents are not issued by Employer to Employee"
+ } , {
+ "answer_id":"Documents_were_not_available",
+ "answer":"Documents were not available"
+ } , {
+ "answer_id":"Employer_was_not_available",
+ "answer":"Employer was not available"
+ } , {
+ "answer_id":"Others_please_specify",
+ "answer":"Others please specify"
+ } ],
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "validations":[
+
+ ]
+ }, {
+ "question":"Offer Letter was seen ?",
+ "question_key":"offer_letter_was_seen",
+
+ "type":"2",
+ "field_width":"100",
+ "api_properties":null,
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
+ },
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "onchange_properties": [ {
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"offer_letter_was_seen",
+ "expression":"(String('offer_letter_was_seen') == String('No'))",
+ "value_keys":[
+ "offer_letter_was_seen"
+ ],
+ "questions":[
+
+ {
+ "question":"Why documents are not available?",
+ "question_key":"Why_documents_are_not_available_offer_letter",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"4",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":[{
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"Why_documents_are_not_available_offer_letter",
+ "expression":"(String('Why_documents_are_not_available_offer_letter').includes('Others_please_specify'))",
+ "value_keys":[
+ "Why_documents_are_not_available_offer_letter"
+ ],
+ "questions":[
+
+ {
+ "question":"Others ",
+ "question_key":"Others_please_specify_Why_documents_are_not_available_offer_letter",
+ "place_holder":"Why documents are not available",
+ "field_type":"text",
+ "type":"1",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"offer_letter_was_seen",
+ "answers":null,
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"offer_letter_was_seen",
+ "answers":[ {
+ "answer_id":"Documents_were_not_shared_by_Employer",
+ "answer":"Documents were not shared by Employer"
+ },
+ {
+ "answer_id":"Documents_are_not_issued_by_Employer_to_Employee",
+ "answer":"Documents are not issued by Employer to Employee"
+ } , {
+ "answer_id":"Documents_were_not_available",
+ "answer":"Documents were not available"
+ } , {
+ "answer_id":"Employer_was_not_available",
+ "answer":"Employer was not available"
+ } , {
+ "answer_id":"Others_please_specify",
+ "answer":"Others please specify"
+ } ],
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "validations":[
+
+ ]
+ }, {
+ "question":"Others",
+ "question_key":"others_Please_specifys",
+
+ "type":"2",
+ "field_width":"100",
+ "api_properties":null,
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
+ },
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "onchange_properties": [ {
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"others_Please_specifys",
+ "expression":"(String('others_Please_specifys') == String('Yes'))",
+ "value_keys":[
+ "others_Please_specifys"
+ ],
+ "questions":[
+
+ {
+ "question":"Others please specify",
+ "question_key":"Others_specify",
+ "place_holder":"Others please specify",
+ "field_type":"text",
+ "type":"1",
+ "field_width":"100",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"others_Please_specifys",
+ "answers":null,
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "validations":[
+
+ ]
+ }, {
+ "question":"No. of employees sighted by PD officer during visit",
+ "question_key":"no_of_employees_sighted_by_PD_officer_during_visit",
+ "type":"1",
+ "field_type":"num",
+ "field_width":"45",
+ "api_properties":null,
+ "answers":[
-}],
- "is_repeatable":null,
- "validations":[
-
- ]
-}, {
- "question_key":"common_remarks",
- "question":"Remarks",
- "place_holder":"Enter the text",
- "type":"7",
- "api_properties":null,
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"45",
- "validations":[
- ]
- },{"answers": null,
- "api_properties": null,
- "disable": false,
- "field_width": "75",
- "is_repeatable": null,
- "onchange_properties": null,
- "question": "sample question",
- "question_key": "sample_question",
- "raw_validations": null,
- "required": true,
- "title": null,
- "type": 1,
- "validations": []
-
-
+ ],
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "validations":[
+
+ ]
+ }, {
+ "question": "Was the company name board sighted? ",
+ "question_key": "was_the_company_name_board_sighted",
+ "type": "3",
+ "disable":false,
+ "field_width": "45",
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
},
-
- {
- "question_key":"sub_question",
- "question":"sub question",
- "place_holder":"Enter the text",
- "type":"1",
- "api_properties":null,
- "answers":null,
- "onchange_properties":null,
- "is_repeatable":null,
- "field_type":"string",
- "field_width":"45",
- "validations":[
- ]
- }
-
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "api_properties": null,
+ "onchange_properties": null,
+ "is_repeatable": null,
+ "validations": [
+ {
+ "name": "required",
+ "isactive": "1",
+ "validator": "Validators.required",
+ "message": "Field Required",
+ "value": null
+ }
+ ]
+ }, {
+ "question": "Was any business activities observed during visit?",
+ "question_key": "Was_any_business_activities_observed_during_visit",
+ "type": "3",
+ "disable":false,
+ "field_width": "45",
+ "answers":[
+ {
+ "answer_id":"Yes",
+ "answer":"Yes"
+ },
+ {
+ "answer_id":"No",
+ "answer":"No"
+ }
+ ],
+ "api_properties": null,
+ "onchange_properties": [{
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"Was_any_business_activities_observed_during_visit",
+ "expression":"(String('Was_any_business_activities_observed_during_visit') == String('Yes'))",
+ "value_keys":[
+ "Was_any_business_activities_observed_during_visit"
+ ],
+ "questions":[
+
+ {
+ "question":"If Yes ,Please Choose ",
+ "question_key":"If_yes_choose_one",
+ "place_holder":"why salary amount was not confirmed?",
+ "field_type":"text",
+ "type":"4",
+ "field_width":"45",
+ "api_properties":null,
+ "onchange_properties":[{
+ "purpose":"FORM_CTRL",
+ "form_controls":[
+ {
+ "insert_index":"If_yes_choose_one",
+ "expression":"(String('If_yes_choose_one').includes('others'))",
+ "value_keys":[
+ "If_yes_choose_one"
+ ],
+ "questions":[
+
+ {
+ "question":"Others (Please specify)",
+ "question_key":"Others_Please_specify",
+ "place_holder":"Others (Please specify)",
+ "field_type":"text",
+ "type":"1",
+ "field_width":"45",
+ "api_properties":null,
+ "onchange_properties":null,
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_confirmed_by_person_met",
+ "answers":null,
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable":null,
+ "is_subfield":"1",
+ "parent_question_key":"salary_confirmed_by_person_met",
+ "answers":[
+ {
+ "answer_id":"employees_were_seen_at_the_visited_premises",
+ "answer":"Employees were seen at the visited premises"
+ },
+ {
+ "answer_id":"customers_Clients_were_seen_at_the_visited_premises",
+ "answer":"Customers/Clients were seen at the visited premises"
+ } , {
+ "answer_id":"manufacturing_activities_were_seen_at_the_visited_premises",
+ "answer":"Manufacturing activities were seen at the visited premises"
+ },
+ {
+ "answer_id":"others",
+ "answer":"Others (Please specify)"
+ }
+ ],
+ "validations":[
+ ]
+
+ } ]
+ }]
+ }],
+ "is_repeatable": null,
+ "validations": [
+ {
+ "name": "required",
+ "isactive": "1",
+ "validator": "Validators.required",
+ "message": "Field Required",
+ "value": null
+ }
+ ]
+ }
+
]
}
\ No newline at end of file
diff --git a/ng6-seed/src/assets/images/PD_watermark.png b/ng6-seed/src/assets/images/PD_watermark.png
new file mode 100644
index 000000000..a3809e879
Binary files /dev/null and b/ng6-seed/src/assets/images/PD_watermark.png differ