From 57833e346646489f85ec6a9c7fcac6d243a2f2df Mon Sep 17 00:00:00 2001 From: "venbatechnologies@gmail.com" Date: Sat, 6 Jul 2019 20:15:16 +0530 Subject: [PATCH] redo supplier stock : ps --- .sourcemaps/main.js.map | 2 +- .../pd-question-stock-info.html | 13 ++--- .../pd-question-stock-info.ts | 55 ++++++++++--------- .../pd-question-supplier-info.html | 6 +- .../pd-question-supplier-info.ts | 13 ++--- .../pd-question-current-loans.html | 19 +++++-- .../pd-question-general-info.html | 4 +- www/index.html | 3 + 8 files changed, 62 insertions(+), 53 deletions(-) diff --git a/.sourcemaps/main.js.map b/.sourcemaps/main.js.map index 8492c3a5..970e195f 100644 --- a/.sourcemaps/main.js.map +++ b/.sourcemaps/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/providers/question-category/question-category.ts","../../src/providers/constants/constants.ts","../../src/pages/pd-question-category/pd-question-category.ts","../../src/providers/storage/storage.ts","../../src/pipes/rupee-currency-format/rupee-currency-format.ts","../../src/pages/input/input.ts","../../src/pages/otp/otp.ts","../../src/pages/pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info.ts","../../src/pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash.ts","../../src/providers/database/database.ts","../../src/providers/common-provider/camera.ts","../../src/providers/common-provider/loading.ts","../../node_modules/@angular/core/esm5 lazy","../../src lazy","../../src/pages/login/login.ts","../../src/pages/pd-question/pd-question.ts","../../src/pages/pd-question/pd-question-address/pd-question-address.ts","../../src/pages/pd-question/pd-question-emp-info/pd-question-emp-info.ts","../../src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.ts","../../src/pages/pd-question/pd-question-loans/pd-question-loans.ts","../../src/pages/pd-question/pd-question-banking/pd-question-banking.ts","../../src/pages/pd-question/pd-question-family/pd-question-family.ts","../../src/pages/pd-question/pd-question-assests/pd-question-assests.ts","../../src/pages/pd-question/pd-question-other-income/pd-question-other-income.ts","../../src/pages/pd-question/pd-question-rental-info/pd-question-rental-info.ts","../../src/pages/pd-question/pd-question-personal-info/pd-question-personal-info.ts","../../src/pages/pd-question/pd-question-assessed-info/pd-question-assessed-info.ts","../../src/pages/pd-question/pd-question-assessed-sales/pd-question-assessed-sales.ts","../../src/pages/pd-question/pd-question-assessed-daily-sales/pd-question-assessed-daily-sales.ts","../../src/pages/pd-question/pd-question-assessed-purchase/pd-question-assessed-purchase.ts","../../src/pages/pd-question/pd-question-assessed-business/pd-question-assessed-business.ts","../../src/pages/pd-question/pd-question-assessed-household/pd-question-assessed-household.ts","../../src/pages/pd-question/pd-question-assessed-business-income/pd-question-assessed-business-income.ts","../../src/pages/pd-question/pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase.ts","../../src/pages/pd-question/pd-question-assessed-summary/pd-question-assessed-summary.ts","../../src/pages/pd-question/pd-question-assessed-images/pd-question-assessed-images.ts","../../src/pages/pd-question/pd-question-lender-representative/pd-question-lender-representative.ts","../../src/pages/pd-question/pd-question-general-info/pd-question-general-info.ts","../../src/pages/pd-question/pd-question-general-info/pd-question-general-other-applicant/pd-question-general-other-applicant.ts","../../src/pipes/search-relation/search-relation.ts","../../src/pages/pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood.ts","../../src/pages/pd-question/pd-question-final-remark/pd-question-final-remark.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-group.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment.ts","../../src/pages/form-complete-check-modal/form-complete-check-modal.ts","../../src/pages/pd-general-images/pd-general-images.ts","../../src/pages/input/bounced-reject/bounced-reject.ts","../../src/pages/map-address/map-address.ts","../../src/pages/password/password.ts","../../src/pages/auth/auth.ts","../../src/pages/complete-list/complete-list.ts","../../src/app/main.ts","../../src/app/app.module.ts","../../src/app/app.component.ts","../../src/providers/aws-service/cognito.service.ts","../../src/providers/_guard/auth.guard.ts","../../src/providers/_guard/token.interceptor.ts","../../src/pages/googleplaytab/googleplaytab.ts","../../src/pages/pd-allocation/pd-allocation.ts","../../src/providers/common-provider/toast.ts","../../src/pipes/pd/pd.ts","../../src/pages/pd-question/pd-question-salary-info/pd-question-salary-info.ts","../../src/app/modalanimations/enter.ts","../../src/app/modalanimations/leave.ts","../../src/providers/pdtrigger/pdtrigger.ts","../../src/pages/pd-list/pd-list.ts","../../src/providers/aws-service/aws-service.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ConstantsProvider } from '../constants/constants';\nimport { Observable } from 'rxjs';\nimport {CacheService} from 'ionic-cache'\n\n/*\n Generated class for the QuestionCategoryProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class QuestionCategoryProvider {\napiurl:any;\n constructor(public http: HttpClient,public constant:ConstantsProvider,private cache:CacheService) {\n console.log('Hello QuestionCategoryProvider Provider');\n this.apiurl = constant.apiurl();\n }\n \n \n getLoadTemplate(pdid)\n {\n return this.http.get(this.apiurl+'loadFullTemplate?pd_id='+pdid);\n }\n saveQusetion(saveData)\n {\n let records = {'records':[saveData]};\n return this.http.post(this.apiurl+'savePDQuestions',records);\n }\n\n \n getAnswerTemplate(qustDetails)\n {\n return this.http.post(this.apiurl+'getAnswersForPD',qustDetails);\n }\n\n /***\n * Get PD Questions dropdown api\n * sriram\n */\n getcommondrop(tableName)\n {\n \n // return Observable.defer(()=>{\n let masters = {'master_name':tableName}\n // let cacheid=tableName\n return this.http.post(this.apiurl+'getListOfMaster',masters);\n // let data= this.http.post(this.apiurl+'getListOfMaster',masters);\n //return this.cache.loadFromDelayedObservable(cacheid,data,'we',1,'all','d')\n // })\n }\n\n saveForm(records)\n { let record = {'records':records};\n return this.http.post(this.apiurl+'savePDFormDetails',record);\n }\n\n retiverForm(records)\n {\n return this.http.post(this.apiurl+'getPDFormDetails',records);\n }\n\n /**Assessed Form Details API */\n saveassessedForms(api,saveData)\n {\n return this.http.post(this.apiurl+api,saveData);\n }\n\n retiverassessedForm(api,records)\n {\n console.log(\"rec\",records)\n return this.http.post(this.apiurl+api,records);\n }\n\n updatePdApplicant(editData: any) {\n // editData.fk_updatedby = this._aws.getlocale();\n // editData.updatedon = currentdate;\n return this.http.post(this.apiurl + \"updatePDApplicants\", {\"pd_applicant_details\": editData})\n\n \n}\n\ngetEndUseForLoan(pdid:any,subproduct){\n return this.http.post(this.apiurl+ \"getEndUseOfLoan\",{ \"records\":{ \"pd_id\" : pdid,\"sub_product_id\":subproduct}})\n}\ngetCompaniesListsForBusiness(pdid:any){\n // let cacheKey=pdid\n return this.http.post(this.apiurl+ \"getCompaniesListsForBusiness\", { \"records\":{ \"pd_id\" : pdid}})\n // return this.cache.loadFromObservable(cacheKey,data)\n}\ngetStateWiseCities(stateid:any){\n return this.http.post(this.apiurl + \"getListOfStatesAndCities\", { \"records\":{ \"state_id\" : stateid}})\n}\ngetAllPersonsName(pdid:any){\n return this.http.post(this.apiurl + \"getAllPersonsName\", {\"pd_id\" : pdid})\n \n}\ngetStateCityDetails(){\n return this.http.post(this.apiurl + \"getListOfStatesCities\",\"\")\n}\ngetAssetsWithLoanFromBusiness(pdid:any){\n return this.http.post(this.apiurl + \"getAssetsWithLoanFromBusiness\",{ \"pd_id\" : pdid})\n\n}\n\n\ngetTypeofActivityForSuppliedInfoForm(pd_id: any,company_id:any){\n return this.http.post(this.apiurl+\"getTypeOfActivetyFromBusinessForm\", {\"records\": { \"pd_id\" : pd_id,\"company_id\":company_id }});\n}\n\n/** For Stock Details \n * To Get The Products With TypeofActivity From Business \n **/\nstockFormAccess(pdid: any,companyid: any) {\n // { \"pd_id\":\"104\",\"company_id\":\"1\"}\n return this.http.post(this.apiurl + \"getProductsFromBusiness\", {\"pd_id\" : pdid ,\"company_id\":companyid });\n}\n\n\n\n/*****Save Images */\nsavePDImages(imagesDetails)\n{ \n let record = {'records':imagesDetails};\n return this.http.post(this.apiurl+'savePDPhotos',record);\n}\ngetPDImages(records){\n let record={'records':records};\n return this.http.post(this.apiurl+'getPDImages',record);\n}\ngetFamilyDetails(pdid:any){\n return this.http.post(this.apiurl+'getFamilyDetails',{\"pd_id\":pdid})\n}\ngetAddressDetails(pdid:any){\n return this.http.post(this.apiurl+'getPDAddress',{'pd_id':pdid})\n}\ngetStateCityNamesAndPincode(values:any){\n return this.http.post(this.apiurl+'getStateCityNamesAndPincode',{'records':values})\n}\n // get customers list\ngetCustomersDetails(): Observable {\n return this.http.get(this.apiurl + 'getListOfCustomerSegments')\n \n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/question-category/question-category.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {Geolocation} from '@ionic-native/geolocation'\nimport { LocationAccuracy } from '@ionic-native/location-accuracy';\n// import {C} from '../../constants'\nimport {environment as ENV} from '../../environments/environment'\n\n\n/*\n Generated class for the ConstantsProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class ConstantsProvider {\npublic commonimage = \"http://ssa.sineedge.com/sparqapi/logo/avatar.jpg\";\n constructor(public http: HttpClient,private geo:Geolocation,private locationAccuracy:LocationAccuracy) {\n console.log('Hello ConstantsProvider Provider');\n }\n\n apiurl()\n {\n let testapiurl = 'https://ssa.sineedge.com/sparqtest/api/';\n let testapiurl_beta='http://ssa.sineedge.com/sparqtest_beta/api/';\n let devapiurl_beta = 'http://ssa.sineedge.com/sparqapi_beta/api/';\n let devapiurl = 'https://ssa.sineedge.com/sparqapi/api/';\n let localapiurl = 'http://192.168.0.6:9999/AWSEC2/sparqapi/api/';\n let sparqprod= 'https://pdgenie.com/sparqprod/'\n return testapiurl;\n }\n\n getcurrentDate()\n {\n var today = new Date();\n var time = today.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds();\n var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();\n var time = today.getHours() + \":\" + today.getMinutes();\n let CurrentDate = date+\"T00:00\";\n return CurrentDate.toString();\n }\n \n convertNumberToWords(price) {\n price = price.toString();\n let atemp = price.split(\".\");\n let amount = atemp[0];\n\n var sglDigit = [\"Zero\", \"One\", \"Two\", \"Three\", \"Four\", \"Five\", \"Six\", \"Seven\", \"Eight\", \"Nine\"],\n dblDigit = [\"Ten\", \"Eleven\", \"Twelve\", \"Thirteen\", \"Fourteen\", \"Fifteen\", \"Sixteen\", \"Seventeen\", \"Eighteen\", \"Nineteen\"],\n tensPlace = [\"\", \"Ten\", \"Twenty\", \"Thirty\", \"Forty\", \"Fifty\", \"Sixty\", \"Seventy\", \"Eighty\", \"Ninety\"],\n \n handle_tens = function(dgt, prevDgt) {\n return 0 == dgt ? \"\" : \" \" + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt])\n },\n handle_utlc = function(dgt, nxtDgt, denom) {\n return (0 != dgt && 1 != nxtDgt ? \" \" + sglDigit[dgt] : \"\") + (0 != nxtDgt || dgt > 0 ? \" \" + denom : \"\")\n };\n\n var str = \"\",\n digitIdx = 0,\n digit = 0,\n nxtDigit = 0,\n words = [];\n if (amount += \"\", isNaN(parseInt(amount))) str = \"\";\n else if (parseInt(amount) > 0 && amount.length <= 10) {\n for (digitIdx = amount.length - 1; digitIdx >= 0; digitIdx--) \n switch (digit = amount[digitIdx] - 0, nxtDigit = digitIdx > 0 ? amount[digitIdx - 1] - 0 : 0, amount.length - digitIdx - 1) {\n case 0:\n words.push(handle_utlc(digit, nxtDigit, \"\"));\n break;\n case 1:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 2:\n words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != amount[digitIdx + 1] && 0 != amount[digitIdx + 2] ? \" and\" : \"\") : \"\");\n break;\n case 3:\n words.push(handle_utlc(digit, nxtDigit, \"Thousand\"));\n break;\n case 4:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 5:\n words.push(handle_utlc(digit, nxtDigit, \"Lakh\"));\n break;\n case 6:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 7:\n words.push(handle_utlc(digit, nxtDigit, \"Crore\"));\n break;\n case 8:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 9:\n words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != amount[digitIdx + 1] || 0 != amount[digitIdx + 2] ? \" and\" : \" Crore\") : \"\")\n // break; \n // case 10:\n // words.push(0 != digit ? \" \" + sglDigit[digit] + \" Lakh\" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? \" and\" : \" Hundred\" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] || 0 != price[digitIdx + 3] ? \" and\" : \" Crore\")) \n // : \"\")\n // break;\n }\n str = words.reverse().join(\"\")\n // str =(str.length > 2 && str.charAt(str.length-2)==',') ? str.slice(0, -2) : str;\n } else str = \"\";\n return str\n\n // var words = new Array();\n // words[0] = '';\n // words[1] = 'One';\n // words[2] = 'Two';\n // words[3] = 'Three';\n // words[4] = 'Four';\n // words[5] = 'Five';\n // words[6] = 'Six';\n // words[7] = 'Seven';\n // words[8] = 'Eight';\n // words[9] = 'Nine';\n // words[10] = 'Ten';\n // words[11] = 'Eleven';\n // words[12] = 'Twelve';\n // words[13] = 'Thirteen';\n // words[14] = 'Fourteen';\n // words[15] = 'Fifteen';\n // words[16] = 'Sixteen';\n // words[17] = 'Seventeen';\n // words[18] = 'Eighteen';\n // words[19] = 'Nineteen';\n // words[20] = 'Twenty';\n // words[30] = 'Thirty';\n // words[40] = 'Forty';\n // words[50] = 'Fifty';\n // words[60] = 'Sixty';\n // words[70] = 'Seventy';\n // words[80] = 'Eighty';\n // words[90] = 'Ninety';\n // amount = amount.toString();\n // var atemp = amount.split(\".\");\n // var number = atemp[0].split(\",\").join(\"\");\n // var n_length = number.length;\n // let value:any = \"\";\n // var words_string = \"\";\n // if (n_length <= 9) {\n // var n_array:any = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0);\n // var received_n_array = new Array();\n // for (var i = 0; i < n_length; i++) {\n // received_n_array[i] = number.substr(i, 1);\n // }\n // for (var i = 9 - n_length, j = 0; i < 9; i++, j++) {\n // n_array[i] = received_n_array[j];\n // }\n // for (var i = 0, j = 1; i < 9; i++, j++) {\n // if (i == 0 || i == 2 || i == 4 || i == 7) {\n // if (n_array[i] == 1) {\n // n_array[j] = 10 + parseInt(n_array[j]);\n // n_array[i] = 0;\n // }\n // }\n // }\n // value = \"\";\n // for (var i = 0; i < 9; i++) {\n // if (i == 0 || i == 2 || i == 4 || i == 7) {\n // value = n_array[i] * 10;\n // } else {\n // value = n_array[i];\n // }\n // if (value != 0) {\n // words_string += words[value] + \" \";\n // }\n // if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) {\n // words_string += \"Crores \";\n // }\n // if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) {\n // words_string += \"Lakhs \";\n // }\n // if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) {\n // words_string += \"Thousand \";\n // }\n // if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) {\n // words_string += \"Hundred and \";\n // } else if (i == 6 && value != 0) {\n // words_string += \"Hundred \";\n // }\n // }\n // words_string = words_string.split(\" \").join(\" \");\n // }\n // return words_string;\n}\n//FOR SEARCHABLE DROP DOWN\nsearchData(data,val: any,option) {\n let DataValue:any\n // let nameVal=name.toLowerCase()\n console.log(\"statedata\")\n if (!data) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n // this.filteredState.next(this.stateList.slice())\n DataValue=data.slice()\n return DataValue\n \n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n if(option == \"bank\"){\n DataValue=data.filter(res => res.lender_name.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n else if(option == \"city\"){\n console.log(\"city\",data)\n DataValue=data.filter(res=>res.city_name.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n else if(option == \"pin\"){\n DataValue=data.filter(res=>res.pincode.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n else{\n //This is suitable for state\n DataValue=data.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n // this.filteredState.next(\n // this.stateList.filter(res => res.state_name.toLowerCase().indexOf(searchVal) > -1)\n // )\n }\n sentenceCase (str) {\n if ((str===null) || (str===''))\n return '';\n else\n str = str.toString();\n \n return str.replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});\n }\n enableAccuracy()\n {\n return this.locationAccuracy.canRequest().then((canRequest: boolean) => {\n\n if(canRequest) {\n // the accuracy option will be ignored by iOS\n this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(\n () => {\n return this.getGeoTag();\n // this.getcurrentBackgroundLocation();\n },\n error => console.log('Error requesting location permissions'+JSON.stringify(error))\n );\n }\n });\n }\n getGeoTag(){\n return this.geo.getCurrentPosition().then(res=>{\n console.log(\"res from getGeoTag\",res.coords)\n console.log(\"res from provider\",new Date(res.timestamp))\n let lat=res.coords.latitude;\n let long=res.coords.longitude;\n let curr_pos=lat+\",\"+long\n return curr_pos\n }).catch(err=>console.log(\"error in getGeoTag\",err))\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/constants/constants.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,ModalController,ModalOptions, Modal } from 'ionic-angular';\nimport { GoogleplaytabPage } from '../googleplaytab/googleplaytab';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { PdQuestionPage } from '../pd-question/pd-question';\nimport Chart from 'chart.js';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { PdQuestionAddressPage } from '../pd-question/pd-question-address/pd-question-address';\nimport { PdQuestionEmpInfoPage } from '../pd-question/pd-question-emp-info/pd-question-emp-info';\nimport { PdQuestionCurrentLoansPage } from '../pd-question/pd-question-current-loans/pd-question-current-loans';\nimport { PdQuestionLoansPage } from '../pd-question/pd-question-loans/pd-question-loans';\n\nimport { PdQuestionBankingPage } from '../pd-question/pd-question-banking/pd-question-banking';\nimport { PdQuestionFamilyPage } from '../pd-question/pd-question-family/pd-question-family';\nimport { PdQuestionAssestsPage } from '../pd-question/pd-question-assests/pd-question-assests';\nimport { PdQuestionOtherIncomePage } from '../pd-question/pd-question-other-income/pd-question-other-income';\nimport { PdQuestionSupplierInfoPage } from '../pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info';\nimport { PdQuestionPersonalInfoPage } from '../pd-question/pd-question-personal-info/pd-question-personal-info';\nimport { PdQuestionStockInfoPage } from '../pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info';\nimport { PdQuestionFinancialInfoPage } from '../pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info';\nimport { PdQuestionClientInfoPage } from '../pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info';\n// import { PdQuestionRentalInfoPage } from '../pd-question/pd-question-rental-info/pd-question-rental-info';\nimport { PdQuestionAssessedInfoPage } from '../pd-question/pd-question-assessed-info/pd-question-assessed-info';\nimport { PdQuestionAssessedDashPage } from '../pd-question/pd-question-assessed-dash/pd-question-assessed-dash';\nimport { PdQuestionLenderRepresentativePage } from '../pd-question/pd-question-lender-representative/pd-question-lender-representative';\nimport { PdQuestionGeneralInfoPage } from '../pd-question/pd-question-general-info/pd-question-general-info';\nimport { PdQuestionNeighbourHoodPage } from '../pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood';\nimport { PdQuestionFinalRemarkPage } from '../pd-question/pd-question-final-remark/pd-question-final-remark';\nimport { PdQuestionBusinessGroupPage } from '../pd-question/pd-question-business-group/pd-question-business-group'\nimport {PdQuestionRentalDashPage} from '../pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash'\nimport { PdQuestionFuturePlansAndBusinessEnvironmentPage } from '../pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment'\nimport {FormCompleteCheckModalPage} from '../form-complete-check-modal/form-complete-check-modal'\nimport {ConstantsProvider} from '../../providers/constants/constants'\n\n\n/**\n * Generated class for the PdQuestionCategoryPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nconst currentdate = new Date().toJSON().slice(0,19).replace('T',' ');\n\n\n@Component({\n selector: 'page-pd-question-category',\n templateUrl: 'pd-question-category.html',\n})\nexport class PdQuestionCategoryPage {\n searchTempForm: any;\n searchQuestion: any;\n viewchange: boolean;\n templateAccess: boolean;\n bgColortempForm: any=[];\n bgColorqustCat: any=[];\n dis_forms:any;\n // @ViewChild('doughnutCanvas') doughnutCanvas;\n pdinfo: any;\nquestionList:any;\nquestionCate:any;\nquestionCateAccess:boolean = null;\nquestionfinishedList:any =[];\npddetails:any=[];\noverallqustioncountAccess:boolean = true;\ndoughnutChart: any;\ncompletedAccess:any;\nsearchitem:any;\n enableAddonPD: boolean=false;\n pageTitle:string;\n complete_btn:boolean=true;\n complete_status : boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public templateget:QuestionCategoryProvider,\n public aws:AwsServiceProvider, public shared:CognitoServiceProvider,public toast:ToastProvider,\n public pdstatusprovide:PdtriggerProvider, private modalCtrl:ModalController,private constantProvider:ConstantsProvider) {\n this.pddetails = this.navParams.get('pdDetails');\n this.pageTitle=this.pddetails.is_child != '1' ? this.pddetails.applicat_details[0].applicant_name : 'Add On for'+' '+this.pddetails.parent_pd_id\n \n let params: any={};\n params.pd_id = this.pddetails.pd_id;\n this.pdstatusprovide.getPDCompleteDetails(params).subscribe(result => {\n if (result['dataStatus'] === true) {\n this.enableAddonPD = result['records'].address_count>0 ? true: false;\n console.log(\"addon\",this.enableAddonPD);\n }\n });\n\n this.complete_status = this.pddetails.pd_status == 'COMPLETED' ? true : false;\n \n this.constantProvider.enableAccuracy().then(res=>{\n console.log(\"Accuracy from Category Provider\",res)\n })\n\n }\n\n ionViewCanEnter()\n {\n this.getcategoryList(); \n }\n // doughuntChart()\n // {\n // this.doughnutChart = new Chart(this.doughnutCanvas.nativeElement, {\n \n // type: 'doughnut',\n // data: {\n // // labels: [\"Red\", \"Blue\", \"Yellow\", \"Green\", \"Purple\", \"Orange\"],\n // datasets: [{\n // label: '# of Votes',\n // data: [12],\n // backgroundColor: [\n // // 'rgba(255, 99, 132, 0.2)',\n // 'rgba(54, 162, 235, 0.2)',\n // // 'rgba(255, 206, 86, 0.2)',\n // // 'rgba(75, 192, 192, 0.2)',\n // // 'rgba(153, 102, 255, 0.2)',\n // // 'rgba(255, 159, 64, 0.2)'\n // ],\n // hoverBackgroundColor: [\n // \"#FF6384\",\n // \"#36A2EB\",\n // \"#FFCE56\",\n // \"#FF6384\",\n // \"#36A2EB\",\n // \"#FFCE56\"\n // ]\n // }]\n // }\n\n // });\n // }\n ionViewDidLoad() {\n this.shared.refresh();\n //this.doughuntChart();\n console.log('ionViewDidLoad PdQuestionCategoryPage');\n }\n \n getcategoryList()\n {\n let j = 1;\n this.templateget.getLoadTemplate(this.pddetails.pd_id).subscribe(res=>\n {\n this.questionCate = res;\n if(this.questionCate.dataStatus == true)\n {\n \n this.questionCate = this.questionCate.records;\n this.random_ng_past(); \n this.complete_btn= this.questionCate.pdmaster_details.pd_status == \"ADD_ON_PENDING\" ? false : this.questionCate.pdmaster_details.pd_status == \"COMPLETED\" ? false :true\n // if(this.questionCate.question_answers !='' && this.questionCate.template_forms!='')\n // {\n // this.questionCateAccess = true;\n // this.templateAccess = true;\n // this.questionCate = this.questionCate;\n // this.dis_forms=this.questionCate.template_forms.filter(val=>val.isAnswerable==true );\n // this.searchQuestion = this.questionCate.question_answers;\n\n // if(this.questionCate.counts.overall_answered_count !=0 && this.questionCate.counts.overall_question_count !=0 && this.questionCate.counts.overall_answered_count == this.questionCate.counts.overall_question_count)\n // {\n // this.overallqustioncountAccess = false;\n // }else\n // {\n // this.overallqustioncountAccess = true;\n // }\n \n \n \n \n \n // }else \n if(this.questionCate.template_forms!='')\n {\n this.templateAccess = true;\n this.questionCate = this.questionCate\n this.dis_forms=this.questionCate.template_forms.filter(val=>val.isAnswerable==true );\n console.log(\"temp\",this.questionCate);\n\n this.searchTempForm = this.questionCate.template_forms\n // for(let i of this.dis_forms){\n // if(i.)\n // }\n let answered=this.dis_forms.filter(res=>res.isAnswered == true)\n console.log(\"an len\",answered);\n if(answered.length == this.dis_forms.length){\n this.overallqustioncountAccess= true;\n }\n else{\n this.overallqustioncountAccess=false\n }\n \n \n // if(this.questionCate.counts.overall_answered_count !=0 && this.questionCate.counts.overall_question_count !=0 && this.questionCate.counts.overall_answered_count == this.questionCate.counts.overall_question_count)\n // {\n // this.overallqustioncountAccess = false;\n // }else\n // {\n // this.overallqustioncountAccess = true;\n // }\n }\n else\n {\n this.questionCateAccess = false;\n this.templateAccess = false; \n this.questionCate = \"No Template Available\";\n }\n }\n })\n \n }\n random_ng_past()\n {\n for(let id of this.questionCate.question_answers){\n var a = Math.floor(Math.random() * 256);\n var b = Math.floor(Math.random() * 256);\n var c = Math.floor(Math.random() * 256);\n this.bgColorqustCat.push(\"rgb(\" + a + \",\" + b + \",\" + c + \")\");\n \n }\n for(let id of this.questionCate.template_forms){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColortempForm.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n }\n questionsTag(categroyId){\n \n this.pdinfo = this.pddetails; \n \n this.questionCate = this.questionCate.question_answers.filter(cate=>cate.fk_question_category_id == categroyId)[0];\n // if(this.questionCate.questions.length !=\"0\"){\n this.navCtrl.push(PdQuestionPage,{'questionDetails':this.questionCate,'pdDetails':this.pdinfo});\n \n // }else\n // {\n // this.getcategoryList();\n // this.toast.pdTriggerappmessage('No Question Available');\n // }\n }\n\n tempQustionTag(categroyId)\n {\n //FOR UPDATING THE PD APPLICANT LIST\n this.pdinfo = this.pddetails; \n let newData= this.questionCate.pdapplicants_detials\n console.log(\"new Data\",newData);\n this.pdinfo.applicat_details=newData\n console.log(this.pdinfo);\n\n let formName = this.questionCate.template_forms.filter(temp=>temp.form_id==categroyId)[0];\n if(categroyId ==5)\n {\n this.navCtrl.push(PdQuestionAddressPage,{'FormId':formName,'pdDetails':this.pdinfo});\n \n }else if(categroyId==12){\n this.navCtrl.push(PdQuestionEmpInfoPage,{'FormId':formName,'pdDetails':this.pdinfo});\n }else if(categroyId==10)\n {\n this.navCtrl.push(PdQuestionLoansPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==8){\n this.navCtrl.push(PdQuestionCurrentLoansPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==13)\n {\n this.navCtrl.push(PdQuestionBusinessGroupPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n \n }else if(categroyId==7)\n {\n this.navCtrl.push(PdQuestionBankingPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n\n }else if(categroyId==6)\n {\n this.navCtrl.push(PdQuestionFamilyPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId ==4){\n this.navCtrl.push(PdQuestionAssestsPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==9){\n this.navCtrl.push(PdQuestionOtherIncomePage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==1){\n this.navCtrl.push(PdQuestionSupplierInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==3){\n this.navCtrl.push(PdQuestionPersonalInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==11)\n {\n this.navCtrl.push(PdQuestionStockInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==14)\n {\n this.navCtrl.push(PdQuestionFinancialInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId ==2)\n {\n this.navCtrl.push(PdQuestionClientInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId ==17)\n {\n this.navCtrl.push(PdQuestionRentalDashPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }\n else if(categroyId==16)\n {\n this.navCtrl.push(PdQuestionAssessedDashPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==15)\n {\n this.navCtrl.push(PdQuestionLenderRepresentativePage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==18)\n {\n this.navCtrl.push(PdQuestionGeneralInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==19)\n {\n this.navCtrl.push(PdQuestionNeighbourHoodPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }\n else if(categroyId==20)\n {\n this.navCtrl.push(PdQuestionFinalRemarkPage,{'FormId':formName,'pdDetails':this.pdinfo});\n }\n }\n filter(view){\n if(!view){\n this.viewchange = true;\n }else{\n this.viewchange = false;\n }\n //alert(this.viewchange);\n }\n pdlistsearch(searchbar) {\n // this.questionCate = this.searchQuestion;\n // this.questionCate.template_forms = this.searchTempForm;\n // reset countries list with initial call\n //this.pdinprogress = this.countriesInitial;\n // set q to the value of the searchbar\n var q = searchbar.target.value;\n\n // if the value is an empty string don't filter the items\n if(this.searchQuestion !== undefined){\n if (q.trim() == '') {\n return ;\n }else{\n // this.questionCate.question_answers = this.searchQuestion.filter((v) => {\n // if (v.category_name.toLowerCase().indexOf(q.toLowerCase())>-1) {\n // return true;\n // }\n // })\n }\n }else\n {\n if (q.trim() == '') {\n return ;\n }else{\n// this.questionCate.template_forms = this.searchTempForm.filter((v) => {\n// if (v.form_name.toLowerCase().indexOf(q.toLowerCase())>-1) {\n// return true;\n// }\n// })\n }\n }\n}\nPdFormCompletnessCheck(){\n this.pdstatusprovide.pdFormsCompletenessCheck(this.questionCate.pdmaster_details.pd_id).subscribe(res=>{\n console.log(res['records']);\n if(res['records'].length > 0){\nconst modalOpt:ModalOptions={\n //component:FormCompleteCheckModalPage,\n // enterAnimation: 'modal-scale-up-enter',\n // leaveAnimation: 'modal-scale-up-leave',\n cssClass:\"pdimagecompleteModal\"\n}\nconst modal=this.modalCtrl.create(FormCompleteCheckModalPage,{'values':res['records']},modalOpt)\nmodal.present()\n }\n else{\n //alert(\"completed PD\")\n\t this.completePDAlert()\n }\n })\n}\ncompletePDAlert()\n{ \n if(!this.overallqustioncountAccess){// For checking Answered Forms\n this.toast.pdTriggerappmessage(\"Please complete all the Forms\");\n return;\n }\n if(this.enableAddonPD == true){//FOR CHECKING THE ADDRESS COUNT. IF VALUE 1 THIS BLOCK EXECUTED\n return new Promise(reject=>{\n let alert=this.toast.setAlertForCompletePD() \n alert.present();\n alert.onDidDismiss(data=>{\n if(data == 'yes'){\n \n this.completed('COMPLETED');\n }\n else if(data == 'addon'){\n this.completed('ADD_ON_PENDING')\n } \n else{\n reject();\n }\n })\n })\n}\nelse{ //IF ADDRESS COUNT 0 THIS BLOCK EXECUTED\n return new Promise(reject=>{\n let alert=this.toast.setAlert('Complete Discussion','Please confirm you are completing the Discussion and forwarding for Quality Check ?')\n alert.present()\n alert.onDidDismiss(data=>{\n if(data==false){\n reject()\n }\n else{\n this.completed('COMPLETED')\n }\n })\n })\n}\n}\n completed(status:string)\n {\n \n \n //alert.present();\n let users = this.aws.getlocale();\n if(!this.overallqustioncountAccess){// For checking Answered Forms\n this.toast.pdTriggerappmessage(\"Please complete all the Forms\");\n }\n else{\n let data = {'pd_id':this.questionCate.pdmaster_details.pd_id,'pd_status':status,'fk_updatedby':users,'updatedon':currentdate};\n \n this.pdstatusprovide.updatepdStatus(data).subscribe(res=>\n {\n this.completedAccess = res;\n if(this.completedAccess.dataStatus == true)\n {\n this.toast.pdTriggerappmessage(\"Completed Successfully..!\")\n setTimeout(()=>{\n this.navCtrl.setRoot(PdListPage);\n },2000);\n \n \n }\n })\n }\n}\n doRefresh(refresher) {\n this.questionCate = [];\n this.questionfinishedList = [];\n this.shared.refresh();\n this.getcategoryList();\n setTimeout(() => {\n refresher.complete();\n }, 2000);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question-category/pd-question-category.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {Storage} from '@ionic/storage'\nimport {ToastProvider} from '../common-provider/toast'\n\n/*\n Generated class for the StorageProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n//const storage_key='form_Datas'\n\n@Injectable()\nexport class StorageProvider {\n\n constructor(public http: HttpClient,public storage:Storage,public toast:ToastProvider) {\n console.log('Hello StorageProvider Provider');\n }\ninsertData(data){\n this.toast.pdTriggerappmessage(this.storage.driver);\n const storage_key=data.pd_id\n console.log(\"storage provider\")\n console.log(data);\n console.log(JSON.stringify(data));\n \n console.log(\"sto\",this.storage.get(storage_key))\n return this.storage.get(storage_key).then((res)=>{\n console.log(\"res\",res)\n if(res != null ){\n let option:boolean=false\n if( res.length != 0 && res.length != undefined){\n // res.forEach((value)=>{\n // if(value.form_id==data.form_id){\n // option=true\n // }\n // })\n let current=res.filter(val=>val.form_id==data.form_id)\n console.log(\"current\",current);\n if(current.length > 0){\n let value:any=[]\n value.push(data)\n return this.storage.set(storage_key,value)\n }\n}\n let old_Data:any=[]\n old_Data=res\n console.log(\"old data\",old_Data)\n old_Data.push(data)\n return this.storage.set(storage_key,old_Data)\n \n }\n else{\n //res.push(data)\n // let dataValue=Object.keys(data).map(function(key){\n // return data[key];\n // })\n let value:any=[]\n value.push(data)\n return this.storage.set(storage_key,value)\n }\n })\n \n\n\n}\nretrieveLocalStorage(data){\n const storage_key=data.pd_id\n return this.storage.get(storage_key).then(res=>{\n console.log(\"storage get\",res)\n if(res != null){\n return res.filter(val=>val.form_id==data.form_id)\n \n }\n })\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/storage/storage.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Generated class for the RupeeCurrencyFormatPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: 'rupeeCurrencyFormat',\n})\nexport class RupeeCurrencyFormatPipe implements PipeTransform {\n /**\n * Takes a value and makes it lowercase.\n */\n transform(value: any):any {\n if (!isNaN(value) && value) {\n var currencySymbol = '₹';\n //var output = Number(input).toLocaleString('en-IN'); <-- This method is not working fine in all browsers! \n var result = value.toString().split('.');\n\n var lastThree = result[0].substring(result[0].length - 3);\n var otherNumbers = result[0].substring(0, result[0].length - 3);\n if (otherNumbers != '')\n lastThree = ',' + lastThree;\n var output = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree;\n \n if (result.length > 1) {\n output += \".\" + result[1];\n } \n\n return currencySymbol+output;\n }\n // return value.toLowerCase();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/rupee-currency-format/rupee-currency-format.ts","import { Component, ElementRef,ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,AlertController, Content,ModalController,ModalOptions } from 'ionic-angular';\nimport {Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms';\n// import {MomentDateAdapter} from '@angular/material-moment-adapter';\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {MatDatepicker} from '@angular/material/datepicker';\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { Platform } from '@angular/cdk/platform';\nimport {LaunchNavigator,LaunchNavigatorOptions } from '@ionic-native/launch-navigator'; \nimport { AuthPage } from '../auth/auth';\n\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { OtpPage } from '../otp/otp';\n\nimport { Geolocation, PositionError, Geoposition } from '@ionic-native/geolocation';\nimport {DatePipe } from '@angular/common';\nimport { LocationAccuracy } from '@ionic-native/location-accuracy';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { observable, Observable } from 'rxjs';\nimport { ERR_PLUGIN_NOT_INSTALLED } from '@ionic-native/core';\nimport { ConstantsProvider } from '../../providers/constants/constants';\nimport { PdGeneralImagesPage } from '../pd-general-images/pd-general-images';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\nimport {BouncedRejectPage} from '../../pages/input/bounced-reject/bounced-reject'\nimport {PdQuestionCategoryPage} from '../../pages/pd-question-category/pd-question-category'\nimport {MapAddressPage} from '../../pages/map-address/map-address'\n\nimport {CameraProvider} from '../../providers/common-provider/camera' ;\nimport {LoadingProvider} from '../../providers/common-provider/loading';\nimport {StorageProvider} from '../../providers/storage/storage';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport {BackgroundGeolocation,\n BackgroundGeolocationConfig,\n BackgroundGeolocationResponse,\n BackgroundGeolocationEvents} from '@ionic-native/background-geolocation'\n/**\n * Generated class for the InputPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nconst currentdate = new Date().toJSON().slice(0,19);\n\n\n@Component({\n selector: 'page-input',\n templateUrl: 'input.html',\n})\n\n\nexport class InputPage {\n enableStartPD: boolean;\n diffInHours: number;\n updatestarted: any;\n updateinitiated: any;\n appdata: any;\n users: any;\n initiatedAccess: boolean = false;\n scheduleAccess: boolean = false;\napplicatentDetails:any;\nmaxdate :any;\npipe = new DatePipe('en-US');\nupdateStatus:any;\nscheduleDate:any;\nupdateSchedule:any;\nacceptedAccess:boolean = false;\nstartedAccess:boolean = false;\ntimeOut:any = 15*1000;\ntimeInterval:any;\ncurrentPosPDofficer:any;\nother_applicant:any=[];\nloadDetails=false;\nmainApplicant:any=[]\npdMaster:any=[]\nimageDisplay: any=[];\nimageBucket: any=[];\ncheckOtpAccess:boolean = false;\n@ViewChild('focusinp') input_focus ;\n@ViewChild('scroll') scrolltop : Content;\n addresses: any=[];\n address_pd_id: any;\n address_pd_status: any='';\n address_allocated_data:any\n add_requirements:any;\n requirement_hide: boolean=true;\n // address_child_schedule_time:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public statusBar:StatusBar,public platform: Platform,public launchNavigator:LaunchNavigator,\n public aws:AwsServiceProvider,public pdDetails:PdtriggerProvider,public geolocation:Geolocation,\n public alertCtrl:AlertController,public locationAccuracy:LocationAccuracy,public toast:ToastProvider,\n public constant:ConstantsProvider,public androidPermissions:AndroidPermissions,public modalCtrl:ModalController,\n public qustCat: QuestionCategoryProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,public storagedb:StorageProvider,private backgroundgeolocation:BackgroundGeolocation) {\n \n \n\n this.maxdate = this.pipe.transform(new Date(),'yyyy-MM-ddTHH:mm').toString();\n // this.maxdate=new Date().toLocaleString();\n \n var date=new Date('dd');\n //console.log(date)\n var curr=date.getDate()+date.getMonth()+date.getFullYear();\n console.log(\"today\",curr)\n /***Header value pass */\n this.statusBar.styleDefault();\n \n this.statusBar.overlaysWebView(false);\n this.statusBar.backgroundColorByHexString('#db4437');\n let timeStart:string = this.pipe.transform(new Date(),'dd/MM/yyyy hh:mm a');\n \n \n this.applicatentDetails = this.navParams.get('pdDetails');\n \n // this.getFullPD();\n \n \n // if(this.applicatentDetails.pd_status == 'ALLOCATED')\n // {\n // this.acceptedAccess = true;\n // }\n // if(this.applicatentDetails.pd_status == 'ACCEPTED')\n // {\n // this.scheduleAccess = true;\n // }\n // if(this.applicatentDetails.pd_status == 'SCHEDULED')\n // {\n \n // this.initiatedAccess = true;\n // }\n // //console.log(this.initiatedAccess);\n // if(this.applicatentDetails.pd_status == 'INITIATED')\n // {\n // this.startedAccess = true;\n // this.getenableAccuracy();\n \n // }\n this.users = this.aws.getlocale();\n this.requirement_hide=false;\n // this.getcurrentBackgroundLocation();\n }\n ionViewCanEnter(){\n this.getFullPD();\n \n }\n // ionViewDidEnter(){\n // console.log(\"ionViewDidEnter\")\n // this.getFullPD();\n // }\n \n ionViewDidLoad() {\n this.setPermission();\n console.log('ionViewDidLoad InputPage' ); \n this.getPDImages();\n }\n ionViewCanLeave()\n {\n clearInterval(this.timeInterval);\n }\n locationnavicate(index)\n {\n // var address_full:string=address+' ' +this.applicatentDetails.city_name+' ' +this.applicatentDetails.state_name+' '+ (this.applicatentDetails.pincode != 'Others' ? this.applicatentDetails.pincode : this.applicatentDetails.other_pincode)\n let data=this.addresses[index]\n var address_full:string= data.addressline1+' ' +data.city_name+' ' +data.state_name+'-'+(data.pincode != 'Others' ? data.pincode : data.other_pincode)\n //console.log(\"add\",address_full)\n this.launchNavigator.navigate(address_full);\n }\n\n setPermission()\n {\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n }\n\n getFullPD()\n {\n let pdDetails_pdid=this.applicatentDetails.is_child != '1' ? this.applicatentDetails.pd_id :this.applicatentDetails.parent_pd_id\n let records = {'pdid':pdDetails_pdid};\n this.pdDetails.getFullPDdetails(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.add_requirements=res['records'].pd_additional_requirements;\n this.requirement_hide=res['records'].pd_additional_requirements.length == 0 ? true : false\n console.log(\"req\",this.add_requirements.length);\n \n console.log(\"req\",this.requirement_hide);\n this.other_applicant=res['records'].applicants_details\n this.mainApplicant=res['records'].applicants_details[0]\n this.pdMaster=res['records'].pd_master_details[0]\n console.log(\"other\",this.mainApplicant)\n this.addresses=res['records'].pd_address\n this.address_pd_id=this.addresses.addtional_pd_data\n //FOR GETTING THE ALLOCATED/SCHEDULE/INITIATE PDID \n this.addresses.forEach(res=>{\n console.log(\"address\",res);\n if(res.addtional_pd_data.length != 0){\n if(res.addtional_pd_data[0].pd_status == 'ALLOCATED' || res.addtional_pd_data[0].pd_status == 'ACCEPTED' || res.addtional_pd_data[0].pd_status == 'SCHEDULED' || res.addtional_pd_data[0].pd_status == 'INITIATED' || res.addtional_pd_data[0].pd_status == 'STARTED' || res.addtional_pd_data[0].pd_status == 'INPROGRESS'){\n this.address_pd_id=res.addtional_pd_data[0].pd_id\n this.address_pd_status=res.addtional_pd_data[0].pd_status\n this.address_allocated_data=res.addtional_pd_data[0]\n \n console.log(\"pd\",this.address_pd_id)\n return;\n }\n }\n })\n //FOR CHANGING THE PD ID based on assigned pd address\n //this.applicatentDetails.pd_id=this.address_pd_id\n //FOR GIVING ACCESS FOR BUTTONS BASED ON pd status IN ADDRESS\n if(this.address_pd_status == 'ALLOCATED')\n {\n this.acceptedAccess = true;\n }\n if(this.address_pd_status == 'ACCEPTED')\n {\n this.scheduleAccess = true;\n }\n if(this.address_pd_status == 'SCHEDULED')\n {\n \n this.initiatedAccess = true;\n }\n //console.log(this.initiatedAccess);\n if(this.address_pd_status == 'INITIATED')\n {\n this.startedAccess = true;\n this.getenableAccuracy();\n \n }\n if(this.address_pd_status == 'STARTED')\n {\n this.checkOtpAccess=true;\n }\n console.log(\"address allocated\",this.address_allocated_data);\n console.log(this.other_applicant);\n if(this.address_allocated_data != '' && this.address_allocated_data !=undefined){\n let courrentDateTime: string = this.pipe.transform(new Date(), 'yyyy-MM-dd HH:mm'); \n let scheduledDateTime: string=this.address_allocated_data.scheduled_on_for_validation;\n let diffInMs: number = Date.parse(courrentDateTime) - Date.parse(scheduledDateTime);\n let diffInHours: number = Math.floor(diffInMs / 1000 / 60 / 60);\n console.log(diffInHours);\n \n if(diffInHours <-4){\n this.enableStartPD=true;\n }\n else\n {\n this.enableStartPD = false;\n }\n }\n this.loadDetails=true\n } \n \n })\n \n }\n pdStatus(status,appdetails)\n {\n let data :any;\n \n if(status == 'BOUNCED')\n {\n // data = {'pd_id':appdetails.pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate};\n data = {'pd_id':this.address_pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate};\n this.navCtrl.push(BouncedRejectPage,{'details':data})\n // this.pdDetails.updatepdStatus(data).subscribe(res=>\n // {\n // this.updateStatus = res;\n // if(this.updateStatus.dataStatus == true)\n // {\n // this.navCtrl.setRoot(PdListPage); \n // }\n // })\n }else if(status == 'ACCEPTED')\n {\n \n data = {'pd_id':this.address_pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate};\n this.pdDetails.updatepdStatus(data).subscribe(res=>\n {\n console.log('dasdsfdsffds',res);\n this.updateStatus = res;\n if(this.updateStatus.dataStatus == true)\n {\n this.getNewpdupdate();\n \n this.scheduleAccess = true;\n \n }else\n {\n this.scheduleAccess = false;\n }\n })\n }\n \n }\n\n pdschedule(scheduledate,appdetails)\n {\n \n let data :any;let param : any;\n console.log(scheduledate);\n if(scheduledate != undefined){\n let schDate = scheduledate.slice(0,19).replace('T',' ');\n console.log(schDate);\n data = {'pd_id':this.address_pd_id,'pd_status':'SCHEDULED','scheduled_on':schDate,'fk_updatedby':this.users,'updatedon':currentdate};\n // this.pdDetails.updatepdStatus(data).subscribe(res=>\n //sample format : fk_pd_id: \"868\", schedule_time: \"2019-05-30 18:51\", fk_scheduled_by: \"165\";\n param = {'fk_pd_id': this.address_pd_id, 'schedule_time':schDate, 'fk_scheduled_by': this.users}\n this.pdDetails.updateSchedule(param).subscribe(res=>\n {\n this.updateSchedule = res;\n if(this.updateSchedule.dataStatus == true)\n {\n this.getNewpdupdate();\n \n this.initiatedAccess = true;\n }\n });\n }\n else{\n this.toast.pdTriggerappmessage(\"Please Choose the Schedule Date\");\n this.input_focus.setFocus();\n //this.input_focus.scrollToTop();\n this.scrolltop.scrollTop;\n }\n}\n\n getenableAccuracy()\n {\n this.locationAccuracy.canRequest().then((canRequest: boolean) => {\n\n if(canRequest) {\n // the accuracy option will be ignored by iOS\n this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(\n () => {\n this.getcurrentLocation();\n this.getcurrentBackgroundLocation();\n },\n error => alert('Error requesting location permissions'+JSON.stringify(error))\n );\n }\n \n });\n }\n getcurrentLocation() \n {\n let data:any;\n let options = {\n frequency: 3000, \n enableHighAccuracy: true,\n timeOut:1000,\n };\n \n this.timeInterval = setInterval(()=>{\n this.currentPosPDofficer = '';\n this.geolocation.getCurrentPosition(options).then((resp) => {\n // resp.coords.latitude\n // resp.coords.longitude\n if((resp as Geoposition).coords !=undefined){\n this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n // this.toast.pdTriggerappmessage(this.currentPosPDofficer);\n console.log(this.currentPosPDofficer);\n data = {'pd_id':this.address_pd_id,'link':this.currentPosPDofficer};\n\n\n this.pdDetails.saveCurrentLocation(data).subscribe(res=>\n {\n console.log(\"geoLocation data\",data)\n // this.updateinitiated = res;\n // if(this.updateinitiated.dataStatus == true)\n // { \n // // this.getNewpdupdate();\n // // this.startedAccess = true;\n // }else\n // {\n // this.startedAccess = false;\n // }\n })\n }\n }).catch((error)=>{\n this.toast.pdTriggerappmessage(error.message);\n })\n \n },this.timeOut);\n }\n\n getcurrentBackgroundLocation() \n {\n let data:any\n const config:BackgroundGeolocationConfig={\n desiredAccuracy: 10,\n stationaryRadius: 20,\n distanceFilter: 30,\n debug: false, // enable this hear sounds for background-geolocation life-cycle.\n stopOnTerminate: false // enable this to clear background location settings when the app terminates\n };\n console.log(\"getCurrent Location 1 function\")\n this.backgroundgeolocation.configure(config).then(()=>{\n this.backgroundgeolocation.on(BackgroundGeolocationEvents.location)\n .subscribe((location:BackgroundGeolocationResponse)=>{\n //this.toast.pdTriggerappmessage(\"alert for loca, \"+location)\n console.log(\"background geo location\",location);\n let pos=location.latitude+\",\"+location.longitude\n data = {'pd_id':this.address_pd_id,'link':pos};\n\n this.pdDetails.saveCurrentLocation(data).subscribe(res=>{\n console.log(\"saved location in Api\",res);\n\n },err=>{\n console.log(\"Not saved in Api\",err);\n })\n },err=>{\n console.log(\"Error in background geolocation subscribtion\")\n })\n },err=>{\n console.log(\"Error in background geolocation configuration\")\n })\n this.backgroundgeolocation.start();\n \n // let data:any;\n // let options = {\n // frequency: 3000, \n // enableHighAccuracy: true,\n // timeOut:1000,\n // };\n \n // this.timeInterval = setInterval(()=>{\n // this.currentPosPDofficer = '';\n // this.geolocation.getCurrentPosition(options).then((resp) => {\n // // resp.coords.latitude\n // // resp.coords.longitude\n // if((resp as Geoposition).coords !=undefined){\n // this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n // // this.toast.pdTriggerappmessage(this.currentPosPDofficer);\n // console.log(this.currentPosPDofficer);\n // data = {'pd_id':this.address_pd_id,'link':this.currentPosPDofficer};\n\n\n // this.pdDetails.saveCurrentLocation(data).subscribe(res=>\n // {\n // console.log(\"geoLocation data\",data)\n // // this.updateinitiated = res;\n // // if(this.updateinitiated.dataStatus == true)\n // // { \n // // // this.getNewpdupdate();\n // // // this.startedAccess = true;\n // // }else\n // // {\n // // this.startedAccess = false;\n // // }\n // })\n // }\n // }).catch((error)=>{\n // this.toast.pdTriggerappmessage(error.message);\n // })\n \n // },this.timeOut);\n }\n pdreschedule()\n {\n this.scheduleAccess = true;\n this.initiatedAccess = false;\n }\n \n\n pdinitiated(appdetails)\n { let data:any;\n\n this.locationAccuracy.canRequest().then((canRequest: boolean) => {\n\n if(canRequest) {\n // the accuracy option will be ignored by iOS\n this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(\n () => {\n this.geolocation.getCurrentPosition().then((resp) => {\n // resp.coords.latitude\n // resp.coords.longitude\n let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0]\n console.log(\"mobile\",mobile_no)\n if(mobile_no ==undefined){\n mobile_no=this.mainApplicant.mobile_no\n }\n this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n data = {'pd_id':this.address_pd_id,'pd_status':'INITIATED','mobile_no':mobile_no,'officerName':appdetails.pd_allocated_to,'firstName':this.mainApplicant.applicant_name,'fk_updatedby':this.users,'updatedon':currentdate,'link':this.currentPosPDofficer};\n\n\n this.pdDetails.updatepdStatus(data).subscribe(res=>\n {\n this.updateinitiated = res;\n if(this.updateinitiated.dataStatus == true)\n { \n this.getNewpdupdate();\n this.getcurrentLocation();\n this.getcurrentBackgroundLocation()\n this.startedAccess = true;\n }else\n {\n this.startedAccess = false;\n }\n })\n }).catch((error) => {\n console.log('Error getting location', error);\n });\n },error => alert('Error requesting location permissions'+JSON.stringify(error))\n );\n }\n \n },error=>{\n console.log(\"currnpd\",this.currentPosPDofficer);\n alert(JSON.stringify(error))\n let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0]\n console.log(\"mobile\",mobile_no)\n if(mobile_no ==undefined){\n mobile_no=this.mainApplicant.mobile_no\n }\n data = {'pd_id':this.address_pd_id,'pd_status':'INITIATED','mobile_no':mobile_no,'officerName':appdetails.pd_allocated_to,'firstName':this.mainApplicant.applicant_name,'fk_updatedby':this.users,'updatedon':currentdate,'link': this.currentPosPDofficer};\n this.pdDetails.updatepdStatus(data).subscribe(res=>\n {\n this.updateinitiated = res;\n if(this.updateinitiated.dataStatus == true)\n { \n console.log(\"status\",\"true\");\n this.getNewpdupdate();\n this.getcurrentLocation();\n this.getcurrentBackgroundLocation();\n this.startedAccess = true;\n }else\n {\n this.startedAccess = false;\n }\n })\n });\n }\n checkOTP(appdetails){\n let data:any;\n this.geolocation.getCurrentPosition().then((resp) => {\n this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0]\n console.log(\"mobile\",mobile_no)\n if(mobile_no ==undefined){\n mobile_no=this.mainApplicant.mobile_no\n }\n data = {'pd_id':this.address_pd_id,'pd_status':'STARTED','mobile_no':mobile_no,'fk_updatedby':this.users,'updatedon':currentdate,'link':this.currentPosPDofficer };\n console.log(data);\nthis.pdDetails.updatepdStatus(data).subscribe(res=>\n{\n this.updatestarted = res;\nif(this.updatestarted.dataStatus == true)\n{\n //appdetails.pd_id=this.address_pd_id\n //clearInterval(this.timeInterval);\n //console.log(\"appdetails\",appdetails)\n //this.navCtrl.setRoot(OtpPage,{'pdDetails':appdetails});\n this.getNewpdupdate();\n this.startedAccess=false\n this.checkOtpAccess=true\n \n}\nelse{\n this.checkOtpAccess=false\n}\n\n},err=>alert(JSON.stringify(err)));\n // console.log('Buy clicked');\n },err=>{\n alert(JSON.stringify(err))\n })\n }\n\n startPdDiscussion()\n {\n\n let data:any;\n let alert = this.alertCtrl.create({\n title: 'Start Discussion',\n message: 'Are you starting the Discussion',\n buttons: [\n {\n text: 'No',\n role: 'cancel',\n handler: () => {\n \n // console.log('Cancel clicked');\n // this.toast.pdTriggerappmessage('')\n }\n },\n {\n text: 'YES',\n handler: () => {\n // this.geolocation.getCurrentPosition().then((resp) => {\n // this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n \n // data = {'pd_id':this.address_pd_id,'pd_status':'STARTED','mobile_no':this.mainApplicant.mobile_no,'fk_updatedby':this.users,'updatedon':currentdate,'link': this.currentPosPDofficer };\n // console.log(data);\n // this.pdDetails.updatepdStatus(data).subscribe(res=>\n // {this.updatestarted = res;\n // if(this.updatestarted.dataStatus == true)\n // {\n // appdetails.pd_id=this.address_pd_id\n // clearInterval(this.timeInterval);\n // console.log(\"appdetails\",appdetails)\n // this.navCtrl.setRoot(OtpPage,{'pdDetails':appdetails});\n // }\n \n // })\n // // console.log('Buy clicked');\n // })\n clearInterval(this.timeInterval);\n this.backgroundgeolocation.finish();\n this.backgroundgeolocation.stop();\n //FOR GIVING THE CORRECT ADDRESS MASTER\n console.log(\"address\",this.address_allocated_data);\n //Assigning applicant details to the params\n let pdValues= this.address_allocated_data\n pdValues.applicat_details=this.other_applicant\n this.navCtrl.setRoot(OtpPage,{'pdDetails':pdValues});\n } \n }\n ]\n });\n alert.present();\n }\n getNewpdupdate()\n {\n console.log(\"Started\",this.startedAccess)\n console.log(\"checkOtpAccess\",this.checkOtpAccess)\n this.acceptedAccess = false;\n this.initiatedAccess = false;\n this.scheduleAccess = false;\n this.startedAccess = false;\n this.checkOtpAccess = false;\n this.pdDetails.getpddetails(this.users).subscribe(res=>\n {\n this.appdata = res;\n if(this.appdata.dataStatus == true)\n {\n \n this.applicatentDetails = this.appdata.records.filter(app=>app.pd_id == this.applicatentDetails.pd_id)[0];\n // this.address_pd_status=this.applicatentDetails\n //FOR GETTING THE LATEST ADDRESS STATUS FROM getFullPDdetails\n let pdDetails_pdid=this.applicatentDetails.is_child != '1' ? this.applicatentDetails.pd_id :this.applicatentDetails.parent_pd_id\n let rec_pdid = {'pdid':pdDetails_pdid};\n this.pdDetails.getFullPDdetails(rec_pdid).subscribe(result=>{\n if(result['dataStatus']==true){\n this.addresses= result['records'].pd_address\n result['records'].pd_address.forEach(data=>{\n if(data.addtional_pd_data.length != 0){\n if(data.addtional_pd_data[0].pd_status == 'ALLOCATED' || data.addtional_pd_data[0].pd_status == 'ACCEPTED' || data.addtional_pd_data[0].pd_status == 'SCHEDULED' || data.addtional_pd_data[0].pd_status == 'INITIATED' || data.addtional_pd_data[0].pd_status == 'STARTED'|| data.addtional_pd_data[0].pd_status == 'INPROGRESS'){\n // this.address_pd_id=data.addtional_pd_data[0].pd_id\n this.address_pd_status=data.addtional_pd_data[0].pd_status\n // this.address_allocated_data=data.addtional_pd_data[0]\n console.log(\"pd\",this.address_pd_id)\n return;\n }\n }\n })\n \n // if(this.applicatentDetails.pd_status == 'ALLOCATED')\n // {\n // this.acceptedAccess = true;\n // }\n // if(this.applicatentDetails.pd_status == 'ACCEPTED')\n // {\n // this.scheduleAccess = true;\n // this.toast.pdTriggerappmessage(\"Accepted Successfully\")\n // }\n // if(this.applicatentDetails.pd_status == 'SCHEDULED')\n // {\n // this.initiatedAccess = true;\n // this.getFullPD();\n // this.toast.pdTriggerappmessage(\"Scheduled Successfully\")\n // }\n\n // if(this.applicatentDetails.pd_status == 'INITIATED')\n // {\n // this.startedAccess = true;\n // this.toast.pdTriggerappmessage(\"Initiated Successfully\")\n // }\n\n if(this.address_pd_status == 'ALLOCATED')\n {\n this.acceptedAccess = true;\n }\n if(this.address_pd_status == 'ACCEPTED')\n {\n this.scheduleAccess = true;\n this.toast.pdTriggerappmessage(\"Accepted Successfully\")\n }\n if(this.address_pd_status == 'SCHEDULED')\n {\n this.initiatedAccess = true;\n this.getFullPD();\n this.toast.pdTriggerappmessage(\"Scheduled Successfully\")\n }\n\n if(this.address_pd_status == 'INITIATED')\n {\n this.startedAccess = true;\n this.toast.pdTriggerappmessage(\"Initiated Successfully\")\n }\n if(this.address_pd_status == 'STARTED'){\n this.checkOtpAccess=true;\n }\n \n }\n })\n }\n \n })\n console.log(\"app\",this.applicatentDetails);\n \n }\n\n camerasetup()\n {\n this.navCtrl.push(PdGeneralImagesPage,{'pdDetails':this.applicatentDetails});\n }\n\n inprogress(data,address_child){\n // data.pd_id=address_child.pd_id\n console.log(address_child)\n let pdValues=address_child\n pdValues.applicat_details=this.other_applicant\n this.navCtrl.push(PdQuestionCategoryPage,{'pdDetails':pdValues})\n }\n mapAddress(values){\n const modalOptions:ModalOptions={\n cssClass:\"mapAddress\"\n }\n \n const modal=this.modalCtrl.create(MapAddressPage,{'master':this.pdMaster,'address':values,'applicants':this.other_applicant},modalOptions)\n modal.present();\n modal.onDidDismiss((data)=>{\n console.log(\"datas\",data)\n this.getFullPD();\n })\n }\n\n inWords(e){\n return this.constant.convertNumberToWords(+e)+' Only';\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.applicatentDetails.pd_id,'form_id':null,'company_id':null,'is_common':1}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n\n if(!val['msg']){\n // res = this.customfilter(res); \n console.log('val[records]',val['records']);\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n\n capture(){\n \n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n \n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geocoords\",geoCoordinates)\n \n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n \n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n \n\n \n }\n\n customfilter(res){\n console.log('custome filter');\n return res.filter(data=>data.fk_form_id != null);\n }\n\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n let records:any={\n 'pd_id':this.applicatentDetails.pd_id,\n 'formid':null,\n 'images':this.imageBucket,\n 'company_id':null\n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/input/input.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, MenuController, AlertController } from 'ionic-angular';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../providers/constants/constants';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Geolocation } from '@ionic-native/geolocation'; \nimport { AndroidPermissions } from '@ionic-native/android-permissions';\n\n/**\n * Generated class for the OtpPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-otp',\n templateUrl: 'otp.html',\n})\nexport class OtpPage {\n\n \n timeLimit: any;\n reason_otp: any;\n users: any;\n timerOn: boolean = true;\n balance_time: string;\n otpStatus: any;\n pin:any;\n otpStatusAccess:boolean = true;\n applicatentDetails: any;\n commonImage:any;\n maxtime: any=30;\n //address_pd_id:any;\n \n reasonForm:FormGroup\n constructor(public navCtrl: NavController, public navParams: NavParams,public pddetails:PdtriggerProvider,public toast:ToastProvider,public Menu:MenuController,public commonconstant:ConstantsProvider,public aws:AwsServiceProvider,public alertCtrl:AlertController,public qustCat:QuestionCategoryProvider,public fb:FormBuilder,public geolocation:Geolocation,public androidPermissions:AndroidPermissions) {\n this.commonImage = this.commonconstant.commonimage;\n this.applicatentDetails = this.navParams.get('pdDetails');\n console.log(\"this\",this.applicatentDetails);\n // this.address_pd_id=this.navParams.get('address_pd_id')\n this.users = this.aws.getlocale();\n console.log(\"user\",this.users)\n this.reasonForm = this.fb.group(\n {\n reason:[null,Validators.compose([Validators.required])],\n others_reason:[null],\n })\n \n this.getDropdown();\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad OtpPage');\n }\n ionViewDidEnter(){\n //this.Menu.enable(false);\n this.setPermission();\n this.timer(120);\n \n }\n\n setPermission()\n {\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n }\n ionViewWillLeave(){\n //this.Menu.enable(true);\n clearTimeout(this.timeLimit);\n }\n getDropdown()\n {\n this.qustCat.getcommondrop('OTPREJECTION').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.reason_otp = res['records'].filter(otp=>otp.isactive==1);\n console.log(this.reason_otp);\n \n }\n })\n }\n checkotp(otp)\n {\n //console.log(\"Otp\",otp)\n let data = {'pd_id':this.applicatentDetails.pd_id,'OTP':otp,'fk_updatedby':this.users};\n this.pddetails.checkotp(data).subscribe(res=>\n {\n //console.log(\"Otp\",res)\n this.otpStatus = res;\n if(this.otpStatus.dataStatus == true)\n {\n this.navCtrl.setRoot(PdQuestionCategoryPage,{'pdDetails':this.applicatentDetails});\n }else\n {\n this.toast.pdTriggerappmessage('Enter the Correct OTP');\n }\n })\n }\n\n timer(remaining) {\n // console.log(remaining);\n let m:any = Math.floor(remaining / 60);\n let s:any = remaining % 60;\n \n m = m < 10 ? '0' + m : m;\n s = s < 10 ? '0' + s : s;\n // var balance_time = m + ':' + s;\n this.balance_time = m + ':' + s;\n remaining -=1;\n // console.log(this.balance_time);\n if(remaining >= 0 && this.timerOn) {\n this.timeLimit = setTimeout(()=> {\n this.timer(remaining);\n }, 1000);\n return;\n }\n \n if(!this.timerOn) {\n // Do validate stuff here\n return;\n }\n \n // Do timeout stuff here\n \n let data:any;\n let alert = this.alertCtrl.create({\n title: 'OTP Expired ',\n message: 'Do you want to resend the OTP ? ',\n buttons: [\n {\n text: 'Start PD Without OTP',\n \n handler: () => {\n \n this.otpStatusAccess = false;\n }\n },\n {\n text: 'Resend OTP',\n handler: () => {\n \n this.geolocation.getCurrentPosition().then((resp) => {\n let currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n data = {'pd_id':this.applicatentDetails.pd_id,'pd_status':'STARTED','mobile_no':this.applicatentDetails.applicat_details[0].mobile_no,'fk_updatedby':this.users,'link':currentPosPDofficer};\n console.log(data);\n this.pddetails.updatepdStatus(data).subscribe(res=>\n {\n this.timer(60);\n })\n });\n // console.log('Buy clicked');\n \n } \n }\n \n ]\n \n });\n alert.present();\n }\n \n saveotpreasno()\n {\n console.log(this.reasonForm.value);\n if(this.reasonForm.valid)\n {\n let data = {'pd_id':this.applicatentDetails.pd_id,'reason':this.reasonForm.value.reason,'other_reason':this.reasonForm.value.others_reason,'fk_updatedby':this.users};\n this.pddetails.checkotp(data).subscribe(res=>\n {\n this.otpStatus = res;\n if(this.otpStatus.dataStatus == true)\n {\n this.navCtrl.setRoot(PdQuestionCategoryPage,{'pdDetails':this.applicatentDetails});\n }else\n {\n // this.toast.pdTriggerappmessage('Enter the Correct OTP');\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/otp/otp.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport{QuestionCategoryProvider} from '../../../../providers/question-category/question-category'\nimport {RupeeCurrencyFormatPipe} from '../../../../pipes/rupee-currency-format/rupee-currency-format'\nimport {PdQuestionRentalInfoPage} from '../pd-question-rental-info'\n/**\n * Generated class for the PdQuestionRentalDashPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n// @IonicPage()\n@Component({\n selector: 'page-pd-question-rental-dash',\n templateUrl: 'pd-question-rental-dash.html',\n providers:[RupeeCurrencyFormatPipe]\n})\nexport class PdQuestionRentalDashPage {\n pdDetails:any;\n form_details:any;\n pageTitle:any\n existing_rental_count_id: number=0;\n existing_rental_list: any=[];\n constructor(public navCtrl: NavController, public navParams: NavParams,private qustCat:QuestionCategoryProvider) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.form_details=this.navParams.get('FormId');\n console.log(this.form_details);\n \n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionRentalDashPage');\n \n }\n ionViewCanEnter(){\n this.getAllRentalInfo();\n }\n getAllRentalInfo(){\n this.existing_rental_list=[]\n \n let records = {'parent_pdid':this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.form_details.form_id };\n this.qustCat.retiverForm(records).subscribe(res=>{\n if(res['dataStatus']==true){\n \n // console.log(\"rental\",rentalVal.length)\n // console.log(JSON.parse(res['records']))\n let rentalVal:any=res['records']\n \n \n console.log(\"tyeva\",typeof(rentalVal))\n let tempArray: any = [];\n let amt: any = [];\n this.existing_rental_count_id = rentalVal.length;\n // if(rentalVal.length >0){\n console.log(\"rental val\",rentalVal);\n \n rentalVal.forEach((value,index)=>{\n let annualRentAmt:any\n if(value.property_unit_details){\n let selectedUnit=Object.keys(value.property_unit_details).map(function(key){\n return value.property_unit_details[key]\n });\n if(selectedUnit.length>0){\n selectedUnit.forEach((element,innerIndex)=>{\n tempArray[innerIndex]=element.monthly_rent_amount\n annualRentAmt=tempArray.reduce((sum,val)=> sum+ +val,0);\n annualRentAmt=annualRentAmt*12;\n })\n }\n else{\n annualRentAmt=0;\n }\n amt[index]=annualRentAmt\n }\n let params={'state_id':value.state,'city_id':value.city,'pincode_id':value.pincode}\n this.qustCat.getStateCityNamesAndPincode(params).subscribe(datas=>{\n if(datas.dataStatus==true){\n let obj={\n 'address':value.address_property,\n 'applicants_rent': amt[index],\n 'state': datas.records.state_name,\n 'city': datas.records.city_name,\n 'pincode': datas.records.pincode,\n 'rental_count_id': value.rental_count_id,\n 'rental_existing_data': value\n }\n this.existing_rental_list.push(obj)\n console.log(\"modify\",this.existing_rental_list);\n }\n })\n })\n }\n else{\n this.existing_rental_count_id=0\n // this.addMore();\n }\n })\n console.log(\"ren\",this.existing_rental_list);\n }\n editDet(values){\n let passValues: any = {\n manage_status: 2,\n existing_rental_count_id: values.rental_count_id,\n editData: values\n }\n this.navCtrl.push(PdQuestionRentalInfoPage,{'values':passValues,'pdDetails':this.pdDetails,'FormId':this.form_details});\n console.log(\"hai\");\n console.log(\"d\",values)\n }\n addMore(){\n let passValues: any = {\n manage_status: 1,\n // parentData: this.parentData,\n // masterData: this.masterData,\n existing_rental_count_id: this.existing_rental_count_id + 1,\n }\n this.navCtrl.push(PdQuestionRentalInfoPage,{\"values\":passValues,'pdDetails':this.pdDetails,'FormId':this.form_details});\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { CameraProvider } from '../../../../providers/common-provider/camera'\nimport { LoadingProvider } from '../../../../providers/common-provider/loading'\nimport { ConstantsProvider } from '../../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionSupplsierInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-supplier-info',\n templateUrl: 'pd-question-supplier-info.html',\n})\n\nexport class PdQuestionSupplierInfoPage {\n users: any;\n pdDetails: any;\n formDetails: any;\n company_id: any;\n form_id: any;\n questionDetails: any;\n supplierInfoForm: FormGroup;\n\n business_manufacturingProducts: any = [];\n business_tradingProducts: any = [];\n business_serviceProvider: any = [];\n\n m_titleList: any = [];\n m_paymentList: any = [];\n m_companyRelationShipList: any = [];\n\n noRecordsFound: Boolean = false;\n public submitted = false;\n errorMessage: any = '';\n imageDisplay: any[];\n imageBucket: any = [];\n tab: string = '0';\n\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb: FormBuilder,\n public aws: AwsServiceProvider, public qustCat: QuestionCategoryProvider,\n public toast: ToastProvider, private cameraProvider: CameraProvider, private loading: LoadingProvider,\n private constantProvider: ConstantsProvider) {\n\n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.formDetails = this.navParams.get('formDetails');\n this.form_id = this.formDetails.form_id;\n this.company_id = this.pdDetails.company_id;\n this.users = this.aws.getlocale();\n\n\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id, this.company_id).subscribe(data => {\n \n if(data.dataStatus){\n \n let datas = data.records;\n console.log('datas',datas);\n this.initFormLoadDetails(datas.type_of_activity);\n this.business_manufacturingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 2 ){return data}}).map(data=> [...data.prodcuts]);\n // this.business_tradingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 3){return data}}).map(data=> [...data.prodcuts]);\n // this.business_serviceProvider = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 5){return data}}).map(data=> [...data.prodcuts]);\n \n let api = Object.keys(datas.type_of_activity).map(function (key) {\n return datas.type_of_activity[key];\n });\n\n if(api.length > 0){ \n api.forEach(val => {\n if (val.type_of_activity_id == 3) {\n if(val.prodcuts){\n this.business_tradingProducts.push(val.prodcuts);\n }\n }\n\n if (val.type_of_activity_id == 4) {\n if(val.prodcuts){\n this.business_tradingProducts.push(val.prodcuts);\n }\n }\n if (val.type_of_activity_id == 5) {\n if(val.prodcuts){\n this.business_serviceProvider.push(val.prodcuts);\n console.log(this.business_serviceProvider);\n }\n }\n });\n }\n\n this.business_tradingProducts = [].concat.apply([], this.business_tradingProducts);\n \n \n }else {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = data.msg;\n }\n }, err => {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = 'No Records Found , Something went Wrong!';\n })\n this.getdropList();\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionSupplierInfoPage');\n this.getPDImages();\n }\n\n\n // serviceProviderForm: Boolean = false;\n initFormLoadDetails(record) {\n let params: any = {};\n params.parent_pdid = this.pdDetails.parent_pd_id\n params.pd_id = this.pdDetails.pd_id;\n params.pd_form_id = this.form_id;\n params.company_id = this.company_id;\n\n this.qustCat.retiverForm(params).subscribe(\n data => {\n if (data['dataStatus'] == true) {\n \n let dataForm = data['records'];\n if (dataForm !== undefined) {\n this.supplierInfoForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n formid: [this.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n servicing_details: this.fb.array([this.servicingFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n // let api_main_raw_materials = Object.keys(dataForm.main_raw_materials).map(function (key) {\n // return dataForm.main_raw_materials[key];\n // });\n if (dataForm.manufacturing_details[0] != null) {\n let api_main_raw_materials = dataForm.manufacturing_details[0].main_raw_materials;\n\n this.initManufacturingProductsDetails(api_main_raw_materials);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(dataForm.manufacturing_details[0].main_raw_materials_total_payments_percent_on_credit || null);\n }\n else {\n this.initManufacturingProductsDetails(null);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null)\n }\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n // let api_trading_products = Object.keys(dataForm.trading_products).map(function (key) {\n // return dataForm.trading_products[key];\n // });\n if (dataForm.trade_details[0] != null) {\n let api_trading_products = dataForm.trade_details[0].trading_products;\n this.initTradingProductsDetails(api_trading_products);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trade_details[0].trading_products_total_payments_percent_on_credit || null);\n }\n else {\n this.initTradingProductsDetails(null);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n // this.serviceProviderForm = true;\n if (dataForm.servicing_details[0] != null) {\n let api_service_providers = dataForm.servicing_details[0].service_providers;\n this.initServiceProvidersDetails(api_service_providers);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(dataForm.servicing_details[0].service_providers_total_payments_percent_on_credit || null);\n }\n else {\n this.initServiceProvidersDetails(null);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(null);\n }\n }\n this.noRecordsFound = true;\n } else {\n \n this.supplierInfoForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n formid: [this.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n servicing_details: this.fb.array([this.servicingFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trading_products_total_payments_percent_on_credit || null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n this.initServiceProvidersDetails(null);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(dataForm.servicing_details[0].service_providers_total_payments_percent_on_credit || null);\n }\n this.noRecordsFound = true;\n }\n } else {\n console.log(' data in else part');\n this.supplierInfoForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n formid: [this.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n servicing_details: this.fb.array([this.servicingFormCreation(record)]),\n supplier_info_form_remark: []\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n this.initServiceProvidersDetails(null);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(null);\n }\n this.noRecordsFound = true;\n }\n }, err => {\n\n }\n );\n }\n\n manufacturingForm: Boolean = false;\n manufacturingFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.manufacturingForm = true;\n return this.fb.group({\n main_raw_materials: this.fb.array([]),\n main_raw_materials_total_payments_percent_on_credit: []\n })\n // }\n } else {\n return;\n }\n }\n\n tradingForm: Boolean = false;\n tradingFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr.length > 0) {\n this.tradingForm = true;\n return this.fb.group({\n trading_products: this.fb.array([]),\n trading_products_total_payments_percent_on_credit: []\n });\n } else {\n return;\n }\n }\n\n servicingForm: Boolean = false;\n servicingFormCreation(val) {\n \n let arr = val.filter(data => data.type_of_activity_id == 5);\n console.log(arr,arr.length);\n if (arr.length > 0) {\n console.log('IF');\n this.servicingForm = true;\n return this.fb.group({\n service_providers: this.fb.array([]),\n service_providers_total_payments_percent_on_credit: []\n });\n } else {\n console.log('ELSE');\n return;\n }\n }\n\n initManufacturingProductsDetails(datas) {\n const control = this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n if (datas === null) {\n control.push(this.initManufacturingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.manufacturing_payment_type, 1, inx);\n control.push(this.initManufacturingProducts(val));\n });\n }\n }\n\n initManufacturingProducts(records) {\n if (records === null) {\n return this.fb.group({\n manufacturing_raw_material_name: [''],\n manufacturing_supplier_name: [''],\n person_title_name: [''],\n person_designation: [''],\n other_person_designation: [''],\n manufacturing_contact_person_name: [''],\n manufacturing_contact_person_mobile_number: [''],\n //,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])\n manufacturing_payment_type: [''],\n manufacturing_payment_mode: [''],\n manufacturing_credit_days_from: [''],\n manufacturing_credit_days_to: [''],\n manufacturing_frequency_of_purchase: [''],\n person_stdcode: [''],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [''],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n\n })\n } else {\n return this.fb.group({\n manufacturing_raw_material_name: [records.manufacturing_raw_material_name || null],\n manufacturing_supplier_name: [records.manufacturing_supplier_name || null],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n other_person_designation: [records.other_person_designation || null],\n manufacturing_contact_person_name: [records.manufacturing_contact_person_name || null],\n manufacturing_contact_person_mobile_number: [records.manufacturing_contact_person_mobile_number || null],\n //Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n manufacturing_payment_type: [records.manufacturing_payment_type || null],\n manufacturing_payment_mode: [records.manufacturing_payment_mode],\n manufacturing_credit_days_from: [records.manufacturing_credit_days_from || null],\n manufacturing_credit_days_to: [records.manufacturing_credit_days_to || null],\n manufacturing_frequency_of_purchase: [records.manufacturing_frequency_of_purchase || null],\n person_stdcode: [records.person_stdcode || null],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [records.person_landline || null],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n })\n }\n }\n\n initTradingProductsDetails(datas) {\n const control = this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n\n if (datas === null) {\n control.push(this.initTradingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.trade_product_payment_type, 2, inx);\n control.push(this.initTradingProducts(val));\n });\n }\n }\n\n initTradingProducts(records) {\n if (records === null) {\n return this.fb.group({\n trade_product_name: [''],\n trade_supplier_name: [''],\n person_title_name: [''],\n person_designation: [''],\n other_person_designation: [''],\n trade_product_contact_person_name: [''],\n trade_product_contact_person_mobile_number: [''],\n //,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])\n person_stdcode: [null],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [null],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n trade_product_payment_type: [''],\n trade_product_payment_mode: [''],\n trade_product_frequency_of_purchase: [''],\n trade_product_credit_days_from: [''],\n trade_product_credit_days_to: [''],\n })\n } else {\n return this.fb.group({\n trade_product_name: [records.trade_product_name],\n person_title_name: [records.person_title_name],\n person_designation: [records.person_designation],\n other_person_designation: [records.other_person_designation],\n trade_supplier_name: [records.trade_supplier_name],\n trade_product_contact_person_name: [records.trade_product_contact_person_name],\n trade_product_contact_person_mobile_number: [records.trade_product_contact_person_mobile_number],\n //, Validators.compose([Validators.minLength(10),Validators.maxLength(10)])\n person_stdcode: [records.person_stdcode],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [records.person_landline],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n trade_product_payment_type: [records.trade_product_payment_type],\n trade_product_payment_mode: [records.trade_product_payment_mode],\n trade_product_frequency_of_purchase: [records.trade_product_frequency_of_purchase],\n trade_product_credit_days_from: [records.trade_product_credit_days_from],\n trade_product_credit_days_to: [records.trade_product_credit_days_to],\n })\n }\n }\n\n initServiceProvidersDetails(datas) {\n console.log('datas',datas);\n const control = this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers'];\n\n if (datas === null) {\n console.log('initServiceProvidersDetails if null');\n control.push(this.initServiceProviders(null));\n } else {\n console.log('else not null');\n datas.forEach((val, inx) => {\n this.checkCard(val.service_provider_payment_type, 3, inx);\n control.push(this.initServiceProviders(val));\n });\n }\n }\n\n initServiceProviders(records) {\n console.log('initServiceProviders',records);\n if (records === null) {\n console.log('if');\n return this.fb.group({\n service_provider_name: [''],\n service_provider_supplier_name: [''],\n person_title_name: [''],\n person_designation: [''],\n other_person_designation: [''],\n service_provider_contact_person_name: [''],\n service_provider_contact_person_mobile_number: [''],\n person_stdcode: [null],\n person_landline: [null],\n service_provider_payment_type: [''],\n service_provider_payment_mode: [''],\n service_provider_frequency_of_purchase: [''],\n service_provider_credit_days_from: [''],\n service_provider_credit_days_to: [''],\n })\n } else {\n console.log('else');\n return this.fb.group({\n service_provider_name: [records.service_provider_name],\n person_title_name: [records.person_title_name],\n person_designation: [records.person_designation],\n other_person_designation: [records.other_person_designation],\n service_provider_supplier_name: [records.service_provider_supplier_name],\n service_provider_contact_person_name: [records.service_provider_contact_person_name],\n service_provider_contact_person_mobile_number: [records.service_provider_contact_person_mobile_number],\n person_stdcode: [records.person_stdcode],\n person_landline: [records.person_landline],\n service_provider_payment_type: [records.service_provider_payment_type],\n service_provider_payment_mode: [records.service_provider_payment_mode],\n service_provider_frequency_of_purchase: [records.service_provider_frequency_of_purchase],\n service_provider_credit_days_from: [records.service_provider_credit_days_from],\n service_provider_credit_days_to: [records.service_provider_credit_days_to],\n })\n }\n }\n\n addMoreRawMaterials(e): void {\n // e.stropPropagation();\n const control = this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n\n control.push(this.initManufacturingProducts(null));\n }\n\n removeRawMaterials(inx): void {\n const control = this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n control.removeAt(inx);\n }\n\n addMoretradeProduct(e): void {\n // e.stropPropagation();\n const control = this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n\n control.push(this.initTradingProducts(null));\n }\n\n removeTradingProduct(inx): void {\n const control = this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n control.removeAt(inx);\n }\n\n addMoreServiceProvider(e): void {\n // e.stropPropagation();\n const control = this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers'];\n control.push(this.initServiceProviders(null));\n }\n\n removeServiceProvider(inx): void {\n const control = this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers'];\n control.removeAt(inx);\n }\n\n\n getdropList() {\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(\n data => {\n this.m_companyRelationShipList = data['records']\n //.filter(data => data.isactive == 1); \n // because in general no need of \"other\" option but in supplier others option needed - in DB others option changed into inactive\"\n });\n\n this.qustCat.getcommondrop('TITLES').subscribe(\n data => {\n this.m_titleList = data['records'].filter(data => data.isactive == 1);\n });\n\n this.qustCat.getcommondrop('PAYMENTMODE').subscribe(\n data => {\n this.m_paymentList = data['records'].filter(data => data.isactive == 1);\n });\n }\n saveSupplierInfoWithImageCheck(answerFormValues) {\n console.log(\"forms\", answerFormValues);\n let required_imageCheck = this.mandatoryImageCheck(answerFormValues)\n console.log(\"required image check\", required_imageCheck);\n if (!required_imageCheck) {\n let alert = this.toast.setAlert(\"Mandatory photographs not taken\", \" Do you want to take it later?\")\n alert.present();\n alert.onDidDismiss(value => {\n if (value == 's') {\n this.saveSupplierInfo(answerFormValues)\n }\n else {\n return true;\n }\n })\n }\n else {\n this.saveSupplierInfo(answerFormValues)\n }\n }\n\n\n saveSupplierInfo(FormValues) {\n\n var answerFormValues = FormValues;\n\n Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);\n\n this.qustCat.saveForm(answerFormValues).subscribe(responsed => {\n if (responsed['status'] == 200) {\n this.supplierInfoForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(() => {\n this.navCtrl.pop();\n }, 2000);\n } else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n });\n\n }\n\n selectedPersonDesignation(items, e, flag) {\n if (flag == 1) {\n e == 1 ? '' : '';\n // e==1 ? items.controls['other_person_designation'].setValidators([Validators.required])\n // : items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 2) {\n e == 1 ? '' : '';\n // e==1 ?items.controls['other_person_designation'].setValidators([Validators.required])\n // :items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 3) {\n e == 1 ? '' : '';\n }\n }\n\n mfgCreditCardFlag: boolean = false;\n trdCreditCardFlag: boolean = false;\n spCreditCardFlag: boolean = false;\n\n mfgCounter: any = [];\n trdCounter: any = [];\n spCounter: any = [];\n\n checkCard(e, flag, index) {\n if (flag == 2 && e == 3) {\n this.trdCounter[index] = 1;\n }\n else if (flag == 2 && e != 3) {\n this.trdCounter[index] = 0;\n }\n let TRD = this.trdCounter.reduce((sum, val) => sum + +val, 0);\n this.trdCreditCardFlag = TRD > 0 ? true : false;\n\n if (flag == 1 && e == 3) {\n this.mfgCounter[index] = 1;\n }\n else if (flag == 1 && e != 3) {\n this.mfgCounter[index] = 0;\n }\n let MFG = this.mfgCounter.reduce((sum, val) => sum + +val, 0);\n this.mfgCreditCardFlag = MFG > 0 ? true : false;\n\n if (flag == 3 && e == 3) {\n this.spCounter[index] = 1;\n }\n else if (flag == 3 && e != 3) {\n this.spCounter[index] = 0;\n }\n let SP = this.spCounter.reduce((sum, val) => sum + +val, 0);\n this.spCreditCardFlag = SP > 0 ? true : false;\n\n }\n\n selectedPaymentTerms(items, e, flag) {\n if (flag == 2) {\n if (e == 3) {\n // items.controls['trade_product_credit_days_from'].setValidators([Validators.required]);\n // items.controls['trade_product_credit_days_to'].setValidators([Validators.required]);\n }\n else {\n items.controls['trade_product_credit_days_from'].clearValidators();\n items.controls['trade_product_credit_days_from'].setValue('');\n items.controls['trade_product_credit_days_to'].clearValidators();\n items.controls['trade_product_credit_days_to'].setValue('');\n }\n items.controls['trade_product_credit_days_from'].updateValueAndValidity();\n items.controls['trade_product_credit_days_to'].updateValueAndValidity();\n }\n else if (flag == 1) {\n if (e == 3) { //items.controls['manufacturing_credit_days_from'].setValidators([Validators.required]);\n //items.controls['manufacturing_credit_days_to'].setValidators([Validators.required]);\n }\n else {\n items.controls['manufacturing_credit_days_from'].clearValidators();\n items.controls['manufacturing_credit_days_from'].setValue('');\n items.controls['manufacturing_credit_days_to'].clearValidators();\n items.controls['manufacturing_credit_days_to'].setValue('');\n }\n items.controls['manufacturing_credit_days_from'].updateValueAndValidity();\n items.controls['manufacturing_credit_days_to'].updateValueAndValidity();\n }\n\n if (flag == 3) {\n if (e == 3) {\n // items.controls['service_provider_credit_days_from'].setValidators([Validators.required]);\n // items.controls['service_provider_credit_days_to'].setValidators([Validators.required]);\n }\n else {\n // items.controls['service_provider_credit_days_from'].clearValidators();\n items.controls['service_provider_credit_days_from'].setValue('');\n // items.controls['service_provider_credit_days_to'].clearValidators();\n items.controls['service_provider_credit_days_to'].setValue('');\n }\n items.controls['service_provider_credit_days_from'].updateValueAndValidity();\n items.controls['service_provider_credit_days_to'].updateValueAndValidity();\n }\n }\n\n /*IMAGE SECTION*/\n getPDImages() {\n //FOR RETRIEVING PICTURES\n this.imageDisplay = []\n let record_for_pic = { 'pd_id': this.pdDetails.pd_id, 'form_id': this.formDetails.form_id, 'company_id': this.pdDetails.company_id }\n this.qustCat.getPDImages(record_for_pic).subscribe(val => {\n if (!val['msg']) {\n console.log(val['records'])\n if (val['records'].length > 0) {\n val['records'].forEach(result => {\n this.imageDisplay.push({ 'image': result.doc_url, 'Name': result.pd_document_title, 'option': 'dummy' })\n })\n console.log(\"imageBuck\", this.imageDisplay);\n }\n }\n })\n }\n changeName(value, index, img) {\n console.log(value);\n this.imageDisplay[index] = { 'image': img, 'Name': value }\n\n }\n changeNameForBucket(value, index, img) {\n this.imageBucket[index] = { 'image': img, 'Name': value }\n }\n removeImg(index) {\n this.imageDisplay.splice(index, 1);\n }\n removeImgForBucket(index) {\n this.imageBucket.splice(index, 1)\n }\n\n\n captureTheSupplierPics(materialName, index, supplierName) {\n \n \n if (supplierName != '') {\n // 'Raw Material','l',items.get('manufacturing_supplier_name').value \n this.cameraProvider.getpicture().then(res => {\n if (res != 'error') {\n this.constantProvider.getGeoTag().then(geoCoordinates => {\n console.log(\"geo promise\", geoCoordinates)\n this.imageBucket.push({ 'image': res, 'Name': supplierName + ' - ' + materialName + ' ' + (index + 1), 'link': geoCoordinates });\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n this.tab = '1';\n }\n else if (supplierName == '') {\n alert('Please Fill The Supplier Name');\n }\n\n }\n mandatoryImageCheck(Form_values) {\n let Form_names = []\n if (Form_values.manufacturing_details.length != 0 && Form_values.manufacturing_details[0] != null) {\n if (Form_values.manufacturing_details[0].main_raw_materials.length != 0) {\n Form_values.manufacturing_details[0].main_raw_materials.forEach((value, index) => {\n Form_names.push({ 'index': index + 1, 'name': value.manufacturing_supplier_name + ' - ' + 'Raw Material ' + (index + 1) })\n })\n }\n }\n // if(Form_values.service_provider_details.length != 0 && Form_values.service_provider_details[0] != null ){\n // if(Form_values.service_provider_details[0].service_products.length != 0){\n // Form_values.service_provider_details[0].service_products.forEach((value,index)=>{\n // Form_names.push({'index':index+1,'name':value.service_provider_client_name+' - '+ 'Service Provided ' + (index+1) })\n // })\n // }\n // }\n if (Form_values.trade_details.length != 0 && Form_values.trade_details[0] != null) {\n if (Form_values.trade_details[0].trading_products.length != 0) {\n Form_values.trade_details[0].trading_products.forEach((value, index) => {\n Form_names.push({ 'index': index + 1, 'name': value.trade_supplier_name + ' - ' + 'Trading Product ' + (index + 1) })\n })\n }\n }\n // console.log(\"Form Values\",Form_names);\n // console.log(\"image values\",this.imageDisplay)\n let valBool\n let count: number = 0;\n let mandatoryimgSaved = []\n let mandatoryimgNotSaved = []\n\n if (Form_names.length != 0) {\n // if( this.imageDisplay.length !=0){\n Form_names.forEach(formvalue => {\n this.imageDisplay.forEach((imgvalue) => {\n\n // console.log(\"Form values individuals\",formvalue)\n if (formvalue.name != imgvalue.Name) {\n\n valBool = true\n }\n else {\n\n valBool = false\n\n count++;\n\n\n }\n if (count >= 2 && valBool == false) {\n // console.log(\"end of image dis\",formvalue.name,\"count \",count)\n mandatoryimgSaved.push(formvalue.name)\n //return\n }\n else {\n mandatoryimgNotSaved.push(formvalue.name)\n return\n }\n\n })\n if (valBool == true)\n console.log(\"Form name\", formvalue.name)\n\n mandatoryimgNotSaved.push(formvalue.name)\n\n })\n\n console.log(\"mandatoryimgSaved\", mandatoryimgSaved)\n console.log(\"mandatoryimgNot Saved\", mandatoryimgNotSaved)\n mandatoryimgSaved.forEach(res => {\n mandatoryimgNotSaved = mandatoryimgNotSaved.filter(val => val != res)\n\n })\n\n // console.log(\"res for not saved img\",mandatoryimgNotSaved);\n // let uniquenotsavedImage=[ ...new Set(mandatoryimgNotSaved)]\n let uniquenotsavedImage = (mandatoryimgNotSaved) => mandatoryimgNotSaved.filter((val, i) => mandatoryimgNotSaved.indexOf(val) === i)\n console.log(\"uniw\", uniquenotsavedImage(mandatoryimgNotSaved));\n if (uniquenotsavedImage(mandatoryimgNotSaved).length > 0) {\n return false\n }\n else {\n return true\n }\n\n //COUNTING THE DUPLICATES IN AN ARRAY\n // var arr = ['a','b','c','d','d','e','a','b','c','f','g','h','h','h','e','a'];\n // var map = arr.reduce(function(prev, cur) {\n // prev[cur] = (prev[cur] || 0) + 1;\n // return prev;\n // }, {});\n\n // map is an associative array mapping the elements to their frequency:\n // console.log(map);\n // prints {\"a\": 3, \"b\": 2, \"c\": 2, \"d\": 2, \"e\": 2, \"f\": 1, \"g\": 1, \"h\": 3}\n //}\n }\n else {\n return true\n }\n\n }\n\n capture() {\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res => {\n console.log(\"Value\", res)\n if (res != 'error') {\n this.constantProvider.getGeoTag().then(geoCoordinates => {\n console.log(\"geo promise\", geoCoordinates)\n this.imageBucket.push({ 'image': res, 'Name': '', 'link': geoCoordinates });\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert = this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value => {\n console.log(\"alert value\", value);\n if (value) {\n this.imageBucket[this.imageBucket.length - 1].Name = value.Name\n }\n })\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n this.tab = '1';\n\n\n }\n sendImage() {\n this.loading.loaderForSendImage()\n console.log(\"ll\", JSON.stringify(this.imageBucket));\n\n let records: any = {\n 'pd_id': this.pdDetails.pd_id,\n 'formid': this.formDetails.form_id,\n 'images': this.imageBucket,\n 'company_id': this.pdDetails.company_id,\n\n }\n console.log(\"records\", JSON.stringify(records))\n\n this.qustCat.savePDImages(records).subscribe(res => {\n if (res['dataStatus'] == true) {\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket = []\n this.getPDImages();\n }\n else {\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { FormArray, FormGroup, FormBuilder } from '@angular/forms';\nimport { ConstantsProvider } from '../../../../providers/constants/constants';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionStockInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-stock-info',\n templateUrl: 'pd-question-stock-info.html',\n})\nexport class PdQuestionStockInfoPage {\n\n uomData: any;\n uomDataValue:any;\n rawmaterial: any;\n users: any;\n formDetails: any;\n pdDetails: any;\n company_id: any;\n pdid: any;\n stockForm: FormGroup;\n noRecordsFound: Boolean;\n errorMessage: any = '';\n M_rawValueInWords: any = [];\n M_goodsValueInWords: any = [];\n R_tradedGoodsValueInWords: any = [];\n T_tradedGoodsValueInWords: any = [];\n S_GoodsValueInWords: any = [];\n mrmCommentFlag: any = [];\n mfgCommentFlag: any = [];\n rtrdCommentFlag: any = [];\n wtrdCommentFlag: any = [];\n spdCommentFlag: any = [];\n\n // serviceProviderForm: Boolean = false;\n suppliers_raw_materials: any = [];\n suppliers_retail_trade_details: any = [];\n suppliers_wholesale_trade_details: any = [];\n suppliers_finished_goods: any = [];\n suppliers_service_providers : any = [];\n\n protected _onDestroy = new Subject();\n\n RMCommentCard: boolean = false;\n TGCommentCard: boolean = false;\n SPCommentCard: boolean = false;\n public RMsufficientList: any = [{value:\"yes\",isdisplayvalue:\"Yes\",disabled:false},{value:\"no\",isdisplayvalue:\"No\",disabled:false},{value:\"not applicable\",isdisplayvalue:\"Stock not required to be maintained\",disabled:false}];\n public TGsufficientList: any = [{value:\"yes\",isdisplayvalue:\"Yes\",isdisabled:false},{value:\"no\",isdisplayvalue:\"No\",isdisabled:false},{value:\"not applicable\",isdisplayvalue:\"Stock not required to be maintained\",isdisabled:false}];\n public SPsufficientList: any = [{value:\"yes\",isdisplayvalue:\"Yes\",isdisabled:false},{value:\"no\",isdisplayvalue:\"No\",isdisabled:false},{value:\"not applicable\",isdisplayvalue:\"Stock not required to be maintained\",isdisabled:false}];\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n \n constructor(public navCtrl: NavController, public navParams: NavParams, public qustCat: QuestionCategoryProvider, \n public aws: AwsServiceProvider, public toast: ToastProvider, public fb: FormBuilder, \n public constant: ConstantsProvider,private cameraProvider:CameraProvider,private loading:LoadingProvider)\n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.formDetails = this.navParams.get('formDetails');\n this.users = this.aws.getlocale();\n this.company_id = this.pdDetails.company_id;\n this.pdid = this.pdDetails.pd_id; \n this.qustCat.stockFormAccess(this.pdid, this.company_id).subscribe(data => {\n if (data.dataStatus == true) {\n this.initstockForm(data.record);\n }\n else if (data.dataStatus == false) {\n this.toast.pdTriggerappmessage('Fill Business Form First! / No Company Found at this ID ' + this.company_id);\n this.noRecordsFound = false;\n this.errorMessage = 'Fill Business Form First! / No Company Found at this ID' + this.company_id + '! ....';\n return;\n }\n else {\n this.toast.pdTriggerappmessage('Fill Business Form First! / No Company Found at this ID ' + this.company_id);\n this.noRecordsFound = false;\n this.errorMessage = 'Fill Business Form First! / No Company Found at this ID' + this.company_id + '! ....';\n return;\n }\n }, err => {\n this.toast.pdTriggerappmessage('Business Type Of Activity Not Available Please Check Business Information.!');\n this.noRecordsFound = false;\n this.errorMessage = 'No Records Found , Something went Wrong!';\n })\n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionStockInfoPage');\n this.getPDImages();\n }\n\n public initstockForm(record) {\n let api = Object.keys(record.from_business).map(function (key) {\n return record.from_business[key];\n });\n if (record.from_business.length > 0) {\n let type2 = record.from_business.filter(data => data.type_of_activity_id == 2);\n let type2length = type2[0].hasOwnProperty(\"products\") ? type2[0].products.length : 0;\n let type3 = record.from_business.filter(data => data.type_of_activity_id == 3);\n let type3length = type3[0].hasOwnProperty(\"products\") ? type3[0].products.length : 0;\n let type4 = record.from_business.filter(data => data.type_of_activity_id == 4);\n let type4length = type4[0].hasOwnProperty(\"products\") ? type4[0].products.length : 0;\n let type5 = record.from_business.filter(data => data.type_of_activity_id == 5);\n let type5length = type5[0].hasOwnProperty(\"products\") ? type5[0].products.length : 0;\n console.log('type5length',type5,type5length);\n\n\n let rm_api = record.from_supplier.hasOwnProperty(\"raw_material\") ? record.from_supplier.raw_material : [];\n\n let params: any = {};\n params.parent_pdid=this.pdDetails.parent_pd_id;\n params.pd_id = this.pdid;\n params.pd_form_id = this.formDetails.form_id;\n params.company_id = this.company_id;\n this.qustCat.retiverForm(params).subscribe(value => {\n if (value['status'] == 200) {\n let dataForm = value['records'];\n // dataForm.manufacturing_details.forEach(top=>{\n // top.manufacturing_finished_goods.forEach(below1=>{\n // below1.uomSearch=''\n // })\n // top.manufacturing_raw_materials.forEach(below2=>{\n // below2.uomSearch=''\n // })\n // })\n if (dataForm !== undefined) {\n this.stockForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n stock_remarks: [dataForm.stock_remarks],\n\n // is_sufficiant_raw:[dataForm.is_sufficiant_raw],\n // rawmaterial_remarks:[dataForm.rawmaterial_remarks],\n is_sufficiant_finished_and_traded_goods: [dataForm.is_sufficiant_finished_and_traded_goods],\n finished_and_traded_goods_remarks: [dataForm.finished_and_traded_goods_remarks],\n\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record,type2length)]),\n retail_details: this.fb.array([this.retailFormCreation(type3length)]),\n trade_details: this.fb.array([this.tradingFormCreation(type4length)]),\n servicing_details: this.fb.array([this.servicingFormCreation(type5length)]),\n is_sufficiant_service_goods: [dataForm.hasOwnProperty('is_sufficiant_service_goods') ? dataForm.is_sufficiant_service_goods : ''],\n service_goods_remarks: [dataForm.hasOwnProperty('service_goods_remarks') ? dataForm.service_goods_remarks : '' ]\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 2) {\n if (val.products) {\n // if(dataForm.manufacturing_details[0].manufacturing_finished_goods ){this.finishedAndTradedGoodsCommentCard = true;}\n let manufacturing_temparr = [];\n manufacturing_temparr['manufacturing_raw_materials'] = dataForm.manufacturing_details[0].manufacturing_raw_materials;\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue(dataForm.manufacturing_details[0].is_sufficiant_raw),\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['rawmaterial_remarks'].setValue(dataForm.manufacturing_details[0].rawmaterial_remarks);\n manufacturing_temparr['manufacturing_finished_goods'] = dataForm.manufacturing_details[0].manufacturing_finished_goods;\n this.initManufacturingDetails(manufacturing_temparr);\n }\n }\n if (val.type_of_activity_id == 3) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n let retail_temparr = [];\n retail_temparr['retail_traded_goods'] = dataForm.retail_details[0].retail_traded_goods;\n\n this.initRetailDetails(retail_temparr);\n }\n }\n if (val.type_of_activity_id == 4) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n let trading_temparr = [];\n trading_temparr['trading_traded_goods'] = dataForm.trade_details[0].trading_traded_goods;\n console.log(\"Trade\", trading_temparr)\n this.initTradingDetails(trading_temparr);\n }\n }\n if (val.type_of_activity_id == 5) {\n if (val.products) {\n // this.serviceProviderForm = true;\n let servicing_temparr = [];\n if(dataForm.hasOwnProperty('service_provider')){\n servicing_temparr['service_provider'] = dataForm.servicing_details[0].service_provider;\n this.initServicingDetails(servicing_temparr);\n }\n else{\n this.suppliers_service_providers = val.products;\n this.initServicingDetails(null); \n }\n }\n }\n });\n this.noRecordsFound = true;\n }\n }\n else {\n this.stockForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n stock_remarks: [''],\n // is_sufficiant_raw:[''],\n // rawmaterial_remarks:[''],\n is_sufficiant_finished_and_traded_goods: [''],\n finished_and_traded_goods_remarks: [''],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record,type2length)]),\n retail_details: this.fb.array([this.retailFormCreation(type3length)]),\n trade_details: this.fb.array([this.tradingFormCreation(type4length)]),\n servicing_details: this.fb.array([this.servicingFormCreation(type5length)]),\n is_sufficiant_service_goods: [''],\n service_goods_remarks: ['']\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 2) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_finished_goods = val.products;\n this.initManufacturingDetails(null);\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue(dataForm.manufacturing_details[0].is_sufficiant_raw.value || null),\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['rawmaterial_remarks'].setValue(dataForm.manufacturing_details[0].rawmaterial_remarks || null);\n }\n }\n if (val.type_of_activity_id == 3) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_retail_trade_details = val.products;\n this.initRetailDetails(null);\n }\n }\n if (val.type_of_activity_id == 4) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_wholesale_trade_details = val.products;\n this.initTradingDetails(null);\n }\n }\n if (val.type_of_activity_id == 5) {\n if (val.products) {\n \n this.suppliers_service_providers = val.products;\n this.initServicingDetails(null);\n // this.serviceProviderForm = true;\n }\n }\n });\n this.noRecordsFound = true;\n }\n }\n }\n else {\n console.log(\"Record\", record)\n this.stockForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n stock_remarks: [''],\n\n // is_sufficiant_raw:[''],\n // rawmaterial_remarks:[''],\n is_sufficiant_finished_and_traded_goods: [''],\n finished_and_traded_goods_remarks: [''],\n\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record,type2length)]),\n retail_details: this.fb.array([this.retailFormCreation(type3length)]),\n\n trade_details: this.fb.array([this.tradingFormCreation(type4length)]),\n servicing_details: this.fb.array([this.servicingFormCreation(type5length)]),\n \n is_sufficiant_service_goods: [''],\n service_goods_remarks: ['']\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 2) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_finished_goods = val.products;\n this.suppliers_raw_materials = rm_api;\n this.initManufacturingDetails(null);\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue(null);\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['rawmaterial_remarks'].setValue(null);\n }\n }\n if (val.type_of_activity_id == 3) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_retail_trade_details = val.products;\n this.initRetailDetails(null);\n }\n }\n if (val.type_of_activity_id == 4) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_wholesale_trade_details = val.products;\n this.initTradingDetails(null);\n }\n }\n if (val.type_of_activity_id == 5) {\n if (val.products) {\n this.suppliers_service_providers = val.products;\n this.initServicingDetails(null);\n // this.serviceProviderForm = true;\n }\n }\n });\n this.noRecordsFound = true;\n }\n }\n })\n }\n else {\n this.toast.pdTriggerappmessage('Fill Business Form First! / No Company Found at this ID ' + this.company_id);\n this.noRecordsFound = false;\n this.errorMessage = 'Fill Business Form First! / No Company Found at this ID' + this.company_id + '! ....';\n return;\n }\n }\n\n \n\n\n getdropdown() {\n this.qustCat.getcommondrop('UOM').subscribe(data => {\n if (data['dataStatus'] == true) {\n this.uomData = data['records'].filter(uom => uom.isactive == 1 && uom.is_land_uom == 0 || uom.is_land_uom == 2);\n this.uomDataValue=this.uomData.slice();\n }\n });\n }\n\n manufacturingForm: Boolean = false;\n manufacturingFormCreation(record,length) {\n let arr = record.from_business.filter(data => data.type_of_activity_id == 2);\n let rm_arr = record.from_supplier.hasOwnProperty(\"raw_material\") ? record.from_supplier.raw_material : [];\n //console.log(\"Manufacturing \",arr);\n //console.log(\"rm_arr\",rm_arr);\n if (length > 0) {\n this.manufacturingForm = true;\n return this.fb.group({\n is_sufficiant_raw: [],\n rawmaterial_remarks: [],\n manufacturing_raw_materials: this.fb.array([]),\n manufacturing_finished_goods: this.fb.array([]),\n })\n } else {\n return this.fb.group({\n is_sufficiant_raw: [],\n rawmaterial_remarks: [],\n manufacturing_raw_materials: this.fb.array([]),\n manufacturing_finished_goods: this.fb.array([]),\n })\n // return;\n }\n }\n\n retailForm: Boolean = false;\n retailFormCreation(val) {\n //let arr = val.filter(data => data.type_of_activity_id == 3);\n let arr = val\n // console.log(\"retail Form \", arr);\n if (arr > 0) {\n // if(arr.products != undefined){\n this.retailForm = true;\n return this.fb.group({\n retail_traded_goods: this.fb.array([])\n });\n // }else{\n // this.retailForm = false;\n // return;\n // } \n } else {\n return this.fb.group({\n retail_traded_goods: this.fb.array([])\n });\n // return;\n }\n }\n\n tradingForm: Boolean = false;\n tradingFormCreation(val) {\n let arr = val\n //let arr = val.filter(data => data.type_of_activity_id == 4);\n\n if (arr > 0) {\n\n // if(arr.products === undefined){\n\n // this.tradingForm = false;\n // return;\n // }\n this.tradingForm = true;\n return this.fb.group({\n trading_traded_goods: this.fb.array([])\n });\n } else {\n return this.fb.group({\n trading_traded_goods: this.fb.array([])\n });\n // return;\n }\n }\n\n servicingForm: Boolean = false;\n servicingFormCreation(val) {\n console.log('inside servicingFormCreation',val);\n let arr = val\n // let arr = val.filter(data => data.type_of_activity_id == 4);\n if (arr > 0){\n console.log('IF');\n this.servicingForm = true;\n return this.fb.group({\n service_provider: this.fb.array([])\n });\n } else {\n console.log('Else');\n return this.fb.group({\n service_provider: this.fb.array([])\n });\n }\n }\n\n\n initManufacturingDetails(datas) {\n const rawMaterial = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_raw_materials'];\n const finishedGoods = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_finished_goods'];\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n if (datas === null) {\n if (this.suppliers_raw_materials.length > 0) {\n this.suppliers_raw_materials.forEach(val => {\n let Ref_RawMaterials: any = {\n 'raw_name': val,\n 'stock_observed': '',\n 'raw_quantity': '',\n 'raw_uom': '',\n 'other_uom': '',\n 'raw_value': '',\n // 'is_sufficiant_raw': '',\n // 'rawmaterial_remarks': ''\n };\n rawMaterial.push(this.createRawmaterial(Ref_RawMaterials));\n });\n }\n else {\n rawMaterial.push(this.createRawmaterial(null));\n }\n if (this.suppliers_finished_goods.length > 0) {\n this.suppliers_finished_goods.forEach(val => {\n let Ref_Finished_Goods: any = {\n 'goods_name': val,\n 'goods_observed': '',\n 'goods_quantity': '',\n 'goods_uom': '',\n 'goods_other_uom': '',\n 'goods_value': '',\n // 'is_sufficiant_goods': '',\n // 'finishedgoods_remarks': ''\n };\n finishedGoods.push(this.createGoods(Ref_Finished_Goods));\n });\n }\n else {\n finishedGoods.push(this.createGoods(null));\n }\n } else {\n if (datas.manufacturing_raw_materials != undefined) {\n datas.manufacturing_raw_materials.forEach((val, index) => {\n if (val.raw_value) {\n this.inWords(val.raw_value, 1, index);\n }\n // this.checkComments(val.is_sufficiant_raw,1,index);\n this.checkComments(val.stock_observed, 1, index);\n rawMaterial.push(this.createRawmaterial(val));\n });\n }\n else {\n rawMaterial.push(this.createRawmaterial(null));\n }\n if (datas.manufacturing_finished_goods != undefined) {\n datas.manufacturing_finished_goods.forEach((val, index) => {\n if (val.goods_value) {\n this.inWords(val.goods_value, 2, index);\n }\n // this.checkComments(val.is_sufficiant_goods,2,index);\n this.checkComments(val.goods_observed, 2, index);\n finishedGoods.push(this.createGoods(val));\n\n });\n }\n else {\n finishedGoods.push(this.createGoods(null));\n }\n }\n }\n\n createRawmaterial(records) {\n if (records === null) {\n return this.fb.group({\n raw_name: [''],\n stock_observed: [''],\n raw_quantity: [''],\n raw_uom: [''],\n uomSearch:[null],\n other_uom: [''],\n raw_value: [''],\n // is_sufficiant_raw: [''],\n // rawmaterial_remarks: ['']\n })\n } else {\n return this.fb.group({\n raw_name: [records.raw_name],\n stock_observed: [records.stock_observed],\n raw_quantity: [records.raw_quantity],\n raw_uom: [records.raw_uom],\n uomSearch:[null],\n other_uom: [records.other_uom],\n raw_value: [records.raw_value],\n // is_sufficiant_raw: [records.is_sufficiant_raw],\n // rawmaterial_remarks: [records.rawmaterial_remarks]\n })\n }\n }\n\n initRetailDetails(datas) {\n const tradedGoods = this.stockForm.controls['retail_details']['controls'][0].controls['retail_traded_goods'];\n if (datas === null) {\n if (this.suppliers_retail_trade_details.length > 0) {\n // this.rawMaterialAccess = true;\n this.suppliers_retail_trade_details.forEach(val => {\n let Ref_Trade_Goods: any = {\n 'traded_goods_name': val,\n 'traded_goods_observed': '',\n 'traded_goods_quantity': '',\n 'traded_goods_uom': '',\n 'traded_goods_other_uom': '',\n 'estimated_traded_goods_value': '',\n // 'is_sufficiant_traded_goods': '',\n // 'traded_goods_remarks': ''\n };\n tradedGoods.push(this.createTradedGoods(Ref_Trade_Goods));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n } else {\n if (datas.retail_traded_goods !== undefined) {\n datas.retail_traded_goods.forEach((val, index) => {\n if (val.estimated_traded_goods_value) {\n this.inWords(val.estimated_traded_goods_value, 3, index);\n }\n // this.checkComments(val.is_sufficiant_traded_goods,3,index);\n this.checkComments(val.traded_goods_observed, 3, index);\n tradedGoods.push(this.createTradedGoods(val));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n }\n }\n\n\n createGoods(records) {\n if (records === null) {\n return this.fb.group({\n goods_name: [''],\n goods_observed: [''],\n goods_quantity: [''],\n goods_uom: [''],\n uomSearch:[null],\n goods_other_uom: [''],\n goods_value: [''],\n // is_sufficiant_goods: [''],\n // finishedgoods_remarks: ['']\n });\n }\n else {\n return this.fb.group({\n goods_name: [records.goods_name],\n goods_observed: [records.goods_observed],\n goods_quantity: [records.goods_quantity],\n goods_uom: [records.goods_uom],\n uomSearch:[null],\n goods_other_uom: [records.goods_other_uom],\n goods_value: [records.goods_value],\n // is_sufficiant_goods: [records.is_sufficiant_goods],\n // finishedgoods_remarks: [records.finishedgoods_remarks]\n })\n }\n }\n\n initTradingDetails(datas) {\n const tradedGoods = this.stockForm.controls['trade_details']['controls'][0].controls['trading_traded_goods'];\n if (datas === null) {\n if (this.suppliers_wholesale_trade_details.length > 0) {\n this.suppliers_wholesale_trade_details.forEach(val => {\n let Ref_Trade_Goods: any = {\n 'traded_goods_name': val,\n 'traded_goods_observed': '',\n 'traded_goods_quantity': '',\n 'traded_goods_uom': '',\n 'traded_goods_other_uom': '',\n 'estimated_traded_goods_value': '',\n // 'is_sufficiant_traded_goods': '',\n // 'traded_goods_remarks': ''\n };\n tradedGoods.push(this.createTradedGoods(Ref_Trade_Goods));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n\n } else {\n if (datas.trading_traded_goods !== undefined) {\n datas.trading_traded_goods.forEach((val, index) => {\n if (val.estimated_traded_goods_value) {\n this.inWords(val.estimated_traded_goods_value, 4, index);\n }\n // this.checkComments(val.is_sufficiant_traded_goods,4,index);\n this.checkComments(val.traded_goods_observed, 4, index);\n tradedGoods.push(this.createTradedGoods(val));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n }\n }\n\n createTradedGoods(records) {\n if (records === null) {\n return this.fb.group({\n traded_goods_name: [''],\n traded_goods_observed: [''],\n traded_goods_quantity: [''],\n traded_goods_uom: [''],\n uomSearch:[null],\n traded_goods_other_uom: [''],\n estimated_traded_goods_value: [''],\n // is_sufficiant_traded_goods: [''],\n // traded_goods_remarks: ['']\n });\n }\n else {\n return this.fb.group({\n traded_goods_name: [records.traded_goods_name],\n traded_goods_observed: [records.traded_goods_observed],\n traded_goods_quantity: [records.traded_goods_quantity],\n traded_goods_uom: [records.traded_goods_uom],\n uomSearch:[null],\n traded_goods_other_uom: [records.traded_goods_other_uom],\n estimated_traded_goods_value: [records.estimated_traded_goods_value],\n // is_sufficiant_traded_goods: [records.is_sufficiant_traded_goods],\n // traded_goods_remarks: [records.traded_goods_remarks]\n })\n }\n }\n\n\n initServicingDetails(datas) {\n const service = this.stockForm.controls['servicing_details']['controls'][0].controls['service_provider'];\n if (datas === null) {\n \n if (this.suppliers_service_providers.length > 0) {\n this.suppliers_service_providers.forEach(val => {\n let Serv_Prov_Goods: any = {\n 'service_provider_name': val,\n 'service_provider_observed': '',\n 'service_provider_quantity': '',\n 'service_provider_uom': '',\n 'service_provider_other_uom': '',\n 'estimated_service_provider_value': ''\n }\n\n service.push(this.createServiceProvider(Serv_Prov_Goods));\n });\n }\n else {\n service.push(this.createServiceProvider(null));\n }\n } else {\n if (datas.service_provider !== undefined) {\n datas.service_provider.forEach((val, index) => {\n if (val.estimated_service_provider_value) {\n this.inWords(val.estimated_service_provider_value, 5, index);\n }\n this.checkComments(val.service_provider_observed, 5, index);\n service.push(this.createServiceProvider(val));\n \n });\n }\n else {\n service.push(this.createServiceProvider(null));\n }\n }\n }\n\n createServiceProvider(records) {\n \n if (records === null) {\n \n return this.fb.group({\n service_provider_name: [''],\n service_provider_observed: [''],\n service_provider_quantity: [''],\n service_provider_uom: [''],\n uomSearch:[null],\n service_provider_other_uom: [''],\n estimated_service_provider_value: [''],\n // traded_goods_value: [''],\n });\n }\n else {\n \n return this.fb.group({\n service_provider_name: [records.service_provider_name],\n service_provider_observed: [records.service_provider_observed],\n service_provider_quantity: [records.service_provider_quantity],\n service_provider_uom: [records.service_provider_uom],\n uomSearch:[null],\n service_provider_other_uom: [records.service_provider_other_uom],\n estimated_service_provider_value: [records.estimated_service_provider_value],\n // traded_goods_value: [records.traded_goods_value],\n\n })\n }\n }\n\n /** Manufacturing -> To Add More Raw Material Details */\n addRawMaterials(flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_raw_materials'];\n control.push(this.createRawmaterial(null));\n }\n }\n\n /** Manufacturing -> To Remove Raw Material Details */\n deleteRawMaterials(index, flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_raw_materials'];\n control.removeAt(index);\n }\n }\n\n /** Manufacturing -> To Add More Finished Goods */\n addGoods(flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_finished_goods'];\n control.push(this.createGoods(null));\n }\n }\n\n /** Manufacturing -> To Remove Finished Goods */\n deleteGoods(index, flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_finished_goods'];\n control.removeAt(index);\n }\n }\n\n /**\n * Case 1 Retail Traded -> To Add More trade Goods\n * Case 2 wholesale Traded -> To Add More trade Goods\n */\n addTradedGoods(flag) {\n switch (flag) {\n case 1: {\n const control = this.stockForm.controls['retail_details']['controls'][0].controls['retail_traded_goods'];\n control.push(this.createTradedGoods(null));\n break;\n }\n case 2: {\n const control = this.stockForm.controls['trade_details']['controls'][0].controls['trading_traded_goods'];\n control.push(this.createTradedGoods(null));\n break;\n }\n case 3: {\n const control = this.stockForm.controls['servicing_details']['controls'][0].controls['service_provider'];\n control.push(this.createServiceProvider(null));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Case 1 Retail Traded -> To remove trade Goods\n * Case 2 wholesale Traded -> To remove trade Goods\n */\n deleteTradedGoods(index, flag) {\n switch (flag) {\n case 1: {\n const control = this.stockForm.controls['retail_details']['controls'][0].controls['retail_traded_goods'];\n control.removeAt(index);\n break;\n }\n case 2: {\n const control = this.stockForm.controls['trade_details']['controls'][0].controls['trading_traded_goods'];\n control.removeAt(index);\n break;\n }\n case 3: {\n const control = this.stockForm.controls['servicing_details']['controls'][0].controls['service_provider'];\n control.removeAt(index);\n break;\n }\n default: {\n break;\n }\n }\n\n //const control = this.stockForm.controls['traded_goods'];\n\n }\n\n ManufacturingCounterArray: any = [];\n FinishedCounterArray: any = [];\n RetailCounterArray: any = [];\n WholeSaleCounterArray: any = [];\n ServiceCounterArray: any = [];\n\n not_stock_of_rm: any = [];\n not_stock_of_fg: any = [];\n not_stock_of_tg: any = [];\n not_stock_of_ws: any = [];\n not_stock_of_sp: any = [];\n checkComments(value, flag, index) {\n \n console.log(value, flag, index);\n if (flag == 1) {\n \n this.ManufacturingCounterArray[index] = value != \"\" ? 1 : 0;\n this.not_stock_of_rm[index] = value == \"yes\" ? 1 : 0;\n\n let RMOverallCount = this.ManufacturingCounterArray.reduce((sum, val) => sum + +val, 0);\n this.RMCommentCard = RMOverallCount > 0 ? true : false;\n\n let not_stock1 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0);\n console.log('value',value);\n console.log('not_stock1',not_stock1);\n if(not_stock1 > 0){ \n console.log('not_stock1',not_stock1);\n this.RMsufficientList[0].disabled = false;\n this.RMsufficientList[2].disabled = true;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');\n }\n else if(not_stock1 == 0){ \n console.log('0',not_stock1);\n this.RMsufficientList[0].disabled = true;\n this.RMsufficientList[2].disabled = false;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');\n }\n console.log('this.RMsufficientList',this.RMsufficientList);\n }\n \n if(flag == 2) {\n this.FinishedCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_fg[index] = value == \"yes\" ? 1 : 0;\n }\n if (flag == 3) {\n this.RetailCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_tg[index] = value == \"yes\" ? 1 : 0;\n }\n if (flag == 4) {\n this.WholeSaleCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_ws[index] = value == \"yes\" ? 1 : 0;\n }\n if (flag == 5) {\n console.log('adf');\n this.ServiceCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_sp[index] = value == \"yes\" ? 1 : 0;\n\n let SPOverallCount = this.ServiceCounterArray.reduce((sum, val) => sum + +val, 0);\n this.SPCommentCard = SPOverallCount > 0 ? true : false;\n\n let not_stock3 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0);\n \n if(not_stock3 > 0){ \n \n this.SPsufficientList[0].disabled = false;\n this.SPsufficientList[2].disabled = true;\n \n }\n else if(not_stock3 == 0){ \n \n this.SPsufficientList[0].disabled = true;\n this.SPsufficientList[2].disabled = false;\n \n }\n \n }\n let FGOverallCount = this.FinishedCounterArray.reduce((sum, val) => sum + +val, 0);\n let RTGOverallCount = this.RetailCounterArray.reduce((sum, val) => sum + +val, 0);\n let WTGOverallCount = this.WholeSaleCounterArray.reduce((sum, val) => sum + +val, 0);\n let TGOverallCount = FGOverallCount + RTGOverallCount + WTGOverallCount;\n this.TGCommentCard = TGOverallCount > 0 ? true : false;\n\n let not_stock_fg = this.not_stock_of_fg.reduce((sum, val) => sum + +val, 0);\n let not_stock_ws = this.not_stock_of_ws.reduce((sum, val) => sum + +val, 0);\n let not_stock_tg = this.not_stock_of_tg.reduce((sum, val) => sum + +val, 0);\n let not_stock2 = not_stock_fg + not_stock_ws + not_stock_tg;\n console.log('not_stock2',not_stock2);\n if(not_stock2 > 0){ \n console.log('not_stock2',not_stock2);\n this.TGsufficientList[0].isdisabled = false;\n this.TGsufficientList[2].isdisabled = true;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');\n }\n else if(not_stock2 == 0){ \n console.log('0',not_stock2);\n this.TGsufficientList[0].isdisabled = true;\n this.TGsufficientList[2].isdisabled = false;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');\n }\n console.log('Data',this.TGsufficientList);\n // else if(not_stock == 0){ \n // this.stockForms.controls['is_sufficiant_finished_and_traded_goods'].setValue('');\n // }\n \n }\n\n\n /** To Save/Edited Popup Data */\n saveStockInfo(answerFormValues) {\n //To Remove The \"Null\" With Key also\n // if(answerFormValues.manufacturing_details){\n // answerFormValues.manufacturing_details.forEach(parent=>{\n // if(parent.manufacturing_finished_goods){\n // parent.manufacturing_finished_goods.forEach(finish_goods=>{\n // delete finish_goods.uomSearch\n // })\n // }\n // if(parent.manufacturing_raw_materials){\n // parent.manufacturing_raw_materials.forEach(raw_mat=>{\n // delete raw_mat.uomSearch\n // })\n // }\n // })\n // }\n Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);\n this.qustCat.saveForm(answerFormValues).subscribe(responsed => {\n if (responsed['status'] == 200) {\n this.stockForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(() => {\n this.navCtrl.pop();\n }, 2000);\n } else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n });\n }\n\n inWords(e, flag: number, i) {\n switch (flag) {\n case 1:\n this.M_rawValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 2:\n this.M_goodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 3:\n this.R_tradedGoodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 4:\n this.T_tradedGoodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 5:\n this.S_GoodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n \n default:\n break;\n }\n }\n searchFun(control,index){\n console.log(\"control\",control.controls['uomSearch'].value)\n control.controls['uomSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.uomDataValue=this.constant.searchData(this.uomData,control.controls['uomSearch'].value,'')\n })\n \n }\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts","import { Component,ViewEncapsulation } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {AwsServiceProvider} from '../../../../providers/aws-service/aws-service'\nimport {ToastProvider} from '../../../../providers/common-provider/toast'\nimport {QuestionCategoryProvider} from '../../../../providers/question-category/question-category'\nimport { FormGroup,Validators,FormBuilder, FormArray, FormControl } from '@angular/forms'\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionFinancialInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-financial-info',\n templateUrl: 'pd-question-financial-info.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class PdQuestionFinancialInfoPage {\n \n public financialForm: FormGroup;\n\n pdDetails:any;\n FormId:any;\n users:any;\n company_id:any;\n isDisplay:boolean;\n product_abbr: any;\n lender_short_name : any;\n customerCommentsFlag:boolean;\n FY_annualSalesInwords: any =[]\n FY_netProfitAmtInwords: any=[]\n FY_netLossAmtInwords: any=[]\n AV_annualSalesInwords: any=[]\n AV_netProfitAmtInwords: any=[]\n AV_netLossAmtInwords: any=[]\n AV_netProfitAmtFrmInwords: any=[]\n AV_netProfitAmtToInwords: any=[]\n AV_netLossAmtFrmInwords: any=[]\n AV_netLossAmtToInwords: any=[]\n AV_SalesFrmInwords: any=[]\n AV_SalesToInwords: any=[]\n AV_SalesInwords: any=[];\n AV_marginProfitAmtInwords: any=[];\n AV_marginLossAmtInwords: any=[];\n AV_CCAnnualSalesAmtInwords:any = [];\n formDetails: any;\n CustSegAbbr:any;\n temparray : any = [];\n picsArrayLength :any = 0;\n ServiceDataAvailability:boolean = false;\n\n av : any =[{id:6, name:'Letter of Credit'},\n {id:2, name:'Bank Guarantee'},\n {id:3, name:'Cash Credit Limit'},\n {id:7, name:'OD Limit'},\n {id:4, name:'Factoring'},\n {id:5, name:'Forfaiting'},\n {id:1, name:'Others'}]\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,\n public toast:ToastProvider, public qustCat:QuestionCategoryProvider,\n public fb:FormBuilder,public cons:ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.formDetails=this.navParams.get('formDetails');\n this.FormId = this.formDetails.form_id;\n // this.FormId=this.navParams.get('FormId');\n this.company_id=this.pdDetails.company_id\n this.users=this.aws.getlocale();\n let x = this.pdDetails.customer_segment_abbr.split(\"-\");\n this.CustSegAbbr=x[1]\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n this.initFinancialForm()\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id, this.company_id).subscribe(data => {\n if (data.dataStatus) { \n if(data.records.type_of_activity.length == 1){\n let bussiness_service_datas = data.records.type_of_activity.filter(data => { if (data.type_of_activity_id == 5) { return data } }).map(data => [...data.prodcuts]);\n this.ServiceDataAvailability = bussiness_service_datas.length>0 ? true : false;\n if(this.ServiceDataAvailability == true){\n this.financialForm.controls['unsold_stock_lies_in_days'].setValue('NA');\n }else{\n this.financialForm.controls['unsold_stock_lies_in_days'].setValue('');\n }\n }\n else{\n this.ServiceDataAvailability = false;\n }\n }\n })\n // console.log(\"ld\",this.financialForm.controls['estimated_value'])\n // if(this.financialForm.controls['estimated_value']['controls'].length>0){\n // console.log(this.financialForm.controls['estimated_value']['controls'][0].controls)\n // const estime_value=this.financialForm.controls['estimated_value']['controls'][0].controls['estimate_sales_average']\n // console.log(estime_value)\n // estime_value.valueChanges.subscribe(res=>{\n // console.log(\"changes\",res);\n // })\n//}\n\n//To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionFinancialInfoPage');\n this.getDetails()\n this.getPDImages();\n }\n\n AllCalculation(control,index){\n console.log(\"all\",control)\n if(control.controls['estimate_profit_or_loss'].value == 1 && control.controls['estimate_net_margin_availablity'].value =='yes'){\n if(control.controls['estimate_profit_range_from'].value != '' && control.controls['estimate_profit_range_to'].value != ''){\n console.log(\"calculate marginP\")\n this.calculateMarginProfit(index,control)\n }\n }\n if(control.controls['estimate_profit_or_loss'].value == 1 && control.controls['estimate_net_margin_availablity'].value =='no'){\n if(control.controls['estimate_net_profit_from'].value != '' && control.controls['estimate_net_profit_to'].value != ''){\n console.log(\"calculate Profit \")\n this.calculateProfitAmount(index,control)\n }\n }\n if(control.controls['estimate_profit_or_loss'].value == 2 && control.controls['estimate_net_margin_availablity'].value =='yes'){\n if(control.controls['estimate_loss_range_from'].value != '' && control.controls['estimate_loss_range_to'].value != ''){\n console.log(\"calculate marginL\")\n this.calculateMarginLoss(index,control)\n }\n }\n if(control.controls['estimate_profit_or_loss'].value == 2 && control.controls['estimate_net_margin_availablity'].value =='no'){\n if(control.controls['estimate_net_loss_from'].value != '' && control.controls['estimate_net_loss_to'].value != ''){\n console.log(\"calculate Loss\")\n this.calculateLossAmount(index,control)\n }\n }\n }\n selectedStatement(e :any):void{\n\n if(e == 'yes'){\n\n this.isDisplay = true;\n this.financialForm.controls['is_financial_customer'].setValue('');\n \n }\n else if(e == 'no'){\n\n this.isDisplay = false;\n this.financialForm.controls['is_financial_customer'].setValue('no');\n // this.selectedFinancialCustomer('no');\n \n const statementControl = this.financialForm.controls['date_per_financial'];\n \n while (statementControl.length !== 0) {\n statementControl.removeAt(0);\n }\n const control = this.financialForm.controls['estimated_value'];\n control.push(this.createValue('')); \n this.financialForm.controls['financial_starting_year'].setValue('');\n this.financialForm.controls['financial_no_of_year'].setValue('');\n\n // alert((new Date()).getFullYear());\n // let year1 = (new Date()).getFullYear();\n // let year2 = ((new Date()).getFullYear() + 1); \n // let Year = year1 +'-'+ year2;\n \n }\n\n}\n /** fin customer data from Fin statement*/\n selectedFinancialCustomer(e: any): void {\n if(e == 'yes'){\n const control = this.financialForm.controls['estimated_value'];\n\n while (control.length !== 0) {\n control.removeAt(0);\n }\n }\n else if (e == 'no'){\n const control = this.financialForm.controls['estimated_value'];\n control.push(this.createValue('')); \n }\n }\n\n selectedProfitOrLossType(e,detail){\n \n if(e.value == 1){\n detail.controls.financial_net_loss.setValue('');\n detail.controls.financial_margin_of_loss.setValue('');\n }\n else if(e.value == 2){\n detail.controls.financial_net_profit.setValue('');\n detail.controls.financial_margin_of_profit.setValue('');\n }\n}\n\n\n /** For Auto-generating FinYear */\n dynamicalFinYear($event){\n \n // let e = $event.target.value;\n let e =this.financialForm.controls['financial_no_of_year'].value\n if(e != null && e != ''){\n if(e == 1){\n this.customerCommentsFlag = false;\n }\n else{\n this.customerCommentsFlag = true;\n }\n\n let startingYear = this.financialForm.controls['financial_starting_year'].value;\n\n const control = this.financialForm.controls['date_per_financial'];\n\n while (control.length !== 0) {\n control.removeAt(0);\n }\n\n if(e > 0 ){\n for(let i = 1 ; i<= e ; i++ ){\n let Year = (+startingYear+(i-1)) +'-'+ ((+startingYear)+(+i));\n control.push(this.createDate(Year));\n }\n }\n}\n }\n\n\n initFinancialForm(){\n this.financialForm = this.fb.group({\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid: this.pdDetails.pd_id,\n formid: this.FormId,\n company_id: this.company_id,\n fk_createdby: this.users,\n financial_remarks: [''],\n is_financial_statements:[''],\n is_financial_customer:[''],\n financial_starting_year : ['',Validators.compose([Validators.minLength(4),Validators.maxLength(4)])],\n financial_no_of_year : [''],\n financial_reason: [''],\n financial_customer:[''],\n receive_the_money_in_days:[''],\n pay_the_money_in_days:[''],\n unsold_stock_lies_in_days:[''],\n is_there_working_capital_available:[''],\n working_capital_facilities_availed:[''],\n // reason_for_working_capital_facilities_availed:[''],\n // same_as_financial_statements:[''],\n date_per_financial: this.fb.array([]),\n estimated_value: this.fb.array([]),\n select_working_capital_facilities_availed : this.fb.array([])\n });\n }\n createDate(date){\n return this.fb.group({\n financial_year: [date, Validators.compose([Validators.pattern(/^[0-9]{4}-[0-9]{2}$/)])],\n financial_annual_sale: ['', Validators.compose([Validators.pattern(/^[0-9\\(\\)]+$/)])],\n finanical_profit_or_loss:[''],\n financial_net_profit: ['', Validators.compose([Validators.pattern(/^-?[1-9]\\d*|0$/)])],\n financial_net_loss: ['', Validators.compose([Validators.pattern(/^-?[1-9]\\d*|0$/)])],\n financial_margin_of_profit: [''],\n financial_margin_of_loss: [''],\n financial_variation: [''],\n financial_profit_to_sale_variation:[''],\n financial_annualsales_variation : [''],\n })\n }\n /** CREATING financial Customer ( financial_year AutoGenerate ) */\n createValue(date) {\n return this.fb.group({\n \n // estimate_year: ['', Validators.compose([Validators.pattern(/^[0-9]{4}-[0-9]{2}$/)])],\n estimate_sales_from: [''],\n estimate_sales_to: [''],\n estimate_sales_average: [''],\n estimate_profit_or_loss:[''],\n estimate_net_margin_availablity:[''],\n estimate_profit_range_from:[''],\n estimate_profit_range_to:[''],\n estimate_profit_margin_percent:[''],\n estimate_profit_margin:[''],\n estimate_net_profit_from:[''],\n estimate_net_profit_to:[''],\n estimate_net_profit_percent:[''],\n estimate_net_profit:[''],\n estimate_loss_range_from:[''],\n estimate_loss_range_to:[''],\n estimate_loss_margin_percent:[''],\n estimate_loss_margin:[''],\n estimate_net_loss_from:[''],\n estimate_net_loss_to:[''],\n estimate_net_loss_percent:[''],\n estimate_net_loss:[''],\n estimate_reason_for_loss:[''],\n estimate_posmachine_or_cc_annual_sales:[''],\n // estimate_receive_the_money_in_days:[''],\n // estimate_pay_the_money_in_days:[''],\n // estimate_unsold_stock_lies_in_days:[''],\n // estimate_working_capital_facilities_availed:[''],\n // reason_for_working_capital_facilities_availed:[''],\n // is_there_working_capital_available:['']\n\n });\n}\nsubmitDetails(){\n if(this.CustSegAbbr == 'AI'){ \n this.financialForm.removeControl('estimated_value');\n this.financialForm.controls['is_financial_customer'].setValue('');\n } \n if(this.financialForm.value.date_per_financial['finanical_profit_or_loss'] == 1){\n \n this.financialForm.value.date_per_financial['financial_net_profit'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_net_profit'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_net_loss'].clearValidators();\n this.financialForm.value.date_per_financial['financial_net_loss'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_margin_of_profit'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_margin_of_profit'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_margin_of_loss'].clearValidators();\n this.financialForm.value.date_per_financial['financial_margin_of_loss'].updateValueAndValidity();\n \n }else if(this.financialForm.value.date_per_financial['finanical_profit_or_loss'] == 2) {\n \n this.financialForm.value.date_per_financial['financial_net_profit'].clearValidators();\n this.financialForm.value.date_per_financial['financial_net_profit'].updateValueAndValidity(); \n \n this.financialForm.value.date_per_financial['financial_net_loss'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_net_loss'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_margin_of_profit'].clearValidators();\n this.financialForm.value.date_per_financial['financial_margin_of_profit'].updateValueAndValidity(); \n \n this.financialForm.value.date_per_financial['financial_margin_of_loss'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_margin_of_loss'].updateValueAndValidity();\n \n}\n let records=this.financialForm.value;\n\n if(records.is_financial_statements == 'yes' && this.picsArrayLength == 0){\n this.toast.pdTriggerappmessage(\"Photos of Finanical Statements are Required\");\n return;\n }\n \n records.select_working_capital_facilities_availed = records.select_working_capital_facilities_availed.filter(value => value.exist_status == 1);\n if(records.is_there_working_capital_available == \"no\"){\n records.select_working_capital_facilities_availed = [];\n if(records.bank_guarantee) delete records.bank_guarantee ;\n if(records.cash_credit_limit) delete records.cash_credit_limit;\n if(records.factoring) delete records.factoring;\n if(records.forfaiting) delete records.forfaiting;\n if(records.letter_of_credit) delete records.letter_of_credit;\n if(records.od_limit) delete records.od_limit;\n if(records.other_reason_for_working_capital_facilities_availed) delete records.other_reason_for_working_capital_facilities_availed ;\n if(records.reason_for_working_capital_facilities_availed) delete records.reason_for_working_capital_facilities_availed ;\n }\n \n this.qustCat.saveForm(records).subscribe(res=>{\n if(res['status']== 200){\n this.financialForm.markAsUntouched();\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Warning !! Something went Wrong\");\n }\n },err=>{\n this.toast.pdTriggerappmessage(\"Server is not Responding\");\n })\n}\n getDetails(){\n const financeDate=this.financialForm.controls['date_per_financial']\n //financeDate.push(this.createDate(''))\n const estimate= this.financialForm.controls['estimated_value']\n //estimate.push(this.createValue(''))\n const workingCptlControl = this.financialForm.controls['select_working_capital_facilities_availed'];\n\n let params:any={}\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id\n params.pd_form_id=this.FormId\n params.company_id=this.company_id\n this.qustCat.retiverForm(params).subscribe(value=>{\n\n if(value['dataStatus']==true){\n let retrieveData=value['records'];\n // Financial part 1 : Date \n if(value['records'].is_financial_statements == 'yes'){\n this.isDisplay = true;\n let result=Object.keys(value['records'].date_per_financial).map(function(key) {\n return value['records'].date_per_financial[key]\n })\n if(result.length>0){\n this.customerCommentsFlag=result.length == 1 ? false : true\n result.forEach((val,index)=>{\n this.FY_annualSalesInwords[index]=this.cons.convertNumberToWords(val.financial_annual_sale);\n this.FY_netProfitAmtInwords[index]=this.cons.convertNumberToWords(val.financial_net_profit);\n this.FY_netLossAmtInwords[index]=this.cons.convertNumberToWords(val.financial_net_loss)\n financeDate.push(this.createDate(''));\n });\n retrieveData.date_per_financial=result;\n }\n else{\n financeDate.push(this.createDate(''))\n }\n }\n\n // Financial part 2 : based on Customersegment we have to Fetch The Estimate Value.\n\n if(this.CustSegAbbr != 'AI'){\n \n if(value['records'].is_financial_customer == 'no'){\n let result_val=Object.keys(value['records'].estimated_value).map(function(key){\n return value['records'].estimated_value[key]\n });\n if(result_val.length>0){\n result_val.forEach((val,index)=>{\n this.AV_SalesInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_sales_average));\n this.AV_SalesFrmInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_sales_from));\n this.AV_SalesToInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_sales_to));\n this.AV_marginProfitAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_profit_margin));\n this.AV_netProfitAmtFrmInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_profit_from));\n this.AV_netProfitAmtToInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_profit_to));\n this.AV_netProfitAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_profit));\n this.AV_marginLossAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_loss_margin));\n this.AV_netLossAmtFrmInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_loss_from));\n this.AV_netLossAmtToInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_loss_to));\n this.AV_netLossAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_loss));\n this.AV_CCAnnualSalesAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_posmachine_or_cc_annual_sales));\n estimate.push(this.createValue(''))\n });\n retrieveData.estimated_value=result_val;\n }\n else{\n estimate.push(this.createValue(''));\n }\n }\n }\n else if(this.CustSegAbbr == 'AI'){\n retrieveData.estimated_value = [];\n }\n\n retrieveData.parent_pdid=this.pdDetails.parent_pd_id\n retrieveData.pdid=this.pdDetails.pd_id\n retrieveData.company_id=this.company_id\n retrieveData.fk_createdby=this.users\n retrieveData.formid=this.FormId\n\n let avData = this.av.map(item => ({ name: item.name, id: item.id }))\n let exist_av_data: any = [];\n\n if (retrieveData.select_working_capital_facilities_availed) {\n exist_av_data = Object.keys(retrieveData.select_working_capital_facilities_availed).map(function (key) {\n return retrieveData.select_working_capital_facilities_availed[key].id;\n });\n }\n \n let actual_av = avData.map(item => item.id);\n \n let check_exist_av = actual_av.map((id, index) => {\n if (exist_av_data.indexOf(id) < 0) {\n avData[index].exist_status = 0;\n return avData[index];\n }\n else {\n avData[index].exist_status = 1;\n return avData[index];\n }\n }).filter(item => item != undefined);\n \n if (check_exist_av.length > 0) {\n check_exist_av.forEach(val => {\n workingCptlControl.push(this.workingCptl(val));\n\n if (val.exist_status == 1 && val.id == 2) {\n this.financialForm.addControl('bank_guarantee', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 3) {\n this.financialForm.addControl('cash_credit_limit', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 4) {\n this.financialForm.addControl('factoring', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 5) {\n this.financialForm.addControl('forfaiting', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 6) {\n this.financialForm.addControl('letter_of_credit', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 7) {\n this.financialForm.addControl('od_limit', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 1) {\n this.financialForm.addControl('other_reason_for_working_capital_facilities_availed', new FormControl(''));\n this.financialForm.addControl('reason_for_working_capital_facilities_availed', new FormControl(''));\n }\n \n });\n \n retrieveData.select_working_capital_facilities_availed = check_exist_av;\n }\n\n this.financialForm.setValue(retrieveData)\n\n if(this.ServiceDataAvailability == false && retrieveData.unsold_stock_lies_in_days == 'NA' ){\n this.financialForm.controls['unsold_stock_lies_in_days'].setValue('');\n }\n\n }\n else {\n console.log('didN`T get the api');\n let avData = this.av.map(item => ({ name: item.name, id: item.id }))\n let exist_av_data: any = [];\n\n let actual_av = avData.map(item => item.id);\n let check_exist_av = actual_av.map((id, index) => {\n if (exist_av_data.indexOf(id) < 0) {\n avData[index].exist_status = 0;\n return avData[index];\n }\n else {\n avData[index].exist_status = 1;\n return avData[index];\n }\n }).filter(item => item != undefined);\n\n if (check_exist_av.length > 0) {\n check_exist_av.forEach(val => {\n workingCptlControl.push(this.workingCptl(val));\n });\n }\n //financial_date.push(this.createDate());\n //estimated_val.push(this.createValue(''));\n }\n })\n }\n\n workingCptl(details: any): FormGroup {\n return this.fb.group({\n id: [details.id, Validators.compose([Validators.required])],\n name: [details.name, Validators.compose([Validators.required])],\n exist_status: [details.exist_status == 1 ? true : false]\n });\n }\n\n changeWorkingCapitalFacilities(event: any) {\n \n if (event.value.exist_status == true && event.value.id == 2) {\n console.log('event.value.exist_status == true && event.value.id == 2',event.value.exist_status,event.value.id)\n\n this.financialForm.removeControl('bank_guarantee');\n }\n else if (event.value.exist_status == false && event.value.id == 2) {\n console.log('event.value.exist_status == true && event.value.id == 2',event.value.exist_status,event.value.id)\n this.financialForm.addControl('bank_guarantee', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 3) {\n this.financialForm.removeControl('cash_credit_limit');\n }\n else if (event.value.exist_status == false && event.value.id == 3) {\n this.financialForm.addControl('cash_credit_limit', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 4) {\n this.financialForm.removeControl('factoring');\n }\n else if (event.value.exist_status == false && event.value.id == 4) {\n this.financialForm.addControl('factoring', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 5) {\n this.financialForm.removeControl('forfaiting');\n }\n else if (event.value.exist_status == false && event.value.id == 5) {\n this.financialForm.addControl('forfaiting', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 6) {\n this.financialForm.removeControl('letter_of_credit');\n }\n else if (event.value.exist_status == false && event.value.id == 6) {\n this.financialForm.addControl('letter_of_credit', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 7) {\n this.financialForm.removeControl('od_limit');\n }\n else if (event.value.exist_status == false && event.value.id == 7) {\n this.financialForm.addControl('od_limit', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 1) {\n this.financialForm.removeControl('other_reason_for_working_capital_facilities_availed');\n this.financialForm.removeControl('reason_for_working_capital_facilities_availed');\n }\n else if (event.value.exist_status == false && event.value.id == 1) {\n this.financialForm.addControl('other_reason_for_working_capital_facilities_availed', new FormControl(''));\n this.financialForm.addControl('reason_for_working_capital_facilities_availed', new FormControl(''));\n }\n\n // if(event.value.exist_status==true && event.value.id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.controls = [];\n // othersControl.setValue([]);\n // }\n // else if(event.value.exist_status==false && event.value.id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.push(this.createOthersActivity());\n // }\n // check activity type for make dosument sighted filed dynamically\n}\n\n /**\n * New Calculation for Finanical Statement \n **/\n calculationForFinanicalStatement(){\n \n let parentArray = this.financialForm.controls['date_per_financial'];\n // let prev_annual_sale : any = '';\n // let prev_profit_margin : any = '';\n // let prev_loss_margin : any = '';\n // let prev_profit_amt : any = '';\n // let prev_loss_amt : any = '';\n // let profit_margin : any = '';\n // let loss_margin : any = '';\n // let annual_sale : any = '';\n // let profit_amt : any = '';\n // let loss_amt : any = '';\n let prev_annual_sale : any = '';\n let prev_profit_margin : any = [];\n let prev_loss_margin : any = [];\n let prev_profit_amt : any = '';\n let prev_loss_amt : any = '';\n let profit_margin : any = '';\n let loss_margin : any = '';\n let annual_sale : any = '';\n let profit_amt : any = '';\n let loss_amt : any = '';\n\n parentArray.value.forEach((val,index) => {\n\n let childArray : any = parentArray.controls[index];\n annual_sale = val.financial_annual_sale;\n \n /** Calculating Sale Variation Based on Prev.Year ( Datas returns in percentage ) \n * Explaination : Comparing Curr.Year annual sales and Prev.year annual sales\n * Label name : \" Sale Variation from Previous Year in % \"\n */\n \n if (index != 0) { \n if(annual_sale != ''){\n let annual_sale_variation = (( annual_sale - prev_annual_sale)/prev_annual_sale) * 100 ;\n let final_annual_sale_variation = (annual_sale_variation!= Infinity) ? !(Number.isNaN(annual_sale_variation)) ? annual_sale_variation.toFixed(2): 0.00 : 0.00;\n childArray.controls.financial_annualsales_variation.setValue(final_annual_sale_variation);\n }\n }\n else{\n childArray.controls.financial_annualsales_variation.setValue(0.00);\n }\n \n\n prev_annual_sale = annual_sale;\n /******************************************** Calculation Sale Variation ends Here ******************************************************************************************************/\n\n\n profit_amt = val.financial_net_profit;\n loss_amt = val.financial_net_loss;\n\n /** Calculating Profit's Variation - STARTS HERE\n * Explaination : Comparing Curr.Year Net Profit (or) Loss Amount With Prev.year Net Profit (or) Loss Amount\n * Label name : \"Profit Variation from Previous Year in %\"\n */\n if((profit_amt != '' || loss_amt != '') && index != 0) {\n if(+profit_amt > +annual_sale){\n childArray.controls.financial_margin_of_profit.setValue('');\n } \n else{\n loss_amt = val.financial_net_loss != 0 ? val.financial_net_loss * (-1) : val.financial_net_loss;\n prev_loss_amt = prev_loss_amt != 0 ? prev_loss_amt * (-1) : prev_loss_amt ;\n\n let variation = (((profit_amt != '' ? profit_amt : loss_amt ) - (prev_profit_amt != '' ? prev_profit_amt : prev_loss_amt ))/ (prev_profit_amt != '' ? Math.abs(prev_profit_amt) : Math.abs(prev_loss_amt))) * 100; \n let final_variation = variation!= Infinity ? !(Number.isNaN(variation)) ? variation.toFixed(2) : 0.00 : 0.00 ;\n childArray.controls.financial_variation.setValue(final_variation);\n\n }\n }\n prev_profit_amt = val.financial_net_profit != '' ? val.financial_net_profit : 0;\n prev_loss_amt = val.financial_net_loss !='' ? val.financial_net_loss : 0 ;\n /********************************* Calculating Profit's Variation - ENDS HERE **************************************************************/\n\n /** Calculating Net Profit (or) Net Loss (and) Sales's Profit Variation \n * Explaination : Comparing Curr.Year Net Profit Amount With Curr.year Annual Sales Amount ( like wise loss )\n * Label name : \"Net Profit to Sales in % (or) Net Loss to Sales in % \n **/\n let SelectedlossOrProfit = val.finanical_profit_or_loss;\n \n if(SelectedlossOrProfit == 1){\n\n loss_margin = '';\n childArray.controls.financial_margin_of_loss.setValue('');\n \n if (annual_sale != '' && val.financial_net_profit != '') {\n if(+profit_amt>+annual_sale){\n alert(\"profit is greater than Annual Sale \");\n childArray.controls.financial_net_profit.setValue(0);\n childArray.controls.financial_margin_of_profit.setValue('');\n childArray.controls.financial_profit_to_sale_variation.setValue('');\n childArray.controls.financial_variation.setValue('');\n }\n else{\n profit_margin = (val.financial_net_profit / val.financial_annual_sale) * 100;\n childArray.controls.financial_margin_of_profit.setValue(profit_margin!= Infinity ? !(Number.isNaN(profit_margin)) ? profit_margin.toFixed(2):0:0);\n \n }\n }\n }\n else if(SelectedlossOrProfit == 2){\n profit_margin = '';\n childArray.controls.financial_margin_of_profit.setValue('');\n \n if (annual_sale != '' && val.financial_net_loss != '') {\n if(+val.financial_net_loss>+annual_sale){\n alert(\"Loss is greater than Annual Sale \");\n childArray.controls.financial_net_loss.setValue(0);\n childArray.controls.financial_margin_of_loss.setValue('');\n childArray.controls.financial_profit_to_sale_variation.setValue('');\n childArray.controls.financial_variation.setValue('');\n }\n if(+loss_amt>+annual_sale){\n childArray.controls.financial_net_loss.setValue(0);\n childArray.controls.financial_margin_of_loss.setValue('');\n childArray.controls.financial_profit_to_sale_variation.setValue('');\n childArray.controls.financial_variation.setValue('');\n }\n else{\n \n\n loss_margin = (val.financial_net_loss/val.financial_annual_sale) * 100 * (-1);\n\n\n childArray.controls.financial_margin_of_loss.setValue(loss_margin != Infinity ? !(Number.isNaN(loss_margin)) ? loss_margin.toFixed(2) : 0 : 0);\n \n }\n }\n }\n // console.log('val.financial_margin_of_profit',val.financial_margin_of_profit);\n // console.log('profit_margin',profit_margin);\n // console.log('childArray.controls.financial_margin_of_loss',childArray.controls.financial_margin_of_loss.value);\n // prev_profit_margin[index] = val.financial_margin_of_profit != '' ? val.financial_margin_of_profit: 0;\n // prev_loss_margin[index] = val.financial_margin_of_loss !='' ? val.financial_margin_of_loss : 0 ;\n prev_profit_margin[index] = profit_margin != '' ? profit_margin : 0;\n prev_loss_margin[index] = loss_margin !='' ? loss_margin : 0 ;\n \n \n // if(index != 0 ){\n \n // let variation_percent = (((profit_margin != '' ? profit_margin : loss_margin ) - (prev_profit_margin != '' ? prev_profit_margin : prev_loss_margin ))/ (prev_profit_margin != '' ? Math.abs(prev_profit_margin) : Math.abs(prev_loss_margin))) * 100; \n \n // let final_variation_percent = variation_percent != Infinity ? !(Number.isNaN(variation_percent)) ? variation_percent.toFixed(2) :0: 0;\n \n // childArray.controls.financial_profit_to_sale_variation.setValue(final_variation_percent);\n\n // }\n\n /**************************** Calculating Net Profit (or) Net Loss - ENDS HERE **************************************************************/\n\n /** Calculating Sales's Profit Variation \n * Label name = \"Variation of Profit % over sales\"\n **/\n \n if ((profit_margin != '' || loss_margin != '') && index != 0) {\n \n loss_margin = loss_margin !== undefined ? loss_margin : 0;\n profit_margin = profit_margin !== undefined ? profit_margin:0;\n let temp_prev_loss_margin = prev_loss_margin[index-1] !== undefined ? prev_loss_margin[index-1] : 0 ;\n let temp_prev_profit_margin = prev_profit_margin[index-1] !== undefined ? prev_profit_margin[index-1] : 0 ;\n\n if(annual_sale != ''){\n\n let current_margin : number =(profit_margin != '' ? parseFloat(profit_margin.toFixed(2)) : \n loss_margin != '' ? parseFloat(loss_margin.toFixed(2)) : 0.00 )\n let pre_margin : number = (temp_prev_profit_margin != 0 ? parseFloat(temp_prev_profit_margin.toFixed(2)) : \n temp_prev_loss_margin != 0 ? parseFloat(temp_prev_loss_margin.toFixed(2)) : 0.00 );\n let absoulte_value_of_pre_margin : number = (temp_prev_profit_margin != 0 ? Math.abs(parseFloat(temp_prev_profit_margin.toFixed(2))) : temp_prev_loss_margin != 0 ? Math.abs(parseFloat(temp_prev_loss_margin.toFixed(2))) : 0.00 ); \n\n let a: number = current_margin - pre_margin; \n let b: number = parseFloat(a.toFixed(2)) / absoulte_value_of_pre_margin;\n let c: number = b * 100;\n \n // let a = (profit_margin != '' ? profit_margin : loss_margin ) - (temp_prev_profit_margin != 0 ? temp_prev_profit_margin : temp_prev_loss_margin);\n // let b = parseFloat(a.toFixed(3)) / (temp_prev_profit_margin != 0 ? Math.abs(parseFloat(temp_prev_profit_margin.toFixed(2))) : Math.abs(parseFloat(temp_prev_loss_margin.toFixed(2))));\n // let c = b * 100;\n \n let final_percent = c != Infinity ? !(Number.isNaN(c)) ? c != -Infinity ? c.toFixed(2) : 0 : 0 : 0 ;\n \n childArray.controls.financial_profit_to_sale_variation.setValue(final_percent);\n }\n }\n /**************************** Calculating Sales's Profit Variation - ENDS HERE **************************************************************/\n\n\n });\n }\n \n \n confirmAlert(i, details){\n\n let estimate_sales_from = +details.value.estimate_sales_from;\n let estimate_sales_to = +details.value.estimate_sales_to;\n\n if (estimate_sales_from != null && estimate_sales_to != null){\n \n if(+estimate_sales_from>+estimate_sales_to){\n // alert(\"Given To value is lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is lower than From Value\")\n details.controls.estimate_sales_to.setValue('');\n details.controls.estimate_sales_average.setValue('');\n return;\n }\n\n let C = (estimate_sales_to - estimate_sales_from)\n let D = (C / estimate_sales_from) * 100;\n \n if(estimate_sales_from <= 5000000){\n if(D > 20){\n var r = confirm(\"Given Sales Range is greater than 20%\");\n if (r == true) {\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0); \n }else{\n details.controls.estimate_sales_to.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n }\n else if(estimate_sales_from > 5000000 && estimate_sales_from <= 10000000){\n if(D > 15){\n var r = confirm(\"Given Sales Range is greater than 15%\");\n if (r == true) {\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0); \n }else{\n details.controls.estimate_sales_to.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n }\n else if(estimate_sales_from > 10000000){\n if(D > 10){\n var r = confirm(\"Given Sales Range is greater than 10%\");\n if (r == true) {\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0); \n }else{\n details.controls.estimate_sales_to.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n\n // if(D >= 30){\n // var r = confirm(\"Given Sales Range is greater than 30%\");\n // if (r == true) {\n // details.controls.estimate_sales_to.setValue(estimate_sales_to); \n // }else{\n // details.controls.estimate_sales_to.setValue('');\n // return;\n // }\n // }\n // else{\n // details.controls.estimate_sales_to.setValue(estimate_sales_to);\n // }\n }\n this.calculateSalesAverage(i, details);\n }\n\n calculateSalesAverage(i, details){\n \n let estimate_sales_from = details.value.estimate_sales_from;\n let estimate_sales_to = details.value.estimate_sales_to;\n\n if(estimate_sales_from != '' && estimate_sales_to != ''){\n\n let range1 = +estimate_sales_from/10;\n \n let lower = (+estimate_sales_from)+range1;\n let higer = ((+estimate_sales_to + +estimate_sales_from) / 2);\n\n if(lower > higer){\n details.controls.estimate_sales_average.setValue(higer!= Infinity ? higer.toFixed(2):0);\n this.AV_SalesInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_sales_average.setValue(lower!= Infinity ? lower.toFixed(2):0);\n this.AV_SalesInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n }\n \n }\n else{\n details.controls.estimate_sales_average.setValue('');\n }\n\n }\n calculateMarginProfit( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n // alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_profit_range_from.setValue('');\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n }\n let estimate_profit_range_from = details.value.estimate_profit_range_from;\n if(+estimate_profit_range_from > 100){\n // alert('Given Profit percent is More Than 100');\n this.toast.pdTriggerappmessage(\"Given Profit percent is More Than 100\")\n details.controls.estimate_profit_range_from.setValue('');\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n\n }\n \n let estimate_profit_range_to = details.value.estimate_profit_range_to;\n \n if(+estimate_profit_range_to > 100){\n // alert('Given Profit percent is More Than 100');\n this.toast.pdTriggerappmessage(\"Given Profit percent is More Than 100\")\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n\n }\n\n if (sales_average != '' && estimate_profit_range_from != '' && estimate_profit_range_to != ''){\n if(+estimate_profit_range_from>+estimate_profit_range_to){\n // alert(\"Given To value is lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is lower than From Value\")\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n }\n\n \n let profit_percent = (estimate_profit_range_to + estimate_profit_range_from)/2; \n let Profit_Average = (profit_percent*sales_average)/100;\n let difference = (estimate_profit_range_to - estimate_profit_range_from);\n\n if(difference > 3){\n var r = confirm(\"Given Profit Percent Range is greater than 3\");\n if (r == true) {\n details.controls.estimate_profit_margin.setValue(Profit_Average!= Infinity ? Math.round(Profit_Average):0);\n details.controls.estimate_profit_margin_percent.setValue(profit_percent!= Infinity ? profit_percent.toFixed(2):0);\n this.AV_marginProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(Profit_Average)); \n }else{\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n }\n }\n \n details.controls.estimate_profit_margin.setValue(Profit_Average!= Infinity ? Math.round(Profit_Average):0);\n details.controls.estimate_profit_margin_percent.setValue(profit_percent!= Infinity ? profit_percent.toFixed(2):0);\n this.AV_marginProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(Profit_Average)); \n // details.controls.estimate_profit_margin.setValue(Math.round(Profit_Average));\n // details.controls.estimate_profit_margin_percent.setValue(profit_percent.toFixed(2));\n \n \n \n }\n \n }\n\n\n calculateProfitAmount( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n //alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_net_profit_from.setValue('');\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n\n let estimate_net_profit_from = details.value.estimate_net_profit_from;\n let estimate_net_profit_to = details.value.estimate_net_profit_to;\n\n if(+estimate_net_profit_to>+sales_average){\n \n //alert(\"Given Profit is Greater than Sales\");\n this.toast.pdTriggerappmessage(\"Given Profit is Greater than Sales\")\n details.controls.estimate_net_profit_from.setValue('');\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n\n\n if (sales_average != '' && estimate_net_profit_from != '' && estimate_net_profit_to != ''){\n if(+estimate_net_profit_from>+estimate_net_profit_to){\n // alert(\"Given To value is lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is lower than From Value\")\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n \n let C = (estimate_net_profit_to - estimate_net_profit_from)\n let D = (C / estimate_net_profit_from) * 100;\n \n let range1 = +estimate_net_profit_from/10;\n \n let lower = (+estimate_net_profit_from)+range1;\n let higer = ((+estimate_net_profit_to + +estimate_net_profit_from) / 2);\n\n if(estimate_net_profit_from <= 5000000){\n if(D >= 20){\n var r = confirm(\"Given Profit Range is greater than 20%\");\n if (r == true) {\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0);\n }else{\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0);\n }\n\n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n else if(estimate_net_profit_from > 5000000 || estimate_net_profit_from <= 10000000){\n if(D >= 15){\n var r = confirm(\"Given Sales Range is greater than 15%\");\n if (r == true) {\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n \n }else{\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n }\n\n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n\n }\n else if(estimate_net_profit_from > 10000000){\n if(D >= 10){\n var r = confirm(\"Given Sales Range is greater than 10%\");\n if (r == true) {\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n }else{\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n }\n\n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n \n }\n \n}\n\ncalculateMarginLoss( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n // alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_loss_range_from.setValue('');\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n }\n // else{\n let estimate_loss_range_from = details.value.estimate_loss_range_from;\n if(+estimate_loss_range_from > 100){\n // alert('Given Loss Percent is more than 100');\n this.toast.pdTriggerappmessage(\"Given Loss Percent is more than 100\")\n details.controls.estimate_loss_range_from.setValue('');\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n\n }\n \n let estimate_loss_range_to = details.value.estimate_loss_range_to;\n if(+estimate_loss_range_to > 100){\n // alert('Given Loss Percent is more than 100');\n this.toast.pdTriggerappmessage(\"Given Loss Percent is more than 100 \")\n details.controls.estimate_loss_range_from.setValue('');\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n\n }\n \n\n if (sales_average != '' && estimate_loss_range_from != '' && estimate_loss_range_to != ''){\n \n if(+estimate_loss_range_from>+estimate_loss_range_to){\n //alert(\"Given Loss Percent is more than 100\");\n this.toast.pdTriggerappmessage(\"Given Loss Percent is more than 100\")\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n }\n \n let loss_percent = (estimate_loss_range_to + estimate_loss_range_from)/2;\n let loss_Average = (loss_percent*sales_average)/100;\n let difference = (estimate_loss_range_to - estimate_loss_range_from)\n\n // details.controls.estimate_loss_margin.setValue(Math.round(loss_Average));\n // details.controls.estimate_loss_margin_percent.setValue(loss_percent.toFixed(2));\n \n // this.AV_marginLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(loss_Average)); \n\n if(difference > 3){\n var r = confirm(\"Given Loss Percent Range is greater than 3\");\n if (r == true) {\n details.controls.estimate_loss_margin.setValue(loss_Average!= Infinity ? Math.round(loss_Average):0);\n details.controls.estimate_loss_margin_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n \n this.AV_marginLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(loss_Average)); \n }else{\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n }\n } \n \n details.controls.estimate_loss_margin.setValue(loss_Average!= Infinity ? Math.round(loss_Average):0);\n details.controls.estimate_loss_margin_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_marginLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(loss_Average)); \n }\n\n}\n\n\ncalculateLossAmount( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n // alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_net_loss_from.setValue('');\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n\n let estimate_net_loss_from = details.value.estimate_net_loss_from;\n let estimate_net_loss_to = details.value.estimate_net_loss_to;\n\n if(+estimate_net_loss_to > +sales_average){\n \n // alert(\"Given Loss is Greater than Sales\");\n this.toast.pdTriggerappmessage(\"Given Loss is Greater than Sales\")\n details.controls.estimate_net_loss_from.setValue('');\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n\n \n if (sales_average != '' && estimate_net_loss_from != '' && estimate_net_loss_to != ''){\n if(+estimate_net_loss_from > +estimate_net_loss_to){\n //alert(\"Given To value is Lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is Lower than From Value\")\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n\n \n \n // if(+estimate_net_loss_to > +estimate_net_loss_from){\n // alert(\"loss is greater than sales\");\n // details.controls.estimate_net_loss_to.setValue('');\n // details.controls.estimate_net_loss.setValue('');\n // details.controls.estimate_net_loss_percent.setValue('');\n // return;\n // }\n \n \n let C = (estimate_net_loss_to - estimate_net_loss_from)\n let D = (C / estimate_net_loss_from) * 100;\n \n let range1 = +estimate_net_loss_from/10;\n \n let lower = (+estimate_net_loss_from)+range1;\n let higer = ((+estimate_net_loss_to + +estimate_net_loss_from) / 2);\n\n if(estimate_net_loss_from <= 5000000){\n if(D >= 20){\n var r = confirm(\"Given Profit Range is greater than 20%\");\n if (r == true) {\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0);\n \n }else{\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0);\n }\n\n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n\n }\n else if(estimate_net_loss_from > 5000000 || estimate_net_loss_from <= 10000000){\n if(D >= 15){\n var r = confirm(\"Given Sales Range is greater than 15%\");\n if (r == true) {\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n }else{\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n }\n\n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n else if(estimate_net_loss_from > 10000000){\n if(D >= 10){\n var r = confirm(\"Given Sales Range is greater than 10%\");\n if (r == true) {\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n }else{\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n \n }\n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n \n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n }\n }\n \n }\n \n}\n\n \n\n\n \n\n /** On Key Press Event For Input Field */\n keyPress(event: any) {\n //const pattern = /[0-9\\-\\.\\ ]/;\n const pattern = /[0-9\\.]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n /** To Convert Amount into Words */\n inWords(e,i,flag:number){\n\n switch(flag){\n case 1 :\n this.FY_annualSalesInwords[i] = this.cons.convertNumberToWords(e.target.value); \n // this.placeholderName[i] = 'Weekly Instalment Amount'; break;\n break;\n case 2 : \n this.FY_netProfitAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n //alert('Fin net Profit'+this.FY_netProfitAmtInwords[i]);\n break;\n case 3 : \n this.FY_netLossAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n // alert('Fin net Loss'+this.FY_netLossAmtInwords[i]);\n break;\n case 4 : \n this.AV_annualSalesInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 5 : \n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 6 : \n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 7 : \n this.AV_netProfitAmtFrmInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 8 : \n this.AV_netProfitAmtToInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 9 : \n this.AV_netLossAmtFrmInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 10 : \n this.AV_netLossAmtToInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 11 : \n this.AV_SalesFrmInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 12 : \n this.AV_SalesToInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 13 : \n this.AV_CCAnnualSalesAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n default:\n break;\n }\n}\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n this.picsArrayLength = val['records'].length;\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n captureTheFinancialPics(value){\n// alert('Value '+value+' - '+this.picsArrayLength);\n if(value == 'yes' && this.picsArrayLength == 0){\n alert('You Must Take The Finanical Pic');\n }\n else{\n alert('No Need');\n }\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Form } from 'ionic-angular';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder, FormArray } from '@angular/forms';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionClientInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-client-info',\n templateUrl: 'pd-question-client-info.html',\n})\nexport class PdQuestionClientInfoPage {\n\n users: any;\n pdDetails: any;\n formDetails: any;\n pdid: any;\n company_id: any;\n questionDetails: any;\n clientInfoForm: FormGroup;\n\n\n\n\n public submitted = false;\n\n public m_paymentType = [];\n\n companyRelationShipList: any = [];\n\n titleList: any = [];\n noRecordsFound: Boolean = false;\n errorMessage: any = '';\n m_manufacturingProducts: any = [];\n m_tradingProducts: any = [];\n m_suplierProducts: any = [];\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n\n\n constructor(public navCtrl: NavController, public navParams: NavParams, \n public qustCat: QuestionCategoryProvider, public aws: AwsServiceProvider, \n public toast: ToastProvider, public fb: FormBuilder,private loading:LoadingProvider,private cameraProvider:CameraProvider,private constantProvider:ConstantsProvider)\n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.formDetails = this.navParams.get('formDetails');\n this.users = this.aws.getlocale();\n this.pdid = this.pdDetails.pd_id;\n this.company_id = this.pdDetails.company_id;\n\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdid, this.company_id).subscribe(data => {\n\n if (data.dataStatus) {\n\n let datas = data.records;\n this.m_manufacturingProducts = datas.type_of_activity.filter(data => { if (data.type_of_activity_id == 2) { return data } }).map(data => [...data.prodcuts]);\n // this.m_tradingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 3){return data}}).map(data=> [...data.prodcuts]);\n this.m_suplierProducts = datas.type_of_activity.filter(data => { if (data.type_of_activity_id == 5) { return data } }).map(data => [...data.prodcuts]);\n let api = Object.keys(datas.type_of_activity).map(function (key) {\n return datas.type_of_activity[key];\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 3) {\n if (val.prodcuts) {\n this.m_tradingProducts.push(val.prodcuts);\n }\n }\n\n if (val.type_of_activity_id == 4) {\n if (val.prodcuts) {\n this.m_tradingProducts.push(val.prodcuts);\n }\n }\n });\n }\n this.m_tradingProducts = [].concat.apply([], this.m_tradingProducts);\n\n this.initFormLoadDetails(datas.type_of_activity);\n\n } else {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = data.msg;\n }\n }, err => {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = 'No Records Found , Something went Wrong!';\n });\n\n this.getdropList();\n\n\n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\nconsole.log(\"form values\",this.clientInfoForm);\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionClientInfoPage');\n this.getPDImages();\n \n }\n\n initFormLoadDetails(record) {\n let params: any = {};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id = this.pdid;\n params.pd_form_id = this.formDetails.form_id;\n params.company_id = this.company_id;\n this.qustCat.retiverForm(params).subscribe(\n data => {\n if (data['dataStatus']) {\n let dataForm = data['records'];\n if (dataForm !== undefined) {\n this.clientInfoForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n service_provider_details: this.fb.array([this.serviceProviderFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n // Load form details for manufacturing\n let arr = record.filter(data => data.type_of_activity_id == 2);\n // if(dataForm.manufacturing_details[0].main_raw_materials){\n if (arr.length > 0) {\n // let api_main_raw_materials = Object.keys(dataForm.main_raw_materials).map(function (key) {\n // return dataForm.main_raw_materials[key];\n // });\n if(dataForm.manufacturing_details){\n console.log(dataForm)\n \n let api_main_raw_materials = dataForm.manufacturing_details[0].main_raw_materials;\n\n this.initManufacturingProductsDetails(api_main_raw_materials);\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(dataForm.manufacturing_details[0].main_raw_materials_total_payments_percent_on_credit || null);\n }\n else{\n console.log(\"NO Data\",dataForm)\n this.initManufacturingProductsDetails(null)\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue( null);\n }\n }\n // }\n\n // Load form details for the wholeshale trading details\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n // let api_trading_products = Object.keys(dataForm.trading_products).map(function (key) {\n // return dataForm.trading_products[key];\n // });\n if(dataForm.trade_details){\n let api_trading_products = dataForm.trade_details[0].trading_products;\n\n this.initTradingProductsDetails(api_trading_products);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trade_details[0].trading_products_total_payments_percent_on_credit || null);\n }\n else{\n this.initTradingProductsDetails(null);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue( null);\n }\n }\n\n // Load form details for the service provider prduct details \n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n // let api_service_provider_products = Object.keys(dataForm.service_products).map(function (key) {\n // return dataForm.service_products[key];\n // });\n if(dataForm.service_provider_details){\n let api_service_provider_products = dataForm.service_provider_details[0].service_products;\n this.initServiceProviderProductsDetails(api_service_provider_products);\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(dataForm.service_provider_details[0].service_products_total_payments_percent_on_credit || null);\n }\n else{\n this.initServiceProviderProductsDetails(null)\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(null);\n }\n }\n // Load form details for the retail trading details\n let arr3 = record.filter(data => data.type_of_activity_id == 3);\n // if (arr3.length > 0) {\n // this.retaildTradingForm = true;\n // }\n this.noRecordsFound = true;\n } else {\n this.clientInfoForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n service_provider_details: this.fb.array([this.serviceProviderFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n let api_service_provider_products = Object.keys(dataForm.service_products).map(function (key) {\n return dataForm.service_products[key];\n });\n this.initServiceProviderProductsDetails(api_service_provider_products);\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(null);\n }\n // Load form details for the retail trading details\n let arr3 = record.filter(data => data.type_of_activity_id == 3);\n // if (arr3.length > 0) {\n // this.retaildTradingForm = true;\n // }\n this.noRecordsFound = true;\n }\n } else {\n this.clientInfoForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n service_provider_details: this.fb.array([this.serviceProviderFormCreation(record)]),\n supplier_info_form_remark: []\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n this.initServiceProviderProductsDetails(null);\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(null);\n }\n // Load form details for the retail trading details\n let arr3 = record.filter(data => data.type_of_activity_id == 3);\n // if (arr3.length > 0) {\n // this.retaildTradingForm = true;\n // }\n this.noRecordsFound = true;\n }\n }, err => {\n\n }\n );\n }\n\n manufacturingForm: Boolean = false;\n manufacturingFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.manufacturingForm = true;\n return this.fb.group({\n main_raw_materials: this.fb.array([]),\n main_raw_materials_total_payments_percent_on_credit: []\n })\n // }\n } else {\n return;\n }\n }\n\n tradingForm: Boolean = false;\n tradingFormCreation(val) {\n // let arr = val.filter(data => data.type_of_activity_id == 4);\n let arr = val.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr.length > 0) {\n this.tradingForm = true;\n return this.fb.group({\n trading_products: this.fb.array([]),\n trading_products_total_payments_percent_on_credit: []\n });\n } else {\n return;\n }\n }\n\n serviceProviderForm: Boolean = false;\n serviceProviderFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 5);\n if (arr.length > 0) {\n this.serviceProviderForm = true;\n return this.fb.group({\n service_products: this.fb.array([]),\n service_products_total_payments_percent_on_credit: []\n });\n } else {\n return;\n }\n }\n\n initManufacturingProductsDetails(datas) {\n const control = this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n if (datas === null) {\n control.push(this.initManufacturingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.manufacturing_payment_type, 1, inx);\n control.push(this.initManufacturingProducts(val));\n });\n // for (let val of datas) {\n // control.push(this.initManufacturingProducts(val));\n // }\n }\n }\n\n initManufacturingProducts(records) {\n if (records === null) {\n return this.fb.group({\n manufacturing_product_name: [''],\n manufacturing_client_name: [''],\n manufacturing_contact_person_name: [''],\n manufacturing_contact_person_mobile_number: [''],//,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n manufacturing_payment_type: [''],\n manufacturing_payment_mode: [''],\n // manufacturing_credit_days: [''],\n person_title_name: [''],\n person_designation: [''],\n person_stdcode: [''],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [''],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [''],\n manufacturing_credit_days_from: [''],\n manufacturing_credit_days_to: ['']\n })\n } else {\n return this.fb.group({\n manufacturing_product_name: [records.manufacturing_product_name || null],\n manufacturing_client_name: [records.manufacturing_client_name || null],\n manufacturing_contact_person_name: [records.manufacturing_contact_person_name || null],\n manufacturing_contact_person_mobile_number: [records.manufacturing_contact_person_mobile_number || null],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n manufacturing_payment_type: [records.manufacturing_payment_type || null],\n manufacturing_payment_mode: [records.manufacturing_payment_mode || null],\n manufacturing_credit_days: [records.manufacturing_credit_days || null],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n person_stdcode: [records.person_stdcode || null],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [records.person_landline || null],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [records.other_person_designation || null],\n manufacturing_credit_days_from: [records.manufacturing_credit_days_from || null],\n manufacturing_credit_days_to: [records.manufacturing_credit_days_to || null]\n })\n }\n }\n\n initTradingProductsDetails(datas) {\n const control = this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n if (datas === null) {\n control.push(this.initTradingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.trade_product_payment_type, 2, inx);\n control.push(this.initTradingProducts(val));\n });\n // for (let val of datas) {\n // control.push(this.initTradingProducts(val));\n // }\n }\n }\n\n initTradingProducts(records) {\n if (records === null) {\n return this.fb.group({\n trade_product_name: [''],\n trade_client_name: [''],\n trade_product_contact_person_name: [''],\n trade_product_contact_person_mobile_number: [''],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n trade_product_payment_type: [''],\n trade_product_payment_mode: [''],\n trade_product_frequency_of_purchase: [''],\n trade_product_credit_days_from: [''],\n trade_product_credit_days_to: [''],\n person_title_name: [''],\n person_designation: [''],\n person_stdcode: [''],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [''],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [''],\n })\n } else {\n return this.fb.group({\n trade_product_name: [records.trade_product_name],\n trade_client_name: [records.trade_client_name],\n trade_product_contact_person_name: [records.trade_product_contact_person_name],\n trade_product_contact_person_mobile_number: [records.trade_product_contact_person_mobile_number],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n trade_product_payment_type: [records.trade_product_payment_type],\n trade_product_payment_mode: [records.trade_product_payment_mode],\n trade_product_frequency_of_purchase: [records.trade_product_frequency_of_purchase],\n trade_product_credit_days_from: [records.trade_product_credit_days_from],\n trade_product_credit_days_to: [records.trade_product_credit_days_to],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n person_stdcode: [records.person_stdcode || null],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [records.person_landline || null],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [records.other_person_designation || null],\n })\n }\n }\n\n initServiceProviderProductsDetails(datas) {\n const control = this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products'];\n if (datas === null) {\n control.push(this.initServiceProviderProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.service_provider_product_payment_type, 3, inx);\n control.push(this.initServiceProviderProducts(val));\n });\n // for (let val of datas) {\n // control.push(this.initServiceProviderProducts(val));\n // }\n }\n }\n\n initServiceProviderProducts(records) {\n if (records === null) {\n return this.fb.group({\n service_provider_product_name: [''],\n service_provider_client_name: [''],\n service_provider_product_contact_person_name: [''],\n service_provider_product_contact_person_mobile_number: [''],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n service_provider_product_payment_type: [''],\n service_provider_product_payment_mode: [''],\n service_provider_product_frequency_of_purchase: [''],\n service_provider_product_credit_days_from: [''],\n service_provider_product_credit_days_to: [''],\n person_title_name: [''],\n person_designation: [''],\n person_stdcode: [''], //Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [''],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [''],\n })\n } else {\n return this.fb.group({\n service_provider_product_name: [records.service_provider_product_name],\n service_provider_client_name: [records.service_provider_client_name],\n service_provider_product_contact_person_name: [records.service_provider_product_contact_person_name],\n service_provider_product_contact_person_mobile_number: [records.service_provider_product_contact_person_mobile_number],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n service_provider_product_payment_type: [records.service_provider_product_payment_type],\n service_provider_product_payment_mode: [records.service_provider_product_payment_mode],\n service_provider_product_frequency_of_purchase: [records.service_provider_product_frequency_of_purchase],\n service_provider_product_credit_days_from: [records.service_provider_product_credit_days_from],\n service_provider_product_credit_days_to: [records.service_provider_product_credit_days_to],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n person_stdcode: [records.person_stdcode || null],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [records.person_landline || null],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [records.other_person_designation || null],\n })\n }\n }\n\n addMoreRawMaterials(e): void {\n // e.stropPropagation();\n const control = this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n\n control.push(this.initManufacturingProducts(null));\n }\n\n removeRawMaterials(inx): void {\n const control = this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n control.removeAt(inx);\n }\n\n addMoretradeProduct(e): void {\n // e.stropPropagation();\n const control = this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n\n control.push(this.initTradingProducts(null));\n }\n\n removeTradingProduct(inx): void {\n const control = this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n control.removeAt(inx);\n }\n\n addMoreServiceProduct(e): void {\n // e.stropPropagation();\n const control = this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products'];\n\n control.push(this.initServiceProviderProducts(null));\n }\n\n removeServiceProduct(inx): void {\n const control = this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products'];\n control.removeAt(inx);\n }\n\n getdropList() {\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(\n data => {\n this.companyRelationShipList = data['records'];\n // .filter(data => data.isactive == 1);\n // because in general no need of \"other\" option but in client others option needed - in DB others option changed into inactive\"\n });\n\n this.qustCat.getcommondrop('TITLES').subscribe(\n data => {\n this.titleList = data['records'].filter(data => data.isactive == 1);\n });\n\n this.qustCat.getcommondrop('PAYMENTMODE').subscribe(\n data => {\n this.m_paymentType = data['records'].filter(data => data.isactive == 1);\n });\n }\n // saveclientDetails(answerData)\n // {\n // let records:any ={};\n\n // records.pdid = this.pdDetails.pd_id;\n // records.formid = this.FormId.form_id;\n // records.fk_createdby = this.users;\n\n // records.client_details = answerData.clientArray;\n\n // this.qustCat.saveForm(records).subscribe(res=>\n // {\n // if(res['dataStatus']==true)\n // {\n // this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n // this.navCtrl.pop();\n // }\n // });\n\n\n // }\n saveClientInfoWithImageCheck(answerFormValues){\n console.log(\"forms\",answerFormValues);\n let required_imageCheck=this.mandatoryImageCheck(answerFormValues)\n console.log(\"required image check\",required_imageCheck);\n if(!required_imageCheck){\n let alert=this.toast.setAlert(\"Mandatory photographs not taken\",\" Do you want to take it later?\")\n alert.present();\n alert.onDidDismiss(value=>{\n if(value=='s'){\n this.saveClientInfo(answerFormValues)\n }\n else{\n return true;\n }\n })\n }\n else{\n this.saveClientInfo(answerFormValues)\n }\n }\n\n /** To Save/Edited Popup Data */\n saveClientInfo(answerFormValues) {\n \n\n \n // answerFormValues.trade_details.forEach((value)=>{\n // value.trading_products.forEach()\n // })\n // this.imageDisplay.forEach((res,index)=>{\n // if(res.Name == )\n // })\n Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);\n if (answerFormValues.manufacturing_details[0] == null) {\n delete answerFormValues['manufacturing_details'];\n }\n if (answerFormValues.trade_details[0] == null) {\n delete answerFormValues['trade_details'];\n }\n if (answerFormValues.service_provider_details[0] == null) {\n delete answerFormValues['service_provider_details'];\n }\n\n //To Remove The \"Null\" With Key also\n Object.keys(answerFormValues).forEach((key) => { if (answerFormValues[key] === null || answerFormValues[key] === undefined || answerFormValues[key] === '') { delete answerFormValues[key] }; });\n this.qustCat.saveForm(answerFormValues).subscribe(responsed => {\n if (responsed['status'] == 200) {\n this.clientInfoForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n } else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n });\n \n\n }\n\n selectedPersonDesignation(items, e, flag) {\n if (flag == 1) {\n // e==1 ? items.controls['other_person_designation'].setValidators([Validators.required])\n // : items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 2) {\n // e==1 ?items.controls['other_person_designation'].setValidators([Validators.required])\n // :items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 3) {\n // e==1 ?items.controls['other_person_designation'].setValidators([Validators.required])\n // :items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n }\n\n mfgCreditCardFlag: boolean = false;\n trdCreditCardFlag: boolean = false;\n spCreditCardFlag: boolean = false;\n mfgCounter: any = [];\n trdCounter: any = [];\n spCounter: any = [];\n checkCard(e, flag, index) {\n\n if (flag == 3 && e == 3) {\n this.spCounter[index] = 1;\n }\n else if (flag == 3 && e != 3) {\n this.spCounter[index] = 0;\n }\n let SP = this.spCounter.reduce((sum, val) => sum + +val, 0);\n this.spCreditCardFlag = SP > 0 ? true : false;\n\n if (flag == 2 && e == 3) {\n this.trdCounter[index] = 1;\n }\n else if (flag == 2 && e != 3) {\n this.trdCounter[index] = 0;\n }\n let TRD = this.trdCounter.reduce((sum, val) => sum + +val, 0);\n this.trdCreditCardFlag = TRD > 0 ? true : false;\n\n if (flag == 1 && e == 3) {\n this.mfgCounter[index] = 1;\n }\n else if (flag == 1 && e != 3) {\n this.mfgCounter[index] = 0;\n }\n let MFG = this.mfgCounter.reduce((sum, val) => sum + +val, 0);\n this.mfgCreditCardFlag = MFG > 0 ? true : false;\n\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n\n captureTheClientPics(materialName,index,clientName){\n \n if(clientName != ''){\n // 'Raw Material','l',items.get('manufacturing_supplier_name').value \n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':clientName + ' - ' + materialName + ' ' + (index+1),'link':geoCoordinates});\n })\n }\n\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n }\n else if(clientName == ''){\n alert('Please Fill The Client Name');\n }\n \n }\n mandatoryImageCheck(Form_values){\n let Form_names=[]\n if(Form_values.manufacturing_details.length != 0 && Form_values.manufacturing_details[0] != null){\n if(Form_values.manufacturing_details[0].main_raw_materials.length != 0){\n Form_values.manufacturing_details[0].main_raw_materials.forEach((value,index)=>{\n Form_names.push({'index':index+1,'name':value.manufacturing_client_name+' - '+ 'Manufacturing Product ' + (index+1) })\n })\n }\n }\n if(Form_values.service_provider_details.length != 0 && Form_values.service_provider_details[0] != null ){\n if(Form_values.service_provider_details[0].service_products.length != 0){\n Form_values.service_provider_details[0].service_products.forEach((value,index)=>{\n Form_names.push({'index':index+1,'name':value.service_provider_client_name+' - '+ 'Service Provider ' + (index+1) })\n })\n }\n}\n if(Form_values.trade_details.length != 0 && Form_values.trade_details[0] != null){\n if( Form_values.trade_details[0].trading_products.length != 0){\n Form_values.trade_details[0].trading_products.forEach((value,index)=>{\n Form_names.push({'index':index+1,'name':value.trade_client_name+' - '+ 'Trading Product ' + (index+1) })\n })\n }\n}\n console.log(\"Form Values\",Form_names);\n // console.log(\"image values\",this.imageDisplay)\n let valBool\n let count:number=0;\n let mandatoryimgSaved=[]\n let mandatoryimgNotSaved=[]\n\nif(Form_names.length != 0 ){\n // if( this.imageDisplay.length !=0){\n Form_names.forEach(formvalue=>{\n this.imageDisplay.forEach((imgvalue)=>{\n \n // console.log(\"Form values individuals\",formvalue)\n if(formvalue.name != imgvalue.Name){\n \n valBool=true\n }\n else{\n\n valBool=false\n \n count ++;\n \n \n }\n if(count >=2 && valBool == false){\n // console.log(\"end of image dis\",formvalue.name,\"count \",count)\n mandatoryimgSaved.push(formvalue.name)\n // return\n }\n else{\n mandatoryimgNotSaved.push(formvalue.name)\n return\n }\n \n })\n if(valBool==true)\n console.log(\"Form name\",formvalue.name)\n \n mandatoryimgNotSaved.push(formvalue.name)\n \n })\n \n // console.log(\"mandatoryimgSaved\",mandatoryimgSaved)\n // console.log(\"mandatoryimgNot Saved\",mandatoryimgNotSaved)\n mandatoryimgSaved.forEach(res=>{\n mandatoryimgNotSaved=mandatoryimgNotSaved.filter(val=>val != res)\n \n })\n \n // console.log(\"res for not saved img\",mandatoryimgNotSaved);\n // let uniquenotsavedImage=[ ...new Set(mandatoryimgNotSaved)]\n let uniquenotsavedImage=(mandatoryimgNotSaved)=>mandatoryimgNotSaved.filter((val,i)=>mandatoryimgNotSaved.indexOf(val) === i)\n console.log(\"uniw\",uniquenotsavedImage(mandatoryimgNotSaved));\n if(uniquenotsavedImage(mandatoryimgNotSaved).length > 0){\n return false\n }\n else{\n return true\n }\n \n //COUNTING THE DUPLICATES IN AN ARRAY\n // var arr = ['a','b','c','d','d','e','a','b','c','f','g','h','h','h','e','a'];\n // var map = arr.reduce(function(prev, cur) {\n // prev[cur] = (prev[cur] || 0) + 1;\n // return prev;\n // }, {});\n \n // map is an associative array mapping the elements to their frequency:\n // console.log(map);\n // prints {\"a\": 3, \"b\": 2, \"c\": 2, \"d\": 2, \"e\": 2, \"f\": 1, \"g\": 1, \"h\": 3}\n // }\n // else{\n // return true\n // }\n}\nelse{\n return true\n}\n\n }\n\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams ,AlertController} from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { PdQuestionAssessedInfoPage } from '../pd-question-assessed-info/pd-question-assessed-info';\nimport {PdQuestionAssessedSummaryPage} from '../pd-question-assessed-summary/pd-question-assessed-summary'\nimport {PdQuestionAssessedImagesPage} from '../../pd-question/pd-question-assessed-images/pd-question-assessed-images'\n\n/**\n * Generated class for the PdQuestionAssessedDashPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-dash',\n templateUrl: 'pd-question-assessed-dash.html',\n})\nexport class PdQuestionAssessedDashPage {\n\n businessIncome: boolean;\n grossAccess: boolean;\n finalAccess: boolean;\n finalExpense: any;\n finalIncome: any;\n finalData: any;\n houseExpenseData: boolean;\n businessData: boolean;\n salesData: boolean;\n purchaseData: boolean;\n purchaseBillData:boolean=false;\n grossprofit: any;\n assessedProcess: boolean;\n users: any;\n FormId: any;\n pdDetails: any;\n assessedForm:FormGroup;\n alertShown: boolean;\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public fb:FormBuilder,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public alertCtrl:AlertController) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('formDetails');\n this.users = this.aws.getlocale();\n this.assessedForm = this.fb.group(\n {\n calc_type_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n // radio_for_mode:[null,Validators.compose([Validators.required])],\n mode:[null],\n margin:[null],\n purchase_type:[null,Validators.compose([Validators.required])],\n fk_createdby:[null],\n fk_updatedby:[null],\n })\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedDashPage');\n }\n ionViewCanEnter()\n {\n this.getassessedIncome(); \n }\n getViewPage(pageId)\n {\nif(pageId == 11){//Summary\n this.navCtrl.push(PdQuestionAssessedSummaryPage,{'pdDetails':this.pdDetails,'pageId':pageId})\n}\nelse if(pageId == 12){//IMAGES\n this.navCtrl.push(PdQuestionAssessedImagesPage,{'pdDetails':this.pdDetails,'pageId':pageId,'formdetails':this.FormId})\n}\nelse{\n this.navCtrl.push(PdQuestionAssessedInfoPage,{'pdDetails':this.pdDetails,'pageId':pageId});\n}\n }\n\n saveAssessedForm(answerData)\n {\n \n \n if(this.assessedForm.valid)\n {\n console.log(\"mode\",answerData.purchase_type.value)\n if(this.assessedForm.controls['purchase_type'].value == 1 ){\n this.assessedForm.controls['mode'].setValue(1)\n this.assessedForm.controls['margin'].setValue(null)\n \n }\n else if(this.assessedForm.controls['purchase_type'].value == 2){\n this.assessedForm.controls['mode'].setValue(1)\n this.assessedForm.controls['margin'].setValue(null)\n \n }\n else if(this.assessedForm.controls['purchase_type'].value == 0){\n this.assessedForm.controls['mode'].setValue(2)\n this.assessedForm.controls['margin'].setValue(2)\n this.assessedForm.controls['purchase_type'].setValue(null)\n }\n if(this.assessedForm.controls['calc_type_id'].value != null){\n this.assessedForm.controls['fk_updatedby'].setValue(this.users)\n }\n if(this.assessedForm.controls['fk_createdby'].value == null){\n this.assessedForm.controls['fk_createdby'].setValue(this.users);\n }\n console.log(this.assessedForm.value);\n let tempRec=this.assessedForm.value\n tempRec.company_id=this.pdDetails.company_id;\n console.log(\"tempRec\",tempRec)\n let records = {'records':tempRec};\n // delete records.records.radio_for_mode\n\n // console.log(\"after\",records);\n \n \n \n this.qustCat.saveassessedForms('saveAssessedIncomeCalculateMode',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage(\"Saved Successfully..!\")\n setTimeout(()=>{\n this.getassessedIncome();\n })\n \n }else\n {\n\n }\n })\n \n }\n \n }\n\n getassessedIncome()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'company_id':this.pdDetails.company_id};\n this.qustCat.retiverassessedForm('getAssessedIncome',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.assessedProcess = true;\n this.grossprofit = res['records'].gross_profit_calculation_type[0];\n if(res['records'].purchase_details.length !=0)\n {\n this.purchaseData = true;\n }\n if(res['records'].purchase_billwise.length != 0){\n this.purchaseBillData=true;\n }\n if(res['records'].sales_items_by_monthwise.length !=0 || res['records'].sales_declared_by_customer.length !=0 || res['records'].sales_calculated_by_itemwise.length !=0)\n {\n this.salesData = true;\n }\n if(res['records'].business_expenses.length !=0)\n {\n this.businessData = true;\n }\n if(res['records'].house_hold_expenses.length !=0)\n {\n this.houseExpenseData = true;\n }\n if(res['records'].othre_business_income.length !=0)\n {\n this.businessIncome = true;\n }\n \n if(res['records'].final_data.length !=0){\n this.finalAccess = true;\n this.finalData = res['records'].final_data[0]; \n this.finalIncome = this.finalData.income;\n this.finalExpense = this.finalData.expense; \n }\n \n if(this.grossprofit !==undefined && this.grossprofit.length !=0)\n {\n this.grossAccess = true;\n this.assessedForm.controls['mode'].setValue(this.grossprofit.mode);\n if(this.grossprofit.purchase_type == null ){\n this.assessedForm.controls['purchase_type'].setValue(0);\n }\n else{\n this.assessedForm.controls['purchase_type'].setValue(this.grossprofit.purchase_type);\n }\n this.assessedForm.controls['margin'].setValue(this.grossprofit.margin);\n this.assessedForm.controls['calc_type_id'].setValue(this.grossprofit.calc_type_id);\n this.assessedForm.controls['fk_createdby'].setValue(this.grossprofit.fk_createdby);\n }\n \n \n }else\n {\n this.assessedProcess = false;\n }\n });\n }\n completeAI(){\n let updateStatus={\n \"fk_pd_id\":this.pdDetails.pd_id,\n \"company_id\":this.pdDetails.company_id,\n \"calc_type_id\":this.grossprofit.calc_type_id,\n \"is_completed\":1\n }\n let records:any={'records':updateStatus}\n this.qustCat.saveassessedForms('saveAssessedIncomeCalculateMode',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Assessed Income Completed Successfully\")\n setTimeout(()=>{\n this.navCtrl.pop();\n },1000)\n\n }\n else{\n this.toast.pdTriggerappmessage(\"Error\")\n }\n })\n }\n presentConfirm(){\n let alert=this.alertCtrl.create({\n title:'Complete Assessed Income',\n message:'Please confirm you are completing the Assessed Income details?',\n buttons:[\n {\n text:'No',\n role:'no',\n handler:()=>{\n console.log(\"Cancel clicked\");\n //this.alertShown=false\n alert.dismiss\n }\n },\n {\n text:'Yes',\n handler:()=>{\n console.log(\"Exit\");\n this.completeAI()\n }\n }\n ]\n });\n alert.present();\n // this.alertShown=true;\n }\n\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { SQLite, SQLiteObject } from'@ionic-native/sqlite';\n/*\n Generated class for the DatabaseProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class DatabaseProvider {\n database:SQLiteObject;\n constructor(public http: HttpClient,public sql:SQLite) {\n console.log('Hello DatabaseProvider Provider');\n this.createnewdb();\n }\n\n createnewdb()\n {\n // alert('function in');\n this.sql.create(\n {\n name:'sinnedge',\n location:'defalut',\n }).then((db:SQLiteObject)=>\n {\n db.executeSql('CREATE TABLE IF NOT EXISTS expense(rowid INTEGER PRIMARY KEY, date TEXT, type TEXT, description TEXT, amount INT)').then(res => \n {\n // alert('db create');\n this.getuserDetails();\n })\n .catch(e => console.log(e));\n })\n }\n getuserDetails()\n {\n // alert('getusers');\n this.sql.create(\n {\n name:'sineedge',\n location:'default',\n }).then((db:SQLiteObject)=>\n {\n db.executeSql('select * from expense ORDER BY rowid DESC').then((res)=>\n {\n console.log(res);\n })\n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/database/database.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Camera } from '@ionic-native/camera';\n/*\n Generated class for the CameraProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class CameraProvider {\n\n constructor(public http: HttpClient,public camera:Camera) {\n console.log(\n \"%cWelcome, Camera Provider\",\n \"font-size:300%;color:purple;font-weight:bold;font-family:Mongoose; text-transform: uppercase;\"\n );\n }\n getpicture() \n {\n const options = {\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 500,\n correctOrientation: true\n };\n\n // If set to crop, restricts the image to a square of 600 by 600\n \n\n return this.camera.getPicture(options).then(imageData => {\n console.log('From Camera.ts - getPicture fn image are',imageData)\n const base64Image = 'data:image/png;base64,' + imageData;\n console.log(\"base 64\",base64Image);\n return base64Image;\n }, error => {\n console.log('CAMERA ERROR -> ' + JSON.stringify(error));\n return \"error\"\n });\n \n }\n\n getcommonpicture() \n {\n const options = {\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 500,\n correctOrientation: true\n };\n\n // If set to crop, restricts the image to a square of 600 by 600\n \n\n return this.camera.getPicture(options).then(imageData => {\n console.log('From Camera.ts - getcommonpicture fn image are',imageData)\n const base64Image = 'data:image/png;base64,' + imageData.filter(data=>data.fk_form_id == null);\n console.log(\"base 64\",base64Image);\n return base64Image;\n }, error => {\n console.log('CAMERA ERROR -> ' + JSON.stringify(error));\n return \"error\"\n });\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/common-provider/camera.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LoadingController } from 'ionic-angular';\nimport { async } from 'rxjs/internal/scheduler/async';\n/*\n Generated class for the LoadingProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class LoadingProvider {\n\n loading: any;\n constructor(public http: HttpClient,public loadingCtrl:LoadingController) {\n console.log('Hello LoadingProvider Provider');\n }\n\n pdloader(content)\n {\n this.loading = this.loadingCtrl.create({\n content: content\n });\n\n this.loading.present();\n }\n loaderForSendImage(){\n const loading=this.loadingCtrl.create({\n content:'Sending...',\n duration:2000,\n })\n return loading.present();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/common-provider/loading.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 258;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/core/esm5 lazy\n// module id = 258\n// module chunks = 2","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 301;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src lazy\n// module id = 301\n// module chunks = 2","import { Component,OnInit, ViewEncapsulation } from '@angular/core';\nimport { IonicPage, NavController, NavParams, MenuController } from 'ionic-angular';\nimport { AlertController } from 'ionic-angular';\n// import {Validators, FormBuilder, FormGroup } from '@angular/forms';\n// import { GridPage } from '../grid/grid';\n\n\nimport { FingerprintAIO ,FingerprintOptions} from '@ionic-native/fingerprint-aio';\nimport { Camera } from '@ionic-native/camera';\n// import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\n// import { CustomValidators } from 'ng2-validation';\n\nimport { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { PasswordPage } from '../password/password';\nimport { ToastProvider } from '../../providers/common-provider/toast';\n\n\n@Component({\n selector: 'page-login',\n templateUrl: 'login.html',\n})\nexport class LoginPage {\n users: any;\nchangepass: FormGroup;\nemail: string;\npassword: string;\nnewpassword: any;\nconfirmPassword: any;\nchangePassword: any;\nstatus: Boolean = false;\nconfig: MatDialogConfig = {\n disableClose: false,\n width: '',\n height: '',\n position: {\n top: '',\n bottom: '',\n left: '',\n right: ''\n }\n};\nconstructor( public aws: AwsServiceProvider, public dialog: MatDialog,\npublic shared:CognitoServiceProvider,public navCtrl:NavController,public Menu:MenuController\n,public toast:ToastProvider) {\n \n}\nngOnInit(){\n //this.loggedInCheck();\n \n}\nionViewDidEnter(){\n this.Menu.enable(false);\n}\nionViewWillLeave(){\n this.Menu.enable(true);\n}\n/**\n* @param email\n* @param password\n* AWS login service\n*/\nlogin() {\n // console.log(this.email);\n if(this.email !==undefined && this.password !==undefined && this.email !='' && this.password !='' && this.email !=null && this.password !=null ){\n let auth = { 'Username': this.email, 'Password': this.password };\n this.aws.dologin(auth).subscribe(awsres => {\n let userid = this.aws.getlocale();\n \n this.aws.getuserprofile(userid).subscribe(usersres=>\n {\n this.users = usersres; \n \n if (this.users.dataStatus == true) {\n \n if(this.users.records[0].role_name == \"PD Officer\" || this.users.records[0].role_name == \"PD Executive\"){\n this.navCtrl.setRoot(PdListPage);\n \n }else\n {\n \n this.toast.pdTriggerappmessage('This App only for PD Officers');\n localStorage.clear();\n }\n\n \n }\n });\n }, err => {\n console.log(JSON.stringify(err.message));\n if (err.message == \"New password is required.\") {\n //console.log(\"if\");\n this.navCtrl.setRoot(PasswordPage,{'Username':this.email,'Password':this.password});\n } else {\n console.log(JSON.stringify(err.message));\n this.toast.pdTriggerappmessage(JSON.stringify(err.message));\n\n }\n //alert(err.message);\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter Email or Password');\n }\n}\n/**\n * New password set\n * Defalut aws function \n * @param email password,newpassword\n */\n// newpassopen() {\n// let dialogRef = this.dialog.open(NewPasswordDialog, this.config);\n// dialogRef.afterClosed().subscribe(result => {\n// if (result !== undefined) {\n// let auth = { 'Username': this.email, 'Password': this.password, 'newpassword': result };\n// console.log(auth);\n// this.aws.dologin(auth).subscribe(res => {\n// console.log(res);\n// // this.router.navigate(['/home']);\n// }, err => {\n// // alert(err.message);\n\n// })\n// }\n// });\n// }\n\nforgotopen() {\n this.status = true;\n}\n\n\nforgotpassword() {\n\n let auth = { 'Username': this.email };\n console.log(auth);\n // this.aws.userforgotpass(auth).subscribe(res => {\n // console.log(res);\n\n // })\n}\nloggedInCheck(){\n //alert(this.shared.isLoggedIn);\n if(this.shared.isLoggedIn){\n alert(\"if\");\n // this.router.navigate(['/home']);\n return false;\n }else{\n alert(\"else\");\n \n return true;\n }\n}\n\n}\n\n// ======================= END ==============================\n/**\n* New password Dialog\n*/\n\n// const newpassword = new FormControl('', Validators.required);\n// const confirmPassword = new FormControl('');\n\n// @Component({\n// selector: 'app-jazz-dialog',\n// template: `\n//
New Password Change.
\n\n// \n// \n \n// \n\n\n//
\n// \n// \n// \n\n// Passwords do not math.\n\n//
\n \n// \n \n \n// `\n// })\n// export class NewPasswordDialog {\n\n// newpassword: any = newpassword;\n// confirmPassword: any = confirmPassword;\n// jazzMessage = 'Jazzy jazz jazz';\n\n// constructor(public dialogRef: MatDialogRef) {\n\n// }\n\n\n// }\n\n\n\n// @Component({\n// selector: 'app-jazz-dialog',\n// template: `\n//
Forgot Password
\n\n// \n// \n \n// \n\n\n\n//
\n \n// \n \n \n// `\n// })\n// export class ForgotPass {\n\n// newpassword: any = newpassword;\n// confirmPassword: any = confirmPassword;\n// jazzMessage = 'Jazzy jazz jazz';\n\n// constructor(public dialogRef: MatDialogRef) {\n\n// }\n\n// }\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/login/login.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,Slides , Content, Platform } from 'ionic-angular';\nimport { FormBuilder,FormGroup,FormArray, Validators} from '@angular/forms';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\n\nimport { CameraProvider } from '../../providers/common-provider/camera';\nimport { ToastProvider } from '../../providers/common-provider/toast';\n/**\n * Generated class for the PdQuestionPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nconst currentdate = new Date().toJSON().slice(0,19).replace('T',' ');\n\n\n@Component({\n selector: 'page-pd-question',\n templateUrl: 'pd-question.html',\n})\nexport class PdQuestionPage {\n \n docqustid: any;\n docName: any = [];\n docArray: any = [];\n imageArray:any = [];\n questionCate: any;\n qustCate: any;\n pdinfo: any;\n items: FormArray;\n @ViewChild('SwipedTabsSlider') SwipedTabsSlider: Slides ;\n @ViewChild('MultiItemsScrollingTabs') ItemsTitles : Content;\n\n SwipedTabsIndicator :any= null;\n tabTitleWidthArray :any= [];\n tabElementWidth_px :number= 50;\n screenWidth_px :number= 0;\n isRight :boolean= false;\n isLeft:boolean= false;\n tabs:any=[];\n \n questionDetails: any;\n questionAnswer:FormGroup;\n questionanotherData:FormGroup;\n userid:any;\n questionId:any;\n qustType:any;\n constructor(public navCtrl: NavController, public navParams: NavParams, platform: Platform,public fb:FormBuilder,public qstDetails:QuestionCategoryProvider,public aws:AwsServiceProvider,public camera:CameraProvider,public toast:ToastProvider) {\n \n this.screenWidth_px=platform.width();\n\n \n this.questionAnswer = this.fb.group(\n {\n answerDetails:[null],\n items:this.fb.array([]),\n })\n this.questionanotherData = this.fb.group(\n {\n questionRemarks:[null]\n })\n this.getpdQuestionDetails();\n this.userid = this.aws.getlocale();\n}\n\n ionViewDidLoad() {\n }\n ionViewDidEnter() {\n this.SwipedTabsIndicator = document.getElementById(\"indicator\");\n for (let i in this.tabs)\n this.tabTitleWidthArray.push(document.getElementById(\"tabTitle\"+i).offsetWidth);\n\n this.selectTab(0);\n }\n\n ionViewWillLeave() {\n this.navCtrl.setRoot(PdQuestionCategoryPage,{'pdDetails':this.pdinfo});\n }\n\n scrollIndicatiorTab()\n {\n this.ItemsTitles.scrollTo(this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())-this.screenWidth_px/2,0);\n // let answerDetails = this.questionAnswer.value;\n // let remarks = this.questionanotherData.value;\n if(this.isLeft)\n {\n //this.prev(answerDetails,remarks,this.questionDetails);\n }\n if(this.isRight)\n {\n //this.saveQuestionDetails(answerDetails,remarks,this.questionDetails);\n }\n }\n\n selectTab(index)\n {\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n this.SwipedTabsSlider.slideTo(index);\n \n }\n\n calculateDistanceToSpnd(index)\n {\n var result=0;\n for (var _i = 0; _i < index; _i++) {\n result=result+this.tabTitleWidthArray[_i];\n }\n return result;\n }\n\n updateIndicatorPosition() {\n var index=this.SwipedTabsSlider.getActiveIndex();\n if( this.SwipedTabsSlider.length()==index)\n index=index-1;\n\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n \n }\n\n updateIndicatorPositionOnTouchEnd()\n {\n setTimeout( () => { this.updateIndicatorPosition(); }, 200);\n }\n\n animateIndicator($event)\n {\n \n this.isLeft=false;\n this.isRight=false;\n \n var currentSliderCenterProgress =(1/(this.SwipedTabsSlider.length()-1) )*this.SwipedTabsSlider.getActiveIndex();\n if($event.progress < currentSliderCenterProgress)\n {\n this.isLeft=true;\n this.isRight=false;\n\n } if($event.progress > currentSliderCenterProgress)\n {\n this.isLeft=false;\n this.isRight=true;\n }\n\n if(this.SwipedTabsSlider.isEnd())\n this.isRight=false;\n\n if( this.SwipedTabsSlider.isBeginning())\n this.isLeft=false;\n\n if(this.isRight)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()+1])\n +'px,0,0)';\n\n if(this.isLeft)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()-1])\n +'px,0,0)';\n\n if(!this.isRight && !this.isLeft)\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()]+\"px\";\n \n \n }\n /**\n * Pd Discussion Qustion Load\n */\n getpdQuestionDetails()\n {\n this.questionDetails = this.navParams.get('questionDetails');\n this.pdinfo = this.navParams.get('pdDetails');\n for(let qustimage of this.questionDetails.questions)\n { \n if(qustimage.images !==undefined){\n for(let image of qustimage.images)\n {\n image.questionId = qustimage.fk_question_id; \n this.docArray.push(image);\n }\n for(let answers of qustimage.answers)\n {\n if(qustimage.fk_question_answertype == 3)\n {\n this.items = this.questionAnswer.get('items') as FormArray;\n \n this.items.push(this.getquestionAnswer(answers));\n \n \n }\n }\n }\n }\n for(let i=1;i<=this.questionDetails.questions_count;i++){\n let j = i.toString();\n this.tabs.push(j);\n }\n }\n\ngetquestionAnswer(answers)\n{\n return this.fb.group(\n {\n \"pd_detail_answer_id\":answers.pd_detail_answer_id,\n \"pd_answer_id\":answers.question_answer_id,\n \"pd_answer\": answers.answer,\n \"pd_answer_weightage\": answers.template_answer_weightage,\n \"fk_pd_id\":this.pdinfo.pd_id,\n \"fk_pd_detail_id\":answers.fk_pd_detail_id,\n \"checkbox\":(answers.isactive == null?false:true)\n \n \n })\n}\n // count = 0;\n getDocUpload(qustid)\n {\n // this.docqustid = qustId;\n this.camera.getpicture().then(res=>\n {\n if(res !== undefined){\n this.docArray.push({'pd_document_name':res,'pd_document_title':'','questionId':qustid});\n }\n });\n // this.count++;\n }\n docnames(name,id,image,qustid)\n {\n this.docArray[id] = {'pd_document_name':image,'pd_document_title':name,'questionId':qustid};\n }\n removeimage(index){\n //for(let i=0;i<=this.igrimage.length;i++){\n //if(this.igrimage[i]== this.igrimage[index]){\n this.docArray.splice(index,1);\n //}\n //}\n }\n saveQuestionDetails(answerDetails,questionRemarks,questionDetails)\n {\n \n for(let docs of this.docArray)\n {\n \n if(docs.pd_document_title !='' && docs.pd_document_title != null && docs.pd_document_title !== undefined){\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':docs.pd_document_title});\n // return true;\n }else\n {\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':\"docNames\"});\n \n }\n }\n if(answerDetails.answerDetails !=null){\n //alert('answers');\n let pd_id = this.pdinfo.pd_id;\n let catid = questionDetails.fk_question_category_id;\n let qt_id = questionDetails.questions.filter(qst=>qst.template_question_id == answerDetails.answerDetails.fk_template_question_id)[0];\n let qut_id = qt_id.fk_question_id;\n let qustName = qt_id.question;\n let qut_weightage = qt_id.question_weightage;\n let ans_id = answerDetails.answerDetails.fk_question_answer_id;\n let pd_answer = answerDetails.answerDetails.answer;\n let ans_weightage = answerDetails.answerDetails.template_answer_weightage;\n let pd_remarks = questionRemarks.questionRemarks;\n let updatedby:any='';\n let updateon:any='';\n let createdby:any='';\n let createon:any='';\n let pd_details_id:any='';\n let pd_detail_answer_id:any = '';\n if(qt_id.pd_detail_id ==null)\n {\n createdby = this.userid;\n createon = currentdate;\n pd_details_id = '';\n }else\n {\n pd_details_id = qt_id.pd_detail_id;\n updatedby = this.userid;\n updateon = currentdate;\n pd_detail_answer_id = answerDetails.answerDetails.pd_detail_answer_id;\n }\n let saveRecords = \n {\n \"pd_detail_id\": pd_details_id,\n\t\t\"fk_pd_id\": pd_id,\n\t\t\"fk_category_id\": catid,\n\t\t\"fk_question_id\": qut_id,\n\t\t\"pd_question\": qustName,\n \"pd_question_weightage\": qut_weightage,\n \"question_remark\": pd_remarks,\n \"answers\":[{\"pd_detail_answer_id\": pd_detail_answer_id,\n \"pd_answer_id\":ans_id,\n\t\t\"pd_answer\": pd_answer,\n\t\t\"pd_answer_weightage\": qut_weightage,\n \"fk_pd_id\":pd_id,\n \"fk_pd_detail_id\":pd_details_id,\n\n }],\n\t\t\n\t\t\"fk_createdon\": createon,\n\t\t\"createdby\": createdby,\n\t\t\"fk_updatedon\": updateon,\n \"updatedby\": updatedby,\n \"images\": this.imageArray || \"\",\n \n\n };\n \n // this.qstDetails.saveQusetion(saveRecords).subscribe(res=>\n // {\n // this.qustCate = res;\n // if(this.qustCate.dataStatus == true){\n // this.SwipedTabsSlider.slideNext();\n // this.docArray = [];\n // this.getcategoryList(qt_id,pd_id);\n // }\n // })\n // }else\n // {\n \n // this.SwipedTabsSlider.slideNext(); \n }\n } \n\n getcategoryList(qustinfo,pdId)\n {\n let qustDetails = {\"question_id\":qustinfo.fk_question_id, \"pd_id\":pdId, \"template_id\":qustinfo.fk_template_id, \"category_id\":qustinfo.fk_template_question_category_id\n };\n let answerData:any;\n this.qstDetails.getAnswerTemplate(qustDetails).subscribe(res=>\n {\n answerData = res;\n if(answerData.dataStatus == true)\n {\n \n // answerData = answerData.records;\n // let eachquestion = this.questionDetails.questions.filter(qust=>qust.question_id == answerData.question_id)[0];\n // eachquestion['answers'] = answerData.answers; \n \n // this.questionDetails =\n // this.imageArray = answerData.images;\n // for(let docs of this.imageArray)\n // {\n // this.docArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':docs.pd_document_title,'questionId':''})\n // }\n this.questionanotherData.controls['questionRemarks'].setValue(answerData.question_remark);\n }\n });\n }\n prev(answerDetails,questionRemarks,questionDetails) {\n for(let docs of this.docArray)\n {\n \n if(docs.pd_document_title !='' && docs.pd_document_title != null && docs.pd_document_title !== undefined){\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':docs.pd_document_title});\n // return true;\n }else\n {\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':\"docNames\"});\n \n }\n }\n if(answerDetails.answerDetails !=null){\n //alert('answers');\n let pd_id = this.pdinfo.pd_id;\n let catid = questionDetails.fk_question_category_id;\n let qt_id = questionDetails.questions.filter(qst=>qst.template_question_id == answerDetails.answerDetails.fk_template_question_id)[0];\n let qut_id = qt_id.fk_question_id;\n let qustName = qt_id.question;\n let qut_weightage = qt_id.question_weightage;\n let ans_id = answerDetails.answerDetails.fk_question_answer_id;\n let pd_answer = answerDetails.answerDetails.answer;\n let ans_weightage = answerDetails.answerDetails.template_answer_weightage;\n let pd_remarks = questionRemarks.questionRemarks;\n let updatedby:any='';\n let updateon:any='';\n let createdby:any='';\n let createon:any='';\n let pd_details_id:any='';\n let pd_detail_answer_id:any = '';\n if(qt_id.pd_detail_id ==null)\n {\n createdby = this.userid;\n createon = currentdate;\n pd_details_id = '';\n }else\n {\n pd_details_id = qt_id.pd_detail_id;\n updatedby = this.userid;\n updateon = currentdate;\n pd_detail_answer_id = answerDetails.answerDetails.pd_detail_answer_id;\n }\n let saveRecords = \n {\n \"pd_detail_id\": pd_details_id,\n \"fk_pd_id\": pd_id,\n \"fk_category_id\": catid,\n \"fk_question_id\": qut_id,\n \"pd_question\": qustName,\n \"pd_question_weightage\": qut_weightage,\n \"question_remark\": pd_remarks,\n \"answers\":[{\"pd_detail_answer_id\": pd_detail_answer_id,\n \"pd_answer_id\":ans_id,\n \"pd_answer\": pd_answer,\n \"pd_answer_weightage\": qut_weightage,\n \"fk_pd_id\":pd_id,\n \"fk_pd_detail_id\":pd_details_id,\n\n }],\n \n \"fk_createdon\": createon,\n \"createdby\": createdby,\n \"fk_updatedon\": updateon,\n \"updatedby\": updatedby,\n \"images\": this.imageArray || \"\",\n \n\n };\n \n this.qstDetails.saveQusetion(saveRecords).subscribe(res=>\n {\n this.qustCate = res;\n if(this.qustCate.dataStatus == true){\n this.SwipedTabsSlider.slidePrev();\n this.docArray = [];\n this.getcategoryList(qt_id,pd_id);\n }\n })\n }else{\n if(this.SwipedTabsSlider.getActiveIndex()!=0){\n this.SwipedTabsSlider.slidePrev();\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';\nimport {FormBuilder,FormControl,FormArray, FormGroup,Validators} from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { Observable, Subject, ReplaySubject, from } from 'rxjs';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport {Camera} from '@ionic-native/camera'\n\nimport {searchValue} from '../search'\nimport { takeUntil } from 'rxjs/operators';\nimport{LoadingProvider} from '../../../providers/common-provider/loading'\nimport {StorageProvider} from '../../../providers/storage/storage'\nimport 'rxjs/add/observable/interval';\nimport { DatePipe } from '@angular/common';\n// import{CacheService} from 'ionic-cache-observable'\n/**\n * Generated class for the PdQuestionAddressPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-address',\n templateUrl: 'pd-question-address.html',\n})\nexport class PdQuestionAddressPage {\n\n // additional_premises: any=[];\n // bussiness_address_type: any=[];\n // formPremisesCityArray: any=[];\n // tempArr: any[];\n // cityData: any = [];\n // PremisesLabel: any=[];\n // formPremisesArray: any=[];\n // z:number = 0;\n \n // PremisesOtherFlag: boolean;\n CITY: any;\n residence: any;\n FormId: any;\n getaddressDetails: any;\n users: any;\n address: string;\n custBehaviour: any;\n cmtlocality: any;\n\n //placeholderName : any = 'Estimated area of the (Address Type)';\n placeholderName:any=[];\n premisesRentAmtInwords:any=[];\n rentAmtInwords : any ;\n\n locality: any = [];\n pdlocation: any = [];\n pdDetails: any;\n questionDetails: any;\n pdQuestionAddress:FormGroup;\n addressTypes:any=[];\n addressRemarksAccess:boolean = false;\n items:FormArray;\n pdState: any;\n pdCity: any;\n pdPincode: any;\n pdOtherPincode: any;\n cityData: any=[];\n pincodeData: any=[];\n stateData: any=[];\n uomData: any=[];\n addressesList: any;\n pincodeValue:any=[]\n cityDataValue:any=[]\n complete_status : boolean = false;\n pipe = new DatePipe('en-US');\n AppxPDLocationImgValid : boolean = false;\n // counts:number = 1;\n private search:searchValue[]\n protected _onDestroy = new Subject();\n public filteredCity: ReplaySubject = new ReplaySubject(1);\n public filteredState:ReplaySubject=new ReplaySubject(1)\n pincodeDataValue: any=[];\n base64: string;\n imageBucket: any=[];\n tab:string='0';\n imageDisplay: any=[];\n public data$:Observable\n timer:any;\n alertnativeCityData: any=[];\n alertnativePincodeData: any=[];\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider,public alerCtrl:AlertController,public constant:ConstantsProvider,\n public camera:Camera,private loading:LoadingProvider,private storagedb:StorageProvider) {\n \n this.questionDetails = this.navParams.get('questionDetails');\n \n this.pdDetails = this.navParams.get('pdDetails');\n \n this.FormId = this.navParams.get('FormId');\n\n this.users = this.aws.getlocale();\n //this.constant.getGeoTag().then(res=>{\n //console.log(\"constructor geo location promise\",res);\n //})\n\n // console.log(\"geo\",this.constant.getGeoTag())\n\n // if(this.pdDetails.addressline2 ! =null || this.pdDetails.addressline3 !=null){\n // this.address = this.pdDetails.addressline1+','+this.pdDetails.addressline2+','+this.pdDetails.addressline3;\n // }else{\n // this.address = this.pdDetails.addressline1+', - , -'; \n // }\n // this.pdState = this.pdDetails.fk_state;\n // this.getCityAndPincodeDetails(this.pdState);\n // this.pdCity = this.pdDetails.fk_city;\n // this.pdPincode = this.pdDetails.pincode_id;\n \n // this.pdOtherPincode = this.pdPincode == 1 ? this.pdDetails.other_pincode : '';\n \n this.getdropdownlist();\n \n //const control=this.pdQuestionAddress.controls['addresses']\n\n this.pdQuestionAddress = this.fb.group(\n {\n // addresses:this.fb.array([]),\n // address_form_remark:[''],\n // alternative_address:this.fb.array([]),\n // address_type_ques:this.fb.array([]),\n // pd_is_done_on_initiated_address:['']\n // address_ownership:[null],\n // other_ownership:[null],\n // rent_amt:[null],\n // other_premises_bussiness_activity : [null],\n // bussiness_activity_remark:[null],\n // bussiness_activity:[null],\n // bussiness_address_type:[null],\n // bussiness_address_type_others:[null], \n // business_years:[null],\n // business_month:[null],\n // additional_address_units: this.fb.array([]),\n addresses: this.fb.array([]),\n is_pd_done_on_initiated_address: [true],\n address_type: ['', Validators.compose([Validators.required])],\n locality: ['', Validators.compose([Validators.required])],\n locality_mixuse: [''],\n pd_location: ['', Validators.compose([Validators.required])],\n comment_locality: ['', Validators.compose([Validators.required])],\n estimated_area: [''],\n uom: [''],\n address_form_remark: ['']\n \n });\n \n //this.loadPD()\n // let con=this.pdQuestionAddress.controls['addresses']['controls']\n \n // this.pdQuestionAddress.controls['addresses']['controls'][0].controls['citySearch'].valueChanges\n // .pipe(takeUntil(this._onDestroy))\n // .subscribe(()=>{\n // this.SearchCity(0);\n // })\n this.timer = Observable.interval(10000)\n .subscribe((val) => { console.log('test',val); });\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n //this.addUnits();\n console.log(\"ionViewDidLoad PdQuestionAddressPage\")\n //this.getaddressForm(); \n let params = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n this.setAddressFromDatas(params);\n // this.getaddressFormFromLocal(); //FOR GETTING DATA FROM LOCAL STORAGE IF IT IS TRUE\n this.getPDImages();\n \n }\n\n \n searchFun(control:any,i:number,option,flag){\n\n if (option == 'city' && flag ==1) {\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'state') {\n\n control.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchState(control.controls['stateSearch'].value)\n })\n }\n if (option == 'pin' && flag ==1) {\n \n control.controls['pinSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchPin(control.controls['pinSearch'].value,i)\n })\n }\n if (option == 'city' && flag ==2) {\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchAlternativeCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'pin' && flag ==2) {\n \n control.controls['pinSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchAlternativePin(control.controls['pinSearch'].value,i)\n })\n }\n }\n searchPin(val:any,index:number){\n if(!this.pincodeData[index]){\n return\n }\n let searchValue=val\n if(!searchValue){\n this.pincodeDataValue[index]=this.pincodeData[index].slice()\n return\n }else{\n searchValue=searchValue.toLowerCase()\n }\n this.pincodeDataValue[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1)\n }\n SearchCity(val: any, i: number) {\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n // this.filteredCity.next(this.cityData[i].slice())\n this.cityDataValue[i]=this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.cityDataValue[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n\n }\n searchAlternativePin(val:any,index:number){\n if(!this.pincodeData[index]){\n return\n }\n let searchValue=val\n if(!searchValue){\n this.alertnativePincodeData[index]=this.pincodeData[index].slice()\n return\n }else{\n searchValue=searchValue.toLowerCase()\n }\n this.alertnativePincodeData[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1)\n }\n SearchAlternativeCity(val: any, i: number) {\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n // this.filteredCity.next(this.cityData[i].slice())\n this.alertnativeCityData[i]=this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.alertnativeCityData[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n\n }\n searchState(val: any) {\n \n if (!this.stateData) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n this.filteredState.next(this.stateData.slice())\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.filteredState.next(\n this.stateData.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n )\n }\n\ncountRowsForTextarea(text){\n \n \n \n if(text !='' && text != undefined){\n if(text.length%100 > 5)\n return 5;\n else if(text.length%100 <= 3)\n return 3;\n else return Math.floor(text.length%100);\n\n }\n}\n\n ionViewWillLeave()\n {\n \n\n // let method = this.alerCtrl.create({\t\t\t\n // message: 'Do You Want Save',\n // buttons: [\n // {\n // text: 'Save',\n // cssClass: 'method-color',\n // handler: () => {\n // \n // }\n // },\n // {\n // text: 'Cancel',\n // cssClass: 'method-color',\n // handler: () => {\n // \n // this.navCtrl.pop(); \n // }\n // }\n // ]\n // });\n // method.present()\n \n \n \n }\n\n ionViewCanLeave(){\n this.timer.unsubscribe();\n \n if(this.pdQuestionAddress.dirty){\n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Form is Modified\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n \n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n \n //For Inserting the data locally\n // this.localInsert(true);\n\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n /** To Get City And Pincode Data For Address Form \n * Param 'stateID' -> selected StateId\n */\n getCityAndPincodeDetails(stateID: string,i,flag) {\n \n //this.pdQuestionAddress.controls['addresses']['controls'].controls\n this.qustCat.getStateWiseCities(stateID).subscribe(data => {\n if (data.status == 200) {\n this.cityData[i] = data.records.cities;\n this.search=this.cityData[i]\n this.pincodeData[i] = data.records.pincode;\n \n //this.filteredCity.next(this.cityData[i].slice())\n if(flag== 1){\n this.cityDataValue[i]=this.cityData[i].slice()\n // this.pincodeData[i] = data.records.pincode;\n this.pincodeDataValue[i]=this.pincodeData[i].slice()\n }\n else if(flag == 2){\n this.alertnativeCityData[i]=this.cityData[i].slice()\n this.alertnativePincodeData[i]=this.pincodeData[i].slice()\n }\n }\n //FOR PINCODE FREE TEXT\n // let pin\n // if(pincode != ''){\n // if(pincode != 1){\n // this.pincodeValue[i]=this.pincodeData[i].filter(res=>res.pincode_id == pincode).map(val=>val.pincode)[0]\n // //this.pincodeValue[i]=[].concat.apply([],this.pincodeValue[i])\n \n\n // }\n // }\n });\n }\n\n\n\n getdropdownlist()\n {\n // this.addressTypes = [\n \n // {'id':'Office','Name':'Office'},\n // {'id':'Clinic','Name':'Clinic'},\n // {'id':'Factory','Name':'Factory'},\n // {'id':'Warehouse','Name':'Warehouse'},\n // {'id':'Shop','Name':'Shop'},\n // {'id':'ResidencecumOffice','Name':'ResidencecumOffice'},\n // {'id':'Residence','Name':'Residence'},\n // {'id':'OTHERS','Name':'OTHERS'}\n // ];\n\n \n this.qustCat.getcommondrop('ADDRESSTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.addressTypes = res['records'].filter(add=>add.isactive==1); \n // this.cacheObservable.register('addressType',this.addressTypes).subscribe(res=>{\n // this.data$=res.get$\n // })\n }\n // this.cacheObservable.loadFromObservable()\n \n })\n \n this.qustCat.getcommondrop('PDLOCATIONAPPROACH').subscribe(res=>\n {\n this.pdlocation = res;\n if(this.pdlocation.dataStatus == true)\n {\n this.pdlocation = this.pdlocation.records.filter(loca=>loca.isactive ==1);\n }\n })\n this.qustCat.getcommondrop('COMMENTSONLOCALITY').subscribe(res=>\n {\n this.cmtlocality = res;\n if(this.cmtlocality.dataStatus ==true)\n {\n this.cmtlocality = this.cmtlocality.records.filter(loc=>loc.isactive ==1);\n }\n });\n\n \n // this.qustCat.getcommondrop('CUSTOMERBEHAVIOUR').subscribe(res=>\n // {\n // this.custBehaviour = res;\n // if(this.custBehaviour.dataStatus == true)\n // {\n // this.custBehaviour = this.custBehaviour.records.filter(cust=>cust.isactive ==1);\n // }\n // })\n this.qustCat.getcommondrop('LOCALITY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.locality = res['records'].filter(loc=>loc.isactive==1);\n }\n })\n\n this.qustCat.getcommondrop('RESIDENCEOWNERSHIP').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.residence = res['records'].filter(red=>red.isactive==1);\n }\n })\n this.qustCat.getcommondrop('CITY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.CITY = res['records'].filter(red=>red.isactive==1);\n }\n })\n this.qustCat.getcommondrop('STATE').subscribe(res=>{\n this.stateData=res['records'].filter(val=>val.isactive == 1);\n this.filteredState.next(this.stateData.slice())\n\n })\n this.qustCat.getcommondrop('UOM').subscribe(res=>{\n this.uomData=res['records'].filter(val=>val.isactive == 1 && val.is_land_uom != 0)\n })\n \n }\n\n // checkaddress(value)\n // {\n // \n // if(value==\"OTHERS\")\n // {\n // this.addressRemarksAccess = true;\n // }else\n // {\n // this.addressRemarksAccess = false;\n // }\n // }\n\n // createItem(): FormGroup {\n // return this.fb.group({\n // name: [null],\n // do_you_know: [null],\n // how_long: [null],\n // is_owner: [null],\n // });\n // };\n \n createUnits(val): FormGroup {\n if(val==null){\n return this.fb.group({\n no_of_additional_units: [''],\n premises_type: [''],\n premises_type_others: [''],\n premises_city: [''],\n // premises_ownership: [''],\n //premises_ownership_others: [''],\n //premises_rent_amt:[''],\n premises_remarks: [''],\n });\n }\n else{\n \n return this.fb.group({\n no_of_additional_units: [val.no_of_additional_units],\n premises_type: [val.premises_type],\n premises_type_others: [val.premises_type_others],\n premises_city: [val.premises_city],\n // premises_ownership: [val.premises_ownership],\n // premises_ownership_others: [val.other_ownership],\n // premises_rent_amt:[val.rent_amt],\n premises_remarks: [val.premises_remarks],\n });\n \n }\n }\n\n addUnits() {\n this.items = this.pdQuestionAddress.get('additional_address_units') as FormArray;\n this.items.push(this.createUnits(null));\n}\n\n\n removeUnits(i){\n this.items.removeAt(i);\n }\n\n ConvertMonthintoYear(e){\n \n let business_year = this.pdQuestionAddress.controls.business_years.value;\n\n let converted_month : number = e%12;\n let converted_year : number = e/12;\n\n this.pdQuestionAddress.controls.business_years.setValue(+business_year + +Math.floor(converted_year));\n this.pdQuestionAddress.controls.business_month.setValue(Math.floor(converted_month));\n \n }\n initAddress(AddressDetails){\n \n if(AddressDetails != null){\n return this.fb.group({\n address: [AddressDetails.address],\n // address_type: [AddressDetails.address_type, Validators.compose([Validators.required])],\n // address_type_others: [AddressDetails.address_type_others],\n state: [AddressDetails.state],\n city: [AddressDetails.city],\n citySearch:[''],\n stateSearch:[''],\n pinSearch:[''],\n pincode: [AddressDetails.pincode],/** ,Validators.compose([Validators.minLength(6),Validators.maxLength(6)]) */\n pincode_others: [AddressDetails.pincode_others, Validators.compose([Validators.minLength(6), Validators.maxLength(6)])],\n // locality: [AddressDetails.locality, Validators.compose([Validators.required])],\n // locality_others: [AddressDetails.locality_others],\n // // locality_mixuse: [AddressDetails.locality_mixuse],\n // pd_location: [AddressDetails.pd_location, Validators.compose([Validators.required])],\n // comment_locality: [AddressDetails.comment_locality, Validators.compose([Validators.required])],\n // estimated_area: [AddressDetails.estimated_area],\n // uom: [AddressDetails.uom],\n // uom_others: [AddressDetails.uom_others] \n })\n }\n else{\n return this.fb.group({\n address: ['' ],\n // address_type: ['', Validators.compose([Validators.required])],\n // address_type_others: [''],\n state: [''],\n city: [''],\n citySearch:[''],\n stateSearch:[''],\n pinSearch:[''],\n pincode: [''],\n pincode_others: ['', Validators.compose([Validators.minLength(6), Validators.maxLength(6)])],\n // locality: ['', Validators.compose([Validators.required])],\n // locality_others: [''],\n // // locality_mixuse: [''],\n // pd_location: ['', Validators.compose([Validators.required])],\n // comment_locality: ['', Validators.compose([Validators.required])],\n // estimated_area: [''],\n // uom: [''],\n // uom_others: [''] \n });\n }\n \n }\n alternativeAddress(e) {\n console.log(e);\n console.log(this.pdQuestionAddress.controls['is_pd_done_on_initiated_address'].value)\n if (e === false) {\n console.log('alternativeAddress false',e);\n this.pdQuestionAddress.addControl('alternative_addresses', this.fb.array([]));\n const alternative_address_control = this.pdQuestionAddress.controls['alternative_addresses'];\n alternative_address_control.push(this.initAlternativeAddress(null));\n }\n else if (e === true) {\n console.log('alternativeAddress',e);\n this.pdQuestionAddress.removeControl('alternative_addresses');\n }\n}\n initAlternativeAddress(add_values){\n if(add_values == null){\nreturn this.fb.group({\n alternative_address:[''],\n alternative_state:[''],\n stateSearch:[''],\n citySearch:[''],\n pinSearch:[''],\n alternative_city:[''],\n alternative_pincode:[''],\n alternative_pincode_others:[''],\n reason_for_alternative_address:['']\n })\n}\nelse{\n return this.fb.group({\n alternative_address:[add_values.alternative_address],\n alternative_state:[add_values.alternative_state],\n stateSearch:[''],\n citySearch:[''],\n pinSearch:[''],\n alternative_city:[add_values.alternative_city],\n alternative_pincode:[add_values.alternative_pincode],\n alternative_pincode_others:[add_values.alternative_pincode_others],\n reason_for_alternative_address:[add_values.reason_for_alternative_address]\n})\n}\n\n }\n /** On Key Press Event For Numbers */\n keyPress(event: any) {\n const pattern = /[0-9]/;\n \n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n inWords(e,i){ \n \n this.premisesRentAmtInwords[i] = this.constant.convertNumberToWords(e.target.value);\n \n }\n\n inWordsForRent(e){\n \n this.rentAmtInwords = this.constant.convertNumberToWords(e.target.value);\n }\n\n selectedAddressType(e: any,i){\n this.placeholderName[0] = 'Estimated area of the ' + e;\n }\n imageMandatoryCheck(){\n if(this.pdQuestionAddress.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields marked with ' * '\")\n return\n }\n if(this.AppxPDLocationImgValid == false){\n //this.toast.pdTriggerappmessage(\"Please Take the Image for Approach to PD Location\");\n let alert=this.toast.setAlert(\"Mandatory photographs not taken\",\" Do you want to take it later?\")\n alert.present();\n alert.onDidDismiss(value=>{\n if(value=='s'){\n this.onSubmit()\n }\n else{\n return true;\n }\n })\n }\n else{\n this.onSubmit()\n }\n \n }\n onSubmit() {\n\n // if(this.pdQuestionAddress.invalid){\n // this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields marked with ' * '\")\n // return\n // }\n // if(this.AppxPDLocationImgValid == false){\n // //this.toast.pdTriggerappmessage(\"Please Take the Image for Approach to PD Location\");\n \n // }\n // else if (this.addressForm.value.address_form_remark == '') {\n // this.notifier.notify('warning', 'Fill Remark!');\n // this.disableAfterSubmit = false;\n // return;\n // }\n \n // console.log('this.addressForm.controls.addresses.value;', this.pdQuestionAddress.value);\n\n let records: any = {};\n\n records.addresses = this.pdQuestionAddress.controls.addresses.value;\n records.is_pd_done_on_initiated_address = this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.value\n\n if (this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.value == true) {\n if(records.addresses[0].pincode != 1){\n delete records.addresses[0].pincode_others\n }\n records.addresses[0].address_type = this.pdQuestionAddress.controls.address_type.value;\n if (this.pdQuestionAddress.controls.address_type.value == 1) {\n records.addresses[0].address_type_others = this.pdQuestionAddress.controls.address_type_others.value;\n }\n records.addresses[0].locality = this.pdQuestionAddress.controls.locality.value;\n if (this.pdQuestionAddress.controls.locality.value == 1) {\n records.addresses[0].locality_others = this.pdQuestionAddress.controls.locality_others.value;\n }\n records.addresses[0].locality_mixuse = this.pdQuestionAddress.controls.locality_mixuse.value;\n records.addresses[0].pd_location = this.pdQuestionAddress.controls.pd_location.value;\n records.addresses[0].comment_locality = this.pdQuestionAddress.controls.comment_locality.value;\n records.addresses[0].estimated_area = this.pdQuestionAddress.controls.estimated_area.value;\n records.addresses[0].uom = this.pdQuestionAddress.controls.uom.value;\n records.addresses[0].citySearch = '';\n records.addresses[0].pinSearch = '';\n records.addresses[0].stateSearch = '';\n if (this.pdQuestionAddress.controls.uom.value == 1) {\n records.addresses[0].uom_others = this.pdQuestionAddress.controls.uom_others.value;\n }\n }\n else if (this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.value == false) {\n records.alternative_addresses = this.pdQuestionAddress.controls.alternative_addresses.value;\n records.alternative_addresses[0].address_type = this.pdQuestionAddress.controls.address_type.value;\n if(records.addresses[0].alternative_pincode != 1){\n delete records.addresses[0].alternative_pincode_others\n }\n if (this.pdQuestionAddress.controls.address_type.value == 1) {\n records.alternative_addresses[0].address_type_others = this.pdQuestionAddress.controls.address_type_others.value;\n }\n records.alternative_addresses[0].locality = this.pdQuestionAddress.controls.locality.value;\n if (this.pdQuestionAddress.controls.locality.value == 1) {\n records.alternative_addresses[0].locality_others = this.pdQuestionAddress.controls.locality_others.value;\n }\n records.alternative_addresses[0].locality_mixuse = this.pdQuestionAddress.controls.locality_mixuse.value;\n records.alternative_addresses[0].pd_location = this.pdQuestionAddress.controls.pd_location.value;\n records.alternative_addresses[0].comment_locality = this.pdQuestionAddress.controls.comment_locality.value;\n records.alternative_addresses[0].estimated_area = this.pdQuestionAddress.controls.estimated_area.value;\n records.alternative_addresses[0].uom = this.pdQuestionAddress.controls.uom.value;\n records.alternative_addresses[0].citySearch == '' ? delete records.alternative_addresses[0].citySearch : '';\n records.alternative_addresses[0].pinSearch == '' ? delete records.alternative_addresses[0].pinSearch : '';\n records.alternative_addresses[0].stateSearch == '' ? delete records.alternative_addresses[0].stateSearch : '';\n if (this.pdQuestionAddress.controls.uom.value == 1) {\n records.alternative_addresses[0].uom_others = this.pdQuestionAddress.controls.uom_others.value;\n }\n }\n records.address_form_remark = this.pdQuestionAddress.controls.address_form_remark.value;\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n\n // console.log('Final records', records);\n\n \n\n this.qustCat.saveForm(records).subscribe(data => {\n if (data['status'] == 200) {\n this.pdQuestionAddress.reset(this.pdQuestionAddress.value);\n //FOR UPDATING THE FORM STATUS IN LOCAL\n // this.localInsert(false);\n this.toast.pdTriggerappmessage('Record Saved Successfully');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000); \n }\n else {\n this.toast.pdTriggerappmessage( 'Something Wents Wrong Try Again.!');\n \n }\n }, error => {\n this.toast.pdTriggerappmessage( 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur');\n \n });\n \n\n }\n\n savepdQuestionOLD(answerData)\n {\n let records: any = {};\n // records.address = answerData.address;\n // if(answerData.address_type_others != null){\n // records.address_type_others = answerData.address_type_others;\n // }\n // // records.state =answerData.state\n // records.city = answerData.city\n\n // records.pincode = answerData.pincode\n // records.pincode_others = answerData.pincode== 1 ?\n // this.pdQuestionAddress.controls.pincode_others.value : '';\n\n // records.address_type = answerData.address_type;\n // records.locality = answerData.locality;\n \n // records.locality_others = answerData.locality == 1 ?\n // this.pdQuestionAddress.controls.locality_others.value : '';\n\n // records.locality_mixuse = answerData.locality == 5 ?\n // this.pdQuestionAddress.controls.locality_mixuse.value : '';\n\n // records.pd_location = answerData.pd_location;\n // records.comment_locality = answerData.comment_locality;\n // records.other_comment_locality = answerData.other_comment_locality;\n // records.estimated_area = answerData.estimated_area;\n\n // records.uom = answerData.uom;\n // records.uom_others = answerData.uom == 1 ?\n // this.pdQuestionAddress.controls.uom_others.value : '';\n // records.customer_behaviour = answerData.customer_behaviour;\n // records.neighbourhood = answerData.neighbourhood;\n \n // answerData.addresses.forEach(element=>{\n // let temp=element.pincode\n // element.pincode=1\n // element.pincode_others=temp\n // })\n if(this.pdQuestionAddress.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields marked with ' * '\")\n return\n }\n if(this.AppxPDLocationImgValid == false){\n this.toast.pdTriggerappmessage(\"Please Take the Image for Approach to PD Location\");\n return\n }\n records.addresses=answerData.addresses\n // records.addressess\n records.address_form_remark=answerData.address_form_remark\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.address_form_remark = answerData.address_form_remark;\n // records.address_ownership = answerData.address_ownership;\n // records.other_ownership = answerData.other_ownership;\n // records.rent_amt = answerData.rent_amt;\n // records.other_premises_bussiness_activity = answerData.other_premises_bussiness_activity;\n // records.bussiness_activity = answerData.bussiness_activity;\n // records.bussiness_activity_remark = answerData.bussiness_activity_remark;\n // records.business_years = answerData.business_years;\n // records.business_month = answerData.business_month;\n \n // records.additional_address_units = answerData.additional_address_units;\n \n \n \n this.qustCat.saveForm(records).subscribe(data => {\n // let params: any = {};\n // params.pd_id = '250';\n // params.pd_form_id = '250';\n \n // setTimeout(function(){\n // this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n // },5000)\n if(data['dataStatus']==true){\n //TO CHANGE THE FORM STATE \n\n this.pdQuestionAddress.reset(this.pdQuestionAddress.value);\n //FOR UPDATING THE FORM STATUS IN LOCAL\n // this.localInsert(false);\n this.toast.pdTriggerappmessage('Record Saved Successfully');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000); \n }\n },err=>{\n this.toast.pdTriggerappmessage('Something went wrong ');\n });\n }\n\n setAddressFromDatas(params){\n this.qustCat.retiverForm(params).subscribe(data => {\n\n const control = this.pdQuestionAddress.controls['addresses'];\n if (data['status'] == 200) {\n let initiated_address_check =data['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? data['records'].is_pd_done_on_initiated_address : true ;\n this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.setValue(initiated_address_check);\n if (data['records'].addresses.length == 0) {\n control.push(this.initAddress(null));\n } else {\n data['records'].addresses.forEach((datas, index) => {\n let obj = {\n 'address': datas.address,\n 'state': datas.state,\n 'city': datas.city,\n 'pincode': datas.pincode,\n 'pincode_others': datas.pincode ? datas.pincode_others : ''\n }\n this.getCityAndPincodeDetails(datas.state, index, 1);\n control.push(this.initAddress(obj));\n \n if (datas.address_type_others == \"\" || datas.address_type_others == null){\n delete datas.address_type_others;\n }\n\n if (datas.citySearch == \"\" || datas.citySearch == null){\n delete datas.citySearch;\n }\n\n if (datas.locality_others == \"\" || datas.locality_others == null){\n delete datas.locality_others;\n }\n if (datas.pinSearch == \"\" || datas.pinSearch == null){\n delete datas.pinSearch;\n }\n if (datas.pincode_others == \"\" || datas.pincode_others == null){\n delete datas.pincode_others;\n }\n if (datas.stateSearch == \"\" || datas.stateSearch == null){\n delete datas.stateSearch;\n }\n if (datas.uom_others == \"\" || datas.uom_others == null){\n delete datas.uom_others;\n }\n \n if (initiated_address_check === true) {\n\n this.pdQuestionAddress.controls.pd_location.setValue(datas.pd_location ? datas.pd_location : '');\n this.pdQuestionAddress.controls.address_type.setValue(datas.address_type ? datas.address_type : '');\n\n let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n this.selectedAddressType(selectedAddressType.address_type,index);\n this.setOthers(datas.address_type, '', 3);\n\n if (datas.address_type == 1) {\n this.pdQuestionAddress.controls.address_type_others.setValue(datas.address_type_others);\n this.selectedAddressType(datas.address_type_others,index);\n }\n\n this.pdQuestionAddress.controls.comment_locality.setValue(datas.comment_locality ? datas.comment_locality : '');\n this.pdQuestionAddress.controls.locality.setValue(datas.locality ? datas.locality : '');\n\n this.setOthers(datas.locality, '', 4);\n\n if (datas.locality == 1) {\n this.pdQuestionAddress.controls.locality_others.setValue(datas.locality_others);\n }\n\n this.pdQuestionAddress.controls.estimated_area.setValue(datas.estimated_area ? datas.estimated_area : '');\n this.pdQuestionAddress.controls.uom.setValue(datas.uom);\n\n this.setOthers(datas.uom, '', 5);\n if (data['records'].uom == 1) {\n this.pdQuestionAddress.controls.uom_others.setValue(datas.uom_others);\n }\n }\n });\n }\n\n if (initiated_address_check == false) {\n \n this.pdQuestionAddress.addControl('alternative_addresses', this.fb.array([]));\n const alternative_address_control = this.pdQuestionAddress.controls['alternative_addresses'];\n if (data['records'].alternative_addresses.length > 0) {\n \n data['records'].alternative_addresses.forEach((datas, index) => {\n \n // if (datas.citySearch == \"\" || datas.citySearch == null){\n // delete datas.citySearch;\n // } \n // if (datas.pinSearch == \"\" || datas.pinSearch == null){\n // delete datas.pinSearch;\n // }\n // if (datas.stateSearch == \"\" || datas.stateSearch == null){\n // delete datas.stateSearch;\n // }\n \n let obj = {\n 'alternative_address': datas.alternative_address,\n 'alternative_state': datas.alternative_state,\n 'alternative_city': datas.alternative_city,\n 'alternative_pincode': datas.alternative_pincode,\n 'alternative_pincode_others': datas.alternative_pincode == 1 ? datas.alternative_pincode_others : '',\n 'reason_for_alternative_address': datas.reason_for_alternative_address,\n }\n this.getCityAndPincodeDetails(datas.alternative_state, index, 2);\n alternative_address_control.push(this.initAlternativeAddress(obj));\n \n this.pdQuestionAddress.controls.pd_location.setValue(datas.pd_location);\n this.pdQuestionAddress.controls.address_type.setValue(datas.address_type);\n\n let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n this.selectedAddressType(selectedAddressType.address_type,index);\n\n this.setOthers(datas.address_type, '', 3);\n\n if (datas.address_type == 1) {\n this.pdQuestionAddress.controls.address_type_others.setValue(datas.address_type_others);\n this.selectedAddressType(datas.address_type_others,index);\n }\n\n this.pdQuestionAddress.controls.comment_locality.setValue(datas.comment_locality);\n\n this.pdQuestionAddress.controls.locality.setValue(datas.locality);\n this.setOthers(datas.locality, '', 4);\n\n if (datas.locality == 1) {\n this.pdQuestionAddress.controls.locality_others.setValue(datas.locality_others);\n }\n\n this.pdQuestionAddress.controls.estimated_area.setValue(datas.estimated_area);\n this.pdQuestionAddress.controls.uom.setValue(datas.uom);\n this.setOthers(datas.uom, '', 5);\n if (data['records'].uom == 1) {\n this.pdQuestionAddress.controls.uom_others.setValue(datas.uom_others);\n }\n\n });\n }\n }\n this.pdQuestionAddress.controls.address_form_remark.setValue(data['records'].address_form_remark);\n }\n else {\n this.getaddressForm();\n }\n // else {\n // control.push(this.createAddresses(null));\n // }\n });\n }\n getaddressFormFromLocal(){\n let local_value:any;\n let data:any={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id};\n // data.pd_id=this.pdDetails.pd_id\n // data.form_id=this.FormId.form_id\n this.storagedb.retrieveLocalStorage(data).then(res=>{\n \n if(res){\n let val_rec:any={}\n val_rec.records=res[0]\n local_value=res[0]\n console.log(\"addd\",val_rec,\"loca\",local_value)\n \n const control=this.pdQuestionAddress.controls['addresses']\n this.getaddressDetails = val_rec;\n \n if(local_value.active == true){\n if(this.getaddressDetails.records.addresses ){\n \n this.getaddressDetails = this.getaddressDetails.records.addresses;\n\n if(this.getaddressDetails.length == 0 ){\n control.push(this.initAddress(''));\n }\n else{\n this.getaddressDetails.forEach((datas,index)=>{\n \n this.getCityAndPincodeDetails(datas.state,index,1)\n if(datas.pincode == 1){\n this.pincodeValue[index]=datas.pincode_others\n }//if(val==true){\n \n let val={\n 'address': datas.address,\n // 'address_type': datas.address_type,\n // 'address_type_others': datas.address_type_others,\n 'state': datas.state,\n 'city': datas.city,\n 'pincode':datas.pincode,\n 'pincode_others':datas.pincode_others,\n // 'locality': datas.locality,\n // 'locality_others': datas.locality_others,\n // // 'locality_mixuse': datas.locality_mixuse,\n // 'pd_location': datas.pd_location,\n // 'comment_locality': datas.comment_locality,\n // 'estimated_area': datas.estimated_area,\n // 'uom': datas.uom,\n // 'uom_others': datas.uom_others\n }\n \n // let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n \n if(datas.address_type != ''){\n this.selectedAddressType(datas.address_type,index);\n // this.selectedAddressType(selectedAddressType.address_type,index);\n if (datas.address_type == 1) {\n this.selectedAddressType(datas.address_type_others,index);\n }\n }\n control.push(this.initAddress(val))\n })\n this.pdQuestionAddress.controls.address_form_remark.setValue(val_rec.records.address_form_remark);\n }\n }\n else{\n control.push(this.initAddress(''))\n }\n }\n else{\n this.getaddressForm()\n }\n }\n else{\n this.getaddressForm()\n }\n \n \n \n })\n \n \n }\n setOthers(e, i, flag) {\n switch (flag) {\n case 1:\n const control = this.pdQuestionAddress.controls['addresses'];\n let ChildCtrl: any = control.controls[i];\n e == 1 ? ChildCtrl.addControl('pincode_others', new FormControl('', Validators.required)) : ChildCtrl.removeControl('pincode_others');\n break;\n case 2:\n const alternative_address_control = this.pdQuestionAddress.controls['alternative_addresses'];\n let AltChildCtrl: any = alternative_address_control.controls[i];\n e == 1 ? AltChildCtrl.addControl('alternative_pincode_others', new FormControl('', Validators.required)) : AltChildCtrl.removeControl('alternative_pincode_others');\n break;\n case 3:\n e == 1 ? this.pdQuestionAddress.addControl('address_type_others', new FormControl('', Validators.required)) : this.pdQuestionAddress.removeControl('address_type_others');\n break;\n case 4:\n e == 1 ? this.pdQuestionAddress.addControl('locality_others', new FormControl('', Validators.required)) : this.pdQuestionAddress.removeControl('locality_others');\n break;\n case 5:\n e == 1 ? this.pdQuestionAddress.addControl('uom_others', new FormControl('', Validators.required)) : this.pdQuestionAddress.removeControl('uom_others');\n break;\n }\n }\n\n\n getaddressForm()\n {\n \n let res:any;\n\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n // this.addressesList = data.records.filter(item => item.assigned_pd == this.pdid && item.isactive == 1);\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n \n const control=this.pdQuestionAddress.controls['addresses']\n this.getaddressDetails = res;\n \n if(this.getaddressDetails.dataStatus ==true){\n if(this.getaddressDetails.records.addresses ){\n \n this.getaddressDetails = this.getaddressDetails.records.addresses;\n\n if(this.getaddressDetails.length == 0 ){\n control.push(this.initAddress(''));\n }\n else{\n \n this.getaddressDetails.forEach((datas,index)=>{\n if (datas.address_type_others == \"\" || datas.address_type_others == null){ delete datas.address_type_others;}\n if (datas.citySearch == \"\" || datas.citySearch == null){delete datas.citySearch;}\n if (datas.locality_others == \"\" || datas.locality_others == null){delete datas.locality_others;}\n if (datas.pinSearch == \"\" || datas.pinSearch == null){delete datas.pinSearch;}\n if (datas.pincode_others == \"\" || datas.pincode_others == null){delete datas.pincode_others;}\n if (datas.stateSearch == \"\" || datas.stateSearch == null){delete datas.stateSearch;}\n if (datas.uom_others == \"\" || datas.uom_others == null){delete datas.uom_others;}\n \n this.getCityAndPincodeDetails(datas.state,index,1)\n if(datas.pincode == 1){\n this.pincodeValue[index]=datas.pincode_others\n }//if(val==true){\n \n let val={\n 'address': datas.address,\n // 'address_type': datas.address_type,\n // 'address_type_others': datas.address_type_others,\n 'state': datas.state,\n 'city': datas.city,\n 'pincode':datas.pincode,\n 'pincode_others':datas.pincode_others,\n // 'locality': datas.locality,\n // 'locality_others': datas.locality_others,\n // // 'locality_mixuse': datas.locality_mixuse,\n // 'pd_location': datas.pd_location,\n // 'comment_locality': datas.comment_locality,\n // 'estimated_area': datas.estimated_area,\n // 'uom': datas.uom,\n // 'uom_others': datas.uom_others\n }\n if(datas.address_type != ''){\n let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n this.selectedAddressType(selectedAddressType.address_type,index);\n if (datas.address_type == 1) {\n this.selectedAddressType(datas.address_type_others,index);\n }\n }\n control.push(this.initAddress(val))\n this.pdQuestionAddress.controls.pd_location.setValue(datas.pd_location ? datas.pd_location : '');\n this.pdQuestionAddress.controls.address_type.setValue(datas.address_type ? datas.address_type : '');\n // if (datas.address_type) {\n // let selectedAddressType = this.pdQuestionAddress.filter(element => element.address_type_id == datas.address_type)[0];\n // this.selectedAddressType(selectedAddressType.address_type);\n // this.setOthers(datas.address_type, '', 3);\n // if (datas.address_type == 1) {\n // this.addressForm.controls.address_type_others.setValue(datas.address_type_others);\n // this.selectedAddressType(datas.address_type_others);\n // }\n // }\n\n\n this.pdQuestionAddress.controls.comment_locality.setValue(datas.comment_locality ? datas.comment_locality : '');\n this.pdQuestionAddress.controls.locality.setValue(datas.locality ? datas.locality : '');\n\n if (datas.locality) {\n\n this.setOthers(datas.locality, '', 4);\n\n if (datas.locality == 1) {\n this.pdQuestionAddress.controls.locality_others.setValue(datas.locality_others);\n }\n }\n\n\n this.pdQuestionAddress.controls.estimated_area.setValue(datas.estimated_area ? datas.estimated_area : '');\n this.pdQuestionAddress.controls.uom.setValue(datas.uom);\n if (datas.uom) {\n this.setOthers(datas.uom, '', 5);\n if (datas.uom == 1) {\n this.pdQuestionAddress.controls.uom_others.setValue(datas.uom_others);\n }\n }\n })\n let initiated_address_check =res['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? res['records'].is_pd_done_on_initiated_address : true ;\n this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.setValue(initiated_address_check);\n this.pdQuestionAddress.controls.address_form_remark.setValue(res['records'].address_form_remark);\n }\n // if(this.getaddressDetails.additional_address_units != null){\n // var result = Object.keys(res['records'].additional_address_units).map(function(key) {\n // // return res['records'].additional_address_units[key];\n // //for slicing the automatically created\n \n // });\n // //this.removeUnits(0);\n // }\n\n // let control = this.pdQuestionAddress.get('additional_address_units') as FormArray;\n\n // this.pdQuestionAddress.controls['address'].setValue(this.getaddressDetails.address);\n // this.pdQuestionAddress.controls['state'].setValue(this.getaddressDetails.state)\n\n // if (this.getaddressDetails.state != '') {\n // this.getCityAndPincodeDetails(this.getaddressDetails.state);\n // this.pdQuestionAddress.controls.city.setValue(this.getaddressDetails.city);\n // this.pdQuestionAddress.controls.pincode.setValue(this.getaddressDetails.pincode);\n // if (this.getaddressDetails.pincode == 1) {\n // this.pdQuestionAddress.controls.pincode_others.setValue(this.getaddressDetails.pincode_others);\n // this.pdQuestionAddress.controls.pincode_others.setValidators([Validators.required]);\n // this.pdQuestionAddress.controls.pincode_others.updateValueAndValidity();\n // }\n // }\n // this.pdQuestionAddress.controls['pd_location'].setValue(this.getaddressDetails.pd_location);\n // this.pdQuestionAddress.controls['address_type'].setValue(this.getaddressDetails.address_type);\n // let selectedAddressType = this.addressTypes.filter(element =>element.address_type_id == this.getaddressDetails.address_type);\n // this.selectedAddressType(selectedAddressType);\n\n // if(this.getaddressDetails.address_type != null) {\n // this.pdQuestionAddress.controls['address_type_others'].setValue(this.getaddressDetails.address_type_others);\n // this.selectedAddressType(this.getaddressDetails.address_type_others);\n // }\n\n // this.pdQuestionAddress.controls['comment_locality'].setValue(this.getaddressDetails.comment_locality);\n\n // if(this.getaddressDetails.comment_locality != null){\n // this.pdQuestionAddress.controls['other_comment_locality'].setValue(this.getaddressDetails.other_comment_locality);\n // }\n // // this.pdQuestionAddress.controls.customer_behaviour.setValue(this.getaddressDetails.customer_behaviour);\n // this.pdQuestionAddress.controls['locality'].setValue(this.getaddressDetails.locality);\n // if(this.getaddressDetails.locality == 1 ){\n // this.pdQuestionAddress.controls['locality_others'].setValue(this.getaddressDetails.locality_others);\n // }\n // if(this.getaddressDetails.locality == 5){\n // this.pdQuestionAddress.controls['locality_mixuse'].setValue(this.getaddressDetails.locality_mixuse)\n // }\n \n // this.pdQuestionAddress.controls.estimated_area.setValue(this.getaddressDetails.estimated_area);\n // this.pdQuestionAddress.controls.uom.setValue(this.getaddressDetails.uom);\n // if (this.getaddressDetails.uom == 1) {\n // this.pdQuestionAddress.controls.uom_others.setValue(this.getaddressDetails.uom_others);\n // this.pdQuestionAddress.controls.uom_others.setValidators([Validators.required])\n // this.pdQuestionAddress.controls.uom_others.updateValueAndValidity();\n // }\n // this.pdQuestionAddress.controls['address_form_remark'].setValue(this.getaddressDetails.address_form_remark);\n // // this.pdQuestionAddress.controls['address_ownership'].setValue(this.getaddressDetails.address_ownership);\n // this.pdQuestionAddress.controls['other_ownership'].setValue(this.getaddressDetails.other_ownership);\n // this.pdQuestionAddress.controls['rent_amt'].setValue(this.getaddressDetails.rent_amt);\n // if(this.getaddressDetails.rent_amt != null){\n // this.rentAmtInwords = this.constant.convertNumberToWords(this.getaddressDetails.rent_amt);\n // }\n // this.pdQuestionAddress.controls['other_premises_bussiness_activity'].setValue(this.getaddressDetails.other_premises_bussiness_activity);\n // if(this.getaddressDetails['other_premises_bussiness_activity'] !=null) {\n // this.pdQuestionAddress.controls['bussiness_activity_remark'].setValue(this.getaddressDetails.other_premises_bussiness_activity);\n // } \n // else{\n // this.pdQuestionAddress.controls['bussiness_activity_remark'].setValue('');\n // }\n // this.pdQuestionAddress.controls['bussiness_activity'].setValue(this.getaddressDetails.bussiness_activity);\n\n // this.pdQuestionAddress.controls['business_years'].setValue(this.getaddressDetails.business_years);\n // this.pdQuestionAddress.controls['business_month'].setValue(this.getaddressDetails.business_month);\n \n \n \n\n /* if(this.getaddressDetails.bussiness_activity == 'yes') {\n \n if (result.length == 0) {\n \n control.push(this.createUnits(null));\n } else {*/\n \n //for(let val of this.getaddressDetails.additional_address_units){\n //control.push(this.createUnits(val));\n //}\n //result.forEach((datas,index) => {\n \n //this.premisesRentAmtInwords[index] = this.constant.convertNumberToWords(datas.premises_rent_amt);\n //this.pdQuestionAddress.controls['additional_address_units'].setValue(datas);\n \n //});\n \n //}\n \n // }\n\n }\n else{\n control.push(this.initAddress(''))\n }\n }\n else\n this.loadPD();\n });\n \n }\n loadPD(){\n const control=this.pdQuestionAddress.controls['addresses']\n this.qustCat.getAddressDetails(this.pdDetails.pd_id).subscribe(res=>{\n if(res.dataStatus == true){\n this.addressesList = res.records.filter(item => item.isactive == 1 && item.assigned_pd == this.pdDetails.pd_id);\n \n if(this.addressesList.length > 0){\n this.addressesList.forEach((datas,index)=>{\n this.getCityAndPincodeDetails(datas.fk_state,index,1)\n \n let obj ={\n 'address': datas.addressline1,\n 'address_type': '',\n 'address_type_others': '',\n 'state': datas.fk_state,\n 'city': datas.fk_city,\n 'pincode':datas.pincode_id,\n 'pincode_others': datas.other_pincode,\n 'locality': '',\n 'locality_others': '',\n // 'locality_mixuse':'',\n 'pd_location': '',\n 'comment_locality': '',\n 'estimated_area': '',\n 'uom': '',\n 'uom_others': ''\n }\n \n control.push(this.initAddress(obj))\n })\n }\n else{\n control.push(this.initAddress(''))\n }\n }\n else{\n control.push(this.initAddress(''))\n }\n })\n }\n getPDImages(){\n \n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n console.log('record_for_pic',record_for_pic);\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n console.log('records result',result);\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy','is_show_report': result.is_show_report == null ? 0 : result.is_show_report })\n let img_title = (result.pd_document_title).split('(');\n if(img_title[0] == 'Approach to PD Location '){\n this.AppxPDLocationImgValid = true;\n //this.imageDisplay = this.imageDisplay.filter (value=>value.is_show_report != 0 && value.name.split('(')[0] != 'Approach to PD Location ')\n }\n })\n console.log(\"image Display Data Are\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n // console.log('inside changeName Fn - its param are ',value,'Index are ',index,'active are');\n this.imageDisplay[index]={'image':img,'Name':value,'is_show_report':0}\n // console.log(\"image Display Data Are\",this.imageDisplay);\n }\n\n changeNameForBucket(value,index,img,active){\n // console.log('inside change-Name-For-Bucket Fn - its param are',value,'Index are ',index,'active are',active);\n this.imageBucket[index]={'image':img,'Name':value,'is_show_report':0}\n \n }\n changeOptions(event: any,index: any){\n // console.log('Option Changed ' + event);\n let name = this.imageBucket[index].value\n let length = this.imageDisplay.length;\n console.log('image display length',length);\n this.imageDisplay.forEach(result=>{\n if(name == 'Approach to PD Location ' && event == 1){\n result.is_show_report = 0;\n }\n })\n console.log('this.imageDisplay',this.imageDisplay);\n this.imageBucket.forEach(result=>{\n if(name == 'Approach to PD Location ' && event == 1){\n // this.AppxPDLocationImgValid = true;\n console.log('name',name);\n console.log('this.imageBucket.length',this.imageBucket.length);\n result.is_show_report=0;\n }\n })\n console.log('this.imageBucket',this.imageBucket);\n this.imageBucket[index].is_show_report=event;\n // console.log('this.imageBucket',JSON.stringify(this.imageBucket));\n }\n removeImg(index){\n // console.log('inside removeImg Fn - its param are - Index only ',index);\n this.imageDisplay.splice(index,1);\n \n }\n removeImgForBucket(index){\n // console.log('inside removeImgForBucket Fn - its param are - Index only ',index);\n this.imageBucket.splice(index,1)\n // console.log(\"image Display Data Are\",this.imageDisplay);\n }\n savePhoto(flag){\n // console.log('savePhoto');\n let currentDate = this.pipe.transform(new Date(), 'yyyy-MM-dd hh:mm:ss');\n this.camera.getPicture({\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 600,\n correctOrientation: true\n }).then((imageData)=>{\n // console.log('inside savePhoto Fn - its response ',imageData);\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.base64='data:image/png;base64,'+imageData\n if(flag == 1){\n this.imageBucket.push({'image':this.base64,'link':geoCoordinates,'Name':'','is_show_report':''});\n // this.imageDisplay.push({'image':this.base64,'Name':''})\n console.log(\"imagebucket\",this.imageBucket)\n this.getImageName(this.imageBucket.length-1)\n }else if(flag == 2){\n // console.log('flag');\n this.imageBucket.push({'image':this.base64,'link':geoCoordinates,'Name':'Approach to PD Location ( ' + currentDate + ' )','is_show_report':''});\n }\n })\n },(err)=>{\n //alert(\"error\");\n })\n this.tab='1';\n // this.content.scrollToBottom();\n // let dimensions = this.content.getContentDimensions();\n // this.content.scrollTo(0, dimensions.contentHeight+100, 100);\n // this.inputFocus.setFocus();\n }\n\n getImageName(index){\n // console.log('inside get Image Name Fn - its param are - Index only ',index);\n let alert =this.toast.setAlertForDocName()\n \n alert.present()\n alert.onDidDismiss(value=>{\n // console.log('Reponse',value,'Reponse AS Name',value.Name,value.IsShowReport);\n this.imageBucket[index].Name=value.Name;\n });\n \n \n // let alert=this.alerCtrl.create({\n // title:'Document Name',\n // message: 'Please Enter the Document Name',\n // cssClass:'prompt_alert',\n // inputs:[\n // {\n // name:'Name',\n // //value:this.imageBucket[index].Name\n // placeholder:'Document Name'\n // }\n // ],\n // buttons:[\n // {\n // text:'Submit',\n // handler:data=>{\n // this.imageBucket[index].Name=data.Name\n // alert.dismiss\n // }\n // }\n // ]\n // })\n // alert.present();\n //this.inputFocus.setFocus();\n \n }\n // al(){\n // this.toast.pdTriggerappmessage(\"touched\");\n // }\n\n updateImage(){\n }\n sendImage(){\n this.loading.loaderForSendImage() \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\nconsole.log(\"records for sendImage\",records);\n // console.log(\"inside SendImage Function - records array\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n localInsert(option){\n let datas:any=this.pdQuestionAddress.value\n datas.pd_id=this.pdDetails.pd_id\n datas.form_id=this.FormId.form_id;\n datas.active=option;\n // let recors={'records':datas}\n this.storagedb.insertData(datas).then(res=>{\n // let alert=this.toast.setAlert('data',JSON.stringify(res))\n // alert.present();\n // console.log(\"inside localInsert Fn - its Response\",res);\n })\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-address/pd-question-address.ts","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {FormBuilder,FormControl,FormArray, FormGroup,Validators} from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport { max } from 'rxjs/operators';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionEmpInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-emp-info',\n templateUrl: 'pd-question-emp-info.html',\n})\nexport class PdQuestionEmpInfoPage {\n questionDetails: any;\n pdDetails: any;\n employmentForm:FormGroup;\n FormId: any;\n pd_cus_segment: string;\n customer_segment_abbr: string;\n users: any;\n pdid: any;\n frequency_data: any[];\n company_list: any[];\n person_met_list: any[];\n company_related_applicants_list: any[];\n company_relationship_list: any[];\n filtered_company_relationship_list: any[];\n \n mthlySlryAmtInWords\n grossMthlySlryAmtInWords\n netMthlySlryAmtInWords\n bonusIncentiveAmtInWords\n bankAmtInWords\n cashAmtInWords\n\n workExperienceFlag: boolean = false;\n workExperienceErrorFlag:boolean = false;\n generalExistBusinessYear:any;\n generalExistBusinessMonth:any;\n tab:any='0'\n imageBucket:any=[]\n imageDisplay:any=[]\n\n public dateonly: any = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}];\n public todate: any[] = this.dateonly;\n @ViewChild('workExp') expFocus: ElementRef\n @ViewChild('cashPaidFocus') inputCashPaidFocus :ElementRef\n @ViewChild('yearFocus') inputYearFocus :ElementRef\n complete_status: boolean = false;\n \n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws: AwsServiceProvider, \n public toast: ToastProvider,public constant:ConstantsProvider,\n private cameraProvider:CameraProvider,private loading:LoadingProvider) {\n this.FormId = this.navParams.get('FormId');\n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.users = this.aws.getlocale();\n this.pdid=this.pdDetails.pd_id;\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n this.pd_cus_segment = this.pdDetails.customer_segment_abbr.toUpperCase();\n this.generalExistBusinessYear=100;\n this.generalExistBusinessMonth=12;\n this.getDropDownList();\n this.getCompanyFromGeneralDetails();\n this.getEmploymentDetails();\n this.employmentForm = this.fb.group(\n {\n employer_name: [''],\n employer_in_brief:[''],\n \n // members.controls.current_business_experiance_year.setValue(this.generalExistBusinessYear);\n // members.controls.current_business_experiance_month.setValue(this.generalExistBusinessMonth);\n \n how_long_year: ['',Validators.max(this.generalExistBusinessYear)],\n how_long_month: [''],\n total_business_experience: [''],\n total_business_previous_experience: [''],\n was_met: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n name_person_met: [''],\n designation_person_met: [''],\n confirm_salary: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n confirm_salary_amount: [''],\n attendance_seen: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n sal_reg_seen: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n from_date_the_salary_is_rcv: [''],\n to_date_the_salary_is_rcv: [''],\n gross_monthly_salary: [''],\n net_monthly_salary: [''],\n amount_paid_in_cash: [''],\n amount_paid_through_bank: [''],\n check_validated:[''],\n how_was_it_validated: [''],\n why_was_it_not_validated: [''],\n bonus_incentive: [''],\n bonus_frequency: [''],\n bonus_type: [''],\n bonus_type_other: [''],\n any_delays: [''],\n employment_remarks: [''],\n // nameOfEmp:[null],\n // yearWithEmp:[null],\n // empMet:[null],\n // designationOfEmp:[null],\n // salaryConfirm:[null],\n // actualSalary:[null],\n // attRegisterSeen:[null],\n // salaryRegisterSeen:[null]\n })\n\n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionEmpInfoPage');\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.employmentForm.dirty);\n if(this.employmentForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n getDropDownList()\n {\n\n this.qustCat.getcommondrop('FREQUENCY').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.frequency_data = data['records'];\n this.frequency_data = this.frequency_data.filter(freq => freq.isactive == 1);\n }\n });\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.company_relationship_list = data['records'].filter(item => item.isactive == 1);\n this.company_relationship_list = data['records'].filter(item => item.name != 'Others');\n this.company_relationship_list.push({ 'company_relationship_id': 0, 'name': 'Not Applicable' });\n }\n });\n }\n\n getCompanyFromGeneralDetails(){\n \n let records = { 'parent_pdid':this.pdDetails.parent_pd_id,'pd_id': this.pdDetails.pd_id, 'pd_form_id': '18' };\n \n this.qustCat.retiverForm(records).subscribe(value => {\n if (value['dataStatus'] == true) {\n this.company_list = value['records'].companies.filter(com => com.is_active == true);\n this.person_met_list = value['records'].individuals.filter(app => app.is_person_met == true && app.is_active == true);\n this.company_related_applicants_list = value['records'].company_with_relationships;\n } \n else {\n\n }\n })\n \n }\n \n ValidateNetSalary(){\n let salary = this.employmentForm.controls['net_monthly_salary'].value; \n console.log('this.employmentForm.controls[amount_paid_in_cash].value',this.employmentForm.controls['amount_paid_in_cash'].value);\n \n if(salary != ''){\n let cash_amount = this.employmentForm.controls['amount_paid_in_cash'].value;\n // let Bank_amount = this.employmentForm.controls['amount_paid_through_bank'].value;\n\n this.employmentForm.controls['amount_paid_in_cash'].setValidators([Validators.max(salary)]); \n this.employmentForm.controls['amount_paid_in_cash'].updateValueAndValidity();\n let maxamt = salary-cash_amount\n if( this.employmentForm.controls['amount_paid_in_cash'].value !=''){\n let balance=salary-this.employmentForm.controls['amount_paid_in_cash'].value\n console.log(\"bal\",balance)\n this.employmentForm.controls['amount_paid_through_bank'].setValue(balance);\n this.inWords(balance,5)\n }\n if(maxamt >= 0 ){\n this.employmentForm.controls['amount_paid_through_bank'].setValidators([Validators.max(salary-cash_amount)]); \n }\n else{\n this.employmentForm.controls['amount_paid_through_bank'].setValue('0');\n this.employmentForm.controls['amount_paid_through_bank'].setValidators([Validators.max(0)]); \n }\n this.employmentForm.controls['amount_paid_through_bank'].updateValueAndValidity();\n \n }\n else{\n this.toast.pdTriggerappmessage('Net Monthly Salary Is Empty.!');\n this.employmentForm.controls['amount_paid_in_cash'].setValue(''); \n this.employmentForm.controls['amount_paid_in_cash'].updateValueAndValidity();\n this.employmentForm.controls['amount_paid_through_bank'].setValue(''); \n this.employmentForm.controls['amount_paid_through_bank'].updateValueAndValidity();\n return;\n }\n \n \n }\n\n saveEmpInfo(){\n // console.log(\"has Error\",this.employmentForm.controls['how_long_year'].hasError('max'))\n if(this.employmentForm.controls['how_long_year'].hasError('max') || this.employmentForm.controls['how_long_month'].hasError('max')){\n this.toast.pdTriggerappmessage(\"Higher than business Vintage\")\n this.inputYearFocus.nativeElement.focus();\n return\n }\n \n if(this.employmentForm.controls['total_business_experience'].hasError('min') ){\n this.toast.pdTriggerappmessage('Total working Experience is Lower');\n this.expFocus.nativeElement.focus();\n return\n }\n // console.log(\"this.em\",this.employmentForm.controls['amount_paid_in_cash'].errors)\n if(this.employmentForm.controls['amount_paid_in_cash'].hasError('max') || this.employmentForm.controls['amount_paid_through_bank'].hasError('max')){\n this.toast.pdTriggerappmessage(\"Given Value is Maximum of Net Salary\")\n this.inputCashPaidFocus.nativeElement.focus();\n return\n }\n \n if (!this.employmentForm.valid) {\n this.toast.pdTriggerappmessage('Form Invalid Try Again.!');\n return;\n }\n \n\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.employer_name = this.employmentForm.controls['employer_name'].value;\n records.employer_in_brief = this.employmentForm.controls['employer_in_brief'].value;\n records.how_long_year = this.employmentForm.controls['how_long_year'].value;\n records.how_long_month = this.employmentForm.controls['how_long_month'].value;\n records.total_business_experience = this.employmentForm.controls['total_business_experience'].value;\n records.total_business_previous_experience = this.employmentForm.controls['total_business_previous_experience'].value;\n records.was_met = this.employmentForm.controls['was_met'].value;\n if (this.employmentForm.controls['was_met'].value == 'yes') {\n records.name_person_met = this.employmentForm.controls['name_person_met'].value;\n records.designation_person_met = this.employmentForm.controls['designation_person_met'].value;\n }else{\n records.name_person_met = '';\n records.designation_person_met = '';\n }\n records.confirm_salary = this.employmentForm.controls['confirm_salary'].value;\n records.confirm_salary_amount = this.employmentForm.controls['confirm_salary'].value == 'yes' ? this.employmentForm.controls['confirm_salary_amount'].value : '';\n records.attendance_seen = this.employmentForm.controls['attendance_seen'].value;\n records.sal_reg_seen = this.employmentForm.controls['sal_reg_seen'].value;\n records.from_date_the_salary_is_rcv = this.employmentForm.controls['from_date_the_salary_is_rcv'].value;\n records.to_date_the_salary_is_rcv = this.employmentForm.controls['to_date_the_salary_is_rcv'].value;\n records.gross_monthly_salary = this.employmentForm.controls['gross_monthly_salary'].value;\n records.net_monthly_salary = this.employmentForm.controls['net_monthly_salary'].value;\n \n records.amount_paid_in_cash = this.employmentForm.controls['amount_paid_in_cash'].value;\n records.amount_paid_through_bank = this.employmentForm.controls['amount_paid_through_bank'].value;\n records.check_validated = this.employmentForm.controls['check_validated'].value;\n records.how_was_it_validated = this.employmentForm.controls['check_validated'].value == 'validated' ? this.employmentForm.controls['how_was_it_validated'].value : '';\n records.why_was_it_not_validated = this.employmentForm.controls['check_validated'].value != 'validated' ? this.employmentForm.controls['why_was_it_not_validated'].value : '';\n \n records.any_delays = this.employmentForm.controls['any_delays'].value;\n\n records.bonus_incentive = this.employmentForm.controls['bonus_incentive'].value;\n records.bonus_frequency = this.employmentForm.controls['bonus_frequency'].value;\n records.bonus_type = this.employmentForm.controls['bonus_type'].value;\n records.bonus_type_other = this.employmentForm.controls['bonus_type_other'].value;\n\n records.employment_remarks = this.employmentForm.controls['employment_remarks'].value;\n \n this.qustCat.saveForm(records).subscribe(data => {\n\n\n if(data['dataStatus']== true){\n //TO CHANGE THE FORM STATE \n // this.employmentForm.markAsUntouched();\n this.employmentForm.reset(this.employmentForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n })\n }\n \n\n filtercompanyrelationship(companyid, applicantid) {\n var array = companyid.split(\"-\");\n let data = this.company_related_applicants_list.filter(cmpy => cmpy.relation_to_company == array[0] && cmpy.applicant_name == applicantid);\n if (data.length > 0) {\n this.filtered_company_relationship_list = this.company_relationship_list.filter(freq => freq.company_relationship_id == data[0].company_relationship);\n this.employmentForm.controls['designation_person_met'].setValue(this.filtered_company_relationship_list[0]['name'] + ' ' + array[1]);\n }\n else {\n this.employmentForm.controls['designation_person_met'].setValue('');\n }\n }\n\n formDate(value){\n // console.log('to',this.todate)\n // console.log(value);\n // console.log('to length',this.todate.length);\n // console.log('index',value-1);\n // console.log('this.todate',this.todate[11]);\n // console.log('this.todate',this.todate[11].isdisabled);\n this.employmentForm.controls['to_date_the_salary_is_rcv'].setValue('');\n this.todate = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}];\n var i ;\n \n if(value != 0 && value != '')\n for(i=0;i<=value-1;i++){\n this.todate[i].isdisabled = true;\n if(value == 31){\n this.todate[30].isdisabled = false;\n }\n }\n \n }\n checkWithExistYear(e) {\n \n let data1 = this.company_list.filter(c => c.company_name == e.split('-')[1])[0];\n \n console.log('this.generalExistBusinessMonth',this.generalExistBusinessMonth);\n console.log('this.generalExistBusinessYear',this.generalExistBusinessYear);\n if(data1.business_month != null && data1.business_month != '' && data1.business_month != undefined){\n this.generalExistBusinessMonth = data1.business_month\n }\n if(data1.business_years){\n this.generalExistBusinessYear = data1.business_years\n }\n this.employmentForm.controls['how_long_year'].setValidators([Validators.max(this.generalExistBusinessYear)]); \n this.employmentForm.controls['how_long_year'].updateValueAndValidity();\n \n }\n\n \nConvertMonthintoYear(e) {\n\n let how_long_year = this.employmentForm.controls.how_long_year.value;\n\n let converted_month: number = e % 12;\n let converted_year: number = e / 12;\n\n if (how_long_year > this.generalExistBusinessYear) {\n this.employmentForm.controls['how_long_year'].setValidators([Validators.max(this.generalExistBusinessYear)]); \n this.employmentForm.controls['how_long_year'].updateValueAndValidity();\n this.employmentForm.controls['how_long_year'].setValue('');\n this.employmentForm.controls['how_long_month'].setValue('');\n }\n else {\n if (how_long_year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth) {\n \n this.employmentForm.controls['how_long_year'].setValidators([Validators.max(this.generalExistBusinessYear)]); \n this.employmentForm.controls['how_long_year'].updateValueAndValidity(); \n\n this.employmentForm.controls['how_long_month'].setValidators([Validators.max(this.generalExistBusinessMonth)]); \n this.employmentForm.controls['how_long_month'].updateValueAndValidity(); \n\n } else { \n\n this.employmentForm.controls.how_long_year.setValue(+how_long_year + +Math.floor(converted_year));\n this.employmentForm.controls.how_long_month.setValue(Math.floor(converted_month));\n\n }\n }\n}\n\n\ncheckWorkingExperiences(){\n // this.workExperienceErrorFlag = (+this.employmentForm.controls.total_business_experience.value ) <= (+this.employmentForm.controls.how_long_year.value) ? true : false;\n // this.workExperienceFlag = (+this.employmentForm.controls.total_business_experience.value ) < (+this.employmentForm.controls.how_long_year.value) ? false : true;\n\n this.employmentForm.controls['total_business_experience'].setValidators([Validators.min(+this.employmentForm.controls.how_long_year.value)]); \n this.employmentForm.controls['total_business_experience'].updateValueAndValidity(); \n \n if(!this.employmentForm.controls['total_business_experience'].valid){\n this.expFocus.nativeElement.focus();\n }\n\n this.workExperienceFlag = +this.employmentForm.controls.total_business_experience.value > +this.employmentForm.controls.how_long_year.value ? true : false;\n\n if(!this.workExperienceFlag){\n this.employmentForm.controls['total_business_previous_experience'].setValue('');\n this.employmentForm.controls['total_business_previous_experience'].updateValueAndValidity(); \n }\n\n}\n\ninWords(val,flag:number){\n switch(flag){\n case 1 :\n this.mthlySlryAmtInWords= this.constant.convertNumberToWords(val); \n break;\n case 2 : \n this.grossMthlySlryAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 3 :\n this.netMthlySlryAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 4 :\n this.bonusIncentiveAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 5 :\n this.bankAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 6 :\n this.cashAmtInWords = this.constant.convertNumberToWords(val); \n break;\n }\n }\n\n\n getEmploymentDetails(){\n \n let records = {'parent_pdid':this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId.form_id };\n\n this.qustCat.retiverForm(records).subscribe(value => {\n if (value['dataStatus'] == true) {\n let Emp = value['records'];\n console.log('emp',Emp);\n this.employmentForm.controls['employer_name'].setValue(Emp.employer_name);\n this.employmentForm.controls['employer_in_brief'].setValue(Emp.employer_in_brief)\n this.employmentForm.controls['how_long_year'].setValue(Emp.how_long_year);\n this.employmentForm.controls['how_long_month'].setValue(Emp.how_long_month);\n this.employmentForm.controls['was_met'].setValue(Emp.was_met);\n this.employmentForm.controls['total_business_experience'].setValue(Emp.total_business_experience);\n this.employmentForm.controls['total_business_previous_experience'].setValue(Emp.total_business_previous_experience);\n if(this.employmentForm.controls['total_business_experience'] != null && this.employmentForm.controls['total_business_previous_experience'] != null){\n //this.checkWorkingExperiences();\n }\n\n if (Emp.name_person_met) {\n this.employmentForm.controls['name_person_met'].setValue(Emp.name_person_met);\n }\n if (Emp.designation_person_met) {\n this.employmentForm.controls['designation_person_met'].setValue(Emp.designation_person_met);\n }\n this.employmentForm.controls['confirm_salary'].setValue(Emp.confirm_salary);\n console.log('Emp.confirm_salary_amount',Emp.confirm_salary_amount,Emp.confirm_salary);\n if (Emp.confirm_salary) {\n this.employmentForm.controls['confirm_salary_amount'].setValue(Emp.confirm_salary_amount);\n this.inWords(Emp.confirm_salary_amount,1);\n \n }\n this.employmentForm.controls['attendance_seen'].setValue(Emp.attendance_seen);\n this.employmentForm.controls['sal_reg_seen'].setValue(Emp.sal_reg_seen);\n this.employmentForm.controls['from_date_the_salary_is_rcv'].setValue(Emp.from_date_the_salary_is_rcv);\n this.employmentForm.controls['to_date_the_salary_is_rcv'].setValue(Emp.to_date_the_salary_is_rcv);\n this.employmentForm.controls['gross_monthly_salary'].setValue(Emp.gross_monthly_salary);\n this.employmentForm.controls['net_monthly_salary'].setValue(Emp.net_monthly_salary);\n this.employmentForm.controls['amount_paid_in_cash'].setValue(Emp.amount_paid_in_cash);\n this.employmentForm.controls['amount_paid_through_bank'].setValue(Emp.amount_paid_through_bank);\n this.employmentForm.controls['check_validated'].setValue(Emp.check_validated);\n this.employmentForm.controls['how_was_it_validated'].setValue(Emp.how_was_it_validated);\n this.employmentForm.controls['why_was_it_not_validated'].setValue(Emp.why_was_it_not_validated);\n this.employmentForm.controls['bonus_incentive'].setValue(Emp.bonus_incentive);\n this.employmentForm.controls['bonus_frequency'].setValue(Emp.bonus_frequency);\n this.employmentForm.controls['bonus_type'].setValue(Emp.bonus_type);\n this.employmentForm.controls['bonus_type_other'].setValue(Emp.bonus_type_other);\n this.employmentForm.controls['any_delays'].setValue(Emp.any_delays);\n this.employmentForm.controls['employment_remarks'].setValue(Emp.employment_remarks);\n \n this.inWords(Emp.gross_monthly_salary,2);\n this.inWords(Emp.net_monthly_salary,3);\n this.inWords(Emp.bonus_incentive,4);\n this.inWords(Emp.amount_paid_in_cash,6);\n this.inWords(Emp.amount_paid_through_bank,5);\n if(Emp.total_business_experience != ''){\n this.checkWorkingExperiences();\n}\n\n } \n })\n \n }\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-emp-info/pd-question-emp-info.ts","import { Component, ApplicationInitStatus, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup,FormArray,FormBuilder,Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionCurrentLoansPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-current-loans',\n templateUrl: 'pd-question-current-loans.html',\n})\n\nexport class PdQuestionCurrentLoansPage {\napplicants: any;\n placeholderName: any = [];\n lenderData: any;\n frequencyData: any;\n loanTypeData:any;\n FormId: any;\n users: any;\n pdDetails: any;\n questionDetails: any;\n currentLoans:FormGroup;\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n pdid:number;\n amtInwords: any=[];\n emiAmtInwords: any=[];\n dataFromAssets : any = [];\n labelArr : any = [];\n investmentTypeData: any=[];\n addressTypeData: any;\n propertyTypeData: any;\n tentureErrorFlag:boolean=false\n others_loanAccess:boolean=false\n @ViewChild('balanceTenure') TenureFocus : ElementRef\n lenderDataValue: any;\n protected _onDestroy = new Subject();\n base64: any;\n imageBucket: any=[];\n tab: any='0';\n imageDisplay: any=[];\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public toast:ToastProvider, \n public aws:AwsServiceProvider,public constant:ConstantsProvider,\n public cameraProvider:CameraProvider,private loading:LoadingProvider) {\n\n \n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.FormId = this.navParams.get('FormId');\n this.applicants = this.pdDetails.applicat_details.filter(val=>val.pd_co_applicant_id != 0);\n \n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n \n \n\n this.getdropdown();\n \n this.users = this.aws.getlocale();\n this.currentLoans = this.fb.group(\n {\n existing_loan: [null],\n currentloan_remarks:[null],\n loan_details: this.fb.array([])\n });\n \n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionCurrentLoansPage');\n console.log('{{FormId.form_name}}',this.FormId.form_name,this.FormId);\n this.getcurrentLoans()\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.currentLoans.dirty);\n if(this.currentLoans.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n}\n\n getdropdown()\n {\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(res=>\n {\n this.lenderData = res['records'].filter(len=>len.isactive==1);\n this.lenderDataValue=this.lenderData.slice();\n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n this.frequencyData = res['records'].filter(frq=>frq.isactive==1);\n });\n this.qustCat.getcommondrop('EXISTINGLOANTYPES').subscribe(val=>{\n this.loanTypeData=val['records'].filter(loan=>loan.isactive == 1 );\n });\n\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n \n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true )// && val.is_company_applicant===true\n }\n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n //modifyCompanyList.push({'id':\"0\",'name':'Others','group_id':1})\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n }\n })\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n // this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n // modifyApplicantList.push()\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n\n this.qustCat.getcommondrop('INVESTMENTTYPE').subscribe(data => {\n this.investmentTypeData=data['records'].filter(val=>val.isactive == 1);\n \n \n });\n this.qustCat.getcommondrop('ADDRESSTYPE').subscribe(data=>{\n this.addressTypeData=data['records'].filter(val=>val.isactive ==1 );\n })\n this.qustCat.getcommondrop('PROPERTIES').subscribe(data=>{\n this.propertyTypeData=data['records'].filter(val=>val.isactive ==1);\n })\n }\n \n exitsCheck(val)\n { \n \n if(val ==\"Yes\")\n {\n this.addLoanDetails();\n }\n\n }\n createLoanDetail(data) {\n return this.fb.group({\n label: data == null ? [''] : [data.label],\n loan_amount: data == null ? [''] : [data.loan_amount],\n frequency: data == null ? [''] : [data.frequency],\n other_frequency: data == null ? [''] : [data.other_frequency],\n emi: data == null ? [''] : [data.emi],\n loan_type: data == null ? [''] : [data.loan_type],\n others_loan_type: data == null ? [''] : [data.others_loan_type],\n loan_taken_by: data == null ? [''] : [data.loan_taken_by],\n others_loan_taken: data == null ? [''] : [data.others_loan_taken],\n lender: data == null ? [''] : [data.lender],\n bankSearch:[''],\n others_lender: data == null ? [''] : [data.others_lender],\n original_tenure: data == null ? [''] : [data.original_tenure],\n current_balance_tenure: data == null ? [''] : [data.current_balance_tenure],\n elapsed_tenure: data == null ? [''] : [data.elapsed_tenure]\n // other_frequency:[''],\n // loan_amount: [''],\n // frequency:[''],\n // emi: [''],\n // loan_type: [''],\n // others_loan_type:[''],\n // loan_taken_by:[''],\n // others_loan_taken:[''],\n // lender: [''],\n // others_lender:[''],\n // original_tenure: [''],\n // current_balance_tenure: [''],\n // elapsed_tenure:[],\n });\n}\naddLoanDetails() {\n const control = this.currentLoans.controls['loan_details'];\n control.push(this.createLoanDetail(null));\n}\ndeleteLoanDetails(index) {\n const control = this.currentLoans.controls['loan_details'];\n if(control.length==1)\n {\n this.currentLoans.controls['loan_details'].reset();\n }else{\n control.removeAt(index);\n }\n}\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\ncheckOthers(values){\n console.log(values)\n let status\n if(values.length != 0 && values != null){\n status=values.filter(res=>res.id == 0) \n status=status.length > 0 ?true : false\n console.log(status)\n this.others_loanAccess=status\n }\n else {\n this.others_loanAccess= false;\n }\n \n \n}\ncheckTenure(details){\n let originalTenure = details.value.original_tenure;\n // alert(originalTenure);\n // if(originalTenure>=details.value.current_balance_tenure){\n // this.tentureErrorFlag=true\n details.controls.current_balance_tenure.setValidators([Validators.required, Validators.max(+originalTenure)]);\n details.controls.current_balance_tenure.updateValueAndValidity();\n //details.controls.current_balance_tenure.setValue\n // }\n // else{\n\n // this.toast.pdTriggerappmessage(\"Current Tenure \")\n \n \n \n // details.controls.current_balance_tenure.setValidators([Validators.max(+originalTenure)]);\n // details.controls.current_balance_tenure.updateValueAndValidity(); \n // let BalanceTenure = details.value.current_balance_tenure;\n // if( originalTenure < BalanceTenure){\n // alert('Greater');\n // details.controls.current_balance_tenure.setValue('');\n // alert('validation setted For');\n // details.controls.current_balance_tenure.setValidators([Validators.min(+originalTenure)]);\n // details.controls.current_balance_tenure.updateValueAndValidity(); \n \n \n // }\n}\ncalculateTenure(details,flag)\n{\n \n switch(flag){\n \n \n case 1:\n let ElapsedValues;\n console.log(details)\n if(details.value.original_tenure != null && details.value.original_tenure != '' && details.value.current_balance_tenure != null && details.value.current_balance_tenure != '' ){\n console.log(\"not null\")\n \n if(details.value.current_balance_tenure == 0){\n details.controls['elapsed_tenure'].setValue(details.value.original_tenure)\n }\n if(details.value.current_balance_tenure <= details.value.original_tenure){\n \n console.log(\"validate\")\n this.tentureErrorFlag=false\n ElapsedValues = details.value.original_tenure - details.value.current_balance_tenure ;\n \n details.controls['elapsed_tenure'].setValue(ElapsedValues);\n }\n else{\n //this.toast.pdTriggerappmessage(\"Oringinal Tenure Less than Current Balance Tenure\")\n this.tentureErrorFlag=true\n this.TenureFocus.nativeElement.focus();\n }\n \n}\nelse{\n this.tentureErrorFlag=false\n}\nbreak;\ncase 2:\nlet balance\nconsole.log(\"case 2\",details);\n if(details.value.original_tenure !=null && details.value.original_tenure != '' && details.value.elapsed_tenure != null && details.value.elapsed_tenure != ''){\n \n if(details.value.elapsed_tenure == 0){\n details.controls['current_balance_tenure'].setValue(details.value.original_tenure)\n }\n if(details.value.elapsed_tenure <= details.value.original_tenure){\n this.tentureErrorFlag=false\n balance=details.value.original_tenure - details.value.elapsed_tenure;\n \n console.log(\"ba\",balance);\n details.controls['current_balance_tenure'].setValue(balance)\n }\n else{\n //this.toast.pdTriggerappmessage(\"Oringinal Tenure Less than Current Balance Tenure\")\n this.tentureErrorFlag=true\n // this.TenureFocus.nativeElement.focus();\n }\n}\nelse{\n this.tentureErrorFlag=false\n}\n \n}\n}\nkeyPress(event: any) {\n const pattern = /[0-9]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n}\ninWords(e,i,flag){\n switch(flag){\n case 1 : \n this.amtInwords[i] = this.constant.convertNumberToWords(e.target.value);\n break;\n case 2 :\n this.emiAmtInwords[i] = this.constant.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n }\n}\n\n\nselectedfrequency(e,i){\n \n switch(+e){\n case 1: this.placeholderName[i] = 'Instalment Amount'; break;\n case 2: this.placeholderName[i] = 'Annual Instalment Amount'; break;\n case 3: this.placeholderName[i] = 'Halfyearly Instalment Amount'; break;\n case 4: this.placeholderName[i] = 'Fortnightly Instalment Amount'; break;\n case 5: this.placeholderName[i] = 'Daily Instalment Amount'; break;\n case 6: this.placeholderName[i] = 'Quarterly Instalment Amount'; break;\n case 7: this.placeholderName[i] = 'Monthly Instalment Amount'; break;\n default: this.placeholderName[i] = 'Instalment Amount'; break;\n}\n \n}\n\nsubmitCurrentloan(answerData) {\n console.log(answerData)\n console.log(\"true\",this.tentureErrorFlag);\n let inde=[]\n // answerData.loan_details.forEach((element,index)=>{\n \n // if(element.current_balance_tenure > element.original_tenure){\n // this.toast.pdTriggerappmessage(\"Oringinal Tenure Less than Current Balance Tenure\")\n // inde=index\n // }\n \n // })\n // console.log(\"index\",inde);\n // if(inde){\n // return\n // }\n if(this.tentureErrorFlag == true){\n // this.toast.pdTriggerappmessage(\"Original Tenure Less than Current Balance Tenure\");\n this.toast.pdTriggerappmessage(\"Original Tenture is Lower\");\n this.TenureFocus.nativeElement.focus();\n return\n }\n \n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.existing_loan = answerData.existing_loan;\n records.loan_details = answerData.loan_details;\n records.currentloan_remarks = answerData.currentloan_remarks;\n records.loan_details.forEach(val=>{\n delete val.bankSearch\n })\n console.log(' final records when save',records);\n this.qustCat.saveForm(records).subscribe(data => {\n \n if(data['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n // this.currentLoans.markAsUntouched();\n this.currentLoans.reset(this.currentLoans.value);\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n \n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n });\n}\n getcurrentLoans()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n const control = this.currentLoans.controls['loan_details'];\n if(res['dataStatus']==true )\n {\n let currentLoanDetails = res['records'];\n \n if(res['records'].loan_details !== undefined && res['records'].loan_details !=null && res['records'].loan_details !=''){\n currentLoanDetails.loan_details.forEach(val=>{\n val.bankSearch=''\n })\n var result = Object.keys(res['records'].loan_details).map(function(key) {\n \n return res['records'].loan_details[key];\n \n });\n console.log(\"resutl\",result);\n this.currentLoans.controls['existing_loan'].setValue(currentLoanDetails.existing_loan);\n this.currentLoans.controls['currentloan_remarks'].setValue(currentLoanDetails.currentloan_remarks);\n const control = this.currentLoans.controls['loan_details'];\n if(currentLoanDetails.existing_loan != 'No')\n {\n if(result.length ==0)\n {\n control.push(this.createLoanDetail(null));\n }else\n {\n \n result.forEach((datas,index)=>\n {\n //this.calculateTenure(res['records'])\n control.push(this.createLoanDetail(null));\n this.selectedfrequency(datas.frequency,index);\n if(datas.loan_amount!=''){\n this.amtInwords[index]=this.constant.convertNumberToWords(datas.loan_amount);\n }\n if(datas.emi!=''){\n this.emiAmtInwords[index]=this.constant.convertNumberToWords(datas.emi);\n }\n })\n\n this.currentLoans.controls['loan_details'].patchValue(result);\n \n }\n }\n }\n else\n {\n this.currentLoans.controls['existing_loan'].setValue(currentLoanDetails.existing_loan);\n this.currentLoans.controls['currentloan_remarks'].setValue(currentLoanDetails.currentloan_remarks);\n }\n\n }\n else {\n \n this.qustCat.getAssetsWithLoanFromBusiness(this.pdid).subscribe(data=>{\n \n\n if(data.dataStatus == true){\n \n \n \n let AssetData = data.record;\n \n \n \n if(AssetData.business_address_asset.length > 0){\n AssetData.business_address_asset.map(element=>{\n this.dataFromAssets.push({mode:0,\n mode_name:element.address_label,\n details:[],\n owner_name:element.business_name_of_the_owner,\n other_owner: element.business_name_of_the_other_owner,\n form_type:'Data From Bussiness Address'})\n })\n }\n\n if(AssetData.business_assets.length>0){\n AssetData.business_assets.map(element => {\n this.dataFromAssets.push({mode:element.business_assets_mode,\n mode_name:element.business_assets_mode_name,\n details:element.business_details,\n owner_name:element.business_name_of_the_owner,\n other_owner: element.business_name_of_the_other_owner,\n form_type:'Data From Business Assets'})\n });\n }\n\n if(AssetData.other_assests.length > 0){\n AssetData.other_assests.map(element => {\n this.dataFromAssets.push({mode:element.assets_mode,\n mode_name:element.assets_mode_name,\n details:element.details,\n owner_name:element.name_of_the_owner,\n other_owner: element.other_owner,\n form_type:'Data From Other Asset'\n })\n })\n }\n \n \n // id: \"4\", name: \"Equipments and machinaries\", isactive: \"1\", flag: \"1\", is_others: \"0\"\n // id: \"7\", name: \"Investments\", isactive: \"1\", flag: \"0\", is_others: \"0\"\n // id: \"6\", name: \"Life Insurance Policy\", isactive: \"1\", flag: \"0\", is_others: \"0\"\n // id: \"2\", name: \"Property\", isactive: \"1\", flag: \"1\", is_others: \"0\"\n // id: \"3\", name: \"Vehicle\", isactsive: \"1\", flag: \"1\", is_others: \"0\"\n // id: \"1\", name: \"Others\", isactive: \"1\", flag: \"1\", is_others: \"1\"}\n \n if(this.dataFromAssets.length > 0){ \n let labelarray : any = [];\n \n this.dataFromAssets.forEach((val,index) => {\n if(val.mode == 0){\n \n let owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n \n labelarray[index] = ' : '+owner +' - '+ val.mode_name;\n } \n if(val.mode == 1){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.any_other_assets;\n });\n if(val.owner_name.length>0 ){\n owner = val.owner_name.map((e => {\n // return e.name.split(',')\n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 2){\n \n let owner: any = \"Owner Not Mentioned\";\n let data;\n val.details.forEach((v,index) => {\n data = v.property_type_name;\n if(v.property_type != 1){\n if(val.form_type == 'Data From Business Assets'){\n data = this.addressTypeData.filter(item => item.address_type_id == v.property_type)[0].address_type;\n }\n else if(val.form_type == 'Data From Other Asset'){\n data = this.propertyTypeData.filter(item => item.id == v.property_type)[0].name;\n }\n else{\n data = '';\n }\n }else{\n data=v.other_property_type;\n }\n if(val.owner_name.length>0){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n });\n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 3){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.manufacturer_model_vehicle;\n });\n if(val.owner_name.length>0){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 4){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.equipment_manufacturing_description;\n });\n if(val.owner_name.length>0 ){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 6){\n \n let owner:any=\"Owner Not Mentioned\";\n if(val.owner_name.length>0)\n {\n owner=val.owner_name.map((e=>{\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n labelarray[index] = ' : '+owner+' - '+ val.mode_name;\n }\n if(val.mode == 7){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.investments_type != 1 \n ? this.investmentTypeData.filter(data => data.id == v.investments_type)[0].name \n : v.other_investments_type ;\n\n });\n if(val.owner_name.length>0){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : ' + owner + ' - '+ val.mode_name + description;\n var vals= owner + ' - '+ val.mode_name \n \n }\n });\n const control = this.currentLoans.controls['loan_details'];\n this.labelArr = labelarray;\n let arr : any = [];\n if(this.labelArr.length > 0){\n this.currentLoans.controls['existing_loan'].setValue('Yes');\n this.labelArr.forEach((v,index) => {\n \n arr = { \n 'label': v,\n 'loan_amount': '',\n 'frequency':'',\n 'other_frequency':'',\n 'emi': '',\n 'loan_type': '',\n 'others_loan_type': '',\n 'loan_taken_by':'',\n 'others_loan_taken':'',\n 'lender': '',\n 'others_lender':'',\n 'original_tenure': '',\n 'current_balance_tenure': '',\n 'elapsed_tenure':''\n }\n control.push(this.createLoanDetail(arr));\n });\n // this.currentLoanForm.controls['existing_loan'].setValue(arr);\n }\n }\n else{\n \n control.push(this.createLoanDetail(null));\n }\n \n }\n });\n }\n })\n \n \n }\n searchFun(control){\n console.log(control)\n let name:string=\"bank\"\n control.controls['bankSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.lenderDataValue=this.constant.searchData(this.lenderData,control.controls['bankSearch'].value,name)\n })\n \n }\n/*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n tapEvent(value){\n console.log(\"dd\",value);\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n console.log(\"res\",res);\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n console.log(\"Fail\")\n this.toast.pdTriggerappmessage('Fail');\n }\n },ERR=>{\n console.log(JSON.stringify(ERR));\n this.toast.pdTriggerappmessage(JSON.stringify(ERR));\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('others_loan_taken').value\n value.get('others_loan_taken').setValue(this.constant.sentenceCase(name));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport { takeUntil } from 'rxjs/operators';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {StorageProvider} from '../../../providers/storage/storage'\n\n/**\n * Generated class for the PdQuestionLoansPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nexport interface Dbmaster{\n bt_lender_list_id: number;\n lender_name: string;\n // constant_name: string;\n}\n\n@Component({\n selector: 'page-pd-question-loans',\n templateUrl: 'pd-question-loans.html',\n})\n\nexport class PdQuestionLoansPage {\n enduse: any = [];\n propertyType: any;\n mortagetypeAccess: boolean;\n mortageAccess: boolean = false;\n mortageCardAccess: boolean;\n lender_short_name : any;\n topUpAmtInWords: any;\n ownContributionInWords: any;\n valAsPerAgmtInWords: any;\n balTxrfAmtInWords: any;\n loanAmtInWords: any;\n\n emiAmtInWords:any;\n emvAmtInWords:any;\n fundAmtInWords : any;\n m_btLenderList: any;\n applicants: any;\n m_endUseofLoad: any;\n m_sourceofamount: any;\n m_mortageTypeProperty: any;\n m_statusofCunstruction: any;\n ownerNames: any=[];\n isOtherPurpose: boolean=false;\n endUserList: any=[];\n pdDetails: any;\n FormId: any;\n productAbbr:any;\n loanDetailsForm: FormGroup;\n users: any;\n mergeCompanyApplicant:any=[];\n existCompanyList:any;\n m_endUseOFTopUpList:any=[]\n isContribution: boolean = false;\n\n \n isOtherSource: boolean = false;\n isPLSource: boolean = false;\n\n sourceList:any=[];\n pdid:number;\n m_endUseForLoan:any;\n subProductName : any;\n //public filterCtrl:FormControl=new FormControl\n private dbmasters: Dbmaster[];\n /** Subject that emits when the component has been destroyed. */\n protected _onDestroy = new Subject();\n public filteredBanks: ReplaySubject = new ReplaySubject(1);\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n complete_status : boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb: FormBuilder, \n public qustCat: QuestionCategoryProvider, public aws: AwsServiceProvider, \n public toast: ToastProvider,public constant:ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,public storagedb:StorageProvider) {\n this.FormId = this.navParams.get('FormId');\n this.pdDetails = this.navParams.get('pdDetails');\n console.log(\"pd\",this.pdDetails);\n this.applicants = this.pdDetails.applicat_details\n this.applicants = this.applicants.filter(appt => appt.applicant_type != 2 && appt.applicant_type != 3);\n this.productAbbr = this.pdDetails.product_abbr;\n this.subProductName = this.pdDetails.subproduct_name;\n this.users = this.aws.getlocale();\n this.pdid=this.pdDetails.pd_id;\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.getDropdown();\n\n this.loanDetailsForm = this.fb.group({\n loan_amount: [''],\n loan_tenure:[''],\n sub_product:[''],\n end_use: ['', Validators.compose([Validators.required])],\n end_use_other: [''],\n is_transfer: ['', Validators.compose([Validators.required])],\n is_there_total_fund:[''],\n fund_amt:[''],\n //is_topup: ['', Validators.compose([Validators.required])],\n // is_topup: [''],\n balance_transfer_amount: [''],\n topup_amount: [''],\n end_use_topup:[''],\n other_end_use_topup:[''],\n lender: [''],\n filterCtrl:[''],\n other_bt_lender : [''],\n own_contribution: ['', Validators.compose([Validators.required])],\n source: [''],\n //personal_loan_source:[''],\n other_source:[''],\n //lender_name_type: [''],\n emi_level: ['', Validators.compose([Validators.required])],\n property_type: ['', Validators.compose([Validators.required])],\n property_type_others:[''],\n owner_name: ['', Validators.compose([Validators.required])],\n construction_status: ['', Validators.compose([Validators.required])],\n //percentage_of_construction : [''],\n emv_per_customer: ['', Validators.compose([Validators.required])],\n //value_per_agreement: ['', Validators.compose([Validators.required])],\n loandetails_remarks: ['', Validators.compose([Validators.required])],\n });\n console.log(this.pdDetails)\n //Setting Initial value from PD Master\n if(this.pdDetails.loan_amount!=null){\n this.loanDetailsForm.controls['loan_amount'].setValue(this.pdDetails.loan_amount)\n this.loanAmtInWords=this.constant.convertNumberToWords(this.pdDetails.loan_amount);\n }\n if(this.pdDetails.fk_subproduct_id != null && this.pdDetails.fk_subproduct_id != ''){\n this.loanDetailsForm.controls['sub_product'].setValue(this.pdDetails.fk_subproduct_id)\n this.onChangeSubProduct(this.pdDetails.fk_subproduct_id);\n }\n \n if(this.pdDetails.product_abbr !=\"BL\" || this.pdDetails.product_abbr !=\"PL\" || this.pdDetails.product_abbr !=\"LL\")\n {\n this.mortagetypeAccess = true;\n }else\n {\n this.mortagetypeAccess = false;\n }\n \n \n if(this.productAbbr == 'PL' || this.productAbbr == 'BL' || this.productAbbr == 'LAP'){\n this.isContribution = true;\n }\n this.loanDetailsForm.controls['filterCtrl'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.filterBank();\n })\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n }\n ionViewDidLoad() {\n console .log('ionViewDidLoad PdQuestionLoansPage');\n \n this.getLoanDetails();\n this.getPDImages();\n }\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n \n ionViewCanLeave(){\n console.log(\"dirty\",this.loanDetailsForm.dirty);\n if(this.loanDetailsForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n // this.localInsert(true)\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n \n }\n protected filterBank(){\n if(!this.dbmasters){\n return\n }\n let search=this.loanDetailsForm.controls['filterCtrl'].value \n if(!search){\n this.dbmasters=this.m_btLenderList\n // this.dbmasters=this.dbmasters.sort((a,b)=>{\n // if(a.lender_name>b.lender_name){\n // return 1;\n // }\n // if(a.lender_name{\n // if(a.lender_name>b.lender_name){\n // return 1;\n // }\n // if(a.lender_name master.lender_name.toLowerCase().indexOf(search) > -1)\n //this.dbmasters.filter(master => master.lender_name==search)\n )\n // console.log(\"mbtlender\",this.m_btLenderList)\n // console.log(\"Filtered banks\",this.filteredBanks)\n }\n\n\n \n\n\n getDropdown() {\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(\n data => {\n this.m_btLenderList = data['records'].filter(data => data.isactive == 1);\n this.dbmasters=this.m_btLenderList\n this.dbmasters=this.dbmasters.sort((a,b)=>{\n if(a.lender_name>b.lender_name){\n return 1;\n }\n if(a.lender_name{\n \n this.m_endUseForLoan=data['records'].filter(data=>data.isactive==1);\n \n });\n\n this.qustCat.getcommondrop('STATUSOFCONSTRUCTION').subscribe(\n data => {\n this.m_statusofCunstruction = data['records'].filter(data => data.isactive == 1);\n });\n\n this.qustCat.getcommondrop('MORTAGEPROPERTIES').subscribe(\n data => {\n if(data['dataStatus']==true){\n console.log('data[records]',data['records']);\n let that = this;\n this.m_mortageTypeProperty = data['records'].filter(\n function (data) {\n if (that.pdDetails.product_abbr != \"LAP\") {\n if (data.group_name == that.pdDetails.product_abbr && data.isactive == 1) {\n return data;\n }\n }\n else if (that.pdDetails.product_abbr == \"LAP\") {\n if (data.group_name == that.productAbbr && data.sub_group_name == that.subProductName && data.isactive == 1) {\n return data;\n }\n else if (data.group_name == that.pdDetails.product_abbr && data.sub_group_name == null && data.isactive == 1) {\n return data;\n }\n }\n });\n // this.mortage_type(this.propertyType);\n }\n console.log('this.m_mortageTypeProperty',this.m_mortageTypeProperty);\n });\n this.qustCat.getcommondrop('SOURCEOFBALANCETRANSFER').subscribe(\n data => {\n this.m_sourceofamount = data['records'].filter(data => data.isactive == 1);\n });\n this.qustCat.getcommondrop('SUBPRODUCTS').subscribe(\n subdata => {\n if(subdata['dataStatus']==true){\n let that = this;\n this.m_endUseofLoad = subdata['records'].filter(\n function(data)\n {\n if(that.pdDetails.fk_product_id == data.fk_product_id && data.isactive==1)\n {\n return data;\n }\n });\n this.endUserChange(this.enduse)\n }\n });\n \n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true && val.is_company_applicant===true)\n \n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n }\n }\n })\n \n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n if(this.productAbbr != 'LAP'){\n this.mergeCompanyApplicant.push({groupName:'OTHERS',groupValues:[{id:0,name:'Not Yet Finalised',group_id:2}]})\n }\n }\n this.qustCat.getcommondrop('ENDUSEOFTOPUP').subscribe(data=>{\n this.m_endUseOFTopUpList=data['records'].filter(val=>val.is_active == 1)\n }) \n \n }\n\n selectedBalancesTransferChanges(event: any){\n // if(event.value == 'no') { \n // this.loanDetailsForm.controls['is_topup'].clearValidators();\n //this.loanDetailsForm.controls['is_topup'].updateValueAndValidity();\n // this.loanDetailsForm.controls['is_topup'].setValue('');\n //}\n //else if(event.value == 'yes'){\n // this.loanDetailsForm.controls['is_topup'].setValidators([Validators.required]);\n //this.loanDetailsForm.controls['is_topup'].updateValueAndValidity();\n // }\n if (event == 'no') {\n this.loanDetailsForm.controls['source'].setValidators([Validators.required]);\n this.loanDetailsForm.controls['source'].updateValueAndValidity();\n\n this.loanDetailsForm.controls['own_contribution'].setValidators([Validators.required]);\n this.loanDetailsForm.controls['own_contribution'].updateValueAndValidity();\n \n this.loanDetailsForm.controls['other_bt_lender'].setValue('');\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue(''); \n this.loanDetailsForm.controls['lender'].setValue('');\n this.loanDetailsForm.controls['topup_amount'].setValue('');\n this.loanDetailsForm.controls['end_use_topup'].setValue('');\n this.loanDetailsForm.controls['other_end_use_topup'].setValue('');\n this.topUpAmtInWords=''\n\n }\n else if (event == 'yes') {\n this.loanDetailsForm.controls['source'].setValue('');\n this.loanDetailsForm.controls['source'].clearValidators();\n this.loanDetailsForm.controls['source'].updateValueAndValidity();\n \n this.loanDetailsForm.controls['own_contribution'].setValue('');\n this.loanDetailsForm.controls['own_contribution'].clearValidators();\n this.loanDetailsForm.controls['own_contribution'].updateValueAndValidity();\n \n this.isOtherSource = false;\n this.loanDetailsForm.controls['other_source'].setValue('');\n \n }\n\n}\n \n mortage_type(mortage_value)\n {\n console.log('mortage_value',mortage_value);\n console.log('this.m_mortageTypeProperty',this.m_mortageTypeProperty);\n let mortagetypes = this.m_mortageTypeProperty.filter(mor=>mor.mortage_property_id==mortage_value)[0];\n let property_name = mortagetypes.property_name.replace(/\\s/g, \"\").toLowerCase();\n if(property_name=='others(pleasespecify)' || property_name=='others')\n {\n this.mortageAccess = true;\n }else\n {\n this.mortageAccess = false; \n }\n \n \n }\n compareObjects(o1: any, o2: any){\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n \n }\n\n\n loanCalc()\n {\n let BtAmount = this.loanDetailsForm.value.balance_transfer_amount;\n let loanAmount = this.loanDetailsForm.value.loan_amount;\n let topupAmt ;\n if(BtAmount !=null && BtAmount !='' && loanAmount !=null && loanAmount!='')\n {if (loanAmount >= BtAmount) {\n topupAmt = loanAmount - BtAmount;\n this.loanDetailsForm.controls['topup_amount'].setValue(topupAmt);\n \n this.topUpAmtInWords = this.constant.convertNumberToWords(topupAmt);\n } else {\n this.toast.pdTriggerappmessage('warning !! Balances Transfer Amount is greater than Loan Amount Please check.!');\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue('');\n this.balTxrfAmtInWords = '';\n this.loanDetailsForm.controls['topup_amount'].setValue('');\n this.topUpAmtInWords = '';\n } }\n //this.loanDetailsForm.controls['topup_amount'].setValue(topupAmt);\n }\n\n onChangeSubProduct(subproduct) {\n this.qustCat.getEndUseForLoan(this.pdid,subproduct).subscribe(\n data => {\n this.m_endUseForLoan = data['records'].filter(data => data.isactive == 1);\n });\n }\n\n endUserChange(event) {\n //this.endUserList = [];\n event.forEach(option => {\n let othresData = this.m_endUseForLoan.filter(sub=>sub.enduse_of_loan_id==option)[0];\n othresData = othresData.enduse_of_loan.substr(0,6).toLowerCase();\n this.endUserList.push({ end_use: option });\n if (othresData == 'others') {\n \n this.isOtherPurpose = true;\n return ;\n }else\n {\n this.isOtherPurpose = false;\n \n }\n });\n }\n ownerNameChange(event) {\n this.ownerNames = [];\n event.value.forEach(option => {\n this.ownerNames.push({ owner_name: option });\n });\n }\n sourceChange(evt) {\n\n // this.isOtherSource = (evt.some(e => e == 4) == true) ? true : false ;\n // this.isPLSource = (evt.some(e => e == 3) == true) ? true : false ;\n\n this.isOtherSource = evt.some(e => e == 1) // this return true or false Only;\n this.isPLSource = evt.some(e => e == 3) // this return true or false Only;\n\n this.sourceList = [];\n\n evt.forEach(option => {\n this.sourceList.push({source: option});\n });\n}\n inWords(e,flag:number){\n switch(flag){\n case 1 :\n this.loanAmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 2 : \n this.balTxrfAmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 3 :\n this.valAsPerAgmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 4 :\n this.ownContributionInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 5 :\n this.topUpAmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 6:\n this.emiAmtInWords=this.constant.convertNumberToWords(e.target.value);\n break;\n case 7:\n this.emvAmtInWords=this.constant.convertNumberToWords(e.target.value);\n case 8:\n this.fundAmtInWords=this.constant.convertNumberToWords(e.target.value);\n default:\n break;\n }\n}\n submitLoanDetails() {\n // if(this.loanDetailsForm.valid){\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.loan_amount = this.loanDetailsForm.controls['loan_amount'].value;\n records.loan_tenure=this.loanDetailsForm.controls['loan_tenure'].value;\n records.sub_product=this.loanDetailsForm.controls['sub_product'].value;\n records.is_there_total_fund = this.loanDetailsForm.controls['is_there_total_fund'].value;\n records.fund_amt = this.loanDetailsForm.controls['fund_amt'].value;\n // get end user final group data\n let dataEnd_user_data = [];\n this.loanDetailsForm.controls['end_use'].value.forEach(element => {\n dataEnd_user_data.push({end_use: element})\n });\n records.end_use_group = dataEnd_user_data;\n\n if (this.isOtherPurpose) {\n records.end_use_other = this.loanDetailsForm.controls['end_use_other'].value;\n }\n records.is_transfer = this.loanDetailsForm.controls['is_transfer'].value;\n // records.is_topup = this.loanDetailsForm.controls['is_topup'].value;\n if (this.loanDetailsForm.controls['is_transfer'].value == 'yes') {\n records.balance_transfer_amount = this.loanDetailsForm.controls['balance_transfer_amount'].value;\n }\n else if(this.loanDetailsForm.controls['is_transfer'].value == 'no'){\n records.own_contribution = this.loanDetailsForm.controls['own_contribution'].value;\n \n let dataSource_list=[];\n if(this.loanDetailsForm.controls['source'].value != '')\n {\n \n this.loanDetailsForm.controls['source'].value.forEach(element => {\n dataSource_list.push({sources : element})\n });\n }\n records.source_group=dataSource_list;\n \n }\n //if (this.loanDetailsForm.controls['is_topup'].value == 'yes') {\n records.topup_amount = this.loanDetailsForm.controls['topup_amount'].value;\n //}\n if(records.topup_amount > 0){\n records.end_use_topup = this.loanDetailsForm.controls['end_use_topup'].value;\n if(records.end_use_topup == 1){\n records.other_end_use_topup = this.loanDetailsForm.controls['other_end_use_topup'].value;\n }\n }\n \n if (this.loanDetailsForm.controls['is_transfer'].value == 'yes') {\n records.lender = this.loanDetailsForm.controls['lender'].value;\n }\n if(this.loanDetailsForm.controls['lender'].value == 1){\n records.other_bt_lender = this.loanDetailsForm.controls['other_bt_lender'].value;\n } \n \n \n\n \n /* records.source = this.loanDetailsForm.controls['source'].value;\n if (this.loanDetailsForm.controls['source'].value == 'other') {\n records.lender_name_type = this.loanDetailsForm.controls['lender_name_type'].value;\n }*/\n if(this.isOtherSource){\n records.other_source=this.loanDetailsForm.controls['other_source'].value;\n }\n else{\n records.other_source = ''; \n }\n \n records.emi_level = this.loanDetailsForm.controls['emi_level'].value;\n if(this.mortageCardAccess == true){\n records.property_type = this.loanDetailsForm.controls['property_type'].value;\n if(this.loanDetailsForm.value.property_type_others !='' && this.loanDetailsForm.value.property_type_others !=null){\n records.property_type_others = this.loanDetailsForm.controls['property_type_others'].value;\n };\n // records.owner_name_group = this.ownerNames;\n if(this.loanDetailsForm.controls['owner_name'].value != ''){\n let dataOwner_name = [];\n this.loanDetailsForm.controls['owner_name'].value.forEach(element => {\n dataOwner_name.push({owner_name: element})\n });\n records.owner_name_group = dataOwner_name;\n }\n else{\n records.owner_name_group='';\n }\n \n records.construction_status = this.loanDetailsForm.controls['construction_status'].value;\n // records.percentage_of_construction = this.loanDetailsForm.controls['percentage_of_construction'].value;\n \n }else{\n records.property_type = null;\n records.property_type_others = null;\n records.owner_name_group = null;\n records.construction_status = null;\n records.emv_per_customer = null;\n }\n records.emv_per_customer = this.loanDetailsForm.controls['emv_per_customer'].value;\n //records.value_per_agreement = this.loanDetailsForm.controls['value_per_agreement'].value;\n records.loandetails_remarks = this.loanDetailsForm.controls['loandetails_remarks'].value;\n this.qustCat.saveForm(records).subscribe(data => {\n if(data['dataStatus']== true){\n //TO CHANGE THE FORM STATE \n // this.loanDetailsForm.markAsUntouched();\n this.loanDetailsForm.reset(this.loanDetailsForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage('Error');\n }\n // this.notifier.notify('success', 'Saved Successfully.');\n })\n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter The All Field');\n // }\n }\n\n getLoanDetails() {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId.form_id };\n\n this.qustCat.retiverForm(records).subscribe(value => {\n if (value['dataStatus'] == true) {\n let loanDetails = value['records'];\n let result = Object.keys(loanDetails.end_use_group).map(function (key) {\n return loanDetails.end_use_group[key];\n });\n \n\n //this.enduse\n result.forEach(val => {\n this.enduse.push(val.end_use);\n //this.endUserList.push({'end_use':val.end_use});\n });\n let ownername: any = [];\n if(loanDetails.owner_name_group != null){\n let owner = Object.keys(loanDetails.owner_name_group).map(function (key) {\n return loanDetails.owner_name_group[key];\n });\n owner.forEach(val => {\n ownername.push(val.owner_name);\n this.ownerNames.push({'end_use':val.end_use});\n });\n }\n this.loanDetailsForm.controls['loan_amount'].setValue(loanDetails.loan_amount);\n this.loanDetailsForm.controls['loan_tenure'].setValue(loanDetails.loan_tenure);\n if(loanDetails.loan_amount){ this.loanAmtInWords = this.constant.convertNumberToWords(loanDetails.loan_amount); }\n this.loanDetailsForm.controls['sub_product'].setValue(loanDetails.sub_product)\n this.loanDetailsForm.controls['end_use'].setValue(this.enduse);\n this.loanDetailsForm.controls['is_there_total_fund'].setValue(loanDetails.is_there_total_fund);\n this.loanDetailsForm.controls['fund_amt'].setValue(loanDetails.fund_amt);\n this.endUserChange(this.enduse);\n\n if (loanDetails.end_use_other!='') {\n //this.endUserChange(this.enduse);\n // this.isOtherPurpose=true;\n this.loanDetailsForm.controls['end_use_other'].setValue(loanDetails.end_use_other);\n }\n \n this.loanDetailsForm.controls['is_transfer'].setValue(loanDetails.is_transfer);\n if (loanDetails.balance_transfer_amount) {\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue(loanDetails.balance_transfer_amount);\n this.balTxrfAmtInWords = this.constant.convertNumberToWords(loanDetails.balance_transfer_amount); \n }\n if (loanDetails.topup_amount) {\n this.loanDetailsForm.controls['topup_amount'].setValue(loanDetails.topup_amount);\n this.topUpAmtInWords = this.constant.convertNumberToWords(loanDetails.topup_amount); \n if(loanDetails.topup_amount > 0){\n this.loanDetailsForm.controls['end_use_topup'].setValue(loanDetails.end_use_topup);\n if (loanDetails.end_use_topup == 1) {\n this.loanDetailsForm.controls['other_end_use_topup'].setValue(loanDetails.other_end_use_topup);\n }\n } \n }\n // this.loanDetailsForm.controls['is_topup'].setValue(loanDetails.is_topup);\n if (loanDetails.balance_transfer_amount) {\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue(loanDetails.balance_transfer_amount);\n }\n if (loanDetails.topup_amount) {\n this.loanDetailsForm.controls['topup_amount'].setValue(loanDetails.topup_amount);\n }\n if (loanDetails.lender) {\n this.loanDetailsForm.controls['lender'].setValue(loanDetails.lender);\n }\n // this.loanDetailsForm.controls['own_contribution'].setValue(loanDetails.own_contribution);\n // if(loanDetails.own_contribution)\n // {\n // this.ownContributionInWords = this.constant.convertNumberToWords(loanDetails.own_contribution);\n // }\n //this.loanDetailsForm.controls['source'].setValue(loanDetails.source);\n if(loanDetails.fund_amt){this.fundAmtInWords = this.constant.convertNumberToWords(loanDetails.fund_amt); }\n if ((this.isContribution == true) && (loanDetails.is_transfer != 'yes')) {\n this.loanDetailsForm.controls['own_contribution'].setValue('');\n this.loanDetailsForm.controls['other_source'].setValue('');\n this.loanDetailsForm.controls['source'].setValue('');\n }\n else{\n if(this.isContribution == false && loanDetails.is_transfer!='yes')\n {\n let source=Object.keys(loanDetails.source_group).map(function(key){\n return loanDetails.source_group[key];\n });\n let dbsourcelist:any=[];\n source.forEach(val=>{\n dbsourcelist.push(val.sources);\n });\n this.loanDetailsForm.controls['own_contribution'].setValue(loanDetails.own_contribution)\n if (loanDetails.own_contribution) { this.ownContributionInWords = this.constant.convertNumberToWords(loanDetails.own_contribution); }\n this.loanDetailsForm.controls['source'].setValue(dbsourcelist);\n this.sourceChange(dbsourcelist);\n if(loanDetails.other_source) {\n // this.isOtherSource = true;\n this.loanDetailsForm.controls['other_source'].setValue(loanDetails.other_source);\n }\n \n \n }\n }\n\n/* if (loanDetails.lender_name_type) {\n this.loanDetailsForm.controls['lender_name_type'].setValue(loanDetails.lender_name_type);\n }*/\n \n if(loanDetails.emi_level){\n this.loanDetailsForm.controls['emi_level'].setValue(loanDetails.emi_level);\n this.emiAmtInWords=this.constant.convertNumberToWords(loanDetails.emi_level);\n }\n this.loanDetailsForm.controls['other_bt_lender'].setValue(loanDetails.other_bt_lender); \n this.loanDetailsForm.controls['property_type'].setValue(loanDetails.property_type);\n this.propertyType =loanDetails.property_type;\n if(loanDetails.property_type !=null && loanDetails.property_type !=''){\n this.mortage_type(this.propertyType);\n if(this.mortageCardAccess == true){\n this.loanDetailsForm.controls['property_type_others'].setValue(loanDetails.property_type_others); \n // this.mortage_type(loanDetails.property_type_others);\n \n }\n }\n this.loanDetailsForm.controls['owner_name'].setValue(ownername);\n this.loanDetailsForm.controls['construction_status'].setValue(loanDetails.construction_status);\n this.loanDetailsForm.controls['emv_per_customer'].setValue(loanDetails.emv_per_customer);\n if(loanDetails.emv_per_customer)\n {\n this.emvAmtInWords=this.constant.convertNumberToWords(loanDetails.emv_per_customer);\n }\n \n // this.loanDetailsForm.controls['value_per_agreement'].setValue(loanDetails.value_per_agreement);\n this.loanDetailsForm.controls['loandetails_remarks'].setValue(loanDetails.loandetails_remarks);\n } else {\n if(this.lender_short_name == 'CLIX'){\n \n this.loanDetailsForm.controls['is_transfer'].setValue(\"no\");\n this.selectedBalancesTransferChanges(\"no\")\n }\n }\n })\n if(this.productAbbr == 'BL' || this.productAbbr == 'PL' || this.productAbbr == 'LL' || this.productAbbr == 'LAEP'){\n this.mortageCardAccess = false;\n this.loanDetailsForm.controls['owner_name'].setValue('');\n this.loanDetailsForm.controls['owner_name'].clearValidators();\n this.loanDetailsForm.controls['owner_name'].updateValueAndValidity();\n \n }else{\n this.mortageCardAccess = true;\n this.loanDetailsForm.controls['owner_name'].setValidators([Validators.required]);\n this.loanDetailsForm.controls['owner_name'].updateValueAndValidity();\n \n }\n \n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n localInsert(option){\n let datas:any=this.loanDetailsForm.value\n datas.pd_id=this.pdDetails.pd_id\n datas.form_id=this.FormId.form_id;\n datas.active=option;\n // let form_id=this.FormId.form_id\n // let recors={'records':datas}\n this.storagedb.insertData(datas).then(res=>{\n let alert=this.toast.setAlert('data',JSON.stringify(res))\n alert.present();\n console.log(res);\n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-loans/pd-question-loans.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, FormArray } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { controlNameBinding } from '@angular/forms/src/directives/reactive_directives/form_control_name';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionBankingPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-banking',\n templateUrl: 'pd-question-banking.html',\n // changeDetection:ChangeDetectionStrategy.OnPush\n})\nexport class PdQuestionBankingPage {\n \n m_btLenderList: any;\n applicants: any ;\n salaryField: boolean;\n FormId: any;\n accountType: any;\n users: any;\n bankDetails:FormGroup;\n pdDetails: any;\n pdid:any;\n bankitems:FormArray;\n\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n limitCaseFlag: any=[];\n amtInwords: any=[];\n\n protected _onDestroy = new Subject();\n m_btLenderListValue: any=[];\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public cons: ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider) {\n //this.applicants.pop();\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.FormId = this.navParams.get('FormId');\n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(val=>val.applicant_type==0 || val.applicant_type==1)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'}); \n \n \n // alert();\n this.users = this.aws.getlocale();\n this.bankDetails = this.fb.group(\n {\n bankitems:this.fb.array([]),\n banking_form_remark:[null],\n });\n \n \n \n this.salaryField = this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? false : true;\n \n \n this.getdropdown();\n this.retiveBankDetails();\n // this.bankDetails.controls['bankitems'].valueChanges\n // .pipe(takeUntil(this._onDestroy))\n // .subscribe(()=>{\n // this.filterBank();\n // })\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBankingPage');\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.bankDetails.dirty);\n if(this.bankDetails.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Form is Modified\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n}\n\n checkImage(){\n let value\n if(this.imageDisplay.length>0){\n // return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Captured Images are not Saved\",\"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n // reject();\n value=false;\n }\n else{\n // resolve();\n value=true;\n }\n })\n // })\n }\n return value\n }\n searchFun(control){\n control.controls['filterCtrl'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterBank(control);\n })\n}\n\n filterBank(event){\n if(!this.m_btLenderListValue){\n return\n }\n let search=event.controls['filterCtrl'].value\n if(!search){\n this.m_btLenderListValue=this.m_btLenderList.slice()\n return\n }\n else{\n search=search.toLowerCase()\n this.m_btLenderListValue=this.m_btLenderList.filter(val=>val.lender_name.toLowerCase().indexOf(search)> -1)\n }\n }\n getdropdown()\n {\n this.qustCat.getcommondrop('ACCOUNTTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.accountType=res['records'];\n }\n });\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.m_btLenderList = data['records'].filter(data => data.isactive == 1 && data.lender_type == 1);\n this.m_btLenderListValue=this.m_btLenderList.slice();\n }\n });\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n \n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true && val.is_company_applicant===true)\n \n }\n // let modifyCompanyList : any=[];\n // if(this.existCompanyList.length>0){\n // modifyCompanyList = this.existCompanyList.map(element => {\n // return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n // });\n // this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n //}\n })\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n }\n selectedAccTypeChanges(event: any,i){\n \n if(event == 2 || event == 1) {\n this.limitCaseFlag[i] = false;\n \n // const control = this.bankingForm.controls['itemRows'];\n \n // control.controls[0].get('limit').clearValidators();\n // control.controls[0].get('limit').updateValueAndValidity();\n \n }\n else{\n this.limitCaseFlag[i] = true;\n }\n\n}\n\n/** Amount InWords */\ninWords(e,i,flag){\n switch(flag){\n case 1 : \n this.amtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n }\n}\n\n /** To Convert Month into Year */\n ConvertMonthintoYear(itemrow,e){\n \n \n let year = itemrow.controls.vintage_year.value;\n \n let converted_month : number = e%12;\n let converted_year : number = e/12;\n\n itemrow.controls.vintage_year.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.vintage_month.setValue(Math.floor(converted_month));\n \n}\n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n checkOthers(values){\n if(values!=null) {\n return values.id==0 ? true : false;\n }\n else {\n return false;\n }\n \n }\n createBankItem(name) {\n \n return this.fb.group({\n applicant_name: [''],\n bank_name: [''],\n filterCtrl:[''],\n account_type: [''],\n salary : this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? [''] : [''] ,\n limit: [''],\n other_bank:[''],\n other_applicant:[''],\n //is_main: [''],\n vintage_year: [''],\n vintage_month: [''],\n \n });\n\n }\n \n addBankDetails() {\n // if(this.pd.valid){\n \n // if(this.items.length !=0)\n // {\n // this.neighbourAccess = true;\n // }\n \n \n this.bankitems = this.bankDetails.get('bankitems') as FormArray;\n \n this.bankitems.push(this.createBankItem(''));\n \n \n \n }\n\n addmoreBankDetils()\n {\n \n this.bankitems = this.bankDetails.get('bankitems') as FormArray;\n \n this.bankitems.push(this.createBankItem('')); \n }\n\n removebank(i){\n\n if(this.bankitems.length==1){\n this.bankitems.reset();\n }\n else\n this.bankitems.removeAt(i);\n }\n\n savepdBank(answerData)\n {\n\n answerData.bankitems.forEach(element=>{\n //console.log(\"items\",element.filterCtrl);\n // if(element.filterCtrl){\n // console.log(\"enter\",element.filterCtrl)\n delete element.filterCtrl\n // }\n });\n // console.log(\"logs\",answerData)\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.banking_details = answerData.bankitems;\n records.banking_form_remark = answerData.banking_form_remark;\n \n this.qustCat.saveForm(records).subscribe(data => {\n \n if(data['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n // this.bankDetails.dirty=false;\n // this.bankDetails.markAsDirty();\n // console.log(\"Dir\",this.bankDetails.markAsDirty())\n // console.log(\"pristine\",this.bankDetails.markAsPristine());\n // console.log(\"Touched\",this.bankDetails.markAsTouched());\n\n //TO CHANGE THE FORM STATE \n // this.bankDetails.markAsUntouched();\n // console.log(\"touched\",this.bankDetails.touched)\n // console.log(\"untouched\",this.bankDetails.untouched)\n // console.log(\"pristine\",this.bankDetails.pristine)\n this.bankDetails.reset(this.bankDetails.value)\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n \n }\n\n retiveBankDetails()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n var result = Object.keys(res['records'].banking_details).map(function(key) {\n return res['records'].banking_details[key];\n });\n this.bankDetails.controls.banking_form_remark.setValue(res['records'].banking_form_remark);\n this.bankitems = this.bankDetails.get('bankitems') as FormArray;\n \n if(result.length ==0){\n \n this.bankitems.push(this.createBankItem(''))\n }else\n {\n \n \n \n \n result.forEach((datas,index)=>\n {\n datas.filterCtrl=''\n this.selectedAccTypeChanges(+datas.account_type,index)\n if(datas.limit != ''){\n this.amtInwords[index] = this.cons.convertNumberToWords(+datas.limit); \n } \n // this.selectedBorrower(datas.applicant_name,index);\n this.bankitems.push(this.createBankItem(''));\n })\n this.bankDetails.controls['bankitems'].setValue(result);\n }\n \n \n }else\n {\n \n this.addBankDetails();\n }\n });\n \n }\n\n \n/*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_applicant').value\n value.get('other_applicant').setValue(this.cons.sentenceCase(name));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-banking/pd-question-banking.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { controlNameBinding } from '@angular/forms/src/directives/reactive_directives/form_control_name';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n\n/**\n * Generated class for the PdQuestionFamilyPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-family',\n templateUrl: 'pd-question-family.html',\n})\nexport class PdQuestionFamilyPage {\n\n\n earningStatus = [{\n type: 'Earning',\n id: 1\n}, {\n type: 'Non Earning',\n id: 2\n}]\nearning_gross_income_per_month:any;\n\n nofamily:number;\ndata:any;\n familyAddStatus: boolean;\n ownerShip: any;\n cusSeg: any;\n FormId: any;\n users: any;\n pdDetails: any;\n occupationData: any;\n membersitem: FormArray;\n items: FormArray;\n relationData: any;\n familyForm: FormGroup;\n total_number_of_family_members;\n filteredStates: any ;\n public selected_person;\n stateData:any;\n cityData: any =[];\n pincodeData:any=[];\n FamilyMemberAsLabel: any=[];\n selectPerson: any=[];\n apiFamilyMembers: any=[];\n //isReadOnly: any=[];\n RentAmount: any=[];\n IncomePerMonth: any=[];\n // cons: any;\n cityDataValue:any=[]\n stateDataValue:any=[]\n protected _onDestroy = new Subject();\n pincodeDataValue: any=[];\n relationDataValue: any=[];\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n titleList: any=[];\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider,public cons:ConstantsProvider,\n private cameraProvider:CameraProvider,private loading:LoadingProvider) {\n this.FormId = this.navParams.get('FormId');\n this.pdDetails = this.navParams.get('pdDetails');\n this.selected_person=this.pdDetails.pdapplicants_details;\n this.selectPerson=this.pdDetails.applicat_details\n this.users = this.aws.getlocale();\n \n \n this.familyForm = this.fb.group({\n family_details: this.fb.array([\n //this.initFamilyDetails()\n \n ]),\n family_details_form_remark:[''],\n \n \n });\n this.getRelation();\n this.getoccupation();\n \n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n\n ionViewDidLoad() {\n console.log(\"ionViewDidLoad PdQuestionFamilyPage\")\n this.getFamilyData();\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.familyForm.dirty);\n if(this.familyForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n initFamilyDetails(records) : void\n {\n if (records === null) {\n let formData: FormGroup = this.fb.group({\n selected_person: ['', Validators.compose([Validators.required])],\n residence_place: [''],\n residence_city: [''],\n citySearch:[''],\n residence_state: [''],\n stateSearch:[''],\n pinSearch:[''],\n residence_pin: [''],\n residence_other_pincode:[''],\n residence_No_of_years: [''],\n residence_ownership: [''],\n ownershipOther: [''],\n rent: [''],\n total_number_of_family_members: ['', Validators.compose([Validators.min(1), Validators.max(20)])],\n family_members_details: this.fb.array([])\n });\n const control = this.familyForm.controls['family_details'];\n control.push(formData);\n \n }\n else{\n records.forEach((val,index)=>{\n if(val.rent != null){\n this.inWords(val.rent,index,2)\n }\n this.FamilyMemberAsLabel[index] = this.selectPerson.filter(item => item.pd_co_applicant_id == val.selected_person)[0].applicant_name;\n this.getCity(val.residence_state,index);\n let formData:FormGroup=this.fb.group({\n selected_person:[val.selected_person,Validators.compose([Validators.required])],\n residence_place:[val.residence_place],\n residence_city:[val.residence_city],\n citySearch:[''],\n residence_state:[val.residence_state],\n stateSearch:[''],\n pinSearch:[''],\n residence_pin:[val.residence_pin],\n residence_other_pincode:[val.residence_other_pincode],\n residence_No_of_years: [val.residence_No_of_years],\n residence_ownership:[val.residence_ownership],\n rent:[val.rent || null],\n ownershipOther:[val.ownershipOther || null],\n total_number_of_family_members:[val.total_number_of_family_members,Validators.compose([Validators.min(1), Validators.max(20)])],\n family_members_details:this.fb.array([])\n \n });\n \n const control = this.familyForm.controls['family_details'];\n control.push(formData);\n \n let inx=control.length-1;\n //this.getNumberOfFamilyMemberDetails(inx);\n this.initFamilyMembersDetails(inx, val.family_members_details);\n \n \n //this.initFamilyMembersDetails\n \n })\n }\n /*\n return this.fb.group({\n //family_details\n selected_person:[''],\n residence_place:[''],\n residence_city:[''],\n residence_state:[''],\n residence_pin:[''],\n residence_No_of_years: [''],\n residence_ownership:[],\n rent:[''],\n ownershipOther:[''],\n total_number_of_family_members:['',Validators.compose([Validators.min(1), Validators.max(20)])],\n \n //family_member_details\n \n \n \n family_members_details:this.fb.array([]),\n \n\n // person: [null],\n /* personOther: [''],\n members: [''],\n residence: [''],\n years: [null],\n family_details_form_remark:[''],\n \n });*/\n\n }\n initFamilyMembersDetails(inx,val) :void {\n const control = this.familyForm.controls['family_details']['controls'][inx].controls.family_members_details;\n val.forEach((vals,index)=>{\n\n \n if(vals.earning_gross_income_per_month != null){\n this.inWords(vals.earning_gross_income_per_month,index,1);\n }\n let datas = this.fb.group({\n family_member_salutation:[vals.family_member_salutation || null],\n family_member_name: [vals.family_member_name || null],\n family_member_relationship: [vals.family_member_relationship || null],\n relationSearch:[''],\n family_member_age: [vals.family_member_age || null],\n family_member_earning_status: [vals.family_member_earning_status || null],\n earning_segment: [vals.earning_segment || null],\n earning_if_others_segment:[vals.earning_if_others_segment || null],\n earning_gross_income_per_month: [vals.earning_gross_income_per_month || null],\n earning_name_of_the_employer_or_business: [vals.earning_name_of_the_employer_or_business || null],\n earning_number_of_years_in_employment_or_business: [vals.earning_number_of_years_in_employment_or_business || null],\n non_earning_occupation: [vals.non_earning_occupation || null],\n non_earning_if_others: [vals.non_earning_if_others || null],\n non_earning_if_schoolorcollege:[vals.non_earning_if_schoolorcollege || null],\n non_earning_if_retired_from: [vals.non_earning_if_retired_from || null],\n })\n \n control.push(datas);\n });\n }\n \n /*return this.fb.group({\n family_member_name:[''],\n family_member_relationship:[],\n family_member_age:[],\n family_member_earning_status:[''],\n //family_member_earnings\n earning_segment:[''],\n earning_gross_income_per_month:[''],\n earning_name_of_the_employer_or_business:[''],\n earning_number_of_years_in_employment_or_business:[''],\n \n non_earning_occupation:[''],\n non_earning_if_others:[''],\n non_earning_if_retired_from:[''],\n });*/\n \n\n\n add() :void { \n // const control=this.familyForm.controls['family_details'];\n //control.push(this.initFamilyDetails('chck'));\n this.initFamilyDetails(null);\n this.toast.pdTriggerappmessage(\"Family Details Added\");\n }\n remove_family_details(i:number):void{\n const control=this.familyForm.controls['family_details'];\n control.removeAt(i);\n }\n addMemberDet(data:any){\n const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n //this.initFamilyMembersDetails('','')\n control.push(this.generateFamilyMembersDetailsGet())\n }\n removeMemberDet(index:any,f_index:any){\n const control=this.familyForm.controls['family_details']['controls'][f_index].controls.family_members_details;\n if(control.length>1){\n control.removeAt(index); \n }\n else{\n control.reset()\n }\n // if(control.value !=null && index == 0)\n\n }\n getNumberOfFamilyMemberDetails(data)\n {\n \n var datavalue=data;\n let formData=this.familyForm.controls['family_details']['controls'][datavalue].controls;\n if(formData['total_number_of_family_members'].valid)\n {\n let totmem=formData['total_number_of_family_members'].value;\n const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n if(totmem>=control.length){\n let len=totmem-control.length;\n for( let i=0;i=totmem;i--)\n {\n control.removeAt(i);\n }\n \n // var nn=control.length-totmem; \n // control.controls = [];\n /*for (let i = 0; i < totmem; i++) {\n control.push(this.generateFamilyMembersDetailsGet());\n\n }*/\n // this.initFamilyDetails(this.resValue['records'].family_details);\n // this.toast.pdTriggerappmessage(\"Please choose the number greater than\"+control.length);\n }\n \n \n }\n else{\n const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n control.removeAt(control.length);\n control.controls=[];\n }\n /* const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n control.push(this.initFamilyMembersDetails());\n */ \n }\n generateFamilyMembersDetailsGet(): FormGroup {\n return this.fb.group({\n family_member_salutation:[''],\n family_member_name: ['' ],\n family_member_relationship: [''],\n relationSearch:[''],\n family_member_age: [''],\n family_member_earning_status: [''],\n earning_segment: [''],\n earning_if_others_segment:[''],\n earning_gross_income_per_month: [''],\n earning_name_of_the_employer_or_business: [''],\n earning_number_of_years_in_employment_or_business: [''],\n non_earning_occupation: [''],\n non_earning_if_others: [''],\n non_earning_if_schoolorcollege:[''],\n non_earning_if_retired_from: [''],\n })\n}\n \n getRelation() {\n let master_name = 'RELATIONSHIPS';\n this.qustCat.getcommondrop(master_name).subscribe(data => {\n \n if(data['dataStatus'] == true){\n this.relationData = data['records'].filter(rel=>rel.isactive ==1);\n this.relationDataValue=this.relationData.slice();\n }\n });\n\n this.qustCat.getcommondrop('PERSONSMET').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.filteredStates = res['records'].filter(per=>per.isactive==1);\n }\n });\n // this.qustCat.getcommondrop('CUSTOMERSEGMENT').subscribe(res=>\n // {\n // if(res['dataStatus']==true)\n // {\n // this.cusSeg = res['records'].filter(seg=>seg.isactive==1);\n // }\n // });\n this.qustCat.getcommondrop('EARNINGMEMBERSSTATUS').subscribe(res=>{\n if(res['dataStatus']==true){\n this.cusSeg = res['records'].filter(seg=>seg.isactive==1);\n }\n })\n this.qustCat.getcommondrop('RESIDENCEOWNERSHIP').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.ownerShip = res['records'].filter(own=>own.isactive==1);\n }\n });\n this.qustCat.getcommondrop('STATE').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.stateData=res['records'].filter(item=>item.isactive==1);\n this.stateDataValue=this.stateData.slice();\n }\n })\n this.qustCat.getcommondrop('TITLES').subscribe(res=>{\n if(res['dataStatus']==true){\n this.titleList=res['records'].filter(com=>com.isactive==1);\n }\n });\n \n}\ngetCity(e,i){\n // this.cityData = this.wholeCityData.filter(city=>city.fk_state_id == e); \n // this._pd.retriveForm(params).subscribe(data => {\n this.qustCat.getStateWiseCities(e).subscribe(data=>{\n if (data['dataStatus'] == true) {\n this.cityData[i] = data.records.cities; \n this.cityDataValue[i]=this.cityData[i].slice();\n this.pincodeData[i] = data.records.pincode;\n this.pincodeDataValue[i]=this.pincodeData[i].slice()\n }\n });\n}\ngetoccupation()\n{\n let master_name = 'OCCUPATIONMEMBERS';\n this.qustCat.getcommondrop(master_name).subscribe(data => {\n if(data['dataStatus']==true){\n this.occupationData = data['records'].filter(occ=>occ.isactive ==1);\n }\n });\n}\n /* createMembers(): FormGroup {\n return this.fb.group({\n earning_member_name : [null],\n earning_member_age : [null],\n relation: [null],\n segment: [null],\n income: [null],\n employer_name: [null],\n });\n}\ncount :number = 0;\naddearningMembers()\n{\n this.items = this.familyForm.get('earningMembers') as FormArray;\n this.items.push(this.createMembers());\n this.count++;\n this.checkfamilystatus(this.count,''); \n\n}\n\ndeleteEarningMembers(i)\n{\n\n if(this.items.length==1)\n {\n this.familyForm.controls['earningMembers'].reset();\n }else{\n this.items.removeAt(i);\n }\n this.count--;\n this.checkfamilystatus(this.count,''); \n}\ncreateNonMembers(): FormGroup {\n return this.fb.group({\n non_earning_member_name : [''],\n non_earning_member_age : [''],\n relationship: [null],\n occupation: [null],\n retired: [null],\n others_occupation:[null],\n });\n}\naddMembers()\n{\n this.membersitem =this.familyForm.get('nonEarningMembers') as FormArray;\n this.count++;\n this.checkfamilystatus(this.count,''); \n this.membersitem.push(this.createNonMembers());\n \n}\ndeleteMembers(i)\n{\n if(this.membersitem.length==1){\n this.familyForm.controls['nonEarningMembers'].reset();\n \n }else{\n this.membersitem.removeAt(i);\n }\n this.count--;\n this.checkfamilystatus(this.count,''); \n}\ncheckfamilystatus(count,familystatus)\n{\n if(familystatus !='' && familystatus !==undefined){\n\n }else{\n familystatus = this.familyForm.get('members').value;\n }\n if(familystatus !== null ){\n if(familystatus == count)\n {\n\n this.familyAddStatus = true;\n }else\n {\n this.familyAddStatus = false;\n }\n }\n}*/\n/* Old\nsavepdfamily(answerData)\n{\n let records: any = {};\n records.no_of_years = answerData.years;\n if (answerData.ownership == '4') {\n records.ownershipOther = answerData.ownershipOther;\n } \n records.residence = answerData.residence;\n if (answerData.ownership == '3') {\n records.what_rent = answerData.rent;\n }\n // if (answerData.person == '8') {\n // records.person_met = answerData.personOther.value;\n // } else {\n // records.person_met = answerData.person;\n // }\n records.ownership = answerData.ownership\n records.family_members = answerData.members;\n records.earning_members = answerData.earningMembers;\n records.non_earning_members = answerData.nonEarningMembers;\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.family_details_form_remark = answerData.family_details_form_remark;\n this.qustCat.saveForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n this.navCtrl.pop();\n }\n })\n}*/\nsetValidation(control){\n console.log(control)\n if(control.controls['family_member_earning_status'].value == 1){\n control.controls['non_earning_occupation'].clearValidators()\n control.controls['non_earning_occupation'].updateValueAndValidity()\n }\n if(control.controls['family_member_earning_status'].value == 2 ){\n control.controls['non_earning_occupation'].setValidators(Validators.compose([Validators.required]))\n control.controls['non_earning_occupation'].updateValueAndValidity()\n }\n}\n\nsavepdfamily(answerData)\n{\n if(!this.familyForm.valid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields\");\n return\n }\n \n let records:any={};\n \n records=this.familyForm.value;\n\n Object.keys(records).forEach((key)=>(records[key]==null)&& delete records[key]);\n \n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid=this.pdDetails.pd_id;\n records.formid=this.FormId.form_id;\n records.fk_createdby=this.users;\n records.family_details.forEach(parVal=>{\n console.log(\"par\",parVal)\n delete parVal.stateSearch\n delete parVal.citySearch\n delete parVal.pinSearch\n parVal.family_members_details.forEach(childVal=>{\n console.log(\"childval\",parVal)\n delete childVal.relationSearch\n })\n })\n this.qustCat.saveForm(records).subscribe(res=>{\n //TO CHANGE THE FORM STATE \n this.familyForm.reset(this.familyForm.value);\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n \n },err=>{\n this.toast.pdTriggerappmessage(\"Some Fields value is Missing Please Fill It\");\n })\n\n /*let records: any = {};\n records.no_of_years = answerData.residence_No_of_years;\n if (answerData.residence_ownership == '4') {\n records.ownershipOther = answerData.ownershipOther;\n } \n //records.residence = answerData.residence;\n if (answerData.residence_ownership == '3') {\n records.what_rent = answerData.rent;\n }\n // if (answerData.person == '8') {\n // records.person_met = answerData.personOther.value;\n // } else {\n // records.person_met = answerData.person;\n // }\n records.ownership = answerData.residence_ownership\n records.family_members = answerData.total_number_of_family_members;\n records.earning_members = answerData.earningMembers;\n records.non_earning_members = answerData.nonEarningMembers;\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.family_details_form_remark = answerData.family_details_form_remark;\n this.qustCat.saveForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n this.navCtrl.pop();\n }\n })*/\n}\nprevFamilyMembersCtrlLength: number = 0;\ncurrFamilyMembersCtrlLength: number = 0;\nselectedPerson(e,inx){\n \n this.FamilyMemberAsLabel[inx] = this.selectPerson.filter(item => item.pd_co_applicant_id == e)[0].applicant_name;\n \n const control = this.familyForm.controls['family_details']['controls'][inx].controls.family_members_details;\n \n this.currFamilyMembersCtrlLength = control.length;\n \n let i : number = 0 ;\n for(i ;i < this.prevFamilyMembersCtrlLength;i++){\n console.log(i,this.prevFamilyMembersCtrlLength);\n control.removeAt(i);\n }\n // while(index < this.prevFamilyMembersCtrlLength)\n // { \n // }\n this.prevFamilyMembersCtrlLength = this.currFamilyMembersCtrlLength;\n console.log('familyMembersControlLength',this. prevFamilyMembersCtrlLength,this.currFamilyMembersCtrlLength);\n\n if(this.apiFamilyMembers.length>0){\n\n let arraydata : any;\n let data = this.apiFamilyMembers.filter(item => item.relation_to == e);\n\n \n // data_gets_from:'GeneralForm'\n // data_gets_from:'BusinessForm'\n \n if(data.length > 0){\n \n \n this.prevFamilyMembersCtrlLength = data.length;\n console.log('familyMembersControlLength',this. prevFamilyMembersCtrlLength,this.currFamilyMembersCtrlLength);\n\n\n data.forEach((val,inx) => {\n \n // // family_member_earning_status\n // if(val.age){\n // this.isReadOnly[inx] = true;\n // }else{\n // this.isReadOnly[inx] = false;\n // }\n arraydata = {\n 'family_member_salutation':'',\n 'family_member_name' : val.name,\n 'family_member_relationship' : val.relationship,\n 'family_member_age' : val.age,\n 'family_member_earning_status': val.data_gets_from == 'BusinessForm' ? '1' :'',\n 'earning_segment': '',\n 'earning_gross_income_per_month': '',\n 'earning_name_of_the_employer_or_business':'',\n 'earning_number_of_years_in_employment_or_business': '',\n 'earning_if_others_segment':'',\n 'non_earning_occupation': '',\n 'non_earning_if_others': '',\n 'non_earning_if_retired_from': '',\n 'non_earning_if_schoolorcollege': ''\n }\n control.push(this.initgenerateFamilyMembersDetailsGet(arraydata));\n \n });\n }\n else{\n this.prevFamilyMembersCtrlLength = 1;\n console.log('familyMembersControlLength',this. prevFamilyMembersCtrlLength,this.currFamilyMembersCtrlLength);\n \n\n control.push(this.generateFamilyMembersDetailsGet()); \n }\n }\n else{\n \n control.push(this.generateFamilyMembersDetailsGet());\n } \n}\n\ngenerateFamilyMembersDetailsGetData(data){\n var result = Object.keys(data).map(function (key) {\n return data[key];\n});\nif (result.length > 0) {\n for (let val of result) {\n const control = this.familyForm.controls['family_members_details'];\n control.push(this.initgenerateFamilyMembersDetailsGet(val));\n }\n}\n}\ninitgenerateFamilyMembersDetailsGet(val):FormGroup{\n return this.fb.group({\n family_member_salutation:[val.family_member_salutation],\n family_member_name: [val.family_member_name],\n family_member_relationship: [val.family_member_relationship],\n relationSearch:[''],\n family_member_age: [val.family_member_age],\n family_member_earning_status: [val.family_member_earning_status],\n earning_segment: [val.earning_segment],\n earning_if_others_segment:[val.earning_if_others_segment],\n earning_gross_income_per_month: [val.earning_gross_income_per_month],\n earning_name_of_the_employer_or_business: [val.earning_name_of_the_employer_or_business],\n earning_number_of_years_in_employment_or_business: [val.earning_number_of_years_in_employment_or_business],\n non_earning_occupation: [val.non_earning_occupation],\n non_earning_if_others: [val.non_earning_if_others],\n non_earning_if_schoolorcollege:[val.non_earning_if_schoolorcollege],\n non_earning_if_retired_from: [val.non_earning_if_retired_from],\n})\n}\nresValue:any;\n\n getFamilyData()\n {\n this.qustCat.getFamilyDetails(this.pdDetails.pd_id).subscribe(res=>{\n // console.log(res);\n if(res['dataStatus']==true){\n // console.log('res.record.from_general_form',res.record.from_general_form,res['record']);\n let Temparr : any = [];\n\n if(res.record.from_general_form.length>0){\n let familyMembersGeneralForm=Object.keys(res.record.from_general_form).map(function(key){\n return res.record.from_general_form[key]\n });\n let datas=familyMembersGeneralForm.map(element=>{\n return {id:element.pd_co_applicant_id.toString(),\n name:element.applicant_name,\n relationship:element.relationship,\n relation_to:element.relation_to,\n age:element.age,\n data_gets_from:'GeneralForm'};\n \n });\n Temparr.push(datas);\n // console.log('Temparr',Temparr);\n }\n else{\n console.log(\"No data in General Form\")\n }\n if(res.record.from_business_form.length >0){\n let familyMembersBusinessForm=Object.keys(res.record.from_business_form).map(function(key){\n return res.record.from_business_form[key]\n });\n let datas=familyMembersBusinessForm.map(element=>{\n return {id:element.other_family_relationship_id,\n name:element.family_member_name,\n relationship:element.other_family_relationship_id,\n relation_to:element.relation_to_id,\n age:'',\n data_gets_from:'BusinessForm'};\n });\n Temparr.push(datas);\n }\n else{\n console.log(\"No data in Business Form\")\n }\n this.apiFamilyMembers = [].concat.apply([],Temparr);\n }\n })\n let records={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n\n this.qustCat.retiverForm(records).subscribe(res=>{\n console.log(\"Entering Retrieve\");\n \n if(res['status']==200){\n if(res['records'].family_details.length > 0){\n //FOR REMOVING CONTROL\n res['records'].family_details.forEach(parVal=>{\n parVal.stateSearch=''\n parVal.citySearch=''\n parVal.pinSearch=''\n parVal.family_members_details.forEach(childVal=>{\n delete childVal.relationSearch\n })\n })\n this.familyForm.controls.family_details_form_remark.setValue(res['records'].family_details_form_remark);\n this.resValue=res;\n this.initFamilyDetails(res['records'].family_details);\n \n }\n \n }\n else{\n console.log(\"No Data Found\");\n this.initFamilyDetails(null);\n \n }\n //this.generateFamilyMembersDetailsGetData(res['records'].family_members_details);\n \n },err=>{\n console.log(\"Error\",err)\n })\n\n \n \n \n /*let earning:any = [];\n let non_earning:any = [];\n let records = {'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n non_earning = Object.keys(res['records'].non_earning_members).map(function(key) {\n\n return res['records'].non_earning_members[key];\n });\n this.familyForm.controls['family_details_form_remark'].setValue(res['records'].family_details_form_remark);\n earning = Object.keys(res['records'].earning_members).map(function(key) {\n return res['records'].earning_members[key];\n });\n let familyDetails = res['records'];\n this.checkfamilystatus(non_earning.length + earning.length,familyDetails.family_members); \n // this.familyForm.controls['person'].setValue(familyDetails.person_met);\n this.familyForm.controls['personOther'].setValue(familyDetails.personOther);\n this.familyForm.controls['members'].setValue(familyDetails.family_members);\n this.familyForm.controls['residence'].setValue(familyDetails.residence);\n this.familyForm.controls['years'].setValue(familyDetails.no_of_years);\n this.familyForm.controls['ownership'].setValue(familyDetails.ownership);\n this.familyForm.controls['ownershipOther'].setValue(familyDetails.ownershipOther);\n this.familyForm.controls['rent'].setValue(familyDetails.what_rent);\n // this.familyForm.controls['earningMembers'].setValue(earning);\n // for(this.)\n this.items = this.familyForm.get('earningMembers') as FormArray;\n this.membersitem =this.familyForm.get('nonEarningMembers') as FormArray;\n if(earning.length==0)\n {\n this.addearningMembers();\n }else\n {\n earning.forEach(datas => {\n this.count++;\n this.items.push(this.createMembers());\n });\n this.familyForm.controls['earningMembers'].setValue(earning);\n \n }\n\n if(non_earning.length==0)\n {\n this.addMembers(); \n }else\n {\n non_earning.forEach(datas => {\n this.count++;\n this.membersitem.push(this.createNonMembers());\n \n });\n this.familyForm.controls['nonEarningMembers'].setValue(non_earning);\n // this.checkfamilystatus(this.count);\n }\n \n // for(let earningDetails of earning){\n // this.items = this.familyForm.get('earningMembers') as FormArray;\n // this.items.push(earning);\n // }\n\n }else\n {\n this.addearningMembers();\n this.addMembers();\n }\n }) */ \n }\n /** To Convert Amount into Words */\n inWords(e,i,flag:number){\n switch(flag){\n case 1 :\n this.IncomePerMonth[i] = this.cons.convertNumberToWords(e); \n break;\n case 2 :\n this.RentAmount[i] = this.cons.convertNumberToWords(e); \n break;\n }\n }\n initSetValue(records):void{\n for(let val of records){\n let formData:FormGroup=this.fb.group({\n selected_person:[val.selected_person,Validators.compose([Validators.required])],\n residence_place:[val.residence_place]\n })\n }\n }\n\n\nsearchFun(control:any,i:number,option){\n console.log(\"control\",control)\n if (option == 'city') {\n // this.cityData[i]=this.filterCity(this.stateList,control.value.state_name)\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'state') {\n console.log(\"state\")\n control.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchState(control.controls['stateSearch'].value)\n })\n }\n if (option == 'pin') {\n console.log(\"pin\")\n control.controls['pinSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchPin(control.controls['pinSearch'].value,i)\n })\n }\n }\n searchPin(val:any,index:number){\n if(!this.pincodeData[index]){\n return\n }\n let searchValue=val\n if(!searchValue){\n this.pincodeDataValue[index]=this.pincodeData[index].slice()\n return\n }else{\n searchValue=searchValue.toLowerCase()\n }\n this.pincodeDataValue[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1)\n }\n SearchCity(val: any, i: number) {\n // let cityData=\n console.log(this.cityData[i])\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n this.cityDataValue[i]=this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.cityDataValue[i]=\n this.cityData[i].filter(val=>val.city_name.toLowerCase().indexOf(searchValue)> -1)\n \n console.log(\"City Data value\",this.cityDataValue[i])\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n \n }\n searchState(val: any) {\n console.log(\"statedata\")\n if (!this.stateData) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n // this.filteredState.next(this.stateList.slice())\n this.stateDataValue=this.stateData.slice()\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.stateDataValue=this.stateData.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n // this.filteredState.next(\n // this.stateList.filter(res => res.state_name.toLowerCase().indexOf(searchVal) > -1)\n // )\n }\n searchRelation(val:any){\n // val=val.controls['relationSearch'].value\n console.log(\"val\",val);\n val.controls['relationSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.relationDataValue=this.cons.searchData(this.relationData,val.controls['relationSearch'].value,'')\n \n })\n \n }\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n \n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n \n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo location promise\",geoCoordinates)\n \n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n \n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('family_member_name').value\n value.get('family_member_name').setValue(this.cons.sentenceCase(name));\n }\n }\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-family/pd-question-family.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,AlertController, Content } from 'ionic-angular';\nimport { FormArray,FormGroup,FormBuilder,Validators} from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {Camera} from '@ionic-native/camera'\n// import {CacheService} from 'ionic-cache-observable'\n// import { Observable } from 'rxjs/Observable';\n\n/**\n * Generated class for the PdQuestionAssestsPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assests',\n templateUrl: 'pd-question-assests.html',\n})\nexport class PdQuestionAssestsPage {\n tab:any='0'\n public m_any_asset_loan_type = [{'value': \"yes\",'viewValue': \"Yes\"},\n {'value': \"no\",'viewValue': \"No\"},\n {'value': \"nan\",'viewValue': \"NA\"}]\n m_relation: any;\n applicants: any ;\n users: any;\n FormId: any;\n m_freqOfPurchase: { 'id': string; 'name': string; }[];\n m_investmentType: { 'id': string; 'name': string; }[];\n m_insuranceType: { 'id': string; 'name': string; }[];\n m_propertyType: { 'id': string; 'name': string; }[];\n m_assets_type: { 'id': string; 'name': string; }[];\n m_vehicle_type: any=[];\n m_uom_type: any=[];\n pdDetails: any;\n assetItem: any;\n items:FormArray;\n AssetsDetailsForm:FormGroup;\n details:FormArray;\n FormList:boolean = false;\n loadDetails:boolean = true;\n assestInfo:any;\n PremiumPaidInwords: any=[]; \n SumAssuredInwords: any=[];\n AmtInvestInwords: any=[];\n ApproxInwords:any =[];\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n isOtherOwner: any = [];\n pdid:any;\n currentYear: any = new Date().getFullYear();\n imageBucket: any=[];\n base64: string;\n imageDisplay: any=[];\n @ViewChild('focusName') inputFocus;\n @ViewChild('picContent') content: Content\n complete_status: boolean = false;\n // data:Observable ;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public constprovider:ConstantsProvider,public camera:Camera,public alert: AlertController) {\n \n this.assestInfo = \"busass\";\n this.FormId = this.navParams.get('FormId');\n \n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.users = this.aws.getlocale();\n this.applicants = this.pdDetails.applicat_details;\n this.applicants=this.applicants.filter(val=>val.applicant_type==0 || val.applicant_type==1)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n \n this.AssetsDetailsForm = this.fb.group({\n assets_details:this.fb.array([]),\n assets_form_remark:['']\n })\n \n this.getAssetDetails();\n this.getdropList();\n this.loadDetails = true;\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssestsPage');\n console.log(\"Form\",this.AssetsDetailsForm)\n this.getPDImages();\n }\n // ionViewWillLeave(){\n // console.log(this.AssetsDetailsForm.dirty);\n // if(this.AssetsDetailsForm.dirty){\n // return;\n // }\n \n // }\n ionViewCanLeave(){\n console.log(\"dirty\",this.AssetsDetailsForm.dirty);\n if(this.AssetsDetailsForm.dirty){\n // console.log(\"dirty\",this.AssetsDetailsForm.dirty)\n //return false;\n // let val=this.toast.setAlert('Form is Modified','Are you sure want to Go Back');\n // console.log(\"v\",val)\n // if(val==1){\n\n // }\n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Form is Modified\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n \n }\n\n getdropList()\n {\n //GETTING Asset Type\n this.qustCat.getcommondrop('ASSETTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_assets_type = res['records'].filter(data=>data.isactive==1 && data.id!=5);\n \n }\n })\n \n //GETTING Property Type;\n this.qustCat.getcommondrop('PROPERTIES').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_propertyType = res['records'].filter(data => data.isactive == 1);\n \n }\n })\n \n //GETTING Investment Type;\n this.qustCat.getcommondrop('INVESTMENTTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_investmentType = res['records'].filter(data => data.isactive == 1);\n }\n })\n\n //GETTING Insurance Type;\n this.qustCat.getcommondrop('INSURANCETYPE').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.m_insuranceType =res['records'].filter(data => data.isactive == 1);\n }\n })\n \n //GETTING Frequency Type;\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_freqOfPurchase = res['records'].filter(data => data.isactive == 1);\n }\n })\n\n //GETTING Relationship;\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(data => \n {\n if(data['dataStatus']==true)\n {\n this.m_relation = data['records'].filter(data => data.isactive == 1);\n }\n });\n\n //GETTING VEHICLE TYPE;\n this.qustCat.getcommondrop('VEHICLETYPE').subscribe(data => {\n if(data['dataStatus']==true)\n {\n this.m_vehicle_type = data['records'].filter(data => data.is_active == 1);\n }\n })\n \n //GETTING UOM List;\n this.qustCat.getcommondrop('UOM').subscribe(data => {\n if(data['dataStatus']==true)\n {\n this.m_uom_type = data['records'].filter(data => data.isactive == 1 && data.is_land_uom == 1 || data.is_land_uom == 2);\n }\n })\n\n //GETTING Company And Applicant List.\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>\n { \n if(data['dataStatus']==true)\n {\n this.existCompanyList=data['records'].filter(val =>val.is_active===true)\n \n }\n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n }\n \n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n })\n \n \n }\n createAsset() : FormGroup\n {\n return this.fb.group(\n {\n assets_mode: [null],\n details: this.fb.array([]),\n approximate_market_value: [null],\n name_of_the_owner: [''],\n other_owner:[''],\n purchase_year: [null,Validators.compose([Validators.minLength(4),Validators.maxLength(4)])],\n vintage_personal : [''],\n emi: [null],\n });\n }\n\n addAsset(flag)\n {\n if(flag==1){\n this.assetItem = this.AssetsDetailsForm.get('assets_details') as FormArray;\n this.assetItem.push(this.createAsset());\n }\n }\n\n deleteAsset(i,flag)\n {\n if(flag==1){\n this.assetItem = this.AssetsDetailsForm.get('assets_details') as FormArray;\n if(this.assetItem.length==1)\n {\n this.AssetsDetailsForm.controls['assets_details'].reset();\n }else{\n this.assetItem.removeAt(i);\n } \n }\n }\n \n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n \n loanCalc(details ,flag)\n {\n if(flag == 1){\n \n let ElapsedValues;\n \n if(details.value.original_loan_tenure != null && details.value.original_loan_tenure != '' && details.value.balance_tenure != null && details.value.balance_tenure != ''){\n ElapsedValues = details.value.original_loan_tenure - details.value.balance_tenure ;\n details.controls['elapsed_tenure'].setValue(ElapsedValues);\n }\n }\n }\n \n show: boolean;\n selectedAssetsType(e: any, i: any,flag : any): void {\n \n let val = i;\n if(flag == 1){\n const arr = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n arr.controls.splice(0);\n }\n \n switch (e.value) {\n case '1': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray ;\n control.push(this.otherAssetsDescription());\n break;\n }\n case '2': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadProperty());\n break;\n }\n case '3': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.load_Four_Weeler());\n break;\n }\n case '4': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray; \n control.push(this.loadEquipmentManufacturingDescription());\n break;\n }\n case '5': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadConsumerDurableDescription());\n break;\n }\n case '6': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadInsuranceDescription());\n break;\n }\n case '7': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadInvestDescription());\n break;\n }\n case '8': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.otherAssetsDescription());\n break;\n }\n default: {\n break;\n }\n }\n }\n\n loadProperty() {\n return this.fb.group({\n property_type: [''],\n other_property_type: [''],\n address_of_the_property: [''],\n describe_of_the_property_asset: [''],\n area_covered_by_this_property: [''],\n uom_of_the_property: [''],\n other_uom: ['']\n });\n } \n\n loadConsumerDurableDescription() {\n return this.fb.group({\n consumer_durable_description: [null]\n });\n }\n \n loadEquipmentManufacturingDescription() {\n return this.fb.group({\n equipment_manufacturing_description: ['']\n });\n }\n\n otherAssetsDescription() {\n return this.fb.group({ any_other_assets: [''] });\n }\n\n loadInsuranceDescription() {\n return this.fb.group({\n // insurance_type: [null],\n premium_paid: [null],\n frequency_mode: [null],\n other_frequency_mode:[null],\n sum_assured: [null],\n members_coverd: [null]\n });\n }\n\n loadInvestDescription() {\n return this.fb.group({\n investments_type: [''],\n other_investments_type:[''],\n in_which_organisation:[''],\n amount_of_invest: [''],\n bank_name: ['']\n });\n }\n\n load_Four_Weeler() {\n return this.fb.group({\n manufacturer_model_vehicle: [''],\n vehicle_type: [''],\n other_vehicle_type: ['']\n });\n }\n \n\n load_Two_Weeler() {\n return this.fb.group({\n manufacturer_model_two_weeler: ['']\n });\n }\n\n\n\n loadPropertyWithData(data) {\n return this.fb.group({\n property_type: [data.property_type],\n other_property_type: [data.other_property_type],\n address_of_the_property: [data.address_of_the_property],\n describe_of_the_property_asset: [data.describe_of_the_property_asset],\n area_covered_by_this_property: [data.area_covered_by_this_property],\n uom_of_the_property: [data.uom_of_the_property],\n other_uom: [data.other_uom]\n });\n }\n\n loadJwellDescriptionWithData(data) {\n return this.fb.group({\n // jwell_description: [data.jwell_description]\n });\n }\n\n loadConsumerDurableDescriptionWithData(data) {\n return this.fb.group({\n consumer_durable_description: [data.consumer_durable_description]\n });\n }\n\n otherAssetsDescriptionWithData(data) {\n return this.fb.group({\n any_other_assets: [data.any_other_assets],\n });\n }\n \n loadInsuranceDescriptionWithData(data) {\n return this.fb.group({\n //insurance_type: [data.insurance_type],\n premium_paid: [data.premium_paid],\n frequency_mode: [data.frequency_mode],\n other_frequency_mode:[data.other_frequency_mode],\n sum_assured: [data.sum_assured],\n members_coverd: [data.members_coverd]\n });\n }\n\n loadInvestDescriptionWithData(data) {\n return this.fb.group({\n investments_type: [data.investments_type],\n other_investments_type:[data.other_investments_type],\n in_which_organisation:[data.in_which_organisation],\n amount_of_invest: [data.amount_of_invest],\n bank_name: [data.bank_name]\n });\n }\n\n \n\n load_Four_WeelerWithData(data) {\n return this.fb.group({\n // manufacturer_model: [data.manufacturer_model, Validators.compose([Validators.required])]\n manufacturer_model_vehicle: [data.manufacturer_model_vehicle],\n vehicle_type: [data.vehicle_type],\n other_vehicle_type: [data.other_vehicle_type]\n });\n }\n\n\n loadEquipmentManufacturingDescriptionWithData(data) {\n return this.fb.group({\n equipment_manufacturing_description: [data.equipment_manufacturing_description]\n });\n }\n\n load_Two_WeelerWithData(data) {\n return this.fb.group({\n manufacturer_model_vehicle: [data.manufacturer_model_vehicle]\n });\n }\n\n\n initDetailsWithdata(data) {\n return this.fb.group({\n assets_mode: [data.assets_mode],\n details: this.fb.array([]),\n approximate_market_value: [data.approximate_market_value],\n name_of_the_owner: [data.name_of_the_owner],\n other_owner:[data.other_owner || ''],\n vintage_personal:[data.vintage_personal],\n purchase_year: [data.purchase_year,Validators.compose([Validators.minLength(4),Validators.maxLength(4)])],\n emi: [data.emi || 0],\n });\n }\n\n saveAssetDetails(answerData)\n {\n if(!this.AssetsDetailsForm.dirty){\n this.toast.pdTriggerappmessage(\"Modified\"+' '+this.AssetsDetailsForm.dirty);\n return;\n }\n \n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n // answerData.assets_details.map(val => {\n // if (val.emi == 'no') {\n // val.emi_paid = '';\n // val.elapsed_tenure = '';\n // val.balance_tenure = '';\n // val.original_loan_tenure ='';\n // }\n // });\n answerData.parent_pdid=this.pdDetails.parent_pd_id\n answerData.pdid = this.pdDetails.pd_id;\n answerData.formid = this.FormId.form_id;\n answerData.fk_createdby = this.users;\n \n this.qustCat.saveForm(answerData).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.AssetsDetailsForm.reset(this.AssetsDetailsForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n }\n\n apiLoadFinish:boolean = false;\n\n // To Fetch The Asset Value;\n getAssetDetails()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n \n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n var assetArray = Object.keys(res['records'].assets_details).map(function(key) {\n // this.AssetsDetailsForm.controls['assets_form_remark'].setValue(res['records'].assets_form_remark)\n return res['records'].assets_details[key];\n });\n \n this.AssetsDetailsForm.controls['assets_form_remark'].setValue(res['records'].assets_form_remark)\n if (assetArray.length > 0) {\n assetArray.forEach((val, index) => {\n let vals = {\n assets_mode: val.assets_mode,\n approximate_market_value: val.approximate_market_value,\n name_of_the_owner: val.name_of_the_owner,\n other_owner:val.other_owner,\n purchase_year: val.purchase_year,\n vintage_personal:val.vintage_personal,\n emi: val.emi,\n };\n \n let Avaliablity = 1;\n if(val.name_of_the_owner.length>0){\n val.name_of_the_owner.forEach(option => {\n if (option.id == 0 && option.group_id == 2) {\n Avaliablity = option.id;\n }\n });\n }\n this.isOtherOwner[index] = Avaliablity == 0 ? true : false\n \n const control = this.AssetsDetailsForm.controls['assets_details'];\n control.push(this.initDetailsWithdata(vals));\n this.inWords(+val.approximate_market_value,index,4);\n this.setAssetsDetailsWithData(vals.assets_mode, val.details, control.length-1)\n // this.setRequiredValidation(val.name_of_the_owner, index, '', 4);\n });\n \n }\n \n this.apiLoadFinish = true;\n \n //this.AssetsDetailsForm.controls['assets_details'].setValue(assetArray);\n }else{\n this.apiLoadFinish = true;\n this.addAsset(1);\n // this.addAsset(2);\n }\n })\n \n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n setAssetsDetailsWithData(assets_details_mode: any, datas: any, i: any): void {\n let val = i;\n \n let data = datas;\n const arr = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n arr.controls.splice(0);\n switch (assets_details_mode) {\n case '1': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { 'any_other_assets': datas.any_other_assets };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.otherAssetsDescriptionWithData(array_data));\n break;\n }\n \n case '2': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { 'property_type': datas.property_type, 'other_property_type': datas.other_property_type,\n 'address_of_the_property': datas.address_of_the_property, 'describe_of_the_property_asset': datas.describe_of_the_property_asset,\n 'uom_of_the_property': datas.uom_of_the_property,\n 'area_covered_by_this_property': datas.area_covered_by_this_property, 'other_uom': datas.other_uom };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadPropertyWithData(array_data));\n break;\n }\n case '3': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { 'manufacturer_model_vehicle': datas.manufacturer_model_vehicle,\n 'vehicle_type': datas.vehicle_type,\n 'other_vehicle_type': datas.other_vehicle_type };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.load_Four_WeelerWithData(array_data));\n break;\n }\n case '4': {\n let array_data:any\n data.forEach((datas,i)=>{\n array_data={'equipment_manufacturing_description': datas.equipment_manufacturing_description }\n })\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadEquipmentManufacturingDescriptionWithData(array_data));\n break;\n }\n case '5': {\n this.FormList = true;\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n // control.push(this.loadConsumerDurableDescriptionWithData(data));\n break;\n }\n case '6': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { \n 'premium_paid': datas.premium_paid,\n 'frequency_mode': datas.frequency_mode,\n 'other_frequency_mode':datas.other_frequency_mode,\n 'sum_assured': datas.sum_assured,\n 'members_coverd': datas.members_coverd\n };\n this.inWords(+datas.premium_paid,i,1);\n this.inWords(+datas.sum_assured,i,2);\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadInsuranceDescriptionWithData(array_data));\n break;\n }\n case '7': {\n let array_data : any;\n data.forEach((datas,i) => {\n this.inWords(+datas.amount_of_invest,i,3);\n array_data = { 'investments_type': datas.investments_type,\n 'other_investments_type' : datas.other_investments_type,\n 'in_which_organisation':datas.in_which_organisation,\n 'amount_of_invest': datas.amount_of_invest,\n 'bank_name': datas.bank_name };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadInvestDescriptionWithData(array_data));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /** On Key Press Event For Number only Accepting */\n keyPress(event: any) {\n const pattern = /[0-9\\-\\.\\ ]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n inWords(e,i,flag){\n switch(flag){\n case 1 : \n this.PremiumPaidInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 2 :\n this.SumAssuredInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 3 :\n this.AmtInvestInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 4 :\n this.ApproxInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n default:\n break;\n }\n }\n\n calculateVintagePurchase(value: any, controlKey: any, type: number) {\n if (type == 1) { }\n else if (type == 2) { }\n else if (type == 3) {\n let control: any = this.AssetsDetailsForm.controls['assets_details'];\n control.controls[controlKey].controls['purchase_year'].setValue(value != '' ? parseInt(this.currentYear) - parseInt(value) : '');\n }\n else if (type == 4) {\n let control: any = this.AssetsDetailsForm.controls['assets_details'];\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['purchase_year'].setValue(value) : control.controls[controlKey].controls['purchase_year'].setValue('');\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['vintage_personal'].setValue(parseInt(this.currentYear) - parseInt(value)) : control.controls[controlKey].controls['vintage_personal'].setValue('')\n }\n\n }\n\n\n setRequiredValidation(value, ParInx, ChdInx, flag) {\n\n let ParCtrls = this.AssetsDetailsForm.controls.assets_details;\n\n let ChdCtrls: any = ParCtrls.controls[ParInx];\n\n if (flag == 4) {\n let Avaliablity = 1;\n\n if (value.length > 0) {\n value.forEach(option => {\n if (option.id == 0 && option.group_id == 2) {\n Avaliablity = option.id;\n }\n });\n }\n if (Avaliablity == 0) {\n\n\n // ChdCtrls.controlsother_owner.setValidators([Validators.required]);\n this.isOtherOwner[ParInx] = true;\n\n } else if (Avaliablity == 1) {\n\n\n ChdCtrls.controls.other_owner.setValue('');\n // ChdCtrls.controls.other_owner.clearValidators();\n this.isOtherOwner[ParInx] = false;\n\n }\n\n // ChdCtrls.controls.other_owner.updateValueAndValidity();\n\n }\n \n }\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n savePhoto(){\n let num_of_images=(this.imageBucket.length+1)+(this.imageDisplay.length+1)\n console.log(\"num of images\",num_of_images)\n if(num_of_images <=10){\n this.camera.getPicture({\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 600,\n correctOrientation: true\n }).then((imageData)=>{\n this.constprovider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.base64='data:image/png;base64,'+imageData\n this.imageBucket.push({'image':this.base64,'Name':'','link':geoCoordinates});\n // this.imageDisplay.push({'image':this.base64,'Name':''})\n this. getImageName(this.imageBucket.length-1)\n })\n },(err)=>{\n //alert(\"error\");\n })\n this.tab='1';\n // this.content.scrollToBottom();\n // let dimensions = this.content.getContentDimensions();\n // this.content.scrollTo(0, dimensions.contentHeight+100, 100);\n // this.inputFocus.setFocus();\n }\n else{\n this.toast.pdTriggerappmessage(\"You are reached the image Limit. To Capture new one Delete the Previous image\");\n }\n }\n getImageName(index){\n console.log(\"index\",index);\n let alert=this.alert.create({\n title:'Document Name',\n message: 'Please Enter the Document Name',\n cssClass:'prompt_alert',\n inputs:[\n {\n name:'Name',\n //value:this.imageBucket[index].Name\n placeholder:'Document Name'\n }\n ],\n buttons:[\n {\n text:'Submit',\n handler:data=>{\n console.log(data.Name)\n this.imageBucket[index].Name=data.Name\n alert.dismiss\n }\n }\n ]\n })\n alert.present();\n //this.inputFocus.setFocus();\n \n }\n// al(){\n// this.toast.pdTriggerappmessage(\"touched\");\n// }\n sendImage(){\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_owner').value\n value.get('other_owner').setValue(this.constprovider.sentenceCase(name));\n }\n \n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assests/pd-question-assests.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams,AlertController } from 'ionic-angular';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { PdQuestionRentalDashPage } from '../pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n\n/**\n * Generated class for the PdQuestionOtherIncomePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-other-income',\n templateUrl: 'pd-question-other-income.html',\n})\nexport class PdQuestionOtherIncomePage {\n\n FormId: any;\n custSeg: any;\n sourceIncome: any;\n otherIncomeDetails: any;\n users: any;\n pdDetails: any;\n pdid:any;\n incomeEarnedBy:any=[];\n amtInWords:any=[];\n \n frequencyData: any;\n otherIncomeForm: FormGroup;\n incomeDetails:FormArray;\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n applicants: any=[];\n isOrganisationOwner: any=[];\n customer_segment_abbr: any;\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider, public constant:ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,public alertCtrl:AlertController) \n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.FormId = this.navParams.get('FormId');\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n console.log('this.customer_segment_abbr',this.customer_segment_abbr)\n this.applicants=this.pdDetails.applicat_details.filter(val=>val.pd_co_applicant_id != 0)\n //this.applicants.push({'pd_co_applicant_id': 0,'applicant_name': \"Others\"})\n this.getFrequency();\n this.users = this.aws.getlocale();\n\n // this.qustCat.getLoadTemplate(this.pdid).subscribe(res=>\n // {\n // this.one = res;\n // if(this.one.dataStatus == true)\n // {\n // this.one = this.one.records.template_forms;\n // let one = this.one.records.template_forms.filter(val=>val.form_id == '17')\n // console.log(this.one,one);\n // }\n\n // });\n\n this.otherIncomeForm = this.fb.group({\n other_income: [null],\n otherincome_remarks:[null],\n income_details: this.fb.array([])\n });\n \n \n \n //this.incomeDetails=this.otherIncomeForm.get('income_details')as FormArray\n //this.incomeDetails.push(this.createDetail())\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionOtherIncomePage');\n this.getOtherIncome();\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.otherIncomeForm.dirty);\n if(this.otherIncomeForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n createDetail():FormGroup {\n return this.fb.group({\n source: [''],\n address:[''],\n others_source : [''],\n income_earned_by:[''],\n others_income_earned_by:[''],\n amount: [''],\n frequency: [''],\n others_frequency : ['']\n });\n}\naddIncomeDetails() {\n this.incomeDetails = this.otherIncomeForm.get('income_details') as FormArray;\n \n this.incomeDetails.push(this.createDetail());\n}\ndeleteIncomeDetails(index) {\n this.incomeDetails = this.otherIncomeForm.get('income_details') as FormArray;\n if(this.incomeDetails.length==1){\n // this.otherIncomeForm.controls['income_details'].reset();\n this.otherIncomeForm.reset();\n this.amtInWords[index]=''\n }else{\n this.incomeDetails.removeAt(index);\n }\n}\ncheckotherDetails(val)\n{\n if(val==\"Yes\")\n {\n this.addIncomeDetails();\n }\n if(val==\"No\"){\n //let length=this.otherIncomeForm.income_details.controls.length\n const control= this.otherIncomeForm.controls['income_details'];\n control.removeAt(0)\n // let len=control.length\n // for(let i=0;i{\n if(res['dataStatus']==true)\n {\n this.incomeEarnedBy=res['record'];\n }\n })\n this.qustCat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(res=>{\n if(res.dataStatus==true){\n this.existCompanyList=res.records.filter(val=>val.is_active == true)\n console.log(this.existCompanyList)\n }\n let modifyCompanyList:any=[]\n if(this.existCompanyList.length>0){\n modifyCompanyList=this.existCompanyList.map(element=>{\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName: 'COMPANIES', groupValues: modifyCompanyList })\n \n }\n let modifyApplicantList:any=[]\n if(this.applicants.length>0){\n modifyApplicantList=this.applicants.map(element=>{\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n })\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n\n }\n console.log(\"company&Applicant\",this.mergeCompanyApplicant)\n })\n\n let master_name = 'FREQUENCY';\n this.qustCat.getcommondrop(master_name).subscribe(data => {\n if(data['dataStatus']==true)\n {\n this.frequencyData = data['records'].filter(fre=>fre.isactive==1);\n }\n });\n this.qustCat.getcommondrop('SOURCEOFOTHERINCOME').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.sourceIncome = res['records'];\n if (this.customer_segment_abbr == 'SE-RI') {\n let inx = this.sourceIncome.map(data => data.name).indexOf(\"Rental Income\")\n /** -X- Please NOTE THIS :\n * inx is '-1' -> this will remove the last item from array \n * so that If Condition is given. */\n if (inx !== -1) {\n this.sourceIncome.splice(this.sourceIncome.map(data => data.name).indexOf(\"Rental Income\"), 1);\n }\n }\n }\n });\n \n \n}\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\n\ngetOtherOrganisationOwner(value,i) {\n //console.log('value',value,'I',i);\nlet Ctrls = this.otherIncomeForm.controls['income_details'];\n console.log('ParCtrls',Ctrls);\nlet ChdCtrls:any = Ctrls.controls[i];\n // console.log('ChdCtrls',ChdCtrls);\n // return;\n\n\nlet Avaliablity = 1;\nconsole.log('val',value);\nif(value.length>0){\n value.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n}\nif(Avaliablity == 0){\n// console.log('if Avaliablity',Avaliablity);\nconsole.log(\"chld\",ChdCtrls)\n ChdCtrls.controls.others_income_earned_by.setValidators([Validators.required]);\n this.isOrganisationOwner[i] = true;\n}else if(Avaliablity == 1){\n// console.log('else Avaliablity',Avaliablity);\n// console.log('esle this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n ChdCtrls.controls.others_income_earned_by.setValue('');\n ChdCtrls.controls.others_income_earned_by.clearValidators();\n this.isOrganisationOwner[i] = false;\n// console.log('else this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n}\n \nChdCtrls.controls.others_income_earned_by.updateValueAndValidity(); \n}\ninWords(val,i){\n this.amtInWords[i]=this.constant.convertNumberToWords(val.target.value)\n}\n\nToview(){\n // alert('Rental Income Details - Is inprogress');\n \n // here Hardcoded;\n this.otherIncomeForm.reset(this.otherIncomeForm.value)\n let RIFormDtls = {'form_id':17,'form_name':'Rental Verification'};\n this.navCtrl.push(PdQuestionRentalDashPage,{'FormId':RIFormDtls,'pdDetails':this.pdDetails});\n}\nsubmitOtherIncome(answerData)\n{\n \n let records: any = {};\n let rentOptionCount: number = 0;\n let validateFlag: number = 0;\n let TextMessage :any;\n\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.other_income = answerData.other_income;\n records.income_details = answerData.income_details;\n records.otherincome_remarks = answerData.otherincome_remarks;\n console.log(records);\n // this.callSaveApi(records);\n\n if (records.other_income == 'Yes') {\n records.income_details.forEach(option => {\n if (+option.source == 5) {\n rentOptionCount++;\n validateFlag = 1;\n } \n });\n \n if(validateFlag == 1){\n let params: any = {};\n params.parent_pdid = this.pdDetails.parent_pd_id;\n params.pd_id = this.pdDetails.pd_id;\n params.pd_form_id = 17;\n \n this.qustCat.retiverForm(params).subscribe(data=>{\n if(!data['dataStatus']){\n let text : any = rentOptionCount > 1 ? rentOptionCount + ' properties' : rentOptionCount + ' property' ;\n TextMessage = '
You have chosen '+ text +' as rental income, but rental verification form is not filled
';\n\n let alert=this.alertCtrl.create({\n title:'Please Confirm',\n message:TextMessage,\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n alert.dismiss\n }\n },\n {\n text:'Confirm',\n handler:()=>{\n this.callSaveApi(records);\n }\n }\n ]\n });\n alert.present();\n }\n else if(data['dataStatus']){\n this.callSaveApi(records);\n }\n })\n } \n else{\n this.callSaveApi(records);\n }\n }\n else{\n this.callSaveApi(records);\n }\n}\n\ncallSaveApi(records){\n \n this.qustCat.saveForm(records).subscribe(data => {\n //TO CHANGE THE FORM STATE \n this.otherIncomeForm.reset(this.otherIncomeForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n}, error => {\n \n})\n}\n\ngetOtherIncome()\n{\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n this.incomeDetails = this.otherIncomeForm.get('income_details') as FormArray;\n this.otherIncomeDetails = res; \n if(this.otherIncomeDetails.dataStatus == true)\n {\n this.otherIncomeDetails = this.otherIncomeDetails.records;\n if(this.otherIncomeDetails.other_income=='Yes'){\n var incomeArray = Object.keys(res['records'].income_details).map(function(key) {\n return res['records'].income_details[key];\n\n });\n this.otherIncomeForm.controls['other_income'].setValue(this.otherIncomeDetails.other_income);\n this.otherIncomeForm.controls['otherincome_remarks'].setValue(this.otherIncomeDetails.otherincome_remarks);\n \n \n \n \n if(incomeArray.length==0)\n {\n // this.incomeDetails.push(this.createDetail());\n }else\n {\n incomeArray.forEach((datas,index)=>\n {\n \n this.incomeDetails.push(this.createDetail());\n this.amtInWords[index]=this.constant.convertNumberToWords(datas.amount)\n this.getOtherOrganisationOwner(datas.income_earned_by,index)\n })\n }\n this.otherIncomeForm.controls['income_details'].setValue(incomeArray);\n \n }else\n {\n this.otherIncomeForm.controls['other_income'].setValue(this.otherIncomeDetails.other_income);\n this.otherIncomeForm.controls['otherincome_remarks'].setValue(this.otherIncomeDetails.otherincome_remarks);\n }\n }\n else{\n // this.incomeDetails.push(this.createDetail())\n }\n })\n}\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\n\nchangeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\ncapture(){\n //FOR CAPTURING PICS\nthis.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n},error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n})\nthis.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('others_income_earned_by').value\n value.get('others_income_earned_by').setValue(this.constant.sentenceCase(name));\n}\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-other-income/pd-question-other-income.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams ,AlertController} from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder, FormArray, Validators, FormControl } from '@angular/forms';\nimport {ConstantsProvider} from '../../../providers/constants/constants';\nimport {DatePipe} from '@angular/common'\nimport { Message } from '@angular/compiler/src/i18n/i18n_ast';\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n/**\n * Generated class for the PdQuestionRentalInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-rental-info',\n templateUrl: 'pd-question-rental-info.html',\n})\nexport class PdQuestionRentalInfoPage {\n pipe = new DatePipe('en-US');\n users: any;\n pdDetails: any;\n FormId: any;\n rentalForms:FormGroup;\n applicants: any ;\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n personType: any=[{id:2,name:\"Tenant / Lessee\"},{id:3,name:\"Owner of the Rented Property\"},{id:4,name:\"Property Caretaker\"},{id:1,name:\"Others (Please Specify)\"}];\n relationShipList: any=[];\n relationToList: any=[];\n rentAmtInwords : String;\n paymentOptions: any=[{id:1,name:\"Received in Cash\"},{id:2,name:\"Received through Banking Channel\"},{id:3,name:\"Combination of Cash & Bank\"}];\n paymentPaidOptions: any=[{id:1,name:\"Paid in Cash\"},{id:2,name:\"Paid through Banking Channel\"},{id:3,name:\"Combination of Cash & Bank\"}];\n propertyNature: any=[{id:2,name:\"Residential Property\"},{id:3,name:\"Commercial Property\"},{id:4,name:\"Industrial Property\"},{id:1,name:\"Others (Please Specify)\"}];\n unitTypeList: any=[];\n stateData:any=[];\n cityData:any=[];\n pincodeData:any=[];\n stateList:any=[];\n cityList:any=[];\n pincodeList:any=[];\n \n documentList: any=[{id:2,name:\"Property Title Document\"},{id:3,name:\"Electricity Bill with name of owner mentioned therein\"},{id:4,name:\"Property tax Receipts\"},{id:1,name:\"Others (Please Specify)\"}];\n //floorList: any=[{id:1,name:\"Ground Floor\"},{id:1,name:\"First Floor\"},{id:1,name:\"Second Floor\"},{id:1,name:\"Third Floor\"}]\n //unitMeasurementList: any=[{id:2,name:\"Square Feet\"},{id:3,name:\"Square Yards\"},{id:4,name:\"Square Meters\"},{id:5,name:\"Acres\"},{id:6,name:\"Hectares\"},{id:1,name:\"Others (Please Specify)\"}];\n unitMeasurementList: any=[];\n\n rent_per_unit_Inwords : any= [];\n amount_Inwords : any=[];\n // rent_per_unit_2_Inwords: any=[];\n floor_rent_per_unit_Inwords : any[][];\n floor_rent_amount_Inwords: any=[];\n monthly_rent_amount_Inwords: any=[];\n amount_received_cash_Inwords: any=[];\n amount_received_bank_Inwords: any=[];\n securtity_deposit_amount_Inwords: any=[]; \n agreement_monthly_rent_amount_Inwords: any=[];\n agreement_security_deposit_amount_Inwords: any=[]\n paid_monthly_rent_per_met_Inwords: any=[];\n amount_received_cash_per_met_Inwords: any=[];\n amount_received_bank_per_met_Inwords: any=[];\n protected _onDestroy = new Subject();\n imageBucket: any=[];\n tab: any='0';\n imageDisplay: any=[];\n pageTitle: string;\n data:any;\n complete_status: boolean = false;\n \n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public toast:ToastProvider,\n public qustCat:QuestionCategoryProvider,public fb:FormBuilder,\n public constprovider:ConstantsProvider,public alertCtrl:AlertController,\n private loading:LoadingProvider,private cameraProvider:CameraProvider) \n {\n this.data=this.navParams.get('values'); // for get the data from dash page\n console.log(\"From Dashboard of Rental - values are \",this.data);\n this.pageTitle = this.data.manage_status==1 ? 'Add RI Details' : 'Update RI Details';\n this.FormId = this.navParams.get('FormId');\n this.pdDetails = this.navParams.get('pdDetails');\n this.users = this.aws.getlocale();\n this.applicants = this.pdDetails.applicat_details;\n this.applicants=this.applicants.filter(val=>val.applicant_type==0 || val.applicant_type==1)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n \n this.getdropList();\n\n this.rentalForms = this.fb.group(\n {\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid: this.pdDetails.pd_id,\n formid: this.FormId.form_id,\n address_property:['',Validators.required],\n state:['',Validators.required],\n stateSearch:[''],\n city:['',Validators.required],\n citySearch:[''],\n pincode:['',Validators.required],\n pincodeSearch:[''],\n validate_visited_address:[true],\n person_met: ['',Validators.required],\n property_owner: ['',Validators.required],\n property_ownership_proof_documents: ['',Validators.required],\n nature_property: ['',Validators.required],\n unit_type:['',Validators.required],\n no_units:[''],\n multistoried_building_details: this.fb.array([]),\n property_unit_details : this.fb.array([]),\n done_third_party_check :['',Validators.required],\n rental_remark: [''],\n })\n\n // observe person met controls\n this.rentalForms.controls['person_met'].valueChanges.subscribe(val => {\n if(val && val.length>0){\n let otherPersonMetCheck = val.filter(fVal=>fVal.id==0);\n otherPersonMetCheck.length>0 ? this.rentalForms.addControl('other_person_met', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_person_met');\n otherPersonMetCheck.length>0 ? this.rentalForms.addControl('other_name_person_showing_property', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_name_person_showing_property');\n otherPersonMetCheck.length>0 ? '' : this.rentalForms.removeControl('other_name_person_type');\n\n \n }\n else {\n this.rentalForms.removeControl('other_person_met');\n this.rentalForms.removeControl('other_name_person_showing_property');\n this.rentalForms.removeControl('other_name_person_type');\n }\n });\n // observe owner of the property\n this.rentalForms.controls['property_owner'].valueChanges.subscribe(val => {\n if(val && val.length>0){\n let otherOwnerCheck = val.filter(fVal=>fVal.id==0);\n otherOwnerCheck.length>0 ? this.rentalForms.addControl('property_owner_other', new FormControl('', Validators.required)) : this.rentalForms.removeControl('property_owner_other');\n otherOwnerCheck.length>0 ? this.rentalForms.addControl('property_owner_other_relationship', new FormControl('', Validators.required)) : this.rentalForms.removeControl('property_owner_other_relationship');\n otherOwnerCheck.length>0 ? this.rentalForms.addControl('property_owner_other_relation_to', new FormControl('', Validators.required)) : this.rentalForms.removeControl('property_owner_other_relation_to');\n\n }\n else {\n this.rentalForms.removeControl('property_owner_other');\n this.rentalForms.removeControl('property_owner_other_relationship');\n this.rentalForms.removeControl('other_name_person_type');\n this.rentalForms.removeControl('property_owner_other_relation_to');\n }\n });\n // observe other property type\n this.rentalForms.controls['nature_property'].valueChanges.subscribe(val => { \n val.id==1 ? this.rentalForms.addControl('other_nature_property', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_nature_property');\n });\n\n // observe unit type changes\n this.rentalForms.controls['unit_type'].valueChanges.subscribe(val => { \n val.id==1 ? this.rentalForms.addControl('other_unit_type', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_unit_type');\n val.group_id==1 && val.id==6 ? this.rentalForms.removeControl('no_units') : val.group_id==2 && val.id==7 ? this.rentalForms.removeControl('no_units') : this.rentalForms.addControl('no_units', new FormControl(''));\n val.group_id==1 && val.id==6 ? this.rentalForms.addControl('no_floor', new FormControl('',Validators.required)) : val.group_id==2 && val.id==7 ? this.rentalForms.addControl('no_floor', new FormControl('',Validators.required)) : this.rentalForms.removeControl('no_floor');\n val.group_id==1 && val.id==6 ? this.rentalForms.addControl('multistoried_total_area', new FormControl('',Validators.required)) : val.group_id==2 && val.id==7 ? this.rentalForms.addControl('multistoried_total_area', new FormControl('',Validators.required)) : this.rentalForms.removeControl('multistoried_total_area');\n val.group_id==1 && val.id==6 ? this.rentalForms.addControl('multistoried_uom', new FormControl('',Validators.required)) : val.group_id==2 && val.id==7 ? this.rentalForms.addControl('multistoried_uom', new FormControl('',Validators.required)) : this.rentalForms.removeControl('multistoried_uom');\n val.group_id==1 && val.id==6 ? '' : val.group_id==2 && val.id==7 ? '' : this.rentalForms.setControl('multistoried_building_details', this.fb.array([]));\n });\n\n // observe visit address\n this.rentalForms.controls['validate_visited_address'].valueChanges.subscribe(val => { \n if(val===false){\n this.rentalForms.addControl('other_visited_address', new FormControl('', Validators.required)); \n }\n else {\n this.rentalForms.removeControl('other_visited_address'); \n }\n });\n // get city list based on state changes\n this.rentalForms.controls['state'].valueChanges.subscribe(val => { \n this.qustCat.getStateWiseCities(val).subscribe(data => {\n if (data.status == 200) {\n this.cityData = data.records.cities;\n this.cityList = this.cityData.slice();\n this.pincodeData = data.records.pincode;\n this.pincodeList = this.pincodeData.slice();\n }\n });\n });\n\n // ownership property documents during the visit\n this.rentalForms.controls['property_ownership_proof_documents'].valueChanges.subscribe(val => { \n val==\"1\" ? this.rentalForms.addControl('sighted_documents', new FormControl('', Validators.required)) : this.rentalForms.removeControl('sighted_documents');\n val==\"1\" ? '' : this.rentalForms.removeControl('other_sighted_documents');\n }); \n\n // listen third party check\n this.rentalForms.controls['done_third_party_check'].valueChanges.subscribe(val => { \n val==\"1\" ? this.rentalForms.addControl('whom_third_party_check_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('whom_third_party_check_done');\n val==\"1\" ? this.rentalForms.addControl('description_third_party_check_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('description_third_party_check_done');\n val==\"1\" ? this.rentalForms.addControl('rental_rates_third_party_check_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('rental_rates_third_party_check_done');\n val==\"0\" ? this.rentalForms.addControl('why_third_party_check_not_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('why_third_party_check_not_done');\n }); \n if(this.data.manage_status != 1){\n this.getRentalDetails(); \n }\n else{\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.push(this.createUnitDetails(''));\n }\n\n//To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionRentalInfoPage');\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.rentalForms.dirty);\n if(this.rentalForms.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n getdropList()\n {\n\n let modifyApplicantList: any=[];\n \n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n \n }\n // set unit type list details\n let resiDentialProperty = [{id:2,name:'Independent Flat',group_id:1},{id:3,name:'Independent Floor',group_id:1},\n {id:4,name:'Independent House',group_id:1},{id:5,name:'Independent Row House',group_id:1},{id:6,name:'Multi Storey Building',group_id:1},{id:1,name:'Other (Please Specify)',group_id:1}];\n \n let commercialProperty = [{id:2,name:'Independent Office',group_id:2},{id:3,name:'Independent Shop',group_id:2},{id:4,name:'Warehouse/Godown',group_id:2},\n {id:5,name:'Workshop',group_id:2},{id:6,name:'Independent Clinic',group_id:2},{id:7,name:'Multi Storey Building',group_id:2},{id:1,name:'Other (Please Specify)',group_id:2}];\n\n let industrialProperty = [{id:2,name:'Factory',group_id:3},{id:3,name:'Industrial Shed',group_id:3},{id:1,name:'Other (Please Specify)',group_id:3}];\n \n this.unitTypeList.push({groupID:2,groupName:'Residential Property',groupValues:resiDentialProperty});\n this.unitTypeList.push({groupID:3,groupName:'Commercial Property',groupValues:commercialProperty});\n this.unitTypeList.push({groupID:4,groupName:'Industrial Property',groupValues:industrialProperty}); \n \n\n //GETTING RELATIONSHIPS\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let relationshipList: any = res['records'].filter(item => item.isactive == 1).map(element => {\n return {id:element.relationship_id.toString(),name:element.name,group_id:1};\n });\n relationshipList.length > 0 ? this.relationShipList.push({groupName:'Personal',groupValues:relationshipList}):'';\n }\n })\n \n //GETTING COMPANYRELATIONSHIPS;\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let companyRelationShipList:any = res['records'].filter(item => item.isactive == 1 && item.name != 'Others').map(element => {\n return {id:element.company_relationship_id.toString(),name:element.name,group_id:2};\n });\n companyRelationShipList.length > 0 ? this.relationShipList.push({groupName:'Official',groupValues:companyRelationShipList}):'';\n } \n })\n \n //GETTING STATE;\n this.qustCat.getcommondrop('STATE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.stateData = res['records'].filter(data => data.isactive == 1);\n this.stateList = this.stateData.slice();\n }\n })\n\n //GETTING UOM;\n this.qustCat.getcommondrop('UOM').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.unitMeasurementList = res['records'].filter(data => data.isactive == 1 && data.is_land_uom == 1 || data.is_land_uom == 2).map(mval=>({id : mval.uom_id , name:mval.name}));\n }\n }) \n }\n\n// initRentalForm() {\n// return this.rentalForms = this.fb.group({\n// pdid: this.pdDetails.pd_id,\n// formid: this.FormId.form_id,\n// address_property:['',Validators.required],\n// state:['',Validators.required],\n// city:['',Validators.required],\n// pincode:['',Validators.required],\n// validate_visited_address:[true],\n// person_met: ['',Validators.required],\n// property_owner: ['',Validators.required],\n// property_ownership_proof_documents: ['',Validators.required],\n// nature_property: ['',Validators.required],\n// unit_type:['',Validators.required],\n// no_units:[''],\n// property_unit_details : this.fb.array([]),\n// done_third_party_check :['',Validators.required],\n// rental_remark: [''],\n// });\n// }\n\n // createrentalHome()\n // {\n // return this.fb.group(\n // {\n // complete_add:[null,Validators.compose([Validators.required])],\n // area_of_property:[null,Validators.compose([Validators.required])],\n // structure_property:[null,Validators.compose([Validators.required])],\n // total_room:[null,Validators.compose([Validators.required])],\n // is_rent:[null,Validators.compose([Validators.required])],\n // date_agreement:[null,Validators.compose([Validators.required])],\n // date_validity:[null,Validators.compose([Validators.required])],\n // rent_agreement:[null,Validators.compose([Validators.required])],\n // actual_rent:[null,Validators.compose([Validators.required])],\n // photo_areegment:[null,Validators.compose([Validators.required])],\n // property_photographs:[null],\n // bank:[null,Validators.compose([Validators.required])],\n // cash:[null,Validators.compose([Validators.required])],\n // rent_each_floor:[null,Validators.compose([Validators.required])],\n // total_rent:[null,Validators.compose([Validators.required])],\n // related_doc_owner:[null,Validators.compose([Validators.required])],\n // details_tenants:this.fb.array([]),\n // third_party_check:[null,Validators.compose([Validators.required])],\n // })\n // }\n\n // other_name_person_showing_property changes\n personShowingChanges(value: any): void { \n if(value.length>0){\n let otherCheck: any = value.filter(fVal=>fVal.id==1);\n otherCheck.length >0 ? this.rentalForms.addControl('other_name_person_type', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_name_person_type');\n}\nelse {\n this.rentalForms.removeControl('other_name_person_type');\n}\n}\n\n// dynamic form control generate for other documents sighted\ngetSightedDocs(value): void{\n value.id==1 ? this.rentalForms.addControl('other_sighted_documents', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_sighted_documents');\n}\n\n// add more unit details\naddMoreUnitDetails(){\n let control: any = this.rentalForms.controls['property_unit_details'];\n //control.push(this.createUnitDetails(''));\n control.push(this.createUnitDetails(''));\n}\n\n // create unit details\n createUnitDetails(details){\n return this.fb.group({\n tenant_lessees_options:['1',Validators.required],\n name_tenant_lessees:['',Validators.required],\n monthly_rent_amount: ['',Validators.required],\n payment_mode: ['',Validators.required],\n securtity_deposit_amount: ['',Validators.required],\n property_cover_area: ['',Validators.required],\n unit_measurement: ['',Validators.required],\n is_rent_agreement_executed: ['',Validators.required],\n met_tenant_lessees_options: ['',Validators.required],\n });\n }\n\n // remove unit\n removeUnit(index) {\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.removeAt(index);\n }\n\n // generate payment dynamic fields\n generatePaymentOptions(value:any,index:number,type: number){\n if(type==1){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value && value.payment_mode.id==1){\n control.controls[index].addControl('amount_received_cash', new FormControl(value.amount_received_cash ? value.amount_received_cash : '', Validators.required));\n control.controls[index].removeControl('amount_received_bank');\n control.controls[index].removeControl('payment_received_reason');\n }\n else if(value && value.payment_mode.id==2){\n control.controls[index].addControl('amount_received_bank', new FormControl(value.amount_received_bank ? value.amount_received_bank : '', Validators.required));\n control.controls[index].removeControl('amount_received_cash');\n control.controls[index].removeControl('payment_received_reason');\n }\n else if(value && value.payment_mode.id==3){\n control.controls[index].addControl('amount_received_cash', new FormControl(value.amount_received_cash ? value.amount_received_cash : '', Validators.required));\n control.controls[index].addControl('amount_received_bank', new FormControl(value.amount_received_bank ? value.amount_received_bank : '', Validators.required));\n control.controls[index].addControl('payment_received_reason', new FormControl(value.payment_received_reason ? value.payment_received_reason : '', Validators.required));\n }\n else {\n control.controls[index].removeControl('amount_received_cash');\n control.controls[index].removeControl('amount_received_bank');\n control.controls[index].removeControl('payment_received_reason');\n }\n \n }\n else if(type==2){\n let control: any = this.rentalForms.controls['property_unit_details'];\n console.log(\"controls\",control.controls['index'])\n if( control.controls[index].controls['payment_difference_per_met']){\n console.log(\"pay\");\n control.controls[index].controls['payment_difference_per_met'].setValue('')\n }\n \n if(value && value.payment_mode_per_met.id==1){\n control.controls[index].addControl('amount_received_cash_per_met', new FormControl(value.amount_received_cash_per_met ? value.amount_received_cash_per_met : '', Validators.required));\n control.controls[index].removeControl('amount_received_bank_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n }\n else if(value && value.payment_mode_per_met.id==2){\n control.controls[index].addControl('amount_received_bank_per_met', new FormControl(value.amount_received_bank_per_met ? value.amount_received_bank_per_met : '', Validators.required));\n control.controls[index].removeControl('amount_received_cash_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n }\n else if(value && value.payment_mode_per_met.id==3){\n control.controls[index].addControl('amount_received_cash_per_met', new FormControl(value.amount_received_cash_per_met ? value.amount_received_cash_per_met : '', Validators.required));\n control.controls[index].addControl('amount_received_bank_per_met', new FormControl(value.amount_received_bank_per_met ? value.amount_received_bank_per_met : '', Validators.required));\n control.controls[index].addControl('payment_received_reason_per_met', new FormControl(value.payment_received_reason_per_met ? value.payment_received_reason_per_met : '', Validators.required));\n }\n else {\n control.controls[index].removeControl('amount_received_cash_per_met');\n control.controls[index].removeControl('amount_received_bank_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n }\n }\n \n \n }\n\n// tenant/lessees options\ngenerateTenantOptions(value:any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.tenant_lessees_options==\"1\"){\n control.controls[index].addControl('name_tenant_lessees', new FormControl('', Validators.required));\n control.controls[index].removeControl('name_tenant_lessees_reason');\n }\n else if(value.tenant_lessees_options==\"0\"){\n control.controls[index].addControl('name_tenant_lessees_reason', new FormControl('', Validators.required));\n control.controls[index].removeControl('name_tenant_lessees');\n }\n else {\n control.controls[index].removeControl('name_tenant_lessees');\n control.controls[index].removeControl('name_tenant_lessees_reason');\n }\n }\n\n // unit of measurement generate other field\n generateOtherunitMeasurement(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n value.unit_measurement.id==\"1\" ? control.controls[index].addControl('other_unit_measurement', new FormControl('', Validators.required)) : control.controls[index].removeControl('other_unit_measurement');\n \n}\n\n// generate multistoried other uom\ngenerateMultistoriedOtherUOM(value: any){\n value.multistoried_uom.id==\"1\" ? this.rentalForms.addControl('multistoried_other_uom', new FormControl('', Validators.required)) : this.rentalForms.removeControl('multistoried_other_uom');\n}\n\n// generate Rent AgreementSeen\ngenerateRentAgreementSeen(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n \n if(value.is_rent_agreement_executed==\"1\"){\n control.controls[index].addControl('rent_agreement_seen', new FormControl('', Validators.required))\n }\n else{\n control.controls[index].removeControl('rent_agreement_seen');\n // after no\n control.controls[index].removeControl('rent_agreement_registered');\n // after No\n control.controls[index].removeControl('agreement_date');\n control.controls[index].removeControl('agreement_no_months');\n control.controls[index].removeControl('agreement_expiring_date');\n control.controls[index].removeControl('rental_remaining_months');\n control.controls[index].removeControl('agreement_monthly_rent_amount');\n control.controls[index].removeControl('agreement_security_deposit_amount');\n control.controls[index].removeControl('agreement_property_owners_name');\n control.controls[index].removeControl('agreement_tenant_lessees_name');\n control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n // remove agrement other ownres \n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n }\n \n}\n//genearate rent agreement registered options\ngenerateRegisterOptions(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.rent_agreement_seen==\"1\"){\n control.controls[index].addControl('rent_agreement_registered', new FormControl('', Validators.required));\n }\n else{\n control.controls[index].removeControl('rent_agreement_registered');\n // after No\n control.controls[index].removeControl('agreement_date');\n control.controls[index].removeControl('agreement_no_months');\n control.controls[index].removeControl('agreement_expiring_date');\n control.controls[index].removeControl('rental_remaining_months');\n control.controls[index].removeControl('agreement_monthly_rent_amount');\n control.controls[index].removeControl('agreement_security_deposit_amount');\n control.controls[index].removeControl('agreement_property_owners_name');\n control.controls[index].removeControl('agreement_tenant_lessees_name');\n control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n // remove agrement other ownres \n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n }\n\n}\n//genearate if rent agreement yes registered details\ngenerateRegisterDetails(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.rent_agreement_registered==\"1\"){\n control.controls[index].addControl('agreement_date', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_no_months', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_expiring_date', new FormControl(''));\n control.controls[index].addControl('rental_remaining_months', new FormControl(''));\n control.controls[index].addControl('agreement_monthly_rent_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_property_owners_name', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_tenant_lessees_name', new FormControl('', Validators.required));\n control.controls[index].addControl('differences_loanapplicant_rentagreement', new FormControl(''));\n\n }\n else if(value.rent_agreement_registered==\"0\"){\n control.controls[index].addControl('agreement_date', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_no_months', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_expiring_date', new FormControl(''));\n control.controls[index].addControl('rental_remaining_months', new FormControl(''));\n control.controls[index].addControl('agreement_monthly_rent_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_property_owners_name', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_tenant_lessees_name', new FormControl('', Validators.required));\n control.controls[index].addControl('differences_loanapplicant_rentagreement', new FormControl(''));\n }\n else{\n control.controls[index].removeControl('agreement_date');\n control.controls[index].removeControl('agreement_no_months');\n control.controls[index].removeControl('agreement_expiring_date');\n control.controls[index].removeControl('rental_remaining_months');\n control.controls[index].removeControl('agreement_monthly_rent_amount');\n control.controls[index].removeControl('agreement_security_deposit_amount');\n control.controls[index].removeControl('agreement_property_owners_name');\n control.controls[index].removeControl('agreement_tenant_lessees_name');\n control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n // remove agrement other ownres \n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n\n }\n\n}\n\n// calculate expiry date\n// calculateExpiryDate(e: any,index){\n// let control: any = this.rentalForms.controls['property_unit_details'];\n// // let getSeletedDate: any=control.value[index].agreement_date ? this.pipe.transform(control.value[index].agreement_date, 'yyyy/MM/dd'): '';\n// let getSeletedDate: any='';\n// let getEnteredMonth = control.value[index].agreement_no_months > 0 ? control.value[index].agreement_no_months : '0';\n// if(getSeletedDate && getEnteredMonth>0){\n// let modifySeletedDate:any = new Date(new Date(getSeletedDate).setMonth(new Date(getSeletedDate).getMonth() + Number(getEnteredMonth)));\n// modifySeletedDate.setDate(modifySeletedDate.getDate() - 1);\n// // let getExpiryDate=this.pipe.transform(modifySeletedDate, 'dd/MM/yyyy');\n// let getExpiryDate='';\n// control.controls[index].controls['agreement_expiring_date'].setValue(getExpiryDate);\n// // calculate remaining month\n// if(modifySeletedDate >= new Date()){\n// let currentDate:any = new Date();\n// // currentDate = this.pipe.transform(currentDate, 'yyyy/MM/dd');\n// currentDate = '';\n// let remaingMonths;\n// remaingMonths = (modifySeletedDate.getFullYear() - new Date().getFullYear()) * 12;\n// remaingMonths += modifySeletedDate.getMonth() - new Date().getMonth();\n// control.controls[index].controls['rental_remaining_months'].setValue(remaingMonths);\n// }\n// else{\n// control.controls[index].controls['rental_remaining_months'].setValue(0);\n// }\n// }\n// else {\n// control.controls[index].controls['agreement_expiring_date'].setValue('');\n// control.controls[index].controls['rental_remaining_months'].setValue('');\n\n// }\n\n// } \n\ncalculateExpiryDate(e: any,index){\n let control: any = this.rentalForms.controls['property_unit_details'];\n let getSeletedDate: any=control.value[index].agreement_date ? this.pipe.transform(control.value[index].agreement_date, 'yyyy/MM/dd'): '';\n let getEnteredMonth = control.value[index].agreement_no_months > 0 ? control.value[index].agreement_no_months : '0';\n if(getSeletedDate && getEnteredMonth>0){\n let modifySeletedDate:any = new Date(new Date(getSeletedDate).setMonth(new Date(getSeletedDate).getMonth() + Number(getEnteredMonth)));\n modifySeletedDate.setDate(modifySeletedDate.getDate() - 1);\n let getExpiryDate=this.pipe.transform(modifySeletedDate, 'dd/MM/yyyy');\n console.log('getExpiryDate',getExpiryDate);\n control.controls[index].controls['agreement_expiring_date'].setValue(getExpiryDate);\n // calculate remaining month\n if(modifySeletedDate >= new Date()){\n let currentDate:any = new Date();\n currentDate = this.pipe.transform(currentDate, 'yyyy/MM/dd');\n let remaingMonths;\n remaingMonths = (modifySeletedDate.getFullYear() - new Date().getFullYear()) * 12;\n remaingMonths += modifySeletedDate.getMonth() - new Date().getMonth();\n console.log('remaingMonths',remaingMonths);\n control.controls[index].controls['rental_remaining_months'].setValue(remaingMonths);\n }\n else{\n control.controls[index].controls['rental_remaining_months'].setValue(0);\n }\n }\n else {\n control.controls[index].controls['agreement_expiring_date'].setValue('');\n control.controls[index].controls['rental_remaining_months'].setValue('');\n\n }\n\n} \n\n// generate other owners as per rent agreement\ngenerateAgreementOtherOwners(value:any,index:number) {\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value && value.length>0){\n let otherOwnerCheck = value.filter(fVal=>fVal.id==0);\n otherOwnerCheck.length>0 ? control.controls[index].addControl('agreement_property_owner_other', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other');\n otherOwnerCheck.length>0 ? control.controls[index].addControl('agreement_property_owner_other_relationship', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relationship');\n otherOwnerCheck.length>0 ? control.controls[index].addControl('agreement_property_owner_other_relation_to', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n\n }\n else {\n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n }\n}\n\n// validate agreement amount\nvalidateAgreementAmt(actualRent:number,agreementRent:number){\n if(actualRent>0 && agreementRent>0){\n return (actualRent >= agreementRent) ? Number(actualRent) - Number(agreementRent) : Number(agreementRent) - Number(actualRent);\n }\n else{\n return \"0\";\n }\n\n}\n \n// generate tenant met details\ngenerateTenantMetDetails(value: any, index: number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n \n if(value.met_tenant_lessees_options==\"1\"){\n // remove reason \n control.controls[index].removeControl('name_tenant_lessees_reason_per_met');\n \n control.controls[index].addControl('name_tenant_lessees_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('property_owner_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('paid_monthly_rent_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('period_of_stay_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('payment_mode_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('payment_difference_per_met', new FormControl(''));\n \n\n }\n else{\n control.controls[index].removeControl('name_tenant_lessees_per_met');\n control.controls[index].removeControl('property_owner_per_met');\n control.controls[index].removeControl('paid_monthly_rent_per_met');\n control.controls[index].removeControl('period_of_stay_per_met');\n control.controls[index].removeControl('payment_mode_per_met');\n control.controls[index].removeControl('payment_difference_per_met');\n\n\n // remove other owner details\n control.controls[index].removeControl('property_owner_other_per_met');\n control.controls[index].removeControl('property_owner_other_relationship_per_met');\n control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n // remove paymnet options\n control.controls[index].removeControl('amount_received_cash_per_met');\n control.controls[index].removeControl('amount_received_bank_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n // add reason\n control.controls[index].addControl('name_tenant_lessees_reason_per_met', new FormControl('', Validators.required));\n\n\n }\n}\n\n// generate met others owner\ngenerateMetOtherOwners(value: any, index: number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.property_owner_per_met.length>0){\n let otherCheck: any = value.property_owner_per_met.filter(fVal=>fVal.id==0);\n otherCheck.length >0 ? control.controls[index].addControl('property_owner_other_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_per_met');\n otherCheck.length >0 ? control.controls[index].addControl('property_owner_other_relationship_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relationship_per_met');\n otherCheck.length >0 ? control.controls[index].addControl('property_owner_other_relation_to_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n\n}\nelse {\n control.controls[index].removeControl('property_owner_other_per_met');\n control.controls[index].removeControl('property_owner_other_relationship_per_met');\n control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n\n}\n\n}\n\n// generate floor rows\ngenerateFloor(e:any): void{\n let control = this.rentalForms.controls['multistoried_building_details'];\n if(e.target.value && Math.round(e.target.value)!=0){\n \n if(Math.round(e.target.value) > this.rentalForms.value.multistoried_building_details.length){\n let rowValue = Math.round(e.target.value)-this.rentalForms.value.multistoried_building_details.length;\n for(let i=rowValue;i>0;i--){\n control.push(this.createFloorDetails(''));\n }\n }\n else if(Math.round(e.target.value) < this.rentalForms.value.multistoried_building_details.length){\n let rowValue = this.rentalForms.value.multistoried_building_details.length-Math.round(e.target.value);\n for(let i=rowValue;i>0;i--){\n control.removeAt(this.rentalForms.value.multistoried_building_details.length-1);\n }\n }\n }\n else if(e.target.value && Math.round(e.target.value)==0){\n control.controls = [];\n control.setValue([]); \n }\n else{\n control.controls = [];\n control.setValue([]); \n }\n e.stopPropagation();\n}\n\n// create floor details\ncreateFloorDetails(details){\n if(details){\n return this.fb.group({\n floor_level: [this.rentalForms.value.multistoried_building_details.length==0 ? 'Ground Floor' : this.rentalForms.value.multistoried_building_details.length+' Floor', Validators.compose([Validators.required])],\n no_units_in_floor: ['', Validators.compose([Validators.required])],\n unit_rent_difference_options : ['', Validators.compose([Validators.required])], \n floor_unit_details : this.fb.array([]),\n floor_rent_amount: [''],\n });\n }\n else{\n return this.fb.group({\n floor_level: [this.rentalForms.value.multistoried_building_details.length==0 ? 'Ground Floor' : this.rentalForms.value.multistoried_building_details.length+' Floor', Validators.compose([Validators.required])],\n no_units_in_floor: ['', Validators.compose([Validators.required])],\n unit_rent_difference_options : ['', Validators.compose([Validators.required])],\n floor_unit_details : this.fb.array([]),\n floor_rent_amount: [''],\n });\n }\n\n}\n\n// generate floor unit details\ngenerateFloorUnit(values:any, index:number){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n control = control.controls[index];\n control= control.controls['floor_unit_details'];\n if(values.no_units_in_floor>0 && values.unit_rent_difference_options==\"0\"){\n if(Math.round(values.no_units_in_floor) > control.value.length){\n let rowValue = Math.round(values.no_units_in_floor)-control.value.length;\n for(let i=rowValue;i>0;i--){\n control.push(this.createFloorUnitDetails(2));\n }\n }\n else if(Math.round(values.no_units_in_floor) < control.value.length){\n let rowValue = control.value.length-Math.round(values.no_units_in_floor);\n for(let i=rowValue;i>0;i--){\n control.removeAt(control.value.length-1);\n }\n }\n else if(Math.round(values.no_units_in_floor)==0){\n control.controls = [];\n control.setValue([]); \n }\n else{\n control.controls = [];\n control.setValue([]); \n }\n this.calculateFloorRentAmt(values,index);\n \n }\n else if(values.no_units_in_floor>0 && values.unit_rent_difference_options==\"1\") {\n control.controls = [];\n control.setValue([]); \n control.push(this.createFloorUnitDetails(1));\n this.calculateFloorRentAmt(values,index);\n }\n else {\n control.controls = [];\n control.setValue([]); \n }\n\n}\n\n// create floor unit details\ncreateFloorUnitDetails(type:number){\n if(type==1){\n return this.fb.group({\n rent_per_unit: ['', Validators.compose([Validators.required])],\n amount: [''],\n });\n }\n else if(type==2){\n return this.fb.group({\n rent_per_unit: ['', Validators.compose([Validators.required])],\n });\n }\n\n}\n// calculate floor rent amount\ncalculateFloorRentAmt(values: any, index: number){\n // this.inWords(values,index,1);\n if(values.unit_rent_difference_options==\"1\"){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n let unitcontrol = control.controls[index];\n unitcontrol= unitcontrol.controls['floor_unit_details'];\n if(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit>0 && values.no_units_in_floor>0){\n unitcontrol.controls[unitcontrol.value.length-1].controls['amount'].setValue(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor);\n this.inWords(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor,index,2);\n control.controls[index].controls['floor_rent_amount'].setValue(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor);\n this.inWords(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor,index,4);\n }\n else{\n unitcontrol.controls[unitcontrol.value.length-1].controls['amount'].setValue('');\n control.controls[index].controls['floor_rent_amount'].setValue('');\n\n }\n }\n else if(values.unit_rent_difference_options==\"0\"){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n let unitcontrol = control.controls[index];\n unitcontrol= unitcontrol.controls['floor_unit_details'];\n // console.log(unitcontrol)\n let getunitValues = unitcontrol.value.filter(val=>val.rent_per_unit!='');\n if(getunitValues.length>0){\n control.controls[index].controls['floor_rent_amount'].setValue(getunitValues.map(mval=>mval.rent_per_unit).reduce((acc, val) => Number(acc) + Number(val), 0));\n this.inWords(getunitValues.map(mval=>mval.rent_per_unit).reduce((acc, val) => Number(acc) + Number(val)),index,4);\n }\n else{\n control.controls[index].controls['floor_rent_amount'].setValue('');\n\n }\n }\n\n}\n\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\ncompareSingleObjects(o1: any, o2: any) {\n if(o1.id == o2.id)\n return true;\n else return false\n}\n // createTenantsDetails()\n // {\n // return this.fb.group(\n // {\n // name:[null,Validators.compose([Validators.required])],\n // mobile_no:[null,Validators.compose([Validators.required])],\n // tenants_seen:[null,Validators.compose([Validators.required])],\n // tenants_con_owner:[null,Validators.compose([Validators.required])],\n // rent_paid:[null,Validators.compose([Validators.required])],\n // staying_since:[null,Validators.compose([Validators.required])],\n \n // });\n // }\n\n // addrentalHome()\n // {\n // const control = this.rentalForms.get('rental_home') as FormArray;\n // control.push(this.createrentalHome());\n // this.addTenantsDetails(0);\n // }\n\n // addTenantsDetails(i)\n // {\n // const control = (this.rentalForms.controls['rental_home']).at(i).get('details_tenants') as FormArray;\n \n // // control.controls.splice(0);\n // control.push(this.createTenantsDetails());\n\n // }\n\n // deleteTenantsDetails(rentIndex,TenantsIndex)\n // {\n // const control = (this.rentalForms.controls['rental_home']).at(rentIndex).get('details_tenants') as FormArray;\n \n // control.removeAt(TenantsIndex);\n // }\n\n // deleterentalHome(i)\n // {\n // const control = (this.rentalForms.controls['rental_home']) as FormArray;\n // if(control.length==1)\n // {\n // this.rentalForms.controls['rental_home'].reset();\n // }else\n // {\n // control.removeAt(i);\n // }\n // }\n saveAlert(answerData){\n let ApplicantRentAmt : number=0 ; \n let TenantRentAmt : number =0; \n let FloorsTotalRentAmt : number =0; \n\n let TempArray1 : any = [];\n let TempArray2 : any = [];\n let TempArray3 : any = [];\n\n let TextMessage :any;\n\n if(answerData.property_unit_details.length > 0){\n \n answerData.property_unit_details.forEach((data,index) => {\n TempArray1[index] = data.hasOwnProperty('monthly_rent_amount') ? data.monthly_rent_amount : 0;\n ApplicantRentAmt = TempArray1.reduce((sum, val) => sum + +val, 0);\n TempArray2[index] = data.hasOwnProperty('paid_monthly_rent_per_met') ? data.paid_monthly_rent_per_met : 0;\n TenantRentAmt = TempArray2.reduce((sum, val) => sum + +val, 0);\n })\n TextMessage = 'Monthly Rent as Per Loan Applicant =' + ApplicantRentAmt+'
'; \n }\n\n \n if(answerData.multistoried_building_details.length > 0){\n answerData.multistoried_building_details.forEach((val,index) => {\n TempArray3[index] = val.hasOwnProperty('floor_rent_amount')? val.floor_rent_amount : 0;\n FloorsTotalRentAmt = TempArray3.reduce((sum, val) => sum + +val, 0);\n });\n TextMessage = TextMessage +'Rent amount calculated = '+FloorsTotalRentAmt;\n }\n else{\n TextMessage = TextMessage +'Monthly Rent amount as Per Tenant met = '+TenantRentAmt;\n }\n \n let alert=this.alertCtrl.create({\n title:'Confirm The Rent Amount',\n message:TextMessage,\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n alert.dismiss\n }\n },\n {\n text:'Confirm',\n handler:()=>{\n this.saveRentalDetails(answerData)\n }\n }\n ]\n });\n alert.present();\n }\n saveRentalDetails(answerData) {\n answerData.rental_count_id=this.data.existing_rental_count_id\n console.log('answerData',answerData);\n \n delete answerData.stateSearch;\n delete answerData.citySearch;\n delete answerData.pincodeSearch;\n answerData.fk_createdby = this.users;\n\n console.log('answerData',answerData);\n\n this.qustCat.saveForm(answerData).subscribe(res=>\n { \n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.rentalForms.reset(this.rentalForms.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n }\n\n// s(answerData)\n// {\n// let records:any={}\n \n \n// // if(this.rentalForms.valid){\n// records.pdid = this.pdDetails.pd_id;\n// records.formid = this.FormId.form_id;\n// records.fk_createdby = this.users;\n// records.person_met = answerData.person_met;\n// records.property_own = answerData.property_own;\n// records.nature_property = answerData.nature_property;\n// if(answerData.nature_property=='others')\n// {\n// records.nature_others = answerData.nature_others\n// }\n// records.rental_home = answerData.rental_home;\n// Object.keys(records.rental_home).forEach((key) => (records.rental_home[key]==null) && delete answerData[key]);\n\n// this.qustCat.saveForm(records).subscribe(res=>\n// { \n// if(res['dataStatus']==true)\n// {\n// this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n// setTimeout(()=>{\n// this.navCtrl.pop();\n// },2000);\n// }\n// })\n// // }else\n// // {\n// // this.toast.pdTriggerappmessage('Enter All Field');\n// // }\n// }\n\n getRentalDetails()\n {\n\n let records = { 'parent_pdid':this.pdDetails.parent_pd_id,'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId.form_id };\n \n \n \n // this.qustCat.retiverForm(records).subscribe(res=> {\n console.log(\"enter\",this.data.editData)\n if(this.data.editData)\n {\n \n let rentalDetails = this.data.editData;\n console.log(\"rental\",rentalDetails)\n rentalDetails.parent_pdid=this.pdDetails.parent_pd_id\n rentalDetails.pdid = this.pdDetails.pd_id,\n rentalDetails.formid = this.FormId.form_id;\n rentalDetails.other_name_person_type ? this.rentalForms.addControl('other_name_person_type', new FormControl('', Validators.required)): this.rentalForms.removeControl('other_name_person_type');\n rentalDetails.other_sighted_documents ? this.rentalForms.addControl('other_sighted_documents', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_sighted_documents');\n // this.rentalForms.addControl('stateSearch', new FormControl(''));\n // this.rentalForms.addControl('citySearch', new FormControl(''));\n // this.rentalForms.addControl('pincodeSearch', new FormControl(''));\n rentalDetails.stateSearch = '';\n rentalDetails.citySearch = '';\n rentalDetails.pincodeSearch = '';\n //get Multistoried Building Details\n if(rentalDetails.multistoried_building_details){\n let selectedMultistoriedBuilding = Object.keys(rentalDetails.multistoried_building_details).map(function (key) {\n return rentalDetails.multistoried_building_details[key];\n });\n\n if(selectedMultistoriedBuilding.length>0){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n selectedMultistoriedBuilding.forEach((floorElement,floorIndex)=>{\n control.push(this.createFloorDetails(''));\n let unitControl = control.controls[floorIndex];\n unitControl= unitControl.controls['floor_unit_details'];\n let floor_rent_amount_val;\n floorElement.floor_unit_details.forEach((unitElement,unitIndex) => {\n floorElement.unit_rent_difference_options==\"0\" ? unitControl.push(this.createFloorUnitDetails(2)) : unitControl.push(this.createFloorUnitDetails(1));\n console.log(\"rent per unit\",unitElement.rent_per_unit);\n if(floorElement.unit_rent_difference_options == \"1\"){\n console.log(\"check\",unitElement.rent_per_unit)\n if(unitElement.rent_per_unit !=''){\n this.inWords(unitElement.rent_per_unit,unitIndex,1)\n }\n if(unitElement.amount!=''){\n this.inWords(unitElement.amount,floorIndex,2)\n }\n }\n else if(floorElement.unit_rent_difference_options==\"0\"){\n if(unitElement.rent_per_unit!=''){\n //floor_rent_amount_val+=unitElement.rent_per_unit\n }\n this.inWords(floorElement.floor_rent_amount,floorIndex,4)\n }\n });\n // this.inWords(floor_rent_amount_val,floorIndex,4)\n });\n }\n } \n\n // get property unit details\n if(rentalDetails.property_unit_details){\n console.log(\"property\",rentalDetails.property_unit_details)\n let selectedUnitDetails = Object.keys(rentalDetails.property_unit_details).map(function (key) {\n return rentalDetails.property_unit_details[key];\n });\n if(selectedUnitDetails.length>0){\n selectedUnitDetails.forEach((element,index) => {\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.push(this.createUnitDetails(''));\n \n (element.name_tenant_lessees && element.tenant_lessees_options==\"1\") ? control.controls[index].addControl('name_tenant_lessees', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees');\n (element.name_tenant_lessees_reason && element.tenant_lessees_options==\"0\") ? control.controls[index].addControl('name_tenant_lessees_reason', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees_reason');\n // for payment options\n element.amount_received_cash ? control.controls[index].addControl('amount_received_cash', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_cash');\n element.amount_received_bank ? control.controls[index].addControl('amount_received_bank', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_bank');\n element.payment_received_reason ? control.controls[index].addControl('payment_received_reason', new FormControl('', Validators.required)) : control.controls[index].removeControl('payment_received_reason');\n \n // unit of other measurement \n element.other_unit_measurement ? control.controls[index].addControl('other_unit_measurement', new FormControl('', Validators.required)) : control.controls[index].removeControl('other_unit_measurement');\n // rent agreement seen\n element.rent_agreement_seen ? control.controls[index].addControl('rent_agreement_seen', new FormControl('', Validators.required)) : control.controls[index].removeControl('rent_agreement_seen');\n element.rent_agreement_registered ? control.controls[index].addControl('rent_agreement_registered', new FormControl('', Validators.required)) : control.controls[index].removeControl('rent_agreement_registered');\n element.agreement_date ? control.controls[index].addControl('agreement_date', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_date');\n element.agreement_no_months ? control.controls[index].addControl('agreement_no_months', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_no_months');\n element.agreement_expiring_date ? control.controls[index].addControl('agreement_expiring_date', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_expiring_date');\n (element.rental_remaining_months=='' || element.rental_remaining_months>=0) ? control.controls[index].addControl('rental_remaining_months', new FormControl('', Validators.required)) : control.controls[index].removeControl('rental_remaining_months');\n element.agreement_monthly_rent_amount ? control.controls[index].addControl('agreement_monthly_rent_amount', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_monthly_rent_amount');\n element.agreement_security_deposit_amount ? control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_security_deposit_amount');\n element.differences_loanapplicant_rentagreement ? control.controls[index].addControl('differences_loanapplicant_rentagreement', new FormControl('', Validators.required)) : control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n \n //agreement owners\n element.agreement_property_owners_name ? control.controls[index].addControl('agreement_property_owners_name', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owners_name');\n element.agreement_property_owner_other ? control.controls[index].addControl('agreement_property_owner_other', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other');\n element.agreement_property_owner_other_relationship ? control.controls[index].addControl('agreement_property_owner_other_relationship', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relationship');\n element.agreement_property_owner_other_relation_to ? control.controls[index].addControl('agreement_property_owner_other_relation_to', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n \n // name of tenant/lessess as agreement\n element.agreement_tenant_lessees_name ? control.controls[index].addControl('agreement_tenant_lessees_name', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_tenant_lessees_name');\n \n //met tenant details\n element.name_tenant_lessees_per_met ? control.controls[index].addControl('name_tenant_lessees_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees_per_met');\n element.name_tenant_lessees_reason_per_met ? control.controls[index].addControl('name_tenant_lessees_reason_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees_reason_per_met');\n element.property_owner_per_met ? control.controls[index].addControl('property_owner_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_per_met');\n element.property_owner_other_per_met ? control.controls[index].addControl('property_owner_other_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_per_met');\n element.property_owner_other_relationship_per_met ? control.controls[index].addControl('property_owner_other_relationship_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relationship_per_met');\n element.property_owner_other_relation_to_per_met ? control.controls[index].addControl('property_owner_other_relation_to_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n \n // tennat payment\n \n \n // element.payment_difference_per_met=''\n // control.controls[index].addControl('payment_difference_per_met',new FormControl(''))\n console.log(\"payment\",element);\n element.paid_monthly_rent_per_met ? control.controls[index].addControl('paid_monthly_rent_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('paid_monthly_rent_per_met');\n element.period_of_stay_per_met ? control.controls[index].addControl('period_of_stay_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('period_of_stay_per_met');\n element.payment_mode_per_met ? control.controls[index].addControl('payment_mode_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('payment_mode_per_met');\n element.amount_received_cash_per_met ? control.controls[index].addControl('amount_received_cash_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_cash_per_met');\n element.amount_received_bank_per_met ? control.controls[index].addControl('amount_received_bank_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_bank_per_met');\n element.payment_received_reason_per_met ? control.controls[index].addControl('payment_received_reason_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('payment_received_reason_per_met');\n if( element.payment_difference_per_met =='' || element.payment_difference_per_met !='') { control.controls[index].addControl('payment_difference_per_met', new FormControl('')) }\n // control.controls[index].removeControl('payment_difference_per_met');\n this.inWords(element.monthly_rent_amount != '' ? +element.monthly_rent_amount : '',index,5);\n this.inWords(element.amount_received_cash != '' ? +element.amount_received_cash : '',index,6);\n this.inWords(element.amount_received_bank != '' ? +element.amount_received_bank : '',index,7);\n this.inWords(element.securtity_deposit_amount != '' ? +element.securtity_deposit_amount : '',index,8);\n this.inWords(element.agreement_monthly_rent_amount != '' ? +element.agreement_monthly_rent_amount : '',index,9);\n this.inWords(element.agreement_security_deposit_amount != '' ? +element.agreement_security_deposit_amount :'',index,10);\n this.inWords(element.paid_monthly_rent_per_met != '' ? +element.paid_monthly_rent_per_met : '',index,11);\n this.inWords(element.amount_received_cash_per_met != '' ? +element.amount_received_cash_per_met : '',index,12);\n this.inWords(element.amount_received_bank_per_met != '' ? +element.amount_received_bank_per_met : '',index,13);\n\n });\n }\n }\n this.rentalForms.patchValue(rentalDetails);\n }\n else{\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.push(this.createUnitDetails(''));\n \n }\n \n \n // });\n \n // this.qustCat.retiverForm(records).subscribe(res=>\n // {\n // if(res['dataStatus']==true)\n // {\n // let rentalDetails = res['records'];\n // var rentalData = Object.keys(res['records'].rental_home\n // ).map(function(key) {\n // return res['records'].rental_home\n // [key];\n\n // });\n // var tanantsData = [];\n // var control = (this.rentalForms.controls['rental_home']) as FormArray;\n // var tanantscontrol; \n // rentalData.forEach((val,index)=>\n // {\n \n // // this.addrentalHome();\n // // tanantsData.push(Object.keys(val.details_tenants).map(function(key)\n // // {\n \n \n // // return val.details_tenants[key];\n // // }));\n // rentalData[index].details_tenants = Object.keys(val.details_tenants).map(function(key)\n // {\n \n \n // return val.details_tenants[key];\n // });\n // // control.push(this.createrentalHome()); \n // tanantscontrol = (this.rentalForms.controls['rental_home']).at(index).get('details_tenants') as FormArray; \n \n // rentalData[index].details_tenants.forEach((val,key)=>\n // {\n // //rentalData[index].details_tenants = val;\n \n // // rentalData[index].details_tenants = [key];\n // // tanantscontrol.push(this.createTenantsDetails());\n // });\n \n // // control[index].details_tenants =tanantscontrol; \n // });\n // this.rentalForms.controls['person_met'].setValue(rentalDetails.person_met);\n // this.rentalForms.controls['property_own'].setValue(rentalDetails.property_own);\n // this.rentalForms.controls['nature_property'].setValue(rentalDetails.nature_property);\n // if(rentalDetails.nature_property=='others'){\n // this.rentalForms.controls['nature_others'].\n // setValue(rentalDetails.nature_others);\n // }\n \n // this.rentalForms.controls['rental_home'].setValue(rentalData); \n // }else\n // {\n // // this.addrentalHome();\n // // this.addTenantsDetails(0);\n // }\n // })\n }\n // createTenantsDetailswithData(index,data)\n // {\n // return this.fb.group(\n // {\n // name:[data.name],\n // mobile_no:[data.mobile_no],\n // tenants_seen:[data.tenants_seen],\n // tenants_con_owner:[data.tenants_con_owner],\n // rent_paid:[data.rent_paid],\n // staying_since:[data.staying_since]\n // });\n // }\n\n inWords(e,i,flag){\n // console.log(e,i,flag);\n switch(flag){\n case 1 : \n this.rent_per_unit_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 2 :\n this.amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 3 :\n // this.rent_per_unit_2_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 4 :\n this.floor_rent_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 5 : \n this.monthly_rent_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 6 :\n this.amount_received_cash_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 7 :\n this.amount_received_bank_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 8 :\n this.securtity_deposit_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 9 : \n this.agreement_monthly_rent_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 10:\n this.agreement_security_deposit_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 11 :\n this.paid_monthly_rent_per_met_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 12 :\n this.amount_received_cash_per_met_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 13 :\n this.amount_received_bank_per_met_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n }\n }\n\n inWordsmultiple(e,i,j,flag){\n // console.log(e,i,j,flag); \n return this.constprovider.convertNumberToWords(e);\n }\n validateAllFormFields(formGroup: any) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n \n if (control instanceof FormControl) {\n control.markAsTouched({ onlySelf: true });\n } else if (control instanceof FormGroup) { \n this.validateAllFormFields(control);\n } else if (control instanceof FormArray) { \n this.validateAllFormFields(control);\n }\n });\n }\n\n\n // generate payment dynamic fields\n\nValidatedRentAmount(value:any,index:number,type: number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n console.log(\"validated\",value);\n if(type==1){\n if(value && value.payment_mode.id==3){\n let ChildCtrl : any = control.controls[index]; \n ChildCtrl.controls['amount_received_bank'].clearValidators();\n ChildCtrl.controls['amount_received_bank'].updateValueAndValidity();\n ChildCtrl.controls['amount_received_cash'].clearValidators();; \n ChildCtrl.controls['amount_received_cash'].updateValueAndValidity();\n let monthlyrentamt : any = value.monthly_rent_amount ; \n \n\n if(monthlyrentamt != ''){\n \n let bank_amount = value.amount_received_bank;\n\n ChildCtrl.controls['amount_received_bank'].setValidators([Validators.required,Validators.max(monthlyrentamt),Validators.min(0)]); \n ChildCtrl.controls['amount_received_bank'].updateValueAndValidity();\n let maxamt = monthlyrentamt-bank_amount\n if(maxamt >= 0 ){\n ChildCtrl.controls['amount_received_cash'].setValue(maxamt);\n ChildCtrl.controls['amount_received_cash'].setValidators([Validators.required,Validators.max(monthlyrentamt-bank_amount),Validators.min(monthlyrentamt-bank_amount)]); \n this.inWords(maxamt,index,6)\n }\n else{\n ChildCtrl.controls['amount_received_cash'].setValue(0);\n ChildCtrl.controls['amount_received_cash'].setValidators([Validators.max(0),Validators.min(0)]); \n }\n ChildCtrl.controls['amount_received_cash'].updateValueAndValidity();\n \n }\n }\n }\n if(type==2){\n \n if(value && value.payment_mode_per_met.id==3){\n let ChildCtrl : any = control.controls[index]; \n ChildCtrl.controls['amount_received_bank_per_met'].clearValidators();\n ChildCtrl.controls['amount_received_bank_per_met'].updateValueAndValidity();\n ChildCtrl.controls['amount_received_cash_per_met'].clearValidators();; \n ChildCtrl.controls['amount_received_cash_per_met'].updateValueAndValidity();\n let paidmonthlyrentamt : any = value.paid_monthly_rent_per_met; \n \n\n if(paidmonthlyrentamt != ''){\n \n let bank_amount = value.amount_received_bank_per_met;\n ChildCtrl.controls['amount_received_bank_per_met'].setValidators([Validators.required,Validators.max(paidmonthlyrentamt),Validators.min(0)]); \n ChildCtrl.controls['amount_received_bank_per_met'].updateValueAndValidity();\n let remainingAmt = paidmonthlyrentamt-bank_amount\n console.log(\"paid monthly\",paidmonthlyrentamt);\n console.log(\"remaining\",remainingAmt)\n if(remainingAmt >= 0 ){\n ChildCtrl.controls['amount_received_cash_per_met'].setValue(remainingAmt);\n ChildCtrl.controls['amount_received_cash_per_met'].setValidators([Validators.required,Validators.max(paidmonthlyrentamt-bank_amount),Validators.min(paidmonthlyrentamt-bank_amount)]); \n this.inWords(remainingAmt,index,12)\n }\n else{\n ChildCtrl.controls['amount_received_cash_per_met'].setValue(0);\n ChildCtrl.controls['amount_received_cash_per_met'].setValidators([Validators.max(0),Validators.min(0)]); \n }\n ChildCtrl.controls['amount_received_cash_per_met'].updateValueAndValidity();\n }\n }\n \n }\n}\n\nforSearchableDropdown(val:any,Flag:any){\n // val=val.controls['relationSearch'].value\n console.log(\"val\",val,'Flag',Flag);\n switch(Flag){\n case 'state' : \n console.log(\"val\",val.controls['stateSearch'].value,'Flag',Flag,'1');\n val.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.stateList=this.constprovider.searchData(this.stateData,val.controls['stateSearch'].value,Flag)\n }); break;\n case 'city' : \n console.log(\"val\",val.controls['citySearch'].value,'Flag',Flag,'2');\n val.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.cityList =this.constprovider.searchData(this.cityData,val.controls['citySearch'].value,Flag)\n }); break;\n case 'pin' : \n console.log(\"val\",val.controls['pincodeSearch'].value,'Flag',Flag,'3');\n val.controls['pincodeSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.pincodeList =this.constprovider.searchData(this.pincodeData,val.controls['pincodeSearch'].value,Flag)\n }); break;\n }\n}\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null,'rental_count_id':this.data.existing_rental_count_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n console.log('From getPDImages',val);\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\n\nchangeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\n\ncaptureThePropertyPics(){\n // alert('rentalDataCount '+this.data.existing_rental_count_id);\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this.imageBucket.push({'image':res,'Name':'Property '+this.data.existing_rental_count_id});\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n}\n\ncapture(){\n //FOR CAPTURING PICS\nthis.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constprovider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n},error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n})\nthis.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n 'rental_count_id':this.data.existing_rental_count_id,\n \n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n console.log(\"savepd\",records) \n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('agreement_property_owner_other').value\n value.get('agreement_property_owner_other').setValue(this.constprovider.sentenceCase(name));\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-rental-info/pd-question-rental-info.ts","import { Component, OnInit } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormArray, FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\n\n/**\n * Generated class for the PdQuestionPersonalInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-personal-info',\n templateUrl: 'pd-question-personal-info.html',\n})\nexport class PdQuestionPersonalInfoPage implements OnInit{\n\n questionDetails: any;\n pdDetails: any;\n users: any;\n _personalForm: FormGroup;\n qualifications:any=[\"Graduate\",\"Under Graduate\",\"Post Graduate\",\"Professional\"];\n earningStatus:any=[\"Earning Member\",\"House Wife\",\"Student\",\"Retired\",\"Pensioner\",\"Other Non earning member\"];\n relationShipList:any=[];\n \n form_id:number;\n \n\n public mainApplicantQuestions : any = [\"Name\",\"Age\",\"Entity\",\"Educational Qualification\",\"Earning Status\"];\n public coApplicantQuestions : any = [\"Name\",\"Age\",\"Entity\",\"Educational Qualification\",\"Earning Status\",\"Relationship\"];\n \n public mainApplicantDetails :any=[];\n public coApplicantDetails :any=[];\n \n errorMessage:any;\n //coItem:any;\n //mainItem:any;\n\n repeat:number=3;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public _fb:FormBuilder) {\n \n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.users = this.aws.getlocale();\n \n \n // this.getRelationMaster();\n \n \n \n }\n ngOnInit() {\n \n this.loadPDDetails();\n this.getRelationMaster();\n this.mainApplicantDetails = this.pdDetails.applicat_details\n .filter(item => item.applicant_type == 1);\n this.coApplicantDetails = this.pdDetails.applicat_details\n .filter(item => item.applicant_type == 0);\n }\n\n // load form pd details\n loadPDDetails(){\n let records = {'pd_id':this.pdDetails.pd_id,'pd_form_id':'341'};\n \n this.qustCat.retiverForm(records).subscribe(\n data => {\n if (data['status'] == 200) {\n this.loadFormWithIDData(data['records']);\n \n }\n else{\n let defaultMainApp=[];\n let defaultCoApp=[];\n // generate default main applicant form details\n if(this.mainApplicantDetails.length>0){ \n for(let j=0;j this.errorMessage = error);\n}\n\nloadDataStatus: boolean = false;\n\nloadFormWithIDData(data) {\n var main_result = Object.keys(data.main_applicant_details).map(function(key) {\n return data.main_applicant_details[key];\n});\nvar co_result = Object.keys(data.co_applicant_details).map(function(key) {\n return data.co_applicant_details[key];\n});\n\n // main applicant\n let mainApplicantGroup = new FormArray(main_result.map((item,key) => new FormGroup({\n name_ans:new FormControl(item.name_ans, Validators.required),\n age_ans:new FormControl(item.age_ans, Validators.required),\n entity_ans:new FormControl(item.entity_ans, Validators.required),\n qualification_ans:new FormControl(item.qualification_ans, Validators.required),\n earning_ans:new FormControl(item.earning_ans, Validators.required),\n })));\n // co applicant\n let iterateCoApp=[];\n \n let coApplicantGroup = new FormArray(co_result.map((item,key) => new FormGroup({\n name_ans:new FormControl(item.name_ans, Validators.required),\n age_ans:new FormControl(item.age_ans, Validators.required),\n entity_ans:new FormControl(item.entity_ans, Validators.required),\n qualification_ans:new FormControl(item.qualification_ans, Validators.required),\n earning_ans:new FormControl(item.earning_ans, Validators.required),\n relation_ans:new FormControl(item.relation_ans, Validators.required),\n\n })));\n \n this._personalForm = this._fb.group({\n pdid:null,\n form_id:null,\n mainItem: mainApplicantGroup,\n coItem: coApplicantGroup,\n personal_info_form_remark: [data.personal_info_form_remark]\n });\n this.loadDataStatus = true;\n}\n\n loadFormData(mainApp,coApp){\n // main applicant\n let mainApplicantGroup = new FormArray(this.mainApplicantDetails.map((item,key) => new FormGroup({\n name_ques:new FormControl(this.mainApplicantQuestions[0]),\n name_ans:new FormControl(item.applicant_name, Validators.required),\n name_id:new FormControl(0),\n age_ques:new FormControl(this.mainApplicantQuestions[1]),\n age_id:new FormControl(1),\n age_ans:new FormControl(null, Validators.required),\n entity_ques: new FormControl(this.mainApplicantQuestions[2]),\n entity_id: new FormControl(2),\n entity_ans:new FormControl(null, Validators.required),\n qualification_ques: new FormControl(this.mainApplicantQuestions[3]),\n qualification_id: new FormControl(3),\n qualification_ans:new FormControl(null, Validators.required),\n earningStatus_ques:new FormControl(this.mainApplicantQuestions[4]),\n earning_id: new FormControl(4),\n earning_ans:new FormControl(null, Validators.required),\n \n })));\n // co applicant\n let iterateCoApp=[];\n \n let coApplicantGroup = new FormArray(this.coApplicantDetails.map((item,key) => new FormGroup({\n name_ques:new FormControl(this.coApplicantQuestions[0]),\n name_ans:new FormControl(item.applicant_name, Validators.required),\n name_id:new FormControl(0),\n age_ques:new FormControl(this.coApplicantQuestions[1]),\n age_id:new FormControl(1),\n age_ans:new FormControl(null, Validators.required),\n entity_ques: new FormControl(this.coApplicantQuestions[2]),\n entity_id: new FormControl(2),\n entity_ans:new FormControl(null, Validators.required),\n qualification_ques: new FormControl(this.coApplicantQuestions[3]),\n qualification_id: new FormControl(3),\n qualification_ans:new FormControl(null, Validators.required),\n earningStatus_ques:new FormControl(this.coApplicantQuestions[4]),\n earning_id: new FormControl(4),\n earning_ans:new FormControl(null, Validators.required),\n relationShip_ques:new FormControl(this.coApplicantQuestions[5]),\n relation_id:new FormControl(5),\n relation_ans:new FormControl(null, Validators.required),\n\n })));\n \n this._personalForm = this._fb.group({\n pdid:null,\n form_id:null,\n mainItem: mainApplicantGroup,\n coItem: coApplicantGroup,\n personal_info_form_remark:null\n });\nthis.loadDataStatus = true;\n }\n\n //get pd main applicant array values \n get pdMainapplicant() { return this._personalForm.get('mainItem') as FormArray; }\n\n // get pd co applicant array values\n get pdCoapplicant() {return this._personalForm.get('coItem') as FormArray;}\n\n // get relation master details\n getRelationMaster(){\n let relation =\"RELATIONSHIPS\";\n this.qustCat.getcommondrop(relation).subscribe(\n data => {\n if (data['status'] == 200) {\n this.relationShipList=data['records'];\n \n }\n}, error => this.errorMessage = error);\n}\n\n// submit forms details\nsubmitPersonalForm(formData:any) {\n if(this._personalForm.valid){\n let main_applicantDetails:any=[];\n let co_applicantDetails:any=[];\n\n formData.mainItem.forEach((element,key) => {\n if(key==0){\n main_applicantDetails.push({\n \"name_ans\":element.name_ans,\n \"age_ans\":element.age_ans,\n \"entity_ans\":element.entity_ans,\n \"qualification_ans\":element.qualification_ans,\n \"earning_ans\":element.earning_ans, \n })\n }\n \n });\n formData.coItem.forEach((Coelement,Cokey) => {\n co_applicantDetails.push({\n\n \"name_ans\":Coelement.name_ans,\n \"age_ans\":Coelement.age_ans,\n \"qualification_ans\":Coelement.qualification_ans,\n \"entity_ans\":Coelement.entity_ans,\n \"earning_ans\":Coelement.earning_ans, \n \"relation_ans\":Coelement.relation_ans, \n })\n \n });\n\n let save_details:any={\n \"pdid\" : this.pdDetails.pd_id,\n \"formid\" : '341',\n \"fk_createdby\":this.users,\n \"main_applicant_details\":main_applicantDetails,\n \"co_applicant_details\":co_applicantDetails,\n \"personal_info_form_remark\": this._personalForm.get('personal_info_form_remark').value\n };\n this.qustCat.saveForm(save_details).subscribe(result => {\n if (result['dataStatus']==true) {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n // this.notifier.notify('success', 'Success.');\n }\n else {\n // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');\n }\n }, error => {\n // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');\n });\n }\n}\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-personal-info/pd-question-personal-info.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Slides } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\nimport { PdQuestionAssessedSalesPage } from '../pd-question-assessed-sales/pd-question-assessed-sales';\nimport { PdQuestionAssessedDailySalesPage } from '../pd-question-assessed-daily-sales/pd-question-assessed-daily-sales';\nimport { FormatWidth } from '@angular/common';\nimport { PdQuestionAssessedPurchasePage } from '../pd-question-assessed-purchase/pd-question-assessed-purchase';\nimport { PdQuestionAssessedBusinessPage } from '../pd-question-assessed-business/pd-question-assessed-business';\nimport { PdQuestionAssessedHouseholdPage } from '../pd-question-assessed-household/pd-question-assessed-household';\nimport { PdQuestionAssessedBusinessIncomePage } from '../pd-question-assessed-business-income/pd-question-assessed-business-income';\n\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport {PdQuestionAssessedDailyPurchasePage} from '../pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase'\nimport {RupeeCurrencyFormatPipe} from '../../../pipes/rupee-currency-format/rupee-currency-format'\n\n\n/**\n * Generated class for the PdQuestionAssessedInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-info',\n templateUrl: 'pd-question-assessed-info.html',\n providers:[RupeeCurrencyFormatPipe]\n})\nexport class PdQuestionAssessedInfoPage {\n\n grossProfitForm:FormGroup\n check__purchse_type:any=[{'id':'1','name':'Yes'},{'id':'2','name':'No'}]\n busissnessIncome: any;\n mode: any;\n grossprofitCalc: any;\n houseHold_details: any;\n grandHouseExpenseTotal: any;\n houseannual: any=[];\n businessExpenses_details: any;\n grandExpenseTotal: any;\n expenseannual: any=[];\n businessExpenses: any;\n purchse_details: any;\n sales_item_month_value: any=[];\n sales_wise_month_headers:any = [];\n sales_month_wise_data:any = [];\n sales_item_value: any;\n grandpurchaseTotal: any=null;\n UOM: any;\n m_freqOfPurchase: any;\n users: any;\n pageId: any;\n pdDetails: any;\n assessedForm:FormGroup;\n FormName:any;\n annual:any = [];\n rawMaterialForm:FormGroup;\n BuissnessForm:FormGroup;\n houseHoldForm:FormGroup;\n activateMarginCalculation:boolean=false\n SaleAmtInwords: any=[];\n marginAmtInwords: any=[];\n purchase_bill_wise: any=[];\n purchase_bill_wise_data:any=[]\n purchase_type:any;\n totalAnnualSale_Item_wise;\n totalAnnualpurchase_Item_wise: any;\n totalAnnualBusiness_details: any;\n totalAnnual_House_hold_details: any;\n sales_type: any=[];\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public fb:FormBuilder,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.pageId = this.navParams.get('pageId');\n // this.getAssessedDetails(); \n switch(this.pageId)\n {\n case 1:\n this.FormName = \"Sales Page\";\n break;\n case 2:\n this.FormName = \"Purchase Page\";\n break;\n case 3:\n this.FormName = \"Business Expenses Page\";\n break;\n case 4:\n this.FormName = \"Household Expenses Page\";\n break;\n default:\n this.FormName = \"Question Page\";\n break;\n }\n this.users = this.aws.getlocale();\n this.assessedForm = this.fb.group(\n {\n sdc_id:[null],\n sales_declared_by_customer:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n margin_per:[null],\n margin_value:[null],\n comments:[null],\n isactive:[1],\n fk_createdby:[this.users],\n \n });\n this.grossProfitForm=this.fb.group({\n calc_type_id:[''],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n mode:['',Validators.compose([Validators.required])],\n margin:[''],\n })\n \n \n \n \n // this.getdropList();\n \n \n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedInfoPage');\n }\n\n\n \n \n\n ionViewDidEnter() {\n \n }\n ionViewCanEnter()\n {\n this.getAssessedDetails()\n }\n\n\n \n \n changeOptions(values: any){\n // console.log('values',values);\n this.grossProfitForm.controls['margin'].setValue('');\n /** if Mode Value is 'No' -> margin value is setted as netmargin and its id - 2\n * Refer => check_sales_type **/\n if(values.mode == 2){\n // console.log('2');\n this.grossProfitForm.controls['margin'].setValue('2');\n }\n }\n\n //PURCHASE DETAILS SUBMIT\n // submitDetails(records: any){\n // if (this.grossProfitForm.invalid) {\n \n // this.toast.pdTriggerappmessage(\"Please Check All Manatory Fields..\");\n // return;\n // }\n // // let datas:any;\n // // datas=records;\n\n // this.qustCat.saveassessedForms('saveAssessedIncomeCalculateMode',records).subscribe(data => {\n // this.toast.pdTriggerappmessage('Saved Successfully.');\n // //this.loadAssessedForms.next('1');\n // }, error => {\n // this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n // // this.loadAssessedForms.next('1');\n // });\n // } \n \n\n getMarginCalc()\n {\n \n let margin_per = this.assessedForm.controls['margin_per'].value;\n console.log(\"Margin Per\",margin_per)\n let sales_declared_by_customer = this.assessedForm.controls['sales_declared_by_customer'].value;\n if(margin_per !=null && sales_declared_by_customer !=null)\n {\n let value = sales_declared_by_customer * (margin_per/100);\n this.assessedForm.controls['margin_value'].setValue(value);\n }\n }\n\n saveData(answerData)\n {\n let records:any = {};\n answerData.company_id=this.pdDetails.company_id\n \n records ={'records':answerData};\n console.log(records);\n this.qustCat.saveassessedForms('saveAssessedIncomeSalesDeclaredByCustomer',records).subscribe(res=>\n {\n // console.log(res);\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n \n }\n })\n setTimeout(()=>{\n this.getAssessedDetails();\n },1500)\n }\n salesCalculation(values): void {\n if(values.sales_declared_by_customer !=''){this.SaleAmtInwords = this.cons.convertNumberToWords(values.sales_declared_by_customer);}\n if(values.margin_per !='' && values.sales_declared_by_customer !='')\n {\n \n this.assessedForm.controls['margin_value'].setValue((values.sales_declared_by_customer * (values.margin_per/100)).toFixed(2));\n this.marginAmtInwords = this.cons.convertNumberToWords(values.sales_declared_by_customer * (values.margin_per/100));\n }\n }\n \n getAssessedDetails()\n {\n this.sales_item_month_value = [];\n this.sales_month_wise_data = [];\n this.sales_item_value= [];\n this.purchase_bill_wise_data=[];\n let records = {'pd_id':this.pdDetails.pd_id,'company_id':this.pdDetails.company_id};\n console.log(\"company\",this.pdDetails.company_id)\n console.log(\"getAssesed\",records)\n this.qustCat.retiverassessedForm('getAssessedIncome',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let sales_value = res['records'].sales_declared_by_customer[0];\n this.sales_item_value = res['records'].sales_calculated_by_itemwise;\n //SALE ANNUAL TOTAL\n this.totalAnnualSale_Item_wise=this.sales_item_value.map(val=>val.annual_sale_value).reduce((original,value)=>original + Number(value),0)\n console.log(\"this.sales_item\",this.totalAnnualSale_Item_wise);\n this.sales_item_month_value = res['records'].sales_items_by_monthwise;\n this.purchse_details = res['records'].purchase_details; \n //PURCHASE ANNUAL TOTAL\n this.totalAnnualpurchase_Item_wise=this.purchse_details.map(val=>val.annual_purchase_value).reduce((original,value)=>original+Number(value),0)\n this.purchase_bill_wise=res['records'].purchase_billwise\n this.grossprofitCalc = res['records'].gross_profit_calculation_type[0]\n this.purchase_type=this.grossprofitCalc.purchase_type;\n console.log(\"gross\",this.grossprofitCalc);\n this.mode = this.grossprofitCalc.mode;\n\n var lenOfGrossProfit=res['records'].gross_profit_calculation_type.length\n console.log(\"len\",lenOfGrossProfit)\n this.activateMarginCalculation=res['records'].gross_profit_calculation_type[lenOfGrossProfit-1].margin==2 && res['records'].gross_profit_calculation_type[lenOfGrossProfit-1].mode ==2 ?true : false\n console.log(this.activateMarginCalculation);\n var result = this.purchse_details.reduce(function(p, c) {\n \n return p;\n },[]);\n console.log(result);\n\n\n this.businessExpenses_details = res['records'].business_expenses;\n //BUSINESS ANNUAL TOTAL\n this.totalAnnualBusiness_details=this.businessExpenses_details.map(val=>val.annual_expenses_value).reduce((original,value)=>original + Number(value),0);\n this.houseHold_details = res['records'].house_hold_expenses;\n //HOUSEHOLD ANNUAL TOTAL\n this.totalAnnual_House_hold_details=this.houseHold_details.map(val=>val.annual_expense_value).reduce((original,value)=>original+Number(value),0)\n this.busissnessIncome = res['records'].othre_business_income;\n // console.log(this.sales_item_month_value);\n // this.getpurchaseDetails(this.purchse_details);\n \n \n // this.grossProfitForm.controls['mode'].setValue(res['records'].gross)\n\n // const control=this.grossProfitForm['controls']\n // this.grossProfitForm.controls['mode'].setValue(res['records'].gross_profit_calculation_type.mode);\n // this.grossProfitForm.controls['margin'].setValue(res['records'].gross_profit_calculation_type.margin)\n // this.grossProfitForm.controls['calc_type_id'].setValue(res['records'].gross_profit_calculation_type.calc_type_id)\n \n \n \n \n this.sales_item_month_value.forEach((itemElement, itemIndex) => {\n this.sales_type[itemIndex]=itemElement.sales_type\n let expandBodyContent= Object.keys(itemElement.items).map(key => ({ header:key, value: itemElement.items[key] }));\n let listItems: any=[];\n expandBodyContent.forEach((expnadElement, expnadIndex) => {\n let calculateItems = expnadElement.value.reduce((acc, calculate) => acc + Number(calculate.sales_value), 0);\n listItems.push({items:expnadElement, itemsTotal:calculateItems})\n })\n let calculateAllItemsTotal:number=listItems.reduce((racc, rcalculate) => racc + Number(rcalculate.itemsTotal), 0);\n \n let convertYear : number = 12 / listItems.length;\n let footerMessage: any=[];\n footerMessage.push({\n month_message: listItems.length + ' Month Sales : '+ calculateAllItemsTotal,\n month_value:calculateAllItemsTotal,\n year_message: ' Yearly Sales Arrived : '+ calculateAllItemsTotal * convertYear,\n year_value: calculateAllItemsTotal * convertYear,\n })\n this.sales_month_wise_data.push({salesItem:itemElement.sales_item, expandElements:expandBodyContent, footerMessage: footerMessage,simId:itemElement.sim_id,otherSaleItem:itemElement.other_sales_item});\n });\n this.purchase_bill_wise.forEach((itemElement,itemIndex)=>{\n console.log(\"0index\",itemElement.items[0]);\n let result=Object.assign({},...itemElement.items);\n console.log(\"result\",result)\n let expandBodyContent=Object.keys(result).map(key=>({header:key,value:result[key]}));\n console.log(\"expanBody\",expandBodyContent);\n let listItems:any=[];\n expandBodyContent.forEach((expandElement,expandIndex)=>{\n let calculateItems=expandElement.value.reduce((acc,calculate)=>acc + Number(calculate.purchase_value),0)\n listItems.push({items:expandElement,itemsTotal:calculateItems})\n })\n let calculateAllItemsTotal:number=listItems.reduce((va,rcalc)=>va+Number(rcalc.itemsTotal),0);\n let convertYear : number = 12 / listItems.length;\n let footerMessage: any=[];\n footerMessage.push({\n month_message: listItems.length + ' Month Sales : '+ calculateAllItemsTotal,\n month_value:calculateAllItemsTotal,\n year_message: ' Yearly Sales Arrived : '+ calculateAllItemsTotal * convertYear,\n year_value: calculateAllItemsTotal * convertYear,\n })\n this.purchase_bill_wise_data.push({purchaseItem:itemElement.purchase_item,expandElements:expandBodyContent,footerMessage:footerMessage,pbw_id:itemElement.pbw_id,otherPurchaseItem:itemElement.other_purchase_item});\n })\n console.log(\"val purchase0\",this.purchase_bill_wise_data)\n\n\n console.log(\"value\",this.sales_month_wise_data);\n if(sales_value!==undefined){\n this.assessedForm.controls['sdc_id'].setValue(sales_value.sdc_id);\n this.assessedForm.controls['sales_declared_by_customer'].setValue(sales_value.sales_declared_by_customer);\n this.assessedForm.controls['margin_value'].setValue(sales_value.margin_value);\n this.assessedForm.controls['comments'].setValue(sales_value.comments)\n this.assessedForm.controls['margin_per'].setValue(sales_value.margin_per);\n if(sales_value.sales_declared_by_customer != null){\n this.SaleAmtInwords=this.cons.convertNumberToWords(sales_value.sales_declared_by_customer)\n }\n if(sales_value.margin_value != null){\n this.marginAmtInwords=this.cons.convertNumberToWords(sales_value.margin_value)\n }\n \n }\n \n }\n })\n\n }\n grossProfitWithData(data:any){\n return this.fb.group({\n calc_type_id:[data.calc_type_id],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[data.company_id],\n mode:[data.mode],\n margin:[data.margin],\n})\n }\n /**\n * Add Assessed Forms\n */\n\n AddAssessedForm()\n {\n this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':null,'margin_calculation_status':this.activateMarginCalculation}); \n \n }\n\n editDetails(salesCal)\n {\n let salesData = this.sales_item_value.filter(sal=>sal.sci_id==salesCal);\n console.log(salesData);\n // this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':salesData,'grossprofit':this.grossprofitCalc}); \n this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':salesData,'margin_calculation_status':this.activateMarginCalculation}); \n \n }\n editAllDetails(AllsalesData)\n {\n this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':AllsalesData,'margin_calculation_status':this.activateMarginCalculation}); \n }\n\n /**Assessed Daily Form Details */\n\n AddAssessedDailyForm()\n {\n this.navCtrl.push(PdQuestionAssessedDailySalesPage,{'pdDetails':this.pdDetails,'salesDaily':null,'margin_calculation_status':this.activateMarginCalculation})\n }\n editAssessedDailyForm(simId)\n {\n let dailySaleDetails = this.sales_item_month_value.filter(ass=>ass.sim_id==simId);\n console.log(dailySaleDetails);\n this.navCtrl.push(PdQuestionAssessedDailySalesPage,{'pdDetails':this.pdDetails,'salesDaily':dailySaleDetails,'margin_calculation_status':this.activateMarginCalculation})\n \n }\n allEditSalesDailyWise(values){\n this.navCtrl.push(PdQuestionAssessedDailySalesPage,{'pdDetails':this.pdDetails,'salesDaily':values,'margin_calculation_status':this.activateMarginCalculation})\n }\n\n /**purchase Details Forms */\n AddPurchaseForm()\n {\n this.navCtrl.push(PdQuestionAssessedPurchasePage,{'pdDetails':this.pdDetails,'purchase':null}); \n \n }\n\n editPurchaseDetails(purchaseCal)\n {\n let salesData = this.purchse_details.filter(sal=>sal.purchase_id==purchaseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedPurchasePage,{'pdDetails':this.pdDetails,'purchase':salesData}); \n \n }\n editPurchaseAllDetails(AllpurchaseData)\n {\n console.log('260',AllpurchaseData);\n this.navCtrl.push(PdQuestionAssessedPurchasePage,{'pdDetails':this.pdDetails,'purchase':AllpurchaseData}); \n }\n AddPurchaseBillWiseForm(){\n this.navCtrl.push(PdQuestionAssessedDailyPurchasePage,{'pdDetails':this.pdDetails,'purchaseDaily':null})\n }\n \n alleditPurchaseBillWise(all_purchase_daily){\n this.navCtrl.push(PdQuestionAssessedDailyPurchasePage,{'pdDetails':this.pdDetails,'purchaseDaily':all_purchase_daily})\n }\n editPurchaseBillWise(daily_purchase){\n let single_purchase=this.purchase_bill_wise.filter(val=>val.pbw_id==daily_purchase)\n this.navCtrl.push(PdQuestionAssessedDailyPurchasePage,{'pdDetails':this.pdDetails,'purchaseDaily':single_purchase})\n }\n\n /**Business Expense */\n AddExpenseForm()\n {\n this.navCtrl.push(PdQuestionAssessedBusinessPage,{'pdDetails':this.pdDetails,'expense':null}); \n \n }\n\n editExpenseDetails(expenseCal)\n {\n let salesData = this.businessExpenses_details.filter(sal=>sal.pd_expense_id==expenseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedBusinessPage,{'pdDetails':this.pdDetails,'expense':salesData}); \n \n }\n editExpenseAllDetails(AllexpenseData)\n {\n this.navCtrl.push(PdQuestionAssessedBusinessPage,{'pdDetails':this.pdDetails,'expense':AllexpenseData}); \n }\n \n\n /** Household Expenses Details */\n AddHouseExpenseForm()\n {\n this.navCtrl.push(PdQuestionAssessedHouseholdPage,{'pdDetails':this.pdDetails,'expense':null}); \n \n }\n\n editHouseExpenseDetails(expenseCal)\n {\n let salesData = this.houseHold_details.filter(sal=>sal.household_expense_id==expenseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedHouseholdPage,{'pdDetails':this.pdDetails,'expense':salesData}); \n \n }\n editHouseExpenseAllDetails(AllExpenseData)\n {\n this.navCtrl.push(PdQuestionAssessedHouseholdPage,{'pdDetails':this.pdDetails,'expense':AllExpenseData}); \n }\n\n /**\n * Income Details\n */\n AddIncomeForm()\n {\n this.navCtrl.push(PdQuestionAssessedBusinessIncomePage,{'pdDetails':this.pdDetails,'income':null}); \n \n }\n\n editIncomeDetails(expenseCal)\n {\n let salesData = this.busissnessIncome.filter(sal=>sal.pd_business_income_id==expenseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedBusinessIncomePage,{'pdDetails':this.pdDetails,'income':salesData}); \n \n }\n editIncomeAllDetails(AllexpenseData)\n {\n this.navCtrl.push(PdQuestionAssessedBusinessIncomePage,{'pdDetails':this.pdDetails,'income':AllexpenseData}); \n }\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-info/pd-question-assessed-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {ConstantsProvider} from '../../../providers/constants/constants';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n/**\n * Generated class for the PdQuestionAssessedSalesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-sales',\n templateUrl: 'pd-question-assessed-sales.html',\n})\nexport class PdQuestionAssessedSalesPage {\n\n grossprofitCalc: any;\n salesData: any =[];\n annual: any=[];\n grandTotal: any;\n UOM: any;\n m_freqOfPurchase: any;\n assessedForm: FormGroup;\n users: any;\n FormId: any;\n pdDetails: any;\n annualSaleAmtInwords: any=[];\n marginAmtInwords: any=[];\n marginFinalAmtInwords:any =[];\n ratePerUnitAmtInwords: any=[];\n margin_calculation_status:any=[]\n check_type:any=[{'type_id':\"1\",'type_name':'Quantity and Rate Information'},{'type_id':\"2\",'type_name':'Value Information'}]\n product_and_services: any=[];\n complete_status: boolean = false;\n UOMData:any=[]\n protected _onDestroy = new Subject();\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public fb:FormBuilder,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n //this.grossprofitCalc = this.navParams.get('grossprofit');\n this.margin_calculation_status=this.navParams.get('margin_calculation_status');\n this.users = this.aws.getlocale();\n this.assessedForm = this.fb.group(\n {\n \n salesCalItemwise:this.fb.array([]),\n });\n this.salesData = this.navParams.get('sales');\n if(this.salesData!=null)\n {\n this.getSalesItemData(this.salesData);\n }else\n {\n this.addSalesCal();\n }\n // this.addSalesCal();\n this.getdropList();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedSalesPage');\n }\n\n getdropList()\n {\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n this.qustCat.getcommondrop('UOM').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.UOM = res['records'].filter(uom=>uom.isactive==1);\n this.UOMData=this.UOM.slice();\n }\n });\n\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(res=>{\n if(res.dataStatus == true){\n let datas=res.records\n let api=Object.keys(datas.type_of_activity).map(function(key){\n return datas.type_of_activity[key];\n })\n if(api.length>0){\n api.forEach(val=>{\n if(val.type_of_activity_id == 2){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 3){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 4){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 5){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n })\n }\n console.log(\"before\",this.product_and_services)\n this.product_and_services = [].concat.apply([], this.product_and_services);\n console.log(\"After\",this.product_and_services)\n }\n })\n }\n\n createSalesCal()\n {\n return this.fb.group(\n {\n sci_id:[null],\n \n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n sales_item:[null,Validators.compose([Validators.required])],\n other_sales_item:[null],\n sales_qty:[null,Validators.compose([Validators.required])],\n sales_type:[\"1\"],\n fk_uom_id:[null,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[null],\n rate_per_unit:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_sale_value:[null],\n margin_per:[null],\n margin_per_uom:[null],\n margin_final_value:[null],\n comments:[null]\n });\n }\n\n addSalesCal()\n {\n if(this.assessedForm.valid){\n const control = this.assessedForm.get('salesCalItemwise') as FormArray;\n control.push(this.createSalesCal());\n }else\n {\n this.toast.pdTriggerappmessage('Enter the all fields');\n }\n }\n \n removeSalesCal(i,item)\n {\n console.log(\"value\",item)\n this.annual.splice(i,1);\n \n // this.annual[i].spl\n this.grandTotal = this.annual.reduce((a,b)=> a+b,0); \n console.log(this.grandTotal);\n console.log(\"pd\",this.pdDetails);\n let deleteRecords:any;\n if(item.sci_id !=null && item.fk_pd_id !=null){\n deleteRecords=[{\n sci_id:item.sci_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeSalesCalculatedByItemwise',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n const control = this.assessedForm.get('salesCalItemwise') as FormArray;\n if(control.length==1)\n {\n control.removeAt(i);\n this.addSalesCal(); \n } else{\n control.removeAt(i);\n }\n }\n /**\n * frequency Type \n * 1.Weekly no need\n * 2.Daily 250\n * 3.Yearly \n * 4.Hourly no need\n * 5.Monthly 12\n * 6.none\n * 7.none\n * 8.none\n */\n salecalculat(indexVal,values)\n {\n // console.log(\"Det\",details);\n // let frequencyId = details.value.fk_frequency_id;\n // let salesQty = details.value.sales_qty;\n // let UOM = details.value.rate_per_unit;\n // // console.log(frequencyId,salesQty,UOM,index);\n // // console.log(frequencyId);\n // let annual\n // if(salesQty!=null && UOM!=null){\n // if(frequencyId==1)\n // {\n\n // }else if(frequencyId==2)\n // {\n // annual = (salesQty*UOM*250);\n // this.annual[index] = annual;\n // details.controls['annual_sale_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (salesQty*UOM);\n // this.annual[index] = annual;\n // details.controls['annual_sale_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n\n // }else if(frequencyId==5)\n // {\n // annual = (salesQty*UOM*12);\n // this.annual[index] = annual;\n // details.controls['annual_sale_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n\n // }else if(frequencyId==7)\n // {\n\n // }else if(frequencyId==8)\n // {\n\n // }else\n // {\n\n // }\n // this.grandTotal = this.annual.reduce((a,b)=> a+b,0); \n // }else\n // {\n // // this.toast.pdTriggerappmessage('Enter the Sales Quantity and UOM');\n // }\n \n \n \n \n // console.log(this.annual);\n\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n if(values.rate_per_unit!=''&& values.rate_per_unit != null ){\n console.log(\"Rate Per value\",values.rate_per_unit);\n this.inWords(values.rate_per_unit,indexVal,4)\n }\n \n if(values.sales_qty!='' && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.fk_frequency_id != null) {\n console.log(\"Frequency\",values.fk_frequency_id);\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n let AnnualSalesValue = parseInt(values.sales_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor)\n control.controls[indexVal].controls['annual_sale_value'].setValue(parseInt(values.sales_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor));\n this.inWords(AnnualSalesValue,indexVal,1)\n \n }\n else {\n control.controls[indexVal].controls['annual_sale_value'].setValue('');\n }\n if(this.margin_calculation_status===true) {\n values.margin_per_uom=='' && values.margin_per!='' ? this.salesMarginPerCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]): values.margin_per_uom!='' && values.margin_per=='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) : values.margin_per_uom!='' && values.margin_per!='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) :this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]);\n }\n }\n salesCalculation(indexVal: number,values: any): void {\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n if(values.sales_type==\"1\" && values.sales_qty!='' && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.fk_frequency_id != null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_sale_value'].setValue((parseFloat(values.sales_qty) * parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.sales_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,1)\n }\n else if(values.sales_type==\"2\" && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.fk_frequency_id != null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_sale_value'].setValue((parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,1)\n }\n else {\n control.controls[indexVal].controls['annual_sale_value'].setValue('');\n }\n if(this.margin_calculation_status===true) {\n values.margin_per_uom=='' && values.margin_per!='' ? this.salesMarginPerCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]): values.margin_per_uom!='' && values.margin_per=='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) : values.margin_per_uom!='' && values.margin_per!='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) :this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]);\n }\n }\n \n salesMarginPerCalculation(indexVal: number,values: any): void {\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n control.controls[indexVal].controls['margin_per_uom'].setValue('');\n if(values.margin_per!='' && values.annual_sale_value!='' && values.margin_per!=null && values.annual_sale_value!=null) {\n control.controls[indexVal].controls['margin_final_value'].setValue((parseFloat(values.annual_sale_value) * (parseFloat(values.margin_per)/100)).toFixed(2));\n this.inWords(parseInt(values.annual_sale_value) * (parseInt(values.margin_per)/100),indexVal,3)\n }\n else {\n control.controls[indexVal].controls['margin_final_value'].setValue('');\n }\n }\n salesMarginAmtCalculation(indexVal: number,values: any): void {\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n control.controls[indexVal].controls['margin_per'].setValue('');\n \n if(values.sales_type==\"1\" && values.margin_per_uom!='' && values.margin_per_uom !=null && values.sales_qty!='' && values.sales_qty!=null && values.fk_frequency_id!='' && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n let Type1CalculatedValue = parseFloat(values.sales_qty) * parseFloat(values.margin_per_uom) * parseFloat(filterFrequencyValue[0].mutiple_factor);\n control.controls[indexVal].controls['margin_final_value'].setValue(Type1CalculatedValue.toFixed(2));\n this.inWords(Type1CalculatedValue.toFixed(2),indexVal,3)\n }\n else if(values.sales_type==\"2\" && values.margin_per_uom!='' && values.margin_per_uom!=null && values.rate_per_unit!='' && values.rate_per_unit!=null) {\n let Type2CalculatedValue = parseFloat(values.rate_per_unit) * parseFloat(values.margin_per_uom);\n control.controls[indexVal].controls['margin_final_value'].setValue(Type2CalculatedValue.toFixed(2));\n this.inWords(Type2CalculatedValue.toFixed(2),indexVal,3)\n }\n else {\n control.controls[indexVal].controls['margin_final_value'].setValue('');\n }\n }\n /*OLD NOT USED CALCULATION*/\n getSalesCalc(indexVal,values)\n {\n // // console.log(details);\n // let margin_per = details.value.margin_per;\n // let margin_amount = details.value.margin_per_uom;\n // let annual_sale_value = details.value.annual_sale_value;\n // let sales_qty = details.value.sales_qty;\n // // console.log(sales_qty,margin_amount);\n // let value:any = '';\n // if(margin_per !=null || margin_amount !=null){\n // if(margin_per !=null)\n // {\n // value = +annual_sale_value * (+margin_per/100);\n // }else\n // {\n // console.log('else');\n // value = +sales_qty* +margin_amount;\n // }\n // console.log(value);\n // details.controls['margin_final_value'].setValue(value);\n // }\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n control.controls[indexVal].controls['margin_per_uom'].setValue('');\n if(values.margin_per!='' && values.annual_sale_value!='' && values.margin_per!=null && values.annual_sale_value!=null) {\n control.controls[indexVal].controls['margin_final_value'].setValue(parseInt(values.annual_sale_value) * (parseInt(values.margin_per)/100));\n this.inWords(parseInt(values.annual_sale_value) * (parseInt(values.margin_per)/100),indexVal,3)\n }\n else {\n control.controls[indexVal].controls['margin_final_value'].setValue('');\n }\n }\n \n inWords(value,inx,flag){\n switch(flag){\n case 1 : \n this.annualSaleAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n case 2 : \n this.marginAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n case 3 : \n this.marginFinalAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n case 4 : \n console.log(\"Rate\",value);\n this.ratePerUnitAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n default:break;}\n }\n saveData(answerData)\n {\n \n if(this.assessedForm.valid){\n answerData.salesCalItemwise.forEach(parVal=>{\n delete parVal.uomSearch\n });\n\n let records = {'records':answerData.salesCalItemwise};\n console.log(records);\n this.qustCat.saveassessedForms('saveAssessedIncomeSalesCalculatedByItemwise',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }\nelse{\n console.log(answerData);\n\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields\")\n}\n}\n getSalesItemData(salesData)\n {\n console.log(salesData);\n const control = this.assessedForm.get('salesCalItemwise') as FormArray;\n\n salesData.forEach((sale,index)=>{\n \n this.annual[index] = sale.annual_sale_value\n control.push(this.createSaleswithData(sale));\n if(sale.rate_per_unit != null){\n this.ratePerUnitAmtInwords[index]=this.cons.convertNumberToWords(sale.rate_per_unit)\n }\n if(sale.annual_sale_value != null){\n this.annualSaleAmtInwords[index]=this.cons.convertNumberToWords(sale.annual_sale_value)\n }\n if(sale.margin_per_uom != null){\n this.marginAmtInwords[index]=this.cons.convertNumberToWords(sale.margin_per_uom)\n }\n if(sale.margin_final_value != null){\n this.marginFinalAmtInwords[index]=this.cons.convertNumberToWords(sale.margin_final_value)\n }\n this.changeOptions(index,sale.sales_type)\n })\n // this.assessedForm.controls['salesCalItemwise'].setValue(salesData);\n // console.log(control);\n this.grandTotal = this.annual.reduce((a,b)=> a+b,0); \n }\n changeOptions(indexVal: any,event: any): void{\n console.log(\"ai\")\n let control: any = this.assessedForm.controls['salesCalItemwise'];\n if(event.value==\"1\"){\n control.controls[indexVal].controls['fk_frequency_id'].setValue(\"\");\n control.controls[indexVal].controls['fk_frequency_id'].clearValidators();\n control.controls[indexVal].controls['fk_frequency_id'].updateValueAndValidity();\n\n control.controls[indexVal].controls['annual_sale_value'].setValue(\"\");\n control.controls[indexVal].controls['annual_sale_value'].clearValidators();\n control.controls[indexVal].controls['annual_sale_value'].updateValueAndValidity();\n\n control.controls[indexVal].controls['rate_per_unit'].setValue(\"\");\n control.controls[indexVal].controls['rate_per_unit'].clearValidators();\n control.controls[indexVal].controls['rate_per_unit'].updateValueAndValidity();\n\n control.controls[indexVal].controls['sales_qty'].setValidators([Validators.required]);\n control.controls[indexVal].controls['sales_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValidators([Validators.required]);\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n this.salesCalculation(indexVal,control.controls[indexVal].value);\n }\n else if(event.value==\"2\"){\n control.controls[indexVal].controls['sales_qty'].setValue(\"\");\n control.controls[indexVal].controls['sales_qty'].clearValidators();\n control.controls[indexVal].controls['sales_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValue(\"\");\n control.controls[indexVal].controls['fk_uom_id'].clearValidators();\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n \n control.controls[indexVal].controls['margin_per_uom'].setValue(\"\");\n \n this.salesCalculation(indexVal,control.controls[indexVal].value);\n }\n }\n \n\n\n createSaleswithData(data)\n {\n return this.fb.group(\n {\n sci_id:[data.sci_id],\n company_id:[this.pdDetails.company_id],\n fk_pd_id:[this.pdDetails.pd_id],\n sales_item:[data.sales_item,Validators.compose([Validators.required])],\n other_sales_item:[data.other_sales_item],\n sales_type:[data.sales_type,Validators.compose([Validators.required])],\n sales_qty:[data.sales_qty,Validators.compose([Validators.required])],\n fk_uom_id:[data.fk_uom_id,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[data.uom_other],\n rate_per_unit:[data.rate_per_unit,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_sale_value:[data.annual_sale_value],\n margin_per:[data.margin_per],\n margin_per_uom:[data.margin_per_uom],\n margin_final_value:[data.margin_final_value],\n comments:[data.comments]\n });\n }\n\n searchUOM(control:any,i:number){ \n control.controls['uomSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n let val = control.controls['uomSearch'].value;\n if (!this.UOM) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n \n this.UOMData=this.UOM.slice()\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.UOMData=this.UOM.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-sales/pd-question-assessed-sales.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport {DatePipe} from '@angular/common'\n\n/**\n * Generated class for the PdQuestionAssessedDailySalesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-daily-sales',\n templateUrl: 'pd-question-assessed-daily-sales.html',\n})\nexport class PdQuestionAssessedDailySalesPage {\n pipe = new DatePipe('en-US');\n\n currentDate: string;\n grossprofitCalc: any;\n salesDaily: any;\n users: any;\n FormId: any;\n pdDetails: any;\n salesDailyForm: FormGroup;\n margin_calculation_status:any\n Value: any=[];\n marginAmtInwords: any=[];\n frequencyData: any=[];\n freqAmtInwords: any=[];\n check_type:any=[{'type_id':\"1\",'type_name':'Date Information'},{'type_id':\"2\",'type_name':'Frequency Information'}]\n product_and_services: any=[];\n maxDate:any;\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams, public aws: AwsServiceProvider, public qustCat: QuestionCategoryProvider, public toast: ToastProvider, public fb: FormBuilder,public constant:ConstantsProvider) {\n // this.maxDate=new Date()\n var today=new Date\n console.log(\"today\",today)\n let date=today.getDate()< 10 ? (\"0\"+(today.getDate())) : today.getDate()\n let month=today.getMonth() < 10 ? (\"0\"+(today.getMonth()+1)) : (today.getMonth()+1)\n this.maxDate = today.getFullYear() + '-' + month + '-' + date;\n console.log(\"max\",this.maxDate)\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n this.salesDaily = this.navParams.get('salesDaily');\n // this.grossprofitCalc = this.navParams.get('grossprofit');\n this.margin_calculation_status=this.navParams.get('margin_calculation_status');\n this.users = this.aws.getlocale();\n this.currentDate = constant.getcurrentDate().replace(\"T00:00\",'');\n \n this.salesDailyForm = this.fb.group(\n {\n sales_product: this.fb.array([]),\n })\n if (this.salesDaily != null) {\n this.getDailySalesData(this.salesDaily);\n } else {\n this.adddailySalaesProduct();\n\n }\n this.getDropDown()\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedDailySalesPage');\n }\n\n getDropDown(){\n this.qustCat.getcommondrop('FREQUENCY').subscribe(data=>{\n this.frequencyData=data['records'].filter(val=>val.isactive == 1)\n })\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(res=>{\n if(res.dataStatus == true){\n let datas=res.records\n let api=Object.keys(datas.type_of_activity).map(function(key){\n return datas.type_of_activity[key];\n })\n if(api.length>0){\n api.forEach(val=>{\n if(val.type_of_activity_id == 2){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 3){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 4){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 5){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n })\n }\n console.log(\"before\",this.product_and_services)\n this.product_and_services = [].concat.apply([], this.product_and_services);\n console.log(\"After\",this.product_and_services)\n }\n })\n }\n // change options for either Date/Frequency Information\nchangeOptions(indexVal: any,event: any): void{\n console.log(\"event\",event)\n let control: any = this.salesDailyForm.controls['sales_product'];\n console.log(\"control\",control)\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n if(event==\"1\"){\n for (let i = 0; i < innercontrol.value.length-1; i++) {\n innercontrol.removeAt(i);\n }\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].setValidators([Validators.required]);\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].clearValidators();\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].updateValueAndValidity();\n\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].clearValidators();\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].updateValueAndValidity();\n\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n\n // control.controls[indexVal].controls['comments'].setValue(\"\");\n // control.controls[indexVal].controls['comments'].clearValidators();\n //control.controls[indexVal].controls['comments'].updateValueAndValidity();\n }\n else if(event==\"2\"){\n for (let i = 0; i < innercontrol.value.length-1; i++) {\n innercontrol.removeAt(i);\n }\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].clearValidators();\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].setValidators([Validators.required]);\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].setValidators([Validators.required]);\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n\n control.controls[indexVal].controls['comments'].setValue(\"\");\n // control.controls[indexVal].controls['comments'].setValidators([Validators.required]);\n // control.controls[indexVal].controls['comments'].updateValueAndValidity();\n\n }\n control.controls[indexVal].controls['margin_per'].setValue(\"\");\n control.controls[indexVal].controls['margin_value'].setValue(\"\");\n\n }\n createdailysalesProduct() {\n return this.fb.group(\n {\n sim_id: [null],\n sales_item: [null, Validators.compose([Validators.required])],\n other_sales_item:[null],\n sales_type:[\"1\"],\n child: this.fb.array([]),\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n margin_per: [null],\n margin_value: [null],\n comments:[null],\n fk_createdby: [this.users],\n isactive: [true],\n });\n }\n createdailyChildSaleProduct() {\n return this.fb.group({\n simc_id: [null],\n fk_sim_id: [null],\n sales_date: [null],\n sales_value: [null],\n fk_frequency_id:[null],\n frequency_value:[null],\n isactive: [true],\n })\n }\n temparr = [];\n tempdate = [];\n getSalesCalc(subchild,child,key) {\n \n let saledate: any = new Date(subchild.value.sales_date).getMonth() + 1;\n let totalitemmargin = child.value.margin_per;\n \n if (totalitemmargin != null && subchild.value.sales_value !=null) {\n let loopAccess = false;\n let loopindex = 0;\n if (this.tempdate.length != 0) {\n for (var i = 0; i < this.tempdate.length; i++) {\n\n if (this.tempdate[i].month == saledate) {\n loopAccess = true;\n loopindex = i;\n }\n }\n\n if (loopAccess) {\n\n \n this.tempdate[loopindex].value = this.tempdate[loopindex].value + subchild.value.sales_value;\n this.temparr.push(subchild.value.sales_value);\n loopAccess = false;\n loopindex = 0;\n \n } else {\n \n this.tempdate.push({ 'month': saledate, 'value': subchild.value.sales_value }); this.temparr.push(subchild.value.sales_value);\n }\n\n\n } else {\n \n this.tempdate.push({ 'month': saledate, 'value': subchild.value.sales_value });\n this.temparr.push(subchild.value.sales_value);\n }\n\n let totalMonth = 12 / this.tempdate.length;\n \n let tempgrandTotal = this.tempdate.reduce((a, b) => (+a + +b.value), 0);\n \n // let value = tempgrandTotal * (totalitemmargin / 100);\n let value = tempgrandTotal*totalMonth ;\n \n let grandValue = value * (totalitemmargin / 100);\n child.controls['margin_value'].setValue(grandValue);\n \n }\n \n }\n salesCalculation(indexVal: number,values: any): void {\n console.log(indexVal,values)\n console.log(\"Margin\",this.margin_calculation_status);\n if(this.margin_calculation_status===true && values.sales_type==\"1\"){\n console.log(\"value == 1\")\n let control:any = this.salesDailyForm.controls['sales_product'];\n if(values.child.length>0 && values.margin_per!='' && values.margin_per!=null){\n // let transformData = values.child.filter(val=>val.sales_date!='' && val.sales_date!=null && val.sales_date!=undefined && val.sales_value!='' && val.isactive===true).map(mval=>{\n let transformData = values.child.filter(val=>val.sales_date!='' && val.sales_date!=null && val.sales_date!=undefined && val.sales_value!='' && val.isactive==true).map(mval=>{\n mval.custum_date = this.pipe.transform(mval.sales_date, 'yyyy-MM');\n return mval;\n });\n console.log(\"transform\",transformData)\n if(transformData.length>0) {\n let getUniqueMonthCounts = transformData.map(val=>val.custum_date)\n .filter((fVal,fIndex,fArray)=>{\n return fIndex === fArray.indexOf(fVal);\n });\n let getTotalValueCounts = transformData.map(val=>val.sales_value)\n .reduce((sum, curr) => parseFloat(sum) + parseFloat(curr));\n console.log(\"value\",(parseFloat(getTotalValueCounts) * (parseFloat(values.margin_per)/100) * (12 / parseFloat(getUniqueMonthCounts.length))).toFixed(2))\n console.log(control.controls[indexVal])\n control.controls[indexVal].controls['margin_value'].setValue((parseFloat(getTotalValueCounts) * (parseFloat(values.margin_per)/100) * (12 / parseFloat(getUniqueMonthCounts.length))).toFixed(2));\n this.inWords(parseInt(getTotalValueCounts) * (parseInt(values.margin_per)/100) * (12 / parseInt(getUniqueMonthCounts.length)),indexVal,2)\n }\n else{\n console.log(\"else 1\")\n control.controls[indexVal].controls['margin_value'].setValue(\"\");\n \n }\n console.log(\"else 1\")\n }\n else {\n console.log(\"else 2\")\n control.controls[indexVal].controls['margin_value'].setValue('');\n \n }\n }\n else if(this.margin_calculation_status===true && values.sales_type==\"2\"){\n let control:any = this.salesDailyForm.controls['sales_product'];\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n \n if(values.child[values.child.length-1].fk_frequency_id!='' && values.child[values.child.length-1].frequency_value!='' && values.child[values.child.length-1].fk_frequency_id!=null && values.child[values.child.length-1].frequency_value!=null){\n let filterFrequencyValue: any = this.frequencyData.filter(val =>val.frequency_id==values.child[values.child.length-1].fk_frequency_id);\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue((parseFloat(filterFrequencyValue[0].mutiple_factor) * parseFloat(values.child[values.child.length-1].frequency_value)).toFixed(2));\n this.inWords(parseInt(filterFrequencyValue[0].mutiple_factor) * parseInt(values.child[values.child.length-1].frequency_value),innercontrol.value.length-1,1)\n \n let getTotalValueCounts =parseFloat(filterFrequencyValue[0].mutiple_factor) * parseFloat(values.child[values.child.length-1].frequency_value)\n values.margin_per!='' ? control.controls[indexVal].controls['margin_value'].setValue( (getTotalValueCounts * (parseFloat(values.margin_per)/100)).toFixed(2)) : '';\n values.margin_per!='' ? this.inWords(getTotalValueCounts * (parseInt(values.margin_per)/100),indexVal,2) : ''\n }\n else {\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n control.controls[indexVal].controls['margin_value'].setValue(\"\");\n \n }\n }\n else if(this.margin_calculation_status===false && values.sales_type==\"2\"){\n let control:any = this.salesDailyForm.controls['sales_product'];\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n \n if(values.child[values.child.length-1].fk_frequency_id!='' && values.child[values.child.length-1].frequency_value!='' && values.child[values.child.length-1].fk_frequency_id!=null && values.child[values.child.length-1].frequency_value!=null){\n let filterFrequencyValue: any = this.frequencyData.filter(val =>val.frequency_id==values.child[values.child.length-1].fk_frequency_id);\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue((parseFloat(filterFrequencyValue[0].mutiple_factor) * parseFloat(values.child[values.child.length-1].frequency_value)).toFixed(2));\n this.inWords(parseInt(filterFrequencyValue[0].mutiple_factor) * parseInt(values.child[values.child.length-1].frequency_value),innercontrol.value.length-1,1)\n }\n else {\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n }\n }\n \n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.constant.convertNumberToWords(e);\n break;\n case 2 : \n this.marginAmtInwords[c] = this.constant.convertNumberToWords(e);\n break;\n case 3:\n this.freqAmtInwords[c]=this.constant.convertNumberToWords(e)\n default : break;\n }\n }\n adddailySalaesProduct() {\n this.tempdate = [];\n if (this.salesDailyForm.valid) {\n const control = this.salesDailyForm.get('sales_product') as FormArray;\n control.push(this.createdailysalesProduct());\n \n this.adddailyChildSaleProduct(control.length - 1);\n }\n }\n adddailyChildSaleProduct(index) {\n // if(this.salesDailyForm.valid){\n const control = (this.salesDailyForm.get('sales_product')).at(index).get('child') as FormArray;\n\n control.push(this.createdailyChildSaleProduct());\n // }\n }\n\n deletedailySalesProduct(index,item) {\n console.log(\"fk_pd_id\",item);\n this.tempdate.slice(index,1);\n let deleteRecords:any;\n \n if(item.fk_pd_id !=null){\n deleteRecords=[{\n sim_id:item.sim_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeMonthwiseItems',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n \n const control = (this.salesDailyForm.controls['sales_product']) as FormArray;\n if (control.length == 1) {\n this.salesDailyForm.controls['sales_product'].reset();\n } else {\n control.removeAt(index);\n }\n }\n\n deletedailyChildSaleProduct(saleIndex, saleChildIndex,childVal) {\n let control = this.salesDailyForm.controls['sales_product'];\n control=control.controls[saleIndex].get('child') as FormArray\n if(childVal == '' || childVal == null){\n control.removeAt(saleChildIndex)\n }\n else{\n console.log(\"control\",control.controls[saleChildIndex])\n control.controls[saleChildIndex].get('isactive').setValue(false);\n }\n\n // this.tempdate = [];\n // const control = (this.salesDailyForm.controls['sales_product']).at(saleIndex).get('child') as FormArray;\n // if(control.length==1)\n // {\n // control.removeAt(saleChildIndex);\n // this.adddailyChildSaleProduct(saleIndex); \n // }else{\n // control.removeAt(saleChildIndex);\n // }\n }\n saveData(answerData) {\n answerData.sales_product.forEach(parVal=>{\n parVal.child.forEach(childVal=>{\n if(childVal['custum_date']){\n delete childVal['custum_date'];\n }\n if(childVal['sales_date'])\n childVal['sales_date']=this.pipe.transform(childVal['sales_date'], 'yyyy-MM-dd');\n });\n });\n if (this.salesDailyForm.valid) {\n let records = { 'records': answerData.sales_product };\n console.log(\"answer Data\",records)\n \n this.qustCat.saveassessedForms('saveAssessedIncomeMonthwiseItems', records).subscribe(res => {\n if (res['dataStatus'] == true) {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n });\n }\n else{\n console.log(\"pd\",this.salesDailyForm);\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields\")\n }\n\n\n }\n getDailySalesData(dailySalesData) {\n console.log(\"daily sale\",dailySalesData);\n \n const control = this.salesDailyForm.get('sales_product') as FormArray;\n let control1: any = this.salesDailyForm.controls['sales_product'];\n let salesChildControl;\n let salesChildControlarr = [];\n dailySalesData.forEach((val, index) => {\n \n if(val.margin_per != null && val.margin_per != ''){\n console.log(\"c\",parseInt(val.margin_per).toFixed(2))\n val.margin_per=parseInt(val.margin_per).toFixed(2)\n }\n if(val.margin_value != null && val.margin_value != ''){\n val.margin_value=parseInt(val.margin_value).toFixed(2)\n }\n control.push(this.dailySalesWithData(val));\n if(val.margin_value != null){\n this.marginAmtInwords[index]=this.constant.convertNumberToWords(val.margin_value)\n }\n salesChildControl = (this.salesDailyForm.controls['sales_product']).at(index).get('child') as FormArray;\n\n salesChildControlarr[index] = Object.keys(val['items']).map(key => val['items'][key]);\n\n salesChildControlarr[index].forEach((vals, i) => {\n vals.forEach((item, key) => {\n console.log(\"item\",item,'key',key)\n if(val.sales_type != 2){\n let saleDate = new Date(item.sales_date);\n let date=saleDate.getDate()< 10 ? (\"0\"+(saleDate.getDate())) : saleDate.getDate()\n let month=saleDate.getMonth() < 10 ? (\"0\"+(saleDate.getMonth()+1)) : (saleDate.getMonth()+1)\n\n // item.sales_date = saleDate.getFullYear() + '-' + (\"0\" + (saleDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + (saleDate.getDay()+1 )).slice(-2);\n console.log(\"sale Day\",saleDate.getDay())\n item.sales_date = saleDate.getFullYear() + '-' + month+ '-' + date;\n }\n \n //console.log(\"sale data\",new Date(this.pipe.transform(item.sales_date, 'dd-MM-yyyy')))\n console.log(\"itme\",val)\n console.log(\"sale\",item.sales_date)\n salesChildControl.push(this.dailySalesChildWithData(item, val.sim_id,val.sales_type));\n if(item.sales_value !=null){\n this.Value[i]=this.constant.convertNumberToWords(item.sales_value)\n }\n if(item.frequency_value != null){\n this.freqAmtInwords[i]=this.constant.convertNumberToWords(item.frequency_value);\n }\n })\n \n\n\n });\n // this.changeOptions(index,val.sales_type)\n if(val.sales_type==\"2\"){\n salesChildControl.controls[salesChildControl.value.length-1].controls['sales_date'].setValue(\"\");\n salesChildControl.controls[salesChildControl.value.length-1].controls['sales_date'].clearValidators();\n salesChildControl.controls[salesChildControl.value.length-1].controls['sales_date'].updateValueAndValidity();\n \n salesChildControl.controls[salesChildControl.value.length-1].controls['fk_frequency_id'].setValidators([Validators.required]);\n salesChildControl.controls[salesChildControl.value.length-1].controls['fk_frequency_id'].updateValueAndValidity();\n \n salesChildControl.controls[salesChildControl.value.length-1].controls['frequency_value'].setValidators([Validators.required]);\n salesChildControl.controls[salesChildControl.value.length-1].controls['frequency_value'].updateValueAndValidity();\n \n // control1.controls[control.value.length-1].controls['comments'].setValidators([Validators.required]);\n // control1.controls[control.value.length-1].controls['comments'].updateValueAndValidity();\n\n }\n });\n \n console.log(\"aall\",this.salesDailyForm.value)\n }\n\n dailySalesWithData(data) {\n\n return this.fb.group(\n {\n sim_id: [data.sim_id],\n sales_item: [data.sales_item],\n other_sales_item:[data.other_sales_item],\n sales_type:[data.sales_type],\n child: this.fb.array([]),\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n fk_createdby: [this.users],\n isactive: [true],\n margin_per: [data.margin_per == null ? '' : data.margin_per],\n margin_value: [data.margin_value == null ? '' :data.margin_value],\n comments:[data.comments]\n })\n }\n dailySalesChildWithData(data, fk_id,salesType) {\n\nconsole.log(\"Sales type\",salesType)\n return this.fb.group(\n {\n simc_id: [data.simc_id],\n fk_sim_id: [fk_id],\n // sales_date: [data.sales_date, Validators.compose([Validators.required])],\n sales_date:[salesType==2 ? '' : data.sales_date],\n // sales_date: [new Date(this.pipe.transform(data.sales_date, 'dd-MM-yyyy')), Validators.compose([Validators.required])],\n sales_value: [data.sales_value],\n fk_frequency_id:[data.fk_frequency_id],\n frequency_value:[data.frequency_value],\n isactive: [true],\n })\n \n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-daily-sales/pd-question-assessed-daily-sales.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n/**\n * Generated class for the PdQuestionAssessedPurchasePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-purchase',\n templateUrl: 'pd-question-assessed-purchase.html',\n})\nexport class PdQuestionAssessedPurchasePage {\n purchaseDetails: any;\n users: any;\n pdDetails: any;\n businessExpenses: any;\n UOM: any;\n m_freqOfPurchase: any;\n annual: any = [];\n grandpurchaseTotal: any;\n rawMaterialForm:FormGroup;\n RateOfPurchase: any=[];\n AnnualPurchase: any=[];\n productListData:any=[];\n UOMData:any=[]\n check_type:any=[{'type_id':\"1\",'type_name':'Quantity and Rate Information'},{'type_id':\"2\",'type_name':'Value Information'}]\n complete_status: boolean = false;\n \n protected _onDestroy = new Subject();\n\n constructor(public navCtrl: NavController, public fb:FormBuilder,public navParams: NavParams,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public aws:AwsServiceProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.purchaseDetails = this.navParams.get('purchase');\n console.log(\"purchase\",this.purchaseDetails)\n console.log(\"pd\",this.pdDetails);\n this.users = this.aws.getlocale();\n this.rawMaterialForm = this.fb.group(\n {\n purchase:this.fb.array([]),\n });\n \n if(this.purchaseDetails!=null)\n {\n this.getpurchaseDetails(this.purchaseDetails);\n }else\n {\n this.addPurchaseDetails();\n }\n this.getdropList();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedPurchasePage');\n }\n\n\n createPurchaseDetails()\n {\n return this.fb.group(\n {\n purchase_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n purchase_item:[null,Validators.compose([Validators.required])],\n other_purchase_item:[null],\n purchase_type:['1'],\n purchase_qty:[null,Validators.compose([Validators.required])],\n fk_uom_id:[null,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[null],\n rate_per_unit:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_purchase_value:[null,Validators.compose([Validators.required])],\n comments:[null],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n\n getdropList()\n {\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_freqOfPurchase = res['records'].filter(fre=>fre.isactive==1);\n }\n })\n this.qustCat.getcommondrop('UOM').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.UOM = res['records'].filter(uom=>uom.isactive==1);\n this.UOMData=this.UOM.slice();\n }\n });\n this.qustCat.getcommondrop('BUSINESSEXPENSES').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.businessExpenses = res['records'].filter(bus=>bus.isactive==1);\n }\n })\n this.qustCat.stockFormAccess(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(data=>{\n if (data.dataStatus){\n let datas = data.record;\n \n let type2 = datas.from_business.filter(data => data.type_of_activity_id == 2); \n if(type2[0].hasOwnProperty(\"products\")){\n // this.productListData.push(type2[0].products);\n }\n let type3 = datas.from_business.filter(data => data.type_of_activity_id == 3);\n if(type3[0].hasOwnProperty(\"products\")){\n this.productListData.push(type3[0].products);\n }\n let type4 = datas.from_business.filter(data => data.type_of_activity_id == 4);\n if(type4[0].hasOwnProperty(\"products\")){\n this.productListData.push(type4[0].products);\n }\n if(datas.from_supplier.hasOwnProperty(\"raw_material\")){\n this.productListData.push(datas.from_supplier.raw_material);\n }\n this.productListData = [].concat.apply([], this.productListData);\n \n }\n })\n }\n addPurchaseDetails()\n {\n const control = this.rawMaterialForm.controls['purchase'] as FormArray\n control.push(this.createPurchaseDetails());\n }\n\n deletePurchaseDetails(i,item)\n {\n this.annual.splice(i,1);\n \n // this.annual[i].spl\n this.grandpurchaseTotal = this.annual.reduce((a,b)=> +a + +b,0); \n let deleteRecords:any; \n if(item.fk_pd_id !=null){\n deleteRecords=[{\n purchase_id:item.purchase_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomePurchaseDetails',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n \n const control = this.rawMaterialForm.controls['purchase'] as FormArray\n if(control.length==1){\n control.reset();\n }\n else{\n control.removeAt(i); \n } \n }\n\n\n purchaseCalculation(indexVal,values)\n {\n let control:any = this.rawMaterialForm.controls['purchase'];\n if(values.rate_per_unit != null){\n if(values.rate_per_unit != ''){\n this.inWords(values.rate_per_unit,indexVal,1);\n }\n }\n\n if(values.purchase_type == \"1\" && values.purchase_qty!='' && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.purchase_qty!=null && values.rate_per_unit!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_purchase_value'].setValue((parseFloat(values.purchase_qty) * parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.purchase_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n\n }\n else if(values.purchase_type==\"2\" && values.rate_per_unit !='' && values.rate_per_unit !=null && values.fk_frequency_id != '' && values.fk_frequency_id != null ){\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_purchase_value'].setValue((parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n }\n else {\n control.controls[indexVal].controls['annual_purchase_value'].setValue(null);\n }\n // console.log(this.grandpurchaseTotal);\n // console.log(details,index);\n // let frequencyId = details.value.fk_frequency_id;\n // let purchaseQty = details.value.purchase_qty;\n // let UOM = details.value.rate_per_unit;\n // console.log(frequencyId,purchaseQty,UOM,index);\n // // console.log(frequencyId);\n // let annual\n // if(purchaseQty!=null && UOM!=null){\n // if(frequencyId==1)\n // {\n\n // }else if(frequencyId==2)\n // {\n // annual = (purchaseQty*UOM*250);\n // this.annual[index] = annual;\n // details.controls['annual_purchase_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (purchaseQty*UOM);\n // this.annual[index] = annual;\n // details.controls['annual_purchase_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n\n // }else if(frequencyId==5)\n // {\n // annual = (purchaseQty*UOM*12);\n // this.annual[index] = annual;\n // details.controls['annual_purchase_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n\n // }else if(frequencyId==7)\n // {\n\n // }else if(frequencyId==8)\n // {\n\n // }else\n // {\n\n // }\n // this.grandpurchaseTotal = this.annual.reduce((a,b)=> +a + +b,0); \n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter the Purchase Quantity and UOM');\n // }\n }\n savepurchaseData(answerData)\n {\n answerData.purchase.forEach(parVal=>{\n delete parVal.uomSearch\n })\n\n if(this.rawMaterialForm.valid){\n \n answerData.purchase.forEach(parVal=>{\n delete parVal.uomSearch\n })\n \n let records = {'records':answerData.purchase};\n console.log('data',records);\n this.qustCat.saveassessedForms('saveAssessedIncomePurchaseDetails',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n // this.getAssessedDetails();\n \n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter All Field');\n }\n }\n\n getpurchaseDetails(purchaseDetails)\n {\n console.log('function in',purchaseDetails);\n \n const control = this.rawMaterialForm.controls['purchase'] as FormArray; \n console.log(control); \n if(purchaseDetails.length ==0)\n {\n console.log('if');\n this.addPurchaseDetails();\n }else{\n console.log('else');\n purchaseDetails.forEach((val,index)=>\n {\n // console.log(index);\n control.push(this.createPurchasewithData(val));\n this.annual[index] = val.annual_purchase_value;\n if(val.rate_per_unit != null){\n this.RateOfPurchase[index]=this.cons.convertNumberToWords(val.rate_per_unit)\n }\n if(val.annual_purchase_value != null){\n this.AnnualPurchase[index]=this.cons.convertNumberToWords(val.annual_purchase_value)\n }\n });\n this.grandpurchaseTotal = this.annual.reduce((a,b)=>(+a + +b),0);\n }\n // console.log(control); \n \n }\n\n createPurchasewithData(data)\n {\n return this.fb.group(\n {\n purchase_id:[data.purchase_id],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n purchase_item:[data.purchase_item,Validators.compose([Validators.required])],\n other_purchase_item:[data.other_purchase_item],\n purchase_type:[data.purchase_type],\n purchase_qty:[data.purchase_qty,Validators.compose([Validators.required])],\n fk_uom_id:[data.fk_uom_id,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[data.uom_other],\n rate_per_unit:[data.rate_per_unit,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_purchase_value:[data.annual_purchase_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n changeOptions(indexVal: any,event: any): void{\n console.log('event',event)\n let control: any = this.rawMaterialForm.controls['purchase'];\n if(event.value==\"1\"){\n control.controls[indexVal].controls['purchase_qty'].setValidators([Validators.required]);\n control.controls[indexVal].controls['purchase_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValidators([Validators.required]);\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n this.purchaseCalculation(indexVal,control.controls[indexVal].value);\n }\n else if(event.value==\"2\"){\n control.controls[indexVal].controls['purchase_qty'].setValue(\"\");\n control.controls[indexVal].controls['purchase_qty'].clearValidators();\n control.controls[indexVal].controls['purchase_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValue(\"\");\n control.controls[indexVal].controls['fk_uom_id'].clearValidators();\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n this.purchaseCalculation(indexVal,control.controls[indexVal].value);\n }\n }\n\n searchUOM(control:any,i:number){ \n control.controls['uomSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n let val = control.controls['uomSearch'].value;\n if (!this.UOM) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n \n this.UOMData=this.UOM.slice()\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.UOMData=this.UOM.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n })\n }\n\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.RateOfPurchase[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualPurchase[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-purchase/pd-question-assessed-purchase.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionAssessedBusinessPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-business',\n templateUrl: 'pd-question-assessed-business.html',\n})\nexport class PdQuestionAssessedBusinessPage {\n m_freqOfPurchase: any;\n expenseDetails: any;\n Value: any=[];\n AnnualExpenses: any=[];\n complete_status: boolean = false;\n grandpurchaseTotal(arg0: any): any {\n throw new Error(\"Method not implemented.\");\n }\n grandExpenseTotal: any=[];\n expenseannual: any=[];\n users: any;\n pdDetails: any;\n BuissnessForm:FormGroup;\n businessExpenses:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.expenseDetails = this.navParams.get('expense');\n this.users = this.aws.getlocale();\n this.BuissnessForm = this.fb.group(\n {\n busExpense:this.fb.array([]),\n });\n\n if(this.expenseDetails!=null)\n {\n this.getBuisnessExpenses(this.expenseDetails);\n }else\n {\n this.addBusinessDetails();\n }\n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('BUSINESSEXPENSES').subscribe(res=>\n {\n if(res['dataStatus']==true){\n \n this.businessExpenses = res['records'].filter(bus=>bus.isactive==1);\n } \n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus'] == true){\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedBusinessPage');\n }\n\n\n createBusinessDetails()\n {\n return this.fb.group(\n {\n pd_expense_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n expense_item_id:[null,Validators.compose([Validators.required])],\n other_expense_item:[null],\n expense_value:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_expenses_value:[null,Validators.compose([Validators.required])],\n comments:[null],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n\n\n businessCalculation(indexVal: number,values: any): void {\n let control:any = this.BuissnessForm.controls['busExpense'];\n if(values.expense_value!='' && values.fk_frequency_id!='' && values.expense_value!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_expenses_value'].setValue((parseFloat(values.expense_value) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.expense_value) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n \n }\n else {\n control.controls[indexVal].controls['annual_expenses_value'].setValue(null);\n }\n }\n \n addBusinessDetails()\n {\n const control = this.BuissnessForm.controls['busExpense'] as FormArray;\n control.push(this.createBusinessDetails());\n }\n\n deleteBuisnessDetails(i,item)\n {\n console.log(\"item\",item);\n this.expenseannual.splice(i,1); \n this.grandExpenseTotal = this.expenseannual.reduce((a,b)=> +a + +b,0); \n \n let deleteRecords:any;\n if(item.fk_pd_id !=null){\n deleteRecords=[{\n pd_expense_id:item.pd_expense_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeBusinessExpenses',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n \n const control = this.BuissnessForm.controls['busExpense'] as FormArray;\n if(control.length==1){\n control.reset();\n }\n else{\n control.removeAt(i); \n } \n }\n\n busExpensecalculat(index,details)\n {\n \n \n let frequencyId = details.value.fk_frequency_id;\n let expenseValue = details.value.expense_value;\n let UOM = details.value.rate_per_unit;\n \n let annual\n if(expenseValue!=null){\n if(frequencyId==1)\n {\n\n }else if(frequencyId==2)\n {\n annual = (expenseValue*250);\n this.expenseannual[index] = annual;\n details.controls['annual_expenses_value'].setValue(annual); \n this.inWords(annual,index,2) \n }else if(frequencyId==3)\n {\n annual = (expenseValue);\n this.expenseannual[index] = annual;\n details.controls['annual_expenses_value'].setValue(annual);\n this.inWords(annual,index,2)\n }else if(frequencyId==4)\n {\n\n }else if(frequencyId==5)\n {\n annual = (expenseValue*12);\n this.expenseannual[index] = annual;\n details.controls['annual_expenses_value'].setValue(annual);\n this.inWords(annual,index,2)\n }else if(frequencyId==6)\n {\n\n }else if(frequencyId==7)\n {\n\n }else if(frequencyId==8)\n {\n\n }else\n {\n\n }\n this.grandExpenseTotal = this.expenseannual.reduce((a,b)=> +a + +b,0); \n }else\n {\n this.toast.pdTriggerappmessage('Enter the Amount and Frequency');\n }\n }\n\n saveBusinessData(answerData)\n {\n \n if(this.BuissnessForm.valid){\n let records = {'records':answerData.busExpense};\n \n this.qustCat.saveassessedForms('saveAssessedIncomeBusinessExpenses',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!'); \n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n \n }\n\n getBuisnessExpenses(expenseDetails)\n {\n if(expenseDetails.length==0)\n {\n this.addBusinessDetails();\n }else\n {\n const control = this.BuissnessForm.controls['busExpense'] as FormArray; \n expenseDetails.forEach((val,index)=>\n {\n this.expenseannual[index] = val.annual_expenses_value;\n control.push(this.createBusinessExpensewithData(val));\n if(val.expense_value != null){\n this.Value[index]=this.cons.convertNumberToWords(val.expense_value)\n this.AnnualExpenses[index]=this.cons.convertNumberToWords(val.annual_expenses_value)\n }\n })\n this.grandExpenseTotal = this.expenseannual.reduce((a,b)=> +a + +b,0); \n }\n }\n\n createBusinessExpensewithData(data)\n {\n return this.fb.group(\n {\n pd_expense_id:[data.pd_expense_id],\n fk_pd_id:[this.pdDetails.pd_id],\n expense_item_id:[data.expense_item_id,Validators.compose([Validators.required])],\n other_expense_item:[data.other_expense_item || ''],\n expense_value:[data.expense_value,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_expenses_value:[data.annual_expenses_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualExpenses[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-business/pd-question-assessed-business.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormArray, FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionAssessedHouseholdPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-household',\n templateUrl: 'pd-question-assessed-household.html',\n})\nexport class PdQuestionAssessedHouseholdPage {\n\n m_freqOfPurchase: any;\n expenseDetails: any;\n houseExpenseDetails: any;\n users: any;\n pdDetails: any;\n houseannual: any =[];\n grandHouseExpenseTotal: any=[];\n houseHoldForm:FormGroup;\n Value: any=[];\n AnnualExpenses: any=[];\n complete_status: boolean = false;\n // nn:Object[][]=[]\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public toast:ToastProvider,public qustCat:QuestionCategoryProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.houseExpenseDetails = this.navParams.get('FormId');\n this.expenseDetails = this.navParams.get('expense');\n this.users = this.aws.getlocale();\n this.houseHoldForm = this.fb.group(\n {\n houseExpense:this.fb.array([]),\n });\n if(this.expenseDetails !=null)\n {\n this.getHouseholdExpense(this.expenseDetails);\n }else\n {\n this.addHouseExpenses();\n }\n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedHouseholdPage');\n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus'] == true){\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n }\n createHouseExpense()\n {\n return this.fb.group(\n {\n household_expense_id:[null],\n fk_pd_id:[this.pdDetails.pd_id] ,\n company_id:[this.pdDetails.company_id],\n\t\t expense_item: [null,Validators.compose([Validators.required])],\n\t\t expense_value: [null,Validators.compose([Validators.required])],\n\t\t fk_frequency_id: [null,Validators.compose([Validators.required])],\n annual_expense_value: [null,Validators.compose([Validators.required])],\n comments:[null],\n\t\t isactive: [\"1\"],\n\t\t fk_createdby: [this.users]\n })\n }\n\n addHouseExpenses()\n {\n \n const control = this.houseHoldForm.controls['houseExpense'] as FormArray;\n\n control.push(this.createHouseExpense());\n }\n\n deleteHouseExpense(i,item)\n {\n this.houseannual.splice(i,1); \n this.grandHouseExpenseTotal = this.houseannual.reduce((a,b)=> +a + +b,0); \n let deleteRecords:any\n if(item.household_expense_id !=null){\n deleteRecords=[{\n household_expense_id:item.household_expense_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeHouseholdExpenses',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n const control = this.houseHoldForm.controls['houseExpense'] as FormArray;\n if(control.length==1){\n control.reset();\n }\n else{\n control.removeAt(i); \n } \n }\n houseExpensecalculat(indexVal,values)\n {\n\n let control:any = this.houseHoldForm.controls['houseExpense'];\n if(values.expense_value!='' && values.fk_frequency_id!='' && values.expense_value!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_expense_value'].setValue((parseFloat(values.expense_value) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.expense_value) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n \n }\n else {\n control.controls[indexVal].controls['annual_expense_value'].setValue(null);\n }\n \n //OLD CALCULATION\n // let frequencyId = details.value.fk_frequency_id;\n // let expenseValue = details.value.expense_value;\n // // let UOM = details.value.rate_per_unit;\n // // console.log(frequencyId,purchaseQty,UOM,index);\n // // console.log(details);\n // let annual\n // if(expenseValue!=null){\n // if(frequencyId==1)\n // {\n\n // }else if(frequencyId==2)\n // {\n // annual = (expenseValue*250);\n // this.houseannual[index] = annual;\n // details.controls['annual_expense_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (expenseValue);\n // this.houseannual[index] = annual;\n // details.controls['annual_expense_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n\n // }else if(frequencyId==5)\n // {\n // annual = (expenseValue*12);\n // this.houseannual[index] = annual;\n // details.controls['annual_expense_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n\n // }else if(frequencyId==7)\n // {\n\n // }else if(frequencyId==8)\n // {\n\n // }else\n // {\n\n // }\n // this.grandHouseExpenseTotal = this.houseannual.reduce((a,b)=> +a + +b,0); \n // console.log(this.grandHouseExpenseTotal); \n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter the Amount and Frequency');\n // }\n }\n saveHouseExpenseData(answerData)\n {\n if(this.houseHoldForm.valid)\n {\n let records = {'records':answerData.houseExpense};\n this.qustCat.saveassessedForms('saveAssessedIncomeHouseholdExpenses',records).subscribe(res=>\n { \n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!'); \n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n }\n\n getHouseholdExpense(houseExpesneDetails)\n {\n if(houseExpesneDetails.length==0)\n {\n this.addHouseExpenses(); \n }else\n {\n const control = this.houseHoldForm.controls['houseExpense'] as FormArray; \n houseExpesneDetails.forEach((val,index)=>\n {\n this.houseannual[index] = val.annual_expense_value;\n control.push(this.createHouseholdwithData(val));\n if(val.expense_value != null){\n this.Value[index]=this.cons.convertNumberToWords(val.expense_value)\n this.AnnualExpenses[index]=this.cons.convertNumberToWords(val.annual_expense_value)\n }\n \n });\n this.grandHouseExpenseTotal = this.houseannual.reduce((a,b)=> +a + +b,0); \n }\n }\n\n createHouseholdwithData(data)\n {\n return this.fb.group(\n {\n household_expense_id:[data.household_expense_id],\n fk_pd_id:[this.pdDetails.pd_id] ,\n company_id:[this.pdDetails.company_id],\n\t\t expense_item: [data.expense_item,Validators.compose([Validators.required])],\n\t\t expense_value: [data.expense_value,Validators.compose([Validators.required])],\n\t\t fk_frequency_id: [data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_expense_value: [data.annual_expense_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n\t\t isactive: [\"1\"],\n\t\t fk_createdby: [this.users]\n })\n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualExpenses[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-household/pd-question-assessed-household.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionAssessedBusinessIncomePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-business-income',\n templateUrl: 'pd-question-assessed-business-income.html',\n})\nexport class PdQuestionAssessedBusinessIncomePage {\n m_freqOfPurchase: any = [];\n expenseDetails: any;\n \n grandIncomeTotal: any=[];\n incomeannual: any=[];\n users: any;\n pdDetails: any;\n BuissnessForm:FormGroup;\n businessIncome:any;\n Value: any=[];\n AnnualExpenses: any=[];\n complete_status : boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.expenseDetails = this.navParams.get('income');\n \n this.users = this.aws.getlocale();\n this.BuissnessForm = this.fb.group(\n {\n busIncome:this.fb.array([]),\n });\n\n if(this.expenseDetails!=null)\n {\n this.getBuisnessExpenses(this.expenseDetails);\n }else\n {\n this.addBusinessDetails();\n }\n this.getdropdown();\n\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('BUSINESSINCOME').subscribe(res=>\n {\n if(res['dataStatus']==true){\n \n this.businessIncome = res['records'].filter(bus=>bus.isactive==1);\n } \n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus'] == true){\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedBusinessIncomePage');\n }\n createBusinessDetails()\n {\n return this.fb.group(\n {\n pd_business_income_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n business_income_id:[null,Validators.compose([Validators.required])],\n income_value:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_income_value:[null,Validators.compose([Validators.required])],\n comments:[null],\n isactive:['1'],\n fk_createdby:[this.users],\n other_income_item:[null],\n other_frequncy_item:[null],\n })\n }\n\n addBusinessDetails()\n {\n const control = this.BuissnessForm.controls['busIncome'] as FormArray;\n control.push(this.createBusinessDetails());\n }\n\n deleteBuisnessDetails(i)\n {\n this.incomeannual.splice(i,1); \n this.grandIncomeTotal = this.incomeannual.reduce((a,b)=> +a + +b,0); \n \n const control = this.BuissnessForm.controls['busIncome'] as FormArray;\n control.removeAt(i);\n }\n\n busIncomecalculate(indexVal,values)\n {\n let control:any = this.BuissnessForm.controls['busIncome'];\n if(values.income_value!='' && values.fk_frequency_id!='' && values.income_value!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_income_value'].setValue(parseInt(values.income_value) * parseInt(filterFrequencyValue[0].mutiple_factor));\n this.inWords(parseInt(values.income_value) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n\n }\n else {\n control.controls[indexVal].controls['annual_income_value'].setValue('');\n }\n //OLD CALCULATION\n // let frequencyId = details.value.fk_frequency_id;\n // let incomeValue = details.value.income_value;\n // // let UOM = details.value.rate_per_unit;\n \n // let annual:any;\n // if(incomeValue!=null && incomeValue !=null){\n // let frequency_factor = this.m_freqOfPurchase.filter(frq=>frq.frequency_id == frequencyId)[0]; \n // if(frequencyId==1)\n // {\n \n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==2)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual);\n // }else if(frequencyId==5)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==7)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==8)\n // {\n // annual = (incomeValue);\n // this.incomeannual[index] = annual; \n // details.controls['annual_income_value'].setValue(annual); \n\n // }else\n // {\n\n // }\n // this.grandIncomeTotal = this.incomeannual.reduce((a,b)=> +a + +b,0); \n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter the Amount and Frequency');\n // }\n }\n\n saveBusinessData(answerData)\n {\n \n if(this.BuissnessForm.valid){\n let records = {'records':answerData.busIncome};\n \n this.qustCat.saveassessedForms('saveOtherBusinessIncome',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!'); \n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n \n }\n\n getBuisnessExpenses(expenseDetails)\n {\n if(expenseDetails.length==0)\n {\n this.addBusinessDetails();\n }else\n {\n const control = this.BuissnessForm.controls['busIncome'] as FormArray; \n expenseDetails.forEach((val,index)=>\n {\n this.incomeannual[index] = val.annual_income_value;\n control.push(this.createBusinessExpensewithData(val));\n if(val.income_value != null){\n this.Value[index]=this.cons.convertNumberToWords(val.income_value)\n this.AnnualExpenses[index]=this.cons.convertNumberToWords(val.annual_income_value)\n }\n })\n this.grandIncomeTotal = this.incomeannual.reduce((a,b)=> +a + +b,0); \n }\n }\n\n createBusinessExpensewithData(data)\n {\n return this.fb.group(\n {\n pd_business_income_id:[data.pd_business_income_id],\n fk_pd_id:[this.pdDetails.pd_id],\n business_income_id:[data.business_income_id,Validators.compose([Validators.required])],\n income_value:[data.income_value,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_income_value:[data.annual_income_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n isactive:['1'],\n fk_createdby:[this.users],\n other_income_item:[data.other_income_item],\n other_frequncy_item:[data.other_frequncy_item],\n })\n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualExpenses[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-business-income/pd-question-assessed-business-income.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Form } from 'ionic-angular';\nimport {AwsServiceProvider} from '../../../providers/aws-service/aws-service'\nimport { FormGroup,FormBuilder,FormArray, Validators} from '@angular/forms';\nimport {QuestionCategoryProvider} from '../../../providers/question-category/question-category'\nimport {ToastProvider} from '../../../providers/common-provider/toast'\nimport { DatePipe } from '@angular/common';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport { max } from 'rxjs/operators';\n\n/**\n * Generated class for the PdQuestionAssessedDailyPurchasePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-daily-purchase',\n templateUrl: 'pd-question-assessed-daily-purchase.html',\n})\nexport class PdQuestionAssessedDailyPurchasePage {\n pipe = new DatePipe('en-US');\n pdDetails:any;\n formId:any;\n margin_calculation_status: any;\n users: any;\n purchaseItemForm:FormGroup\n dailyPurchase:any;\n productListData: any=[];\n purchaseData:any;\n purchaseAmtInWords: any=[];\n maxDate:any;\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,\n private fb:FormBuilder,private quesCat:QuestionCategoryProvider,private toast:ToastProvider,private cons:ConstantsProvider) {\n var today=new Date\n console.log(\"today\",today)\n let date=today.getDate()< 10 ? (\"0\"+(today.getDate())) : today.getDate()\n let month=today.getMonth() < 10 ? (\"0\"+(today.getMonth()+1)) : (today.getMonth()+1)\n this.maxDate = today.getFullYear() + '-' + month + '-' + date;\n console.log(\"max\",this.maxDate)\n this.pdDetails=this.navParams.get('pdDetails')\n console.log(\"pd\",this.pdDetails)\n this.formId=this.navParams.get('FormId')\n this.purchaseData=this.navParams.get('purchaseDaily')\n console.log(\"data\",this.purchaseData);\n this.margin_calculation_status=this.navParams.get('margin_calculation_status');\n this.users = this.aws.getlocale();\n\n this.purchaseItemForm=this.fb.group({\n // purchase_item:[''],\n // other_purchase_item:[''],\n purchase_product:this.fb.array([])\n // child:this.fb.array([])\n })\n this.getDropDown()\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedDailyPurchasePage');\n if(this.purchaseData != null){\n this.getDailyPurchase(this.purchaseData)\n }\n else{\n this.addPurchase();\n }\n \n }\n getDropDown(){\n this.quesCat.stockFormAccess(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(data=>{\n if (data.dataStatus){\n let datas = data.record;\n \n let type2 = datas.from_business.filter(data => data.type_of_activity_id == 2); \n if(type2[0].hasOwnProperty(\"products\")){\n // this.productListData.push(type2[0].products);\n }\n let type3 = datas.from_business.filter(data => data.type_of_activity_id == 3);\n if(type3[0].hasOwnProperty(\"products\")){\n this.productListData.push(type3[0].products);\n }\n let type4 = datas.from_business.filter(data => data.type_of_activity_id == 4);\n if(type4[0].hasOwnProperty(\"products\")){\n this.productListData.push(type4[0].products);\n }\n if(datas.from_supplier.hasOwnProperty(\"raw_material\")){\n this.productListData.push(datas.from_supplier.raw_material);\n }\n this.productListData = [].concat.apply([], this.productListData);\n \n }\n })\n }\n addPurchase(){\n const control=this.purchaseItemForm.get('purchase_product') as FormArray\n control.push(this.createDailyPurchase())\n this.addDailyPurchaseChild(control.length-1)\n }\n createDailyPurchase(){\n return this.fb.group({\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n pbw_id: [''],\n purchase_item: ['', Validators.compose([Validators.required])],\n other_purchase_item:[''],\n annual_purchase_value: [''],\n child: this.fb.array([]),\n comments: [''],\n isactive:[true],\n })\n }\n addDailyPurchaseChild(index)\n {\n const control=(this.purchaseItemForm.get('purchase_product')).at(index).get('child') as FormArray;\n control.push(this.createDailyPurchaseChild(''))\n }\n createDailyPurchaseChild(value){\n return this.fb.group({\n pbwc_id: [''],\n fk_pbw_id: [value],\n purchase_date: [''],\n purchase_value: ['', Validators.compose([Validators.required])],\n isactive:[true],\n })\n }\n createPurchaseItemWithData(values: any) {\n return this.fb.group({\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n pbw_id: [values.pbw_id],\n purchase_item: [values.purchase_item, Validators.compose([Validators.required])],\n other_purchase_item:[values.other_purchase_item === null ? '' : values.other_purchase_item ],\n annual_purchase_value: [values.annual_purchase_value],\n child: this.fb.array([]),\n comments: [values.comments],\n isactive:[true],\n });\n }\n \n // create daily purchase product with Data\n createDailyPurchaseWithData(values: any, parent: any) {\n console.log(\"dd\",new Date(this.pipe.transform(values.purchase_date, 'yyyy-MM-dd')))\n return this.fb.group({\n pbwc_id: [values.pbwc_id],\n fk_pbw_id: [parent.pbw_id],\n // purchase_date: [parent.purchase_date=='' ? '' :new Date(this.pipe.transform(values.purchase_date, 'yyyy-MM-dd')), Validators.compose([Validators.required])],\n purchase_date:[values.purchase_date],\n purchase_value: [values.purchase_value, Validators.compose([Validators.required])],\n isactive:[true]\n })\n }\ninWords(values,index){\n console.log(\"value\",values)\n if(values != ''){\n this.purchaseAmtInWords[index]=this.cons.convertNumberToWords(values)\n }\n}\n // this caculation for running total\npurchaseCalculation(indexVal: number,values: any): void {\n \n let control:any = this.purchaseItemForm.controls['purchase_product'];\n \n if(values.child.length>0){\n let transformData = values.child.filter(val=>val.purchase_date!='' && val.purchase_date!=null && val.purchase_date!=undefined && val.purchase_value!='' && val.isactive===true).map(mval=>{\n mval.custum_date = this.pipe.transform(mval.purchase_date, 'yyyy-MM');\n return mval;\n });\n\n if(transformData.length>0) {\n // let getUniqueMonthCounts = transformData.map(val=>val.custum_date)\n // .filter((fVal,fIndex,fArray)=>{\n // return fIndex === fArray.indexOf(fVal);\n // });\n\n let TotalAnnualValue = transformData.map(val=>val.purchase_value)\n .reduce((sum, curr) => parseInt(sum) + parseInt(curr));\n // let months:number=12/values.child.length;\n control.controls[indexVal].controls['annual_purchase_value'].setValue(TotalAnnualValue);\n }\n else{\n control.controls[indexVal].controls['annual_purchase_value'].setValue(\"\");\n }\n \n }\n else {\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n innercontrol.controls[innercontrol.value.length-1].controls['purchase_value'].setValue(\"\");\n control.controls[indexVal].controls['annual_purchase_value'].setValue(\"\");\n }\n}\naddDailyPurchase(len){\n const control=this.purchaseItemForm.get('purchase_product');\n control.push(this.createDailyPurchase())\n const innercontrol=control.at(len).get('child') as FormArray\n innercontrol.push(this.createDailyPurchaseChild(''))\n}\nremoveDailyPurchase(index){\n const control=this.purchaseItemForm.get('purchase_product');\n control.removeAt(index)\n}\naddChild(parentIndex,values){\n let control: any = this.purchaseItemForm.controls['purchase_product'];\n control=control.controls[parentIndex].get('child') as FormArray;\n control.push(this.createDailyPurchaseChild(values.pbw_id));\n}\nremoveChild(parentIndex,childIndex,childValue){\n let control: any = this.purchaseItemForm.controls['purchase_product'];\n control=control.controls[parentIndex].get('child') as FormArray;\n if(childValue.pbwc_id=='' || childValue.pbwc_id==null){\n control.removeAt(childIndex);\n let calculatControlValues: any = this.purchaseItemForm.controls['purchase_product'];\n calculatControlValues = calculatControlValues.controls[parentIndex];\n this.purchaseCalculation(parentIndex,calculatControlValues.value);\n }\n else {\n control.controls[childIndex].controls.isactive.setValue(false);\n let calculatControlValues: any = this.purchaseItemForm.controls['purchase_product'];\n calculatControlValues = calculatControlValues.controls[parentIndex];\n this.purchaseCalculation(parentIndex,calculatControlValues.value);\n }\n}\ngetDailyPurchase(records){\n const control=this.purchaseItemForm.get('purchase_product')\n // const innercontrol=control.at(0).get('child') as FormArray\n records.forEach((element,index)=>{\n let purchaseChildControlarr=[]\n let nexContro=[]\n control.push(this.createPurchaseItemWithData(element))\n console.log(\"records\",element)\n let result=Object.assign({},...element.items);\n console.log(\"result\",result);\n // let expandBodyContent= Object.keys(result).map(key => ({ header:key, value: result[key] }));\n // console.log(\"expandBody\",expandBodyContent);\n // let listItems: any=[];\n nexContro[index] = Object.keys(element['items']).map(key => element['items'][key]);\n console.log(\"purchasechildcontrol\",nexContro[index])\n purchaseChildControlarr[index]=Object.keys(result).map(key=>result[key])\n console.log(\"nexcontrol\",purchaseChildControlarr[index])\n // expandBodyContent.forEach((expnadElement, expnadIndex) => {\n // console.log(\"expand\",expnadElement)\n // let calculateItems = expnadElement.value.reduce((acc, calculate) => acc + Number(calculate.purchase_value), 0);\n // console.log(\"calculateItems\",calculateItems)\n // listItems.push({items:expnadElement, itemsTotal:calculateItems})\n const innercontrol=control.at(index).get('child') as FormArray\n purchaseChildControlarr[index].forEach((chilVal,childIndex)=>{\n chilVal.forEach((val,innerIndex)=>{\n if(val.purchase_date ){\n let saleDate = new Date(val.purchase_date);\n console.log(saleDate.getDay())\n console.log(saleDate.getDate());\n // val.purchase_date= saleDate.getFullYear() + '-' + (\"0\" + (saleDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + (saleDate.getDay() )).slice(-2);\n let date=saleDate.getDate()< 10 ? (\"0\"+(saleDate.getDate())) : saleDate.getDate()\n let month=saleDate.getMonth() < 10 ? (\"0\"+(saleDate.getMonth()+1)) : (saleDate.getMonth()+1)\n console.log(\"datamonth\")\n console.log(date,month)\n val.purchase_date= saleDate.getFullYear() + '-' + month + '-' + date;\n console.log( val.purchase_date)\n }\n if(val.purchase_value != ''){\n this.inWords(val.purchase_value,childIndex)\n }\n console.log(\"child\",val)\n innercontrol.push(this.createDailyPurchaseWithData(val,element))\n })\n })\n \n })\n // console.log(\"list_items\",listItems)\n // })\n // control.push(this.createPurchaseItemWithData(records))\n \n //console.log('innercontrol',innercontrol)\n // records.items.forEach((element,index)=>{\n // innercontrol.push(this.createDailyPurchaseWithData(element,records))\n // })\n \n}\n\n\nsubmitDetails(records){\n records.purchase_product.forEach(parVal=>{\n parVal.child.forEach(childVal=>{\n if(childVal['custum_date']){\n delete childVal['custum_date']\n }\n if(childVal['purchase_date']){\n childVal['purchase_date']=this.pipe.transform(childVal['purchase_date'], 'yyyy-MM-dd')\n }\n })\n })\n let recordVal:any={'records':records.purchase_product}\n this.quesCat.saveassessedForms('saveAssessedIncomePurchaseBillwise',recordVal).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Record Saved Successfully..!\")\n setTimeout(()=>{\n this.navCtrl.pop()\n },1500)\n }\n else{\n this.toast.pdTriggerappmessage(\"Error\");\n }\n })\n}\n \n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {QuestionCategoryProvider} from '../../../providers/question-category/question-category'\nimport {RupeeCurrencyFormatPipe} from '../../../pipes/rupee-currency-format/rupee-currency-format'\n\n/**\n * Generated class for the PdQuestionAssessedSummaryPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-summary',\n templateUrl: 'pd-question-assessed-summary.html',\n providers:[RupeeCurrencyFormatPipe]\n})\nexport class PdQuestionAssessedSummaryPage {\n pdDetails:any;\n salesCustomer:any;\n salesMonthWise:any;\n salesItemWise:any;\n consolidatedReport:any;\n loadData:boolean=false;\n constructor(public navCtrl: NavController, public navParams: NavParams,public qustCat: QuestionCategoryProvider) {\n this.pdDetails=this.navParams.get('pdDetails')\n // console.log(this.pdDetails)\n this.getAssessedDetails();\n }\n ionViewWillEnter(){\n //console.log(\"ionViewWillEnter\")\n //this.getAssessedDetails();\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedSummaryPage');\n \n }\n getAssessedDetails(){\n let records = {'pd_id':this.pdDetails.pd_id,'company_id':this.pdDetails.company_id};\n this.qustCat.retiverassessedForm('getAssessedIncome',records).subscribe(res=>{\n if(res['dataStatus']== true){\n if(res['records'].final_data.length != 0){\n this.salesCustomer=res['records'].final_data[0].sales_declared_by_customer\n this.salesItemWise=res['records'].final_data[0].sales_calculated_by_itemwise\n this.salesMonthWise=res['records'].final_data[0].sales_calculated_by_monthwise\n this.consolidatedReport=res['records'].final_data[0].consolidated_report\n console.log(this.salesCustomer);\n }\n this.loadData=true\n \n }\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-summary/pd-question-assessed-summary.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ToastProvider} from '../../../providers/common-provider/toast'\nimport {QuestionCategoryProvider} from '../../../providers/question-category/question-category'\nimport { QueueScheduler } from 'rxjs/internal/scheduler/QueueScheduler';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionAssessedImagesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-assessed-images',\n templateUrl: 'pd-question-assessed-images.html',\n})\nexport class PdQuestionAssessedImagesPage {\n imageDisplay: any=[];\n imageBucket: any=[];\n pdDetails:any;\n FormId:any;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,private toast:ToastProvider,public qustCat:QuestionCategoryProvider,private constantProvider:ConstantsProvider ) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.FormId=this.navParams.get('formdetails')\n console.log(\"pd\",this.pdDetails,\"form\",this.FormId)\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedImagesPage');\n this.getPDImages();\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n \n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n console.log(\"res\",res);\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n console.log(\"Fail\")\n this.toast.pdTriggerappmessage('Fail');\n }\n },ERR=>{\n console.log(JSON.stringify(ERR));\n this.toast.pdTriggerappmessage(JSON.stringify(ERR));\n })\n \n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-images/pd-question-assessed-images.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionLenderRepresentativePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-lender-representative',\n templateUrl: 'pd-question-lender-representative.html',\n})\nexport class PdQuestionLenderRepresentativePage {\n\n users: any;\n FormId: any;\n pdDetails: any;\n representativeForm:FormGroup;\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public fb:FormBuilder,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,private constantProvider:ConstantsProvider) \n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n \n this.users = this.aws.getlocale();\n this.representativeForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid:[this.pdDetails.pd_id],\n formid:[this.FormId.form_id],\n fk_createdby:[this.users],\n lender_representative_accompany: ['', Validators.compose([Validators.required])],\n representative_remarks: ['', Validators.compose([Validators.required])],\n lender_representative_details: this.fb.array([]),\n });\n this.getLenderReDetails();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionLenderRepresentativePage');\n this.getPDImages();\n }\n\n ionViewCanLeave(){\n console.log(\"dirty\",this.representativeForm.dirty);\n if(this.representativeForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n \n createlenReDetails()\n {\n return this.fb.group({\n lender_representative_who_accompanies : ['', Validators.compose([Validators.required])],\n lender_representative_carry_loan_files: ['', Validators.compose([Validators.required])],\n });\n }\n\n selectedLoanChanges(e): void {\n if (e.value == 'Yes') {\n const control = this.representativeForm.controls['lender_representative_details'];\n control.push(this.createlenReDetails());\n } else if (e.value == 'No') {\n const arr = this.representativeForm.controls.lender_representative_details;\n arr.removeAt(0);\n }\n }\n\n sumbitData(answerData)\n { \n if(this.representativeForm.valid)\n {\n let records = this.representativeForm.value;\n \n this.qustCat.saveForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.representativeForm.reset(this.representativeForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n });\n }else\n {\n this.toast.pdTriggerappmessage('Enter All Field');\n }\n }\n\n getLenderReDetails()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n \n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let lenderReDetails = res['records'];\n if(lenderReDetails.lender_representative_accompany=='Yes'){\n\n this.representativeForm.controls['lender_representative_accompany'].setValue(lenderReDetails.lender_representative_accompany);\n\n this.representativeForm.controls['representative_remarks'].setValue(lenderReDetails.representative_remarks);\n\n\n let lender_represent_details = Object.keys(res['records'].lender_representative_details).map(function(key)\n {\n return res['records'].lender_representative_details[key];\n });\n \n const control = this.representativeForm.controls['lender_representative_details'] as FormArray; \n lender_represent_details.forEach(val=>\n {\n control.push(this.createlenReDetails());\n })\n this.representativeForm.controls['lender_representative_details'].setValue(lender_represent_details);\n\n }else\n {\n this.representativeForm.controls['lender_representative_accompany'].setValue(lenderReDetails.lender_representative_accompany);\n\n this.representativeForm.controls['representative_remarks'].setValue(lenderReDetails.representative_remarks);\n }\n }\n })\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-lender-representative/pd-question-lender-representative.ts","import { Component,ViewChild,ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams, ModalController, CardTitle, Content } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray,Validator, Validators } from '@angular/forms';\nimport { PdQuestionGeneralOtherApplicantPage } from './pd-question-general-other-applicant/pd-question-general-other-applicant';\nimport { DatePipe} from '@angular/common';\nimport { SearchRelationPipe } from '../../../pipes/search-relation/search-relation';\nimport { removeSummaryDuplicates } from '@angular/compiler';\nimport { DataSource } from '@angular/cdk/table';\nimport { MatSelect } from '@angular/material';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n//import {} from 'moment'\n\n/**\n * Generated class for the PdQuestionGeneralInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-general-info',\n templateUrl: 'pd-question-general-info.html',\n providers:[SearchRelationPipe],\n})\nexport class PdQuestionGeneralInfoPage {\n pipe=new DatePipe('en-US');\n // person_name:any;\n qualification_name:any;\n individuals_order_id:any;\n is_new:any;\n pd_co_applicant_id:any;\n lengthv:any;\n qual_name:any;\n curr_qualification_name;\n curr_business_name;\n \n\n applicant_name: any;\n otherapp: any;\n fetch_related_details: any = [];\n checkApplicantExist: any;\n pd_applicants_details: any = [];\n companyRelationShipList: any;\n qualificationList:any;\n businessEntityTypeList:any;\n relationShipList: any;\n titleList:any;\n users: any;\n FormId: any;\n pdDetails: any;\n generalForm:FormGroup;\n list_value:FormArray;\n fulldata:any\n public buttonClick:boolean;\n public h_companies:boolean\n \n datav:any;\n individualsListBothCase:any;\n individualsList:any;\n companyList:any;\n i:number;\n data_all:any;\n maxDate:any;\n OldData:any=[];\n OldData_indi:any=[];\n updateIndex_indi:any;\n public addComp:boolean\n public addIndi:boolean\n updateIndex_comp: any;\n\n complete_status : boolean = false;\n\n@ViewChild('remark') nameField: ElementRef;\n@ViewChild('focusBusiness') focus_business_entity : MatSelect\n customer_segment_abbr: any;\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public fb:FormBuilder,public modal:ModalController,\n private cameraProvider:CameraProvider,private loading:LoadingProvider,private cons:ConstantsProvider) {\n this.maxDate = new Date();\n this.pd_applicants_details = []; \n this.pd_applicants_details.pop(); \n this.pdDetails = this.navParams.get('pdDetails');\n console.log(this.pdDetails)\n //let get_max_date=this.pdDetails.pd_date_of_initiation.split('/').reverse.join(\"/\");\n //this.maxDate=new Date(get_max_date)\n this.FormId = this.navParams.get('FormId');\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n console.log('this.customer_segment_abbr',this.customer_segment_abbr)\n this.users = this.aws.getlocale();\n this.getdropdown();\n \n this.generalForm = this.fb.group({\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid:this.pdDetails.pd_id,\n formid:this.FormId.form_id,\n applicant_list: this.fb.array([]),\n applicant_relation: this.fb.array([]),\n list_value:this.fb.array([]),\n company_value:this.fb.array([]),\n individuals:this.fb.array([]),\n companies:this.fb.array([]),\n persons_with_relationships:this.fb.array([]),\n company_with_relationships:this.fb.array([]),\n rental_income_rcv_in_years:[''],\n rental_income_rcv_in_month:[''],\n \n general_remark:''\n });\n \n //this.initIndividuals();\n this.pd_applicants_details = this.pdDetails.applicat_details;\n \n console.log(\"persons_with_relationships\",this.generalForm.controls['persons_with_relationships']['controls'][0])\n let control=this.generalForm.get('persons_with_relationships')\n console.log('p1',control)\n \n \n // this.getcoapplicantDetails();\n this.buttonClick=false;\n this.h_companies=false;\n this.addIndi=false\n this.addComp=false\n // this.initCompanies()\n this.datav=[{\n name:\"fairoj\",\n id:1\n },\n {\n name:\"ff\",\n id:2\n }\n \n ]\n //this.fulldata=this.generalForm.value\n this.generalForm.controls['list_value'].valueChanges.subscribe(val=>{\n let control=this.generalForm.controls['list_value'];\n this.individualsList=control.value.filter(element=>element.is_applicant == true);\n this.individualsListBothCase=control.value.filter(element=>element.is_applicant==true || element.is_person_met==true)\n this.fulldata=control.value;\n //control.controls.length\n //control.push()\n });\n this.generalForm.controls['company_value'].valueChanges.subscribe(val=>{\n let control=this.generalForm.controls['company_value'];\n this.companyList=control.value.filter(element=>element.company_name )\n })\n this.i=0;\n\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n\n ionViewDidLoad() {\n // this.pd_applicants_details.pop();\n console.info(\"%cionViewDidLoad, PdQuestionGeneralInfoPage\",\"font-size:100%;color:purple;font-weight:bold;font-family:Mongoose;\");\n this.getGeneralForm()\n this.getPDImages();\n \n }\n ionViewLoaded() {\n\n // setTimeout(() => {\n // this.generalForm.controls['general_remark']['controls'].setFocus();\n // },150);\n }\n\n ionViewCanLeave(){\n console.table(\"dirty\",this.generalForm.dirty);\n if(this.generalForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n console.log('if part . this.imageBucket.length',this.imageBucket.length);\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n console.log('else part . this.imageBucket.length',this.imageBucket.length)\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n initlistv(data,purpose) :void\n {\n const control=this.generalForm.controls['list_value'];\n console.log(\"control\",control.length)\n if(purpose=='ins')\n {\n for(let val of data)\n {\n var c_qualification_name=this.qualificationById(val.qualification) // for getting qualification Name\n let formData:FormGroup=this.fb.group({\n applicant_title_name:[val.applicant_title_name],\n applicant_name:[val.applicant_name],\n is_person_met:val.is_person_met,\n is_person_met_pic :val.is_person_met_pic != null ? val.is_person_met_pic : '',\n is_person_met_id_proof : val.is_person_met_id_proof,\n is_applicant:val.is_applicant,\n age:[val.age],\n qualification:[val.qualification],\n course_name:[val.course_name],\n \n individuals_order_id:[control.length+1],\n is_new:true,\n is_active:true,\n pd_co_applicant_id:[control.length+1], \n \n qualification_name:[c_qualification_name]\n \n\n });\n control.push(formData);\n this.buttonClick=false;\n // this.generalForm.value.individuals.value=\"\"\n }\n }\n if(purpose=='get'){\n for(let val of data)\n {\n var c_qualification_name=this.qualificationById(val.qualification) // for getting qualification Name\n let formData:FormGroup=this.fb.group({\n applicant_title_name:[val.applicant_title_name],\n applicant_name:[val.applicant_name],\n is_person_met:val.is_person_met,\n is_person_met_pic:val.is_person_met_pic != null ? val.is_person_met_pic : '',\n is_person_met_id_proof:val.is_person_met_id_proof,\n is_applicant:val.is_applicant,\n age:[val.age],\n qualification:[val.qualification],\n course_name:[val.course_name],\n \n individuals_order_id:[val.individuals_order_id],\n is_new:[val.is_new],\n is_active:[val.is_active],\n pd_co_applicant_id:[val.pd_co_applicant_id] , \n \n \n \n \n\n qualification_name:[c_qualification_name]\n \n\n });\n control.push(formData);\n this.buttonClick=false;\n // this.generalForm.value.individuals.value=\"\"\n }\n }\n}\n\n qualificationById(data):string{\n for(let i of this.qualificationList){\n if(data==i.qualification_id){\n this.qual_name=i.qualification_name\n return this.qual_name\n }\n }\n \n }\n initCompanyValue(data,purpose):void{\n const control=this.generalForm.controls['company_value'];\n if(purpose=='ins')\n {\n for(let val of data)\n {\n var c_business_name=''\n if(val.business_entity_type!=1){\n c_business_name=this.businessEntityById(val.business_entity_type)\n }\n if(val.business_entity_type==1){\n c_business_name=val.business_entity_type_other\n }\n \n let formData:FormGroup=this.fb.group({\n company_name:[val.company_name],\n // pd_co_applicant_id:[this.i+1],\n // company_order_id:[this.lengthv.companies.length+1],\n company_order_id:[control.length+1],\n is_company_applicant:[val.is_company_applicant],\n business_entity_type:[val.business_entity_type],\n business_entity_type_other:[val.business_entity_type_other],\n is_new:true,\n is_active:true,\n company_messrs_name:['M/s'],\n \n business_years:[val.business_years],\n business_month:[val.business_month],\n business_date_object:[val.business_date_object],\n associate_pd_id:[this.pdDetails.pd_id],\n\n business_entity_type_name:[c_business_name]\n });\n control.push(formData);\n this.h_companies=false;\n }\n }\n if(purpose=='get')\n {\n for(let val of data)\n {\n \n var c_business_name=''\n if(val.business_entity_type!=1){\n c_business_name=this.businessEntityById(val.business_entity_type)\n }\n if(val.business_entity_type==1){\n c_business_name=val.business_entity_type_other\n }\n\n let formData:FormGroup=this.fb.group({\n company_name:[val.company_name],\n // pd_co_applicant_id:[this.i+1],\n company_order_id:[val.company_order_id],\n is_company_applicant:[val.is_company_applicant],\n business_entity_type:[val.business_entity_type],\n business_entity_type_other:[val.business_entity_type_other],\n is_new:[val.is_new],\n is_active:[val.is_active],\n company_messrs_name:[val.company_messrs_name],\n \n business_years:[val.business_years],\n business_month:[val.business_month],\n business_date_object:[val.business_date_object],\n associate_pd_id:[val.associate_pd_id],\n\n business_entity_type_name:[c_business_name]\n });\n control.push(formData);\n this.h_companies=false;\n }\n }\n }\n businessEntityById(val):string{\n for(let v of this.businessEntityTypeList){\n if(val==v.business_entity_type_id){\n var name=v.business_entity_type_name\n return name\n }\n }\n \n }\n \n\n initIndividuals(data):void{\n \n const control=this.generalForm.controls['individuals'];\n control.controls=[]\n if(data==null){\n let formData : FormGroup=this.fb.group({\n applicant_name:['',Validators.required],\n is_person_met:false,\n is_person_met_pic:[''],\n is_person_met_id_proof:[''],\n is_applicant:false,\n age:[''],\n qualification:[''],\n course_name:[''],\n applicant_title_name:['']\n\n });\n control.push(formData);\n }\n else{\n let formData : FormGroup=this.fb.group({\n \n \n applicant_name:[data.applicant_name,Validators.required],\n is_person_met:data.is_person_met,\n is_person_met_pic : data.is_person_met_pic != null ? data.is_person_met_pic : '' ,\n is_person_met_id_proof : data.is_person_met_id_proof,\n is_applicant:data.is_applicant,\n age:[data.age],\n qualification:[data.qualification],\n course_name:[data.course_name],\n applicant_title_name:[data.applicant_title_name]\n \n \n });\n this.buttonClick=!this.buttonClick;\n control.push(formData);\n\n }\n \n \n \n \n }\n initCompanies(data):void{\n const control=this.generalForm.controls['companies'];\n control.controls=[]\n if(data == null){\n let formData:FormGroup=this.fb.group({\n company_name:[''],\n is_company_applicant:false,\n business_entity_type:[''],\n business_entity_type_other:[''],\n business_years:[''],\n business_month:[''],\n business_date_object:[''],\n });\n control.controls=[]\n control.push(formData)\n \n }\n else{\n let formData:FormGroup=this.fb.group({\n company_name:[data.company_name],\n is_company_applicant:data.is_company_applicant,\n business_entity_type:[data.business_entity_type],\n business_entity_type_other:[data.business_entity_type_other],\n business_years:[data.business_years],\n business_month:[data.business_month],\n business_date_object:[data.business_date_object]\n })\n this.h_companies=!this.h_companies\n \n control.push(formData)\n }\n }\n initPersonRelationship(value):void{\n console.log('From Genral Form - value are',value)\n const control=this.generalForm.controls['persons_with_relationships'];\n if(value=='')\n {\n console.log('fulldata',this.fulldata);\n console.log('control.length+1',control.length+1);\n console.log('full data',this.fulldata[control.length]);\n\n let formData:FormGroup=this.fb.group({\n pd_co_applicant_id:[''],\n applicant_name:[this.fulldata[control.length].applicant_name],\n relationship:[''],\n relation_to:[''],\n individuals_order_id:[control.length+1],\n \n });\n \n control.push(formData);\n }\n else{\n value.forEach((val,index)=>{\n console.log(\"val for each\",val)\n let formData:FormGroup=this.fb.group({\n pd_co_applicant_id:[val.pd_co_applicant_id],\n applicant_name:[val.applicant_name],\n relationship:[index == 0 ? '0' : val.relationship],\n relation_to:[val.relation_to],\n });\n \n control.push(formData);\n })\n }\n \n }\n initCompanyRelationShip(value):void{\n console.log(value)\n if(value=='')\n {\n let formData:FormGroup=this.fb.group({\n applicant_name:[''],\n company_relationship:[''],\n relation_to_company:[''],\n });\n const control=this.generalForm.controls['company_with_relationships'];\n control.push(formData);\n }\n else{\n console.log(\"data\",value);\n for(let val of value){\n let formData:FormGroup=this.fb.group({\n applicant_name:[val.applicant_name],\n company_relationship:[val.company_relationship],\n relation_to_company:[val.relation_to_company],\n });\n const control=this.generalForm.controls['company_with_relationships'];\n control.push(formData);\n }\n }\n \n }\n\n \n \n add():void{\n \n this.initIndividuals(null);\n }\ndata:any;\ncart=[];\ndatajson:any;\ndataobj:any;\n\n addRec(v){\n if(v=='1')\n {\n this.addIndi=true;\n this.buttonClick=!this.buttonClick;\n this.initIndividuals(null);\n }\n if(v=='2')\n {\n console.log(\"companies\",this.h_companies);\n this.addComp=true\n // this.h_companies=true;\n this.h_companies=!this.h_companies;\n console.log(\"companies\",this.h_companies);\n this.initCompanies(null);\n }\n }\n editIndividuals(index){\n let values=this.generalForm.controls.list_value.value[index]\n console.log(values)\n this.addIndi=false\n this.updateIndex_indi=index;\n this.initIndividuals(values);\n // this.nameField.nativeElement.focus();\n\n }\n editCompanies(index){\n console.log(\"index\",index);\n let values=this.generalForm.controls.company_value.value[index]\n console.log(values)\n this.updateIndex_comp=index\n this.addComp=false\n //this.\n this.initCompanies(values)\n }\n update(v,controlVal){\n console.log(\"index\",v)\n if(v=='1'){\n\n let values=this.generalForm.controls['individuals'].value[0]\n // let control=(this.generalForm.controls['individuals']).at(0) as FormArray;\n // console.log(\"full\",this.generalForm)\n // console.log(control,values);\n if(values.is_person_met == true && values.is_applicant != true){\n controlVal.controls['age'].clearValidators();\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].clearValidators();\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met != true){\n console.log(\"1st\");\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met == true && values.is_applicant == true){\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n\n if(!this.generalForm.controls['individuals'].valid){\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory fields Marked with '*'\");\n }\n else{\n let val=this.generalForm.controls.individuals.value[0]\n let old=this.generalForm.controls.list_value.value[this.updateIndex_indi]\n // const control=this.generalForm.controls.list_value.at(this.updateIndex_indi)\n // const control=this.list_value\n var c_qualification_name=this.qualificationById(val.qualification) \n const control=this.generalForm.controls['list_value']['controls'][this.updateIndex_indi]\n control.patchValue({\n \n applicant_title_name:val.applicant_title_name,\n applicant_name:val.applicant_name,\n is_person_met:val.is_person_met,\n is_person_met_pic : val.is_person_met_pic != null ? val.is_person_met_pic : '',\n is_person_met_id_proof: val.is_person_met_id_proof,\n is_applicant:val.is_applicant,\n age:val.age,\n qualification:val.qualification,\n course_name:val.course_name,\n \n individuals_order_id:old.individuals_order_id,\n is_new:old.is_new,\n is_active:old.is_active,\n pd_co_applicant_id:old.pd_co_applicant_id, \n \n qualification_name:c_qualification_name\n });\n this.buttonClick=false;\n console.log(this.generalForm.controls.list_value['controls'])\n // this.generalForm.controls.list_value.value.scrollToTop();\n // this.generalForm.controls['list_value']._scrollContent;\n //this.myinput._scrollContent();\n \n \n console.log(\"values\",val)\n console.log(\"old\",old);\n console.log(control);\n \n }\n }\n else if(v=='2'){\n if(!this.generalForm.controls['companies'].valid)\n {\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory Fields Marked with '*\")\n }\n else{\n let val=this.generalForm.controls.companies.value[0]\n var c_business_name=this.businessEntityById(val.business_entity_type)\n const control=this.generalForm.controls['company_value']['controls'][this.updateIndex_comp]\n control.patchValue({\n company_name:val.company_name,\n // company_order_id:[control.length+1],\n is_company_applicant:val.is_company_applicant,\n business_entity_type:val.business_entity_type,\n business_entity_type_other:val.business_entity_type_other,\n // is_new:true,\n // is_active:true,\n //company_messrs_name:['M/s'],\n \n business_years:val.business_years,\n business_month:val.business_month,\n business_date_object:val.business_date_object,\n\n business_entity_type_name:c_business_name\n })\n this.h_companies=false\n console.log(this.generalForm.controls['company_value']['controls'][this.updateIndex_comp])\n }\n }\n \n\n }\n \n addParticular(v,controlVal):void{\n //console.log(\"controlVAl\",controlVal)\n // const control=this.generalForm.controls['individuals'];\n //control.removeAt(i);\n //this.data=this.generalForm.value.individuals;\n this.cart.push(this.generalForm.value.individuals);\n this.data=Object.assign(this.cart);\n // this.data=Object.assign(this.generalForm.value.individuals)\n this.datajson=JSON.stringify(this.cart)\n if(v=='1')\n {let values=this.generalForm.controls['individuals'].value[0]\n let control=(this.generalForm.controls['individuals']).at(0) as FormArray;\n // console.log(\"full\",this.generalForm)\n // console.log(control,values);\n if(values.is_person_met == true && values.is_applicant != true){\n controlVal.controls['age'].clearValidators();\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].clearValidators();\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met != true){\n // console.log(\"1st\");\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met == true && values.is_applicant == true){\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(!this.generalForm.controls['individuals'].valid){\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory field Marked with '*'\");\n }\n else{\n this.initlistv(this.generalForm.value.individuals,'ins');\n this.initPersonRelationship('');\n }\n }\n else if(v=='2')\n {\n if(!this.generalForm.controls['companies'].valid){\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory field Marked with '*'\");\n }\n else{\n this.initCompanyValue(this.generalForm.value.companies,'ins')\n }\n }\n \n }\n removeList(i,index){\n if(index=='1')\n {\n //For List List_value(Individuals)\n const control=this.generalForm.controls['list_value'];\n control.value[i].is_active=false;\n this.OldData_indi.push(control.value[i])\n control.removeAt(i);\n //For Person RelationShip auto Delete\n const control1=this.generalForm.controls['persons_with_relationships'];\n control1.removeAt(i);\n \n }\n if(index==2){\n //For Company_values(Companies)\n const control=this.generalForm.controls['company_value']\n control.value[i].is_active=false\n var vla=control.value[i]\n this.OldData.push(vla);\n control.removeAt(i);\n \n\n // let control: any = this.generalForm.get('companies') as FormArray;\n //this.generalForm.controls['companies']\n //control.controls['is_active'].setValue(false);\n //control.controls[i].clearValidators();\n //control.controls[i].updateValueAndValidity();\n //control.clear\n // control.controls[i].is_active.setValue(false);\n /* control.controls[i].controls.company_name.clearValidators();\n control.controls[i].controls.company_name.updateValueAndValidity();\n control.controls[i].controls.business_years.clearValidators();\n control.controls[i].controls.business_years.updateValueAndValidity();\n control.controls[i].controls.business_entity_type.clearValidators();\n control.controls[i].controls.business_entity_type.updateValueAndValidity();*/\n }\n if(index==\"companyrel\")\n {\n //For company_relationship\n const control=this.generalForm.controls['company_with_relationships'];\n control.removeAt(i);\n }\n }\n \n \n getdropdown()\n {\n this.qustCat.getcommondrop('EDUQUALIFICATION').subscribe(res=>{\n if(res['dataStatus']==true)\n {\n this.qualificationList=res['records'].filter(com=>com.isactive==1);\n }\n });\n this.qustCat.getcommondrop('BUSINESSENTITYTYPE').subscribe(res=>{\n this.businessEntityTypeList=res['records'].filter(com=>com.isactive==1);\n });\n\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.relationShipList = res['records'].filter(rel=>rel.isactive==1);\n }\n });\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.companyRelationShipList = res['records'].filter(com=>com.isactive==1);\n }\n });\n \n this.qustCat.getcommondrop('TITLES').subscribe(res=>{\n if(res['dataStatus']==true){\n this.titleList=res['records'].filter(com=>com.isactive==1);\n }\n });\n \n }\n\n getcoapplicantDetails(checkApplicantExist,exist_applicant_relation)\n {\n let applicantControl = this.generalForm.controls['applicant_list'];\n let relationControl = this.generalForm.controls['applicant_relation'];\n \n \n if(checkApplicantExist.length > 0)\n {\n checkApplicantExist.forEach(val => {\n applicantControl.push(this.createApplicant(val));\n });\n \n }\n if(exist_applicant_relation.length > 0){\n exist_applicant_relation.forEach(val => {\n relationControl.push(this.createApplicantRelation(val));\n //push related to details\n this.fetch_related_details.push(val.applicant_name);\n });\n }\n }\n\n createApplicant(elementValue:any){\n return this.fb.group({\n pd_co_applicant_id: [elementValue.pd_co_applicant_id],\n applicant_name: [elementValue.applicant_name],\n company_name: [elementValue.company_name],\n exist_status:[elementValue.exist_status==1 && elementValue.pd_co_applicant_id > 0 ? true : false],\n });\n }\n\n coapplicantChange(event,index,item)\n {\n \n let relationControl = this.generalForm.controls['applicant_relation'];\n let applicantControl = this.generalForm.controls['applicant_list'];\n \n if(item.exist_status.value)\n {\n if(item.pd_co_applicant_id.value==0){\n let modal = this.modal.create(PdQuestionGeneralOtherApplicantPage);\n modal.onDidDismiss(data => {\n if(data!=1){\n data.otherName.forEach(val=>\n {\n\n let applicant_details: any= {'pd_co_applicant_id':val.pd_co_applicant_id,'applicant_name':val.applicant_name,'applicant_relation_to':'','relation':'','company_name':'','company_relation':''};\n relationControl.push(this.createApplicantRelation(applicant_details));\n // push related to details\n this.fetch_related_details.push(val.applicant_name);\n });\n }else\n {\n applicantControl.at(index).get('exist_status').setValue(false);\n \n \n }\n });\n modal.present();\n }else\n {\n \n let applicant_details: any= {'pd_co_applicant_id':item.pd_co_applicant_id.value,'applicant_name':item.applicant_name.value,'applicant_relation_to':'','relation':'','company_name':item.company_name.value,'company_relation':''};\n relationControl.push(this.createApplicantRelation(applicant_details));\n // push related to details\n this.fetch_related_details.push(item.applicant_name.value);\n }\n }\n else\n {\n let relationControl = this.generalForm.controls['applicant_relation'];\n let pos_id = relationControl.value.map(e=> \n e.pd_co_applicant_id).indexOf(item.pd_co_applicant_id.value);\n if(item.pd_co_applicant_id.value !=0){\n relationControl.removeAt(pos_id);\n let pos_name=this.fetch_related_details.indexOf(item.applicant_name.value);\n this.fetch_related_details.splice(pos_name, 1); \n }else\n {\n applicantControl.at(index).get('exist_status').setValue(false);\n \n }\n // remove related to details\n \n }\n\n }\n\n // update personal relation\n updatePersonalRelation(indexVal) {\n let control: any = this.generalForm.controls['persons_with_relationships'];\n control.controls[indexVal].value.relationship == 0 ? control.controls[indexVal].controls['relation_to'].setValue('') : control.controls[indexVal].controls['relation_to'].setValue(control.controls[indexVal].value.relation_to);\n }\n\n createApplicantRelation(elementValue: any) {\n return this.fb.group({\n \n pd_co_applicant_id: [elementValue.pd_co_applicant_id],\n applicant_name: [elementValue.applicant_name],\n company_name: [elementValue.company_name,elementValue.company_name ? Validators.required : Validators.nullValidator],\n company_relationship: [elementValue.company_relationship],\n applicant_relation_to: [elementValue.applicant_relation_to, Validators.required],\n relationship: [elementValue.relationship],\n });\n }\n // temparr=[];\n removereferance(index)\n {\n \n let relationControl = this.generalForm.controls['applicant_relation'];\n \n \n \n \n relationControl.removeAt(index);\n // this.temparr = [];\n \n }\n // createApplicateOthers()\n // {\n // return this.fb.group(\n // {\n // Name:\n // })\n // }\n ConvertMonthintoYearforBusiness(e,controlIndex,flag){\n \n\n let converted_month : number = e%12;\n let converted_year : number = e/12;\nif(flag==1){\n let control: any = this.generalForm.get('companies') as FormArray;\n control = control.controls[controlIndex];\n let business_year = control.controls.business_years.value;\n control.controls.business_years.setValue(+business_year + +Math.floor(converted_year));\n control.controls.business_month.setValue(Math.floor(converted_month));\n }\n else if(flag==2){\n let ri_year = this.generalForm.controls.rental_income_rcv_in_years.value;\n this.generalForm.controls['rental_income_rcv_in_years'].setValue(+ri_year + +Math.floor(converted_year));\n this.generalForm.controls['rental_income_rcv_in_month'].setValue(Math.floor(converted_month));\n }\n}\ngetDateObjects(values: any, controlIndex) {\n let control: any = this.generalForm.get('companies') as FormArray;\n control.controls['business_years']=''\n control.controls['business_month']=''\n control = control.controls[controlIndex];\n let pd_initiation_date:string = this.pdDetails.pd_date_of_initiation.split('/').reverse().join(\"/\");\n let date=new Date()\n\n let curr_date=date.getFullYear()+'/'+('0'+(date.getMonth()+1))+'/'+('0'+date.getDate())\n console.log(\"current date\",curr_date);\n let selected_date = this.pipe.transform(values, 'yyyy/MM/dd'); ;\n console.log(\"pd date\",pd_initiation_date);\n console.log(\"selected date\",selected_date)\n /*WORKING STATEMENT*/\n let months = date.getMonth() - values.getMonth() + (12 * (date.getFullYear() - values.getFullYear()));\n\nif (months >= 12) {\n console.log('years:', (months - (months %12))/12 );\n console.log(\"moth\",months%12);\n} else {\n console.log('only months',months);\n}\ncontrol.controls['business_years'].setValue((months - (months %12))/12);\n control.controls['business_month'].setValue(months%12);\n/*END OF WORKING STATEMENT*/\n //let diffInMs: number = Date.parse(pd_initiation_date) - Date.parse(selected_date);\n// function monthDiff(d1, d2) {\n// var months;\n// months = (d2.getFullYear() - d1.getFullYear()) * 12;\n// months -= d1.getMonth() + 1;\n// months += d2.getMonth();\n// return months <= 0 ? 0 : months;\n \n// }\n// console.log(\"new\",monthDiff( new Date(2008, 10, 4), new Date(2010, 2, 12) )) // March 12th, 2010);\n //var start_date=moment(start_date)\n /* old working statement*/\n // let diffInMs: number = Date.parse(selected_date) - Date.parse(curr_date);\n // let diff: number = Math.floor(diffInMs / 1000);\n // console.log(\"diff\",diff)\n // diff /= (60 * 60 * 24 * 30);\n // console.log(\"diff /\",diff)\n // diff=Math.abs(Math.round(diff));\n // control.controls['business_years'].setValue(0);\n // control.controls['business_month'].setValue(0);\n \n // if(diff){\n // control.controls['business_years'].setValue(Math.floor(diff / 12));\n // control.controls['business_month'].setValue(Math.floor(diff % 12));\n // }\n\n}\ntemp: number = 0;\n\n submitData(answerData)\n {\n console.table(this.generalForm.value);\n console.log(answerData);\n\nconsole.log('1)',this.temp);\n let saveRecords:any={}\n var valuesData_indi:any=[]\n\n var valuesData:any=[]\n var existData_indi=Object.keys(answerData.list_value).map(function(key){\n return answerData.list_value[key]\n })\n existData_indi.forEach((element)=>{\n valuesData_indi.push(element)\n })\n if(this.OldData_indi.length>0){\n this.OldData_indi.forEach((element)=>{\n valuesData_indi.push(element)\n })\n }\n\n var existData=Object.keys(answerData.company_value).map(function(key){\n return answerData.company_value[key]\n })\n if(this.customer_segment_abbr != 'SE-RI'){\n let count=0\n existData.forEach((element,index)=>{\n // console.log(\"company value\",element)\n if(element.business_entity_type=='' || element.business_entity_type == null){\n this.editCompanies(index);\n // this.focus_business_entity.focused=true;\n count=count+1;\n }\n valuesData.push(element)\n })\n if(count >0){\n this.toast.pdTriggerappmessage(\"Please choose business entity type for each companies\");\n return\n }\n }\n if(this.OldData.length>0){\n this.OldData.forEach((element)=>{\n valuesData.push(element)\n })\n }\n \n if (valuesData_indi.length > 0) {\n // console.log('2)',this.temp);\n valuesData_indi.forEach((val, index) => {\n if (val.is_person_met == false) {\n this.temp++;\n }\n // console.log('3)',this.temp);\n });\n // console.log('4)',this.temp,'length',valuesData_indi.length);\n if (this.temp == valuesData_indi.length) {\n // console.log('5)',this.temp);\n this.toast.pdTriggerappmessage('Please Choose Name of Person Met.!');\n this.temp = 0;\n // console.log('6)',this.temp);\n return;\n }\n }\n\n if (this.customer_segment_abbr != 'SE-RI') {\n saveRecords.companies=valuesData\n saveRecords.company_with_relationships=answerData.company_with_relationships\n saveRecords.rental_income_rcv_in_years = null;\n saveRecords.rental_income_rcv_in_month = null;\n //saveRecords.applicant_relation=answerData.applicant_relation; \n }\n else if (this.customer_segment_abbr == 'SE-RI') {\n saveRecords.companies = [];\n saveRecords.company_with_relationships = [];\n saveRecords.rental_income_rcv_in_years = answerData.rental_income_rcv_in_years;\n saveRecords.rental_income_rcv_in_month = answerData.rental_income_rcv_in_month;\n //saveRecords.applicant_relation=answerData.applicant_relation;\n }\n\n saveRecords.individuals=valuesData_indi;\n // saveRecords.companies=valuesData\n saveRecords.parent_pdid=answerData.parent_pdid\n saveRecords.pdid=answerData.pdid;\n saveRecords.formid=answerData.formid;\n saveRecords.fk_createdby=this.users; \n saveRecords.persons_with_relationships=answerData.persons_with_relationships;\n // saveRecords.company_with_relationships=answerData.company_with_relationships\n saveRecords.general_remark=answerData.general_remark;\n \n this.qustCat.saveForm(saveRecords).subscribe(dataResult=>{\n if(dataResult['dataStatus']==true){\n //TO CHANGE THE FORM STATE \n this.generalForm.reset(this.generalForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },3000);\n \n\n }\n else{\n this.toast.pdTriggerappmessage('Error');\n }\n })\n \n /* Old Data\n if(this.generalForm.valid)\n {\n let saveRecords:any = {}\n let applicantList:any=[];\n let applicantRelationList:any=[];\n // this for applicant list for selected\n answerData.applicant_list.forEach((element,key) => {\n if(element.exist_status==1){\n applicantList.push({\n \"pd_co_applicant_id\":element.pd_co_applicant_id,\n \"applicant_name\":element.applicant_name,\n }) \n }\n });\n // this is for selected applicant relation \n answerData.applicant_relation.forEach((element,key) => {\n applicantRelationList.push({\n \"pd_co_applicant_id\":element.pd_co_applicant_id,\n \"applicant_name\":element.applicant_name,\n \"company_name\":element.company_name,\n \"company_relationship\":element.company_relationship,\n \"applicant_relation_to\":element.applicant_relation_to,\n \"relationship\":element.relationship,\n }) \n });\n \n saveRecords.pdid=answerData.pdid;\n saveRecords.formid=answerData.formid;\n saveRecords.general_remark=answerData.general_remark;\n saveRecords.selected_applicant=applicantList;\n saveRecords.applicant_relation=applicantRelationList;\n saveRecords.fk_createdby = this.users;\n this.qustCat.saveForm(saveRecords).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n this.navCtrl.pop();\n } \n })\n }*/\n }\n\n getGeneralForm()\n {\n let records={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n this.qustCat.retiverForm(records).subscribe(res=>{\n this.data_all=res['records'];\n let exist_companies:any;\n let exist_company_with_relationship:any;\n let companyControl = this.generalForm.get('company_value') as FormArray;\n companyControl.controls=[]\n this.lengthv=this.data_all;\n if(res['dataStatus']==true)\n {\n \n \n this.generalForm.controls['general_remark'].setValue(this.data_all.general_remark);\n //\n\n var arrlist_indi:any=[] \n var exist_individuals=Object.keys(res['records'].individuals).map(function(key){\n return res['records'].individuals[key];\n }) \n if(exist_individuals.length>0){\n exist_individuals.forEach((element)=>{\n if(element.is_active != false){\n arrlist_indi.push(element);\n }\n else{\n this.OldData_indi.push(element)\n }\n })\n }\n this.initlistv(arrlist_indi,'get')\n \n \n if(this.data_all.persons_with_relationships != ''){\n this.initPersonRelationship(this.data_all.persons_with_relationships);\n }\n //Create Company with Relationship\n exist_company_with_relationship=Object.keys(res['records'].company_with_relationships).map(function(key){\n return res['records'].company_with_relationships[key];\n })\n console.log(\"Customer Segment\",this.customer_segment_abbr)\n if(this.customer_segment_abbr !='SE-RI')\n {\n if(exist_company_with_relationship.length>0){\n // exist_company_with_relationship.forEach(key=>{\n // console.log(\"company relation\",key)\n // this.initCompanyRelationShip(key)\n // })\n this.initCompanyRelationShip(exist_company_with_relationship);\n }\n else if(exist_company_with_relationship.length==0){\n this.initCompanyRelationShip('');\n }\n //create Companies\n exist_companies=Object.keys(res['records'].companies).map(function(key){\n return res['records'].companies[key];\n })\n var arraylis:any=[]\n if(exist_companies.length>0){\n exist_companies.forEach((element,cindex)=>{\n if(element.is_active!=false){\n arraylis.push(element);\n }\n else{\n this.OldData.push(element);\n }\n })\n \n }\n this.initCompanyValue(arraylis,'get');\n this.generalForm.controls['rental_income_rcv_in_years'].setValue(null);\n this.generalForm.controls['rental_income_rcv_in_month'].setValue(null);\n }\n else if(this.customer_segment_abbr == 'SE-RI'){\n this.generalForm.controls['rental_income_rcv_in_years'].setValue(res['records'].rental_income_rcv_in_years ? res['records'].rental_income_rcv_in_years:'');\n this.generalForm.controls['rental_income_rcv_in_month'].setValue(res['records'].rental_income_rcv_in_month ? res['records'].rental_income_rcv_in_month:'');\n\n }\n\n // var arraylis:any=[]\n \n \n // if(exist_companies.length>0){\n // exist_companies.forEach((element,cindex)=>{\n // if(element.is_active!=false){\n // arraylis.push(element);\n // }\n // else{\n // this.OldData.push(element);\n // }\n // })\n \n // }\n // this.initCompanyValue(arraylis,'get');\n \n \n\n // if(this.data_all.company_with_relationships != ''){\n // this.initCompanyRelationShip(this.data_all.company_with_relationships);\n // }\n \n }\n else{\n console.log(\"Else data\",this.pd_applicants_details)\n this.pd_applicants_details.forEach((datas,index)=>{\n datas.is_applicant=true,\n datas.is_person_met = false;\n datas.is_person_met_pic = '';\n datas.is_person_met_id_proof = '';\n datas.is_new = false;\n datas.is_main_applicant = datas.applicant_type == '1' ? true : false;\n datas.is_active = true;\n datas.individuals_order_id = index + 1;\n // company_order_id = index+1,\n datas.age = '',\n datas.qualification = '',\n datas.course_name = ''\n \n if (datas.company_name != '' && datas.company_name != null) {\n console.log(\"company\");\n let setCompanyValues: any = { company_order_id: companyControl.controls.length + 1, company_name: datas.company_name, is_company_applicant: datas.is_company_applicant, business_entity_type: datas.business_entity_type, business_entity_type_other: datas.business_entity_type_other, business_years: datas.business_years, business_month: datas.business_month, business_date_object: datas.business_date_object, is_new: datas.is_new, is_active: true, associate_pd_id:this.pdDetails.pd_id }\n companyControl.push(this.createCompanies(setCompanyValues))\n }\n });\n \n // this.lengthv.push(\"individuals\")\n // this.lengthv.push(\"companies\")\n // this.lengthv.push('persons_with_relationships')\n //this.lengthv.push(\"\")\n console.log(\"applicant\",this.lengthv)\n this.initlistv(this.pd_applicants_details,'get');\n this.initPersonRelationship(this.pd_applicants_details)\n // this.initCompanyValue(this.pd_applicants_details,'get');\n this.initCompanyRelationShip('')\n\n }\n })\n /*let records = {'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.pd_applicants_details.push({'pd_co_applicant_id':\"0\",'applicant_name':'Others'});\n \n let generalDetails = res['records'];\n this.generalForm.controls['general_remark'].setValue(generalDetails.general_remark);\n\n let applicant_relation = Object.keys(res['records'].applicant_relation).map(function(key)\n {\n return res['records'].applicant_relation[key];\n });\n\n let selected_applicant = Object.keys(res['records'].selected_applicant).map(function(key)\n {\n return res['records'].selected_applicant[key].pd_co_applicant_id;\n });\n let applicantControl = this.generalForm.controls['applicant_list'];\n \n let actual_applicant = this.pd_applicants_details.map(item => item.pd_co_applicant_id);\n let checkApplicantExist =actual_applicant.map((id, index) => {\n if (selected_applicant.indexOf(id) < 0) {\n this.pd_applicants_details[index].exist_status=0;\n return this.pd_applicants_details[index];\n }\n else{\n this.pd_applicants_details[index].exist_status=1;\n this.pd_applicants_details[index].applicant_relation_to='';\n this.pd_applicants_details[index].relation='';\n return this.pd_applicants_details[index];\n }\n }).filter(item => item != undefined);\n this.getcoapplicantDetails(checkApplicantExist,applicant_relation);\n }else\n {\n this.pd_applicants_details.push({'pd_co_applicant_id':\"0\",'applicant_name':'Others'});\n \n }\n })*/\n }\n createCompanies(elementValue:any) {\n var name=this.businessEntityById(elementValue.business_entity_type)\n return this.fb.group({\n company_order_id: [elementValue.company_order_id],\n company_name: [elementValue.company_name,],\n company_messrs_name: ['M/s'],\n is_company_applicant:[elementValue.is_company_applicant],\n business_entity_type :[elementValue.business_entity_type,Validators.required],\n business_years: [elementValue.business_years, Validators.required],\n business_month: [elementValue.business_month],\n business_date_object: [elementValue.business_date_object],\n is_active: [elementValue.is_active],\n is_new:[elementValue.is_new],\n business_entity_type_name:[name],\n associate_pd_id:[elementValue.associate_pd_id]\n \n });\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n\n sendImage(){\n \n this.loading.loaderForSendImage()\n console.log(\"image bucket - json data\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"DB - records\",JSON.stringify(records))\n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('applicant_name').value\n value.get('applicant_name').setValue(this.cons.sentenceCase(name));\n }\n\n ImageUpload(control,Flag : any){ \n if(Flag == 1){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n control.controls['is_person_met_pic'].setValue(res);\n //this.toast.pdTriggerappmessage('Flag 1 Success');\n }\n else{\n control.controls['is_person_met_pic'].setValue('');\n // this.toast.pdTriggerappmessage('Flag 1 Fail');\n }\n console.table('1',this.generalForm.value);\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n else if(Flag == 2){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n control.controls['is_person_met_id_proof'].setValue(res);\n // this.toast.pdTriggerappmessage('Flag 2 Success');\n }\n else{\n control.controls['is_person_met_id_proof'].setValue('');\n // this.toast.pdTriggerappmessage('Flag 2 Fail');\n }\n // console.table('1',this.generalForm.value);\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-general-info/pd-question-general-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams,ViewController } from 'ionic-angular';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\n\n/**\n * Generated class for the PdQuestionGeneralOtherApplicantPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-general-other-applicant',\n templateUrl: 'pd-question-general-other-applicant.html',\n})\nexport class PdQuestionGeneralOtherApplicantPage {\n otherForm:FormGroup;\napplicantInfo:any={'pd_co_applicant_id':\"0\",'applicant_name':'','company_name':''};\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public viewCtrl:ViewController) {\n this.otherForm = this.fb.group(\n {\n otherName:this.fb.array([]),\n })\n this.addmore();\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionGeneralOtherApplicantPage');\n }\n\n createName(elementValue:any)\n {\n return this.fb.group(\n {\n pd_co_applicant_id: [elementValue.pd_co_applicant_id],\n applicant_name: [elementValue.applicant_name, Validators.required],\n })\n }\n\n addmore()\n {\n if(this.otherForm.valid)\n {\n const control = this.otherForm.controls['otherName'];\n control.push(this.createName(this.applicantInfo));\n }\n }\n\n deleteappdata(index)\n {\n const control = this.otherForm.controls['otherName'];\n if(control.length==1){\n control.reset();\n }else{\n control.removeAt(index);\n }\n }\n\n closeModal(){\n this.viewCtrl.dismiss(1); \n }\n submitData(answerData)\n {\n if(this.otherForm.valid){\n this.viewCtrl.dismiss(this.otherForm.value);\n }\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-general-info/pd-question-general-other-applicant/pd-question-general-other-applicant.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Generated class for the SearchRelationPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: 'searchRelation',\n})\nexport class SearchRelationPipe implements PipeTransform {\n /**\n * Takes a value and makes it lowercase.\n */\n transform(value: any, searchItem:any): any {\n let findExistIndex = searchItem.existRelationList.filter(sVal=>sVal.relation_to==searchItem.currentApplicantID);\n if(findExistIndex.length>0){\n let check = value.filter(function(fVal){\n return !findExistIndex.some(function(sVal){\n return fVal.pd_co_applicant_id==searchItem.currentApplicantID || fVal.pd_co_applicant_id == sVal.pd_co_applicant_id;\n });\n })\n return check;\n }\n else {\n return value.filter(fVal=>fVal.pd_co_applicant_id!=searchItem.currentApplicantID);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/search-relation/search-relation.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray,Validators,FormControl} from '@angular/forms';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionNeighbourHoodPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-neighbour-hood',\n templateUrl: 'pd-question-neighbour-hood.html',\n})\nexport class PdQuestionNeighbourHoodPage {\n\n frequency: any;\n relationBusiness: any;\n users: any;\n FormId: any;\n pdDetails: any;\n neighbourhoodForm:FormGroup;\n check_type:any=[{'id':0,'type_name':'Neighbourhood'},{'id':1,'type_name':'Reference Check'}]\n finalRemarksList : any = [{'id': 1,'name': \"Positive\"},\n {'id': 2,'name': \"Negative\"},\n {'id': 3,'name': \"Insufficient information provided\"}];\n\n // amtInWords:any=[];\n applicants:any;\n isDisplay:any = [];\n isDisplay2:any = [];\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n isOrganisationOwner: any=[];\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public fb:FormBuilder, \n public constant: ConstantsProvider,private cameraProvider:CameraProvider,private loading:LoadingProvider)\n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2 && appt.pd_co_applicant_id != 0);\n this.applicants.push({'pd_co_applicant_id': 0,'applicant_name': \"Others\"})\n this.neighbourhoodForm = this.fb.group(\n {\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid:this.pdDetails.pd_id,\n formid:this.FormId.form_id,\n check_type:0,\n neighbourhood_list: this.fb.array([]),\n neighbourhood_status:[''],\n referencecheck_list: this.fb.array([]),\n neighbour_reference_remark:'' \n })\n this.users = this.aws.getlocale();\n \n \n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionNeighbourHoodPage');\n this.getneighbourhood();\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.neighbourhoodForm.dirty);\n if(this.neighbourhoodForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('RELATIONWITHBUSINESS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.relationBusiness = res['records'].filter(rel=>rel.isactive==1);\n }\n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.frequency = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n this.qustCat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(res=>{\n if(res.dataStatus==true){\n this.existCompanyList=res.records.filter(val=>val.is_active == true)\n console.log(this.existCompanyList)\n }\n let modifyCompanyList:any=[]\n if(this.existCompanyList.length>0){\n modifyCompanyList=this.existCompanyList.map(element=>{\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName: 'COMPANIES', groupValues: modifyCompanyList })\n \n }\n let modifyApplicantList:any=[]\n if(this.applicants.length>0){\n modifyApplicantList=this.applicants.map(element=>{\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n })\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n\n }\n console.log(\"company&Applicant\",this.mergeCompanyApplicant)\n })\n }\n inWords(val,i)\n {\n // this.amtInWords[i]=this.constant.convertNumberToWords(val.target.value)\n }\n keyPress(event: any) {\n const pattern = /[0-9]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n /** To Convert Month into Year */\n ConvertMonthintoYear(itemrow,e,flag){\n if(flag == 2){\n\n let year = itemrow.controls.year_relation_applicant.value;\n let converted_month : number = e%12;\n let converted_year : number = e/12;\n itemrow.controls.year_relation_applicant.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.months_relation_applicant.setValue(Math.floor(converted_month));\n }\n else if(flag == 1){\n \n let year = itemrow.controls.how_long_do_know_in_year.value;\n let converted_month : number = e%12;\n let converted_year : number = e/12;\n itemrow.controls.how_long_do_know_in_year.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.how_long_do_know_in_month.setValue(Math.floor(converted_month));\n }\n}\n\ntoggleVisibility(e,index,flag){ \n let val\n \n if(flag == 1){\n this.isDisplay[index] = e;\n }\n else if(flag==2){\n this.isDisplay2[index] = e;\n }\n}\n\ncheckOthers(values){\n if(values!=null) {\n return values==0 ? true : false;\n }\n else {\n return false;\n }\n}\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\n\n\ngetOtherOrganisationOwner(value,i) {\n //console.log('value',value,'I',i);\nlet Ctrls = this.neighbourhoodForm.controls['neighbourhood_list'];\n //console.log('ParCtrls',Ctrls);\nlet ChdCtrls:any = Ctrls.controls[i];\n // console.log('ChdCtrls',ChdCtrls);\n // return;\n\n\nlet Avaliablity = 1;\nconsole.log('val',value);\nif(value.length>0){\n value.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n}\nif(Avaliablity == 0){\n// console.log('if Avaliablity',Avaliablity);\n\n ChdCtrls.controls.other_organisation_owner.setValidators([Validators.required]);\n this.isOrganisationOwner[i] = true;\n}else if(Avaliablity == 1){\n// console.log('else Avaliablity',Avaliablity);\n// console.log('esle this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n ChdCtrls.controls.other_organisation_owner.setValue('');\n ChdCtrls.controls.other_organisation_owner.clearValidators();\n this.isOrganisationOwner[i] = false;\n// console.log('else this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n}\n \nChdCtrls.controls.other_organisation_owner.updateValueAndValidity(); \n}\n createreferance()\n {\n return this.fb.group({\n reference_name: [null],\n mobile: ['',Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n statecode:[null],\n landline: [null],\n location:[null],\n relationship_with:[null],\n others:[null],\n year_relation_applicant:[null],\n months_relation_applicant:[null],\n business_volume_amount:[null],\n business_volume_unit:[null],\n others_unit:[null],\n reference_final_remarks:[null],\n specify_final_remark:[null]\n });\n }\n addreferance()\n {\n const control = this.neighbourhoodForm.controls['referencecheck_list'];\n control.push(this.createreferance());\n }\n\n removereferance(i)\n {\n const control = this.neighbourhoodForm.controls['referencecheck_list'];\n if(control.length==1)\n {\n control.reset();\n }else{\n control.removeAt(i);\n }\n }\n\n createNeighbourhood(){\n return this.fb.group({\n neighbourhood_name: [null],\n do_know: [''],\n \n how_long_do_know_in_year: [''],\n how_long_do_know_in_month:[''],\n organisation_owner: [''],\n is_applicant_owner:[''],\n other_organisation_owner:[''],\n did_not_know_the_business_operation:[''],\n did_not_know_the_owner:[''],\n });\n }\n\n addneighbourhood()\n {\n const control = this.neighbourhoodForm.controls['neighbourhood_list'];\n control.push(this.createNeighbourhood());\n }\n\n removeneighbourhood(i)\n {\n const control = this.neighbourhoodForm.controls['neighbourhood_list'];\n if(control.length==1)\n {\n control.reset();\n }else{\n control.removeAt(i);\n }\n }\n\n submitData(answerData)\n {\n \n const neighbourhoodControl : FormGroup = this.neighbourhoodForm.controls['neighbourhood_list'] as FormGroup;\n let NbhdCtrlLength: any = neighbourhoodControl.controls.length;\n // this.neighbourhoodForm.controls['neighbourhood_status'].setValidators([Validators.required]);\n // this.neighbourhoodForm.controls['neighbourhood_status'].updateValueAndValidity();\n\n // this.neighbourhoodForm.controls['neighbour_reference_remark'].setValidators([Validators.required])\n // this.neighbourhoodForm.controls['neighbour_reference_remark'].updateValueAndValidity();\n if (NbhdCtrlLength > 0) {\n let Ncnt = 0;\n while(Ncnt < NbhdCtrlLength){\n\n let nbhdChildCtrl : any = neighbourhoodControl.controls[Ncnt]; \n\n // nbhdChildCtrl.controls['neighbourhood_name'].setValidators([Validators.required]);\n // nbhdChildCtrl.controls['neighbourhood_name'].updateValueAndValidity();\n\n // nbhdChildCtrl.controls['do_know'].setValidators([Validators.required]);\n // nbhdChildCtrl.controls['do_know'].updateValueAndValidity();\n \n\n if(nbhdChildCtrl.controls.do_know.value != ''){\n // console.log('nbhdChildCtrl.controls.did_not_know_the_business_operation.value',nbhdChildCtrl.controls.did_not_know_the_business_operation.value)\n if(nbhdChildCtrl.controls.did_not_know_the_business_operation.value == '' || nbhdChildCtrl.controls.did_not_know_the_business_operation.value == false){\n // console.log('IF nbhdChildCtrl.controls.did_not_know_the_business_operation.value',nbhdChildCtrl.controls.did_not_know_the_business_operation.value)\n // nbhdChildCtrl.controls['how_long_do_know_in_month'].setValidators([Validators.required]);\n // nbhdChildCtrl.controls['how_long_do_know_in_month'].updateValueAndValidity();\n nbhdChildCtrl.controls['how_long_do_know_in_year'].setValidators([Validators.required]);\n nbhdChildCtrl.controls['how_long_do_know_in_year'].updateValueAndValidity(); \n }\n else if(nbhdChildCtrl.controls.did_not_know_the_business_operation.value == true){\n // console.log('ELSE nbhdChildCtrl.controls.did_not_know_the_business_operation.value',nbhdChildCtrl.controls.did_not_know_the_business_operation.value)\n nbhdChildCtrl.controls['how_long_do_know_in_month'].setValue('');\n // nbhdChildCtrl.controls['how_long_do_know_in_month'].clearValidators();\n nbhdChildCtrl.controls['how_long_do_know_in_month'].updateValueAndValidity();\n nbhdChildCtrl.controls['how_long_do_know_in_year'].setValue('');\n nbhdChildCtrl.controls['how_long_do_know_in_year'].clearValidators();\n nbhdChildCtrl.controls['how_long_do_know_in_year'].updateValueAndValidity(); \n }\n\n if(nbhdChildCtrl.controls.did_not_know_the_owner.value == '' || nbhdChildCtrl.controls.did_not_know_the_owner.value == false){\n nbhdChildCtrl.controls['organisation_owner'].setValidators([Validators.required]);\n nbhdChildCtrl.controls['organisation_owner'].updateValueAndValidity();\n }\n else if(nbhdChildCtrl.controls.did_not_know_the_owner.value == true){\n nbhdChildCtrl.controls['organisation_owner'].setValue('');\n nbhdChildCtrl.controls['organisation_owner'].clearValidators();\n nbhdChildCtrl.controls['organisation_owner'].updateValueAndValidity();\n }\n }\n Ncnt++;\n }\n this.neighbourhoodForm.controls.neighbourhood_status.setValidators([Validators.required]);\n this.neighbourhoodForm.controls.neighbourhood_status.updateValueAndValidity();\n }\n\n\n if (this.neighbourhoodForm.invalid) {\n // this.validateAllFormFields(this._neighbourhoodForm);\n this.toast.pdTriggerappmessage('Please Fill All Mandatory Fields.!');\n return;\n }\n \n let saveRecords:any = {}\n let referencecheck_list:any=[];\n let neighbourhood_list:any=[];\n // if(answerData.check_type==0){\n answerData.neighbourhood_list.forEach((element,key) => {\n neighbourhood_list.push({\n \"neighbourhood_name\":element.neighbourhood_name,\n \"do_know\":element.do_know,\n \"how_long_do_know_in_year\":element.how_long_do_know_in_year,\n \"how_long_do_know_in_month\":element.how_long_do_know_in_month,\n \"is_applicant_owner\":element.is_applicant_owner,\n \"organisation_owner\":element.organisation_owner,\n \"other_organisation_owner\":element.other_organisation_owner,\n \"did_not_know_the_business_operation\":element.did_not_know_the_business_operation,\n \"did_not_know_the_owner\":element.did_not_know_the_owner\n }) \n });\n saveRecords.neighbourhood_list=neighbourhood_list;\n \n // }\n // else{\n // this for referencecheck_list for selected\n answerData.referencecheck_list.forEach((element,key) => {\n referencecheck_list.push({\n \"reference_name\":element.reference_name,\n \"mobile\":element.mobile,\n \"landline\":element.statecode+'-'+element.landline,\n \"location\":element.location,\n \"relationship_with\":element.relationship_with,\n \"others\":element.others,\n \"year_relation_applicant\":element.year_relation_applicant,\n \"months_relation_applicant\":element.months_relation_applicant,\n \"business_volume_amount\":element.business_volume_amount,\n \"business_volume_unit\":element.business_volume_unit,\n \"others_unit\":element.others_unit,\n \"reference_final_remarks\":element.reference_final_remarks,\n \"specify_final_remark\":element.specify_final_remark\n }) \n });\n saveRecords.referencecheck_list=referencecheck_list;\n \n // }\n saveRecords.parent_pdid=answerData.parent_pd_id\n saveRecords.pdid=answerData.pdid;\n saveRecords.formid=answerData.formid;\n // saveRecords.check_type=answerData.check_type;\n saveRecords.fk_createdby = this.users;\n saveRecords.neighbourhood_status=answerData.neighbourhood_status\n saveRecords.neighbour_reference_remark=answerData.neighbour_reference_remark;\n\n this.qustCat.saveForm(saveRecords).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.neighbourhoodForm.reset(this.neighbourhoodForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n \n }\n\n getneighbourhood()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n const control = this.neighbourhoodForm.controls['referencecheck_list']; \n const neicontrol = this.neighbourhoodForm.controls['neighbourhood_list'];\n \n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let neighbourDetails = res['records'];\n // neighbourDetails.neighbourhood_list.=''\n \n // if(neighbourDetails.check_type==0)\n // {\n \n this.neighbourhoodForm.controls['check_type'].setValue(0);//this one for mobile only\n this.neighbourhoodForm.controls['neighbour_reference_remark'].setValue(neighbourDetails.neighbour_reference_remark);\n this.neighbourhoodForm.controls['neighbourhood_status'].setValue(neighbourDetails.neighbourhood_status)\n let neighbourhood_list = Object.keys(res['records'].neighbourhood_list).map(function(key)\n {\n return res['records'].neighbourhood_list[key];\n });\n console.log('neighbourhood_list',neighbourhood_list);\n console.log('length',neighbourhood_list.length);\n if(neighbourhood_list.length > 0){\n\n \n neighbourhood_list.forEach((element,index)=>\n {\n this.toggleVisibility(element.did_not_know_the_business_operation,index,1);\n this.toggleVisibility(element.did_not_know_the_owner,index,2);\n neicontrol.push(this.createNeighbourhood());\n this.getOtherOrganisationOwner(element.organisation_owner,index)\n });\n this.neighbourhoodForm.controls['neighbourhood_list'].setValue(neighbourhood_list);\n \n\n }else\n {\n this.addneighbourhood();\n }\n // if(neighbourDetails.check_type==1)\n // {\n let referencecheck_list = Object.keys(res['records'].referencecheck_list).map(function(key)\n {\n return res['records'].referencecheck_list[key];\n });\n console.log('referencecheck_list',referencecheck_list);\n console.log('length',referencecheck_list.length);\n if(referencecheck_list.length > 0){\n // this.neighbourhoodForm.controls['check_type'].setValue(neighbourDetails.check_type);\n this.neighbourhoodForm.controls['neighbour_reference_remark'].setValue(neighbourDetails.neighbour_reference_remark);\n referencecheck_list.forEach((val,index)=>\n {\n let statecodesearch = val.landline.search(\"-\");\n referencecheck_list[index].statecode = val.landline.substr(0,statecodesearch);\n referencecheck_list[index].landline = val.landline.substr(+statecodesearch + 1,8);\n control.push(this.createreferance());\n // this.amtInWords[index]=this.constant.convertNumberToWords(val.business_volume_amount);\n });\n this.neighbourhoodForm.controls['referencecheck_list'].setValue(referencecheck_list);\n \n }else\n {\n this.addreferance();\n }\n }else\n {\n this.addneighbourhood();\n this.addreferance();\n }\n })\n }\n\n /*Image SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_organisation_owner').value\n value.get('other_organisation_owner').setValue(this.constant.sentenceCase(name));\n }\n\n\n}\n \n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder,FormArray,FormControl,Validators} from '@angular/forms';\n// import { t } from '@angular/core/src/render3';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { CameraProvider } from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionFinalRemarkPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-final-remark',\n templateUrl: 'pd-question-final-remark.html',\n})\nexport class PdQuestionFinalRemarkPage {\n\n m_remarkTypeCustomerBehaviour:any=[];\n\n users:any;\n pdDetails:any;\n pdid:any;\n FormId:any;\n _finalRemarkForm:FormGroup;\n m_recommendationList: any=[];\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n product_abbr: any;\n lender_short_name : any;\n mode_of_transport_values=[{'id':'two_wheeler','name':'Two Wheeler'},\n {'id':'four_wheeler','name':'Four Wheeler'},\n {'id':'public_transport','name':'Public Transport'},\n {'id':'others','name':'Others'}]\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb:FormBuilder,\n public qustcat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider,private cameraProvider:CameraProvider,private loading:LoadingProvider,private constantProvider:ConstantsProvider) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id\n this.FormId=this.navParams.get('FormId');\n this.users=aws.getlocale();\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n \n this._finalRemarkForm=this.fb.group({\n fk_createdby:[this.users],\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid:[this.pdid],\n formid:[this.FormId.form_id],\n final_custormer_remark_type:[null,Validators.compose([Validators.required])],\n final_other_customer_behaviour:[null],\n is_service_provided:[null],\n final_form_remarks:[null],\n pd_officers_recommendation:[null],\n others_pd_officers_recommendation:[''],\n // reason_for_positive:[''],\n // reason_for_negative:[''],\n // reason_for_refer_to_credit:[''],\n recommendation_positive:this.fb.array([]),\n recommendation_negative:this.fb.array([]),\n recommendation_refer_to_credit:this.fb.array([]),\n\n was_the_pd_address_ogl:[''],\n mode_of_transport_during_visit:['',Validators.compose([Validators.required])],\n others_transport:['',Validators.compose([Validators.required])]\n \n })\n\n if(this.lender_short_name == 'CLIX' || this.product_abbr == 'LAEP'){ \n this._finalRemarkForm.addControl('outlet_location', new FormControl('', Validators.required)) ;\n this._finalRemarkForm.addControl('is_competition', new FormControl(''));\n this._finalRemarkForm.addControl('sealing_activity', new FormControl('')); \n this._finalRemarkForm.addControl('demolition_activity', new FormControl('')); \n }\n else{ \n this._finalRemarkForm.removeControl('outlet_location');\n this._finalRemarkForm.removeControl('is_competition');\n this._finalRemarkForm.removeControl('sealing_activity'); \n this._finalRemarkForm.removeControl('demolition_activity'); \n }\n\n this.getDropDown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionFinalRemarkPage');\n this.getFinalRemark();\n this.getPDImages();\n \n }\n ionViewCanLeave(){\n console.log(\"dirty\",this._finalRemarkForm.dirty);\n if(this._finalRemarkForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\ngetDropDown(){\n this.qustcat.getcommondrop('CUSTOMERBEHAVIOUR').subscribe(res=>{\n this.m_remarkTypeCustomerBehaviour=res['records'].filter(data=>data.isactive==1)\n })\n this.qustcat.getcommondrop('PDOFFICERRECOMMENDATIONS').subscribe(res=>{\n this.m_recommendationList=res['records'].filter(val=>val.pdofficer_recommendation_id!=1)\n })\n}\ncreateRecomendationPositive(data){\n console.log(\"val\",data)\n return this.fb.group({\n reason_for_positive: data != null ? [data.reason_for_positive] : ['']\n })\n}\naddRecomendationPositive(){\n const control= this._finalRemarkForm.controls['recommendation_positive'];\n control.push(this.createRecomendationPositive(null))\n}\nremoveRecomendationPositive(index){\n const control= this._finalRemarkForm.controls['recommendation_positive'];\n control.removeAt(index);\n}\ncreateRecomendationNegative(data){\n return this.fb.group({\n reason_for_negative:data !=null ? [data.reason_for_negative] : ['']\n })\n}\naddRecomendationNegative(){\n const control= this._finalRemarkForm.controls['recommendation_negative']\n control.push(this.createRecomendationNegative(null))\n}\nremoveRecomendationNegative(index){\n const control= this._finalRemarkForm.controls['recommendation_negative']\n control.removeAt(index)\n}\ncreateRecomendationCreditRefer(data){\n return this.fb.group({\n reason_for_refer_to_credit:data!=null ? [data.reason_for_refer_to_credit] : ['']\n })\n}\naddRecomendationCreditRefer(){\n const control= this._finalRemarkForm.controls['recommendation_refer_to_credit']\n control.push(this.createRecomendationCreditRefer(null));\n}\nremoveRecomendationCreditRefer(index){\n const control= this._finalRemarkForm.controls['recommendation_refer_to_credit']\n control.removeAt(index)\n}\n\nRecommendationChange(e) {\n // console.log('Event',e);\n let recommendationPositiveCtrl: any = this._finalRemarkForm.get('recommendation_positive') as FormArray;\n let recommendationNegativeCtrl: any = this._finalRemarkForm.get('recommendation_negative') as FormArray;\n let recommendationReferToCredit: any = this._finalRemarkForm.get('recommendation_refer_to_credit') as FormArray;\n\n if (e == 1) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValidators([Validators.required]);\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n\n recommendationNegativeCtrl.removeAt(i + 1);\n\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[0];\n\n recommendationNegativeCtrl.controls['reason_for_negative'].setValue('');\n recommendationNegativeCtrl.controls['reason_for_negative'].clearValidators();\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n\n\n }\n }\n\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl.removeAt(i + 1);\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[0];\n recommendationPositiveCtrl.controls['reason_for_positive'].clearValidators();\n recommendationPositiveCtrl.controls['reason_for_positive'].setValue('');\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n recommendationReferToCredit.removeAt(i + 1);\n\n recommendationReferToCredit = recommendationReferToCredit.controls[0];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValue('');\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].clearValidators();\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n }\n }\n \n\n }\n if (e == 2) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].clearValidators();\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValue('');\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n recommendationReferToCredit.removeAt(i + 1);\n\n recommendationReferToCredit = recommendationReferToCredit.controls[0];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValue('');\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].clearValidators();\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n\n }\n }\n\n // this._finalRemarkForm.controls['reason_for_positive'].setValidators([Validators.required]);\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[i];\n recommendationPositiveCtrl.controls['reason_for_positive'].setValidators([Validators.required]);\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n\n recommendationNegativeCtrl.removeAt(i + 1);\n\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[0];\n\n recommendationNegativeCtrl.controls['reason_for_negative'].setValue('');\n recommendationNegativeCtrl.controls['reason_for_negative'].clearValidators();\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n\n }\n }\n\n\n }\n\n if (e == 3) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValue('');\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].clearValidators();\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n recommendationReferToCredit.removeAt(i + 1);\n\n recommendationReferToCredit = recommendationReferToCredit.controls[0];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValue('');\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].clearValidators();\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n }\n }\n\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl.removeAt(i + 1);\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[0];\n recommendationPositiveCtrl.controls['reason_for_positive'].clearValidators();\n recommendationPositiveCtrl.controls['reason_for_positive'].setValue('');\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[i];\n recommendationNegativeCtrl.controls['reason_for_negative'].setValidators([Validators.required]);\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n }\n }\n // this._finalRemarkForm.controls['reason_for_negative'].setValidators([Validators.required]);\n\n }\n if (e == 4) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValue('');\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].clearValidators();\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n\n recommendationReferToCredit = recommendationReferToCredit.controls[i];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValidators([Validators.required]);\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n\n }\n }\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n\n recommendationNegativeCtrl.removeAt(i + 1);\n\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[0];\n\n recommendationNegativeCtrl.controls['reason_for_negative'].setValue('');\n recommendationNegativeCtrl.controls['reason_for_negative'].clearValidators();\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n\n }\n }\n\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl.removeAt(i + 1);\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[0];\n recommendationPositiveCtrl.controls['reason_for_positive'].clearValidators();\n recommendationPositiveCtrl.controls['reason_for_positive'].setValue('');\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n }\n}\n getFinalRemark(){\n let saveRecords={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdid,'pd_form_id':this.FormId.form_id}\n this.qustcat.retiverForm(saveRecords).subscribe(data=>{\n if(data['dataStatus']==true){\n this._finalRemarkForm.controls.final_custormer_remark_type.setValue(data['records'].final_custormer_remark_type);\n \n this._finalRemarkForm.controls.final_other_customer_behaviour.setValue(data['records'].final_other_customer_behaviour);\n this._finalRemarkForm.controls.is_service_provided.setValue(data['records'].is_service_provided);\n this._finalRemarkForm.controls.pd_officers_recommendation.setValue(data['records'].pd_officers_recommendation);\n this._finalRemarkForm.controls.others_pd_officers_recommendation.setValue(data['records'].others_pd_officers_recommendation)\n this._finalRemarkForm.controls.was_the_pd_address_ogl.setValue(data['records'].was_the_pd_address_ogl);\n this._finalRemarkForm.controls.mode_of_transport_during_visit.setValue(data['records'].mode_of_transport_during_visit)\n this._finalRemarkForm.controls.others_transport.setValue(data['records'].others_transport);\n this.setValidation();\n // this._finalRemarkForm.controls.reason_for_positive.setValue(data['records'].reason_for_positive)\n // this._finalRemarkForm.controls.reason_for_refer_to_credit.setValue(data['records'].reason_for_refer_to_credit);\n // this._finalRemarkForm.controls.reason_for_negative.setValue(data['records'].reason_for_negative);\n if(data['records'].recommendation_positive.length>0){\n let recommendationPositiveCtrl: any = this._finalRemarkForm.get('recommendation_positive') as FormArray;\n data['records'].recommendation_positive.forEach((val,index)=>{\n console.log(\"for\",val);\n if(val.reason_for_positive != null){\n let obj={'reason_for_positive':val.reason_for_positive};\n recommendationPositiveCtrl.push(this.createRecomendationPositive(obj));\n }\n })\n }\n if(data['records'].recommendation_negative.length>0){\n let recommendationNegativeCtrl: any = this._finalRemarkForm.get('recommendation_negative') as FormArray;\n data['records'].recommendation_negative.forEach((val,index)=>{\n console.log(\"for\",val);\n let obj={'reason_for_negative':val.reason_for_negative};\n recommendationNegativeCtrl.push(this.createRecomendationNegative(obj))\n })\n }\n if(data['records'].recommendation_refer_to_credit.length>0){\n let recommendationReferToCredit: any = this._finalRemarkForm.get('recommendation_refer_to_credit') as FormArray;\n data['records'].recommendation_refer_to_credit.forEach(val=>{\n let obj={'reason_for_refer_to_credit':val.reason_for_refer_to_credit};\n recommendationReferToCredit.push(this.createRecomendationCreditRefer(obj))\n })\n }\n this._finalRemarkForm.controls.final_form_remarks.setValue(data['records'].final_form_remarks);\n\n if(this.lender_short_name == 'CLIX' || this.product_abbr == 'LAEP'){\n \n this._finalRemarkForm.controls.outlet_location.setValue(data['records'].outlet_location);\n this._finalRemarkForm.controls.is_competition.setValue(data['records'].is_competition);\n this._finalRemarkForm.controls.sealing_activity.setValue(data['records'].sealing_activity); \n this._finalRemarkForm.controls.demolition_activity.setValue(data['records'].demolition_activity); \n this.clixChange(data['records'].is_competition,1);\n this.clixChange(data['records'].sealing_activity,2);\n this.clixChange(data['records'].demolition_activity,3);\n \n if(data['records'].is_competition ==true){ this._finalRemarkForm.controls.appx_outlet_or_stores.setValue(data['records'].appx_outlet_or_stores);}\n if(data['records'].sealing_activity ==true){ this._finalRemarkForm.controls.comment_of_demolition_activity.setValue(data['records'].comment_of_demolition_activity);\n this._finalRemarkForm.controls.demolition_activity_pic.setValue(data['records'].demolition_activity_pic); }\n if(data['records'].demolition_activity ==true) {this._finalRemarkForm.controls.comment_of_sealing_activity.setValue(data['records'].comment_of_sealing_activity); \n this._finalRemarkForm.controls.sealing_activity_pic.setValue(data['records'].sealing_activity_pic); }\n }\n\n }\n else{\n let recommendationPositiveCtrl: any = this._finalRemarkForm.get('recommendation_positive') as FormArray;\n recommendationPositiveCtrl.push(this.createRecomendationPositive(null));\n let recommendationNegativeCtrl: any = this._finalRemarkForm.get('recommendation_negative') as FormArray;\n recommendationNegativeCtrl.push(this.createRecomendationNegative(null));\n let recommendationReferToCredit: any = this._finalRemarkForm.get('recommendation_refer_to_credit') as FormArray;\n recommendationReferToCredit.push(this.createRecomendationCreditRefer(null));\n }\n })\n \n }\n\n clixChange(e,flag){\n if(flag == 1){ \n console.log(e,flag);\n e==true ? this._finalRemarkForm.addControl('appx_outlet_or_stores', new FormControl('', Validators.required)) : this._finalRemarkForm.removeControl('appx_outlet_or_stores');\n }\n if(flag == 2){\n console.log(e,flag);\n e==true ? this._finalRemarkForm.addControl('comment_of_demolition_activity', new FormControl('', Validators.required)) : this._finalRemarkForm.removeControl('comment_of_demolition_activity');\n e==true ? this._finalRemarkForm.addControl('demolition_activity_pic', new FormControl('')) : this._finalRemarkForm.removeControl('demolition_activity_pic');\n }\n if(flag == 3){\n console.log(e,flag);\n e==true ? this._finalRemarkForm.addControl('comment_of_sealing_activity', new FormControl('', Validators.required)) : this._finalRemarkForm.removeControl('comment_of_sealing_activity');\n e==true ? this._finalRemarkForm.addControl('sealing_activity_pic', new FormControl('')) : this._finalRemarkForm.removeControl('sealing_activity_pic');\n }\n }\n\n saveFinalRemark(){\n if(this._finalRemarkForm.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields marked with '*' \")\n }\n else{\n var answerData=this._finalRemarkForm.value\n //To Remove The \"Null\" With Key also\n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n this.qustcat.saveForm(answerData).subscribe(res=>{\n if(res['dataStatus']==true){\n //TO CHANGE THE FORM STATE \n this._finalRemarkForm.reset(this._finalRemarkForm.value);\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Sorry!! Something Went Wrong\");\n }\n });\n }\n }\n\n ImageUpload(Flag : any){ \n if(Flag == 1){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this._finalRemarkForm.controls['demolition_activity_pic'].setValue(res);\n }\n else{\n this._finalRemarkForm.controls['demolition_activity_pic'].setValue('');\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n else if(Flag == 2){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this._finalRemarkForm.controls['sealing_activity_pic'].setValue(res);\n }\n else{\n this._finalRemarkForm.controls['sealing_activity_pic'].setValue('');\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n}\n\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustcat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\ncapture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustcat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n setValidation(){\n console.log(\"enter\");\n if(this._finalRemarkForm.controls['mode_of_transport_during_visit'].value == 'others'){\n this._finalRemarkForm.controls['others_transport'].setValue('');\n this._finalRemarkForm.controls['others_transport'].setValidators(Validators.compose([Validators.required]))\n this._finalRemarkForm.controls['others_transport'].updateValueAndValidity()\n }\n else{\n this._finalRemarkForm.controls['others_transport'].setValue('');\n this._finalRemarkForm.controls['others_transport'].clearValidators();\n this._finalRemarkForm.controls['others_transport'].updateValueAndValidity()\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-final-remark/pd-question-final-remark.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { PdQuestionSupplierInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info';\nimport { PdQuestionClientInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info';\nimport { PdQuestionStockInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info';\nimport { PdQuestionBusinessInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info';\nimport { PdQuestionBusinessAssetsPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets'\nimport {PdQuestionBusinessBankingPage} from '../../../pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking'\nimport {PdQuestionFinancialInfoPage} from '../../../pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info'\nimport {PdQuestionAssessedDashPage} from '../../../pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash'\nimport {PdQuestionFuturePlansAndBusinessEnvironmentPage} from '../../../pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment';\n\n/**\n * Generated class for the PdQuestionBusinessGroupPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-business-group',\n templateUrl: 'pd-question-business-group.html',\n})\nexport class PdQuestionBusinessGroupPage {\n \n FormId: any;\n pdDetails: any = [];\n existCompanyList: any = [];\n waitLoading:boolean;\n count:number;\n forms_order:any=[]\n\n constructor(public navCtrl: NavController, \n public navParams: NavParams,\n public qustCat:QuestionCategoryProvider){\n \n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n // this.getCompanyListForBusiness(); \n \n\n }\n ionViewCanEnter()\n {\n this.getCompanyListForBusiness(); \n //this.colorChange();\n\n }\n \n /** To Get General Form's Company List */\n getCompanyListForBusiness(): void{\n this.qustCat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(data=>{\n if(data.dataStatus){\n this.existCompanyList = data.records.filter(val =>val.is_active);\n // let forms=Object.keys(this.existCompanyList.form_status).map(function (key){\n // return this.existCompanyList.form_status[key]\n // })\n //console.log(forms)\n // console.log(this.existCompanyList)\n this.existCompanyList.forEach((key,ele)=>{\n this.forms_order.push(key.form_status)\n })\n console.log(this.forms_order)\n this.forms_order=this.forms_order.filter(val=>val.isAnswerable == true)\n console.log(this.forms_order)\n // this.existCompanyList.forEach(element=>{\n // console.log(element);\n // })\n \n \n // this.existCompanyList.array.forEach(element => {\n // console.log(element)\n // });\n \n \n // this.forms_order=this.existCompanyList.form_status.filter(val=>val.isAnswerable==true)\n if(this.existCompanyList.length==1){\n this.count=0\n }\n this.waitLoading = true;\n }\n else {\n this.waitLoading = false;\n }\n })\n }\n \n\n /** To Get Related Form Details */\n OnSelectBusinessGroupForms(details: any, company: any) {\n \n this.pdDetails.company_id = company.company_order_id;\n this.pdDetails.company_name = company.company_name;\n this.pdDetails.business_entity_type = company.business_entity_type;\n this.pdDetails.business_entity_type_other = company.business_entity_type_other;\n this.pdDetails.business_years = company.business_years;\n this.pdDetails.business_month = company.business_month;\n console.log(details.form_id);\n \n if(details.form_id==1){\n this.navCtrl.push(PdQuestionSupplierInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n }\n if(details.form_id==2){\n this.navCtrl.push(PdQuestionClientInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==11){\n this.navCtrl.push(PdQuestionStockInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==13){\n this.navCtrl.push(PdQuestionBusinessInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==14){\n this.navCtrl.push(PdQuestionFinancialInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==15){\n this.navCtrl.push(PdQuestionSupplierInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==21){\n this.navCtrl.push(PdQuestionBusinessBankingPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==22){\n this.navCtrl.push(PdQuestionBusinessAssetsPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==16){\n this.navCtrl.push(PdQuestionAssessedDashPage,{'formDetails':details,'pdDetails':this.pdDetails});\n }\n if(details.form_id==23){\n this.navCtrl.push(PdQuestionFuturePlansAndBusinessEnvironmentPage,{'formDetails':details,'pdDetails':this.pdDetails});\n }\n\n\n}\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-group.ts","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder,FormArray,Validator, Validators, FormControl } from '@angular/forms';\nimport { createPipe } from '@angular/compiler/src/core';\nimport { elementAt, takeUntil } from 'rxjs/operators';\nimport { ConstantsProvider } from '../../../../providers/constants/constants'\nimport { Subject, ReplaySubject } from 'rxjs';\nimport { searchValue } from '../../search'\nimport { CameraProvider } from '../../../../providers/common-provider/camera'\nimport { LoadingProvider } from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionBusinessInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-business-info',\n templateUrl: 'pd-question-business-info.html',\n})\nexport class PdQuestionBusinessInfoPage {\n stateList: any = [];\n users: any; formdetails: any;\n FormId: any;\n pdDetails: any;\n businessForm: FormGroup;\n applicants: any = [];\n businessEntityTypeList: any = {\n business_entity_type_id: String,\n business_entity_type_name: String,\n sourcsection_labeleName: String\n };\n generalExistEntityType: string\n generalExistEntityType_other: string;\n generalExistBusinessYear: Number;\n generalExistBusinessMonth: Number;\n pdid: any;\n step: number\n\n relationData: any = [];\n industryData: any = [];\n activityData: any = [];\n relativeNames: any;\n companyRelationShipList: any = []\n countryDataList: any = []\n exist_status: any;\n\n filterCityList: any = [];\n errorMessage: any = [];\n appxSalaryAmtInwords: any;\n titleData: any = []\n personsList: any = []\n\n ManufacturingChecked: boolean;\n RetailedChecked: boolean;\n WholeSalesChecked: boolean;\n ServiceChecked: boolean;\n ExportFlag: boolean = false;\n bankList: any = [];\n bankListValue: any = [];\n temp_additiondetailofposmachine: any = []\n isreadonlyyear: any = [];\n isreadonlymonth: any = [];\n EntityTypeFlag: boolean = false\n\n yearErrorMessage: any = [];\n monthErrorMessage: any = [];\n errorMessageForExistTotalWorkExperience: any = [];\n countryDataListValue: any = [];\n product_abbr: any;\n lender_short_name: any;\n\n @ViewChild('shareholding') share_focus: ElementRef\n private search: searchValue[]\n protected _onDestroy = new Subject();\n public filteredCity: ReplaySubject = new ReplaySubject(1);\n //public filterCity=new Rx.Subject()\n public filteredState: ReplaySubject = new ReplaySubject(1)\n public filteredCountry: ReplaySubject = new ReplaySubject(1)\n cityData: any = []\n cityDataValue: any = []\n imageDisplay: any[];\n imageBucket: any = [];\n tab: string = '0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws: AwsServiceProvider, public toast: ToastProvider,\n public qustCat: QuestionCategoryProvider, public fb: FormBuilder, public cons: ConstantsProvider,\n private loading: LoadingProvider, private cameraProvider: CameraProvider) {\n this.getStateCityDet();\n // console.log(typeof this.filteredCity)\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid = this.pdDetails.pd_id\n\n this.formdetails = this.navParams.get('formDetails');\n\n this.FormId = this.formdetails.form_id;\n this.users = this.aws.getlocale();\n\n this.applicants = this.pdDetails.applicat_details;\n console.log(\"pd\", this.pdDetails);\n this.generalExistEntityType = this.pdDetails.business_entity_type\n this.generalExistEntityType_other = this.pdDetails.business_entity_type_other\n this.generalExistBusinessYear = this.pdDetails.business_years;\n this.generalExistBusinessMonth = this.pdDetails.business_month;\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n this.step = 0\n\n\n\n // this.initBusinessForm();\n // this.getBuisnessDetails();\n\n this.businessForm = this.fb.group({\n fk_createdby: [this.users],\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.FormId],\n company_id: this.pdDetails.company_id,\n partners: this.fb.array([]),\n persons_with_relationships: this.fb.array([]),\n select_business_activity_type: this.fb.array([]),\n manufacturing_activity_details: this.fb.array([]),\n retail_trading_activity_details: this.fb.array([]),\n wholesale_trading_activity_details: this.fb.array([]),\n service_provider_activity_details: this.fb.array([]),\n // others_activity_details:this.fb.array([]),\n export_sale_of_total_sales: ['', Validators.compose([Validators.max(100), Validators.min(0)])],\n // applicant_use_mobile_wallets:[''],\n // applicant_use_pos_machines:[''],\n // no_of_pos_machines:[''],\n seasonality: [''],\n employees_total: ['', Validators.compose([Validators.required])],\n employees_permanent: ['', Validators.compose([Validators.required])],\n employees_temporary: ['', Validators.compose([Validators.required])],\n employees_appx_salary: [''],\n was_the_company_name_board_sighted: ['', Validators.compose([Validators.required])],\n officer_total: ['', Validators.compose([Validators.required])],\n shop_eat_act_cert: ['', Validators.compose([Validators.required])],\n // shop_eat_act_cert_pic:['', Validators.compose([Validators.required])],\n gst_Regn_cert: ['', Validators.compose([Validators.required])],\n //export_import_cert: [''],\n //factory_cert: [''],\n //practice_cert: [''],\n pf_regn: ['', Validators.compose([Validators.required])],\n esic_regn: ['', Validators.compose([Validators.required])],\n other_documents: [''],\n documents: this.fb.array([]),\n business_remarks: ['']\n })\n this.getdropdown();\n\n // this.initBusinessForm();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBusinessInfoPage');\n this.getPDImages();\n\n\n }\n getdropdown() {\n\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(data => {\n\n data['records'].forEach(val => {\n if (val.isactive == 1) {\n this.relationData.push(val);\n }\n })\n });\n this.qustCat.getcommondrop('BUSINESSENTITYTYPE').subscribe(data => {\n if (data['dataStatus'] == true) {\n let filterList = data['records'].filter(val => val.business_entity_type_id == this.generalExistEntityType);\n console.log(\"Filter\", filterList)\n if (filterList.length > 0) {\n this.businessEntityTypeList.business_entity_type_id = filterList[0].business_entity_type_id == 1;\n this.businessEntityTypeList.business_entity_type_name = filterList[0].business_entity_type_id != 1 ? filterList[0].business_entity_type_name : this.generalExistEntityType_other;\n this.businessEntityTypeList.section_label = filterList[0].business_entity_type_id != 1 ? filterList[0].section_label : this.generalExistEntityType_other;\n\n if (this.businessEntityTypeList.business_entity_type_name == 'OPC (One Person Company)' || this.businessEntityTypeList.business_entity_type_name == 'Sole proprietorship') {\n this.EntityTypeFlag = true;\n }\n }\n }\n\n });\n this.qustCat.getcommondrop('INDUSTRYCLASSIFICATION').subscribe(data => {\n\n data['records'].forEach(val => {\n if (val.isactive == 1) {\n this.industryData.push(val);\n }\n })\n });\n\n this.qustCat.getcommondrop('TYPEOFACTIVITY').subscribe(data => {\n\n data['records'].forEach(val => {\n if (val.isactive == 1 && val.type_of_activity_id != 1) {\n this.activityData.push(val);\n }\n })\n });\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(data => {\n this.companyRelationShipList = data['records'].filter(val => val.isactive == 1);\n\n });\n\n\n\n this.qustCat.getcommondrop('COUNTRY').subscribe(data => {\n this.countryDataList = data['records'].filter(val => val.isactive == 1);\n this.filteredCountry.next(this.countryDataList.slice());\n });\n this.qustCat.getcommondrop('TITLES').subscribe(data => {\n this.titleData = data['records'].filter(val => val.isactive == 1);\n })\n this.qustCat.getAllPersonsName(this.pdid).subscribe(data => {\n if (data.dataStatus) {\n\n this.personsList = data['record'].filter(val => val.applicant_type == 1)\n\n }\n })\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(data => {\n this.bankList = data['records'].filter(val => val.isactive == 1 && val.lender_type == 1);\n this.bankListValue = this.bankList.slice();\n })\n\n }\n getStateCityDet() {\n this.qustCat.getStateCityDetails().subscribe(data => {\n\n\n this.stateList = data.records\n this.filteredState.next(this.stateList.slice())\n\n this.getDetails();\n });\n\n\n }\n changeOfStartedBusiness(members, i, e) {\n if (e == 'yes') {\n members.controls.current_business_experiance_year.setValue(this.generalExistBusinessYear);\n this.isreadonlyyear[i] = this.generalExistBusinessYear != undefined ? true : false;\n members.controls.current_business_experiance_month.setValue(this.generalExistBusinessMonth);\n this.isreadonlymonth[i] = this.generalExistBusinessMonth != undefined ? true : false;\n }\n else {\n this.isreadonlyyear[i] = false;\n this.isreadonlymonth[i] = false;\n }\n }\n getDetails() {\n\n let params: any = {};\n params.parent_pdid = this.pdDetails.parent_pd_id\n params.pd_id = this.pdid;\n params.pd_form_id = 13\n params.company_id = this.pdDetails.company_id;\n this.qustCat.retiverForm(params).subscribe(data => {\n console.log('data[records]', data['records']);\n let businessVal = data['records']\n let constVal: any;\n\n\n const Partnr: any = this.businessForm.controls['partners'];\n\n const control1: any = this.businessForm.controls['persons_with_relationships'];\n\n const business_activity: any = this.businessForm.controls['select_business_activity_type'];\n\n const manufacture_details: any = this.businessForm.controls['manufacturing_activity_details'];\n const retailControl: any = this.businessForm.controls['retail_trading_activity_details'];\n const wholesaleControl: any = this.businessForm.controls['wholesale_trading_activity_details'];\n const serviceProviderControl: any = this.businessForm.controls['service_provider_activity_details'];\n // const othersControl:any=this.businessForm.controls['others_activity_details'];\n const otherDoc = this.businessForm.controls['documents'];\n //retailControl.push(this.manufactureDetails());\n //manufacture_details.push(this.manufactureDetails())\n\n // const india_sales:any= this.businessForm.controls['manufacturing_activity_details']['controls'][0].controls.india_where_sale_done;\n //india_sales.push(this.indiaSalesDone())\n //const country_sale:any=this.businessForm.controls['manufacturing_activity_details']['controls'][0].controls.countries_where_export_done;\n // country_sale.push(this.createCountrySale());\n //const max_sale_state:any= this.businessForm.controls['manufacturing_activity_details']['controls'][0].controls.max_sale_state_name;\n //max_sale_state.push(this.maxSaleState())\n this.product_abbr == 'LAEP' ? this.businessForm.addControl('fire_noc', new FormControl(null, Validators.compose([Validators.required]))) : this.businessForm.removeControl('fire_noc');\n if (data['status'] == 200) {\n\n let DocArray: any;\n let PartnrArray = Object.keys(data['records'].partners).map(function (key) {\n return data['records'].partners[key];\n })\n\n if (PartnrArray.length == 0) {\n Partnr.push(this.createPartners())\n }\n else {\n PartnrArray.forEach((datas, key) => {\n Partnr.push(this.createPartners());\n if (datas.partner_name == 'Others') {\n Partnr.controls[key].addControl('partner_other_name', new FormControl('', Validators.required))\n }\n if (parseInt(datas.total_business_experiance) > parseInt(datas.current_business_experiance_year)) {\n Partnr.controls[key].addControl('total_business_previous_experience', new FormControl('', Validators.required))\n }\n else {\n Partnr.controls[key].removeControl('total_business_previous_experience')\n }\n });\n }\n if (data['records'].persons_with_relationships) {\n let PartnrArray1 = Object.keys(data['records'].persons_with_relationships).map(function (key) {\n return data['records'].persons_with_relationships[key];\n })\n if (PartnrArray1.length > 0) {\n PartnrArray1.forEach((datas, key) => {\n control1.push(this.createRelationShip());\n })\n businessVal.persons_with_relationships = PartnrArray1\n\n }\n else {\n //control1.push(this.createRelationShip());\n businessVal.persons_with_relationships = []\n }\n }\n else {\n businessVal.persons_with_relationships = []\n\n }\n\n\n if (data['records'].other_documents == 'yes') {\n DocArray = Object.keys(data['records'].documents).map(function (key) {\n return data['records'].documents[key];\n });\n DocArray.forEach(datas => {\n otherDoc.push(this.createDocument());\n });\n } else {\n DocArray = [{ document: '', document_pic: '' }];\n otherDoc.push(this.createDocument());\n }\n businessVal.parent_pdid = this.pdDetails.parent_pd_id\n businessVal.pdid = this.pdid;\n businessVal.formid = 13;\n businessVal.company_id = this.pdDetails.company_id;\n businessVal.fk_createdby = this.users;\n //businessVal.designation = DesgnArray;\n businessVal.partners = PartnrArray;\n // businessVal.persons_with_relationships=PartnrArray1\n businessVal.documents = DocArray\n\n if (businessVal.employees_appx_salary) {\n this.appxSalaryAmtInwords = this.cons.convertNumberToWords(businessVal.employees_appx_salary);\n }\n\n\n // this.businessForm.controls['partners']['controls'].value.partner_other_name='dd'\n // this.businessForm.setValue(businessVal);\n //this.businessForm.value.seasonality\n let activityData = this.activityData.map(item => ({ name: item.name, type_of_activity_id: item.type_of_activity_id }))\n let exist_activity_data: any = [];\n if (data['records'].select_business_activity_type) {\n exist_activity_data = Object.keys(data['records'].select_business_activity_type).map(function (key) {\n return data['records'].select_business_activity_type[key].type_of_activity_id;\n });\n }\n\n let actual_businees_activity = activityData.map(item => item.type_of_activity_id);\n let check_exist_businees_activity = actual_businees_activity.map((id, index) => {\n if (exist_activity_data.indexOf(id) < 0) {\n activityData[index].exist_status = 0;\n return activityData[index];\n }\n else {\n activityData[index].exist_status = 1;\n return activityData[index];\n }\n }).filter(item => item != undefined);\n\n if (check_exist_businees_activity.length > 0) {\n check_exist_businees_activity.forEach((val, index) => {\n business_activity.push(this.createBusinessActivity(val));\n // this.businessForm.controls['select_business_activity_type'].value[index].exist_status=val.exist_status\n\n });\n\n businessVal.select_business_activity_type = check_exist_businees_activity;\n }\n // business_activity.push(this.createBusinessActivity())\n\n // this.businessForm.controls['select_business_activity_type'].setValue(check_exist_businees_activity)\n\n if (data['records'].manufacturing_activity_details) {\n let selectedManufacturing = Object.keys(data['records'].manufacturing_activity_details).map(function (key) {\n return data['records'].manufacturing_activity_details[key];\n });\n if (selectedManufacturing.length > 0) {\n selectedManufacturing.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('export_import_cert');\n selectedManufacturing.length > 0 ? this.businessForm.addControl('factory_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('factory_cert');\n\n selectedManufacturing.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'MActivity', index)\n manufacture_details.push(this.manufactureDetails())\n if (element.area_of_sale == 'Within India') {\n\n manufacture_details.controls[index].addControl('india_where_sale_done', this.fb.array([]))\n manufacture_details.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n manufacture_details.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n })\n }\n else if (element.area_of_sale == 'Export') {\n manufacture_details.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = manufacture_details.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n manufacture_details.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n manufacture_details.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n manufacture_details.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n\n manufacture_details.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = manufacture_details.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n\n }\n });\n businessVal.manufacturing_activity_details = selectedManufacturing;\n\n\n }\n else {\n\n businessVal.manufacturing_activity_details = [];\n }\n }\n else {\n\n businessVal.manufacturing_activity_details = [];\n }\n\n if (data['records'].retail_trading_activity_details) {\n\n let selectedRetail = Object.keys(data['records'].retail_trading_activity_details).map(function (key) {\n return data['records'].retail_trading_activity_details[key];\n });\n if (selectedRetail.length > 0) {\n selectedRetail.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('export_import_cert');\n selectedRetail.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl('')) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n selectedRetail.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl('')) : this.businessForm.removeControl('applicant_use_pos_machines');\n selectedRetail.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('no_of_pos_machines', new FormControl('')) : this.businessForm.removeControl('no_of_pos_machines');\n selectedRetail.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('pos_machines_details', this.fb.array([])) : this.businessForm.removeControl('pos_machines_details')\n selectedRetail.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'RActivity', index)\n retailControl.push(this.manufactureDetails());\n if (element.area_of_sale == 'Within India') {\n retailControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n retailControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n retailControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n }\n else if (element.area_of_sale == 'Export') {\n retailControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = retailControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n retailControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n retailControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n retailControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n retailControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = retailControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n });\n businessVal.retail_trading_activity_details = selectedRetail;\n }\n else {\n businessVal.retail_trading_activity_details = [];\n }\n }\n else {\n businessVal.retail_trading_activity_details = [];\n }\n\n\n // update whole sale details\n if (data['records'].wholesale_trading_activity_details) {\n let selectedWholesale = Object.keys(data['records'].wholesale_trading_activity_details).map(function (key) {\n return data['records'].wholesale_trading_activity_details[key];\n });\n if (selectedWholesale.length > 0) {\n selectedWholesale.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('export_import_cert');\n selectedWholesale.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl('')) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n selectedWholesale.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl('')) : this.businessForm.removeControl('applicant_use_pos_machines');\n selectedWholesale.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('no_of_pos_machines', new FormControl('')) : this.businessForm.removeControl('no_of_pos_machines');\n selectedWholesale.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('pos_machines_details', this.fb.array([])) : this.businessForm.removeControl('pos_machines_details')\n selectedWholesale.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'WActivity', index)\n wholesaleControl.push(this.manufactureDetails());\n if (element.area_of_sale == 'Within India') {\n wholesaleControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n wholesaleControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n wholesaleControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n }\n else if (element.area_of_sale == 'Export') {\n wholesaleControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = wholesaleControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n wholesaleControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n wholesaleControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n wholesaleControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n wholesaleControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = wholesaleControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n\n });\n businessVal.wholesale_trading_activity_details = selectedWholesale;\n }\n else {\n businessVal.wholesale_trading_activity_details = [];\n }\n }\n else {\n businessVal.wholesale_trading_activity_details = [];\n\n }\n\n\n if (data['records'].service_provider_activity_details) {\n let selectedService = Object.keys(data['records'].service_provider_activity_details).map(function (key) {\n return data['records'].service_provider_activity_details[key];\n })\n if (selectedService.length > 0) {\n selectedService.length > 0 ? this.businessForm.addControl('practice_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('practice_cert');\n selectedService.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl('')) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n selectedService.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl('')) : this.businessForm.removeControl('applicant_use_pos_machines');\n selectedService.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('no_of_pos_machines', new FormControl('')) : this.businessForm.removeControl('no_of_pos_machines');\n selectedService.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('pos_machines_details', this.fb.array([])) : this.businessForm.removeControl('pos_machines_details')\n\n selectedService.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'SPActivity', index)\n serviceProviderControl.push(this.manufactureDetails());\n\n if (element.area_of_sale == 'Within India') {\n serviceProviderControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n serviceProviderControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n serviceProviderControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n }\n else if (element.area_of_sale == 'Export') {\n serviceProviderControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n\n let innercontrol: any = serviceProviderControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n serviceProviderControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n serviceProviderControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n serviceProviderControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n serviceProviderControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = serviceProviderControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n\n\n }\n });\n\n\n businessVal.service_provider_activity_details = selectedService;\n\n }\n else {\n businessVal.service_provider_activity_details = [];\n\n }\n }\n else {\n businessVal.service_provider_activity_details = [];\n\n }\n\n // if(data['records'].others_activity_details){ \n\n // // update others activity details\n // let selectedOthers = Object.keys(data['records'].others_activity_details).map(function (key) {\n // return data['records'].others_activity_details[key];\n // });\n // if(selectedOthers.length > 0) {\n // selectedOthers.forEach((element,index)=>{\n // othersControl.push(this.createOthersActivity());\n // });\n // businessVal.others_activity_details=selectedOthers;\n // }\n // else{\n // businessVal.others_activity_details=[];\n // } \n // }\n // else {\n // businessVal.others_activity_details=[];\n\n // } \n\n // dynamically add form group control\n if (data['dataStatus']) {\n\n if (data['records'].seasonality.toUpperCase() == 'YES') {\n this.businessForm.addControl('peak_period_of_business', new FormControl('', Validators.required));\n this.businessForm.addControl('month_of_business_run', new FormControl('', Validators.required));\n }\n\n\n\n }\n\n\n // this.businessForm.controls['partners'].setValue(PartnrArray);\n //this.businessForm.controls['persons_with_relationships'].setValue(PartnrArray1)\n\n // this.businessForm.controls['manufacturing_activity_details'].setValue(businessVal.manufacturing_activity_details)\n if (businessVal.applicant_use_pos_machines == 'yes') {\n //For Adding the bank search in data\n businessVal.pos_machines_details.forEach(value => {\n value.bankSearch = ''\n })\n //-----------------------\n this.businessForm.controls.no_of_pos_machines.setValue(businessVal.no_of_pos_machines);\n const posControl: any = this.businessForm.controls['pos_machines_details'];\n for (let i = 1; i <= businessVal.no_of_pos_machines; i++) {\n\n posControl.push(this.createPOSMachinesDetails(businessVal.pos_machines_details));\n }\n }\n console.log('businessVal', businessVal);\n if (data['records'].gst_Regn_cert == 'yes') { this.businessForm.addControl('gst_Regn_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('gst_Regn_cert_pic'); }\n if (data['records'].factory_cert == 'yes') { this.businessForm.addControl('factory_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('factory_cert_pic'); }\n if (data['records'].practice_cert == 'yes') { this.businessForm.addControl('practice_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('practice_cert_pic'); }\n if (data['records'].shop_eat_act_cert == 'yes') { this.businessForm.addControl('shop_eat_act_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('shop_eat_act_cert_pic'); }\n if (data['records'].pf_regn == 'yes') { this.businessForm.addControl('pf_regn_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('pf_regn_pic'); }\n if (data['records'].esic_regn == 'yes') { this.businessForm.addControl('esic_regn_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('esic_regn_pic'); }\n if (data['records'].export_import_cert == 'yes') { this.businessForm.addControl('export_import_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('export_import_cert_pic'); }\n if (data['records'].fire_noc == 'yes') { this.businessForm.addControl('fire_noc_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('fire_noc_pic'); }\n\n this.businessForm.setValue(businessVal);\n\n\n }\n else {\n console.log('console.log 2');\n Partnr.push(this.createPartners());\n control1.push(this.createRelationShip())\n //otherDoc.push(this.createDocument());\n\n // find business activity type businees activity type list\n let activityData = this.activityData.map(item => ({ name: item.name, type_of_activity_id: item.type_of_activity_id, exist_status: 0 }))\n if (activityData.length > 0) {\n activityData.forEach(val => {\n business_activity.push(this.createBusinessActivity(val));\n });\n }\n\n }\n })\n // change business sessional\n this.businessForm.controls['seasonality'].valueChanges.subscribe(val => {\n val.toUpperCase() == 'YES' ? this.businessForm.addControl('peak_period_of_business', new FormControl('', Validators.required)) : this.businessForm.removeControl('peak_period_of_business');\n val.toUpperCase() == 'YES' ? this.businessForm.addControl('month_of_business_run', new FormControl('', Validators.required)) : this.businessForm.removeControl('month_of_business_run');\n });\n\n // if(this.businessForm.controls['gst_Regn_cert']){\n // this.businessForm.controls['gst_Regn_cert'].valueChanges.subscribe(val => {\n\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('gst_Regn_cert_pic', new FormControl('')) : this.businessForm.removeControl('gst_Regn_cert_pic');\n // });}\n // if(this.businessForm.controls['factory_cert']){\n // this.businessForm.controls['factory_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('factory_cert_pic', new FormControl('')) : this.businessForm.removeControl('factory_cert_pic');\n // });}\n // if(this.businessForm.controls['practice_cert']){\n // this.businessForm.controls['practice_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('practice_cert_pic', new FormControl('')) : this.businessForm.removeControl('practice_cert_pic');\n // });}\n // if(this.businessForm.controls['shop_eat_act_cert']){\n // this.businessForm.controls['shop_eat_act_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('shop_eat_act_cert_pic', new FormControl('')) : this.businessForm.removeControl('shop_eat_act_cert_pic');\n // });}\n // if(this.businessForm.controls['pf_regn']){\n // this.businessForm.controls['pf_regn'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('pf_regn_pic', new FormControl('')) : this.businessForm.removeControl('pf_regn_pic');\n // });}\n // if(this.businessForm.controls['esic_regn']){\n // this.businessForm.controls['esic_regn'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('esic_regn_pic', new FormControl('')) : this.businessForm.removeControl('esic_regn_pic');\n // });}\n // if(this.businessForm.controls['export_import_cert']){\n // this.businessForm.controls['export_import_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('export_import_cert_pic', new FormControl('')) : this.businessForm.removeControl('export_import_cert_pic');\n // });\n // }\n\n }\n\n filterCity(datasource: any, filterid: number) {\n // if(val){\n // console.log(\"val\",val)\n // return val\n // }\n\n\n if (filterid) {\n console.log(\"val filter\", filterid)\n let filter = this.stateList.filter(x => x.state_id == filterid);\n return filter.length > 0 ? filter[0].cities : [];\n }\n }\n filterCityData(datasource: any, filterid: number, index) {\n console.log(\"test\")\n console.log(filterid, index)\n\n if (filterid) {\n let filter = this.stateList.filter(x => x.state_id == filterid);\n this.cityData[index] = filter.length > 0 ? filter[0].cities : [];\n // this.filteredCity.next(this.cityData[index].slice())\n this.cityDataValue[index] = this.cityData[index].slice()\n console.log(\"filter \", this.cityDataValue[index])\n }\n // console.log(\"City value\",this.cityData[index])\n }\n\n // filter max sale options\n filterMaxSaleState(datasource: any, filterValues: any) {\n this.filterCityList = filterValues;\n if (filterValues) {\n let getOriginalStateList = datasource.map(dval => dval.state_id);\n let getStateValues = filterValues.filter(val => val.state_name).map(mapVal => mapVal.state_name);\n let setStateFilter: any = [];\n setStateFilter = getStateValues.map(x => {\n let findIndex = getOriginalStateList.indexOf(x);\n return datasource[findIndex];\n });\n return setStateFilter.length > 0 ? setStateFilter : [];\n }\n }\n filterMaxSaleCities(datasource: any, filterValues: any, selectedCites: any) {\n if (filterValues) {\n let setCityValues: any = [];\n let getOriginalStateList = datasource.map(dval => dval.state_id);\n filterValues.forEach((stateElement, statePos) => {\n selectedCites.forEach((existElement, existPos) => {\n if (stateElement == existElement.state_name && existElement.city_name.length > 0) {\n let findIndex = getOriginalStateList.indexOf(stateElement);\n findIndex = datasource[findIndex].cities;\n\n let getAllCities: any = existElement.city_name.filter(cVal => cVal == \"1\");\n // this is for throuh out states city\n if (getAllCities.length > 0) {\n setCityValues = setCityValues.concat.apply(setCityValues, findIndex);\n // console.log(\"First\",setCityValues)\n }\n // this is for seleted states city\n else {\n let check: any = findIndex.filter(function (fVal) {\n return existElement.city_name.some(function (sVal) {\n return fVal.city_id == sVal;\n });\n });\n setCityValues = setCityValues.concat.apply(setCityValues, check);\n // console.log(\"second\",setCityValues) \n\n }\n }\n\n });\n });\n return setCityValues.length > 0 ? setCityValues.filter(fVal => fVal.city_id != \"1\") : [];\n\n }\n else {\n return [];\n }\n }\n // filterMaxSaleCities(datasource: any,filterValues:any,selectedCites: any) { \n // console.log(selectedCites)\n // let existCities: any = selectedCites.filter(cfVal=>cfVal.city_name!='').map(mcVal=>mcVal.city_name);\n // console.log(\"selectd\",existCities)\n // existCities = [].concat.apply([], existCities);\n // existCities.forEach(element=>{\n // if(element== 1){\n\n // }\n // })\n // console.log(\"concat\",existCities)\n // if(filterValues){\n // let getOriginalStateList = datasource.map(dval => dval.state_id);\n // console.log(\"Original map\",getOriginalStateList)\n // let setCityFilter = filterValues.map(x => {\n // let findIndex = getOriginalStateList.indexOf(x);\n // findIndex = datasource[findIndex].cities;\n // return findIndex;\n // });\n // console.log(\"findindex\",setCityFilter)\n\n // let merged = [].concat.apply([], setCityFilter);\n // console.log(\"merge\",merged)\n\n // if(merged.length>0){\n // let check: any = merged.filter(function(fVal){\n // return existCities.some(function(sVal){\n // return fVal.city_id==sVal;\n // });\n // })\n // console.log(check);\n // return check;\n\n // }\n // else {\n // return [];\n // }\n // }\n // else {\n // return [];\n // }\n // }\n\n\n checkTotalEmployee(FormData) {\n this.businessForm.controls['employees_total'].setValue((+FormData.value.employees_permanent || 0) + (+FormData.value.employees_temporary || 0));\n }\n // checkWithExistBusinessYear(e,i){\n // if(e > this.generalExistBusinessYear){\n // this.errorMessage[i] = \"Higher than Business Vintage\";\n // }\n // else{\n // this.errorMessage[i] = '';\n // }\n // }\n\n checkWithExistBusinessYear(e, i, members) {\n\n if (+e > this.generalExistBusinessYear) {\n this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n members.controls.current_business_experiance_year.setValue('');\n }\n else {\n this.yearErrorMessage[i] = '';\n }\n }\n\n checkWithExistTotalWorkExperience(e, i, members) {\n\n if (+members.value.current_business_experiance_year > +e) {\n this.errorMessageForExistTotalWorkExperience[i] = \"Total Experience is Lower Than Experience in The Current Company\";\n members.controls.total_business_experiance.setValue('');\n }\n else {\n this.errorMessageForExistTotalWorkExperience[i] = '';\n }\n }\n\n // businees activity type change event\n changeBusinessActivity(event: any) {\n\n if (event.value.exist_status == true && event.value.type_of_activity_id == 2) {\n this.ManufacturingChecked = event.value.exist_status;\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n manufacturingControl.controls = [];\n manufacturingControl.setValue([]);\n\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 2) {\n this.ManufacturingChecked = event.value.exist_status;\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n manufacturingControl.push(this.manufactureDetails());\n\n\n }\n if (event.value.exist_status == true && event.value.type_of_activity_id == 3) {\n this.RetailedChecked = event.value.exist_status\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n retailControl.controls = [];\n retailControl.setValue([]);\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 3) {\n this.RetailedChecked = event.value.exist_status\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n retailControl.push(this.manufactureDetails());\n }\n if (event.value.exist_status == true && event.value.type_of_activity_id == 4) {\n this.WholeSalesChecked = event.value.exist_status\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n wholesaleControl.controls = [];\n wholesaleControl.setValue([]);\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 4) {\n this.WholeSalesChecked = event.value.exist_status\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n wholesaleControl.push(this.manufactureDetails());\n }\n if (event.value.exist_status == true && event.value.type_of_activity_id == 5) {\n this.ServiceChecked = event.value.exist_status\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n serviceControl.controls = [];\n serviceControl.setValue([]);\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 5) {\n this.ServiceChecked = event.value.exist_status\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n serviceControl.push(this.manufactureDetails());\n }\n\n // if(event.value.exist_status==true && event.value.type_of_activity_id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.controls = [];\n // othersControl.setValue([]);\n // }\n // else if(event.value.exist_status==false && event.value.type_of_activity_id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.push(this.createOthersActivity());\n // }\n // check activity type for make dosument sighted filed dynamically\n this.businessForm.value.manufacturing_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl(this.businessForm.value.export_import_cert, Validators.required)) : this.businessForm.removeControl('export_import_cert');\n this.businessForm.value.manufacturing_activity_details.length > 0 ? this.businessForm.addControl('factory_cert', new FormControl(this.businessForm.value.factory_cert, Validators.required)) : this.businessForm.removeControl('factory_cert');\n this.businessForm.value.service_provider_activity_details.length > 0 ? this.businessForm.addControl('practice_cert', new FormControl(this.businessForm.value.practice_cert, Validators.required)) : this.businessForm.removeControl('practice_cert');\n // check activity for extra question make dynamic\n\n this.businessForm.value.service_provider_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl(this.businessForm.value.applicant_use_mobile_wallets)) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n this.businessForm.value.service_provider_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl(this.businessForm.value.applicant_use_pos_machines)) : this.businessForm.removeControl('applicant_use_pos_machines');\n\n if (this.businessForm.value.service_provider_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0) {\n if (this.businessForm.controls['applicant_use_pos_machines'] && this.product_abbr == 'LAEP') {\n this.businessForm.controls['applicant_use_pos_machines'].setValue('yes');\n }\n this.changePOSMachinesAvailablity(this.businessForm.value.applicant_use_pos_machines, 2);\n }\n\n if (this.ManufacturingChecked || this.ManufacturingChecked == undefined && this.RetailedChecked || this.RetailedChecked == undefined && this.WholeSalesChecked || this.WholeSalesChecked == undefined && this.ServiceChecked || this.ServiceChecked == undefined) {\n this.ExportFlag = false;\n }\n }\n\n\n changeManufacturingAreaSale(getDetails: any, getIndex) {\n console.log('changeManufacturingAreaSale', getDetails.value.area_of_sale);\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n if (getDetails.value.area_of_sale == \"Within India\") {\n console.log('Within India', getDetails.value.area_of_sale);\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n console.log('Export', getDetails.value.area_of_sale);\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n console.log('Both', getDetails.value.area_of_sale);\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n\n // change retail options\n changeRetailAreaSale(getDetails: any, getIndex) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n\n if (getDetails.value.area_of_sale == \"Within India\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n\n // change whole options\n changeWholesaleAreaSale(getDetails: any, getIndex) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n\n if (getDetails.value.area_of_sale == \"Within India\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n // change service provider \n changeServiceArea(getDetails: any, getIndex) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n\n if (getDetails.value.area_of_sale == \"Within India\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n\n\n changePanIndiaOptions(type, selectedIndex, value) {\n if (type == 1) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n else if (type == 3) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n else if (type == 4) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n }\n\n // update partner group other form control\n changePartnerGroup(value, key) {\n let control: any = this.businessForm.get('partners') as FormArray;\n value == 'Others' ? control.controls[key].addControl('partner_other_name', new FormControl('', Validators.required)) : control.controls[key].removeControl('partner_other_name');\n }\n\n createDesignation(): FormGroup {\n return this.fb.group({\n sec_name: ['', Validators.compose([Validators.required])],\n sec_designation: ['', Validators.compose([Validators.required])],\n });\n }\n keyPress(event: any) {\n const pattern = /[0-9]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n getWorkExperience(event, key) {\n let current_experience = event.current_business_experiance_year == '' ? 0 : parseInt(event.current_business_experiance_year);\n let total_experience = event.total_business_experiance == '' ? 0 : parseInt(event.total_business_experiance);\n let control: any = this.businessForm.get('partners') as FormArray;\n if (total_experience > current_experience) {\n control.controls[key].addControl('total_business_previous_experience', new FormControl('', Validators.required))\n }\n else if (total_experience < current_experience) {\n //control.controls[key].controls['total_business_experiance'].setValue(current_experience);\n control.controls[key].removeControl('total_business_previous_experience')\n }\n\n else {\n control.controls[key].removeControl('total_business_previous_experience')\n }\n // let total ;\n // if(control.length > 0){\n // total = control.value.reduce((sum, val) => sum + +val.current_business_experiance_year, 0);\n // this.businessForm.controls.business_years.setValidators([Validators.required, Validators.min(+total)]);\n // this.businessForm.controls.business_years.updateValueAndValidity();\n // }\n }\n // Out of Total Export Sales what % of Sales is done in Albania?\n getPlaceHolderName(id) {\n let name = this.countryDataList.filter(value => value.country_id == id);\n\n return 'Out of Total Export Sales what % of Sales is done in ' + name[0].country_name + ' ?';\n // return name[0].country_name +'?';\n }\n ConvertMonthintoYear(itemrow, e, i) {\n\n console.log('datas', e, i);\n let year = itemrow.controls.current_business_experiance_year.value;\n\n let converted_month: number = e % 12;\n let converted_year: number = e / 12;\n\n itemrow.controls.current_business_experiance_year.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.current_business_experiance_month.setValue(Math.floor(converted_month));\n\n // if (year > this.generalExistBusinessYear) {\n // console.log('data')\n // this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n // itemrow.controls.current_business_experiance_year.setValue('');\n // itemrow.controls.current_business_experiance_month.setValue('');\n\n // }\n // else {\n // if (year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth) {\n // this.monthErrorMessage[i] = \"Higher than Business Vintage\";\n // itemrow.controls.current_business_experiance_year.setValue('');\n // itemrow.controls.current_business_experiance_month.setValue('');\n\n // } else {\n // this.monthErrorMessage[i] = '';\n // this.yearErrorMessage[i] = '';\n // itemrow.controls.current_business_experiance_year.setValue(year);\n // itemrow.controls.current_business_experiance_month.setValue(Math.floor(converted_month));\n // }\n // }\n\n }\n\n\n\n createPartners(): FormGroup {\n return this.fb.group({\n partner_name: ['', Validators.compose([Validators.required])],\n // partner_other_name:[''],\n shareholding: [''],\n started_business: [''],\n current_business_experiance_year: [''],\n current_business_experiance_month: [''],\n total_business_experiance: [''],\n // total_business_previous_experience:['']\n /* shareholding: ['', Validators.compose([Validators.required])],\n current_business_experiance: ['', Validators.compose([Validators.required])],\n total_business_experiance: ['', Validators.compose([Validators.required])],*/\n });\n }\n createRelationShip(): FormGroup {\n return this.fb.group({\n family_member_salutation: [''],\n family_member_name: [''],\n other_family_relationship_id: [''],\n relation_to_id: [''],\n relationship_with_company_id: [''],\n started_business: ['']\n });\n }\n createBusinessActivity(details): FormGroup {\n return this.fb.group({\n type_of_activity_id: [details.type_of_activity_id, Validators.compose([Validators.required])],\n name: [details.name, Validators.compose([Validators.required])],\n exist_status: [details.exist_status == 1 ? true : false]\n });\n }\n createServiceActivity(): FormGroup {\n return this.fb.group({\n main_products: ['', Validators.compose([Validators.required])],\n area_of_sale: ['', Validators.compose([Validators.required])],\n description: ['']\n });\n }\n createOthersActivity(): FormGroup {\n return this.fb.group({\n others_details: ['', Validators.compose([Validators.required])]\n });\n }\n manufactureDetails(): FormGroup {\n return this.fb.group({\n main_products: [''],\n area_of_sale: [''],\n description: ['']\n // pan_india_options:[''],\n // india_where_sale_done:this.fb.array([]),\n //max_sale_state_name:this.fb.array([]),\n //countries_where_export_done:this.fb.array([])\n })\n }\n indiaSalesDone(): FormGroup {\n return this.fb.group({\n state_name: [''],\n city_name: [''],\n stateSearch: [''],\n citySearch: ['']\n })\n }\n maxSaleState(): FormGroup {\n return this.fb.group({\n state_name: [''],\n city_name: [''],\n stateSearch: [''],\n citySearch: ['']\n })\n }\n createDocument() {\n return this.fb.group({\n document: [''],\n document_pic: [''],\n });\n }\n addDesignation() {\n const control = this.businessForm.controls['designation'];\n control.push(this.createDesignation());\n }\n deleteDesignation(index) {\n const control = this.businessForm.controls['designation'];\n if (control.length == 1) {\n this.businessForm.controls['designation'].reset();\n } else {\n control.removeAt(index);\n }\n }\n addPartnerDetails(event) {\n const control = this.businessForm.controls['partners'];\n event.stopPropagation()\n let length = control.length;\n this.step = length;\n\n control.push(this.createPartners());\n }\n addPersonRelationship(event) {\n event.stopPropagation()\n const control = this.businessForm.controls['persons_with_relationships']\n let length = control.length\n this.step = length\n control.push(this.createRelationShip());\n }\n deletePersonRelationship(index) {\n const control = this.businessForm.controls['persons_with_relationships'];\n control.removeAt(index)\n }\n deletePartnerDetails(index) {\n const control = this.businessForm.controls['partners'];\n if (control.length == 1) {\n this.businessForm.controls['partners'].reset();\n } else {\n control.removeAt(index);\n }\n }\n addMoreManufacturing() {\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n manufacturingControl.push(this.manufactureDetails());\n }\n removeManufacturing(index) {\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n if (manufacturingControl.length > 1) {\n manufacturingControl.removeAt(index)\n }\n else {\n manufacturingControl.reset();\n }\n }\n addMoreRetail() {\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n retailControl.push(this.manufactureDetails());\n }\n removeRetail(index) {\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n if (retailControl.length > 1) {\n retailControl.removeAt(index)\n }\n else {\n retailControl.reset();\n }\n }\n addMoreWholesale() {\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n wholesaleControl.push(this.manufactureDetails());\n }\n removeWholesale(index) {\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n if (wholesaleControl.length > 1) {\n wholesaleControl.removeAt(index)\n }\n else {\n wholesaleControl.reset();\n }\n }\n addMoreServiceprovider() {\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n serviceControl.push(this.manufactureDetails());\n }\n removeServiceProvider(index) {\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n if (serviceControl.length > 1) {\n serviceControl.removeAt(index)\n }\n else {\n serviceControl.reset();\n }\n }\n // addMoreOthersActivity(){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.push(this.createOthersActivity());\n // }\n createCountrySale() {\n return this.fb.group({\n country_name: ['', Validators.compose([Validators.required])],\n countrySearch: [''],\n approx_sale: ['', Validators.compose([Validators.required])]\n });\n }\n\n addMoreState(mindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n\n\n }\n removeState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.removeAt(sindex);\n }\n }\n\n addRetailMoreState(rindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[rindex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[rindex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n }\n removeRetailState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.removeAt(sindex);\n }\n }\n // add more whole sale state\n addWholesaleMoreState(windex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[windex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[windex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n\n }\n // remove for whole sale\n removeWholesaleState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.removeAt(sindex);\n }\n }\n // add more service provider\n addServiceMoreState(sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control = control.controls[sindex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control = control.controls[sindex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n }\n\n // remove service provider\n\n removeServiceState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control1: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control1 = control1.controls[mindex].get('countries_where_export_done') as FormArray\n control1.removeAt(sindex)\n }\n }\n addDocuments() {\n const control = this.businessForm.controls['documents'];\n control.push(this.createDocument());\n }\n deleteDocuments(index) {\n const control = this.businessForm.controls['documents'];\n if (control.length == 1) {\n this.businessForm.controls['documents'].reset();\n } else {\n control.removeAt(index);\n }\n }\n\n UploadDocuments(index) {\n const control = this.businessForm.controls['documents'];\n const control_with_index = control.controls[index];\n this.cameraProvider.getpicture().then(res => {\n control_with_index.controls['document_pic'].setValue(res != 'error' ? res : '');\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n }\n\n relationChanged(event) {\n this.relativeNames = [];\n event.value.forEach(option => {\n this.relativeNames.push({ member: option });\n });\n }\n createPOSMachinesDetails(data) {\n if (data == null) {\n return this.fb.group({\n pos_machines_financial_institution_name: [''],\n bankSearch: [''],\n tid_no_of_pos_machine: [''],\n })\n }\n else {\n return this.fb.group({\n pos_machines_financial_institution_name: [data.pos_machines_financial_institution_name],\n bankSearch: [''],\n tid_no_of_pos_machine: [data.tid_no_of_pos_machine],\n })\n }\n }\n\n public initBusinessForm(): void {\n this.businessForm = this.fb.group({\n parent_pdid: this.pdDetails.parent_pd_id,\n pdid: this.pdDetails.pd_id,\n formid: this.FormId,\n fk_createdby: this.users,\n profession_name: ['', Validators.compose([Validators.required])],\n business_years: ['', Validators.compose([Validators.required])],\n industry: ['', Validators.compose([Validators.required])],\n type_of_activity: ['', Validators.compose([Validators.required])],\n seasonality: ['', Validators.compose([Validators.required])],\n designation: this.fb.array([]),\n partners: this.fb.array([]),\n employees_total: ['', Validators.compose([Validators.required])],\n employees_permanent: ['', Validators.compose([Validators.required])],\n employees_temporary: ['', Validators.compose([Validators.required])],\n officer_total: ['', Validators.compose([Validators.required])],\n officer_permanent: ['', Validators.compose([Validators.required])],\n officer_temporary: ['', Validators.compose([Validators.required])],\n invested_amount: ['', Validators.compose([Validators.required])],\n working_capital: ['', Validators.compose([Validators.required])],\n is_service_provided: ['', Validators.compose([Validators.required])],\n ownership_setup: ['', Validators.compose([Validators.required])],\n ownership_others: [''],\n rent_paid: [''],\n shop_eat_act_cert: ['', Validators.compose([Validators.required])],\n gst_Regn_cert: ['', Validators.compose([Validators.required])],\n export_import_cert: ['', Validators.compose([Validators.required])],\n factory_cert: ['', Validators.compose([Validators.required])],\n practice_cert: ['', Validators.compose([Validators.required])],\n pf_regn: ['', Validators.compose([Validators.required])],\n esic_regn: ['', Validators.compose([Validators.required])],\n other_documents: ['', Validators.compose([Validators.required])],\n documents: this.fb.array([]),\n business_remarks: ['', Validators.compose([Validators.required])],\n who_started: ['', Validators.compose([Validators.required])],\n main_person: ['', Validators.compose([Validators.required])],\n other_main_person: [''],\n family_members_involved: ['', Validators.compose([Validators.required])],\n before_business: ['', Validators.compose([Validators.required])],\n any_delays: ['', Validators.compose([Validators.required])],\n });\n }\n\n submitDetails() {\n\n // if (!this.businessForm.valid) {\n // return;\n // }\n\n if (this.businessForm.controls['export_sale_of_total_sales'].invalid) {\n this.toast.pdTriggerappmessage(\"Please enter a value between 0 and 100 in export sale as a % total sales\");\n return;\n }\n\n if (this.businessForm.controls['gst_Regn_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"GST Regn Cert is required\");\n return;\n }\n if (this.businessForm.controls['gst_Regn_cert_pic'] && this.businessForm.value.gst_Regn_cert == 'yes') { \n if (this.businessForm.controls['gst_Regn_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"gst regn cert pic is required\");\n return;\n }\n }\n\n\n if (this.businessForm.controls['factory_cert'] && this.businessForm.controls['factory_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"Factory Cert is required\");\n return;\n }\n if (this.businessForm.controls['factory_cert_pic'] && this.businessForm.value.factory_cert == 'yes') { \n if (this.businessForm.controls['factory_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"factory cert pic is required\");\n return;\n }\n }\n\n\n if (this.businessForm.controls['practice_cert'] && this.businessForm.controls['practice_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"Practice Cert is required\");\n return;\n }\n if (this.businessForm.controls['practice_cert_pic'] && this.businessForm.value.practice_cert == 'yes') { \n if (this.businessForm.controls['practice_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\" practice cert pic is required\");\n return;\n }\n }\n\n\n if (this.businessForm.controls['shop_eat_act_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"shop eat act cert is required\");\n return;\n }\n if (this.businessForm.controls['shop_eat_act_cert_pic'] && this.businessForm.value.shop_eat_act_cert == 'yes') { \n if (this.businessForm.controls['shop_eat_act_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"Shop eat act cert pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['pf_regn'].invalid) {\n this.toast.pdTriggerappmessage(\"PF Regn is required\");\n return;\n }\n if (this.businessForm.controls['pf_regn_pic'] && this.businessForm.value.pf_regn == 'yes') { \n if (this.businessForm.controls['pf_regn_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"PF Regn pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['esic_regn'].invalid) {\n this.toast.pdTriggerappmessage(\"ESIC Regn is required\");\n return;\n }\n if (this.businessForm.controls['esic_regn_pic'] && this.businessForm.value.esic_regn == 'yes') { \n if (this.businessForm.controls['esic_regn_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"ESIC Regn pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['export_import_cert'] && this.businessForm.controls['export_import_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"Export Import Cert is required\");\n return;\n }\n if (this.businessForm.controls['export_import_cert_pic'] && this.businessForm.value.export_import_cert == 'yes') { \n if (this.businessForm.controls['export_import_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"Export /Import Cert pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['fire_noc'] && this.businessForm.controls['fire_noc'].invalid) {\n this.toast.pdTriggerappmessage(\"Fire Noc is required\");\n return;\n }\n if (this.businessForm.controls['fire_noc_pic'] && this.businessForm.value.fire_noc == 'yes') { \n if (this.businessForm.controls['fire_noc_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"Fire Noc pic is required\");\n return;\n } }\n \n \n // if(this.businessForm.controls['export_sale_of_total_sales']){\n // if(this.businessForm.controls['export_sale_of_total_sales'].value > 100 || this.businessForm.controls['export_sale_of_total_sales'].value < 0){\n\n // }\n // }\n\n if (this.EntityTypeFlag == true) {\n let control: any = this.businessForm.controls['partners'];\n let control2: any = control.controls[0];\n\n control2.controls['shareholding'].clearValidators();\n control2.controls['shareholding'].updateValueAndValidity();\n control2.controls['shareholding'].setValue('100');\n\n\n // control.controls[0].removeControl('shareholding');\n // control.controls[0].removeControl('started_business');\n // control.controls[0].removeControl('current_business_experiance_year');\n // control.controls[0].removeControl('current_business_experiance_month');\n // control.controls[0].removeControl('total_business_experiance');\n\n // control2.controls['started_business'].setValue('');\n\n // control2.controls['current_business_experiance_year'].clearValidators();\n // control2.controls['current_business_experiance_year'].updateValueAndValidity();\n // control2.controls['current_business_experiance_year'].setValue('');\n\n // control2.controls['current_business_experiance_month'].setValue('');\n\n // control2.controls['total_business_experiance'].clearValidators();\n // control2.controls['total_business_experiance'].updateValueAndValidity();\n // control2.controls['total_business_experiance'].setValue('');\n // if(control2.controls['total_business_previous_experience'].value !=undefined){\n // control2.controls['total_business_previous_experience'].clearValidators();\n // control2.controls['total_business_previous_experience'].updateValueAndValidity();\n // control2.controls['total_business_previous_experience'].setValue('0');\n // }\n\n }\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n console.log(\"manufacture\", control);\n // control.controls.forEach(element=>{\n // if(element.controls['india_where_sale_done']){\n // element.controls\n // }\n // })\n\n let family: any = [];\n\n let design: any;\n //let records={'pdid':this.pdDetails.pd_id,'formid':this.FormId,'fk_createdby':this.users};\n let records: any;\n // records.pdid = this.pdDetails.pd_id;\n // records.formid = this.FormId;\n // records.fk_createdby = this.users;\n records = this.businessForm.value;\n\n //if(records.persons_with_relationships=='')\n if (records.other_documents == 'no') {\n delete records.documents;\n }\n if (records.rent_paid == '') {\n delete records.rent_paid;\n }\n if (records.ownership_others == '') {\n delete records.ownership_others;\n }\n // records.family_members_involved = this.relativeNames;\n if (!this.EntityTypeFlag) {\n let count: number = 0;\n if (records.partners.length > 0) {\n records.partners.forEach(element => {\n console.log(element)\n count += element.shareholding\n })\n }\n if (count >= 101) {\n this.toast.pdTriggerappmessage(\"Share Holding is Greater than 100 %\");\n // this.businessForm.get('shareholding').value.setFocus()\n //this.businessForm.controls['partners']\n console.log(this.businessForm.controls)\n // const control=this.businessForm.controls['partners'] as FormArray\n this.share_focus.nativeElement.focus();\n //control.get('shareholding').Focus()\n // this.businessForm.get('business_remarks').value.setFocus()\n return\n }\n }\n let validationFlag: number = 0;\n\n //type 1: Checking manufacturing_activity_details \n if (records.manufacturing_activity_details.length > 0) {\n\n records.manufacturing_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n let ManufacturingArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = ManufacturingArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n\n }\n\n //type 3 checking wholesale_trading_activity_details\n if (records.wholesale_trading_activity_details.length > 0) {\n\n records.wholesale_trading_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n let WholesaleTradingArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = WholesaleTradingArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n }\n\n //type 2 checking retail_trading_activity_details\n if (records.retail_trading_activity_details.length > 0) {\n\n records.retail_trading_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n let RetailTradingArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = RetailTradingArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n }\n\n\n //type 4 checking service_provider_activity_details\n if (records.service_provider_activity_details.length > 0) {\n\n records.service_provider_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n\n let ServiceProviderArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = ServiceProviderArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n }\n\n //validationFlag is greater then 0 means its display the notifer as warning\n if (validationFlag > 0) {\n this.toast.pdTriggerappmessage(\"warning!! Approximate sales doesn't add upto 100%\");\n return;\n }\n\n records.select_business_activity_type = records.select_business_activity_type.filter(value => value.exist_status == 1);\n if (records.pos_machines_details) {\n records.pos_machines_details.forEach(value => {\n delete value.bankSearch\n })\n }\n\n // if(records.manufacturing_activity_details.length > 0){\n // records.manufacturing_activity_details.forEach((val,index) => {\n // let manufacturingControl: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n // let childCtrl1 : any = manufacturingControl.controls[index].get('india_where_sale_done') as FormArray;\n // let childCtrl2 : any = manufacturingControl.controls[index].get('max_sale_state_name') as FormArray;\n // if(val.area_of_sale != \"Export\"){ \n // if(val.india_where_sale_done.length > 0){\n // val.india_where_sale_done.forEach((vals,inx) => {\n // childCtrl1.controls[inx].removeControl('citySearch');\n // delete vals.citySearch;\n // childCtrl1.controls[inx].removeControl('stateSearch');\n // delete vals.stateSearch;\n // });\n // }\n // if(val.max_sale_state_name.length > 0){\n // val.max_sale_state_name.forEach((vals,inx) => {\n // childCtrl2.controls[inx].removeControl('citySearch');\n // childCtrl2.controls[inx].removeControl('stateSearch');\n // });\n // }\n // }\n // });\n // }\n // console.log('records',records);\n this.qustCat.saveForm(records).subscribe(data => {\n if (data['dataStatus'] == true) {\n this.businessForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(() => {\n this.navCtrl.pop();\n }, 3000);\n }\n });\n }\n getBuisnessDetails() {\n let records = { 'parent_pdid': this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId };\n this.qustCat.retiverForm(records).subscribe(data => {\n let businessVal = data['records'];\n\n let constVal: any;\n const Desgn = this.businessForm.controls['designation'];\n const Partnr = this.businessForm.controls['partners'];\n const otherDoc = this.businessForm.controls['documents'];\n\n if (data['status'] == 200) {\n let DocArray: any;\n let DesgnArray = Object.keys(data['records'].designation).map(function (key) {\n return data['records'].designation[key];\n });\n let PartnrArray = Object.keys(data['records'].partners).map(function (key) {\n return data['records'].partners[key];\n });\n\n let selectedMembers = Object.keys(data['records'].family_members_involved).map(function (key) {\n return data['records'].family_members_involved[key];\n });\n let enduse: any = [];\n let existRelative: any = [];\n selectedMembers.forEach(val => {\n enduse.push(val.member);\n existRelative.push(val);\n });\n this.relativeNames = existRelative;\n if (DesgnArray.length == 0) {\n Desgn.push(this.createDesignation());\n } else {\n DesgnArray.forEach(datas => {\n Desgn.push(this.createDesignation());\n });\n\n }\n if (PartnrArray.length == 0) {\n Partnr.push(this.createPartners());\n } else {\n PartnrArray.forEach(datas => {\n Partnr.push(this.createPartners());\n });\n }\n if (data['records'].other_documents == 'yes') {\n DocArray = Object.keys(data['records'].documents).map(function (key) {\n return data['records'].documents[key];\n });\n DocArray.forEach(datas => {\n otherDoc.push(this.createDocument());\n });\n } else {\n DocArray = [{ document: '', document_pic: '' }];\n otherDoc.push(this.createDocument());\n }\n if (data['records'].ownership_setup != 'others') {\n businessVal.ownership_others = '';\n }\n if (data['records'].ownership_setup != 'rented') {\n businessVal.rent_paid = '';\n }\n businessVal.family_members_involved = enduse;\n businessVal.parent_pdid = this.pdDetails.parent_pd_id\n businessVal.pdid = this.pdDetails.pd_id;\n businessVal.formid = this.FormId;\n businessVal.fk_createdby = this.users;\n businessVal.designation = DesgnArray;\n businessVal.partners = PartnrArray;\n businessVal.documents = DocArray;\n\n this.businessForm.setValue(businessVal);\n } else {\n Desgn.push(this.createDesignation());\n Partnr.push(this.createPartners());\n otherDoc.push(this.createDocument());\n }\n\n });\n }\n setStep(index: number) {\n this.step = index;\n }\n inWords(e, flag) {\n switch (flag) {\n case 1:\n this.appxSalaryAmtInwords = this.cons.convertNumberToWords(e.target.value);\n break;\n }\n }\n ManufacturingCounterArray: any = [];\n RetailCounterArray: any = [];\n WholeSaleCounterArray: any = [];\n ServiceCounterArray: any = [];\n\n CheckExport(value, stringFlag, index) {\n //this.ExportFlag=false\n const parentControl = this.businessForm.controls['select_business_activity_type'];\n const childControl = parentControl.controls[0];\n\n\n // childControl.forEach((datas,index) => {\n\n\n // // exist_status==true && event.value.type_of_activity_id\n\n // });\n\n\n\n\n\n if (!this.ManufacturingChecked) {\n // console.log(\"Manu\")\n if (stringFlag == 'MActivity' && value == \"Both\") {\n this.ManufacturingCounterArray[index] = 1;\n }\n else if (stringFlag == 'MActivity' && value != \"Both\") {\n this.ManufacturingCounterArray[index] = 0;\n }\n } else if (this.ManufacturingChecked && stringFlag == 'MActivity') {\n // console.log(\"manu\");\n this.ManufacturingCounterArray[index] = 0;\n }\n\n if (!this.RetailedChecked) {\n if (stringFlag == 'RActivity' && value == \"Both\") {\n this.RetailCounterArray[index] = 1;\n }\n else if (stringFlag == 'RActivity' && value != \"Both\") {\n this.RetailCounterArray[index] = 0;\n }\n }\n else if (stringFlag == 'RActivity' && this.RetailedChecked) {\n this.RetailCounterArray[index] = 0;\n }\n\n if (!this.WholeSalesChecked) {\n if (stringFlag == 'WActivity' && value == \"Both\") {\n this.WholeSaleCounterArray[index] = 1;\n }\n else if (stringFlag == 'WActivity' && value != \"Both\") {\n this.WholeSaleCounterArray[index] = 0;\n }\n }\n else if (stringFlag == 'WActivity' && this.WholeSalesChecked) {\n this.WholeSaleCounterArray[index] = 0;\n }\n\n if (!this.ServiceChecked) {\n\n if (stringFlag == 'SPActivity' && value == \"Both\") {\n this.ServiceCounterArray[index] = 1;\n }\n else if (stringFlag == 'SPActivity' && value != \"Both\") {\n this.ServiceCounterArray[index] = 0;\n }\n\n } else if (stringFlag == 'SPActivity') {\n this.ServiceCounterArray[index] = 0;\n }\n\n let SumOfManufacturingCounter = this.ManufacturingCounterArray.reduce((sum, val) => sum + +val, 0);\n\n let SumOfRetailCounter = this.RetailCounterArray.reduce((sum, val) => sum + +val, 0);\n\n let SumOfWholeSaleCounter = this.WholeSaleCounterArray.reduce((sum, val) => sum + +val, 0);\n\n let SumOfServiceCounter = this.ServiceCounterArray.reduce((sum, val) => sum + +val, 0);\n\n\n let overallCounter = SumOfManufacturingCounter + SumOfRetailCounter + SumOfWholeSaleCounter + SumOfServiceCounter;\n\n\n this.ExportFlag = overallCounter > 0 ? true : false;\n // console.log(this.ExportFlag);\n //console.log(overallCounter)\n\n }\n changePOSMachinesAvailablity(e, flag) {\n\n e == 'yes'\n ? this.businessForm.addControl('no_of_pos_machines', new FormControl(''))\n : this.businessForm.removeControl('no_of_pos_machines');\n\n if (flag == 2) {\n e == 'yes'\n ? this.businessForm.controls.no_of_pos_machines.setValue('')\n : this.businessForm.removeControl('no_of_pos_machines');\n }\n\n }\n toGetPOSMachinesDetails(e, flag) {\n\n if (flag == 1) { this.businessForm.addControl('pos_machines_details', this.fb.array([])); }\n const control = this.businessForm.controls['pos_machines_details'];\n\n while (control.length !== 0) {\n control.removeAt(0);\n }\n\n if (e > 0) {\n if (flag == 1) {\n for (let i = 1; i <= e; i++) {\n control.push(this.createPOSMachinesDetails(null));\n }\n }\n else if (flag == 2) {\n for (let i = 1; i <= e; i++) {\n control.push(this.createPOSMachinesDetails(this.temp_additiondetailofposmachine));\n }\n }\n }\n }\n // searchCountriesList(control:any,i:number){\n // if(!this.countryDataList){\n // return\n // }\n // let searchVal=control.controls['countrySearch'].value\n // if(!searchVal){\n // this.countryDataListValue=this.countryDataList.slice()\n // return\n // }\n // else{\n // searchVal=searchVal.toLowerCase();\n // this.countryDataListValue=this.countryDataList.filter(val=>val.country_name.toLowerCase().indexOf(searchVal)>-1)\n // }\n // }\n\n searchFun(control: any, i: number, option) {\n\n\n if (option == 'country') {\n console.log('option', option, control);\n control.controls['countrySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.searchCountries(control.controls['countrySearch'].value);\n })\n }\n if (option == 'city') {\n // this.cityData[i]=this.filterCity(this.stateList,control.value.state_name)\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'state') {\n // console.log(\"state\")\n control.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.searchState(control.controls['stateSearch'].value)\n\n })\n }\n //For Pos bank search using constant provider\n if (option == 'bank') {\n console.log(\"bank\", control.controls['bankSearch'].value)\n control.controls['bankSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.bankListValue = this.cons.searchData(this.bankList, control.controls['bankSearch'].value, option)\n })\n }\n }\n SearchCity(val: any, i: number) {\n // let cityData=\n // console.log(this.cityData[i])\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n this.cityDataValue[i] = this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.cityDataValue[i] =\n this.cityData[i].filter(val => val.city_name.toLowerCase().indexOf(searchValue) > -1)\n\n // console.log(\"City Data value\",this.cityDataValue[i])\n // this.filterCity('',1,this.cityData[i])\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n\n }\n searchState(val: any) {\n console.log(\"statedata\")\n if (!this.stateList) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n this.filteredState.next(this.stateList.slice())\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.filteredState.next(\n this.stateList.filter(res => res.state_name.toLowerCase().indexOf(searchVal) > -1)\n )\n }\n\n searchCountries(val: any) {\n console.log(\"Countrydata\");\n if (!this.countryDataList) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n this.filteredCountry.next(this.countryDataList.slice())\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.filteredCountry.next(\n this.countryDataList.filter(val => val.country_name.toLowerCase().indexOf(searchVal) > -1)\n )\n }\n\n /*IMAGE SECTION*/\n getPDImages() {\n //FOR RETRIEVING PICTURES\n this.imageDisplay = []\n let record_for_pic = { 'pd_id': this.pdDetails.pd_id, 'form_id': this.FormId, 'company_id': this.pdDetails.company_id }\n\n this.qustCat.getPDImages(record_for_pic).subscribe(val => {\n if (!val['msg']) {\n console.log(val['records'])\n if (val['records'].length > 0) {\n val['records'].forEach(result => {\n this.imageDisplay.push({ 'image': result.doc_url, 'Name': result.pd_document_title, 'option': 'dummy' })\n })\n console.log(\"imageBuck\", this.imageDisplay);\n }\n }\n })\n }\n changeName(value, index, img) {\n console.log(value);\n this.imageDisplay[index] = { 'image': img, 'Name': value }\n\n }\n changeNameForBucket(value, index, img) {\n this.imageBucket[index] = { 'image': img, 'Name': value }\n }\n removeImg(index) {\n this.imageDisplay.splice(index, 1);\n }\n removeImgForBucket(index) {\n this.imageBucket.splice(index, 1)\n }\n capture(value) {\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res => {\n console.log(\"Value\", res)\n if (res != 'error') {\n this.cons.getGeoTag().then(geoCoordinates => {\n console.log(\"geo promise\", geoCoordinates)\n if (value != '') {\n if (this.imageBucket.length != 0) {\n this.imageBucket.forEach((res, index) => {\n if (res.Name == value) {\n console.log(\"res[index]\", res[index])\n delete res[index]\n }\n this.imageBucket.push({ 'image': res, 'Name': value, 'link': geoCoordinates });\n })\n }\n this.imageBucket.push({ 'image': res, 'Name': value, 'link': geoCoordinates });\n\n }\n else {\n this.imageBucket.push({ 'image': res, 'Name': '', 'link': geoCoordinates });\n\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert = this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value => {\n console.log(\"alert value\", value);\n if (value) {\n this.imageBucket[this.imageBucket.length - 1].Name = value.Name\n }\n })\n } // Else End\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n\n this.tab = '1';\n\n\n }\n sendImage() {\n this.loading.loaderForSendImage()\n console.log(\"about business - Images bucket\", JSON.stringify(this.imageBucket));\n\n let records: any = {\n 'pd_id': this.pdDetails.pd_id,\n 'formid': this.FormId,\n 'images': this.imageBucket,\n 'company_id': this.pdDetails.company_id,\n\n }\n console.log(\"about Business images \", JSON.stringify(records));\n\n this.qustCat.savePDImages(records).subscribe(res => {\n console.log('response records', res, res['record']);\n if (res['dataStatus'] == true) {\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket = []\n this.getPDImages();\n }\n else {\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n\n }\n changeSentence(value) {\n console.log(\"val\", value)\n let name = value.get('partner_other_name').value\n value.get('partner_other_name').setValue(this.cons.sentenceCase(name));\n }\n\n ImageUpload(Flag: any) {\n\n this.cameraProvider.getpicture().then(res => {\n if (Flag == 1) { this.businessForm.controls.shop_eat_act_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 2) { this.businessForm.controls.gst_Regn_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 3) { this.businessForm.controls.export_import_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 4) { this.businessForm.controls.factory_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 5) { this.businessForm.controls.practice_cert_pic.setValue(res != 'error' ? res : ''); }// alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 6) { this.businessForm.controls.pf_regn_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 7) { this.businessForm.controls.esic_regn_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 8) { this.businessForm.controls.fire_noc_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n }\n\n radioChange(event, Flag) {\n if (Flag == 1) { event.value == 'yes' ? this.businessForm.addControl('shop_eat_act_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('shop_eat_act_cert_pic'); }\n if (Flag == 2) { event.value == 'yes' ? this.businessForm.addControl('gst_Regn_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('gst_Regn_cert_pic'); }\n if (Flag == 4) { event.value == 'yes' ? this.businessForm.addControl('factory_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('factory_cert_pic'); }\n if (Flag == 5) { event.value == 'yes' ? this.businessForm.addControl('practice_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('practice_cert_pic'); }\n if (Flag == 6) { event.value == 'yes' ? this.businessForm.addControl('pf_regn_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('pf_regn_pic'); }\n if (Flag == 7) { event.value == 'yes' ? this.businessForm.addControl('esic_regn_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('esic_regn_pic'); }\n if (Flag == 3) { event.value == 'yes' ? this.businessForm.addControl('export_import_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('export_import_cert_pic'); }\n if (Flag == 8) { event.value == 'yes' ? this.businessForm.addControl('fire_noc_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('fire_noc_pic'); }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info.ts","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service'\nimport { FormGroup,FormBuilder,FormArray, Validators} from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category'\nimport { ConstantsProvider } from '../../../../providers/constants/constants'\nimport { ToastProvider } from '../../../../providers/common-provider/toast'\nimport { controlNameBinding } from '@angular/forms/src/directives/reactive_directives/form_control_name';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionBusinessAssetsPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-business-assets',\n templateUrl: 'pd-question-business-assets.html',\n})\nexport class PdQuestionBusinessAssetsPage {\n currentYear:any=new Date().getFullYear();\n\n public m_any_asset_loan_type = [{'value': \"yes\",'viewValue': \"Yes\"},\n {'value': \"no\",'viewValue': \"No\"},\n {'value': \"nan\",'viewValue': \"NA\"}]\n\n company_id:any;\n pdDetails:any;\n formDetails : any;\n users:any;\n _businessAssetsQuesFrom:FormGroup;\n m_assets_type:any;\n m_propertyType:any;\n AssetValueInwords:any=[];\n appxMarketAmtInwords:any=[];\n RentAmtInwords:any=[]\n mergeCompanyApplicant:any=[];\n existCompanyList:any=[]\n applicants:any;\n data_all:any;\n CustSegAbbr: any;\n generalExistBusinessYear:Number;\n generalExistBusinessMonth:Number;\n yearErrorMessage: any=[];\n monthErrorMessage: any=[];\n addressLabel: any=[];\n placeholderName : any = []\n m_address_type:any=[]\n pageTitle: string;\n main_applicant: any;\n lender_applicant_id: any;\n subproduct_abbr: any;\n customer_segment_abbr: any;\n RentAmtInwordsForAddress: any =[];\n appxMarketAmtInwordsForAddress: any =[];\n isOtherOwnerForAddress : boolean = false;\n isOtherOwner: boolean = false;\n addressType:any = '';\n public m_vehicle_type = [];\n cityArr: any=[];\n pinArr: any=[];\n m_state_for_address: any=[];\n @ViewChild('remarksFocus') focusRemark:ElementRef\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n addressList: any=[];\n \n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public fb:FormBuilder,public qustcat:QuestionCategoryProvider,\n public cons:ConstantsProvider,public toast:ToastProvider,private loading:LoadingProvider,\n private cameraProvider:CameraProvider) {\n \n \n this.pdDetails=this.navParams.get('pdDetails');\n this.formDetails=this.navParams.get('formDetails');\n this.users=this.aws.getlocale();\n this.company_id=this.pdDetails.company_id;\n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n this.generalExistBusinessYear = this.pdDetails.business_years;\n this.generalExistBusinessMonth = this.pdDetails.business_month;\n this.pageTitle = this.pdDetails.company_name + ' - ' +this.pageTitle ;\n this.main_applicant = this.pdDetails.applicant_name;\n this.lender_applicant_id = this.pdDetails.lender_applicant_id;\n this.subproduct_abbr = this.pdDetails.subproduct_abbr;\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n this.getDropDown()\n \n \n \n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBusinessAssetsPage');\n this.getDetails()\n //this.getAddress()\n this.getPDImages();\n }\n chooseAddress(){\n let params:any={};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id;\n params.pd_form_id='5'\n this.qustcat.retiverForm(params).subscribe(data=>{\n const control=this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n if(data['status']==200){\n if(data['records'].is_pd_done_on_initiated_address){\n console.log(\"kd\",data['records'])\n }\n }\n })\n }\n getAddress(flag){\n let params:any={};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id;\n params.pd_form_id='5'\n\n this.qustcat.retiverForm(params).subscribe(data => {\n const control= this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n if(data['status'] == 200) {\n if(flag == 1){\n let initiated_address_check = data['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? data['records'].is_pd_done_on_initiated_address : true;\n this.addressList.push({ key_name: 'initiate_address', value: data['records'].addresses[0].address, description: 'Initiated Address' });\n if (initiated_address_check == false ) {\n this.addressList.push({ key_name: 'alternative_addresses', value: data['records'].alternative_addresses[0].alternative_address, description: 'Alternative Address' });\n }\n }\n if(flag == 2){\n let dataOfAddress = data['records'].addresses.filter(item => item.isactive == 1);\n this.addressList.push({ key_name: 'initiate_address', value: data['records'].addresses[0].address, description: 'Initiated Address' });\n let initiated_address_check = data['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? data['records'].is_pd_done_on_initiated_address : true;\n if (initiated_address_check == true && data['records'].addresses.length > 0) \n \n if(initiated_address_check == true && data['records'].addresses.length > 0){\n data['records'].addresses.forEach((data,inx)=>{\n this.addressLabel[inx] = '';\n console.log(\"address\",data)\n this.qustcat.getStateWiseCities(data.state).subscribe(res=>{\n if(res.dataStatus== true){\n console.log(\"state\",res)\n this.cityArr=res.records.cities\n this.pinArr = res.records.pincode;\n let selectedAddressType = this.m_address_type.filter(element => element.address_type_id == data.address_type)[0];\n let selectedState = this.m_state_for_address.filter(element => element.state_id == data.state)[0];\n let selectedCity = this.cityArr.filter(element => element.city_id == data.city)[0]; \n let selectedPincode = this.pinArr.filter(element => element.pincode_id == data.pincode)[0];\n \n console.log(selectedCity)\n \n if(selectedAddressType != '' && selectedAddressType != undefined){\n this.addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n }\n else{\n this.addressType=''\n }\n let address = data.address + ' , ' + selectedCity.city_name + ','+selectedState.name +'-' + (data.pincode == 1 ? data.pincode_others : selectedPincode.pincode);\n \n \n // let selectedAddressType = this.m_address_type.filter(element =>element.address_type_id == data.address_type)[0];\n // let address = data.address;\n // let addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n \n this.placeholderName[inx] = 'Was any business activity seen at the '+ this.addressType+' during PD visit?';\n //console.log(this.placeholderName)\n let addressLabel = \" : \"+address+' / '+ this.addressType ;\n console.log(\"dd\",addressLabel)\n let values={\n address_label:addressLabel,\n business_years: '',\n business_month: '',\n business_address_availability: '',\n business_is_pd_visited: '',\n business_pd_visited_remark: '', \n business_approximate_market_value: '',\n business_ownership_type: '',\n business_monthly_rented_amt: '',\n business_name_of_the_owner: '',\n business_name_of_the_other_owner: '',\n business_vintage: '',\n business_purchase_year: '',\n business_emi: ''\n }\n console.log('this.addressType',this.addressType);\n control.push(this.initBusinessDetailsWithdata(values));\n }\n })\n\n })\n \n }\n else if(initiated_address_check == true && data['records'].alternative_addresses.length > 0)\n {\n this.addressList.push({ key_name: 'alternative_addresses', value: data['records'].alternative_addresses[0].alternative_address, description: 'Alternative Address' });\n data['records'].alternative_address.forEach((data,inx)=>{\n this.qustcat.getStateWiseCities(data.state).subscribe(res=>{\n if (data['status'] == 200) {\n console.log(\"state\",res)\n this.cityArr=res.records.cities\n this.pinArr = res.records.pincode;\n let selectedAddressType = this.m_address_type.filter(element => element.address_type_id == data.address_type)[0];\n let selectedState = this.m_state_for_address.filter(element => element.state_id == data.state)[0];\n let selectedCity = this.cityArr.filter(element => element.city_id == data.city)[0]; \n let selectedPincode = this.pinArr.filter(element => element.pincode_id == data.pincode)[0];\n \n console.log(selectedCity)\n \n if(selectedAddressType != '' && selectedAddressType != undefined){\n this.addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n }\n else{\n this.addressType=''\n }\n let address = data.address + ' , ' + selectedCity.city_name + ','+selectedState.name +'-' + (data.pincode == 1 ? data.pincode_others : selectedPincode.pincode);\n \n \n // let selectedAddressType = this.m_address_type.filter(element =>element.address_type_id == data.address_type)[0];\n // let address = data.address;\n // let addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n \n this.placeholderName[inx] = 'Was any business activity seen at the '+ this.addressType+' during PD visit?';\n //console.log(this.placeholderName)\n let addressLabel = \" : \"+address+' / '+ this.addressType ;\n console.log(\"dd\",addressLabel)\n let values={\n address_label:addressLabel,\n business_years: '',\n business_month: '',\n business_address_availability: '',\n business_is_pd_visited: '',\n business_pd_visited_remark: '', \n business_approximate_market_value: '',\n business_ownership_type: '',\n business_monthly_rented_amt: '',\n business_name_of_the_owner: '',\n business_name_of_the_other_owner: '',\n business_vintage: '',\n business_purchase_year: '',\n business_emi: ''\n }\n console.log('this.addressType',this.addressType);\n control.push(this.initBusinessDetailsWithdata(values));\n }\n })\n })\n }\n else{\n control.push(this.initBusinessDetails())\n }\n }\n }\n else{\n control.push(this.initBusinessDetails());\n }\n });\n console.log(\"address List data\",this.addressList)\n }\n AutoCompleteUpdateFun(property_id,event,i){\n if(event != ''){\n let getList = this.addressList.map(dval => dval.value.replace(/\\s/g, \"\").toLowerCase());\n let getkeyname = this.addressList.map(dval => dval.key_name);\n let findName = this.m_address_type.find(x => x.address_type_id == property_id);\n // console.log(getkeyname.indexOf(i));\n let evt = event.replace(/\\s/g, \"\").toLowerCase();\n\n let keyexist = this.addressList.find(ob => ob['key_name'] === i);\n\n if (keyexist === undefined || keyexist === null && !getList.includes(evt)) {\n console.log('push on this');\n this.addressList.push({ key_name: i, value: event, description: findName.address_type + ' At Index ' + i });\n }\n else {\n let Index = getkeyname.indexOf(i);\n this.addressList[Index] = { key_name: i, value: event, description: findName.address_type + ' At Index ' + i }\n console.log('update on this => Index', Index);\n }\n\n console.log('at Final add or update ', this.addressList);\n }\n}\nremoveOptionOnAutoComplete(index){\n let getkeyname = this.addressList.map(dval => dval.key_name);\n let Index = getkeyname.indexOf(index);\n if (Index !== -1) {\n this.addressList.splice(Index, 1);\n }\n console.log('at Final remove', this.addressList);\n}\n getDropDown(){\n this.qustcat.getcommondrop('ADDRESSTYPE').subscribe(data=>{\n this.m_address_type=data['records'].filter(val=>val.isactive == 1);\n })\n this.qustcat.getcommondrop('VEHICLETYPE').subscribe(\n data => {\n this.m_vehicle_type = data['records'].filter(data => data.is_active == 1);\n })\n \n this.qustcat.getcommondrop('ASSETTYPE').subscribe(data=>{\n this.m_assets_type=data['records'].filter(val=>val.isactive==1 && val.flag==1);\n \n })\n\n this.qustcat.getcommondrop('PROPERTIES').subscribe(data=>{\n this.m_propertyType=data['records'].filter(val=>val.isactive==1)\n })\n\n this.qustcat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(data=>{\n if(data.dataStatus){\n this.existCompanyList=data['records'].filter(val=>val.is_active==true);\n \n }\n \n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n }\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n\n }\n })\n this.qustcat.getcommondrop('STATE').subscribe(data=>{\n this.m_state_for_address = data['records'].filter(val=>val.isactive ==1 )\n })\n\n \n \n }\n apiLoadFinish:boolean=false\n getDetails(){\n let params:any={};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id\n params.company_id=this.company_id\n params.pd_form_id=22\n this.qustcat.retiverForm(params).subscribe(res=>{\n \n if(res['dataStatus']==true){\n \n //this.data_all=res['records']\n /* var assestArray=Object.keys(res['records'].business_assets_details).map(function(key){\n return res['records'].business_assets_details[key]\n });\n \n //this.formLoadData(assestArray)\n this._businessAssetsQuesFrom.controls['business_assets_form_remark'].setValue(res['records'].business_assets_form_remark);\n if(assestArray.length>0){\n for(let val of assestArray){\n let formData={\n business_assets_mode: val.business_assets_mode,\n business_approximate_market_value: val.business_approximate_market_value,\n business_name_of_the_owner: val.business_name_of_the_owner,\n business_name_of_the_other_owner: val.business_name_of_the_other_owner,\n business_purchase_year: val. business_purchase_year,\n business_vintage : val.business_vintage,\n business_emi: val.business_emi,\n };\n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.push(this.initBusinessDetailsWithdata(formData));\n this.setBusinessAssetsDetailsWithData(formData.business_assets_mode, val.business_details, control.length- 1)\n }\n }*/\n this.formLoadData(res['records'])\n }\n\n \n else{\n this.formLoadData(null);\n }\n this.apiLoadFinish=true\n \n \n })\n //this.formLoadData(null);\n \n }\n \n formLoadData(data){\n if(data==null){\n this._businessAssetsQuesFrom=this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n /* formid: ['22'],*/\n formid: [this.formDetails.form_id],\n company_id : [this.company_id],\n fk_createdby:[this.users],\n \n business_assets_for_address: this.fb.array([]),\n //this.createBusinessAssetsForAddress(),\n business_assets_details : this.fb.array([\n this.initBusinessDetails(),\n ]),\n business_assets_form_remark:['']\n });\n this.getAddress(2);\n this.loadDetails=true;\n }\n else{\n this.getAddress(1);\n let value=data;\n this._businessAssetsQuesFrom=this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n /* formid: ['22'],*/\n formid: [this.formDetails.form_id],\n company_id : [this.company_id],\n fk_createdby:[this.users],\n // business_years:[value.business_years],\n // business_month:[value.business_month],\n // business_address_availability:[value.business_address_availability],\n // business_is_pd_visited:[value.business_is_pd_visited],\n // business_pd_visited_remark:[value.business_pd_visited_remark],\n business_assets_for_address: this.fb.array([]),\n business_assets_details : this.fb.array([]),\n business_assets_form_remark:[value.business_assets_form_remark || '']\n });\n // if (value.business_assets_for_address.business_address_availability == 'yes') {\n \n // this.addBusinessAssetsForAddress(value.business_assets_for_address);\n // }\n // else {\n // const control = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n // control.push(this.createBusinessAssetsForAddress());\n // } \n // this.addBusinessAssetsDetailsWithData(value.business_assets_details);\n this.addBusinessAssetsForAddress(value.business_assets_for_address);\n this.addBusinessAssetsDetailsWithData(value.business_assets_details);\n }\n\n this.loadDetails=true\n }\n\n initBusinessDetails(){\n return this.fb.group({\n address_label:[''],\n business_assets_mode:[''],\n business_details: this.fb.array([]),\n \n business_years:[''],\n business_month:[''],\n business_address_availability:[''],\n business_is_pd_visited:[''],\n business_pd_visited_remark:[''],\n \n business_approximate_market_value: [''],\n business_ownership_type:[''],\n business_monthly_rented_amt:[''],\n business_name_of_the_owner: [],\n business_name_of_the_other_owner: [],\n business_vintage: [''],\n business_purchase_year: ['',Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n business_emi: [''],\n \n })\n }\n loadProperty() {\n return this.fb.group({\n property_type: [''],\n other_property_type: [''],\n address_of_the_property: ['']\n });\n }\n load_Four_Weeler() {\n return this.fb.group({\n manufacturer_model_vehicle: [''],\n vehicle_type: [''],\n other_vehicle_type: ['']\n });\n }\n loadEquipmentManufacturingDescription() {\n return this.fb.group({\n equipment_manufacturing_description: ['']\n });\n }\n otherBusinessAssetsDescription() {\n return this.fb.group({\n any_other_assets: ['',Validators.compose([Validators.required])],\n any_other_asset_value : [''],\n any_other_asset_loan : [''], \n });\n }\n\n /** Add More Asset using Flag Both \"Other Asset\" And \"Business Asset\" */\n addAssetDetails(e) {\n \n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.push(this.initBusinessDetails());\n \n }\n /** To remove The Added Asset using Flag Both \"Other Asset\" And \"Business Asset\" */\n removeAssetsDetails(i: number) {\n \n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.removeAt(i);\n\n}\n\ncreateBusinessAssetsForAddress(): FormGroup {\n return this.fb.group({\n address_label:[''],\n business_years:[''],\n business_month:[''],\n business_address_availability:[''],\n business_is_pd_visited:[''],\n business_pd_visited_remark:[''],\n\n business_approximate_market_value: [''],\n business_ownership_type: [''],\n business_monthly_rented_amt: [''],\n business_name_of_the_owner: [''],\n business_name_of_the_other_owner: [''],\n business_vintage: [''],\n business_purchase_year: ['', Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n business_emi: ['']\n });\n}\n\n selectedAssetsType(e: any, i: any): void {\n let val = i;\n const arr = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray;\n arr.controls.splice(0);\n \n switch (e.value) {\n case '1': {\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.otherBusinessAssetsDescription());\n break;\n }\n case '2': {\n let val = i;\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadProperty());\n break;\n }\n case '3': {\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.load_Four_Weeler());\n break;\n }\n case '4': {\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadEquipmentManufacturingDescription());\n break;\n }\n \n default: {\n break;\n }\n }\n this.removeOptionOnAutoComplete(i);\n }\n\n loadPropertyWithData(data) { \n return this.fb.group({\n property_type: [data.property_type],\n other_property_type: [data.other_property_type],\n address_of_the_property: [data.address_of_the_property],\n });\n }\n load_Four_WeelerWithData(data){\n return this.fb.group({\n manufacturer_model_vehicle: [data.manufacturer_model_vehicle],\n vehicle_type: [data.vehicle_type],\n other_vehicle_type: [data.other_vehicle_type]\n })\n }\n\n loadEquipmentManufacturingDescriptionWithData(data) {\n return this.fb.group({\n equipment_manufacturing_description: [data.equipment_manufacturing_description]\n });\n }\n otherBusinessAssetsDescriptionWithData(data) {\n return this.fb.group({\n any_other_assets: [data.any_other_assets],\n any_other_asset_loan : [data.any_other_asset_loan],\n });\n }\n\n loadDetails:boolean\n addBusinessAssetsForAddress(data) {\n console.log(\"add business\")\n var result = Object.keys(data).map(function (key) {\n return data[key];\n });\n if (result.length > 0) {\n result.forEach((datas, index) => {\n //this.placeholderName[index]=datas.address_label.split('/')\n // console.log(datas.address_label.split('/'))\n // console.log(datas.address_label.split('/')[0])\n if(datas.address_label != null && datas.address_label !=''){\n let splitted=datas.address_label.split('/')[1]\n this.placeholderName[index]='Was any business activity seen at the '+splitted+' during PD visit?';\n this.addressType = splitted;\n }\n this.RentAmtInwordsForAddress[index] = this.cons.convertNumberToWords(datas.business_monthly_rented_amt);\n this.appxMarketAmtInwordsForAddress[index] = this.cons.convertNumberToWords(datas.business_approximate_market_value);\n let Avaliablity = 1;\n \n if(datas.business_name_of_the_owner.length > 0){\n datas.business_name_of_the_owner.forEach(option => {\n if(option.id == 0 && option.group_id == 2){\n Avaliablity = option.id;\n }\n });\n }\n this.isOtherOwnerForAddress = Avaliablity == 0 ? true : false;\n });\n\n for (let val of result) {\n \n let vals = {\n address_label:val.address_label,\n business_years:val.business_years,\n business_month:val.business_month,\n business_address_availability:val.business_address_availability,\n business_is_pd_visited:val.business_is_pd_visited,\n business_pd_visited_remark:val.business_pd_visited_remark,\n\n business_approximate_market_value: val.business_approximate_market_value,\n business_ownership_type: val.business_ownership_type,\n business_monthly_rented_amt: val.business_monthly_rented_amt,\n business_name_of_the_owner: val.business_name_of_the_owner,\n business_name_of_the_other_owner: val.business_name_of_the_other_owner,\n business_vintage: val.business_vintage,\n business_purchase_year: val.business_purchase_year,\n business_emi: val.business_emi\n };\n const control = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n control.push(this.createBusinessAssetsForAddressWithData(vals));\n }\n } else {\n const control = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n control.push(this.createBusinessAssetsForAddress());\n }\n }\n addBusinessAssetsDetailsWithData(supp_data){\n var result=Object.keys(supp_data).map(function(key){\n return supp_data[key];\n })\n \n if(result.length>0){\n console.log(\"length >0\")\n result.forEach((datas,index)=>{\n this.appxMarketAmtInwords[index]=this.cons.convertNumberToWords(+datas.business_approximate_market_value)\n this.RentAmtInwords[index]=this.cons.convertNumberToWords(+datas.business_monthly_rented_amt);\n });\n for(let val of result){\n let formData={\n address_label:val.address_label,\n business_assets_mode: val.business_assets_mode,\n\n business_years:val.business_year,\n business_month:val.business_month,\n business_address_availability:val.business_address_availability,\n business_is_pd_visited:val.business_is_pd_visited,\n business_pd_visited_remark:val.business_pd_visited_remark,\n\n business_approximate_market_value: val.business_approximate_market_value,\n business_ownership_type:val.business_ownership_type,\n business_monthly_rented_amt:val.business_monthly_rented_amt,\n business_name_of_the_owner: val.business_name_of_the_owner,\n business_name_of_the_other_owner: val.business_name_of_the_other_owner,\n business_purchase_year: val. business_purchase_year,\n business_vintage : val.business_vintage,\n business_emi: val.business_emi,\n };\n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.push(this.initBusinessDetailsWithdata(formData));\n this.setBusinessAssetsDetailsWithData(formData.business_assets_mode, val.business_details, control.length - 1)\n }\n \n }\n this.loadDetails=true\n }\n\n createBusinessAssetsForAddressWithData(data): FormGroup {\n return this.fb.group({\n address_label:[data.address_label],\n business_years:[data.business_years],\n business_month:[data.business_month],\n business_address_availability:[data.business_address_availability],\n business_is_pd_visited:[data.business_is_pd_visited],\n business_pd_visited_remark:[data.business_pd_visited_remark],\n\n business_approximate_market_value: [data.business_approximate_market_value],\n business_ownership_type: [data.business_ownership_type],\n business_monthly_rented_amt: [data.business_monthly_rented_amt],\n business_name_of_the_owner: [data.business_name_of_the_owner],\n business_name_of_the_other_owner: [data.business_name_of_the_other_owner],\n business_vintage: [data.business_vintage],\n business_purchase_year: [data.business_purchase_year, Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n business_emi: [data.business_emi]\n });\n }\n\n initBusinessDetailsWithdata(data) {\n \n\n let formGroup= this.fb.group({\n address_label:[data.address_label],\n business_assets_mode: [data.business_assets_mode],\n \n business_years:[data.business_year],\n business_month:[data.business_month],\n business_address_availability:[data.business_address_availability],\n business_is_pd_visited:[data.business_is_pd_visited],\n business_pd_visited_remark:[data.business_pd_visited_remark],\n\n business_details: this.fb.array([]),\n business_approximate_market_value: [data.business_approximate_market_value],\n business_ownership_type : [data.business_ownership_type],\n business_monthly_rented_amt:[data.business_monthly_rented_amt],\n business_name_of_the_owner: [data.business_name_of_the_owner],\n business_name_of_the_other_owner:[data.business_name_of_the_other_owner || ''],\n // relation: [data.relation || ''],\n business_vintage: [data. business_vintage],\n business_purchase_year: [data. business_purchase_year,Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n // purchase_month: [data.purchase_month],\n business_emi: [data.business_emi || ''],\n });\n return formGroup;\n }\n setBusinessAssetsDetailsWithData(assets_details_mode:any,datas:any,i:any){\n \n let val = i;\n let data = datas;\n const control=(this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray;\n control.controls.splice(0);\n\n switch (assets_details_mode) {\n case '2': {\n let business_property_datas : any;\n data.forEach((datas,i) => {\n business_property_datas = { 'property_type': datas.property_type, 'other_property_type': datas.other_property_type, 'address_of_the_property': datas.address_of_the_property };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadPropertyWithData(business_property_datas));\n break;\n }\n case '3': {\n let business_Four_Weeler_datas : any;\n data.forEach((datas,i) => {\n business_Four_Weeler_datas = { 'manufacturer_model_vehicle': datas.manufacturer_model_vehicle, 'vehicle_type': datas.vehicle_type, 'other_vehicle_type': datas.other_vehicle_type };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.load_Four_WeelerWithData(business_Four_Weeler_datas));\n break;\n }\n case '4': {\n let equipment_manufacturing_description_datas : any;\n data.forEach((datas,i) => {\n equipment_manufacturing_description_datas= { 'equipment_manufacturing_description': datas.equipment_manufacturing_description };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadEquipmentManufacturingDescriptionWithData(equipment_manufacturing_description_datas));\n break;\n }\n \n case '1': {\n let array_datas : any;\n data.forEach((datas,i) => {\n this.AssetValueInwords[i] = this.cons.convertNumberToWords(+datas.any_other_asset_value);\n array_datas = {\n 'any_other_assets': datas.any_other_assets,\n // 'any_other_asset_value': datas.any_other_asset_value,\n 'any_other_asset_loan': datas.any_other_asset_loan,\n };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.otherBusinessAssetsDescriptionWithData(array_datas));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n public paymentModeTextBox: number;\n selectedPM(e) {\n this.paymentModeTextBox = e.value;\n // this.f.supplier_details.controls.get('payment_mode_value');\n }\n\n public freqPurchaseTextBox: number;\n selectedFreqPurchase(e) {\n this.freqPurchaseTextBox = e.value;\n }\n \n\n onSubmit(){\n //console.log(\"Remarks\",this.focusRemark);\n if(!this._businessAssetsQuesFrom.valid){\n this.toast.pdTriggerappmessage(\"Please Fill the Required Field\")\n this._businessAssetsQuesFrom.value.business_assets_for_address.forEach(element=>{\n console.log(element)\n if(element.business_address_availability != 'no' && element.business_pd_visited_remark ==''){\n this.focusRemark.nativeElement.focus()\n }\n })\n return;\n }\n \n var answerData=this._businessAssetsQuesFrom.value;\n \n //To Remove The \"Null\" With Key also\n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n\n this.qustcat.saveForm(answerData).subscribe(result=>{\n if(result['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Sorry!! something went Wrong \");\n }\n })\n \n }\n // calculate vintage and purchase {}\n calculateVintagePurchase(value: any, controlKey: any, type: number) {\n if (type == 1) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.controls[controlKey].controls['business_purchase_year'].setValue(value != '' ? parseInt(this.currentYear) - parseInt(value) : '');\n }\n else if (type == 2) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_details'];\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_purchase_year'].setValue(value) : control.controls[controlKey].controls['business_purchase_year'].setValue('');\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_vintage'].setValue(parseInt(this.currentYear) - parseInt(value)) : control.controls[controlKey].controls['business_vintage'].setValue('')\n }\n if (type == 3) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n control.controls[controlKey].controls['business_purchase_year'].setValue(value != '' ? parseInt(this.currentYear) - parseInt(value) : '');\n }\n else if (type == 4) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_purchase_year'].setValue(value) : control.controls[controlKey].controls['business_purchase_year'].setValue('');\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_vintage'].setValue(parseInt(this.currentYear) - parseInt(value)) : control.controls[controlKey].controls['business_vintage'].setValue('')\n }\n }\n\n\n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n\n // // check others\n checkOthers(values){\n // if(values!=null) {\n // return values.id==0 ? true : false;\n // }\n if(values.length > 0) {\n // return values.id==0 ? true : false;\n let Avaliablity = 1;\n values.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n return Avaliablity == 0 ? true : false;\n }\n else {\n return false;\n }\n \n }\n\n\n setRequiredValidation(value, item, flag,i) {\nif(flag== 11){\n if(value == 'yes'){\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.clearValidators();\n }\n else if(value == 'no'){\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.setValidators([Validators.required]);\n }\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.updateValueAndValidity();\n}\n if (flag == 1) {\n if (value == 'yes') {\n console.log(\"bu\",this._businessAssetsQuesFrom.controls);\n // this._businessAssetsQuesFrom.controls.business_assets_for_address.value[i].business_years.setValidators([Validators.required]);\n \n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_address_availability.setValidators([Validators.required]);\n // this._businessAssetsQuesFrom.controls.business_activity.setValidators([Validators.required]) ;\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_is_pd_visited.setValidators([Validators.required]);\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.setValidators([Validators.required]);\n // this._businessAssetsQuesFrom.controls.business_activity.setValidators([Validators.required]) ;\n }\n else {\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_years.clearValidators();\n \n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_address_availability.clearValidators();\n // this._businessAssetsQuesFrom.controls.business_activity.clearValidators();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_is_pd_visited.clearValidators();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.clearValidators();\n // this._businessAssetsQuesFrom.controls.business_activity.clearValidators();\n }\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_years.updateValueAndValidity();\n \n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_address_availability.updateValueAndValidity();\n // this._businessAssetsQuesFrom.controls.business_activity.updateValueAndValidity();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_is_pd_visited.updateValueAndValidity();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.updateValueAndValidity();\n // this._businessAssetsQuesFrom.controls.business_activity.updateValueAndValidity();\n\n\n }\n // if(flag == 2){\n // value==1\n // ? item.controls.premises_type_others.setValidators([Validators.required])\n // : item.controls.premises_type_others.clearValidators();\n // item.controls.premises_type_others.updateValueAndValidity();\n // }\n if (flag == 3) {\n if (value == 'owned') {\n item.controls.business_monthly_rented_amt.clearValidators();\n item.controls.business_name_of_the_owner.setValidators([Validators.required]);\n }\n else {\n item.controls.business_monthly_rented_amt.setValidators([Validators.required]);\n item.controls.business_name_of_the_owner.clearValidators();\n }\n item.controls.business_monthly_rented_amt.updateValueAndValidity();\n item.controls.business_name_of_the_owner.updateValueAndValidity();\n }\n if (flag == 4) {\n let Avaliablity = 1;\n value.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n if(Avaliablity == 0){\n \n item.controls.business_name_of_the_other_owner.setValidators([Validators.required]);\n this.isOtherOwner = true;\n }else{\n \n item.controls.business_name_of_the_other_owner.setValue('');\n item.controls.business_name_of_the_other_owner.clearValidators();\n this.isOtherOwner = false;\n }\n \n item.controls.business_name_of_the_other_owner.updateValueAndValidity();\n\n // value == 0\n // ? item.controls.business_name_of_the_other_owner.setValidators([Validators.required])\n // : item.controls.business_name_of_the_other_owner.clearValidators();\n // item.controls.business_name_of_the_other_owner.updateValueAndValidity();\n }\n if (flag == 5) {\n value == 1\n ? item.controls.other_vehicle_type.setValidators([Validators.required])\n : item.controls.other_vehicle_type.clearValidators();\n item.controls.other_vehicle_type.updateValueAndValidity();\n }\n if (flag == 6) {\n value == 1\n ? item.controls.other_property_type.setValidators([Validators.required])\n : item.controls.other_property_type.clearValidators();\n item.controls.other_property_type.updateValueAndValidity();\n\n value != ''\n ? item.controls.address_of_the_property.setValidators([Validators.required])\n : item.controls.address_of_the_property.clearValidators();\n item.controls.address_of_the_property.updateValueAndValidity();\n }\n if (flag == 7) {\n if (value == 'owned') {\n item.controls.business_monthly_rented_amt.clearValidators();\n item.controls.business_name_of_the_owner.setValidators([Validators.required]);\n }\n else {\n item.controls.business_monthly_rented_amt.setValidators([Validators.required]);\n item.controls.business_name_of_the_owner.clearValidators();\n }\n item.controls.business_monthly_rented_amt.updateValueAndValidity();\n item.controls.business_name_of_the_owner.updateValueAndValidity();\n }\n // if(flag == 8){\n // let Avaliablity = 1;\n // value.forEach(option => {\n // if(option.id == 0 && option.group_id == 2){\n \n // Avaliablity = option.id;\n // }\n // });\n // this.isOtherOwner = false;\n // if(Avaliablity == 0){\n \n // item.controls.business_name_of_the_other_owner.setValidators([Validators.required]);\n // this.isOtherOwnerForAddress = true;\n // }else{\n \n // item.controls.business_name_of_the_other_owner.setValue('');\n // item.controls.business_name_of_the_other_owner.clearValidators();\n // this.isOtherOwnerForAddress = false;\n // }\n \n // item.controls.business_name_of_the_other_owner.updateValueAndValidity();\n \n // }\n\n }\n /** To Convert Month into Year */\n ConvertMonthintoYear(e,ind){\n console.log( this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years)\n let business_year = this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.value;\n \n \n let converted_month : number = e%12;\n let converted_year : number = e/12;\n\n let Year = +business_year + +Math.floor(converted_year);\n \n if(Year > this.generalExistBusinessYear){\n this.yearErrorMessage[ind] = \"Higher than Business Vintage\";\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue('');\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_month.setValue('');\n \n }\n else{\n if(Year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth)\n {\n this.monthErrorMessage[ind] = \"Higher than Business Vintage\";\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue('');\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_month.setValue('');\n \n }else{\n this.monthErrorMessage[ind] = '';\n this.yearErrorMessage[ind] = '';\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue(+business_year + +Math.floor(converted_year));\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_month.setValue(Math.floor(converted_month));\n }\n }\n }\n\n checkWithExistBusinessYear(e,ind){\n \n if(+e > this.generalExistBusinessYear){\n this.yearErrorMessage[ind] = \"Higher than Business Vintage\";\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue('');\n \n }\n else{\n this.yearErrorMessage[ind] = '';\n }\n }\n\n\n inWords(e,i,flag){\n switch(flag){\n case 1:\n this.AssetValueInwords[i]=this.cons.convertNumberToWords(e.target.value);\n break;\n case 2 : \n this.appxMarketAmtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n case 3:\n this.RentAmtInwords[i]=this.cons.convertNumberToWords(e.target.value);\n break;\n case 9:\n this.RentAmtInwordsForAddress[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n case 10:\n this.appxMarketAmtInwordsForAddress[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n\n }\n }\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustcat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustcat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('business_name_of_the_other_owner').value\n value.get('business_name_of_the_other_owner').setValue(this.cons.sentenceCase(name));\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormBuilder,FormGroup,FormArray,Validators} from '@angular/forms';\nimport {AwsServiceProvider} from '../../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category'\n// import { QueryState } from '@angular/core/src/render3/interfaces';\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\nimport {ToastProvider} from '../../../../providers/common-provider/toast'\nimport { Subject } from 'rxjs';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n\n/**\n * Generated class for the PdQuestionBusinessBankingPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-business-banking',\n templateUrl: 'pd-question-business-banking.html',\n})\nexport class PdQuestionBusinessBankingPage {\npdDetails:any;\nm_btLenderList: any;\napplicants: any \nsalaryField: boolean;\nformDetails: any;\nform_id:any;\naccountType: any;\nusers: any;\nbankingForm:FormGroup;\npublic pd_cus_segment:string\ncompany_id:any;\n\npdid:any;\nitemRows:FormArray;\n\nexistCompanyList: any=[];\nmergeCompanyApplicant: any=[];\nstep:number\n amtInwords: any=[];\n emiAmtInwords: any=[];\n limitCaseFlag: any=[];\n generalExistBusinessYear: number;\n generalExistBusinessMonth:number\n yearErrorMessage: any=[];\n monthErrorMessage: any=[];\n m_btLenderListValue:any=[]\n protected _onDestroy = new Subject();\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws: AwsServiceProvider,public fb:FormBuilder,public qustCat:QuestionCategoryProvider,\n public cons:ConstantsProvider,public toast:ToastProvider,private loading:LoadingProvider,\n private cameraProvider:CameraProvider) {\n this.pdDetails=this.navParams.get('pdDetails')\n \n this.pd_cus_segment=this.pdDetails.customer_segment_abbr.toUpperCase();\n this.pd_cus_segment=this.pd_cus_segment.substring(0,3)\n this.pdid=this.pdDetails.pd_id;\n this.formDetails=this.navParams.get('formDetails');\n this.form_id = this.formDetails.form_id;\n this.company_id=this.pdDetails.company_id\n \n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'}); \n this.generalExistBusinessMonth=this.pdDetails.business_month\n this.generalExistBusinessYear=this.pdDetails.business_years\n \n\n this.users = this.aws.getlocale();\n this.step=0\n this.bankingForm = this.fb.group(\n {\n itemRows:this.fb.array([]),\n banking_form_remark:[''],\n });\n \n \n \n this.salaryField = this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? false : true;\n \n \n this.getdropdown();\n this.retiveBankDetails();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBusinessBankingPage');\n this.getPDImages();\n }\n searchFun(control){\n if(!this.m_btLenderListValue){\n return\n }\n let searchVal=control.controls['filterCtrl'].value\n if(!searchVal){\n this.m_btLenderListValue=this.m_btLenderList.slice()\n return\n }\n else{\n searchVal=searchVal.toLowerCase();\n this.m_btLenderListValue=this.m_btLenderList.filter(val=>val.lender_name.toLowerCase().indexOf(searchVal)>-1)\n }\n }\n getdropdown(){\n \n this.qustCat.getcommondrop('ACCOUNTTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.accountType=res['records'];\n }\n });\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.m_btLenderList = data['records'].filter(data => data.isactive == 1 && data.lender_type == 1);\n this.m_btLenderListValue=this.m_btLenderList.slice();\n }\n });\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n \n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true) /*&& val.is_company_applicant===true*/\n \n }\n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n }\n })\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n }\n \n checkWithExistBusinessYear(itemrow,e, i) {\nconsole.log(this.generalExistBusinessYear)\n if (+e > this.generalExistBusinessYear) {\n this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n itemrow.controls.vintage_year.setValue('');\n }\n else {\n this.yearErrorMessage[i] = '';\n }\n }\n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n checkOthers(values){\n if(values!=null) {\n return values.id==0 ? true : false;\n }\n else {\n return false;\n }\n \n }\n selectedAccTypeChanges(event: any,i){\n \n if(event == 2 || event == 1) {\n this.limitCaseFlag[i] = false;\n \n // const control = this.bankingForm.controls['itemRows'];\n \n // control.controls[0].get('limit').clearValidators();\n // control.controls[0].get('limit').updateValueAndValidity();\n \n }\n else{\n this.limitCaseFlag[i] = true;\n }\n\n}\n /** To Convert Month into Year */\n ConvertMonthintoYear(itemrow, e,i) {\n console.log(this.generalExistBusinessMonth)\n\n\n let year = itemrow.controls.vintage_year.value;\n\n let converted_month: number = e % 12;\n let converted_year: number = e / 12;\n let Year = +year + +Math.floor(converted_year);\n \n if (Year > this.generalExistBusinessYear) {\n this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n itemrow.controls.vintage_year.setValue('');\n itemrow.controls.vintage_month.setValue('');\n\n }\n else {\n if (Year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth) {\n this.monthErrorMessage[i] = \"Higher than Business Vintage\";\n itemrow.controls.vintage_year.setValue('');\n itemrow.controls.vintage_month.setValue('');\n console.log(this.monthErrorMessage[i])\n\n } else {\n this.monthErrorMessage[i] = '';\n this.yearErrorMessage[i] = '';\n itemrow.controls.vintage_year.setValue(Year);\n itemrow.controls.vintage_month.setValue(Math.floor(converted_month));\n }\n }\n\n\n}\n /** Amount InWords */\n inWords(e,i,flag){\n switch(flag){\n case 1 : \n this.amtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n case 2 :\n this.emiAmtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n }\n }\n\n setRequiredValidation(value,item,flag) {\n \n \n if(flag == 1){\n value==0\n ? item.controls.other_applicant.setValidators([Validators.required])\n : item.controls.other_applicant.clearValidators();\n item.controls.other_applicant.updateValueAndValidity();\n }\n if(flag == 2){\n value==1\n ? item.controls.other_bank.setValidators([Validators.required])\n : item.controls.other_bank.clearValidators();\n item.controls.other_bank.updateValueAndValidity();\n }\n \n }\n\n createBankItem(name) {\n \n return this.fb.group({\n applicant_name: [''],\n \n bank_name: [''],\n filterCtrl:[''],\n account_type: [''],\n salary : this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? [''] : [''] ,\n limit: [''],\n other_bank:[''],\n other_applicant:[''],\n is_main: [''],\n vintage_year: [''],\n vintage_month: [''],\n \n });\n\n }\n addBankDetails(index,event) {\n // if(this.pd.valid){\n \n // if(this.items.length !=0)\n // {\n // this.neighbourAccess = true;\n // }\n \n event.stopPropagation()\n const control = this.bankingForm.controls['itemRows'];\n let length = control.length;\n this.step = length;\n \n control.push(this.createBankItem(''));\n \n \n \n }\n\n addmoreBankDetils()\n {\n \n this.itemRows = this.bankingForm.get('itemRows') as FormArray;\n \n this.itemRows.push(this.createBankItem('')); \n }\n\n removebank(i){\n const control = this.bankingForm.controls['itemRows'];\n if(control.length==1){\n control.reset();\n }\n else\n \n \n control.removeAt(i);\n }\n \n setStep(index: number) {\n this.step = index;\n }\n\n retiveBankDetails(){\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.form_id,'company_id':this.company_id}\n const control = this.bankingForm.controls['itemRows'];\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n var result = Object.keys(res['records'].banking_details).map(function(key) {\n return res['records'].banking_details[key];\n });\n \n this.bankingForm.controls.banking_form_remark.setValue(res['records'].banking_form_remark);\n \n \n if(result.length == 0){\n \n control.push(this.createBankItem(''))\n }else\n {\n \n result.forEach((datas,index)=>\n {\n datas.filterCtrl=''\n this. selectedAccTypeChanges(datas.account_type,index);\n if(datas.limit != ''){\n \n this.amtInwords[index] = this.cons.convertNumberToWords(+datas.limit); \n }\n this. selectedAccTypeChanges(datas.account_type,index);\n control.push(this.createBankItem(''));\n })\n \n this.bankingForm.controls['itemRows'].setValue(result);\n } \n }else\n {\n \n control.push(this.createBankItem(''));\n }\n });\n \n }\n\n savepdBank(answerData)\n {\n answerData.itemRows.forEach(element=>{\n delete element.filterCtrl\n })\n console.log(\"logs\",answerData)\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.form_id;\n records.fk_createdby = this.users;\n records.company_id=this.company_id;\n records.banking_details = answerData.itemRows;\n records.banking_form_remark = answerData.banking_form_remark;\n \n this.qustCat.saveForm(records).subscribe(data => {\n \n if(data['dataStatus']==true)\n {\n this.bankingForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Sorry!! Something Went Wrong\");\n }\n })\n \n }\n \n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\nchangeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\ncapture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_applicant').value\n value.get('other_applicant').setValue(this.cons.sentenceCase(name));\n }\n \n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder } from '@angular/forms';\n\nimport {AwsServiceProvider} from '../../../../providers/aws-service/aws-service'\nimport {ToastProvider} from '../../../../providers/common-provider/toast'\nimport {QuestionCategoryProvider} from '../../../../providers/question-category/question-category'\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionFuturePlansAndBusinessEnvironmentPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-future-plans-and-business-environment',\n templateUrl: 'pd-question-future-plans-and-business-environment.html',\n})\nexport class PdQuestionFuturePlansAndBusinessEnvironmentPage {\n\n\n pdDetails: any;\n formDetails: any;\n pdid: any;\n FormId: any;\n company_id:any;\n users: any;\n product_abbr: any;\n lender_short_name: any;\n complete_status: boolean = false;\n tab: any = '0';\n imageDisplay: any = [];\n imageBucket: any = [];\n public _futurePlansForm: FormGroup;\n\n\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb: FormBuilder,\n public qustcat: QuestionCategoryProvider, public aws: AwsServiceProvider,\n public toast: ToastProvider, private cameraProvider: CameraProvider, private loading: LoadingProvider,private constantProvider:ConstantsProvider) {\n\n \n this.formDetails=this.navParams.get('formDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid = this.pdDetails.pd_id\n this.FormId = this.formDetails.form_id;\n this.company_id=this.pdDetails.company_id\n this.users = aws.getlocale();\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n this._futurePlansForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: ['23'],\n company_id:[this.company_id],\n usp_of_the_business: [''],\n future_plans_for_business_expansion: [''],\n impact_of_gst_on_the_business: [''],\n key_competitors: [''],\n succession_plan: [''],\n brief_of_other_group_concerns_or_businesses_run_by_the_applicants: [''],\n remarks: [''],\n fk_createdby:[this.users]\n });\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionFuturePlansAndBusinessEnvironmentPage');\n this.getFuturePlans();\n this.getPDImages();\n }\n\n ionViewCanLeave() {\n \n if (this._futurePlansForm.dirty) {\n\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Data will be Lost\", \"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data) => {\n \n if (data == false) {\n reject();\n return true;\n }\n else {\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n \n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n\n }\n else {\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n \n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n\n }\n\n }\n\n getFuturePlans() {\n let Records = { 'parent_pdid': this.pdDetails.parent_pd_id, \n 'pd_id': this.pdid, \n 'pd_form_id': this.FormId,\n 'company_id': this.company_id}\n this.qustcat.retiverForm(Records).subscribe(data => {\n if (data['dataStatus'] == true) {\n this._futurePlansForm.controls.usp_of_the_business.setValue(data['records'].usp_of_the_business);\n this._futurePlansForm.controls.future_plans_for_business_expansion.setValue(data['records'].future_plans_for_business_expansion);\n this._futurePlansForm.controls.impact_of_gst_on_the_business.setValue(data['records'].impact_of_gst_on_the_business);\n this._futurePlansForm.controls.key_competitors.setValue(data['records'].key_competitors);\n this._futurePlansForm.controls.succession_plan.setValue(data['records'].succession_plan);\n this._futurePlansForm.controls.brief_of_other_group_concerns_or_businesses_run_by_the_applicants.setValue(data['records'].brief_of_other_group_concerns_or_businesses_run_by_the_applicants);\n this._futurePlansForm.controls.remarks.setValue(data['records'].remarks);\n }\n else { };\n })\n\n }\n\n saveFuturePlan() {\n if (this._futurePlansForm.invalid) {\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields marked with '*' \")\n }\n else {\n var answerData = this._futurePlansForm.value\n //To Remove The \"Null\" With Key also\n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n this.qustcat.saveForm(answerData).subscribe(res => {\n if (res['dataStatus'] == true) {\n //TO CHANGE THE FORM STATE \n this._futurePlansForm.reset(this._futurePlansForm.value);\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(() => {\n this.navCtrl.pop();\n }, 2000);\n }\n else {\n this.toast.pdTriggerappmessage(\"Sorry!! Something Went Wrong\");\n }\n });\n }\n }\n\n getPDImages() {\n //FOR RETRIEVING PICTURES\n this.imageDisplay = []\n let record_for_pic = { 'pd_id': this.pdDetails.pd_id, 'form_id': this.FormId, 'company_id':this.pdDetails.company_id }\n this.qustcat.getPDImages(record_for_pic).subscribe(val => {\n if (!val['msg']) {\n \n if (val['records'].length > 0) {\n val['records'].forEach(result => {\n this.imageDisplay.push({ 'image': result.doc_url, 'Name': result.pd_document_title, 'option': 'dummy' })\n })\n \n }\n }\n })\n }\n\n changeName(value, index, img) {\n this.imageDisplay[index] = { 'image': img, 'Name': value }\n }\n\n changeNameForBucket(value, index, img) {\n this.imageBucket[index] = { 'image': img, 'Name': value }\n }\n\n removeImg(index) {\n this.imageDisplay.splice(index, 1);\n }\n\n removeImgForBucket(index) {\n this.imageBucket.splice(index, 1)\n }\n\n capture() {\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res => {\n \n if (res != 'error') {\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({ 'image': res, 'Name': '' ,'link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert = this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value => {\n if (value) {\n this.imageBucket[this.imageBucket.length - 1].Name = value.Name\n }\n })\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n this.tab = '1';\n\n\n }\n sendImage() {\n this.loading.loaderForSendImage()\n \n let records: any = {\n 'pd_id': this.pdDetails.pd_id,\n 'formid': this.FormId,\n 'images': this.imageBucket,\n 'company_id':this.company_id,\n \n }\n \n this.qustcat.savePDImages(records).subscribe(res => {\n if (res['dataStatus'] == true) {\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket = []\n this.getPDImages();\n }\n else {\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\n\n/**\n * Generated class for the FormCompleteCheckModalPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n//@IonicPage()\n@Component({\n selector: 'page-form-complete-check-modal',\n templateUrl: 'form-complete-check-modal.html',\n})\nexport class FormCompleteCheckModalPage {\n\n datas:any\n constructor(public navCtrl: NavController, public navParams: NavParams) {\n this.datas=this.navParams.get('values');\n console.log(this.datas)\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad FormCompleteCheckModalPage');\n\n }\n closeModal(){\n this.navCtrl.pop();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/form-complete-check-modal/form-complete-check-modal.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { CameraProvider } from '../../providers/common-provider/camera';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { ToastProvider } from '../../providers/common-provider/toast';\n\n/**\n * Generated class for the PdGeneralImagesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-general-images',\n templateUrl: 'pd-general-images.html',\n})\nexport class PdGeneralImagesPage {\n\n cameraArr:any = [];\n applicatentDetails: any;\n count:any = 0;\n saveAccess:boolean =false;\n FormId:any = '';\n constructor(public navCtrl: NavController, public navParams: NavParams,public camera:CameraProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider) {\n\n this.applicatentDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdGeneralImagesPage');\n }\n \n takePicture()\n {\n this.camera.getpicture().then(image=>\n {\n this.count = this.count+1;\n \n this.cameraArr.push({'image':image,'name':''});\n });\n }\n\n removeimage(i)\n {\n this.count = this.count - 1; \n this.cameraArr.splice(i,1);\n }\n\n docnames(doc,i,img)\n {\n \n this.cameraArr[i] = {'image':img,'Name':doc};\n // console.log(JSON.stringify(this.pddocdata)); \n }\n savePDImages()\n {\n \n this.saveAccess = true;\n let records :any = {'pd_id':this.applicatentDetails.pd_id,'formid':''};\n records.images = this.cameraArr;\n this.qustCat.savePDImages(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.saveAccess = false;\n this.navCtrl.pop();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n } \n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-general-images/pd-general-images.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, ViewController } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../../providers/pdtrigger/pdtrigger';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { PdListPage } from '../../pd-list/pd-list';\nimport {ToastProvider} from '../../../providers/common-provider/toast'\n\n/**\n * Generated class for the BouncedRejectPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-bounced-reject',\n templateUrl: 'bounced-reject.html',\n})\nexport class BouncedRejectPage {\n\n users: any;\n bounseMaster: any;\n pdDetails: any;\n status: any;\n bounce_reason:any;\n bounce_reason_others:any = '';\n constructor(public navCtrl: NavController, public navParams: NavParams,public viewCtrl:ViewController,\n public aws:AwsServiceProvider,public pdservice:PdtriggerProvider,\n public qustCat:QuestionCategoryProvider,public fb:FormBuilder,public toast:ToastProvider) {\n // this.pdDetails = this.navParams.get('appdetails');\n // this.status = this.navParams.get('status');\n this.pdDetails=this.navParams.get('details')\n // console.log(this.pdDetails)\n this.users = this.aws.getlocale();\n this.getDropdown();\n \n }\n\n getDropdown()\n {\n \n \n this.qustCat.getcommondrop('BOUNCEMASTER').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.bounseMaster = res['records'].filter(bouns=>bouns.isactive==1);\n console.log(this.bounseMaster);\n }\n })\n \n }\n updatePDStatus()\n {\n if(this.bounce_reason !=null && this.bounce_reason !=1)\n {\n let data = {'pd_id':this.pdDetails.pd_id,'pd_status':this.pdDetails.pd_status,'fk_updatedby':this.users,'bounce_reason':this.bounce_reason,'bounce_reason_others':this.bounce_reason_others};\n // console.log(this.bounce_reason)\n // console.log(this.bounce_reason_others);\n console.log(data);\n this.toast.pdTriggerappmessage(\"Thank You\");\n this.pdservice.updatepdStatus(data).subscribe(res=>\n {\n // this.updateStatus = res;\n if(res['dataStatus'] == true)\n {\n this.navCtrl.setRoot(PdListPage); \n }\n })\n }\n else if(this.bounce_reason == 1 && this.bounce_reason_others != '' && this.bounce_reason_others !=null )\n {\n let data = {'pd_id':this.pdDetails.pd_id,'pd_status':this.pdDetails.pd_status,'fk_updatedby':this.users,'bounce_reason':this.bounce_reason,'bounce_reason_others':this.bounce_reason_others};\n // console.log(this.bounce_reason)\n // console.log(this.bounce_reason_others);\n console.log(data);\n this.toast.pdTriggerappmessage(\"Thank You\");\n this.pdservice.updatepdStatus(data).subscribe(res=>\n {\n // this.updateStatus = res;\n if(res['dataStatus'] == true)\n {\n this.navCtrl.setRoot(PdListPage); \n }\n })\n }\n \n \n\n else{\n this.toast.pdTriggerappmessage(\"Please Choose the Reason to Reject\");\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/input/bounced-reject/bounced-reject.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {QuestionCategoryProvider} from '../../providers/question-category/question-category'\nimport { FormGroup,FormBuilder, Validators } from '@angular/forms';\nimport{AwsServiceProvider} from '../../providers/aws-service/aws-service'\nimport {PdtriggerProvider} from '../../providers/pdtrigger/pdtrigger'\nimport {ToastProvider} from '../../providers/common-provider/toast'\n\n\n/**\n * Generated class for the MapAddressPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-map-address',\n templateUrl: 'map-address.html',\n})\nexport class MapAddressPage {\n cus_seg:any=[]\n addressMapping:FormGroup\n mobileDisable:boolean=false;\n master:any=[]\n addressData:any=[]\n applicants:any=[]\n pageTitle=\"Choose customer segment For this PD address\"\n constructor(public navCtrl: NavController, public navParams: NavParams,private qustCat:QuestionCategoryProvider,\n private fb:FormBuilder,private aws:AwsServiceProvider,private pdTrigger:PdtriggerProvider,private toast:ToastProvider) {\n\nthis.master=this.navParams.get('master')\nthis.addressData=this.navParams.get('address')\nthis.applicants=this.navParams.get('applicants')\nconsole.log(\"d\",this.master,'kd',this.applicants,'dks',this.applicants);\n this.addressMapping=this.fb.group({\n fk_customer_segment:[''],\n pd_co_applicant_id:[''],\n mobile_no:['']\n })\n this.dropDown();\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad MapAddressPage');\n }\n updateMobile(data){\n \n let mobile=this.applicants.filter(val=>val.pd_co_applicant_id==data.pd_co_applicant_id).map(val=>val.mobile_no)[0]\n console.log(mobile)\n if(mobile != '' && mobile != null){\n this.addressMapping.controls['mobile_no'].setValue(mobile)\n this.addressMapping.controls['mobile_no'].clearValidators();\n this.addressMapping.controls['mobile_no'].updateValueAndValidity();\n this.mobileDisable=true\n }\n else{\n\n this.addressMapping.controls['mobile_no'].setValue('')\n this.addressMapping.controls['mobile_no'].setValidators(Validators.compose([Validators.required]));\n this.addressMapping.controls['mobile_no'].updateValueAndValidity();\n this.mobileDisable=false\n }\n }\n dropDown(){\n this.qustCat.getCustomersDetails().subscribe(res=>{\n if(res['dataStatus']== true){\n this.cus_seg=res['records']\n }\n })\n }\n cancel(){\n this.navCtrl.pop();\n }\n submit(values){\n if(this.addressMapping.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields\");\n return;\n }\n let update_records={\"pd_id\":null,\"parent_pd_id\":this.master.parent_pd_id,\"fk_address_id\":this.addressData.pd_address_id,\"pd_status\":\"ACCEPTED\",\"fk_updatedby\":this.aws.getlocale(),\n \"fk_customer_segment\":values.fk_customer_segment,\n \"pd_co_applicant_id\":values.pd_co_applicant_id,\n \"mobile_no\":values.mobile_no\n }\n console.log(\"update\",update_records);\n this.pdTrigger.updatepdStatus(update_records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Saved Successfully..\");\n this.navCtrl.pop();\n }\n else{\n this.toast.pdTriggerappmessage(\"Something went wrong!!\")\n }\n },err=>{\n console.log(\"Error\",JSON.stringify(err))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/map-address/map-address.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../providers/constants/constants';\n/**\n * Generated class for the PasswordPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-password',\n templateUrl: 'password.html',\n})\nexport class PasswordPage {\n commonImage: string;\n newpassword: any;\n confirmPassword: any;\n pin:any;\n Username:any;\n Password:any;\n \n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public toast:ToastProvider,public commonconstant:ConstantsProvider) {\n this.commonImage = this.commonconstant.commonimage;\n this.Username = this.navParams.get('Username');\n this.Password = this.navParams.get('Password');\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PasswordPage');\n }\n setNewPassword(newpass)\n {\n if(newpass !='' && newpass !=null && newpass !== undefined){\n let auth = { 'Username': this.Username, 'Password': this.Password, 'newpassword': newpass };\n console.log(auth);\n this.aws.dologin(auth).subscribe(res => {\n console.log(res);\n this.navCtrl.setRoot(PdListPage);\n // this.router.navigate(['/home']);\n }, err => {\n this.toast.pdTriggerappmessage(err.message);\n // alert(err.message);\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter the new Password');\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/password/password.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, MenuController,ToastController } from 'ionic-angular';\nimport {Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms';\n\nimport { PdListPage } from '../pd-list/pd-list';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { FingerprintAIO } from '@ionic-native/fingerprint-aio';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\n\nimport { LoadingProvider } from '../../providers/common-provider/loading';\nimport { ConstantsProvider } from '../../providers/constants/constants';\n/**\n * Generated class for the AuthPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n \n\n@Component({\n selector: 'page-auth',\n templateUrl: 'auth.html',\n})\nexport class AuthPage {\n pinAccess: any;\n newpindetails: any;\n userDetails: any;\npin:any;\n mpinaccess:boolean =false;\n newpassword:any;\n ConfirmPassword:any;\n commonImage:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public Menu:MenuController,public fb:FormBuilder,public shared:CognitoServiceProvider,public toast:ToastProvider,public faio:FingerprintAIO,public aws:AwsServiceProvider,public loadingCtrl:LoadingProvider,public commonconstant:ConstantsProvider) {\n this.commonImage = this.commonconstant.commonimage;\n this.shared.refresh();\n this.getuserDetails();\n \n\n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad AuthPage');\n }\n ionViewDidEnter(){\n this.Menu.enable(false);\n }\n ionViewWillLeave(){\n this.Menu.enable(true);\n }\n getuserDetails()\n {\n this.loadingCtrl.pdloader('loading...');\n let userid = this.aws.getlocale();\n this.aws.getuserprofile(userid).subscribe(res=>{\n this.userDetails = res;\n if(this.userDetails.dataStatus == true)\n { \n this.loadingCtrl.loading.dismiss();\n this.userDetails = this.userDetails.records;\n if(this.userDetails[0].role_name ==\"PD Executive\" || this.userDetails[0].role_name == \"PD Officer\"){\n //localStorage.setItem('userDetails',JSON.stringify(this.userDetails[0]));\n if(this.userDetails[0].mpin ==null)\n {\n \n this.mpinaccess = true;\n \n }else\n {\n this.mpinaccess = false;\n }\n }else{\n \n this.toast.pdTriggerappmessage('This App only for PD Officers');\n localStorage.clear();\n }\n }else{\n this.toast.pdTriggerappmessage('')\n }\n //console.log(this.mpinaccess);\n });\n }\n setnewpin(newpin)\n {\n console.log(\"set Pin\")\n this.aws.userpinupdate(newpin).subscribe(res=>\n {\n this.newpindetails = res;\n if(this.newpindetails.dataStatus == true)\n {\n this.navCtrl.setRoot(PdListPage); \n }\n })\n }\n /**Finger print */\n \n checkpin(pin) {\n console.log(\"Check pin\",pin);\n if(pin !='' && pin !=null)\n {\n if(this.userDetails[0].mpin == pin)\n {\n console.log(\"Entering List page\")\n this.navCtrl.setRoot(PdListPage);\n }else\n {\n this.toast.pdTriggerappmessage('Enter The Correct PIN');\n }\n }else\n {\n this.toast.pdTriggerappmessage('Enter The PIN');\n }\n\n \n \n }\n checkfingerprint()\n {\n console.log(\"Check Finger\");\n this.faio.show({\n clientId: 'Fingerprint-Demo',\n clientSecret: 'password', // Only Android\n localizedFallbackTitle: 'Use Pin', // Only iOS\n localizedReason: 'Please authenticate',\n disableBackup:true,\n })\n .then((result: any) => {\n this.navCtrl.setRoot(PdListPage);\n })\n .catch((error: any) => {\n this.toast.pdTriggerappmessage('err: '+ error);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/auth/auth.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { parseDate } from 'ionic-angular/util/datetime-util';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\nimport { DatabaseProvider } from '../../providers/database/database';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\nimport { InputPage } from '../input/input';\n\n/**\n * Generated class for the CompleteListPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n//@IonicPage()\n@Component({\n selector: 'page-complete-list',\n templateUrl: 'complete-list.html',\n})\nexport class CompleteListPage {\n // random_ng_past(): any {\n // throw new Error(\"Method not implemented.\");\n // }\n // random_bg_color(): any {\n // throw new Error(\"Method not implemented.\");\n // }\n aws: any;\n pdlistaccess: boolean;\n pdofficer: any;\n pdlistdetails: any = [];\n pdschduleDetails: any;\n searchpast: any;\n pdcomplete: any=[];\n searchcomplete: any;\n bgColorPast: any = [];\n bgColor: any = [];\n viewchange: boolean;\n pdlist:any = \"0\";\n\n \n constructor(public navCtrl: NavController, public navParams: NavParams,public awsservice:AwsServiceProvider,public PdtriggerProvider:PdtriggerProvider,public shared:CognitoServiceProvider,public db:DatabaseProvider,public androidPermissions:AndroidPermissions) {\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad CompleteListPage');\n\n this.db.getuserDetails();\n \n }\n ionViewCanEnter()\n {\n console.log(\"Pd list ionViewCanEnter\")\n this.getpdTriggerdetails();\n }\n \n doRefresh(refresher) {\n this.bgColor = [];\n this.pdschduleDetails = [];\n this.pdcomplete = [];\n // this.pdlistaccess = true;\n this.shared.refresh();\n this.getpdTriggerdetails();\n setTimeout(() => {\n \n refresher.complete();\n }, 2000);\n }\n getpdTriggerdetails()\n {\n \n let userid = this.awsservice.getlocale();\n //.log(\"User\",userid)\n // this.pdlistaccess = true;\n\n this.PdtriggerProvider.getpddetails(userid).subscribe(res=>\n {\n console.log('res',res);\n this.pdlistdetails = res;\n if(this.pdlistdetails.dataStatus == true)\n {\n this.pdlistaccess = false;\n \n \n // this.searchpast = this.pdschduleDetails;\n \n this.pdcomplete = this.pdlistdetails.records.filter(complete=>complete.pd_status == \"COMPLETED\");\n this.searchcomplete = this.pdcomplete;\n \n this.random_bg_color();\n this.random_ng_past();\n }else\n {\n this.pdlistaccess = false;\n this.pdlistdetails = \"No Records Found\";\n }\n })\n }\n random_bg_color() {\n for(let id of this.pdcomplete){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColor.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n \n return this.bgColor;\n }\n random_ng_past()\n {\n for(let id of this.pdschduleDetails){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColorPast.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n }\n \n PdAllocation(pddetails)\n {\n \n if(pddetails.pd_status == 'COMPLETED')\n {\n this.navCtrl.push(InputPage,{'pdDetails':pddetails});\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/complete-list/complete-list.ts","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app.module';\nimport { enableProdMode } from '@angular/core';\nenableProdMode();\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { ErrorHandler, NgModule } from '@angular/core';\nimport { IonicApp, IonicErrorHandler, IonicModule,Config, Events } from 'ionic-angular';\n\nimport { MyApp } from './app.component';\n\n\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { SplashScreen } from '@ionic-native/splash-screen';\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport { SQLite } from '@ionic-native/sqlite';\nimport { DatabaseProvider } from '../providers/database/database';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\nimport {MapAddressPage} from '../pages/map-address/map-address'\nimport {FormCompleteCheckModalPage} from '../pages/form-complete-check-modal/form-complete-check-modal'\n//import { FCM } from '@ionic-native/fcm/ngx';\n\n\nimport {\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatStepperModule\n} from '@angular/material';\nimport { AwsServiceProvider } from '../providers/aws-service/aws-service';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { AuthGuard } from '../providers/_guard/auth.guard';\nimport { TokenInterceptor } from '../providers/_guard/token.interceptor';\nimport { CognitoServiceProvider } from '../providers/aws-service/cognito.service';\nimport { ConstantsProvider } from '../providers/constants/constants';\nimport { AuthPage } from '../pages/auth/auth';\nimport { LoginPage } from '../pages/login/login';\nimport { PdListPage } from '../pages/pd-list/pd-list';\nimport { PdQuestionCategoryPage } from '../pages/pd-question-category/pd-question-category';\nimport { PdQuestionPage } from '../pages/pd-question/pd-question';\nimport { GoogleplaytabPage } from '../pages/googleplaytab/googleplaytab';\nimport { PasswordPage } from '../pages/password/password';\nimport { PdAllocationPage } from '../pages/pd-allocation/pd-allocation';\nimport { InputPage } from '../pages/input/input';\nimport { ToastProvider } from '../providers/common-provider/toast';\nimport { PdtriggerProvider } from '../providers/pdtrigger/pdtrigger';\nimport { FingerprintAIO } from '@ionic-native/fingerprint-aio';\n\nimport { LaunchNavigator } from '@ionic-native/launch-navigator';\nimport { OtpPage } from '../pages/otp/otp';\nimport { QuestionCategoryProvider } from '../providers/question-category/question-category';\n\nimport { ReactiveFormsModule,FormsModule} from '@angular/forms';\nimport { IonicImageViewerModule } from 'ionic-img-viewer';\nimport { CameraProvider } from '../providers/common-provider/camera';\nimport { LoadingProvider } from '../providers/common-provider/loading';\nimport { Camera } from '@ionic-native/camera';\n\nimport { PdQuestionAddressPage } from '../pages/pd-question/pd-question-address/pd-question-address';\nimport { PdQuestionAssestsPage } from '../pages/pd-question/pd-question-assests/pd-question-assests';\nimport { PdQuestionBankingPage } from '../pages/pd-question/pd-question-banking/pd-question-banking';\nimport { PdQuestionCurrentLoansPage } from '../pages/pd-question/pd-question-current-loans/pd-question-current-loans';\nimport { PdQuestionEmpInfoPage } from '../pages/pd-question/pd-question-emp-info/pd-question-emp-info';\nimport { PdQuestionFamilyPage } from '../pages/pd-question/pd-question-family/pd-question-family';\n\nimport { PdQuestionLoansPage } from '../pages/pd-question/pd-question-loans/pd-question-loans';\nimport { PdQuestionFinancialInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info';\nimport { PdQuestionOtherIncomePage } from '../pages/pd-question/pd-question-other-income/pd-question-other-income';\nimport { PdQuestionSupplierInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info';\nimport { Geolocation } from '@ionic-native/geolocation';\nimport { PdQuestionPersonalInfoPage } from '../pages/pd-question/pd-question-personal-info/pd-question-personal-info';\nimport { PdQuestionStockInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info';\nimport { PdQuestionClientInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info';\n// import { DatePicker } from '@ionic-native/date-picker';\nimport { PdQuestionBusinessInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info';\nimport { PdQuestionRentalInfoPage } from '../pages/pd-question/pd-question-rental-info/pd-question-rental-info';\nimport { PdQuestionAssessedInfoPage } from '../pages/pd-question/pd-question-assessed-info/pd-question-assessed-info';\nimport { PdQuestionAssessedDailySalesPage } from '../pages/pd-question/pd-question-assessed-daily-sales/pd-question-assessed-daily-sales';\nimport { PdQuestionAssessedSalesPage } from '../pages/pd-question/pd-question-assessed-sales/pd-question-assessed-sales';\nimport { PdQuestionAssessedHouseholdPage } from '../pages/pd-question/pd-question-assessed-household/pd-question-assessed-household';\nimport { PdQuestionAssessedPurchasePage } from '../pages/pd-question/pd-question-assessed-purchase/pd-question-assessed-purchase';\nimport { PdQuestionAssessedDashPage } from '../pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash';\nimport { BouncedRejectPage } from '../pages/input/bounced-reject/bounced-reject';\nimport { PdQuestionAssessedBusinessPage } from '../pages/pd-question/pd-question-assessed-business/pd-question-assessed-business';\nimport { PdQuestionLenderRepresentativePage } from '../pages/pd-question/pd-question-lender-representative/pd-question-lender-representative';\nimport { PdQuestionGeneralInfoPage } from '../pages/pd-question/pd-question-general-info/pd-question-general-info';\nimport { PdQuestionGeneralOtherApplicantPage } from '../pages/pd-question/pd-question-general-info/pd-question-general-other-applicant/pd-question-general-other-applicant';\nimport { PdQuestionNeighbourHoodPage } from '../pages/pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood';\nimport { PdQuestionFinalRemarkPage } from '../pages/pd-question/pd-question-final-remark/pd-question-final-remark';\nimport { PdQuestionFuturePlansAndBusinessEnvironmentPage } from '../pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment';\nimport { PdQuestionBusinessGroupPage } from '../pages/pd-question/pd-question-business-group/pd-question-business-group'\nimport { PdQuestionBusinessAssetsPage } from '../pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets'\nimport {PdQuestionBusinessBankingPage} from '../pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking'\nimport { PdPipe } from '../pipes/pd/pd';\nimport { SearchRelationPipe } from '../pipes/search-relation/search-relation';\nimport { PdQuestionAssessedBusinessIncomePage } from '../pages/pd-question/pd-question-assessed-business-income/pd-question-assessed-business-income';\nimport { PdGeneralImagesPage } from '../pages/pd-general-images/pd-general-images';\nimport { PdQuestionSalaryInfoPage } from '../pages/pd-question/pd-question-salary-info/pd-question-salary-info';\nimport { LocationAccuracy } from '@ionic-native/location-accuracy';\nimport {PdQuestionAssessedSummaryPage} from '../pages/pd-question/pd-question-assessed-summary/pd-question-assessed-summary'\nimport { NgxMatSelectSearchModule} from 'ngx-mat-select-search'\nimport { ContentLoaderModule } from '@netbasal/content-loader';\nimport {PdQuestionAssessedDailyPurchasePage} from '../pages/pd-question/pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase'\nimport {RupeeCurrencyFormatPipe} from '../pipes/rupee-currency-format/rupee-currency-format'\nimport {PdQuestionAssessedImagesPage} from '../pages/pd-question/pd-question-assessed-images/pd-question-assessed-images'\n// import {PipesModule} from '../pipes/pipes.module'\nimport {IonicStorageModule} from '@ionic/storage'\nimport { StorageProvider } from '../providers/storage/storage';\nimport {PdQuestionRentalDashPage} from '../pages/pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash'\nimport {CacheModule} from 'ionic-cache'\nimport { CompleteListPage } from '../pages/complete-list/complete-list';\nimport {BackgroundGeolocation} from '@ionic-native/background-geolocation'\nimport {ModalScaleUpEnterTransition} from '../app/modalanimations/enter'\nimport {ModalScaleUpLeaveTransition} from '../app/modalanimations/leave'\nimport {Push} from '@ionic-native/push'\n\n\n@NgModule({\n declarations: [\n MyApp,\n AuthPage,\n LoginPage,\n PdListPage,\n CompleteListPage,\n PdQuestionCategoryPage,\n PdQuestionPage,\n GoogleplaytabPage,\n PasswordPage,\n PdAllocationPage,\n InputPage,\n OtpPage,\n PdQuestionAddressPage,\n PdQuestionAssestsPage,\n PdQuestionBankingPage,\n PdQuestionCurrentLoansPage,\n PdQuestionEmpInfoPage,\n PdQuestionFamilyPage,\n PdQuestionBusinessInfoPage,\n PdQuestionLoansPage,\n PdQuestionFinancialInfoPage,\n PdQuestionOtherIncomePage,\n PdQuestionSupplierInfoPage,\n PdQuestionPersonalInfoPage,\n PdQuestionStockInfoPage,\n PdQuestionClientInfoPage,\n PdQuestionRentalInfoPage,\n PdQuestionAssessedInfoPage,\n PdQuestionAssessedDailySalesPage,\n PdQuestionAssessedSalesPage,\n PdQuestionBusinessInfoPage,\n PdQuestionAssessedHouseholdPage,\n PdQuestionAssessedPurchasePage,\n PdQuestionAssessedDashPage,\n BouncedRejectPage,\n PdQuestionAssessedBusinessPage,\n PdQuestionLenderRepresentativePage,\n PdQuestionGeneralInfoPage,\n PdQuestionGeneralOtherApplicantPage,\n PdQuestionNeighbourHoodPage,\n PdQuestionFinalRemarkPage,\n PdQuestionFuturePlansAndBusinessEnvironmentPage,\n PdQuestionBusinessGroupPage,\n PdQuestionBusinessAssetsPage,\n PdQuestionBusinessBankingPage,\n PdQuestionAssessedBusinessIncomePage,\n PdGeneralImagesPage,\n PdQuestionSalaryInfoPage,\n PdQuestionAssessedSummaryPage,\n PdQuestionAssessedDailyPurchasePage,\n PdQuestionAssessedImagesPage,\n RupeeCurrencyFormatPipe,SearchRelationPipe,\n PdQuestionRentalDashPage,\n MapAddressPage,\n FormCompleteCheckModalPage\n // PipesModule\n \n ],\n imports: [\n BrowserModule,ReactiveFormsModule,FormsModule,\n IonicModule.forRoot(MyApp),\n BrowserAnimationsModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,MatListModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatStepperModule,HttpClientModule,IonicImageViewerModule,NgxMatSelectSearchModule,\n ContentLoaderModule,\n IonicStorageModule.forRoot(),\n CacheModule.forRoot()\n \n ],\n bootstrap: [IonicApp],\n entryComponents: [\n MyApp,\n AuthPage,\n LoginPage,\n PdListPage,\n PdQuestionCategoryPage,\n PdQuestionPage,\n GoogleplaytabPage,\n PasswordPage,\n CompleteListPage,\n PdAllocationPage,\n InputPage,\n OtpPage,\n PdQuestionAddressPage,\n PdQuestionAssestsPage,\n PdQuestionBankingPage,\n PdQuestionCurrentLoansPage,\n PdQuestionEmpInfoPage,\n PdQuestionFamilyPage,\n PdQuestionBusinessInfoPage,\n PdQuestionLoansPage,\n PdQuestionFinancialInfoPage,\n PdQuestionOtherIncomePage,\n PdQuestionSupplierInfoPage,\n PdQuestionPersonalInfoPage,\n PdQuestionStockInfoPage,\n PdQuestionClientInfoPage,\n PdQuestionRentalInfoPage,\n PdQuestionAssessedInfoPage,\n PdQuestionAssessedDailySalesPage,\n PdQuestionAssessedSalesPage,\n PdQuestionBusinessInfoPage,\n PdQuestionAssessedHouseholdPage,\n PdQuestionAssessedPurchasePage,\n PdQuestionAssessedDashPage,\n BouncedRejectPage,\n PdQuestionAssessedBusinessPage,\n PdQuestionLenderRepresentativePage,\n PdQuestionGeneralInfoPage,\n PdQuestionGeneralOtherApplicantPage,\n PdQuestionNeighbourHoodPage,\n PdQuestionFinalRemarkPage,\n PdQuestionFuturePlansAndBusinessEnvironmentPage,\n PdQuestionBusinessGroupPage,\n PdQuestionBusinessAssetsPage,\n PdQuestionBusinessBankingPage,\n PdQuestionAssessedBusinessIncomePage,\n PdGeneralImagesPage,\n PdQuestionSalaryInfoPage,\n PdQuestionAssessedSummaryPage,\n PdQuestionAssessedDailyPurchasePage,\n PdQuestionAssessedImagesPage,\n PdQuestionRentalDashPage,\n MapAddressPage,\n FormCompleteCheckModalPage\n \n \n ],\n providers: [\n StatusBar,AwsServiceProvider,AuthGuard,TokenInterceptor,ToastProvider,\n ConstantsProvider,CognitoServiceProvider,SplashScreen,PdtriggerProvider,FingerprintAIO,SQLite,AndroidPermissions,BackgroundGeolocation,\n Push,Events,\n {\n provide:HTTP_INTERCEPTORS,\n useClass: TokenInterceptor,\n multi: true\n },\n {\n provide: ErrorHandler,\n useClass: IonicErrorHandler\n },LaunchNavigator,\n AwsServiceProvider,\n QuestionCategoryProvider,\n CameraProvider,Camera,\n PdPipe,LocationAccuracy,\n LoadingProvider,Geolocation,\n DatabaseProvider,\n StorageProvider\n \n ]\n})\nexport class AppModule {\n\n constructor(public config:Config){\n this.setCustomTransitionsForModal()\n }\n private setCustomTransitionsForModal() {\n this.config.setTransition('modal-scale-up-leave', ModalScaleUpLeaveTransition);\n this.config.setTransition('modal-scale-up-enter', ModalScaleUpEnterTransition);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { Component, ViewChild } from '@angular/core';\nimport { Nav, Platform, Events } from 'ionic-angular';\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { SplashScreen } from '@ionic-native/splash-screen';\nimport { LoginPage } from '../pages/login/login';\nimport { PdListPage } from '../pages/pd-list/pd-list';\nimport { MethodCall } from '@angular/compiler';\nimport { AwsServiceProvider } from '../providers/aws-service/aws-service';\nimport { CognitoServiceProvider } from '../providers/aws-service/cognito.service';\nimport { PasswordPage } from '../pages/password/password';\nimport { AuthPage } from '../pages/auth/auth';\nimport {AlertController} from 'ionic-angular'\nimport { platformBrowser } from '@angular/platform-browser';\nimport {CacheService} from 'ionic-cache'\n// import { AndroidPermissions } from '@ionic-native/android-permissions';\nimport { CompleteListPage } from '../pages/complete-list/complete-list';\nimport {Push,PushOptions,PushObject} from '@ionic-native/push'\nimport { CookieStorage } from 'amazon-cognito-identity-js';\nimport {ToastProvider} from '../providers/common-provider/toast'\n\ndeclare let notificationAccess:boolean\n\n\n\n@Component({\n templateUrl: 'app.html'\n})\nexport class MyApp {\n \n userDetails: any;\n userAccess:boolean = false;\n @ViewChild(Nav) nav: Nav;\n\n rootPage: any = LoginPage;\n public alertShown:boolean=false\n\n pages: Array<{title: string,icon:any, method: any}>;\n\n constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen,public aws:AwsServiceProvider,public shared:CognitoServiceProvider,public AWS:AwsServiceProvider\n ,public alertCtrl:AlertController,cache:CacheService,private push:Push,private event:Events,private toastProvider:ToastProvider) {\n cache.setDefaultTTL(60*60)\n this.initializeApp();\n\n // used for an example of ngFor and navigation\n this.pages = [ \n // { title: 'Home', component: HomePage, icon: 'home' },\n { title: 'Home', icon: 'home',method:()=>this.menulist(1) },\n { title: 'Logout', icon: 'md-exit',method:()=>this.menulist(2)},\n { title: 'Complete List', icon: 'checkmark-circle',method:()=>this.menulist(3)}\n\n ];\n\n\n }\n\n initializeApp() {\n this.platform.ready().then(() => {\n // Okay, so the platform is ready and our plugins are available.\n // Here you can do any higher level native things you might need.\n this.statusBar.styleDefault();\n if (this.platform.is('android')) {\n this.statusBar.overlaysWebView(false);\n this.statusBar.backgroundColorByHexString('#db4437');\n \n }\n this.splashScreen.hide();\n \n this.shared.getAccessToken().then(()=>{\n this.getuserDetails();\n this.rootPage = AuthPage\n this.notification()\n }).catch(()=>{\n setTimeout(() => {\n this.rootPage = LoginPage;\n this.unregisterNotification()\n }, 1000);\n });\n \n });\n this.platform.registerBackButtonAction(()=>{\n if(this.nav.length()==1){\n if(this.alertShown==false){\n //this.presentConfirm(); \n let alert=this.alertCtrl.create({\n title:'Confirm Exit',\n message:'Do You Want Exit ?',\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n console.log(\"Cancel clicked\");\n this.alertShown=false\n alert.dismiss\n }\n },\n {\n text:'Yes',\n handler:()=>{\n console.log(\"Exit\");\n this.platform.exitApp();\n }\n }\n ]\n });\n alert.present();\n this.alertShown=true\n }\n }\n else{\n this.nav.pop()\n }\n });\n }\n\n presentConfirm(){\nlet alert=this.alertCtrl.create({\n title:'Confirm Exit',\n message:'Do You Want Exit ?',\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n console.log(\"Cancel clicked\");\n // this.alertShown=false\n alert.dismiss\n }\n },\n {\n text:'Yes',\n handler:()=>{\n console.log(\"Exit\");\n this.platform.exitApp();\n }\n }\n ]\n});\n alert.present();\n // this.alertShown=true;\n }\n getuserDetails()\n {\n this.userDetails=''\n \n let userid = this.aws.getlocale();\n this.aws.getuserprofile(userid).subscribe(res=>{\n this.userDetails = res;\n if(this.userDetails.dataStatus == true)\n { \n notificationAccess=true\n this.userAccess = true;\n this.userDetails = this.userDetails.records[0];\n \n }\n \n });\n }\n menulist(id){\n //alert();\n switch(id)\n {\n case 1:\n this.nav.setRoot(PdListPage);\n break;\n case 2:\n this.AWS.logout().subscribe(()=>{\n this.nav.setRoot(LoginPage);\n });\n break;\n case 3:\n this.nav.setRoot(CompleteListPage);\n break;\n case 4:\n break;\n}\n}\n logout()\n {\n // this.aws.logout();\n this.nav.setRoot(LoginPage);\n }\n notification(){\n // this.nav.setRoot(this.nav.getActive().component);\n this.push.hasPermission().then((res: any) => {\n \n if (res.isEnabled) {\n console.log('We have permission to send push notifications');\n } else {\n console.log('We do not have permission to send push notifications');\n }\n \n });\n const option:PushOptions={\n android:{\n senderID:'893175418100'\n },\n ios: {\n alert: 'true',\n badge: true,\n sound: 'false'\n },\n windows: {},\n browser: {\n pushServiceURL: 'http://push.api.phonegap.com/v1/push'\n }\n }\n const pushObject:PushObject=this.push.init(option);\n if(notificationAccess){\n\n pushObject.on('notification').subscribe((notification: any) =>{\n console.log('Received a notification', notification)\n if(notification.additionalData.foreground){\n this.event.publish('alert',notification);\n this.toastProvider.setAlertwithButton(notification)\n }\n else{\n this.event.publish('notify',notification);\n //this.nav.setRoot(PdListPage,{notify:'Via Notification'});\n this.rootPage=PdListPage\n }\n });\n }\n else{\n console.log(\"Sorry you dont have notification access\");\n }\n \n\n pushObject.on('registration').subscribe((registration: any) => console.log('Device registered', registration));\n\n pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error));\n \n }\n unregisterNotification(){\n // PushObject.unregister(()=>console.log(\"Notification is Unregistered\"))\n // this.push.unregister()\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Injectable } from '@angular/core';\n\n// import { CanActivateChild, Router } from '@angular/router';\nimport {\n AuthenticationDetails,\n CognitoUserPool,\n CognitoUser,\n \n} from \"amazon-cognito-identity-js\";\n// import { IonicPage, NavController, NavParams, MenuController } from 'ionic-angular';\n\n// import { environment } from '../../environments/environment';\n\nimport { BehaviorSubject,Observable,of } from 'rxjs';\n\nconst sineedge_poolData = { \n UserPoolId: \"ap-south-1_y7dt3iEaX\", //ap-south-1_qQ85yQZJO UserName :SPARQ_SINEEDGE_DEV\n ClientId: \"291qt4smn5pql6o8cc2hi201lj\" // ClientName: SINEEDGE_DEV_WEB\n};\nconst sineedgedev_poolData = {\n UserPoolId: \"ap-south-1_qQ85yQZJO\", // UserName :SPARQ_SINEEDGE_DEV\n ClientId: \"2o5c3cs9k3als16nqhp3irh8rs\" // ClientName: SINEEDGE_DEV_WEB\n}\nconst lender_poolData = {\n UserPoolId: \"ap-south-1_hFiGyr1Gw\", // Username :SPARQ_LENDER_DEV\n ClientId: \"38v9rpp1495v60e1gd14mj6rjr\" // ClientName:LENDER_DEV_WEB\n};\nconst vendor_poolData = {\n UserPoolId: \"\",\n ClientId: \"\"\n}\nconst sineedgeUserPool = new CognitoUserPool(sineedge_poolData);\nconst lenderUserPool = new CognitoUserPool(lender_poolData);\nconst sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData);\n\n/**\n* Identity PoolID \n*/\nconst sineedgeIdentity = \"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";//\"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";\nconst lenderIdentity = \"ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907\";\nconst vendorIdenttiy = \"\";\n// serviceProvider\nconst apiurl = \"http://ssa.sineedge.com/sparqapi/api/\";\n// const apiurl = \"http://localhost/sparqapi/api/\";\n\n@Injectable()\n\nexport class CognitoServiceProvider {\n public loggedIn :boolean = false;\n // public static _REGION = environment.region;\n\n // public static _IDENTITY_POOL_ID = environment.identityPoolId;\n // public static _USER_POOL_ID = environment.UserPoolId;\n // public static _CLIENT_ID = environment.ClientId;\n\n // public static _POOL_DATA: any = {\n // UserPoolId: CognitoService._USER_POOL_ID,\n // ClientId: CognitoService._CLIENT_ID\n // };\n \n\n // public cognitoCreds: AWS.CognitoIdentityCredentials;\nisloggin:boolean = false; \n\n\n \n\n \n constructor() { \n \n }\n getCurrentUser() {\n \n return sineedgedevUserpool.getCurrentUser();\n}\n get isLoggedIn() {\n if(sineedgedevUserpool.getCurrentUser() !=null){\n this.loggedIn = true;\n }else{\n this.loggedIn = false;\n }\n return this.loggedIn; // {2}\n }\n \nrefresh() {\n let tokenexp:boolean;\n \n if(this.getCurrentUser() !=null){\n \n this.getCurrentUser().getSession(function (err, session) {\n if (err) {\n console.log(\"CognitoUtil: Can't set the credentials:\" + err);\n }\n\n else {\n if (session.isValid()) {\n tokenexp = session.isValid();\n of(tokenexp)\n console.log(\"CognitoUtil: refreshed successfully\");\n \n } else {\n tokenexp = session.isValid();\n console.log(\"CognitoUtil: refreshed but session is still not valid\");\n \n }\n }\n \n return tokenexp;\n \n });\n }else{\n this.loggedIn = false;\n }\n}\ngetAccessToken(){\n this.refresh();\n return new Promise((resolve, reject) => {\n let jwttoken = '';\n if (this.getCurrentUser() != null) {\n //console.log(JSON.stringify(this.getCurrentUser()));\n // console.log('76 if');\n this.getCurrentUser().getSession(function (err, session) {\n if (err) {\n console.log(\"CognitoUtil: Can't set the credentials:\" + err);\n jwttoken ='';\n // console.log('81 if')\n reject(err);\n }\n else {\n if (session.isValid()) {\n // console.log('85 else if');\n jwttoken = session;\n resolve();\n } else {\n \n }\n }\n });\n }\n else {\n //console.log(\"else\");\n reject();\n }\n});\n}\n\ngetToken():any {\n let isloggin = false;\n let jwttoken = '';\n if (this.getCurrentUser() != null) {\n \n this.getCurrentUser().getSession(function (err, session) {\n if (err) {\n // console.log(\"CognitoUtil: Can't set the credentials:\" + err);\n isloggin = false;\n //console.log('81 if')\n }\n else {\n //alert('function else');\n if (session.isValid()) {\n // console.log('85 else if');\n jwttoken = session;\n isloggin = true;\n } else {\n \n isloggin = false;\n }\n }\n });\n }\n else {\n // console.log(\"else\");\n isloggin = false;\n }\n return jwttoken;\n}\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/aws-service/cognito.service.ts","import { Injectable } from '@angular/core';\n// import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\n\n\n\n@Injectable()\nexport class AuthGuard {\n \n constructor() { \n\n \n }\n\n // canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n // // if (this.shared.getToken()) {\n // alert(\"if\");\n // // this.router.navigate(['']);\n // return true\n // } else {\n // alert(\"else\");\n // this.router.navigate(['/login']);\n // return false;\n // }\n // }\n getlogin(){\n // if (this.shared.getToken()) {\n // // alert(\"if\");\n // //alert();\n // return true;\n // } else {\n // // alert(\"else\");\n \n // //this.myGlobalServiceNav.setRoot(LoginPage);\n // this.shared.isloggin = false;\n // return false;\n \n \n // }\n }\n // canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n \n \n // }\n\n // public getToken(): string {\n // return localStorage.getItem('token');\n // }\n\n // public logOut() {\n // localStorage.clear();\n // if(localStorage.getItem('token') === null){\n // this.router.navigate(['/login']);\n // }\n // }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/providers/_guard/auth.guard.ts","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor,\n HttpHeaders\n} from '@angular/common/http';\n// import { AuthGuard } from './auth.guard';\nimport { Observable, of} from 'rxjs';\n\n// import { Router } from '@angular/router';\n\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { CognitoServiceProvider } from '../aws-service/cognito.service';\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor{\n constructor(public shared:CognitoServiceProvider ) {\n \n }\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // request = request.clone({\n // setHeaders: {\n // Authorization: `${this.auth.getToken()}`\n // }\n // });\n let token:any;\n this.shared.refresh();\n token = this.shared.getToken() || null;\n \n token = token.getIdToken().getJwtToken();\n \n //console.log(token);\n let requests = request.clone({\n headers:new HttpHeaders({\n \n 'Authorization': 'sparqvenba2018',\n 'Token':token,\n 'From':'1',\n \n \n }) \n \n });\n \n return next.handle(requests).pipe(\n catchError(this.handleError('role', []))\n )\n }\n\n private handleError (operation = 'operation', result?: T) {\n return (error: any): Observable => {\n if(error instanceof HttpErrorResponse){\n console.error(\"Error: \" + error.status);\n if(error.status == 401){\n localStorage.clear();\n // this.router.navigate(['/authentication/login']);\n }\n return of(result as T);\n }\n };\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/providers/_guard/token.interceptor.ts","import { Component ,ViewChild} from '@angular/core';\nimport { IonicPage, NavController, NavParams , Slides , Content, Platform } from 'ionic-angular';\n\n/**\n * Generated class for the GoogleplaytabPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-googleplaytab',\n templateUrl: 'googleplaytab.html',\n})\nexport class GoogleplaytabPage {\n\n @ViewChild('SwipedTabsSlider') SwipedTabsSlider: Slides ;\n @ViewChild('MultiItemsScrollingTabs') ItemsTitles : Content;\n\n SwipedTabsIndicator :any= null;\n tabTitleWidthArray :any= [];\n tabElementWidth_px :number= 50;\n screenWidth_px :number= 0;\n isRight :boolean= true;\n isLeft:boolean= true;\n tabs:any=[];\n\n constructor(public navCtrl: NavController, public navParams: NavParams, platform: Platform) {\n this.tabs=[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"9\",\"10\",\"11\"];\n console.log('Width: ' + platform.width());\n this.screenWidth_px=platform.width();\n \n}\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad GoogleplaytabPage');\n }\n ionViewDidEnter() {\n this.SwipedTabsIndicator = document.getElementById(\"indicator\");\n for (let i in this.tabs)\n this.tabTitleWidthArray.push(document.getElementById(\"tabTitle\"+i).offsetWidth);\n\n this.selectTab(0);\n }\n\n scrollIndicatiorTab()\n {\n this.ItemsTitles.scrollTo(this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())-this.screenWidth_px/2,0);\n }\n\n selectTab(index)\n {\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n this.SwipedTabsSlider.slideTo(index);\n }\n\n calculateDistanceToSpnd(index)\n {\n var result=0;\n for (var _i = 0; _i < index; _i++) {\n result=result+this.tabTitleWidthArray[_i];\n }\n return result;\n }\n\n updateIndicatorPosition() {\n var index=this.SwipedTabsSlider.getActiveIndex();\n if( this.SwipedTabsSlider.length()==index)\n index=index-1;\n\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n\n }\n\n updateIndicatorPositionOnTouchEnd()\n {\n setTimeout( () => { this.updateIndicatorPosition(); }, 200);\n }\n\n animateIndicator($event)\n {\n\n this.isLeft=false;\n this.isRight=false;\n var currentSliderCenterProgress =(1/(this.SwipedTabsSlider.length()-1) )*this.SwipedTabsSlider.getActiveIndex();\n if($event.progress < currentSliderCenterProgress)\n {\n this.isLeft=true;\n this.isRight=false;\n\n } if($event.progress > currentSliderCenterProgress)\n {\n this.isLeft=false;\n this.isRight=true;\n }\n\n if(this.SwipedTabsSlider.isEnd())\n this.isRight=false;\n\n if( this.SwipedTabsSlider.isBeginning())\n this.isLeft=false;\n\n if(this.isRight)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()+1])\n +'px,0,0)';\n\n if(this.isLeft)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()-1])\n +'px,0,0)';\n\n if(!this.isRight && !this.isLeft)\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()]+\"px\";\n\n }\n\n\n\n}\n\n \n\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/googleplaytab/googleplaytab.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\n/**\n * Generated class for the PdAllocationPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-allocation',\n templateUrl: 'pd-allocation.html',\n})\nexport class PdAllocationPage {\npdFullDetails:any = [];\n constructor(public navCtrl: NavController, public navParams: NavParams) {\n \n this.pdFullDetails = this.navParams.get('pdDetails');\n console.log(this.pdFullDetails);\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdAllocationPage');\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-allocation/pd-allocation.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Toast, ToastController,AlertController} from 'ionic-angular';\n\n/*\n Generated class for the ToastProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class ToastProvider {\n\n constructor(public http: HttpClient,public toast:ToastController,private alertCtrl:AlertController) {\n console.log('Hello ToastProvider Provider');\n }\n pdTriggerappmessage(mess){\n let valalert = this.toast.create({\n message:mess, \n duration: 3000, \n position: 'bottom',\n dismissOnPageChange: true,\n });\n\n valalert.present();\n} \nsetAlert(title_name,msg){\n \n\nlet alert=this.alertCtrl.create({\n title:title_name,\n message:msg,\n cssClass:'buttoncss',\n buttons:[{\n text:'No',\n cssClass:'btnNo',\n handler:()=>{\n alert.dismiss(false)\n return false\n }\n },{\n text:'Yes',\n cssClass:'btnYes',\n handler:()=>{\n alert.dismiss('s')\n return false\n }\n },\n ]\n});\n//alert.present()\nreturn alert\n\n}\nsetAlertForDocName(){\n \n let alert=this.alertCtrl.create({\n title:'Document Name',\n message: 'Please Enter the Document Name',\n cssClass:'prompt_alert',\n inputs:[\n {\n name:'Name',\n //value:this.imageBucket[index].Name\n placeholder:'Document Name'\n }\n ],\n buttons:[\n {\n text:'Submit',\n handler:data=>{\n console.log(data.Name)\n alert.dismiss(data.Name)\n }\n \n }\n ]\n })\n //alert.present();\n //this.inputFocus.setFocus();\n\nreturn alert\n}\nsetAlertForCompletePD(){\n let alert=this.alertCtrl.create({\n title:'Complete Discussion',\n message: 'Please confirm you are completing the Discussion and forwarding for Quality Check ?',\n cssClass:'complete_alert',\n buttons:[\n {\n text:'Yes / Allow Addon PD',\n handler:()=>{\n alert.dismiss('addon')\n return false\n }\n },\n {\n text:'Yes',\n handler:()=>{\n alert.dismiss('yes')\n return false\n }\n },\n {\n text:'No',\n handler:()=>{\n alert.dismiss('no')\n return false\n }\n }\n ]\n })\n //alert.present();\n //this.inputFocus.setFocus();\n\nreturn alert\n}\nsetAlertwithButton(data){\n let alert =this.alertCtrl.create({\n title: 'Notification',\n subTitle:data.title ,\n message:data.message,\n buttons: ['OK']\n })\n alert.present();\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/common-provider/toast.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Generated class for the PdPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: 'pdPipe',\n})\nexport class PdPipe implements PipeTransform {\n /**\n * Takes a value and makes it lowercase.\n */\n transform(value: any, searchItem:any):any {\n let findExistIndex = searchItem.existRelationList.filter(sVal=>sVal.relation_to==searchItem.currentApplicantID);\n if(findExistIndex.length>0){\n let check = value.filter(function(fVal){\n return !findExistIndex.some(function(sVal){\n return fVal.pd_co_applicant_id==searchItem.currentApplicantID || fVal.pd_co_applicant_id == sVal.pd_co_applicant_id;\n });\n })\n return check;\n }\n else {\n return value.filter(fVal=>fVal.pd_co_applicant_id!=searchItem.currentApplicantID);\n }\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/pd/pd.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup,FormBuilder,FormArray } from '@angular/forms';\n\n/**\n * Generated class for the PdQuestionSalaryInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-salary-info',\n templateUrl: 'pd-question-salary-info.html',\n})\nexport class PdQuestionSalaryInfoPage {\n\n salaryDetails:FormGroup\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder) {\n \n this.salaryDetails = this.fb.group(\n {\n gross:[null],\n netTakeHome:[null],\n bounsIncentive:[null],\n salaryDate:[null],\n anydelays:[null], \n })\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionSalaryInfoPage');\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-salary-info/pd-question-salary-info.ts","import { Animation, PageTransition } from 'ionic-angular';\n\nexport class ModalScaleUpEnterTransition extends PageTransition {\n\npublic init() {\n const ele = this.enteringView.pageRef().nativeElement;\n const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper'));\n\n wrapper.beforeStyles({ 'transform': 'scale(0)', 'opacity': 1 });\n wrapper.fromTo('transform', 'scale(0)', 'scale(1.0)');\n wrapper.fromTo('opacity', 1, 1);\n\n this\n .element(this.enteringView.pageRef())\n .duration(500)\n .easing('cubic-bezier(.1, .7, .1, 1)')\n .add(wrapper);\n}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modalanimations/enter.ts","import { Animation, PageTransition } from 'ionic-angular';\n\nexport class ModalScaleUpLeaveTransition extends PageTransition {\n\npublic init() {\n const ele = this.leavingView.pageRef().nativeElement;\n const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper'));\n const contentWrapper = new Animation(this.plt, ele.querySelector('.wrapper'));\n\n wrapper.beforeStyles({ 'transform': 'scale(0)', 'opacity': 1 });\n wrapper.fromTo('transform', 'scale(1)', 'scale(5.0)');\n wrapper.fromTo('opacity', 1, 1);\n contentWrapper.fromTo('opacity', 1, 0);\n\n this\n .element(this.leavingView.pageRef())\n .duration(500)\n .easing('cubic-bezier(.1, .7, .1, 1)')\n .add(contentWrapper)\n .add(wrapper);\n}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modalanimations/leave.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {ConstantsProvider} from '../constants/constants';\n\n/*\n Generated class for the PdtriggerProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n\n// const apiurl = 'http://ssa.sineedge.com/sparqapi/api/'\n@Injectable()\nexport class PdtriggerProvider {\n apiurl:any;\n constructor(public http: HttpClient,public constants:ConstantsProvider) {\n this.apiurl = constants.apiurl();\n console.log('Hello PdtriggerProvider Provider');\n }\n\n \n\n /**get dropdonw list */\n\n /**Get list of PD Trigger */\n\n getpddetails(userid)\n { \n console.log(userid);\n return this.http.get(this.apiurl+'listLessPDDetails/get?pdofficerid='+userid);\n }\n\n getFullPDdetails(pdid)\n {\n return this.http.post(this.apiurl+'getFullPDDetails',pdid);\n }\n\n updatepdStatus(dataStatus)\n {\n let records = {'records':dataStatus};\n return this.http.post(this.apiurl+'updatePDMaster',records);\n }\n\n updateSchedule(updateData){\n return this.http.post(this.apiurl + \"schdulePD\", { \"records\": updateData })\n }\n\n\n\n saveCurrentLocation(data)\n {\n let records = {'records':data};\n return this.http.post(this.apiurl+'savePDOfficerCurrentLocation',data);\n }\n\n checkotp(otpDetails)\n {\n\n let records = {'records':otpDetails};\n \n return this.http.post(this.apiurl+'checkOTP',records); \n }\n getPDCompleteDetails(details){\n return this.http.post(this.apiurl+'getPDCompleteDetails',{'records':details})\n }\n pdFormsCompletenessCheck(pd_id){\n return this.http.post(this.apiurl+'pdFormsCompletenessCheck',{'pd_id':pd_id,'client':'MOB'})\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/pdtrigger/pdtrigger.ts","import { Component,ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Slides, Events } from 'ionic-angular';\nimport { InputPage } from '../input/input';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { parseDate } from 'ionic-angular/util/datetime-util';\nimport { PdAllocationPage } from '../pd-allocation/pd-allocation';\nimport { OtpPage } from '../otp/otp';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\nimport { DatabaseProvider } from '../../providers/database/database';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\n/**\n * Generated class for the PdListPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-list',\n templateUrl: 'pd-list.html',\n})\nexport class PdListPage {\n\n @ViewChild('slider') slider:Slides;\n searchinprogress: any;\n searchpast: any;\n pdschduleDetails: any;\n bgColorPast: any = [];\n bgColor: any = [];\n pdinprogress: any=[];\n pdlistdetails: any=[];\n viewchange: boolean;\n pdlist:any = \"0\";\n pdlistaccess:boolean = null;\n\n notification:any=[]\n from:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public pdofficer:PdtriggerProvider,public shared:CognitoServiceProvider,public db:DatabaseProvider,public androidPermissions:AndroidPermissions,private event:Events) {\n //this.getlenderpddetails(); \n // this.getpdTriggerdetails();\n this.event.subscribe('notify',(res)=>{\n this.notification.push(res);\n })\n \n this.from=this.navParams.get('notify')\n console.log(\"from\",this.from);\n console.log(\"notification via event\",this.notification);\n }\n selectedTab(ind)\n {\n this.slider.slideTo(ind)\n }\n moveButton(event){\n this.pdlist=event._snapIndex.toString();\n }\n\n ionViewDidLoad() {\n \n console.log('ionViewDidLoad PdListPage');\n this.db.getuserDetails();\n this.setpermission();\n }\n ionViewCanEnter()\n {\n console.log(\"Pd list ionViewCanEnter\")\n this.getpdTriggerdetails();\n }\n filter(view){\n if(!view){\n this.viewchange = true;\n }else{\n this.viewchange = false;\n this.pdinprogress = this.pdinprogress;\n this.pdschduleDetails = this.pdschduleDetails;\n }\n \n //alert(this.viewchange);\n }\n pdlistsearch(searchbar) {\n \n this.pdinprogress = this.searchinprogress;\n this.pdschduleDetails = this.searchpast;\n // reset countries list with initial call\n //this.pdinprogress = this.countriesInitial;\n // set q to the value of the searchbar\n var q = searchbar.target.value;\n\n // if the value is an empty string don't filter the items\n \n if(this.pdlist == \"inpro\"){\n if (q.trim() == '') {\n return ;\n }else{\n this.pdinprogress = this.searchinprogress.filter((v) => {\n if (v.applicat_details !== undefined && v.applicat_details[0].applicant_name.toLowerCase().indexOf(q.toLowerCase()) > -1 || v.pd_status.toLowerCase().indexOf(q.toLowerCase())>-1 || v.city_name != null && v.city_name.toLowerCase().indexOf(q.toLowerCase())>-1 || v.lender_applicant_id.toLowerCase().indexOf(q.toLowerCase())>-1) {\n return true;\n }\n return false;\n })\n }\n }else\n {\n if (q.trim() == '') {\n \n return ;\n }else{\n this.pdschduleDetails = this.searchpast.filter((v) => {\n if (v.applicat_details[0].applicant_name.toLowerCase().indexOf(q.toLowerCase()) > -1\n || v.pd_status.toLowerCase().indexOf(q.toLowerCase())>-1|| v.city_name.toLowerCase().indexOf(q.toLowerCase())>-1 || v.lender_applicant_id.toLowerCase().indexOf(q.toLowerCase())>-1) {\n \n return true;\n }\n \n return false;\n })\n }\n \n}\n}\n newpage(){\n this.navCtrl.push(InputPage);\n }\n getpdTriggerdetails()\n {\n \n let userid = this.aws.getlocale();\n //.log(\"User\",userid)\n this.pdlistaccess = true;\n\n this.pdofficer.getpddetails(userid).subscribe(res=>\n {\n this.pdlistdetails = res;\n if(this.pdlistdetails.dataStatus == true)\n {\n this.pdlistaccess = false;\n \n this.pdschduleDetails = this.pdlistdetails.records.filter(sch=>sch.pd_status ==\"ACCEPTED\" || sch.pd_status ==\"SCHEDULED\" || sch.pd_status ==\"INITIATED\" || sch.pd_status ==\"STARTED\" || sch.pd_status ==\"INPROGRESS\" || sch.pd_status == \"ADD_ON_PENDING\" );\n this.searchpast = this.pdschduleDetails;\n \n this.pdinprogress = this.pdlistdetails.records.filter(allocate=>allocate.pd_status == \"ALLOCATED\");\n this.searchinprogress = this.pdinprogress;\n console.log(\"allocated\",this.pdinprogress);\n console.log(\"inpr\",this.pdschduleDetails);\n this.random_bg_color();\n this.random_ng_past();\n }else\n {\n this.pdlistaccess = false;\n this.pdlistdetails = \"No Records Found\";\n }\n })\n }\n\n random_bg_color() {\n for(let id of this.pdinprogress){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColor.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n \n return this.bgColor;\n }\n random_ng_past()\n {\n for(let id of this.pdschduleDetails){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColorPast.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n }\n doRefresh(refresher) {\n this.bgColor = [];\n this.pdschduleDetails = [];\n this.pdinprogress = [];\n // this.pdlistaccess = true;\n this.shared.refresh();\n this.getpdTriggerdetails();\n setTimeout(() => {\n \n refresher.complete();\n }, 2000);\n }\n \n PdAllocation(pddetails)\n {\n \n \n if(pddetails.pd_status == '')//for STARTED\n {\n this.navCtrl.push(OtpPage,{'pdDetails':pddetails});\n \n // }else if(pddetails.pd_status == 'INPROGRESS'){\n // this.navCtrl.push(PdQuestionCategoryPage,{'pdDetails':pddetails});\n }else //if(pddetails.pd_status == 'ADD_ON_PENDING' || pddetails.pd_status == 'ALLOCATED')\n {\n //FOR ASSIGNING THE PARENT PD ID\n //pddetails.pd_id=pddetails.parent_pd_id\n // pddetails.pd_id=pddetails.parent_pd_id\n this.navCtrl.push(InputPage,{'pdDetails':pddetails});\n }\n }\n\n setpermission()\n {\n // let permission = this.androidPermissions.PERMISSION; \n // let premission_list = [\n // permission.ACCESS_LOCATION_EXTRA_COMMANDS,\n // permission.CAMERA,\n\n\n // ];\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-list/pd-list.ts","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n AuthenticationDetails,\n CognitoUserPool,\n CognitoUser,\n \n} from \"amazon-cognito-identity-js\";\n\n\nimport { Observable } from \"rxjs/Observable\";\nimport \"rxjs/add/operator/map\";\nimport { CognitoServiceProvider } from './cognito.service';\nimport { ConstantsProvider } from '../constants/constants';\nimport { UrlResolver } from '@angular/compiler';\nconst sineedgedev_poolData = {\n UserPoolId: \"ap-south-1_qQ85yQZJO\", // UserName :SPARQ_SINEEDGE_DEV\n ClientId: \"2o5c3cs9k3als16nqhp3irh8rs\" // ClientName: SINEEDGE_DEV_WEB\n}\nconst lender_poolData = {\n UserPoolId: \"ap-south-1_hFiGyr1Gw\", // Username :SPARQ_LENDER_DEV\n ClientId: \"38v9rpp1495v60e1gd14mj6rjr\" // ClientName:LENDER_DEV_WEB\n};\nconst vendor_poolData = {\n UserPoolId: \"ap-south-1_K57yPaWxV\",\n ClientId: \"\"\n}\n// const sineedgeUserPool = new CognitoUserPool(sineedge_poolData);\nconst lenderUserPool = new CognitoUserPool(lender_poolData);\n const sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData);\n\n/**\n* Identity PoolID \n*/\nconst sineedgeIdentity = \"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";//\"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";\nconst lenderIdentity = \"ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907\";\nconst vendorIdenttiy = \"ap-south-1:5ad3ce43-4260-4273-87b2-e6a377b8e874\";\n\nconst currentDate = new Date().toJSON().slice(0,19).replace('T',' ');\n\n\n@Injectable()\nexport class AwsServiceProvider {\napiurl:any;\n constructor(public http:HttpClient,public shared:CognitoServiceProvider,public con:ConstantsProvider) {\n this.apiurl = con.apiurl();\n }\n\n dologin(authenticationData) {\n // alert();\n //(authenticationData);\n const authenticationDetails = new AuthenticationDetails(authenticationData);\n let Newpassword = authenticationData.newpassword;\n let attributesData = [];\n const userData = {\n Username: authenticationData.Username, // User email id\n Pool: sineedgedevUserpool // user Pool ID\n };\n let cognitoUser = new CognitoUser(userData);\n return Observable.create(observer => {\n cognitoUser.authenticateUser(authenticationDetails, {\n newPasswordRequired: (userAttributes, requiredAttributes) => { // new password set \n cognitoUser.completeNewPasswordChallenge(\n Newpassword,\n attributesData,\n {\n onSuccess: function (result) {\n observer.next(result);\n observer.complete();\n },\n onFailure: function (err) {\n //(err);\n observer.error(err);\n //LoginComponent.prototype.open();\n }\n }\n );\n },\n onSuccess: function (result) { // success user login\n // let accessToken = result.getAccessToken().getJwtToken();\n ////(result);\n //window.localStorage.setItem('Currentuser', '1');\n observer.next(result);\n observer.complete();\n this.shared.isloggin = true;\n },\n onFailure: function (err) { // error user login\n\n //alert(err.message);\n observer.error(err);\n }\n });\n });\n }\n userforgotpass(auth) {\n ////(auth);\n const userData = {\n Username: auth.Username,\n Pool: sineedgedevUserpool\n };\n let cognitoUser = new CognitoUser(userData);\n return Observable.create(observe => {\n cognitoUser.forgotPassword({\n onSuccess: function (data) {\n // successfully initiated reset password request\n //('CodeDeliveryData from forgotPassword: ' + data);\n observe.next(data);\n },\n onFailure: function (err) {\n alert(err.message || JSON.stringify(err));\n },\n //Optional automatic callback\n inputVerificationCode: function (data) {\n //('Code sent to: ' + data);\n var verificationCode = prompt('Please input verification code ', '');\n var newPassword = prompt('Enter new password ', '');\n cognitoUser.confirmPassword(verificationCode, newPassword, {\n onSuccess() {\n //('Password confirmed!');\n },\n onFailure(err) {\n //('Password not confirmed!');\n }\n });\n }\n });\n });\n\n\n }\n /**\n * End of the function \n */\n\n /**\n * Logout function\n */\n logout(){\n \n return Observable.create(observe=>{\n this.shared.getCurrentUser().signOut(); \n \n observe.next();\n \n observe.complete();\n });\n }\n\n\n /**\n * Config function\n */\n // getconfig() {\n // let session:any = this.shared.getAccessToken() || \"\";\n \n // let config = \"\";\n // config += AWS.config.region = \"ap-south-1\";\n // config += AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n // IdentityPoolId: sineedgeIdentity, // for sineedge_DEV\n // Logins: {\n // \"cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO\": session\n // .getIdToken()\n // .getJwtToken()\n // }\n // // NOTE: getSession must be called to authenticate user before calling getUserAttributes\n // });\n // return config;\n // }\n\n getlocale(){\n let session:any = this.shared.getToken() || null;\n let userid = session.idToken.payload.locale;\n return userid;\n }\n getuserprofile(userid)\n {\n \n \n // alert();\n \n //console.log(cogusers.idToken.payload.locale);\n let roles = {'userid':userid}; \n \n \n // let request = new RequestOptions({headers:headers});\n return this.http.post(this.apiurl+'getUsersDetails',roles);\n \n }\n\n userpinupdate(pin)\n {\n let userid = this.getlocale(); \n let records = {'mpin':pin,'updatedon':currentDate,'fk_updatedby':userid,'userid':userid};\n let formdata = new FormData();\n \n formdata.append('records',JSON.stringify(records));\n return this.http.post(this.apiurl+'updateExistUser',formdata);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/aws-service/aws-service.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../../src/providers/question-category/question-category.ts","../../src/providers/constants/constants.ts","../../src/pages/pd-question-category/pd-question-category.ts","../../src/providers/storage/storage.ts","../../src/pipes/rupee-currency-format/rupee-currency-format.ts","../../src/pages/input/input.ts","../../src/pages/otp/otp.ts","../../src/pages/pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info.ts","../../src/pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash.ts","../../src/providers/database/database.ts","../../src/providers/common-provider/camera.ts","../../src/providers/common-provider/loading.ts","../../node_modules/@angular/core/esm5 lazy","../../src lazy","../../src/pages/login/login.ts","../../src/pages/pd-question/pd-question.ts","../../src/pages/pd-question/pd-question-address/pd-question-address.ts","../../src/pages/pd-question/pd-question-emp-info/pd-question-emp-info.ts","../../src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.ts","../../src/pages/pd-question/pd-question-loans/pd-question-loans.ts","../../src/pages/pd-question/pd-question-banking/pd-question-banking.ts","../../src/pages/pd-question/pd-question-family/pd-question-family.ts","../../src/pages/pd-question/pd-question-assests/pd-question-assests.ts","../../src/pages/pd-question/pd-question-other-income/pd-question-other-income.ts","../../src/pages/pd-question/pd-question-rental-info/pd-question-rental-info.ts","../../src/pages/pd-question/pd-question-personal-info/pd-question-personal-info.ts","../../src/pages/pd-question/pd-question-assessed-info/pd-question-assessed-info.ts","../../src/pages/pd-question/pd-question-assessed-sales/pd-question-assessed-sales.ts","../../src/pages/pd-question/pd-question-assessed-daily-sales/pd-question-assessed-daily-sales.ts","../../src/pages/pd-question/pd-question-assessed-purchase/pd-question-assessed-purchase.ts","../../src/pages/pd-question/pd-question-assessed-business/pd-question-assessed-business.ts","../../src/pages/pd-question/pd-question-assessed-household/pd-question-assessed-household.ts","../../src/pages/pd-question/pd-question-assessed-business-income/pd-question-assessed-business-income.ts","../../src/pages/pd-question/pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase.ts","../../src/pages/pd-question/pd-question-assessed-summary/pd-question-assessed-summary.ts","../../src/pages/pd-question/pd-question-assessed-images/pd-question-assessed-images.ts","../../src/pages/pd-question/pd-question-lender-representative/pd-question-lender-representative.ts","../../src/pages/pd-question/pd-question-general-info/pd-question-general-info.ts","../../src/pages/pd-question/pd-question-general-info/pd-question-general-other-applicant/pd-question-general-other-applicant.ts","../../src/pipes/search-relation/search-relation.ts","../../src/pages/pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood.ts","../../src/pages/pd-question/pd-question-final-remark/pd-question-final-remark.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-group.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking.ts","../../src/pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment.ts","../../src/pages/form-complete-check-modal/form-complete-check-modal.ts","../../src/pages/pd-general-images/pd-general-images.ts","../../src/pages/input/bounced-reject/bounced-reject.ts","../../src/pages/map-address/map-address.ts","../../src/pages/password/password.ts","../../src/pages/auth/auth.ts","../../src/pages/complete-list/complete-list.ts","../../src/app/main.ts","../../src/app/app.module.ts","../../src/app/app.component.ts","../../src/providers/aws-service/cognito.service.ts","../../src/providers/_guard/auth.guard.ts","../../src/providers/_guard/token.interceptor.ts","../../src/pages/googleplaytab/googleplaytab.ts","../../src/pages/pd-allocation/pd-allocation.ts","../../src/providers/common-provider/toast.ts","../../src/pipes/pd/pd.ts","../../src/pages/pd-question/pd-question-salary-info/pd-question-salary-info.ts","../../src/app/modalanimations/enter.ts","../../src/app/modalanimations/leave.ts","../../src/providers/pdtrigger/pdtrigger.ts","../../src/pages/pd-list/pd-list.ts","../../src/providers/aws-service/aws-service.ts"],"names":[],"mappings":"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,EAAC,CAAC,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,EAAC,EAAC,IAAI,EAAC,EAAE,EAAC,UAAU,EAAC,KAAK,EAAC,CAAC,CAAC;QAC9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","file":"main.js","sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ConstantsProvider } from '../constants/constants';\nimport { Observable } from 'rxjs';\nimport {CacheService} from 'ionic-cache'\n\n/*\n Generated class for the QuestionCategoryProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class QuestionCategoryProvider {\napiurl:any;\n constructor(public http: HttpClient,public constant:ConstantsProvider,private cache:CacheService) {\n console.log('Hello QuestionCategoryProvider Provider');\n this.apiurl = constant.apiurl();\n }\n \n \n getLoadTemplate(pdid)\n {\n return this.http.get(this.apiurl+'loadFullTemplate?pd_id='+pdid);\n }\n saveQusetion(saveData)\n {\n let records = {'records':[saveData]};\n return this.http.post(this.apiurl+'savePDQuestions',records);\n }\n\n \n getAnswerTemplate(qustDetails)\n {\n return this.http.post(this.apiurl+'getAnswersForPD',qustDetails);\n }\n\n /***\n * Get PD Questions dropdown api\n * sriram\n */\n getcommondrop(tableName)\n {\n \n // return Observable.defer(()=>{\n let masters = {'master_name':tableName}\n // let cacheid=tableName\n return this.http.post(this.apiurl+'getListOfMaster',masters);\n // let data= this.http.post(this.apiurl+'getListOfMaster',masters);\n //return this.cache.loadFromDelayedObservable(cacheid,data,'we',1,'all','d')\n // })\n }\n\n saveForm(records)\n { let record = {'records':records};\n return this.http.post(this.apiurl+'savePDFormDetails',record);\n }\n\n retiverForm(records)\n {\n return this.http.post(this.apiurl+'getPDFormDetails',records);\n }\n\n /**Assessed Form Details API */\n saveassessedForms(api,saveData)\n {\n return this.http.post(this.apiurl+api,saveData);\n }\n\n retiverassessedForm(api,records)\n {\n console.log(\"rec\",records)\n return this.http.post(this.apiurl+api,records);\n }\n\n updatePdApplicant(editData: any) {\n // editData.fk_updatedby = this._aws.getlocale();\n // editData.updatedon = currentdate;\n return this.http.post(this.apiurl + \"updatePDApplicants\", {\"pd_applicant_details\": editData})\n\n \n}\n\ngetEndUseForLoan(pdid:any,subproduct){\n return this.http.post(this.apiurl+ \"getEndUseOfLoan\",{ \"records\":{ \"pd_id\" : pdid,\"sub_product_id\":subproduct}})\n}\ngetCompaniesListsForBusiness(pdid:any){\n // let cacheKey=pdid\n return this.http.post(this.apiurl+ \"getCompaniesListsForBusiness\", { \"records\":{ \"pd_id\" : pdid}})\n // return this.cache.loadFromObservable(cacheKey,data)\n}\ngetStateWiseCities(stateid:any){\n return this.http.post(this.apiurl + \"getListOfStatesAndCities\", { \"records\":{ \"state_id\" : stateid}})\n}\ngetAllPersonsName(pdid:any){\n return this.http.post(this.apiurl + \"getAllPersonsName\", {\"pd_id\" : pdid})\n \n}\ngetStateCityDetails(){\n return this.http.post(this.apiurl + \"getListOfStatesCities\",\"\")\n}\ngetAssetsWithLoanFromBusiness(pdid:any){\n return this.http.post(this.apiurl + \"getAssetsWithLoanFromBusiness\",{ \"pd_id\" : pdid})\n\n}\n\n\ngetTypeofActivityForSuppliedInfoForm(pd_id: any,company_id:any){\n return this.http.post(this.apiurl+\"getTypeOfActivetyFromBusinessForm\", {\"records\": { \"pd_id\" : pd_id,\"company_id\":company_id }});\n}\n\n/** For Stock Details \n * To Get The Products With TypeofActivity From Business \n **/\nstockFormAccess(pdid: any,companyid: any) {\n // { \"pd_id\":\"104\",\"company_id\":\"1\"}\n return this.http.post(this.apiurl + \"getProductsFromBusiness\", {\"pd_id\" : pdid ,\"company_id\":companyid });\n}\n\n\n\n/*****Save Images */\nsavePDImages(imagesDetails)\n{ \n let record = {'records':imagesDetails};\n return this.http.post(this.apiurl+'savePDPhotos',record);\n}\ngetPDImages(records){\n let record={'records':records};\n return this.http.post(this.apiurl+'getPDImages',record);\n}\ngetFamilyDetails(pdid:any){\n return this.http.post(this.apiurl+'getFamilyDetails',{\"pd_id\":pdid})\n}\ngetAddressDetails(pdid:any){\n return this.http.post(this.apiurl+'getPDAddress',{'pd_id':pdid})\n}\ngetStateCityNamesAndPincode(values:any){\n return this.http.post(this.apiurl+'getStateCityNamesAndPincode',{'records':values})\n}\n // get customers list\ngetCustomersDetails(): Observable {\n return this.http.get(this.apiurl + 'getListOfCustomerSegments')\n \n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/question-category/question-category.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {Geolocation} from '@ionic-native/geolocation'\nimport { LocationAccuracy } from '@ionic-native/location-accuracy';\n// import {C} from '../../constants'\nimport {environment as ENV} from '../../environments/environment'\n\n\n/*\n Generated class for the ConstantsProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class ConstantsProvider {\npublic commonimage = \"http://ssa.sineedge.com/sparqapi/logo/avatar.jpg\";\n constructor(public http: HttpClient,private geo:Geolocation,private locationAccuracy:LocationAccuracy) {\n console.log('Hello ConstantsProvider Provider');\n }\n\n apiurl()\n {\n let testapiurl = 'https://ssa.sineedge.com/sparqtest/api/';\n let testapiurl_beta='http://ssa.sineedge.com/sparqtest_beta/api/';\n let devapiurl_beta = 'http://ssa.sineedge.com/sparqapi_beta/api/';\n let devapiurl = 'https://ssa.sineedge.com/sparqapi/api/';\n let localapiurl = 'http://192.168.0.6:9999/AWSEC2/sparqapi/api/';\n let sparqprod= 'https://pdgenie.com/sparqprod/'\n return testapiurl;\n }\n\n getcurrentDate()\n {\n var today = new Date();\n var time = today.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds();\n var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();\n var time = today.getHours() + \":\" + today.getMinutes();\n let CurrentDate = date+\"T00:00\";\n return CurrentDate.toString();\n }\n \n convertNumberToWords(price) {\n price = price.toString();\n let atemp = price.split(\".\");\n let amount = atemp[0];\n\n var sglDigit = [\"Zero\", \"One\", \"Two\", \"Three\", \"Four\", \"Five\", \"Six\", \"Seven\", \"Eight\", \"Nine\"],\n dblDigit = [\"Ten\", \"Eleven\", \"Twelve\", \"Thirteen\", \"Fourteen\", \"Fifteen\", \"Sixteen\", \"Seventeen\", \"Eighteen\", \"Nineteen\"],\n tensPlace = [\"\", \"Ten\", \"Twenty\", \"Thirty\", \"Forty\", \"Fifty\", \"Sixty\", \"Seventy\", \"Eighty\", \"Ninety\"],\n \n handle_tens = function(dgt, prevDgt) {\n return 0 == dgt ? \"\" : \" \" + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt])\n },\n handle_utlc = function(dgt, nxtDgt, denom) {\n return (0 != dgt && 1 != nxtDgt ? \" \" + sglDigit[dgt] : \"\") + (0 != nxtDgt || dgt > 0 ? \" \" + denom : \"\")\n };\n\n var str = \"\",\n digitIdx = 0,\n digit = 0,\n nxtDigit = 0,\n words = [];\n if (amount += \"\", isNaN(parseInt(amount))) str = \"\";\n else if (parseInt(amount) > 0 && amount.length <= 10) {\n for (digitIdx = amount.length - 1; digitIdx >= 0; digitIdx--) \n switch (digit = amount[digitIdx] - 0, nxtDigit = digitIdx > 0 ? amount[digitIdx - 1] - 0 : 0, amount.length - digitIdx - 1) {\n case 0:\n words.push(handle_utlc(digit, nxtDigit, \"\"));\n break;\n case 1:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 2:\n words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != amount[digitIdx + 1] && 0 != amount[digitIdx + 2] ? \" and\" : \"\") : \"\");\n break;\n case 3:\n words.push(handle_utlc(digit, nxtDigit, \"Thousand\"));\n break;\n case 4:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 5:\n words.push(handle_utlc(digit, nxtDigit, \"Lakh\"));\n break;\n case 6:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 7:\n words.push(handle_utlc(digit, nxtDigit, \"Crore\"));\n break;\n case 8:\n words.push(handle_tens(digit, amount[digitIdx + 1]));\n break;\n case 9:\n words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != amount[digitIdx + 1] || 0 != amount[digitIdx + 2] ? \" and\" : \" Crore\") : \"\")\n // break; \n // case 10:\n // words.push(0 != digit ? \" \" + sglDigit[digit] + \" Lakh\" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? \" and\" : \" Hundred\" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] || 0 != price[digitIdx + 3] ? \" and\" : \" Crore\")) \n // : \"\")\n // break;\n }\n str = words.reverse().join(\"\")\n // str =(str.length > 2 && str.charAt(str.length-2)==',') ? str.slice(0, -2) : str;\n } else str = \"\";\n return str\n\n // var words = new Array();\n // words[0] = '';\n // words[1] = 'One';\n // words[2] = 'Two';\n // words[3] = 'Three';\n // words[4] = 'Four';\n // words[5] = 'Five';\n // words[6] = 'Six';\n // words[7] = 'Seven';\n // words[8] = 'Eight';\n // words[9] = 'Nine';\n // words[10] = 'Ten';\n // words[11] = 'Eleven';\n // words[12] = 'Twelve';\n // words[13] = 'Thirteen';\n // words[14] = 'Fourteen';\n // words[15] = 'Fifteen';\n // words[16] = 'Sixteen';\n // words[17] = 'Seventeen';\n // words[18] = 'Eighteen';\n // words[19] = 'Nineteen';\n // words[20] = 'Twenty';\n // words[30] = 'Thirty';\n // words[40] = 'Forty';\n // words[50] = 'Fifty';\n // words[60] = 'Sixty';\n // words[70] = 'Seventy';\n // words[80] = 'Eighty';\n // words[90] = 'Ninety';\n // amount = amount.toString();\n // var atemp = amount.split(\".\");\n // var number = atemp[0].split(\",\").join(\"\");\n // var n_length = number.length;\n // let value:any = \"\";\n // var words_string = \"\";\n // if (n_length <= 9) {\n // var n_array:any = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0);\n // var received_n_array = new Array();\n // for (var i = 0; i < n_length; i++) {\n // received_n_array[i] = number.substr(i, 1);\n // }\n // for (var i = 9 - n_length, j = 0; i < 9; i++, j++) {\n // n_array[i] = received_n_array[j];\n // }\n // for (var i = 0, j = 1; i < 9; i++, j++) {\n // if (i == 0 || i == 2 || i == 4 || i == 7) {\n // if (n_array[i] == 1) {\n // n_array[j] = 10 + parseInt(n_array[j]);\n // n_array[i] = 0;\n // }\n // }\n // }\n // value = \"\";\n // for (var i = 0; i < 9; i++) {\n // if (i == 0 || i == 2 || i == 4 || i == 7) {\n // value = n_array[i] * 10;\n // } else {\n // value = n_array[i];\n // }\n // if (value != 0) {\n // words_string += words[value] + \" \";\n // }\n // if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) {\n // words_string += \"Crores \";\n // }\n // if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) {\n // words_string += \"Lakhs \";\n // }\n // if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) {\n // words_string += \"Thousand \";\n // }\n // if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) {\n // words_string += \"Hundred and \";\n // } else if (i == 6 && value != 0) {\n // words_string += \"Hundred \";\n // }\n // }\n // words_string = words_string.split(\" \").join(\" \");\n // }\n // return words_string;\n}\n//FOR SEARCHABLE DROP DOWN\nsearchData(data,val: any,option) {\n let DataValue:any\n // let nameVal=name.toLowerCase()\n console.log(\"statedata\")\n if (!data) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n // this.filteredState.next(this.stateList.slice())\n DataValue=data.slice()\n return DataValue\n \n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n if(option == \"bank\"){\n DataValue=data.filter(res => res.lender_name.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n else if(option == \"city\"){\n console.log(\"city\",data)\n DataValue=data.filter(res=>res.city_name.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n else if(option == \"pin\"){\n DataValue=data.filter(res=>res.pincode.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n else{\n //This is suitable for state\n DataValue=data.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n return DataValue\n }\n // this.filteredState.next(\n // this.stateList.filter(res => res.state_name.toLowerCase().indexOf(searchVal) > -1)\n // )\n }\n sentenceCase (str) {\n if ((str===null) || (str===''))\n return '';\n else\n str = str.toString();\n \n return str.replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});\n }\n enableAccuracy()\n {\n return this.locationAccuracy.canRequest().then((canRequest: boolean) => {\n\n if(canRequest) {\n // the accuracy option will be ignored by iOS\n this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(\n () => {\n return this.getGeoTag();\n // this.getcurrentBackgroundLocation();\n },\n error => console.log('Error requesting location permissions'+JSON.stringify(error))\n );\n }\n });\n }\n getGeoTag(){\n return this.geo.getCurrentPosition().then(res=>{\n console.log(\"res from getGeoTag\",res.coords)\n console.log(\"res from provider\",new Date(res.timestamp))\n let lat=res.coords.latitude;\n let long=res.coords.longitude;\n let curr_pos=lat+\",\"+long\n return curr_pos\n }).catch(err=>console.log(\"error in getGeoTag\",err))\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/constants/constants.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,ModalController,ModalOptions, Modal } from 'ionic-angular';\nimport { GoogleplaytabPage } from '../googleplaytab/googleplaytab';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { PdQuestionPage } from '../pd-question/pd-question';\nimport Chart from 'chart.js';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { PdQuestionAddressPage } from '../pd-question/pd-question-address/pd-question-address';\nimport { PdQuestionEmpInfoPage } from '../pd-question/pd-question-emp-info/pd-question-emp-info';\nimport { PdQuestionCurrentLoansPage } from '../pd-question/pd-question-current-loans/pd-question-current-loans';\nimport { PdQuestionLoansPage } from '../pd-question/pd-question-loans/pd-question-loans';\n\nimport { PdQuestionBankingPage } from '../pd-question/pd-question-banking/pd-question-banking';\nimport { PdQuestionFamilyPage } from '../pd-question/pd-question-family/pd-question-family';\nimport { PdQuestionAssestsPage } from '../pd-question/pd-question-assests/pd-question-assests';\nimport { PdQuestionOtherIncomePage } from '../pd-question/pd-question-other-income/pd-question-other-income';\nimport { PdQuestionSupplierInfoPage } from '../pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info';\nimport { PdQuestionPersonalInfoPage } from '../pd-question/pd-question-personal-info/pd-question-personal-info';\nimport { PdQuestionStockInfoPage } from '../pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info';\nimport { PdQuestionFinancialInfoPage } from '../pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info';\nimport { PdQuestionClientInfoPage } from '../pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info';\n// import { PdQuestionRentalInfoPage } from '../pd-question/pd-question-rental-info/pd-question-rental-info';\nimport { PdQuestionAssessedInfoPage } from '../pd-question/pd-question-assessed-info/pd-question-assessed-info';\nimport { PdQuestionAssessedDashPage } from '../pd-question/pd-question-assessed-dash/pd-question-assessed-dash';\nimport { PdQuestionLenderRepresentativePage } from '../pd-question/pd-question-lender-representative/pd-question-lender-representative';\nimport { PdQuestionGeneralInfoPage } from '../pd-question/pd-question-general-info/pd-question-general-info';\nimport { PdQuestionNeighbourHoodPage } from '../pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood';\nimport { PdQuestionFinalRemarkPage } from '../pd-question/pd-question-final-remark/pd-question-final-remark';\nimport { PdQuestionBusinessGroupPage } from '../pd-question/pd-question-business-group/pd-question-business-group'\nimport {PdQuestionRentalDashPage} from '../pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash'\nimport { PdQuestionFuturePlansAndBusinessEnvironmentPage } from '../pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment'\nimport {FormCompleteCheckModalPage} from '../form-complete-check-modal/form-complete-check-modal'\nimport {ConstantsProvider} from '../../providers/constants/constants'\n\n\n/**\n * Generated class for the PdQuestionCategoryPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nconst currentdate = new Date().toJSON().slice(0,19).replace('T',' ');\n\n\n@Component({\n selector: 'page-pd-question-category',\n templateUrl: 'pd-question-category.html',\n})\nexport class PdQuestionCategoryPage {\n searchTempForm: any;\n searchQuestion: any;\n viewchange: boolean;\n templateAccess: boolean;\n bgColortempForm: any=[];\n bgColorqustCat: any=[];\n dis_forms:any;\n // @ViewChild('doughnutCanvas') doughnutCanvas;\n pdinfo: any;\nquestionList:any;\nquestionCate:any;\nquestionCateAccess:boolean = null;\nquestionfinishedList:any =[];\npddetails:any=[];\noverallqustioncountAccess:boolean = true;\ndoughnutChart: any;\ncompletedAccess:any;\nsearchitem:any;\n enableAddonPD: boolean=false;\n pageTitle:string;\n complete_btn:boolean=true;\n complete_status : boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public templateget:QuestionCategoryProvider,\n public aws:AwsServiceProvider, public shared:CognitoServiceProvider,public toast:ToastProvider,\n public pdstatusprovide:PdtriggerProvider, private modalCtrl:ModalController,private constantProvider:ConstantsProvider) {\n this.pddetails = this.navParams.get('pdDetails');\n this.pageTitle=this.pddetails.is_child != '1' ? this.pddetails.applicat_details[0].applicant_name : 'Add On for'+' '+this.pddetails.parent_pd_id\n \n let params: any={};\n params.pd_id = this.pddetails.pd_id;\n this.pdstatusprovide.getPDCompleteDetails(params).subscribe(result => {\n if (result['dataStatus'] === true) {\n this.enableAddonPD = result['records'].address_count>0 ? true: false;\n console.log(\"addon\",this.enableAddonPD);\n }\n });\n\n this.complete_status = this.pddetails.pd_status == 'COMPLETED' ? true : false;\n \n this.constantProvider.enableAccuracy().then(res=>{\n console.log(\"Accuracy from Category Provider\",res)\n })\n\n }\n\n ionViewCanEnter()\n {\n this.getcategoryList(); \n }\n // doughuntChart()\n // {\n // this.doughnutChart = new Chart(this.doughnutCanvas.nativeElement, {\n \n // type: 'doughnut',\n // data: {\n // // labels: [\"Red\", \"Blue\", \"Yellow\", \"Green\", \"Purple\", \"Orange\"],\n // datasets: [{\n // label: '# of Votes',\n // data: [12],\n // backgroundColor: [\n // // 'rgba(255, 99, 132, 0.2)',\n // 'rgba(54, 162, 235, 0.2)',\n // // 'rgba(255, 206, 86, 0.2)',\n // // 'rgba(75, 192, 192, 0.2)',\n // // 'rgba(153, 102, 255, 0.2)',\n // // 'rgba(255, 159, 64, 0.2)'\n // ],\n // hoverBackgroundColor: [\n // \"#FF6384\",\n // \"#36A2EB\",\n // \"#FFCE56\",\n // \"#FF6384\",\n // \"#36A2EB\",\n // \"#FFCE56\"\n // ]\n // }]\n // }\n\n // });\n // }\n ionViewDidLoad() {\n this.shared.refresh();\n //this.doughuntChart();\n console.log('ionViewDidLoad PdQuestionCategoryPage');\n }\n \n getcategoryList()\n {\n let j = 1;\n this.templateget.getLoadTemplate(this.pddetails.pd_id).subscribe(res=>\n {\n this.questionCate = res;\n if(this.questionCate.dataStatus == true)\n {\n \n this.questionCate = this.questionCate.records;\n this.random_ng_past(); \n this.complete_btn= this.questionCate.pdmaster_details.pd_status == \"ADD_ON_PENDING\" ? false : this.questionCate.pdmaster_details.pd_status == \"COMPLETED\" ? false :true\n // if(this.questionCate.question_answers !='' && this.questionCate.template_forms!='')\n // {\n // this.questionCateAccess = true;\n // this.templateAccess = true;\n // this.questionCate = this.questionCate;\n // this.dis_forms=this.questionCate.template_forms.filter(val=>val.isAnswerable==true );\n // this.searchQuestion = this.questionCate.question_answers;\n\n // if(this.questionCate.counts.overall_answered_count !=0 && this.questionCate.counts.overall_question_count !=0 && this.questionCate.counts.overall_answered_count == this.questionCate.counts.overall_question_count)\n // {\n // this.overallqustioncountAccess = false;\n // }else\n // {\n // this.overallqustioncountAccess = true;\n // }\n \n \n \n \n \n // }else \n if(this.questionCate.template_forms!='')\n {\n this.templateAccess = true;\n this.questionCate = this.questionCate\n this.dis_forms=this.questionCate.template_forms.filter(val=>val.isAnswerable==true );\n console.log(\"temp\",this.questionCate);\n\n this.searchTempForm = this.questionCate.template_forms\n // for(let i of this.dis_forms){\n // if(i.)\n // }\n let answered=this.dis_forms.filter(res=>res.isAnswered == true)\n console.log(\"an len\",answered);\n if(answered.length == this.dis_forms.length){\n this.overallqustioncountAccess= true;\n }\n else{\n this.overallqustioncountAccess=false\n }\n \n \n // if(this.questionCate.counts.overall_answered_count !=0 && this.questionCate.counts.overall_question_count !=0 && this.questionCate.counts.overall_answered_count == this.questionCate.counts.overall_question_count)\n // {\n // this.overallqustioncountAccess = false;\n // }else\n // {\n // this.overallqustioncountAccess = true;\n // }\n }\n else\n {\n this.questionCateAccess = false;\n this.templateAccess = false; \n this.questionCate = \"No Template Available\";\n }\n }\n })\n \n }\n random_ng_past()\n {\n for(let id of this.questionCate.question_answers){\n var a = Math.floor(Math.random() * 256);\n var b = Math.floor(Math.random() * 256);\n var c = Math.floor(Math.random() * 256);\n this.bgColorqustCat.push(\"rgb(\" + a + \",\" + b + \",\" + c + \")\");\n \n }\n for(let id of this.questionCate.template_forms){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColortempForm.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n }\n questionsTag(categroyId){\n \n this.pdinfo = this.pddetails; \n \n this.questionCate = this.questionCate.question_answers.filter(cate=>cate.fk_question_category_id == categroyId)[0];\n // if(this.questionCate.questions.length !=\"0\"){\n this.navCtrl.push(PdQuestionPage,{'questionDetails':this.questionCate,'pdDetails':this.pdinfo});\n \n // }else\n // {\n // this.getcategoryList();\n // this.toast.pdTriggerappmessage('No Question Available');\n // }\n }\n\n tempQustionTag(categroyId)\n {\n //FOR UPDATING THE PD APPLICANT LIST\n this.pdinfo = this.pddetails; \n let newData= this.questionCate.pdapplicants_detials\n console.log(\"new Data\",newData);\n this.pdinfo.applicat_details=newData\n console.log(this.pdinfo);\n\n let formName = this.questionCate.template_forms.filter(temp=>temp.form_id==categroyId)[0];\n if(categroyId ==5)\n {\n this.navCtrl.push(PdQuestionAddressPage,{'FormId':formName,'pdDetails':this.pdinfo});\n \n }else if(categroyId==12){\n this.navCtrl.push(PdQuestionEmpInfoPage,{'FormId':formName,'pdDetails':this.pdinfo});\n }else if(categroyId==10)\n {\n this.navCtrl.push(PdQuestionLoansPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==8){\n this.navCtrl.push(PdQuestionCurrentLoansPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==13)\n {\n this.navCtrl.push(PdQuestionBusinessGroupPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n \n }else if(categroyId==7)\n {\n this.navCtrl.push(PdQuestionBankingPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n\n }else if(categroyId==6)\n {\n this.navCtrl.push(PdQuestionFamilyPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId ==4){\n this.navCtrl.push(PdQuestionAssestsPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==9){\n this.navCtrl.push(PdQuestionOtherIncomePage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==1){\n this.navCtrl.push(PdQuestionSupplierInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==3){\n this.navCtrl.push(PdQuestionPersonalInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==11)\n {\n this.navCtrl.push(PdQuestionStockInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==14)\n {\n this.navCtrl.push(PdQuestionFinancialInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId ==2)\n {\n this.navCtrl.push(PdQuestionClientInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId ==17)\n {\n this.navCtrl.push(PdQuestionRentalDashPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }\n else if(categroyId==16)\n {\n this.navCtrl.push(PdQuestionAssessedDashPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==15)\n {\n this.navCtrl.push(PdQuestionLenderRepresentativePage,{'FormId':formName,'pdDetails':this.pdinfo}); \n \n }else if(categroyId==18)\n {\n this.navCtrl.push(PdQuestionGeneralInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }else if(categroyId==19)\n {\n this.navCtrl.push(PdQuestionNeighbourHoodPage,{'FormId':formName,'pdDetails':this.pdinfo}); \n }\n else if(categroyId==20)\n {\n this.navCtrl.push(PdQuestionFinalRemarkPage,{'FormId':formName,'pdDetails':this.pdinfo});\n }\n }\n filter(view){\n if(!view){\n this.viewchange = true;\n }else{\n this.viewchange = false;\n }\n //alert(this.viewchange);\n }\n pdlistsearch(searchbar) {\n // this.questionCate = this.searchQuestion;\n // this.questionCate.template_forms = this.searchTempForm;\n // reset countries list with initial call\n //this.pdinprogress = this.countriesInitial;\n // set q to the value of the searchbar\n var q = searchbar.target.value;\n\n // if the value is an empty string don't filter the items\n if(this.searchQuestion !== undefined){\n if (q.trim() == '') {\n return ;\n }else{\n // this.questionCate.question_answers = this.searchQuestion.filter((v) => {\n // if (v.category_name.toLowerCase().indexOf(q.toLowerCase())>-1) {\n // return true;\n // }\n // })\n }\n }else\n {\n if (q.trim() == '') {\n return ;\n }else{\n// this.questionCate.template_forms = this.searchTempForm.filter((v) => {\n// if (v.form_name.toLowerCase().indexOf(q.toLowerCase())>-1) {\n// return true;\n// }\n// })\n }\n }\n}\nPdFormCompletnessCheck(){\n this.pdstatusprovide.pdFormsCompletenessCheck(this.questionCate.pdmaster_details.pd_id).subscribe(res=>{\n console.log(res['records']);\n if(res['records'].length > 0){\nconst modalOpt:ModalOptions={\n //component:FormCompleteCheckModalPage,\n // enterAnimation: 'modal-scale-up-enter',\n // leaveAnimation: 'modal-scale-up-leave',\n cssClass:\"pdimagecompleteModal\"\n}\nconst modal=this.modalCtrl.create(FormCompleteCheckModalPage,{'values':res['records']},modalOpt)\nmodal.present()\n }\n else{\n //alert(\"completed PD\")\n\t this.completePDAlert()\n }\n })\n}\ncompletePDAlert()\n{ \n if(!this.overallqustioncountAccess){// For checking Answered Forms\n this.toast.pdTriggerappmessage(\"Please complete all the Forms\");\n return;\n }\n if(this.enableAddonPD == true){//FOR CHECKING THE ADDRESS COUNT. IF VALUE 1 THIS BLOCK EXECUTED\n return new Promise(reject=>{\n let alert=this.toast.setAlertForCompletePD() \n alert.present();\n alert.onDidDismiss(data=>{\n if(data == 'yes'){\n \n this.completed('COMPLETED');\n }\n else if(data == 'addon'){\n this.completed('ADD_ON_PENDING')\n } \n else{\n reject();\n }\n })\n })\n}\nelse{ //IF ADDRESS COUNT 0 THIS BLOCK EXECUTED\n return new Promise(reject=>{\n let alert=this.toast.setAlert('Complete Discussion','Please confirm you are completing the Discussion and forwarding for Quality Check ?')\n alert.present()\n alert.onDidDismiss(data=>{\n if(data==false){\n reject()\n }\n else{\n this.completed('COMPLETED')\n }\n })\n })\n}\n}\n completed(status:string)\n {\n \n \n //alert.present();\n let users = this.aws.getlocale();\n if(!this.overallqustioncountAccess){// For checking Answered Forms\n this.toast.pdTriggerappmessage(\"Please complete all the Forms\");\n }\n else{\n let data = {'pd_id':this.questionCate.pdmaster_details.pd_id,'pd_status':status,'fk_updatedby':users,'updatedon':currentdate};\n \n this.pdstatusprovide.updatepdStatus(data).subscribe(res=>\n {\n this.completedAccess = res;\n if(this.completedAccess.dataStatus == true)\n {\n this.toast.pdTriggerappmessage(\"Completed Successfully..!\")\n setTimeout(()=>{\n this.navCtrl.setRoot(PdListPage);\n },2000);\n \n \n }\n })\n }\n}\n doRefresh(refresher) {\n this.questionCate = [];\n this.questionfinishedList = [];\n this.shared.refresh();\n this.getcategoryList();\n setTimeout(() => {\n refresher.complete();\n }, 2000);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question-category/pd-question-category.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {Storage} from '@ionic/storage'\nimport {ToastProvider} from '../common-provider/toast'\n\n/*\n Generated class for the StorageProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n//const storage_key='form_Datas'\n\n@Injectable()\nexport class StorageProvider {\n\n constructor(public http: HttpClient,public storage:Storage,public toast:ToastProvider) {\n console.log('Hello StorageProvider Provider');\n }\ninsertData(data){\n this.toast.pdTriggerappmessage(this.storage.driver);\n const storage_key=data.pd_id\n console.log(\"storage provider\")\n console.log(data);\n console.log(JSON.stringify(data));\n \n console.log(\"sto\",this.storage.get(storage_key))\n return this.storage.get(storage_key).then((res)=>{\n console.log(\"res\",res)\n if(res != null ){\n let option:boolean=false\n if( res.length != 0 && res.length != undefined){\n // res.forEach((value)=>{\n // if(value.form_id==data.form_id){\n // option=true\n // }\n // })\n let current=res.filter(val=>val.form_id==data.form_id)\n console.log(\"current\",current);\n if(current.length > 0){\n let value:any=[]\n value.push(data)\n return this.storage.set(storage_key,value)\n }\n}\n let old_Data:any=[]\n old_Data=res\n console.log(\"old data\",old_Data)\n old_Data.push(data)\n return this.storage.set(storage_key,old_Data)\n \n }\n else{\n //res.push(data)\n // let dataValue=Object.keys(data).map(function(key){\n // return data[key];\n // })\n let value:any=[]\n value.push(data)\n return this.storage.set(storage_key,value)\n }\n })\n \n\n\n}\nretrieveLocalStorage(data){\n const storage_key=data.pd_id\n return this.storage.get(storage_key).then(res=>{\n console.log(\"storage get\",res)\n if(res != null){\n return res.filter(val=>val.form_id==data.form_id)\n \n }\n })\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/storage/storage.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Generated class for the RupeeCurrencyFormatPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: 'rupeeCurrencyFormat',\n})\nexport class RupeeCurrencyFormatPipe implements PipeTransform {\n /**\n * Takes a value and makes it lowercase.\n */\n transform(value: any):any {\n if (!isNaN(value) && value) {\n var currencySymbol = '₹';\n //var output = Number(input).toLocaleString('en-IN'); <-- This method is not working fine in all browsers! \n var result = value.toString().split('.');\n\n var lastThree = result[0].substring(result[0].length - 3);\n var otherNumbers = result[0].substring(0, result[0].length - 3);\n if (otherNumbers != '')\n lastThree = ',' + lastThree;\n var output = otherNumbers.replace(/\\B(?=(\\d{2})+(?!\\d))/g, \",\") + lastThree;\n \n if (result.length > 1) {\n output += \".\" + result[1];\n } \n\n return currencySymbol+output;\n }\n // return value.toLowerCase();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/rupee-currency-format/rupee-currency-format.ts","import { Component, ElementRef,ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,AlertController, Content,ModalController,ModalOptions } from 'ionic-angular';\nimport {Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms';\n// import {MomentDateAdapter} from '@angular/material-moment-adapter';\nimport {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';\nimport {MatDatepicker} from '@angular/material/datepicker';\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { Platform } from '@angular/cdk/platform';\nimport {LaunchNavigator,LaunchNavigatorOptions } from '@ionic-native/launch-navigator'; \nimport { AuthPage } from '../auth/auth';\n\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { OtpPage } from '../otp/otp';\n\nimport { Geolocation, PositionError, Geoposition } from '@ionic-native/geolocation';\nimport {DatePipe } from '@angular/common';\nimport { LocationAccuracy } from '@ionic-native/location-accuracy';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { observable, Observable } from 'rxjs';\nimport { ERR_PLUGIN_NOT_INSTALLED } from '@ionic-native/core';\nimport { ConstantsProvider } from '../../providers/constants/constants';\nimport { PdGeneralImagesPage } from '../pd-general-images/pd-general-images';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\nimport {BouncedRejectPage} from '../../pages/input/bounced-reject/bounced-reject'\nimport {PdQuestionCategoryPage} from '../../pages/pd-question-category/pd-question-category'\nimport {MapAddressPage} from '../../pages/map-address/map-address'\n\nimport {CameraProvider} from '../../providers/common-provider/camera' ;\nimport {LoadingProvider} from '../../providers/common-provider/loading';\nimport {StorageProvider} from '../../providers/storage/storage';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport {BackgroundGeolocation,\n BackgroundGeolocationConfig,\n BackgroundGeolocationResponse,\n BackgroundGeolocationEvents} from '@ionic-native/background-geolocation'\n/**\n * Generated class for the InputPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nconst currentdate = new Date().toJSON().slice(0,19);\n\n\n@Component({\n selector: 'page-input',\n templateUrl: 'input.html',\n})\n\n\nexport class InputPage {\n enableStartPD: boolean;\n diffInHours: number;\n updatestarted: any;\n updateinitiated: any;\n appdata: any;\n users: any;\n initiatedAccess: boolean = false;\n scheduleAccess: boolean = false;\napplicatentDetails:any;\nmaxdate :any;\npipe = new DatePipe('en-US');\nupdateStatus:any;\nscheduleDate:any;\nupdateSchedule:any;\nacceptedAccess:boolean = false;\nstartedAccess:boolean = false;\ntimeOut:any = 15*1000;\ntimeInterval:any;\ncurrentPosPDofficer:any;\nother_applicant:any=[];\nloadDetails=false;\nmainApplicant:any=[]\npdMaster:any=[]\nimageDisplay: any=[];\nimageBucket: any=[];\ncheckOtpAccess:boolean = false;\n@ViewChild('focusinp') input_focus ;\n@ViewChild('scroll') scrolltop : Content;\n addresses: any=[];\n address_pd_id: any;\n address_pd_status: any='';\n address_allocated_data:any\n add_requirements:any;\n requirement_hide: boolean=true;\n // address_child_schedule_time:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public statusBar:StatusBar,public platform: Platform,public launchNavigator:LaunchNavigator,\n public aws:AwsServiceProvider,public pdDetails:PdtriggerProvider,public geolocation:Geolocation,\n public alertCtrl:AlertController,public locationAccuracy:LocationAccuracy,public toast:ToastProvider,\n public constant:ConstantsProvider,public androidPermissions:AndroidPermissions,public modalCtrl:ModalController,\n public qustCat: QuestionCategoryProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,public storagedb:StorageProvider,private backgroundgeolocation:BackgroundGeolocation) {\n \n \n\n this.maxdate = this.pipe.transform(new Date(),'yyyy-MM-ddTHH:mm').toString();\n // this.maxdate=new Date().toLocaleString();\n \n var date=new Date('dd');\n //console.log(date)\n var curr=date.getDate()+date.getMonth()+date.getFullYear();\n console.log(\"today\",curr)\n /***Header value pass */\n this.statusBar.styleDefault();\n \n this.statusBar.overlaysWebView(false);\n this.statusBar.backgroundColorByHexString('#db4437');\n let timeStart:string = this.pipe.transform(new Date(),'dd/MM/yyyy hh:mm a');\n \n \n this.applicatentDetails = this.navParams.get('pdDetails');\n \n // this.getFullPD();\n \n \n // if(this.applicatentDetails.pd_status == 'ALLOCATED')\n // {\n // this.acceptedAccess = true;\n // }\n // if(this.applicatentDetails.pd_status == 'ACCEPTED')\n // {\n // this.scheduleAccess = true;\n // }\n // if(this.applicatentDetails.pd_status == 'SCHEDULED')\n // {\n \n // this.initiatedAccess = true;\n // }\n // //console.log(this.initiatedAccess);\n // if(this.applicatentDetails.pd_status == 'INITIATED')\n // {\n // this.startedAccess = true;\n // this.getenableAccuracy();\n \n // }\n this.users = this.aws.getlocale();\n this.requirement_hide=false;\n // this.getcurrentBackgroundLocation();\n }\n ionViewCanEnter(){\n this.getFullPD();\n \n }\n // ionViewDidEnter(){\n // console.log(\"ionViewDidEnter\")\n // this.getFullPD();\n // }\n \n ionViewDidLoad() {\n this.setPermission();\n console.log('ionViewDidLoad InputPage' ); \n this.getPDImages();\n }\n ionViewCanLeave()\n {\n clearInterval(this.timeInterval);\n }\n locationnavicate(index)\n {\n // var address_full:string=address+' ' +this.applicatentDetails.city_name+' ' +this.applicatentDetails.state_name+' '+ (this.applicatentDetails.pincode != 'Others' ? this.applicatentDetails.pincode : this.applicatentDetails.other_pincode)\n let data=this.addresses[index]\n var address_full:string= data.addressline1+' ' +data.city_name+' ' +data.state_name+'-'+(data.pincode != 'Others' ? data.pincode : data.other_pincode)\n //console.log(\"add\",address_full)\n this.launchNavigator.navigate(address_full);\n }\n\n setPermission()\n {\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n }\n\n getFullPD()\n {\n let pdDetails_pdid=this.applicatentDetails.is_child != '1' ? this.applicatentDetails.pd_id :this.applicatentDetails.parent_pd_id\n let records = {'pdid':pdDetails_pdid};\n this.pdDetails.getFullPDdetails(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.add_requirements=res['records'].pd_additional_requirements;\n this.requirement_hide=res['records'].pd_additional_requirements.length == 0 ? true : false\n console.log(\"req\",this.add_requirements.length);\n \n console.log(\"req\",this.requirement_hide);\n this.other_applicant=res['records'].applicants_details\n this.mainApplicant=res['records'].applicants_details[0]\n this.pdMaster=res['records'].pd_master_details[0]\n console.log(\"other\",this.mainApplicant)\n this.addresses=res['records'].pd_address\n this.address_pd_id=this.addresses.addtional_pd_data\n //FOR GETTING THE ALLOCATED/SCHEDULE/INITIATE PDID \n this.addresses.forEach(res=>{\n console.log(\"address\",res);\n if(res.addtional_pd_data.length != 0){\n if(res.addtional_pd_data[0].pd_status == 'ALLOCATED' || res.addtional_pd_data[0].pd_status == 'ACCEPTED' || res.addtional_pd_data[0].pd_status == 'SCHEDULED' || res.addtional_pd_data[0].pd_status == 'INITIATED' || res.addtional_pd_data[0].pd_status == 'STARTED' || res.addtional_pd_data[0].pd_status == 'INPROGRESS'){\n this.address_pd_id=res.addtional_pd_data[0].pd_id\n this.address_pd_status=res.addtional_pd_data[0].pd_status\n this.address_allocated_data=res.addtional_pd_data[0]\n \n console.log(\"pd\",this.address_pd_id)\n return;\n }\n }\n })\n //FOR CHANGING THE PD ID based on assigned pd address\n //this.applicatentDetails.pd_id=this.address_pd_id\n //FOR GIVING ACCESS FOR BUTTONS BASED ON pd status IN ADDRESS\n if(this.address_pd_status == 'ALLOCATED')\n {\n this.acceptedAccess = true;\n }\n if(this.address_pd_status == 'ACCEPTED')\n {\n this.scheduleAccess = true;\n }\n if(this.address_pd_status == 'SCHEDULED')\n {\n \n this.initiatedAccess = true;\n }\n //console.log(this.initiatedAccess);\n if(this.address_pd_status == 'INITIATED')\n {\n this.startedAccess = true;\n this.getenableAccuracy();\n \n }\n if(this.address_pd_status == 'STARTED')\n {\n this.checkOtpAccess=true;\n }\n console.log(\"address allocated\",this.address_allocated_data);\n console.log(this.other_applicant);\n if(this.address_allocated_data != '' && this.address_allocated_data !=undefined){\n let courrentDateTime: string = this.pipe.transform(new Date(), 'yyyy-MM-dd HH:mm'); \n let scheduledDateTime: string=this.address_allocated_data.scheduled_on_for_validation;\n let diffInMs: number = Date.parse(courrentDateTime) - Date.parse(scheduledDateTime);\n let diffInHours: number = Math.floor(diffInMs / 1000 / 60 / 60);\n console.log(diffInHours);\n \n if(diffInHours <-4){\n this.enableStartPD=true;\n }\n else\n {\n this.enableStartPD = false;\n }\n }\n this.loadDetails=true\n } \n \n })\n \n }\n pdStatus(status,appdetails)\n {\n let data :any;\n \n if(status == 'BOUNCED')\n {\n // data = {'pd_id':appdetails.pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate};\n data = {'pd_id':this.address_pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate};\n this.navCtrl.push(BouncedRejectPage,{'details':data})\n // this.pdDetails.updatepdStatus(data).subscribe(res=>\n // {\n // this.updateStatus = res;\n // if(this.updateStatus.dataStatus == true)\n // {\n // this.navCtrl.setRoot(PdListPage); \n // }\n // })\n }else if(status == 'ACCEPTED')\n {\n \n data = {'pd_id':this.address_pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate};\n this.pdDetails.updatepdStatus(data).subscribe(res=>\n {\n console.log('dasdsfdsffds',res);\n this.updateStatus = res;\n if(this.updateStatus.dataStatus == true)\n {\n this.getNewpdupdate();\n \n this.scheduleAccess = true;\n \n }else\n {\n this.scheduleAccess = false;\n }\n })\n }\n \n }\n\n pdschedule(scheduledate,appdetails)\n {\n \n let data :any;let param : any;\n console.log(scheduledate);\n if(scheduledate != undefined){\n let schDate = scheduledate.slice(0,19).replace('T',' ');\n console.log(schDate);\n data = {'pd_id':this.address_pd_id,'pd_status':'SCHEDULED','scheduled_on':schDate,'fk_updatedby':this.users,'updatedon':currentdate};\n // this.pdDetails.updatepdStatus(data).subscribe(res=>\n //sample format : fk_pd_id: \"868\", schedule_time: \"2019-05-30 18:51\", fk_scheduled_by: \"165\";\n param = {'fk_pd_id': this.address_pd_id, 'schedule_time':schDate, 'fk_scheduled_by': this.users}\n this.pdDetails.updateSchedule(param).subscribe(res=>\n {\n this.updateSchedule = res;\n if(this.updateSchedule.dataStatus == true)\n {\n this.getNewpdupdate();\n \n this.initiatedAccess = true;\n }\n });\n }\n else{\n this.toast.pdTriggerappmessage(\"Please Choose the Schedule Date\");\n this.input_focus.setFocus();\n //this.input_focus.scrollToTop();\n this.scrolltop.scrollTop;\n }\n}\n\n getenableAccuracy()\n {\n this.locationAccuracy.canRequest().then((canRequest: boolean) => {\n\n if(canRequest) {\n // the accuracy option will be ignored by iOS\n this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(\n () => {\n this.getcurrentLocation();\n this.getcurrentBackgroundLocation();\n },\n error => alert('Error requesting location permissions'+JSON.stringify(error))\n );\n }\n \n });\n }\n getcurrentLocation() \n {\n let data:any;\n let options = {\n frequency: 3000, \n enableHighAccuracy: true,\n timeOut:1000,\n };\n \n this.timeInterval = setInterval(()=>{\n this.currentPosPDofficer = '';\n this.geolocation.getCurrentPosition(options).then((resp) => {\n // resp.coords.latitude\n // resp.coords.longitude\n if((resp as Geoposition).coords !=undefined){\n this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n // this.toast.pdTriggerappmessage(this.currentPosPDofficer);\n console.log(this.currentPosPDofficer);\n data = {'pd_id':this.address_pd_id,'link':this.currentPosPDofficer};\n\n\n this.pdDetails.saveCurrentLocation(data).subscribe(res=>\n {\n console.log(\"geoLocation data\",data)\n // this.updateinitiated = res;\n // if(this.updateinitiated.dataStatus == true)\n // { \n // // this.getNewpdupdate();\n // // this.startedAccess = true;\n // }else\n // {\n // this.startedAccess = false;\n // }\n })\n }\n }).catch((error)=>{\n this.toast.pdTriggerappmessage(error.message);\n })\n \n },this.timeOut);\n }\n\n getcurrentBackgroundLocation() \n {\n let data:any\n const config:BackgroundGeolocationConfig={\n desiredAccuracy: 10,\n stationaryRadius: 20,\n distanceFilter: 30,\n debug: false, // enable this hear sounds for background-geolocation life-cycle.\n stopOnTerminate: false // enable this to clear background location settings when the app terminates\n };\n console.log(\"getCurrent Location 1 function\")\n this.backgroundgeolocation.configure(config).then(()=>{\n this.backgroundgeolocation.on(BackgroundGeolocationEvents.location)\n .subscribe((location:BackgroundGeolocationResponse)=>{\n //this.toast.pdTriggerappmessage(\"alert for loca, \"+location)\n console.log(\"background geo location\",location);\n let pos=location.latitude+\",\"+location.longitude\n data = {'pd_id':this.address_pd_id,'link':pos};\n\n this.pdDetails.saveCurrentLocation(data).subscribe(res=>{\n console.log(\"saved location in Api\",res);\n\n },err=>{\n console.log(\"Not saved in Api\",err);\n })\n },err=>{\n console.log(\"Error in background geolocation subscribtion\")\n })\n },err=>{\n console.log(\"Error in background geolocation configuration\")\n })\n this.backgroundgeolocation.start();\n \n // let data:any;\n // let options = {\n // frequency: 3000, \n // enableHighAccuracy: true,\n // timeOut:1000,\n // };\n \n // this.timeInterval = setInterval(()=>{\n // this.currentPosPDofficer = '';\n // this.geolocation.getCurrentPosition(options).then((resp) => {\n // // resp.coords.latitude\n // // resp.coords.longitude\n // if((resp as Geoposition).coords !=undefined){\n // this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n // // this.toast.pdTriggerappmessage(this.currentPosPDofficer);\n // console.log(this.currentPosPDofficer);\n // data = {'pd_id':this.address_pd_id,'link':this.currentPosPDofficer};\n\n\n // this.pdDetails.saveCurrentLocation(data).subscribe(res=>\n // {\n // console.log(\"geoLocation data\",data)\n // // this.updateinitiated = res;\n // // if(this.updateinitiated.dataStatus == true)\n // // { \n // // // this.getNewpdupdate();\n // // // this.startedAccess = true;\n // // }else\n // // {\n // // this.startedAccess = false;\n // // }\n // })\n // }\n // }).catch((error)=>{\n // this.toast.pdTriggerappmessage(error.message);\n // })\n \n // },this.timeOut);\n }\n pdreschedule()\n {\n this.scheduleAccess = true;\n this.initiatedAccess = false;\n }\n \n\n pdinitiated(appdetails)\n { let data:any;\n\n this.locationAccuracy.canRequest().then((canRequest: boolean) => {\n\n if(canRequest) {\n // the accuracy option will be ignored by iOS\n this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then(\n () => {\n this.geolocation.getCurrentPosition().then((resp) => {\n // resp.coords.latitude\n // resp.coords.longitude\n let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0]\n console.log(\"mobile\",mobile_no)\n if(mobile_no ==undefined){\n mobile_no=this.mainApplicant.mobile_no\n }\n this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n data = {'pd_id':this.address_pd_id,'pd_status':'INITIATED','mobile_no':mobile_no,'officerName':appdetails.pd_allocated_to,'firstName':this.mainApplicant.applicant_name,'fk_updatedby':this.users,'updatedon':currentdate,'link':this.currentPosPDofficer};\n\n\n this.pdDetails.updatepdStatus(data).subscribe(res=>\n {\n this.updateinitiated = res;\n if(this.updateinitiated.dataStatus == true)\n { \n this.getNewpdupdate();\n this.getcurrentLocation();\n this.getcurrentBackgroundLocation()\n this.startedAccess = true;\n }else\n {\n this.startedAccess = false;\n }\n })\n }).catch((error) => {\n console.log('Error getting location', error);\n });\n },error => alert('Error requesting location permissions'+JSON.stringify(error))\n );\n }\n \n },error=>{\n console.log(\"currnpd\",this.currentPosPDofficer);\n alert(JSON.stringify(error))\n let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0]\n console.log(\"mobile\",mobile_no)\n if(mobile_no ==undefined){\n mobile_no=this.mainApplicant.mobile_no\n }\n data = {'pd_id':this.address_pd_id,'pd_status':'INITIATED','mobile_no':mobile_no,'officerName':appdetails.pd_allocated_to,'firstName':this.mainApplicant.applicant_name,'fk_updatedby':this.users,'updatedon':currentdate,'link': this.currentPosPDofficer};\n this.pdDetails.updatepdStatus(data).subscribe(res=>\n {\n this.updateinitiated = res;\n if(this.updateinitiated.dataStatus == true)\n { \n console.log(\"status\",\"true\");\n this.getNewpdupdate();\n this.getcurrentLocation();\n this.getcurrentBackgroundLocation();\n this.startedAccess = true;\n }else\n {\n this.startedAccess = false;\n }\n })\n });\n }\n checkOTP(appdetails){\n let data:any;\n this.geolocation.getCurrentPosition().then((resp) => {\n this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0]\n console.log(\"mobile\",mobile_no)\n if(mobile_no ==undefined){\n mobile_no=this.mainApplicant.mobile_no\n }\n data = {'pd_id':this.address_pd_id,'pd_status':'STARTED','mobile_no':mobile_no,'fk_updatedby':this.users,'updatedon':currentdate,'link':this.currentPosPDofficer };\n console.log(data);\nthis.pdDetails.updatepdStatus(data).subscribe(res=>\n{\n this.updatestarted = res;\nif(this.updatestarted.dataStatus == true)\n{\n //appdetails.pd_id=this.address_pd_id\n //clearInterval(this.timeInterval);\n //console.log(\"appdetails\",appdetails)\n //this.navCtrl.setRoot(OtpPage,{'pdDetails':appdetails});\n this.getNewpdupdate();\n this.startedAccess=false\n this.checkOtpAccess=true\n \n}\nelse{\n this.checkOtpAccess=false\n}\n\n},err=>alert(JSON.stringify(err)));\n // console.log('Buy clicked');\n },err=>{\n alert(JSON.stringify(err))\n })\n }\n\n startPdDiscussion()\n {\n\n let data:any;\n let alert = this.alertCtrl.create({\n title: 'Start Discussion',\n message: 'Are you starting the Discussion',\n buttons: [\n {\n text: 'No',\n role: 'cancel',\n handler: () => {\n \n // console.log('Cancel clicked');\n // this.toast.pdTriggerappmessage('')\n }\n },\n {\n text: 'YES',\n handler: () => {\n // this.geolocation.getCurrentPosition().then((resp) => {\n // this.currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n \n // data = {'pd_id':this.address_pd_id,'pd_status':'STARTED','mobile_no':this.mainApplicant.mobile_no,'fk_updatedby':this.users,'updatedon':currentdate,'link': this.currentPosPDofficer };\n // console.log(data);\n // this.pdDetails.updatepdStatus(data).subscribe(res=>\n // {this.updatestarted = res;\n // if(this.updatestarted.dataStatus == true)\n // {\n // appdetails.pd_id=this.address_pd_id\n // clearInterval(this.timeInterval);\n // console.log(\"appdetails\",appdetails)\n // this.navCtrl.setRoot(OtpPage,{'pdDetails':appdetails});\n // }\n \n // })\n // // console.log('Buy clicked');\n // })\n clearInterval(this.timeInterval);\n this.backgroundgeolocation.finish();\n this.backgroundgeolocation.stop();\n //FOR GIVING THE CORRECT ADDRESS MASTER\n console.log(\"address\",this.address_allocated_data);\n //Assigning applicant details to the params\n let pdValues= this.address_allocated_data\n pdValues.applicat_details=this.other_applicant\n this.navCtrl.setRoot(OtpPage,{'pdDetails':pdValues});\n } \n }\n ]\n });\n alert.present();\n }\n getNewpdupdate()\n {\n console.log(\"Started\",this.startedAccess)\n console.log(\"checkOtpAccess\",this.checkOtpAccess)\n this.acceptedAccess = false;\n this.initiatedAccess = false;\n this.scheduleAccess = false;\n this.startedAccess = false;\n this.checkOtpAccess = false;\n this.pdDetails.getpddetails(this.users).subscribe(res=>\n {\n this.appdata = res;\n if(this.appdata.dataStatus == true)\n {\n \n this.applicatentDetails = this.appdata.records.filter(app=>app.pd_id == this.applicatentDetails.pd_id)[0];\n // this.address_pd_status=this.applicatentDetails\n //FOR GETTING THE LATEST ADDRESS STATUS FROM getFullPDdetails\n let pdDetails_pdid=this.applicatentDetails.is_child != '1' ? this.applicatentDetails.pd_id :this.applicatentDetails.parent_pd_id\n let rec_pdid = {'pdid':pdDetails_pdid};\n this.pdDetails.getFullPDdetails(rec_pdid).subscribe(result=>{\n if(result['dataStatus']==true){\n this.addresses= result['records'].pd_address\n result['records'].pd_address.forEach(data=>{\n if(data.addtional_pd_data.length != 0){\n if(data.addtional_pd_data[0].pd_status == 'ALLOCATED' || data.addtional_pd_data[0].pd_status == 'ACCEPTED' || data.addtional_pd_data[0].pd_status == 'SCHEDULED' || data.addtional_pd_data[0].pd_status == 'INITIATED' || data.addtional_pd_data[0].pd_status == 'STARTED'|| data.addtional_pd_data[0].pd_status == 'INPROGRESS'){\n // this.address_pd_id=data.addtional_pd_data[0].pd_id\n this.address_pd_status=data.addtional_pd_data[0].pd_status\n // this.address_allocated_data=data.addtional_pd_data[0]\n console.log(\"pd\",this.address_pd_id)\n return;\n }\n }\n })\n \n // if(this.applicatentDetails.pd_status == 'ALLOCATED')\n // {\n // this.acceptedAccess = true;\n // }\n // if(this.applicatentDetails.pd_status == 'ACCEPTED')\n // {\n // this.scheduleAccess = true;\n // this.toast.pdTriggerappmessage(\"Accepted Successfully\")\n // }\n // if(this.applicatentDetails.pd_status == 'SCHEDULED')\n // {\n // this.initiatedAccess = true;\n // this.getFullPD();\n // this.toast.pdTriggerappmessage(\"Scheduled Successfully\")\n // }\n\n // if(this.applicatentDetails.pd_status == 'INITIATED')\n // {\n // this.startedAccess = true;\n // this.toast.pdTriggerappmessage(\"Initiated Successfully\")\n // }\n\n if(this.address_pd_status == 'ALLOCATED')\n {\n this.acceptedAccess = true;\n }\n if(this.address_pd_status == 'ACCEPTED')\n {\n this.scheduleAccess = true;\n this.toast.pdTriggerappmessage(\"Accepted Successfully\")\n }\n if(this.address_pd_status == 'SCHEDULED')\n {\n this.initiatedAccess = true;\n this.getFullPD();\n this.toast.pdTriggerappmessage(\"Scheduled Successfully\")\n }\n\n if(this.address_pd_status == 'INITIATED')\n {\n this.startedAccess = true;\n this.toast.pdTriggerappmessage(\"Initiated Successfully\")\n }\n if(this.address_pd_status == 'STARTED'){\n this.checkOtpAccess=true;\n }\n \n }\n })\n }\n \n })\n console.log(\"app\",this.applicatentDetails);\n \n }\n\n camerasetup()\n {\n this.navCtrl.push(PdGeneralImagesPage,{'pdDetails':this.applicatentDetails});\n }\n\n inprogress(data,address_child){\n // data.pd_id=address_child.pd_id\n console.log(address_child)\n let pdValues=address_child\n pdValues.applicat_details=this.other_applicant\n this.navCtrl.push(PdQuestionCategoryPage,{'pdDetails':pdValues})\n }\n mapAddress(values){\n const modalOptions:ModalOptions={\n cssClass:\"mapAddress\"\n }\n \n const modal=this.modalCtrl.create(MapAddressPage,{'master':this.pdMaster,'address':values,'applicants':this.other_applicant},modalOptions)\n modal.present();\n modal.onDidDismiss((data)=>{\n console.log(\"datas\",data)\n this.getFullPD();\n })\n }\n\n inWords(e){\n return this.constant.convertNumberToWords(+e)+' Only';\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.applicatentDetails.pd_id,'form_id':null,'company_id':null,'is_common':1}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n\n if(!val['msg']){\n // res = this.customfilter(res); \n console.log('val[records]',val['records']);\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n\n capture(){\n \n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n \n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geocoords\",geoCoordinates)\n \n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n \n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n \n\n \n }\n\n customfilter(res){\n console.log('custome filter');\n return res.filter(data=>data.fk_form_id != null);\n }\n\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n let records:any={\n 'pd_id':this.applicatentDetails.pd_id,\n 'formid':null,\n 'images':this.imageBucket,\n 'company_id':null\n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/input/input.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, MenuController, AlertController } from 'ionic-angular';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../providers/constants/constants';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Geolocation } from '@ionic-native/geolocation'; \nimport { AndroidPermissions } from '@ionic-native/android-permissions';\n\n/**\n * Generated class for the OtpPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-otp',\n templateUrl: 'otp.html',\n})\nexport class OtpPage {\n\n \n timeLimit: any;\n reason_otp: any;\n users: any;\n timerOn: boolean = true;\n balance_time: string;\n otpStatus: any;\n pin:any;\n otpStatusAccess:boolean = true;\n applicatentDetails: any;\n commonImage:any;\n maxtime: any=30;\n //address_pd_id:any;\n \n reasonForm:FormGroup\n constructor(public navCtrl: NavController, public navParams: NavParams,public pddetails:PdtriggerProvider,public toast:ToastProvider,public Menu:MenuController,public commonconstant:ConstantsProvider,public aws:AwsServiceProvider,public alertCtrl:AlertController,public qustCat:QuestionCategoryProvider,public fb:FormBuilder,public geolocation:Geolocation,public androidPermissions:AndroidPermissions) {\n this.commonImage = this.commonconstant.commonimage;\n this.applicatentDetails = this.navParams.get('pdDetails');\n console.log(\"this\",this.applicatentDetails);\n // this.address_pd_id=this.navParams.get('address_pd_id')\n this.users = this.aws.getlocale();\n console.log(\"user\",this.users)\n this.reasonForm = this.fb.group(\n {\n reason:[null,Validators.compose([Validators.required])],\n others_reason:[null],\n })\n \n this.getDropdown();\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad OtpPage');\n }\n ionViewDidEnter(){\n //this.Menu.enable(false);\n this.setPermission();\n this.timer(120);\n \n }\n\n setPermission()\n {\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n }\n ionViewWillLeave(){\n //this.Menu.enable(true);\n clearTimeout(this.timeLimit);\n }\n getDropdown()\n {\n this.qustCat.getcommondrop('OTPREJECTION').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.reason_otp = res['records'].filter(otp=>otp.isactive==1);\n console.log(this.reason_otp);\n \n }\n })\n }\n checkotp(otp)\n {\n //console.log(\"Otp\",otp)\n let data = {'pd_id':this.applicatentDetails.pd_id,'OTP':otp,'fk_updatedby':this.users};\n this.pddetails.checkotp(data).subscribe(res=>\n {\n //console.log(\"Otp\",res)\n this.otpStatus = res;\n if(this.otpStatus.dataStatus == true)\n {\n this.navCtrl.setRoot(PdQuestionCategoryPage,{'pdDetails':this.applicatentDetails});\n }else\n {\n this.toast.pdTriggerappmessage('Enter the Correct OTP');\n }\n })\n }\n\n timer(remaining) {\n // console.log(remaining);\n let m:any = Math.floor(remaining / 60);\n let s:any = remaining % 60;\n \n m = m < 10 ? '0' + m : m;\n s = s < 10 ? '0' + s : s;\n // var balance_time = m + ':' + s;\n this.balance_time = m + ':' + s;\n remaining -=1;\n // console.log(this.balance_time);\n if(remaining >= 0 && this.timerOn) {\n this.timeLimit = setTimeout(()=> {\n this.timer(remaining);\n }, 1000);\n return;\n }\n \n if(!this.timerOn) {\n // Do validate stuff here\n return;\n }\n \n // Do timeout stuff here\n \n let data:any;\n let alert = this.alertCtrl.create({\n title: 'OTP Expired ',\n message: 'Do you want to resend the OTP ? ',\n buttons: [\n {\n text: 'Start PD Without OTP',\n \n handler: () => {\n \n this.otpStatusAccess = false;\n }\n },\n {\n text: 'Resend OTP',\n handler: () => {\n \n this.geolocation.getCurrentPosition().then((resp) => {\n let currentPosPDofficer = resp.coords.latitude+\",\"+resp.coords.longitude;\n data = {'pd_id':this.applicatentDetails.pd_id,'pd_status':'STARTED','mobile_no':this.applicatentDetails.applicat_details[0].mobile_no,'fk_updatedby':this.users,'link':currentPosPDofficer};\n console.log(data);\n this.pddetails.updatepdStatus(data).subscribe(res=>\n {\n this.timer(60);\n })\n });\n // console.log('Buy clicked');\n \n } \n }\n \n ]\n \n });\n alert.present();\n }\n \n saveotpreasno()\n {\n console.log(this.reasonForm.value);\n if(this.reasonForm.valid)\n {\n let data = {'pd_id':this.applicatentDetails.pd_id,'reason':this.reasonForm.value.reason,'other_reason':this.reasonForm.value.others_reason,'fk_updatedby':this.users};\n this.pddetails.checkotp(data).subscribe(res=>\n {\n this.otpStatus = res;\n if(this.otpStatus.dataStatus == true)\n {\n this.navCtrl.setRoot(PdQuestionCategoryPage,{'pdDetails':this.applicatentDetails});\n }else\n {\n // this.toast.pdTriggerappmessage('Enter the Correct OTP');\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/otp/otp.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport{QuestionCategoryProvider} from '../../../../providers/question-category/question-category'\nimport {RupeeCurrencyFormatPipe} from '../../../../pipes/rupee-currency-format/rupee-currency-format'\nimport {PdQuestionRentalInfoPage} from '../pd-question-rental-info'\n/**\n * Generated class for the PdQuestionRentalDashPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n// @IonicPage()\n@Component({\n selector: 'page-pd-question-rental-dash',\n templateUrl: 'pd-question-rental-dash.html',\n providers:[RupeeCurrencyFormatPipe]\n})\nexport class PdQuestionRentalDashPage {\n pdDetails:any;\n form_details:any;\n pageTitle:any\n existing_rental_count_id: number=0;\n existing_rental_list: any=[];\n constructor(public navCtrl: NavController, public navParams: NavParams,private qustCat:QuestionCategoryProvider) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.form_details=this.navParams.get('FormId');\n console.log(this.form_details);\n \n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionRentalDashPage');\n \n }\n ionViewCanEnter(){\n this.getAllRentalInfo();\n }\n getAllRentalInfo(){\n this.existing_rental_list=[]\n \n let records = {'parent_pdid':this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.form_details.form_id };\n this.qustCat.retiverForm(records).subscribe(res=>{\n if(res['dataStatus']==true){\n \n // console.log(\"rental\",rentalVal.length)\n // console.log(JSON.parse(res['records']))\n let rentalVal:any=res['records']\n \n \n console.log(\"tyeva\",typeof(rentalVal))\n let tempArray: any = [];\n let amt: any = [];\n this.existing_rental_count_id = rentalVal.length;\n // if(rentalVal.length >0){\n console.log(\"rental val\",rentalVal);\n \n rentalVal.forEach((value,index)=>{\n let annualRentAmt:any\n if(value.property_unit_details){\n let selectedUnit=Object.keys(value.property_unit_details).map(function(key){\n return value.property_unit_details[key]\n });\n if(selectedUnit.length>0){\n selectedUnit.forEach((element,innerIndex)=>{\n tempArray[innerIndex]=element.monthly_rent_amount\n annualRentAmt=tempArray.reduce((sum,val)=> sum+ +val,0);\n annualRentAmt=annualRentAmt*12;\n })\n }\n else{\n annualRentAmt=0;\n }\n amt[index]=annualRentAmt\n }\n let params={'state_id':value.state,'city_id':value.city,'pincode_id':value.pincode}\n this.qustCat.getStateCityNamesAndPincode(params).subscribe(datas=>{\n if(datas.dataStatus==true){\n let obj={\n 'address':value.address_property,\n 'applicants_rent': amt[index],\n 'state': datas.records.state_name,\n 'city': datas.records.city_name,\n 'pincode': datas.records.pincode,\n 'rental_count_id': value.rental_count_id,\n 'rental_existing_data': value\n }\n this.existing_rental_list.push(obj)\n console.log(\"modify\",this.existing_rental_list);\n }\n })\n })\n }\n else{\n this.existing_rental_count_id=0\n // this.addMore();\n }\n })\n console.log(\"ren\",this.existing_rental_list);\n }\n editDet(values){\n let passValues: any = {\n manage_status: 2,\n existing_rental_count_id: values.rental_count_id,\n editData: values\n }\n this.navCtrl.push(PdQuestionRentalInfoPage,{'values':passValues,'pdDetails':this.pdDetails,'FormId':this.form_details});\n console.log(\"hai\");\n console.log(\"d\",values)\n }\n addMore(){\n let passValues: any = {\n manage_status: 1,\n // parentData: this.parentData,\n // masterData: this.masterData,\n existing_rental_count_id: this.existing_rental_count_id + 1,\n }\n this.navCtrl.push(PdQuestionRentalInfoPage,{\"values\":passValues,'pdDetails':this.pdDetails,'FormId':this.form_details});\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { CameraProvider } from '../../../../providers/common-provider/camera'\nimport { LoadingProvider } from '../../../../providers/common-provider/loading'\nimport { ConstantsProvider } from '../../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionSupplsierInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-supplier-info',\n templateUrl: 'pd-question-supplier-info.html',\n})\n\nexport class PdQuestionSupplierInfoPage {\n users: any;\n pdDetails: any;\n formDetails: any;\n company_id: any;\n form_id: any;\n questionDetails: any;\n supplierInfoForm: FormGroup;\n\n business_manufacturingProducts: any = [];\n business_tradingProducts: any = [];\n business_serviceProvider: any = [];\n\n m_titleList: any = [];\n m_paymentList: any = [];\n m_companyRelationShipList: any = [];\n\n noRecordsFound: Boolean = false;\n public submitted = false;\n errorMessage: any = '';\n imageDisplay: any[];\n imageBucket: any = [];\n tab: string = '0';\n\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb: FormBuilder,\n public aws: AwsServiceProvider, public qustCat: QuestionCategoryProvider,\n public toast: ToastProvider, private cameraProvider: CameraProvider, private loading: LoadingProvider,\n private constantProvider: ConstantsProvider) {\n\n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.formDetails = this.navParams.get('formDetails');\n this.form_id = this.formDetails.form_id;\n this.company_id = this.pdDetails.company_id;\n this.users = this.aws.getlocale();\n\n\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id, this.company_id).subscribe(data => {\n \n if(data.dataStatus){\n \n let datas = data.records;\n console.log('datas',datas);\n this.initFormLoadDetails(datas.type_of_activity);\n this.business_manufacturingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 2 ){return data}}).map(data=> [...data.prodcuts]);\n // this.business_tradingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 3){return data}}).map(data=> [...data.prodcuts]);\n this.business_serviceProvider = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 5){return data}}).map(data=> [...data.prodcuts]);\n \n let api = Object.keys(datas.type_of_activity).map(function (key) {\n return datas.type_of_activity[key];\n });\n\n if(api.length > 0){ \n api.forEach(val => {\n if (val.type_of_activity_id == 3) {\n if(val.prodcuts){\n this.business_tradingProducts.push(val.prodcuts);\n }\n }\n\n if (val.type_of_activity_id == 4) {\n if(val.prodcuts){\n this.business_tradingProducts.push(val.prodcuts);\n }\n }\n if (val.type_of_activity_id == 5) {\n if(val.prodcuts){\n this.business_serviceProvider.push(val.prodcuts);\n console.log(this.business_serviceProvider);\n }\n }\n });\n }\n\n this.business_tradingProducts = [].concat.apply([], this.business_tradingProducts);\n \n \n }else {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = data.msg;\n }\n }, err => {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = 'No Records Found , Something went Wrong!';\n })\n this.getdropList();\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionSupplierInfoPage');\n this.getPDImages();\n }\n\n\n // serviceProviderForm: Boolean = false;\n initFormLoadDetails(record) {\n let params: any = {};\n params.parent_pdid = this.pdDetails.parent_pd_id\n params.pd_id = this.pdDetails.pd_id;\n params.pd_form_id = this.form_id;\n params.company_id = this.company_id;\n\n this.qustCat.retiverForm(params).subscribe(\n data => {\n if (data['dataStatus'] == true) {\n \n let dataForm = data['records'];\n if (dataForm !== undefined) {\n this.supplierInfoForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n formid: [this.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n servicing_details: this.fb.array([this.servicingFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n // let api_main_raw_materials = Object.keys(dataForm.main_raw_materials).map(function (key) {\n // return dataForm.main_raw_materials[key];\n // });\n if (dataForm.manufacturing_details[0] != null) {\n let api_main_raw_materials = dataForm.manufacturing_details[0].main_raw_materials;\n\n this.initManufacturingProductsDetails(api_main_raw_materials);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(dataForm.manufacturing_details[0].main_raw_materials_total_payments_percent_on_credit || null);\n }\n else {\n this.initManufacturingProductsDetails(null);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null)\n }\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n // let api_trading_products = Object.keys(dataForm.trading_products).map(function (key) {\n // return dataForm.trading_products[key];\n // });\n if (dataForm.trade_details[0] != null) {\n let api_trading_products = dataForm.trade_details[0].trading_products;\n this.initTradingProductsDetails(api_trading_products);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trade_details[0].trading_products_total_payments_percent_on_credit || null);\n }\n else {\n this.initTradingProductsDetails(null);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n // this.serviceProviderForm = true;\n if (dataForm.servicing_details[0] != null) {\n let api_service_providers = dataForm.servicing_details[0].service_providers;\n this.initServiceProvidersDetails(api_service_providers);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(dataForm.servicing_details[0].service_providers_total_payments_percent_on_credit || null);\n }\n else {\n this.initServiceProvidersDetails(null);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(null);\n }\n }\n this.noRecordsFound = true;\n } else {\n \n this.supplierInfoForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n formid: [this.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n servicing_details: this.fb.array([this.servicingFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trading_products_total_payments_percent_on_credit || null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n this.initServiceProvidersDetails(null);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(dataForm.servicing_details[0].service_providers_total_payments_percent_on_credit || null);\n }\n this.noRecordsFound = true;\n }\n } else {\n console.log(' data in else part');\n this.supplierInfoForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n formid: [this.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n servicing_details: this.fb.array([this.servicingFormCreation(record)]),\n supplier_info_form_remark: []\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n this.initServiceProvidersDetails(null);\n this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers_total_payments_percent_on_credit'].setValue(null);\n }\n this.noRecordsFound = true;\n }\n }, err => {\n\n }\n );\n }\n\n manufacturingForm: Boolean = false;\n manufacturingFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.manufacturingForm = true;\n return this.fb.group({\n main_raw_materials: this.fb.array([]),\n main_raw_materials_total_payments_percent_on_credit: []\n })\n // }\n } else {\n return;\n }\n }\n\n tradingForm: Boolean = false;\n tradingFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr.length > 0) {\n this.tradingForm = true;\n return this.fb.group({\n trading_products: this.fb.array([]),\n trading_products_total_payments_percent_on_credit: []\n });\n } else {\n return;\n }\n }\n\n servicingForm: Boolean = false;\n servicingFormCreation(val) {\n \n let arr = val.filter(data => data.type_of_activity_id == 5);\n console.log(arr,arr.length);\n if (arr.length > 0) {\n console.log('IF');\n this.servicingForm = true;\n return this.fb.group({\n service_providers: this.fb.array([]),\n service_providers_total_payments_percent_on_credit: []\n });\n } else {\n console.log('ELSE');\n return;\n }\n }\n\n initManufacturingProductsDetails(datas) {\n const control = this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n if (datas === null) {\n control.push(this.initManufacturingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.manufacturing_payment_type, 1, inx);\n control.push(this.initManufacturingProducts(val));\n });\n }\n }\n\n initManufacturingProducts(records) {\n if (records === null) {\n return this.fb.group({\n manufacturing_raw_material_name: [''],\n manufacturing_supplier_name: [''],\n person_title_name: [''],\n person_designation: [''],\n other_person_designation: [''],\n manufacturing_contact_person_name: [''],\n manufacturing_contact_person_mobile_number: [''],\n //,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])\n manufacturing_payment_type: [''],\n manufacturing_payment_mode: [''],\n manufacturing_credit_days_from: [''],\n manufacturing_credit_days_to: [''],\n manufacturing_frequency_of_purchase: [''],\n person_stdcode: [''],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [''],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n\n })\n } else {\n return this.fb.group({\n manufacturing_raw_material_name: [records.manufacturing_raw_material_name || null],\n manufacturing_supplier_name: [records.manufacturing_supplier_name || null],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n other_person_designation: [records.other_person_designation || null],\n manufacturing_contact_person_name: [records.manufacturing_contact_person_name || null],\n manufacturing_contact_person_mobile_number: [records.manufacturing_contact_person_mobile_number || null],\n //Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n manufacturing_payment_type: [records.manufacturing_payment_type || null],\n manufacturing_payment_mode: [records.manufacturing_payment_mode],\n manufacturing_credit_days_from: [records.manufacturing_credit_days_from || null],\n manufacturing_credit_days_to: [records.manufacturing_credit_days_to || null],\n manufacturing_frequency_of_purchase: [records.manufacturing_frequency_of_purchase || null],\n person_stdcode: [records.person_stdcode || null],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [records.person_landline || null],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n })\n }\n }\n\n initTradingProductsDetails(datas) {\n const control = this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n\n if (datas === null) {\n control.push(this.initTradingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.trade_product_payment_type, 2, inx);\n control.push(this.initTradingProducts(val));\n });\n }\n }\n\n initTradingProducts(records) {\n if (records === null) {\n return this.fb.group({\n trade_product_name: [''],\n trade_supplier_name: [''],\n person_title_name: [''],\n person_designation: [''],\n other_person_designation: [''],\n trade_product_contact_person_name: [''],\n trade_product_contact_person_mobile_number: [''],\n //,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])\n person_stdcode: [null],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [null],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n trade_product_payment_type: [''],\n trade_product_payment_mode: [''],\n trade_product_frequency_of_purchase: [''],\n trade_product_credit_days_from: [''],\n trade_product_credit_days_to: [''],\n })\n } else {\n return this.fb.group({\n trade_product_name: [records.trade_product_name],\n person_title_name: [records.person_title_name],\n person_designation: [records.person_designation],\n other_person_designation: [records.other_person_designation],\n trade_supplier_name: [records.trade_supplier_name],\n trade_product_contact_person_name: [records.trade_product_contact_person_name],\n trade_product_contact_person_mobile_number: [records.trade_product_contact_person_mobile_number],\n //, Validators.compose([Validators.minLength(10),Validators.maxLength(10)])\n person_stdcode: [records.person_stdcode],\n //, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])\n person_landline: [records.person_landline],\n //, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])\n trade_product_payment_type: [records.trade_product_payment_type],\n trade_product_payment_mode: [records.trade_product_payment_mode],\n trade_product_frequency_of_purchase: [records.trade_product_frequency_of_purchase],\n trade_product_credit_days_from: [records.trade_product_credit_days_from],\n trade_product_credit_days_to: [records.trade_product_credit_days_to],\n })\n }\n }\n\n initServiceProvidersDetails(datas) {\n console.log('datas',datas);\n const control = this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers'];\n\n if (datas === null) {\n console.log('initServiceProvidersDetails if null');\n control.push(this.initServiceProviders(null));\n } else {\n console.log('else not null');\n datas.forEach((val, inx) => {\n this.checkCard(val.service_provider_payment_type, 3, inx);\n control.push(this.initServiceProviders(val));\n });\n }\n }\n\n initServiceProviders(records) {\n console.log('initServiceProviders',records);\n if (records === null) {\n console.log('if');\n return this.fb.group({\n service_provider_name: [''],\n service_provider_supplier_name: [''],\n person_title_name: [''],\n person_designation: [''],\n other_person_designation: [''],\n service_provider_contact_person_name: [''],\n service_provider_contact_person_mobile_number: [''],\n person_stdcode: [null],\n person_landline: [null],\n service_provider_payment_type: [''],\n service_provider_payment_mode: [''],\n service_provider_frequency_of_purchase: [''],\n service_provider_credit_days_from: [''],\n service_provider_credit_days_to: [''],\n })\n } else {\n console.log('else');\n return this.fb.group({\n service_provider_name: [records.service_provider_name],\n person_title_name: [records.person_title_name],\n person_designation: [records.person_designation],\n other_person_designation: [records.other_person_designation],\n service_provider_supplier_name: [records.service_provider_supplier_name],\n service_provider_contact_person_name: [records.service_provider_contact_person_name],\n service_provider_contact_person_mobile_number: [records.service_provider_contact_person_mobile_number],\n person_stdcode: [records.person_stdcode],\n person_landline: [records.person_landline],\n service_provider_payment_type: [records.service_provider_payment_type],\n service_provider_payment_mode: [records.service_provider_payment_mode],\n service_provider_frequency_of_purchase: [records.service_provider_frequency_of_purchase],\n service_provider_credit_days_from: [records.service_provider_credit_days_from],\n service_provider_credit_days_to: [records.service_provider_credit_days_to],\n })\n }\n }\n\n addMoreRawMaterials(e): void {\n // e.stropPropagation();\n const control = this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n\n control.push(this.initManufacturingProducts(null));\n }\n\n removeRawMaterials(inx): void {\n const control = this.supplierInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n control.removeAt(inx);\n }\n\n addMoretradeProduct(e): void {\n // e.stropPropagation();\n const control = this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n\n control.push(this.initTradingProducts(null));\n }\n\n removeTradingProduct(inx): void {\n const control = this.supplierInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n control.removeAt(inx);\n }\n\n addMoreServiceProvider(e): void {\n // e.stropPropagation();\n const control = this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers'];\n control.push(this.initServiceProviders(null));\n }\n\n removeServiceProvider(inx): void {\n const control = this.supplierInfoForm.controls['servicing_details']['controls'][0].controls['service_providers'];\n control.removeAt(inx);\n }\n\n\n getdropList() {\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(\n data => {\n this.m_companyRelationShipList = data['records']\n //.filter(data => data.isactive == 1); \n // because in general no need of \"other\" option but in supplier others option needed - in DB others option changed into inactive\"\n });\n\n this.qustCat.getcommondrop('TITLES').subscribe(\n data => {\n this.m_titleList = data['records'].filter(data => data.isactive == 1);\n });\n\n this.qustCat.getcommondrop('PAYMENTMODE').subscribe(\n data => {\n this.m_paymentList = data['records'].filter(data => data.isactive == 1);\n });\n }\n saveSupplierInfoWithImageCheck(answerFormValues) {\n console.log(\"forms\", answerFormValues);\n let required_imageCheck = this.mandatoryImageCheck(answerFormValues)\n console.log(\"required image check\", required_imageCheck);\n if (!required_imageCheck) {\n let alert = this.toast.setAlert(\"Mandatory photographs not taken\", \" Do you want to take it later?\")\n alert.present();\n alert.onDidDismiss(value => {\n if (value == 's') {\n this.saveSupplierInfo(answerFormValues)\n }\n else {\n return true;\n }\n })\n }\n else {\n this.saveSupplierInfo(answerFormValues)\n }\n }\n\n\n saveSupplierInfo(FormValues) {\n\n var answerFormValues = FormValues;\n\n Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);\n\n this.qustCat.saveForm(answerFormValues).subscribe(responsed => {\n if (responsed['status'] == 200) {\n this.supplierInfoForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(() => {\n this.navCtrl.pop();\n }, 2000);\n } else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n });\n\n }\n\n selectedPersonDesignation(items, e, flag) {\n if (flag == 1) {\n e == 1 ? '' : '';\n // e==1 ? items.controls['other_person_designation'].setValidators([Validators.required])\n // : items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 2) {\n e == 1 ? '' : '';\n // e==1 ?items.controls['other_person_designation'].setValidators([Validators.required])\n // :items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 3) {\n e == 1 ? '' : '';\n }\n }\n\n mfgCreditCardFlag: boolean = false;\n trdCreditCardFlag: boolean = false;\n spCreditCardFlag: boolean = false;\n\n mfgCounter: any = [];\n trdCounter: any = [];\n spCounter: any = [];\n\n checkCard(e, flag, index) {\n if (flag == 2 && e == 3) {\n this.trdCounter[index] = 1;\n }\n else if (flag == 2 && e != 3) {\n this.trdCounter[index] = 0;\n }\n let TRD = this.trdCounter.reduce((sum, val) => sum + +val, 0);\n this.trdCreditCardFlag = TRD > 0 ? true : false;\n\n if (flag == 1 && e == 3) {\n this.mfgCounter[index] = 1;\n }\n else if (flag == 1 && e != 3) {\n this.mfgCounter[index] = 0;\n }\n let MFG = this.mfgCounter.reduce((sum, val) => sum + +val, 0);\n this.mfgCreditCardFlag = MFG > 0 ? true : false;\n\n if (flag == 3 && e == 3) {\n this.spCounter[index] = 1;\n }\n else if (flag == 3 && e != 3) {\n this.spCounter[index] = 0;\n }\n let SP = this.spCounter.reduce((sum, val) => sum + +val, 0);\n this.spCreditCardFlag = SP > 0 ? true : false;\n\n }\n\n selectedPaymentTerms(items, e, flag) {\n if (flag == 2) {\n if (e == 3) {\n // items.controls['trade_product_credit_days_from'].setValidators([Validators.required]);\n // items.controls['trade_product_credit_days_to'].setValidators([Validators.required]);\n }\n else {\n items.controls['trade_product_credit_days_from'].clearValidators();\n items.controls['trade_product_credit_days_from'].setValue('');\n items.controls['trade_product_credit_days_to'].clearValidators();\n items.controls['trade_product_credit_days_to'].setValue('');\n }\n items.controls['trade_product_credit_days_from'].updateValueAndValidity();\n items.controls['trade_product_credit_days_to'].updateValueAndValidity();\n }\n else if (flag == 1) {\n if (e == 3) { //items.controls['manufacturing_credit_days_from'].setValidators([Validators.required]);\n //items.controls['manufacturing_credit_days_to'].setValidators([Validators.required]);\n }\n else {\n items.controls['manufacturing_credit_days_from'].clearValidators();\n items.controls['manufacturing_credit_days_from'].setValue('');\n items.controls['manufacturing_credit_days_to'].clearValidators();\n items.controls['manufacturing_credit_days_to'].setValue('');\n }\n items.controls['manufacturing_credit_days_from'].updateValueAndValidity();\n items.controls['manufacturing_credit_days_to'].updateValueAndValidity();\n }\n\n if (flag == 3) {\n if (e == 3) {\n // items.controls['service_provider_credit_days_from'].setValidators([Validators.required]);\n // items.controls['service_provider_credit_days_to'].setValidators([Validators.required]);\n }\n else {\n // items.controls['service_provider_credit_days_from'].clearValidators();\n items.controls['service_provider_credit_days_from'].setValue('');\n // items.controls['service_provider_credit_days_to'].clearValidators();\n items.controls['service_provider_credit_days_to'].setValue('');\n }\n items.controls['service_provider_credit_days_from'].updateValueAndValidity();\n items.controls['service_provider_credit_days_to'].updateValueAndValidity();\n }\n }\n\n /*IMAGE SECTION*/\n getPDImages() {\n //FOR RETRIEVING PICTURES\n this.imageDisplay = []\n let record_for_pic = { 'pd_id': this.pdDetails.pd_id, 'form_id': this.formDetails.form_id, 'company_id': this.pdDetails.company_id }\n this.qustCat.getPDImages(record_for_pic).subscribe(val => {\n if (!val['msg']) {\n console.log(val['records'])\n if (val['records'].length > 0) {\n val['records'].forEach(result => {\n this.imageDisplay.push({ 'image': result.doc_url, 'Name': result.pd_document_title, 'option': 'dummy' })\n })\n console.log(\"imageBuck\", this.imageDisplay);\n }\n }\n })\n }\n changeName(value, index, img) {\n console.log(value);\n this.imageDisplay[index] = { 'image': img, 'Name': value }\n\n }\n changeNameForBucket(value, index, img) {\n this.imageBucket[index] = { 'image': img, 'Name': value }\n }\n removeImg(index) {\n this.imageDisplay.splice(index, 1);\n }\n removeImgForBucket(index) {\n this.imageBucket.splice(index, 1)\n }\n\n\n captureTheSupplierPics(materialName, index, supplierName) {\n \n \n if (supplierName != '') {\n // 'Raw Material','l',items.get('manufacturing_supplier_name').value \n this.cameraProvider.getpicture().then(res => {\n if (res != 'error') {\n this.constantProvider.getGeoTag().then(geoCoordinates => {\n console.log(\"geo promise\", geoCoordinates)\n this.imageBucket.push({ 'image': res, 'Name': supplierName + ' - ' + materialName + ' ' + (index + 1), 'link': geoCoordinates });\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n this.tab = '1';\n }\n else if (supplierName == '') {\n alert('Please Fill The Supplier Name');\n }\n\n }\n mandatoryImageCheck(Form_values) {\n let Form_names = []\n if (Form_values.manufacturing_details.length != 0 && Form_values.manufacturing_details[0] != null) {\n if (Form_values.manufacturing_details[0].main_raw_materials.length != 0) {\n Form_values.manufacturing_details[0].main_raw_materials.forEach((value, index) => {\n Form_names.push({ 'index': index + 1, 'name': value.manufacturing_supplier_name + ' - ' + 'Raw Material ' + (index + 1) })\n })\n }\n }\n // if(Form_values.service_provider_details.length != 0 && Form_values.service_provider_details[0] != null ){\n // if(Form_values.service_provider_details[0].service_products.length != 0){\n // Form_values.service_provider_details[0].service_products.forEach((value,index)=>{\n // Form_names.push({'index':index+1,'name':value.service_provider_client_name+' - '+ 'Service Provided ' + (index+1) })\n // })\n // }\n // }\n if (Form_values.trade_details.length != 0 && Form_values.trade_details[0] != null) {\n if (Form_values.trade_details[0].trading_products.length != 0) {\n Form_values.trade_details[0].trading_products.forEach((value, index) => {\n Form_names.push({ 'index': index + 1, 'name': value.trade_supplier_name + ' - ' + 'Trading Product ' + (index + 1) })\n })\n }\n }\n // console.log(\"Form Values\",Form_names);\n // console.log(\"image values\",this.imageDisplay)\n let valBool\n let count: number = 0;\n let mandatoryimgSaved = []\n let mandatoryimgNotSaved = []\n\n if (Form_names.length != 0) {\n // if( this.imageDisplay.length !=0){\n Form_names.forEach(formvalue => {\n this.imageDisplay.forEach((imgvalue) => {\n\n // console.log(\"Form values individuals\",formvalue)\n if (formvalue.name != imgvalue.Name) {\n\n valBool = true\n }\n else {\n\n valBool = false\n\n count++;\n\n\n }\n if (count >= 2 && valBool == false) {\n // console.log(\"end of image dis\",formvalue.name,\"count \",count)\n mandatoryimgSaved.push(formvalue.name)\n //return\n }\n else {\n mandatoryimgNotSaved.push(formvalue.name)\n return\n }\n\n })\n if (valBool == true)\n console.log(\"Form name\", formvalue.name)\n\n mandatoryimgNotSaved.push(formvalue.name)\n\n })\n\n console.log(\"mandatoryimgSaved\", mandatoryimgSaved)\n console.log(\"mandatoryimgNot Saved\", mandatoryimgNotSaved)\n mandatoryimgSaved.forEach(res => {\n mandatoryimgNotSaved = mandatoryimgNotSaved.filter(val => val != res)\n\n })\n\n // console.log(\"res for not saved img\",mandatoryimgNotSaved);\n // let uniquenotsavedImage=[ ...new Set(mandatoryimgNotSaved)]\n let uniquenotsavedImage = (mandatoryimgNotSaved) => mandatoryimgNotSaved.filter((val, i) => mandatoryimgNotSaved.indexOf(val) === i)\n console.log(\"uniw\", uniquenotsavedImage(mandatoryimgNotSaved));\n if (uniquenotsavedImage(mandatoryimgNotSaved).length > 0) {\n return false\n }\n else {\n return true\n }\n\n //COUNTING THE DUPLICATES IN AN ARRAY\n // var arr = ['a','b','c','d','d','e','a','b','c','f','g','h','h','h','e','a'];\n // var map = arr.reduce(function(prev, cur) {\n // prev[cur] = (prev[cur] || 0) + 1;\n // return prev;\n // }, {});\n\n // map is an associative array mapping the elements to their frequency:\n // console.log(map);\n // prints {\"a\": 3, \"b\": 2, \"c\": 2, \"d\": 2, \"e\": 2, \"f\": 1, \"g\": 1, \"h\": 3}\n //}\n }\n else {\n return true\n }\n\n }\n\n capture() {\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res => {\n console.log(\"Value\", res)\n if (res != 'error') {\n this.constantProvider.getGeoTag().then(geoCoordinates => {\n console.log(\"geo promise\", geoCoordinates)\n this.imageBucket.push({ 'image': res, 'Name': '', 'link': geoCoordinates });\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert = this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value => {\n console.log(\"alert value\", value);\n if (value) {\n this.imageBucket[this.imageBucket.length - 1].Name = value.Name\n }\n })\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n this.tab = '1';\n\n\n }\n sendImage() {\n this.loading.loaderForSendImage()\n console.log(\"ll\", JSON.stringify(this.imageBucket));\n\n let records: any = {\n 'pd_id': this.pdDetails.pd_id,\n 'formid': this.formDetails.form_id,\n 'images': this.imageBucket,\n 'company_id': this.pdDetails.company_id,\n\n }\n console.log(\"records\", JSON.stringify(records))\n\n this.qustCat.savePDImages(records).subscribe(res => {\n if (res['dataStatus'] == true) {\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket = []\n this.getPDImages();\n }\n else {\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { FormArray, FormGroup, FormBuilder } from '@angular/forms';\nimport { ConstantsProvider } from '../../../../providers/constants/constants';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionStockInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-stock-info',\n templateUrl: 'pd-question-stock-info.html',\n})\nexport class PdQuestionStockInfoPage {\n\n uomData: any;\n uomDataValue:any;\n rawmaterial: any;\n users: any;\n formDetails: any;\n pdDetails: any;\n company_id: any;\n pdid: any;\n stockForm: FormGroup;\n noRecordsFound: Boolean;\n errorMessage: any = '';\n M_rawValueInWords: any = [];\n M_goodsValueInWords: any = [];\n R_tradedGoodsValueInWords: any = [];\n T_tradedGoodsValueInWords: any = [];\n S_GoodsValueInWords: any = [];\n mrmCommentFlag: any = [];\n mfgCommentFlag: any = [];\n rtrdCommentFlag: any = [];\n wtrdCommentFlag: any = [];\n spdCommentFlag: any = [];\n\n // serviceProviderForm: Boolean = false;\n suppliers_raw_materials: any = [];\n suppliers_retail_trade_details: any = [];\n suppliers_wholesale_trade_details: any = [];\n suppliers_finished_goods: any = [];\n suppliers_service_providers : any = [];\n\n protected _onDestroy = new Subject();\n\n RMCommentCard: boolean = false;\n TGCommentCard: boolean = false;\n SPCommentCard: boolean = false;\n public RMsufficientList: any = [{value:\"yes\",isdisplayvalue:\"Yes\",disabled:false},{value:\"no\",isdisplayvalue:\"No\",disabled:false},{value:\"not applicable\",isdisplayvalue:\"Stock not required to be maintained\",disabled:false}];\n public TGsufficientList: any = [{value:\"yes\",isdisplayvalue:\"Yes\",isdisabled:false},{value:\"no\",isdisplayvalue:\"No\",isdisabled:false},{value:\"not applicable\",isdisplayvalue:\"Stock not required to be maintained\",isdisabled:false}];\n public SPsufficientList: any = [{value:\"yes\",isdisplayvalue:\"Yes\",isdisabled:false},{value:\"no\",isdisplayvalue:\"No\",isdisabled:false},{value:\"not applicable\",isdisplayvalue:\"Stock not required to be maintained\",isdisabled:false}];\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n \n constructor(public navCtrl: NavController, public navParams: NavParams, public qustCat: QuestionCategoryProvider, \n public aws: AwsServiceProvider, public toast: ToastProvider, public fb: FormBuilder, \n public constant: ConstantsProvider,private cameraProvider:CameraProvider,private loading:LoadingProvider)\n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.formDetails = this.navParams.get('formDetails');\n this.users = this.aws.getlocale();\n this.company_id = this.pdDetails.company_id;\n this.pdid = this.pdDetails.pd_id; \n this.qustCat.stockFormAccess(this.pdid, this.company_id).subscribe(data => {\n if (data.dataStatus == true) {\n this.initstockForm(data.record);\n }\n else if (data.dataStatus == false) {\n this.toast.pdTriggerappmessage('Fill Business Form First! / No Company Found at this ID ' + this.company_id);\n this.noRecordsFound = false;\n this.errorMessage = 'Fill Business Form First! / No Company Found at this ID' + this.company_id + '! ....';\n return;\n }\n else {\n this.toast.pdTriggerappmessage('Fill Business Form First! / No Company Found at this ID ' + this.company_id);\n this.noRecordsFound = false;\n this.errorMessage = 'Fill Business Form First! / No Company Found at this ID' + this.company_id + '! ....';\n return;\n }\n }, err => {\n this.toast.pdTriggerappmessage('Business Type Of Activity Not Available Please Check Business Information.!');\n this.noRecordsFound = false;\n this.errorMessage = 'No Records Found , Something went Wrong!';\n })\n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionStockInfoPage');\n this.getPDImages();\n }\n\n public initstockForm(record) {\n let api = Object.keys(record.from_business).map(function (key) {\n return record.from_business[key];\n });\n if (record.from_business.length > 0) {\n let type2 = record.from_business.filter(data => data.type_of_activity_id == 2);\n let type2length = type2[0].hasOwnProperty(\"products\") ? type2[0].products.length : 0;\n let type3 = record.from_business.filter(data => data.type_of_activity_id == 3);\n let type3length = type3[0].hasOwnProperty(\"products\") ? type3[0].products.length : 0;\n let type4 = record.from_business.filter(data => data.type_of_activity_id == 4);\n let type4length = type4[0].hasOwnProperty(\"products\") ? type4[0].products.length : 0;\n let type5 = record.from_business.filter(data => data.type_of_activity_id == 5);\n let type5length = type5[0].hasOwnProperty(\"products\") ? type5[0].products.length : 0;\n console.log('type5length',type5,type5length);\n\n\n let rm_api = record.from_supplier.hasOwnProperty(\"raw_material\") ? record.from_supplier.raw_material : [];\n\n let params: any = {};\n params.parent_pdid=this.pdDetails.parent_pd_id;\n params.pd_id = this.pdid;\n params.pd_form_id = this.formDetails.form_id;\n params.company_id = this.company_id;\n this.qustCat.retiverForm(params).subscribe(value => {\n if (value['status'] == 200) {\n let dataForm = value['records'];\n // dataForm.manufacturing_details.forEach(top=>{\n // top.manufacturing_finished_goods.forEach(below1=>{\n // below1.uomSearch=''\n // })\n // top.manufacturing_raw_materials.forEach(below2=>{\n // below2.uomSearch=''\n // })\n // })\n if (dataForm !== undefined) {\n this.stockForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n stock_remarks: [dataForm.stock_remarks],\n\n // is_sufficiant_raw:[dataForm.is_sufficiant_raw],\n // rawmaterial_remarks:[dataForm.rawmaterial_remarks],\n is_sufficiant_finished_and_traded_goods: [dataForm.is_sufficiant_finished_and_traded_goods],\n finished_and_traded_goods_remarks: [dataForm.finished_and_traded_goods_remarks],\n\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record,type2length)]),\n retail_details: this.fb.array([this.retailFormCreation(type3length)]),\n trade_details: this.fb.array([this.tradingFormCreation(type4length)]),\n servicing_details: this.fb.array([this.servicingFormCreation(type5length)]),\n is_sufficiant_service_goods: [dataForm.hasOwnProperty('is_sufficiant_service_goods') ? dataForm.is_sufficiant_service_goods : ''],\n service_goods_remarks: [dataForm.hasOwnProperty('service_goods_remarks') ? dataForm.service_goods_remarks : '' ]\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 2) {\n if (val.products) {\n // if(dataForm.manufacturing_details[0].manufacturing_finished_goods ){this.finishedAndTradedGoodsCommentCard = true;}\n let manufacturing_temparr = [];\n manufacturing_temparr['manufacturing_raw_materials'] = dataForm.manufacturing_details[0].manufacturing_raw_materials;\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue(dataForm.manufacturing_details[0].is_sufficiant_raw),\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['rawmaterial_remarks'].setValue(dataForm.manufacturing_details[0].rawmaterial_remarks);\n manufacturing_temparr['manufacturing_finished_goods'] = dataForm.manufacturing_details[0].manufacturing_finished_goods;\n this.initManufacturingDetails(manufacturing_temparr);\n }\n }\n if (val.type_of_activity_id == 3) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n let retail_temparr = [];\n retail_temparr['retail_traded_goods'] = dataForm.retail_details[0].retail_traded_goods;\n\n this.initRetailDetails(retail_temparr);\n }\n }\n if (val.type_of_activity_id == 4) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n let trading_temparr = [];\n trading_temparr['trading_traded_goods'] = dataForm.trade_details[0].trading_traded_goods;\n console.log(\"Trade\", trading_temparr)\n this.initTradingDetails(trading_temparr);\n }\n }\n if (val.type_of_activity_id == 5) {\n if (val.products) {\n // this.serviceProviderForm = true;\n let servicing_temparr = [];\n if(dataForm.hasOwnProperty('service_provider')){\n servicing_temparr['service_provider'] = dataForm.servicing_details[0].service_provider;\n this.initServicingDetails(servicing_temparr);\n }\n else{\n this.suppliers_service_providers = val.products;\n this.initServicingDetails(null); \n }\n }\n }\n });\n this.noRecordsFound = true;\n }\n }\n else {\n this.stockForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n stock_remarks: [''],\n // is_sufficiant_raw:[''],\n // rawmaterial_remarks:[''],\n is_sufficiant_finished_and_traded_goods: [''],\n finished_and_traded_goods_remarks: [''],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record,type2length)]),\n retail_details: this.fb.array([this.retailFormCreation(type3length)]),\n trade_details: this.fb.array([this.tradingFormCreation(type4length)]),\n servicing_details: this.fb.array([this.servicingFormCreation(type5length)]),\n is_sufficiant_service_goods: [''],\n service_goods_remarks: ['']\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 2) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_finished_goods = val.products;\n this.initManufacturingDetails(null);\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue(dataForm.manufacturing_details[0].is_sufficiant_raw.value || null),\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['rawmaterial_remarks'].setValue(dataForm.manufacturing_details[0].rawmaterial_remarks || null);\n }\n }\n if (val.type_of_activity_id == 3) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_retail_trade_details = val.products;\n this.initRetailDetails(null);\n }\n }\n if (val.type_of_activity_id == 4) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_wholesale_trade_details = val.products;\n this.initTradingDetails(null);\n }\n }\n if (val.type_of_activity_id == 5) {\n if (val.products) {\n \n this.suppliers_service_providers = val.products;\n this.initServicingDetails(null);\n // this.serviceProviderForm = true;\n }\n }\n });\n this.noRecordsFound = true;\n }\n }\n }\n else {\n console.log(\"Record\", record)\n this.stockForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n stock_remarks: [''],\n\n // is_sufficiant_raw:[''],\n // rawmaterial_remarks:[''],\n is_sufficiant_finished_and_traded_goods: [''],\n finished_and_traded_goods_remarks: [''],\n\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record,type2length)]),\n retail_details: this.fb.array([this.retailFormCreation(type3length)]),\n\n trade_details: this.fb.array([this.tradingFormCreation(type4length)]),\n servicing_details: this.fb.array([this.servicingFormCreation(type5length)]),\n \n is_sufficiant_service_goods: [''],\n service_goods_remarks: ['']\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 2) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_finished_goods = val.products;\n this.suppliers_raw_materials = rm_api;\n this.initManufacturingDetails(null);\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['is_sufficiant_raw'].setValue(null);\n this.stockForm.controls['manufacturing_details']['controls'][0].controls['rawmaterial_remarks'].setValue(null);\n }\n }\n if (val.type_of_activity_id == 3) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_retail_trade_details = val.products;\n this.initRetailDetails(null);\n }\n }\n if (val.type_of_activity_id == 4) {\n if (val.products) {\n // this.finishedAndTradedGoodsCommentCard = true;\n this.suppliers_wholesale_trade_details = val.products;\n this.initTradingDetails(null);\n }\n }\n if (val.type_of_activity_id == 5) {\n if (val.products) {\n this.suppliers_service_providers = val.products;\n this.initServicingDetails(null);\n // this.serviceProviderForm = true;\n }\n }\n });\n this.noRecordsFound = true;\n }\n }\n })\n }\n else {\n this.toast.pdTriggerappmessage('Fill Business Form First! / No Company Found at this ID ' + this.company_id);\n this.noRecordsFound = false;\n this.errorMessage = 'Fill Business Form First! / No Company Found at this ID' + this.company_id + '! ....';\n return;\n }\n }\n\n \n\n\n getdropdown() {\n this.qustCat.getcommondrop('UOM').subscribe(data => {\n if (data['dataStatus'] == true) {\n this.uomData = data['records'].filter(uom => uom.isactive == 1 && uom.is_land_uom == 0 || uom.is_land_uom == 2);\n this.uomDataValue=this.uomData.slice();\n }\n });\n }\n\n manufacturingForm: Boolean = false;\n manufacturingFormCreation(record,length) {\n let arr = record.from_business.filter(data => data.type_of_activity_id == 2);\n let rm_arr = record.from_supplier.hasOwnProperty(\"raw_material\") ? record.from_supplier.raw_material : [];\n //console.log(\"Manufacturing \",arr);\n //console.log(\"rm_arr\",rm_arr);\n if (length > 0) {\n this.manufacturingForm = true;\n return this.fb.group({\n is_sufficiant_raw: [],\n rawmaterial_remarks: [],\n manufacturing_raw_materials: this.fb.array([]),\n manufacturing_finished_goods: this.fb.array([]),\n })\n } else {\n return this.fb.group({\n is_sufficiant_raw: [],\n rawmaterial_remarks: [],\n manufacturing_raw_materials: this.fb.array([]),\n manufacturing_finished_goods: this.fb.array([]),\n })\n // return;\n }\n }\n\n retailForm: Boolean = false;\n retailFormCreation(val) {\n //let arr = val.filter(data => data.type_of_activity_id == 3);\n let arr = val\n // console.log(\"retail Form \", arr);\n if (arr > 0) {\n // if(arr.products != undefined){\n this.retailForm = true;\n return this.fb.group({\n retail_traded_goods: this.fb.array([])\n });\n // }else{\n // this.retailForm = false;\n // return;\n // } \n } else {\n return this.fb.group({\n retail_traded_goods: this.fb.array([])\n });\n // return;\n }\n }\n\n tradingForm: Boolean = false;\n tradingFormCreation(val) {\n let arr = val\n //let arr = val.filter(data => data.type_of_activity_id == 4);\n\n if (arr > 0) {\n\n // if(arr.products === undefined){\n\n // this.tradingForm = false;\n // return;\n // }\n this.tradingForm = true;\n return this.fb.group({\n trading_traded_goods: this.fb.array([])\n });\n } else {\n return this.fb.group({\n trading_traded_goods: this.fb.array([])\n });\n // return;\n }\n }\n\n servicingForm: Boolean = false;\n servicingFormCreation(val) {\n console.log('inside servicingFormCreation',val);\n let arr = val\n // let arr = val.filter(data => data.type_of_activity_id == 4);\n if (arr > 0){\n console.log('IF');\n this.servicingForm = true;\n return this.fb.group({\n service_provider: this.fb.array([])\n });\n } else {\n console.log('Else');\n return this.fb.group({\n service_provider: this.fb.array([])\n });\n }\n }\n\n\n initManufacturingDetails(datas) {\n const rawMaterial = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_raw_materials'];\n const finishedGoods = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_finished_goods'];\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n if (datas === null) {\n if (this.suppliers_raw_materials.length > 0) {\n this.suppliers_raw_materials.forEach(val => {\n let Ref_RawMaterials: any = {\n 'raw_name': val,\n 'stock_observed': '',\n 'raw_quantity': '',\n 'raw_uom': '',\n 'other_uom': '',\n 'raw_value': '',\n // 'is_sufficiant_raw': '',\n // 'rawmaterial_remarks': ''\n };\n rawMaterial.push(this.createRawmaterial(Ref_RawMaterials));\n });\n }\n else {\n rawMaterial.push(this.createRawmaterial(null));\n }\n if (this.suppliers_finished_goods.length > 0) {\n this.suppliers_finished_goods.forEach(val => {\n let Ref_Finished_Goods: any = {\n 'goods_name': val,\n 'goods_observed': '',\n 'goods_quantity': '',\n 'goods_uom': '',\n 'goods_other_uom': '',\n 'goods_value': '',\n // 'is_sufficiant_goods': '',\n // 'finishedgoods_remarks': ''\n };\n finishedGoods.push(this.createGoods(Ref_Finished_Goods));\n });\n }\n else {\n finishedGoods.push(this.createGoods(null));\n }\n } else {\n if (datas.manufacturing_raw_materials != undefined) {\n datas.manufacturing_raw_materials.forEach((val, index) => {\n if (val.raw_value) {\n this.inWords(val.raw_value, 1, index);\n }\n // this.checkComments(val.is_sufficiant_raw,1,index);\n this.checkComments(val.stock_observed, 1, index);\n rawMaterial.push(this.createRawmaterial(val));\n });\n }\n else {\n rawMaterial.push(this.createRawmaterial(null));\n }\n if (datas.manufacturing_finished_goods != undefined) {\n datas.manufacturing_finished_goods.forEach((val, index) => {\n if (val.goods_value) {\n this.inWords(val.goods_value, 2, index);\n }\n // this.checkComments(val.is_sufficiant_goods,2,index);\n this.checkComments(val.goods_observed, 2, index);\n finishedGoods.push(this.createGoods(val));\n\n });\n }\n else {\n finishedGoods.push(this.createGoods(null));\n }\n }\n }\n\n createRawmaterial(records) {\n if (records === null) {\n return this.fb.group({\n raw_name: [''],\n stock_observed: [''],\n raw_quantity: [''],\n raw_uom: [''],\n uomSearch:[null],\n other_uom: [''],\n raw_value: [''],\n // is_sufficiant_raw: [''],\n // rawmaterial_remarks: ['']\n })\n } else {\n return this.fb.group({\n raw_name: [records.raw_name],\n stock_observed: [records.stock_observed],\n raw_quantity: [records.raw_quantity],\n raw_uom: [records.raw_uom],\n uomSearch:[null],\n other_uom: [records.other_uom],\n raw_value: [records.raw_value],\n // is_sufficiant_raw: [records.is_sufficiant_raw],\n // rawmaterial_remarks: [records.rawmaterial_remarks]\n })\n }\n }\n\n initRetailDetails(datas) {\n const tradedGoods = this.stockForm.controls['retail_details']['controls'][0].controls['retail_traded_goods'];\n if (datas === null) {\n if (this.suppliers_retail_trade_details.length > 0) {\n // this.rawMaterialAccess = true;\n this.suppliers_retail_trade_details.forEach(val => {\n let Ref_Trade_Goods: any = {\n 'traded_goods_name': val,\n 'traded_goods_observed': '',\n 'traded_goods_quantity': '',\n 'traded_goods_uom': '',\n 'traded_goods_other_uom': '',\n 'estimated_traded_goods_value': '',\n // 'is_sufficiant_traded_goods': '',\n // 'traded_goods_remarks': ''\n };\n tradedGoods.push(this.createTradedGoods(Ref_Trade_Goods));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n } else {\n if (datas.retail_traded_goods !== undefined) {\n datas.retail_traded_goods.forEach((val, index) => {\n if (val.estimated_traded_goods_value) {\n this.inWords(val.estimated_traded_goods_value, 3, index);\n }\n // this.checkComments(val.is_sufficiant_traded_goods,3,index);\n this.checkComments(val.traded_goods_observed, 3, index);\n tradedGoods.push(this.createTradedGoods(val));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n }\n }\n\n\n createGoods(records) {\n if (records === null) {\n return this.fb.group({\n goods_name: [''],\n goods_observed: [''],\n goods_quantity: [''],\n goods_uom: [''],\n uomSearch:[null],\n goods_other_uom: [''],\n goods_value: [''],\n // is_sufficiant_goods: [''],\n // finishedgoods_remarks: ['']\n });\n }\n else {\n return this.fb.group({\n goods_name: [records.goods_name],\n goods_observed: [records.goods_observed],\n goods_quantity: [records.goods_quantity],\n goods_uom: [records.goods_uom],\n uomSearch:[null],\n goods_other_uom: [records.goods_other_uom],\n goods_value: [records.goods_value],\n // is_sufficiant_goods: [records.is_sufficiant_goods],\n // finishedgoods_remarks: [records.finishedgoods_remarks]\n })\n }\n }\n\n initTradingDetails(datas) {\n const tradedGoods = this.stockForm.controls['trade_details']['controls'][0].controls['trading_traded_goods'];\n if (datas === null) {\n if (this.suppliers_wholesale_trade_details.length > 0) {\n this.suppliers_wholesale_trade_details.forEach(val => {\n let Ref_Trade_Goods: any = {\n 'traded_goods_name': val,\n 'traded_goods_observed': '',\n 'traded_goods_quantity': '',\n 'traded_goods_uom': '',\n 'traded_goods_other_uom': '',\n 'estimated_traded_goods_value': '',\n // 'is_sufficiant_traded_goods': '',\n // 'traded_goods_remarks': ''\n };\n tradedGoods.push(this.createTradedGoods(Ref_Trade_Goods));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n\n } else {\n if (datas.trading_traded_goods !== undefined) {\n datas.trading_traded_goods.forEach((val, index) => {\n if (val.estimated_traded_goods_value) {\n this.inWords(val.estimated_traded_goods_value, 4, index);\n }\n // this.checkComments(val.is_sufficiant_traded_goods,4,index);\n this.checkComments(val.traded_goods_observed, 4, index);\n tradedGoods.push(this.createTradedGoods(val));\n });\n }\n else {\n tradedGoods.push(this.createTradedGoods(null));\n }\n }\n }\n\n createTradedGoods(records) {\n if (records === null) {\n return this.fb.group({\n traded_goods_name: [''],\n traded_goods_observed: [''],\n traded_goods_quantity: [''],\n traded_goods_uom: [''],\n uomSearch:[null],\n traded_goods_other_uom: [''],\n estimated_traded_goods_value: [''],\n // is_sufficiant_traded_goods: [''],\n // traded_goods_remarks: ['']\n });\n }\n else {\n return this.fb.group({\n traded_goods_name: [records.traded_goods_name],\n traded_goods_observed: [records.traded_goods_observed],\n traded_goods_quantity: [records.traded_goods_quantity],\n traded_goods_uom: [records.traded_goods_uom],\n uomSearch:[null],\n traded_goods_other_uom: [records.traded_goods_other_uom],\n estimated_traded_goods_value: [records.estimated_traded_goods_value],\n // is_sufficiant_traded_goods: [records.is_sufficiant_traded_goods],\n // traded_goods_remarks: [records.traded_goods_remarks]\n })\n }\n }\n\n\n initServicingDetails(datas) {\n const service = this.stockForm.controls['servicing_details']['controls'][0].controls['service_provider'];\n if (datas === null) {\n \n if (this.suppliers_service_providers.length > 0) {\n this.suppliers_service_providers.forEach(val => {\n let Serv_Prov_Goods: any = {\n 'service_provider_name': val,\n 'service_provider_observed': '',\n 'service_provider_quantity': '',\n 'service_provider_uom': '',\n 'service_provider_other_uom': '',\n 'estimated_service_provider_value': ''\n }\n\n service.push(this.createServiceProvider(Serv_Prov_Goods));\n });\n }\n else {\n service.push(this.createServiceProvider(null));\n }\n } else {\n if (datas.service_provider !== undefined) {\n datas.service_provider.forEach((val, index) => {\n if (val.estimated_service_provider_value) {\n this.inWords(val.estimated_service_provider_value, 5, index);\n }\n this.checkComments(val.service_provider_observed, 5, index);\n service.push(this.createServiceProvider(val));\n \n });\n }\n else {\n service.push(this.createServiceProvider(null));\n }\n }\n }\n\n createServiceProvider(records) {\n \n if (records === null) {\n \n return this.fb.group({\n service_provider_name: [''],\n service_provider_observed: [''],\n service_provider_quantity: [''],\n service_provider_uom: [''],\n uomSearch:[null],\n service_provider_other_uom: [''],\n estimated_service_provider_value: [''],\n // traded_goods_value: [''],\n });\n }\n else {\n \n return this.fb.group({\n service_provider_name: [records.service_provider_name],\n service_provider_observed: [records.service_provider_observed],\n service_provider_quantity: [records.service_provider_quantity],\n service_provider_uom: [records.service_provider_uom],\n uomSearch:[null],\n service_provider_other_uom: [records.service_provider_other_uom],\n estimated_service_provider_value: [records.estimated_service_provider_value],\n // traded_goods_value: [records.traded_goods_value],\n\n })\n }\n }\n\n /** Manufacturing -> To Add More Raw Material Details */\n addRawMaterials(flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_raw_materials'];\n control.push(this.createRawmaterial(null));\n }\n }\n\n /** Manufacturing -> To Remove Raw Material Details */\n deleteRawMaterials(index, flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_raw_materials'];\n control.removeAt(index);\n }\n }\n\n /** Manufacturing -> To Add More Finished Goods */\n addGoods(flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_finished_goods'];\n control.push(this.createGoods(null));\n }\n }\n\n /** Manufacturing -> To Remove Finished Goods */\n deleteGoods(index, flag) {\n if (flag == 1) {\n const control = this.stockForm.controls['manufacturing_details']['controls'][0].controls['manufacturing_finished_goods'];\n control.removeAt(index);\n }\n }\n\n /**\n * Case 1 Retail Traded -> To Add More trade Goods\n * Case 2 wholesale Traded -> To Add More trade Goods\n */\n addTradedGoods(flag) {\n switch (flag) {\n case 1: {\n const control = this.stockForm.controls['retail_details']['controls'][0].controls['retail_traded_goods'];\n control.push(this.createTradedGoods(null));\n break;\n }\n case 2: {\n const control = this.stockForm.controls['trade_details']['controls'][0].controls['trading_traded_goods'];\n control.push(this.createTradedGoods(null));\n break;\n }\n case 3: {\n const control = this.stockForm.controls['servicing_details']['controls'][0].controls['service_provider'];\n control.push(this.createServiceProvider(null));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /**\n * Case 1 Retail Traded -> To remove trade Goods\n * Case 2 wholesale Traded -> To remove trade Goods\n */\n deleteTradedGoods(index, flag) {\n switch (flag) {\n case 1: {\n const control = this.stockForm.controls['retail_details']['controls'][0].controls['retail_traded_goods'];\n control.removeAt(index);\n break;\n }\n case 2: {\n const control = this.stockForm.controls['trade_details']['controls'][0].controls['trading_traded_goods'];\n control.removeAt(index);\n break;\n }\n case 3: {\n const control = this.stockForm.controls['servicing_details']['controls'][0].controls['service_provider'];\n control.removeAt(index);\n break;\n }\n default: {\n break;\n }\n }\n\n //const control = this.stockForm.controls['traded_goods'];\n\n }\n\n ManufacturingCounterArray: any = [];\n FinishedCounterArray: any = [];\n RetailCounterArray: any = [];\n WholeSaleCounterArray: any = [];\n ServiceCounterArray: any = [];\n\n not_stock_of_rm: any = [];\n not_stock_of_fg: any = [];\n not_stock_of_tg: any = [];\n not_stock_of_ws: any = [];\n not_stock_of_sp: any = [];\n\n checkComments(value, flag, index) {\n \n if (flag == 1) {\n \n this.ManufacturingCounterArray[index] = value != \"\" ? 1 : 0;\n this.not_stock_of_rm[index] = value == \"yes\" ? 1 : 0;\n\n let RMOverallCount = this.ManufacturingCounterArray.reduce((sum, val) => sum + +val, 0);\n this.RMCommentCard = RMOverallCount > 0 ? true : false;\n\n let not_stock1 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0);\n console.log('value',value);\n console.log('not_stock1',not_stock1);\n if(not_stock1 > 0){ \n console.log('not_stock1',not_stock1);\n this.RMsufficientList[0].disabled = false;\n this.RMsufficientList[2].disabled = true;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');\n }\n else if(not_stock1 == 0){ \n console.log('0',not_stock1);\n this.RMsufficientList[0].disabled = true;\n this.RMsufficientList[2].disabled = false;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');\n }\n console.log('this.RMsufficientList',this.RMsufficientList);\n }\n \n if(flag == 2) {\n this.FinishedCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_fg[index] = value == \"yes\" ? 1 : 0;\n }\n if (flag == 3) {\n this.RetailCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_tg[index] = value == \"yes\" ? 1 : 0;\n }\n if (flag == 4) {\n this.WholeSaleCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_ws[index] = value == \"yes\" ? 1 : 0;\n }\n if (flag == 5) {\n console.log('adf');\n this.ServiceCounterArray[index] = value != \"\" ? 1 : 0\n this.not_stock_of_sp[index] = value == \"yes\" ? 1 : 0;\n\n let SPOverallCount = this.ServiceCounterArray.reduce((sum, val) => sum + +val, 0);\n this.SPCommentCard = SPOverallCount > 0 ? true : false;\n\n let not_stock3 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0);\n \n if(not_stock3 > 0){ \n \n this.SPsufficientList[0].disabled = false;\n this.SPsufficientList[2].disabled = true;\n \n }\n else if(not_stock3 == 0){ \n \n this.SPsufficientList[0].disabled = true;\n this.SPsufficientList[2].disabled = false;\n \n }\n \n }\n let FGOverallCount = this.FinishedCounterArray.reduce((sum, val) => sum + +val, 0);\n let RTGOverallCount = this.RetailCounterArray.reduce((sum, val) => sum + +val, 0);\n let WTGOverallCount = this.WholeSaleCounterArray.reduce((sum, val) => sum + +val, 0);\n let TGOverallCount = FGOverallCount + RTGOverallCount + WTGOverallCount;\n this.TGCommentCard = TGOverallCount > 0 ? true : false;\n\n let not_stock_fg = this.not_stock_of_fg.reduce((sum, val) => sum + +val, 0);\n let not_stock_ws = this.not_stock_of_ws.reduce((sum, val) => sum + +val, 0);\n let not_stock_tg = this.not_stock_of_tg.reduce((sum, val) => sum + +val, 0);\n let not_stock2 = not_stock_fg + not_stock_ws + not_stock_tg;\n console.log('not_stock2',not_stock2);\n if(not_stock2 > 0){ \n console.log('not_stock2',not_stock2);\n this.TGsufficientList[0].isdisabled = false;\n this.TGsufficientList[2].isdisabled = true;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('');\n }\n else if(not_stock2 == 0){ \n console.log('0',not_stock2);\n this.TGsufficientList[0].isdisabled = true;\n this.TGsufficientList[2].isdisabled = false;\n // this.stockForm.controls['is_sufficiant_finished_and_traded_goods'].setValue('not applicable');\n }\n console.log('Data',this.TGsufficientList);\n // else if(not_stock == 0){ \n // this.stockForms.controls['is_sufficiant_finished_and_traded_goods'].setValue('');\n // }\n \n }\n\n\n /** To Save/Edited Popup Data */\n saveStockInfo(answerFormValues) {\n //To Remove The \"Null\" With Key also\n // if(answerFormValues.manufacturing_details){\n // answerFormValues.manufacturing_details.forEach(parent=>{\n // if(parent.manufacturing_finished_goods){\n // parent.manufacturing_finished_goods.forEach(finish_goods=>{\n // delete finish_goods.uomSearch\n // })\n // }\n // if(parent.manufacturing_raw_materials){\n // parent.manufacturing_raw_materials.forEach(raw_mat=>{\n // delete raw_mat.uomSearch\n // })\n // }\n // })\n // }\n Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);\n this.qustCat.saveForm(answerFormValues).subscribe(responsed => {\n if (responsed['status'] == 200) {\n this.stockForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(() => {\n this.navCtrl.pop();\n }, 2000);\n } else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n });\n }\n\n inWords(e, flag: number, i) {\n switch (flag) {\n case 1:\n this.M_rawValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 2:\n this.M_goodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 3:\n this.R_tradedGoodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 4:\n this.T_tradedGoodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n case 5:\n this.S_GoodsValueInWords[i] = this.constant.convertNumberToWords(e);\n break;\n \n default:\n break;\n }\n }\n searchFun(control,index){\n console.log(\"control\",control.controls['uomSearch'].value)\n control.controls['uomSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.uomDataValue=this.constant.searchData(this.uomData,control.controls['uomSearch'].value,'')\n })\n \n }\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts","import { Component,ViewEncapsulation } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {AwsServiceProvider} from '../../../../providers/aws-service/aws-service'\nimport {ToastProvider} from '../../../../providers/common-provider/toast'\nimport {QuestionCategoryProvider} from '../../../../providers/question-category/question-category'\nimport { FormGroup,Validators,FormBuilder, FormArray, FormControl } from '@angular/forms'\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionFinancialInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-financial-info',\n templateUrl: 'pd-question-financial-info.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class PdQuestionFinancialInfoPage {\n \n public financialForm: FormGroup;\n\n pdDetails:any;\n FormId:any;\n users:any;\n company_id:any;\n isDisplay:boolean;\n product_abbr: any;\n lender_short_name : any;\n customerCommentsFlag:boolean;\n FY_annualSalesInwords: any =[]\n FY_netProfitAmtInwords: any=[]\n FY_netLossAmtInwords: any=[]\n AV_annualSalesInwords: any=[]\n AV_netProfitAmtInwords: any=[]\n AV_netLossAmtInwords: any=[]\n AV_netProfitAmtFrmInwords: any=[]\n AV_netProfitAmtToInwords: any=[]\n AV_netLossAmtFrmInwords: any=[]\n AV_netLossAmtToInwords: any=[]\n AV_SalesFrmInwords: any=[]\n AV_SalesToInwords: any=[]\n AV_SalesInwords: any=[];\n AV_marginProfitAmtInwords: any=[];\n AV_marginLossAmtInwords: any=[];\n AV_CCAnnualSalesAmtInwords:any = [];\n formDetails: any;\n CustSegAbbr:any;\n temparray : any = [];\n picsArrayLength :any = 0;\n ServiceDataAvailability:boolean = false;\n\n av : any =[{id:6, name:'Letter of Credit'},\n {id:2, name:'Bank Guarantee'},\n {id:3, name:'Cash Credit Limit'},\n {id:7, name:'OD Limit'},\n {id:4, name:'Factoring'},\n {id:5, name:'Forfaiting'},\n {id:1, name:'Others'}]\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,\n public toast:ToastProvider, public qustCat:QuestionCategoryProvider,\n public fb:FormBuilder,public cons:ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.formDetails=this.navParams.get('formDetails');\n this.FormId = this.formDetails.form_id;\n // this.FormId=this.navParams.get('FormId');\n this.company_id=this.pdDetails.company_id\n this.users=this.aws.getlocale();\n let x = this.pdDetails.customer_segment_abbr.split(\"-\");\n this.CustSegAbbr=x[1]\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n this.initFinancialForm()\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id, this.company_id).subscribe(data => {\n if (data.dataStatus) { \n if(data.records.type_of_activity.length == 1){\n let bussiness_service_datas = data.records.type_of_activity.filter(data => { if (data.type_of_activity_id == 5) { return data } }).map(data => [...data.prodcuts]);\n this.ServiceDataAvailability = bussiness_service_datas.length>0 ? true : false;\n if(this.ServiceDataAvailability == true){\n this.financialForm.controls['unsold_stock_lies_in_days'].setValue('NA');\n }else{\n this.financialForm.controls['unsold_stock_lies_in_days'].setValue('');\n }\n }\n else{\n this.ServiceDataAvailability = false;\n }\n }\n })\n // console.log(\"ld\",this.financialForm.controls['estimated_value'])\n // if(this.financialForm.controls['estimated_value']['controls'].length>0){\n // console.log(this.financialForm.controls['estimated_value']['controls'][0].controls)\n // const estime_value=this.financialForm.controls['estimated_value']['controls'][0].controls['estimate_sales_average']\n // console.log(estime_value)\n // estime_value.valueChanges.subscribe(res=>{\n // console.log(\"changes\",res);\n // })\n//}\n\n//To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionFinancialInfoPage');\n this.getDetails()\n this.getPDImages();\n }\n\n AllCalculation(control,index){\n console.log(\"all\",control)\n if(control.controls['estimate_profit_or_loss'].value == 1 && control.controls['estimate_net_margin_availablity'].value =='yes'){\n if(control.controls['estimate_profit_range_from'].value != '' && control.controls['estimate_profit_range_to'].value != ''){\n console.log(\"calculate marginP\")\n this.calculateMarginProfit(index,control)\n }\n }\n if(control.controls['estimate_profit_or_loss'].value == 1 && control.controls['estimate_net_margin_availablity'].value =='no'){\n if(control.controls['estimate_net_profit_from'].value != '' && control.controls['estimate_net_profit_to'].value != ''){\n console.log(\"calculate Profit \")\n this.calculateProfitAmount(index,control)\n }\n }\n if(control.controls['estimate_profit_or_loss'].value == 2 && control.controls['estimate_net_margin_availablity'].value =='yes'){\n if(control.controls['estimate_loss_range_from'].value != '' && control.controls['estimate_loss_range_to'].value != ''){\n console.log(\"calculate marginL\")\n this.calculateMarginLoss(index,control)\n }\n }\n if(control.controls['estimate_profit_or_loss'].value == 2 && control.controls['estimate_net_margin_availablity'].value =='no'){\n if(control.controls['estimate_net_loss_from'].value != '' && control.controls['estimate_net_loss_to'].value != ''){\n console.log(\"calculate Loss\")\n this.calculateLossAmount(index,control)\n }\n }\n }\n selectedStatement(e :any):void{\n\n if(e == 'yes'){\n\n this.isDisplay = true;\n this.financialForm.controls['is_financial_customer'].setValue('');\n \n }\n else if(e == 'no'){\n\n this.isDisplay = false;\n this.financialForm.controls['is_financial_customer'].setValue('no');\n // this.selectedFinancialCustomer('no');\n \n const statementControl = this.financialForm.controls['date_per_financial'];\n \n while (statementControl.length !== 0) {\n statementControl.removeAt(0);\n }\n const control = this.financialForm.controls['estimated_value'];\n control.push(this.createValue('')); \n this.financialForm.controls['financial_starting_year'].setValue('');\n this.financialForm.controls['financial_no_of_year'].setValue('');\n\n // alert((new Date()).getFullYear());\n // let year1 = (new Date()).getFullYear();\n // let year2 = ((new Date()).getFullYear() + 1); \n // let Year = year1 +'-'+ year2;\n \n }\n\n}\n /** fin customer data from Fin statement*/\n selectedFinancialCustomer(e: any): void {\n if(e == 'yes'){\n const control = this.financialForm.controls['estimated_value'];\n\n while (control.length !== 0) {\n control.removeAt(0);\n }\n }\n else if (e == 'no'){\n const control = this.financialForm.controls['estimated_value'];\n control.push(this.createValue('')); \n }\n }\n\n selectedProfitOrLossType(e,detail){\n \n if(e.value == 1){\n detail.controls.financial_net_loss.setValue('');\n detail.controls.financial_margin_of_loss.setValue('');\n }\n else if(e.value == 2){\n detail.controls.financial_net_profit.setValue('');\n detail.controls.financial_margin_of_profit.setValue('');\n }\n}\n\n\n /** For Auto-generating FinYear */\n dynamicalFinYear($event){\n \n // let e = $event.target.value;\n let e =this.financialForm.controls['financial_no_of_year'].value\n if(e != null && e != ''){\n if(e == 1){\n this.customerCommentsFlag = false;\n }\n else{\n this.customerCommentsFlag = true;\n }\n\n let startingYear = this.financialForm.controls['financial_starting_year'].value;\n\n const control = this.financialForm.controls['date_per_financial'];\n\n while (control.length !== 0) {\n control.removeAt(0);\n }\n\n if(e > 0 ){\n for(let i = 1 ; i<= e ; i++ ){\n let Year = (+startingYear+(i-1)) +'-'+ ((+startingYear)+(+i));\n control.push(this.createDate(Year));\n }\n }\n}\n }\n\n\n initFinancialForm(){\n this.financialForm = this.fb.group({\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid: this.pdDetails.pd_id,\n formid: this.FormId,\n company_id: this.company_id,\n fk_createdby: this.users,\n financial_remarks: [''],\n is_financial_statements:[''],\n is_financial_customer:[''],\n financial_starting_year : ['',Validators.compose([Validators.minLength(4),Validators.maxLength(4)])],\n financial_no_of_year : [''],\n financial_reason: [''],\n financial_customer:[''],\n receive_the_money_in_days:[''],\n pay_the_money_in_days:[''],\n unsold_stock_lies_in_days:[''],\n is_there_working_capital_available:[''],\n working_capital_facilities_availed:[''],\n // reason_for_working_capital_facilities_availed:[''],\n // same_as_financial_statements:[''],\n date_per_financial: this.fb.array([]),\n estimated_value: this.fb.array([]),\n select_working_capital_facilities_availed : this.fb.array([])\n });\n }\n createDate(date){\n return this.fb.group({\n financial_year: [date, Validators.compose([Validators.pattern(/^[0-9]{4}-[0-9]{2}$/)])],\n financial_annual_sale: ['', Validators.compose([Validators.pattern(/^[0-9\\(\\)]+$/)])],\n finanical_profit_or_loss:[''],\n financial_net_profit: ['', Validators.compose([Validators.pattern(/^-?[1-9]\\d*|0$/)])],\n financial_net_loss: ['', Validators.compose([Validators.pattern(/^-?[1-9]\\d*|0$/)])],\n financial_margin_of_profit: [''],\n financial_margin_of_loss: [''],\n financial_variation: [''],\n financial_profit_to_sale_variation:[''],\n financial_annualsales_variation : [''],\n })\n }\n /** CREATING financial Customer ( financial_year AutoGenerate ) */\n createValue(date) {\n return this.fb.group({\n \n // estimate_year: ['', Validators.compose([Validators.pattern(/^[0-9]{4}-[0-9]{2}$/)])],\n estimate_sales_from: [''],\n estimate_sales_to: [''],\n estimate_sales_average: [''],\n estimate_profit_or_loss:[''],\n estimate_net_margin_availablity:[''],\n estimate_profit_range_from:[''],\n estimate_profit_range_to:[''],\n estimate_profit_margin_percent:[''],\n estimate_profit_margin:[''],\n estimate_net_profit_from:[''],\n estimate_net_profit_to:[''],\n estimate_net_profit_percent:[''],\n estimate_net_profit:[''],\n estimate_loss_range_from:[''],\n estimate_loss_range_to:[''],\n estimate_loss_margin_percent:[''],\n estimate_loss_margin:[''],\n estimate_net_loss_from:[''],\n estimate_net_loss_to:[''],\n estimate_net_loss_percent:[''],\n estimate_net_loss:[''],\n estimate_reason_for_loss:[''],\n estimate_posmachine_or_cc_annual_sales:[''],\n // estimate_receive_the_money_in_days:[''],\n // estimate_pay_the_money_in_days:[''],\n // estimate_unsold_stock_lies_in_days:[''],\n // estimate_working_capital_facilities_availed:[''],\n // reason_for_working_capital_facilities_availed:[''],\n // is_there_working_capital_available:['']\n\n });\n}\nsubmitDetails(){\n if(this.CustSegAbbr == 'AI'){ \n this.financialForm.removeControl('estimated_value');\n this.financialForm.controls['is_financial_customer'].setValue('');\n } \n if(this.financialForm.value.date_per_financial['finanical_profit_or_loss'] == 1){\n \n this.financialForm.value.date_per_financial['financial_net_profit'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_net_profit'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_net_loss'].clearValidators();\n this.financialForm.value.date_per_financial['financial_net_loss'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_margin_of_profit'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_margin_of_profit'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_margin_of_loss'].clearValidators();\n this.financialForm.value.date_per_financial['financial_margin_of_loss'].updateValueAndValidity();\n \n }else if(this.financialForm.value.date_per_financial['finanical_profit_or_loss'] == 2) {\n \n this.financialForm.value.date_per_financial['financial_net_profit'].clearValidators();\n this.financialForm.value.date_per_financial['financial_net_profit'].updateValueAndValidity(); \n \n this.financialForm.value.date_per_financial['financial_net_loss'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_net_loss'].updateValueAndValidity();\n \n this.financialForm.value.date_per_financial['financial_margin_of_profit'].clearValidators();\n this.financialForm.value.date_per_financial['financial_margin_of_profit'].updateValueAndValidity(); \n \n this.financialForm.value.date_per_financial['financial_margin_of_loss'].setValidators([Validators.required]);\n this.financialForm.value.date_per_financial['financial_margin_of_loss'].updateValueAndValidity();\n \n}\n let records=this.financialForm.value;\n\n if(records.is_financial_statements == 'yes' && this.picsArrayLength == 0){\n this.toast.pdTriggerappmessage(\"Photos of Finanical Statements are Required\");\n return;\n }\n \n records.select_working_capital_facilities_availed = records.select_working_capital_facilities_availed.filter(value => value.exist_status == 1);\n if(records.is_there_working_capital_available == \"no\"){\n records.select_working_capital_facilities_availed = [];\n if(records.bank_guarantee) delete records.bank_guarantee ;\n if(records.cash_credit_limit) delete records.cash_credit_limit;\n if(records.factoring) delete records.factoring;\n if(records.forfaiting) delete records.forfaiting;\n if(records.letter_of_credit) delete records.letter_of_credit;\n if(records.od_limit) delete records.od_limit;\n if(records.other_reason_for_working_capital_facilities_availed) delete records.other_reason_for_working_capital_facilities_availed ;\n if(records.reason_for_working_capital_facilities_availed) delete records.reason_for_working_capital_facilities_availed ;\n }\n \n this.qustCat.saveForm(records).subscribe(res=>{\n if(res['status']== 200){\n this.financialForm.markAsUntouched();\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Warning !! Something went Wrong\");\n }\n },err=>{\n this.toast.pdTriggerappmessage(\"Server is not Responding\");\n })\n}\n getDetails(){\n const financeDate=this.financialForm.controls['date_per_financial']\n //financeDate.push(this.createDate(''))\n const estimate= this.financialForm.controls['estimated_value']\n //estimate.push(this.createValue(''))\n const workingCptlControl = this.financialForm.controls['select_working_capital_facilities_availed'];\n\n let params:any={}\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id\n params.pd_form_id=this.FormId\n params.company_id=this.company_id\n this.qustCat.retiverForm(params).subscribe(value=>{\n\n if(value['dataStatus']==true){\n let retrieveData=value['records'];\n // Financial part 1 : Date \n if(value['records'].is_financial_statements == 'yes'){\n this.isDisplay = true;\n let result=Object.keys(value['records'].date_per_financial).map(function(key) {\n return value['records'].date_per_financial[key]\n })\n if(result.length>0){\n this.customerCommentsFlag=result.length == 1 ? false : true\n result.forEach((val,index)=>{\n this.FY_annualSalesInwords[index]=this.cons.convertNumberToWords(val.financial_annual_sale);\n this.FY_netProfitAmtInwords[index]=this.cons.convertNumberToWords(val.financial_net_profit);\n this.FY_netLossAmtInwords[index]=this.cons.convertNumberToWords(val.financial_net_loss)\n financeDate.push(this.createDate(''));\n });\n retrieveData.date_per_financial=result;\n }\n else{\n financeDate.push(this.createDate(''))\n }\n }\n\n // Financial part 2 : based on Customersegment we have to Fetch The Estimate Value.\n\n if(this.CustSegAbbr != 'AI'){\n \n if(value['records'].is_financial_customer == 'no'){\n let result_val=Object.keys(value['records'].estimated_value).map(function(key){\n return value['records'].estimated_value[key]\n });\n if(result_val.length>0){\n result_val.forEach((val,index)=>{\n this.AV_SalesInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_sales_average));\n this.AV_SalesFrmInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_sales_from));\n this.AV_SalesToInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_sales_to));\n this.AV_marginProfitAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_profit_margin));\n this.AV_netProfitAmtFrmInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_profit_from));\n this.AV_netProfitAmtToInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_profit_to));\n this.AV_netProfitAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_profit));\n this.AV_marginLossAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_loss_margin));\n this.AV_netLossAmtFrmInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_loss_from));\n this.AV_netLossAmtToInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_loss_to));\n this.AV_netLossAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_net_loss));\n this.AV_CCAnnualSalesAmtInwords[index] = this.cons.convertNumberToWords(Math.round(val.estimate_posmachine_or_cc_annual_sales));\n estimate.push(this.createValue(''))\n });\n retrieveData.estimated_value=result_val;\n }\n else{\n estimate.push(this.createValue(''));\n }\n }\n }\n else if(this.CustSegAbbr == 'AI'){\n retrieveData.estimated_value = [];\n }\n\n retrieveData.parent_pdid=this.pdDetails.parent_pd_id\n retrieveData.pdid=this.pdDetails.pd_id\n retrieveData.company_id=this.company_id\n retrieveData.fk_createdby=this.users\n retrieveData.formid=this.FormId\n\n let avData = this.av.map(item => ({ name: item.name, id: item.id }))\n let exist_av_data: any = [];\n\n if (retrieveData.select_working_capital_facilities_availed) {\n exist_av_data = Object.keys(retrieveData.select_working_capital_facilities_availed).map(function (key) {\n return retrieveData.select_working_capital_facilities_availed[key].id;\n });\n }\n \n let actual_av = avData.map(item => item.id);\n \n let check_exist_av = actual_av.map((id, index) => {\n if (exist_av_data.indexOf(id) < 0) {\n avData[index].exist_status = 0;\n return avData[index];\n }\n else {\n avData[index].exist_status = 1;\n return avData[index];\n }\n }).filter(item => item != undefined);\n \n if (check_exist_av.length > 0) {\n check_exist_av.forEach(val => {\n workingCptlControl.push(this.workingCptl(val));\n\n if (val.exist_status == 1 && val.id == 2) {\n this.financialForm.addControl('bank_guarantee', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 3) {\n this.financialForm.addControl('cash_credit_limit', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 4) {\n this.financialForm.addControl('factoring', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 5) {\n this.financialForm.addControl('forfaiting', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 6) {\n this.financialForm.addControl('letter_of_credit', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 7) {\n this.financialForm.addControl('od_limit', new FormControl(''));\n }\n if (val.exist_status == 1 && val.id == 1) {\n this.financialForm.addControl('other_reason_for_working_capital_facilities_availed', new FormControl(''));\n this.financialForm.addControl('reason_for_working_capital_facilities_availed', new FormControl(''));\n }\n \n });\n \n retrieveData.select_working_capital_facilities_availed = check_exist_av;\n }\n\n this.financialForm.setValue(retrieveData)\n\n if(this.ServiceDataAvailability == false && retrieveData.unsold_stock_lies_in_days == 'NA' ){\n this.financialForm.controls['unsold_stock_lies_in_days'].setValue('');\n }\n\n }\n else {\n console.log('didN`T get the api');\n let avData = this.av.map(item => ({ name: item.name, id: item.id }))\n let exist_av_data: any = [];\n\n let actual_av = avData.map(item => item.id);\n let check_exist_av = actual_av.map((id, index) => {\n if (exist_av_data.indexOf(id) < 0) {\n avData[index].exist_status = 0;\n return avData[index];\n }\n else {\n avData[index].exist_status = 1;\n return avData[index];\n }\n }).filter(item => item != undefined);\n\n if (check_exist_av.length > 0) {\n check_exist_av.forEach(val => {\n workingCptlControl.push(this.workingCptl(val));\n });\n }\n //financial_date.push(this.createDate());\n //estimated_val.push(this.createValue(''));\n }\n })\n }\n\n workingCptl(details: any): FormGroup {\n return this.fb.group({\n id: [details.id, Validators.compose([Validators.required])],\n name: [details.name, Validators.compose([Validators.required])],\n exist_status: [details.exist_status == 1 ? true : false]\n });\n }\n\n changeWorkingCapitalFacilities(event: any) {\n \n if (event.value.exist_status == true && event.value.id == 2) {\n console.log('event.value.exist_status == true && event.value.id == 2',event.value.exist_status,event.value.id)\n\n this.financialForm.removeControl('bank_guarantee');\n }\n else if (event.value.exist_status == false && event.value.id == 2) {\n console.log('event.value.exist_status == true && event.value.id == 2',event.value.exist_status,event.value.id)\n this.financialForm.addControl('bank_guarantee', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 3) {\n this.financialForm.removeControl('cash_credit_limit');\n }\n else if (event.value.exist_status == false && event.value.id == 3) {\n this.financialForm.addControl('cash_credit_limit', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 4) {\n this.financialForm.removeControl('factoring');\n }\n else if (event.value.exist_status == false && event.value.id == 4) {\n this.financialForm.addControl('factoring', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 5) {\n this.financialForm.removeControl('forfaiting');\n }\n else if (event.value.exist_status == false && event.value.id == 5) {\n this.financialForm.addControl('forfaiting', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 6) {\n this.financialForm.removeControl('letter_of_credit');\n }\n else if (event.value.exist_status == false && event.value.id == 6) {\n this.financialForm.addControl('letter_of_credit', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 7) {\n this.financialForm.removeControl('od_limit');\n }\n else if (event.value.exist_status == false && event.value.id == 7) {\n this.financialForm.addControl('od_limit', new FormControl(''));\n }\n if (event.value.exist_status == true && event.value.id == 1) {\n this.financialForm.removeControl('other_reason_for_working_capital_facilities_availed');\n this.financialForm.removeControl('reason_for_working_capital_facilities_availed');\n }\n else if (event.value.exist_status == false && event.value.id == 1) {\n this.financialForm.addControl('other_reason_for_working_capital_facilities_availed', new FormControl(''));\n this.financialForm.addControl('reason_for_working_capital_facilities_availed', new FormControl(''));\n }\n\n // if(event.value.exist_status==true && event.value.id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.controls = [];\n // othersControl.setValue([]);\n // }\n // else if(event.value.exist_status==false && event.value.id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.push(this.createOthersActivity());\n // }\n // check activity type for make dosument sighted filed dynamically\n}\n\n /**\n * New Calculation for Finanical Statement \n **/\n calculationForFinanicalStatement(){\n \n let parentArray = this.financialForm.controls['date_per_financial'];\n // let prev_annual_sale : any = '';\n // let prev_profit_margin : any = '';\n // let prev_loss_margin : any = '';\n // let prev_profit_amt : any = '';\n // let prev_loss_amt : any = '';\n // let profit_margin : any = '';\n // let loss_margin : any = '';\n // let annual_sale : any = '';\n // let profit_amt : any = '';\n // let loss_amt : any = '';\n let prev_annual_sale : any = '';\n let prev_profit_margin : any = [];\n let prev_loss_margin : any = [];\n let prev_profit_amt : any = '';\n let prev_loss_amt : any = '';\n let profit_margin : any = '';\n let loss_margin : any = '';\n let annual_sale : any = '';\n let profit_amt : any = '';\n let loss_amt : any = '';\n\n parentArray.value.forEach((val,index) => {\n\n let childArray : any = parentArray.controls[index];\n annual_sale = val.financial_annual_sale;\n \n /** Calculating Sale Variation Based on Prev.Year ( Datas returns in percentage ) \n * Explaination : Comparing Curr.Year annual sales and Prev.year annual sales\n * Label name : \" Sale Variation from Previous Year in % \"\n */\n \n if (index != 0) { \n if(annual_sale != ''){\n let annual_sale_variation = (( annual_sale - prev_annual_sale)/prev_annual_sale) * 100 ;\n let final_annual_sale_variation = (annual_sale_variation!= Infinity) ? !(Number.isNaN(annual_sale_variation)) ? annual_sale_variation.toFixed(2): 0.00 : 0.00;\n childArray.controls.financial_annualsales_variation.setValue(final_annual_sale_variation);\n }\n }\n else{\n childArray.controls.financial_annualsales_variation.setValue(0.00);\n }\n \n\n prev_annual_sale = annual_sale;\n /******************************************** Calculation Sale Variation ends Here ******************************************************************************************************/\n\n\n profit_amt = val.financial_net_profit;\n loss_amt = val.financial_net_loss;\n\n /** Calculating Profit's Variation - STARTS HERE\n * Explaination : Comparing Curr.Year Net Profit (or) Loss Amount With Prev.year Net Profit (or) Loss Amount\n * Label name : \"Profit Variation from Previous Year in %\"\n */\n if((profit_amt != '' || loss_amt != '') && index != 0) {\n if(+profit_amt > +annual_sale){\n childArray.controls.financial_margin_of_profit.setValue('');\n } \n else{\n loss_amt = val.financial_net_loss != 0 ? val.financial_net_loss * (-1) : val.financial_net_loss;\n prev_loss_amt = prev_loss_amt != 0 ? prev_loss_amt * (-1) : prev_loss_amt ;\n\n let variation = (((profit_amt != '' ? profit_amt : loss_amt ) - (prev_profit_amt != '' ? prev_profit_amt : prev_loss_amt ))/ (prev_profit_amt != '' ? Math.abs(prev_profit_amt) : Math.abs(prev_loss_amt))) * 100; \n let final_variation = variation!= Infinity ? !(Number.isNaN(variation)) ? variation.toFixed(2) : 0.00 : 0.00 ;\n childArray.controls.financial_variation.setValue(final_variation);\n\n }\n }\n prev_profit_amt = val.financial_net_profit != '' ? val.financial_net_profit : 0;\n prev_loss_amt = val.financial_net_loss !='' ? val.financial_net_loss : 0 ;\n /********************************* Calculating Profit's Variation - ENDS HERE **************************************************************/\n\n /** Calculating Net Profit (or) Net Loss (and) Sales's Profit Variation \n * Explaination : Comparing Curr.Year Net Profit Amount With Curr.year Annual Sales Amount ( like wise loss )\n * Label name : \"Net Profit to Sales in % (or) Net Loss to Sales in % \n **/\n let SelectedlossOrProfit = val.finanical_profit_or_loss;\n \n if(SelectedlossOrProfit == 1){\n\n loss_margin = '';\n childArray.controls.financial_margin_of_loss.setValue('');\n \n if (annual_sale != '' && val.financial_net_profit != '') {\n if(+profit_amt>+annual_sale){\n alert(\"profit is greater than Annual Sale \");\n childArray.controls.financial_net_profit.setValue(0);\n childArray.controls.financial_margin_of_profit.setValue('');\n childArray.controls.financial_profit_to_sale_variation.setValue('');\n childArray.controls.financial_variation.setValue('');\n }\n else{\n profit_margin = (val.financial_net_profit / val.financial_annual_sale) * 100;\n childArray.controls.financial_margin_of_profit.setValue(profit_margin!= Infinity ? !(Number.isNaN(profit_margin)) ? profit_margin.toFixed(2):0:0);\n \n }\n }\n }\n else if(SelectedlossOrProfit == 2){\n profit_margin = '';\n childArray.controls.financial_margin_of_profit.setValue('');\n \n if (annual_sale != '' && val.financial_net_loss != '') {\n if(+val.financial_net_loss>+annual_sale){\n alert(\"Loss is greater than Annual Sale \");\n childArray.controls.financial_net_loss.setValue(0);\n childArray.controls.financial_margin_of_loss.setValue('');\n childArray.controls.financial_profit_to_sale_variation.setValue('');\n childArray.controls.financial_variation.setValue('');\n }\n if(+loss_amt>+annual_sale){\n childArray.controls.financial_net_loss.setValue(0);\n childArray.controls.financial_margin_of_loss.setValue('');\n childArray.controls.financial_profit_to_sale_variation.setValue('');\n childArray.controls.financial_variation.setValue('');\n }\n else{\n \n\n loss_margin = (val.financial_net_loss/val.financial_annual_sale) * 100 * (-1);\n\n\n childArray.controls.financial_margin_of_loss.setValue(loss_margin != Infinity ? !(Number.isNaN(loss_margin)) ? loss_margin.toFixed(2) : 0 : 0);\n \n }\n }\n }\n // console.log('val.financial_margin_of_profit',val.financial_margin_of_profit);\n // console.log('profit_margin',profit_margin);\n // console.log('childArray.controls.financial_margin_of_loss',childArray.controls.financial_margin_of_loss.value);\n // prev_profit_margin[index] = val.financial_margin_of_profit != '' ? val.financial_margin_of_profit: 0;\n // prev_loss_margin[index] = val.financial_margin_of_loss !='' ? val.financial_margin_of_loss : 0 ;\n prev_profit_margin[index] = profit_margin != '' ? profit_margin : 0;\n prev_loss_margin[index] = loss_margin !='' ? loss_margin : 0 ;\n \n \n // if(index != 0 ){\n \n // let variation_percent = (((profit_margin != '' ? profit_margin : loss_margin ) - (prev_profit_margin != '' ? prev_profit_margin : prev_loss_margin ))/ (prev_profit_margin != '' ? Math.abs(prev_profit_margin) : Math.abs(prev_loss_margin))) * 100; \n \n // let final_variation_percent = variation_percent != Infinity ? !(Number.isNaN(variation_percent)) ? variation_percent.toFixed(2) :0: 0;\n \n // childArray.controls.financial_profit_to_sale_variation.setValue(final_variation_percent);\n\n // }\n\n /**************************** Calculating Net Profit (or) Net Loss - ENDS HERE **************************************************************/\n\n /** Calculating Sales's Profit Variation \n * Label name = \"Variation of Profit % over sales\"\n **/\n \n if ((profit_margin != '' || loss_margin != '') && index != 0) {\n \n loss_margin = loss_margin !== undefined ? loss_margin : 0;\n profit_margin = profit_margin !== undefined ? profit_margin:0;\n let temp_prev_loss_margin = prev_loss_margin[index-1] !== undefined ? prev_loss_margin[index-1] : 0 ;\n let temp_prev_profit_margin = prev_profit_margin[index-1] !== undefined ? prev_profit_margin[index-1] : 0 ;\n\n if(annual_sale != ''){\n\n let current_margin : number =(profit_margin != '' ? parseFloat(profit_margin.toFixed(2)) : \n loss_margin != '' ? parseFloat(loss_margin.toFixed(2)) : 0.00 )\n let pre_margin : number = (temp_prev_profit_margin != 0 ? parseFloat(temp_prev_profit_margin.toFixed(2)) : \n temp_prev_loss_margin != 0 ? parseFloat(temp_prev_loss_margin.toFixed(2)) : 0.00 );\n let absoulte_value_of_pre_margin : number = (temp_prev_profit_margin != 0 ? Math.abs(parseFloat(temp_prev_profit_margin.toFixed(2))) : temp_prev_loss_margin != 0 ? Math.abs(parseFloat(temp_prev_loss_margin.toFixed(2))) : 0.00 ); \n\n let a: number = current_margin - pre_margin; \n let b: number = parseFloat(a.toFixed(2)) / absoulte_value_of_pre_margin;\n let c: number = b * 100;\n \n // let a = (profit_margin != '' ? profit_margin : loss_margin ) - (temp_prev_profit_margin != 0 ? temp_prev_profit_margin : temp_prev_loss_margin);\n // let b = parseFloat(a.toFixed(3)) / (temp_prev_profit_margin != 0 ? Math.abs(parseFloat(temp_prev_profit_margin.toFixed(2))) : Math.abs(parseFloat(temp_prev_loss_margin.toFixed(2))));\n // let c = b * 100;\n \n let final_percent = c != Infinity ? !(Number.isNaN(c)) ? c != -Infinity ? c.toFixed(2) : 0 : 0 : 0 ;\n \n childArray.controls.financial_profit_to_sale_variation.setValue(final_percent);\n }\n }\n /**************************** Calculating Sales's Profit Variation - ENDS HERE **************************************************************/\n\n\n });\n }\n \n \n confirmAlert(i, details){\n\n let estimate_sales_from = +details.value.estimate_sales_from;\n let estimate_sales_to = +details.value.estimate_sales_to;\n\n if (estimate_sales_from != null && estimate_sales_to != null){\n \n if(+estimate_sales_from>+estimate_sales_to){\n // alert(\"Given To value is lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is lower than From Value\")\n details.controls.estimate_sales_to.setValue('');\n details.controls.estimate_sales_average.setValue('');\n return;\n }\n\n let C = (estimate_sales_to - estimate_sales_from)\n let D = (C / estimate_sales_from) * 100;\n \n if(estimate_sales_from <= 5000000){\n if(D > 20){\n var r = confirm(\"Given Sales Range is greater than 20%\");\n if (r == true) {\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0); \n }else{\n details.controls.estimate_sales_to.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n }\n else if(estimate_sales_from > 5000000 && estimate_sales_from <= 10000000){\n if(D > 15){\n var r = confirm(\"Given Sales Range is greater than 15%\");\n if (r == true) {\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0); \n }else{\n details.controls.estimate_sales_to.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n }\n else if(estimate_sales_from > 10000000){\n if(D > 10){\n var r = confirm(\"Given Sales Range is greater than 10%\");\n if (r == true) {\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0); \n }else{\n details.controls.estimate_sales_to.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n }\n else{\n details.controls.estimate_sales_to.setValue(estimate_sales_to!= Infinity ? estimate_sales_to:0);\n }\n\n // if(D >= 30){\n // var r = confirm(\"Given Sales Range is greater than 30%\");\n // if (r == true) {\n // details.controls.estimate_sales_to.setValue(estimate_sales_to); \n // }else{\n // details.controls.estimate_sales_to.setValue('');\n // return;\n // }\n // }\n // else{\n // details.controls.estimate_sales_to.setValue(estimate_sales_to);\n // }\n }\n this.calculateSalesAverage(i, details);\n }\n\n calculateSalesAverage(i, details){\n \n let estimate_sales_from = details.value.estimate_sales_from;\n let estimate_sales_to = details.value.estimate_sales_to;\n\n if(estimate_sales_from != '' && estimate_sales_to != ''){\n\n let range1 = +estimate_sales_from/10;\n \n let lower = (+estimate_sales_from)+range1;\n let higer = ((+estimate_sales_to + +estimate_sales_from) / 2);\n\n if(lower > higer){\n details.controls.estimate_sales_average.setValue(higer!= Infinity ? higer.toFixed(2):0);\n this.AV_SalesInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_sales_average.setValue(lower!= Infinity ? lower.toFixed(2):0);\n this.AV_SalesInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n }\n \n }\n else{\n details.controls.estimate_sales_average.setValue('');\n }\n\n }\n calculateMarginProfit( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n // alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_profit_range_from.setValue('');\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n }\n let estimate_profit_range_from = details.value.estimate_profit_range_from;\n if(+estimate_profit_range_from > 100){\n // alert('Given Profit percent is More Than 100');\n this.toast.pdTriggerappmessage(\"Given Profit percent is More Than 100\")\n details.controls.estimate_profit_range_from.setValue('');\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n\n }\n \n let estimate_profit_range_to = details.value.estimate_profit_range_to;\n \n if(+estimate_profit_range_to > 100){\n // alert('Given Profit percent is More Than 100');\n this.toast.pdTriggerappmessage(\"Given Profit percent is More Than 100\")\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n\n }\n\n if (sales_average != '' && estimate_profit_range_from != '' && estimate_profit_range_to != ''){\n if(+estimate_profit_range_from>+estimate_profit_range_to){\n // alert(\"Given To value is lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is lower than From Value\")\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n }\n\n \n let profit_percent = (estimate_profit_range_to + estimate_profit_range_from)/2; \n let Profit_Average = (profit_percent*sales_average)/100;\n let difference = (estimate_profit_range_to - estimate_profit_range_from);\n\n if(difference > 3){\n var r = confirm(\"Given Profit Percent Range is greater than 3\");\n if (r == true) {\n details.controls.estimate_profit_margin.setValue(Profit_Average!= Infinity ? Math.round(Profit_Average):0);\n details.controls.estimate_profit_margin_percent.setValue(profit_percent!= Infinity ? profit_percent.toFixed(2):0);\n this.AV_marginProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(Profit_Average)); \n }else{\n details.controls.estimate_profit_range_to.setValue('');\n details.controls.estimate_profit_margin.setValue('');\n details.controls.estimate_profit_margin_percent.setValue('');\n return;\n }\n }\n \n details.controls.estimate_profit_margin.setValue(Profit_Average!= Infinity ? Math.round(Profit_Average):0);\n details.controls.estimate_profit_margin_percent.setValue(profit_percent!= Infinity ? profit_percent.toFixed(2):0);\n this.AV_marginProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(Profit_Average)); \n // details.controls.estimate_profit_margin.setValue(Math.round(Profit_Average));\n // details.controls.estimate_profit_margin_percent.setValue(profit_percent.toFixed(2));\n \n \n \n }\n \n }\n\n\n calculateProfitAmount( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n //alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_net_profit_from.setValue('');\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n\n let estimate_net_profit_from = details.value.estimate_net_profit_from;\n let estimate_net_profit_to = details.value.estimate_net_profit_to;\n\n if(+estimate_net_profit_to>+sales_average){\n \n //alert(\"Given Profit is Greater than Sales\");\n this.toast.pdTriggerappmessage(\"Given Profit is Greater than Sales\")\n details.controls.estimate_net_profit_from.setValue('');\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n\n\n if (sales_average != '' && estimate_net_profit_from != '' && estimate_net_profit_to != ''){\n if(+estimate_net_profit_from>+estimate_net_profit_to){\n // alert(\"Given To value is lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is lower than From Value\")\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n \n let C = (estimate_net_profit_to - estimate_net_profit_from)\n let D = (C / estimate_net_profit_from) * 100;\n \n let range1 = +estimate_net_profit_from/10;\n \n let lower = (+estimate_net_profit_from)+range1;\n let higer = ((+estimate_net_profit_to + +estimate_net_profit_from) / 2);\n\n if(estimate_net_profit_from <= 5000000){\n if(D >= 20){\n var r = confirm(\"Given Profit Range is greater than 20%\");\n if (r == true) {\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0);\n }else{\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0);\n }\n\n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n else if(estimate_net_profit_from > 5000000 || estimate_net_profit_from <= 10000000){\n if(D >= 15){\n var r = confirm(\"Given Sales Range is greater than 15%\");\n if (r == true) {\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n \n }else{\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n }\n\n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n\n }\n else if(estimate_net_profit_from > 10000000){\n if(D >= 10){\n var r = confirm(\"Given Sales Range is greater than 10%\");\n if (r == true) {\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n }else{\n details.controls.estimate_net_profit_to.setValue('');\n details.controls.estimate_net_profit.setValue('');\n details.controls.estimate_net_profit_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n }\n\n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n else{\n details.controls.estimate_net_profit_to.setValue(estimate_net_profit_to!= Infinity ? estimate_net_profit_to:0); \n if(lower > higer){\n details.controls.estimate_net_profit.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let Profit_percent = (higer/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_profit.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let Profit_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(Profit_percent!= Infinity ? Profit_percent.toFixed(2):0);\n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n \n }\n \n}\n\ncalculateMarginLoss( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n // alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_loss_range_from.setValue('');\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n }\n // else{\n let estimate_loss_range_from = details.value.estimate_loss_range_from;\n if(+estimate_loss_range_from > 100){\n // alert('Given Loss Percent is more than 100');\n this.toast.pdTriggerappmessage(\"Given Loss Percent is more than 100\")\n details.controls.estimate_loss_range_from.setValue('');\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n\n }\n \n let estimate_loss_range_to = details.value.estimate_loss_range_to;\n if(+estimate_loss_range_to > 100){\n // alert('Given Loss Percent is more than 100');\n this.toast.pdTriggerappmessage(\"Given Loss Percent is more than 100 \")\n details.controls.estimate_loss_range_from.setValue('');\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n\n }\n \n\n if (sales_average != '' && estimate_loss_range_from != '' && estimate_loss_range_to != ''){\n \n if(+estimate_loss_range_from>+estimate_loss_range_to){\n //alert(\"Given Loss Percent is more than 100\");\n this.toast.pdTriggerappmessage(\"Given Loss Percent is more than 100\")\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n }\n \n let loss_percent = (estimate_loss_range_to + estimate_loss_range_from)/2;\n let loss_Average = (loss_percent*sales_average)/100;\n let difference = (estimate_loss_range_to - estimate_loss_range_from)\n\n // details.controls.estimate_loss_margin.setValue(Math.round(loss_Average));\n // details.controls.estimate_loss_margin_percent.setValue(loss_percent.toFixed(2));\n \n // this.AV_marginLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(loss_Average)); \n\n if(difference > 3){\n var r = confirm(\"Given Loss Percent Range is greater than 3\");\n if (r == true) {\n details.controls.estimate_loss_margin.setValue(loss_Average!= Infinity ? Math.round(loss_Average):0);\n details.controls.estimate_loss_margin_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n \n this.AV_marginLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(loss_Average)); \n }else{\n details.controls.estimate_loss_range_to.setValue('');\n details.controls.estimate_loss_margin.setValue('');\n details.controls.estimate_loss_margin_percent.setValue('');\n return;\n }\n } \n \n details.controls.estimate_loss_margin.setValue(loss_Average!= Infinity ? Math.round(loss_Average):0);\n details.controls.estimate_loss_margin_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_marginLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(loss_Average)); \n }\n\n}\n\n\ncalculateLossAmount( i, details){\n\n let sales_average = details.value.estimate_sales_average;\n if(sales_average == ''){\n // alert(\"Considered Sales Average is Empty\");\n this.toast.pdTriggerappmessage(\"Considered Sales Average is Empty\")\n details.controls.estimate_net_loss_from.setValue('');\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n\n let estimate_net_loss_from = details.value.estimate_net_loss_from;\n let estimate_net_loss_to = details.value.estimate_net_loss_to;\n\n if(+estimate_net_loss_to > +sales_average){\n \n // alert(\"Given Loss is Greater than Sales\");\n this.toast.pdTriggerappmessage(\"Given Loss is Greater than Sales\")\n details.controls.estimate_net_loss_from.setValue('');\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n\n \n if (sales_average != '' && estimate_net_loss_from != '' && estimate_net_loss_to != ''){\n if(+estimate_net_loss_from > +estimate_net_loss_to){\n //alert(\"Given To value is Lower than From Value\");\n this.toast.pdTriggerappmessage(\"Given To value is Lower than From Value\")\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n\n \n \n // if(+estimate_net_loss_to > +estimate_net_loss_from){\n // alert(\"loss is greater than sales\");\n // details.controls.estimate_net_loss_to.setValue('');\n // details.controls.estimate_net_loss.setValue('');\n // details.controls.estimate_net_loss_percent.setValue('');\n // return;\n // }\n \n \n let C = (estimate_net_loss_to - estimate_net_loss_from)\n let D = (C / estimate_net_loss_from) * 100;\n \n let range1 = +estimate_net_loss_from/10;\n \n let lower = (+estimate_net_loss_from)+range1;\n let higer = ((+estimate_net_loss_to + +estimate_net_loss_from) / 2);\n\n if(estimate_net_loss_from <= 5000000){\n if(D >= 20){\n var r = confirm(\"Given Profit Range is greater than 20%\");\n if (r == true) {\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0);\n \n }else{\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0);\n }\n\n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n\n }\n else if(estimate_net_loss_from > 5000000 || estimate_net_loss_from <= 10000000){\n if(D >= 15){\n var r = confirm(\"Given Sales Range is greater than 15%\");\n if (r == true) {\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n }else{\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n }\n\n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_profit_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n }\n else if(estimate_net_loss_from > 10000000){\n if(D >= 10){\n var r = confirm(\"Given Sales Range is greater than 10%\");\n if (r == true) {\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n }else{\n details.controls.estimate_net_loss_to.setValue('');\n details.controls.estimate_net_loss.setValue('');\n details.controls.estimate_net_loss_percent.setValue('');\n return;\n }\n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n \n }\n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n } \n \n }\n else{\n details.controls.estimate_net_loss_to.setValue(estimate_net_loss_to!= Infinity ? estimate_net_loss_to:0); \n if(lower > higer){\n details.controls.estimate_net_loss.setValue(higer!= Infinity ? higer.toFixed(2):0);\n let loss_percent = (higer/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(higer)); \n }\n else{\n details.controls.estimate_net_loss.setValue(lower!= Infinity ? lower.toFixed(2):0);\n let loss_percent = (lower/sales_average)*100;\n details.controls.estimate_net_loss_percent.setValue(loss_percent!= Infinity ? loss_percent.toFixed(2):0);\n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(Math.round(lower)); \n }\n }\n \n }\n \n}\n\n \n\n\n \n\n /** On Key Press Event For Input Field */\n keyPress(event: any) {\n //const pattern = /[0-9\\-\\.\\ ]/;\n const pattern = /[0-9\\.]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n /** To Convert Amount into Words */\n inWords(e,i,flag:number){\n\n switch(flag){\n case 1 :\n this.FY_annualSalesInwords[i] = this.cons.convertNumberToWords(e.target.value); \n // this.placeholderName[i] = 'Weekly Instalment Amount'; break;\n break;\n case 2 : \n this.FY_netProfitAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n //alert('Fin net Profit'+this.FY_netProfitAmtInwords[i]);\n break;\n case 3 : \n this.FY_netLossAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n // alert('Fin net Loss'+this.FY_netLossAmtInwords[i]);\n break;\n case 4 : \n this.AV_annualSalesInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 5 : \n this.AV_netProfitAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 6 : \n this.AV_netLossAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 7 : \n this.AV_netProfitAmtFrmInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 8 : \n this.AV_netProfitAmtToInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 9 : \n this.AV_netLossAmtFrmInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 10 : \n this.AV_netLossAmtToInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 11 : \n this.AV_SalesFrmInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 12 : \n this.AV_SalesToInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n case 13 : \n this.AV_CCAnnualSalesAmtInwords[i] = this.cons.convertNumberToWords(e.target.value); \n break;\n default:\n break;\n }\n}\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n this.picsArrayLength = val['records'].length;\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n captureTheFinancialPics(value){\n// alert('Value '+value+' - '+this.picsArrayLength);\n if(value == 'yes' && this.picsArrayLength == 0){\n alert('You Must Take The Finanical Pic');\n }\n else{\n alert('No Need');\n }\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Form } from 'ionic-angular';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder, FormArray } from '@angular/forms';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionClientInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-client-info',\n templateUrl: 'pd-question-client-info.html',\n})\nexport class PdQuestionClientInfoPage {\n\n users: any;\n pdDetails: any;\n formDetails: any;\n pdid: any;\n company_id: any;\n questionDetails: any;\n clientInfoForm: FormGroup;\n\n\n\n\n public submitted = false;\n\n public m_paymentType = [];\n\n companyRelationShipList: any = [];\n\n titleList: any = [];\n noRecordsFound: Boolean = false;\n errorMessage: any = '';\n m_manufacturingProducts: any = [];\n m_tradingProducts: any = [];\n m_suplierProducts: any = [];\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n\n\n constructor(public navCtrl: NavController, public navParams: NavParams, \n public qustCat: QuestionCategoryProvider, public aws: AwsServiceProvider, \n public toast: ToastProvider, public fb: FormBuilder,private loading:LoadingProvider,private cameraProvider:CameraProvider,private constantProvider:ConstantsProvider)\n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.formDetails = this.navParams.get('formDetails');\n this.users = this.aws.getlocale();\n this.pdid = this.pdDetails.pd_id;\n this.company_id = this.pdDetails.company_id;\n\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdid, this.company_id).subscribe(data => {\n\n if (data.dataStatus) {\n\n let datas = data.records;\n this.m_manufacturingProducts = datas.type_of_activity.filter(data => { if (data.type_of_activity_id == 2) { return data } }).map(data => [...data.prodcuts]);\n // this.m_tradingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 3){return data}}).map(data=> [...data.prodcuts]);\n this.m_suplierProducts = datas.type_of_activity.filter(data => { if (data.type_of_activity_id == 5) { return data } }).map(data => [...data.prodcuts]);\n let api = Object.keys(datas.type_of_activity).map(function (key) {\n return datas.type_of_activity[key];\n });\n if (api.length > 0) {\n api.forEach(val => {\n if (val.type_of_activity_id == 3) {\n if (val.prodcuts) {\n this.m_tradingProducts.push(val.prodcuts);\n }\n }\n\n if (val.type_of_activity_id == 4) {\n if (val.prodcuts) {\n this.m_tradingProducts.push(val.prodcuts);\n }\n }\n });\n }\n this.m_tradingProducts = [].concat.apply([], this.m_tradingProducts);\n\n this.initFormLoadDetails(datas.type_of_activity);\n\n } else {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = data.msg;\n }\n }, err => {\n this.toast.pdTriggerappmessage('No Category Records Found.!');\n this.noRecordsFound = false;\n this.errorMessage = 'No Records Found , Something went Wrong!';\n });\n\n this.getdropList();\n\n\n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\nconsole.log(\"form values\",this.clientInfoForm);\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionClientInfoPage');\n this.getPDImages();\n \n }\n\n initFormLoadDetails(record) {\n let params: any = {};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id = this.pdid;\n params.pd_form_id = this.formDetails.form_id;\n params.company_id = this.company_id;\n this.qustCat.retiverForm(params).subscribe(\n data => {\n if (data['dataStatus']) {\n let dataForm = data['records'];\n if (dataForm !== undefined) {\n this.clientInfoForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n service_provider_details: this.fb.array([this.serviceProviderFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n // Load form details for manufacturing\n let arr = record.filter(data => data.type_of_activity_id == 2);\n // if(dataForm.manufacturing_details[0].main_raw_materials){\n if (arr.length > 0) {\n // let api_main_raw_materials = Object.keys(dataForm.main_raw_materials).map(function (key) {\n // return dataForm.main_raw_materials[key];\n // });\n if(dataForm.manufacturing_details){\n console.log(dataForm)\n \n let api_main_raw_materials = dataForm.manufacturing_details[0].main_raw_materials;\n\n this.initManufacturingProductsDetails(api_main_raw_materials);\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(dataForm.manufacturing_details[0].main_raw_materials_total_payments_percent_on_credit || null);\n }\n else{\n console.log(\"NO Data\",dataForm)\n this.initManufacturingProductsDetails(null)\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue( null);\n }\n }\n // }\n\n // Load form details for the wholeshale trading details\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n // let api_trading_products = Object.keys(dataForm.trading_products).map(function (key) {\n // return dataForm.trading_products[key];\n // });\n if(dataForm.trade_details){\n let api_trading_products = dataForm.trade_details[0].trading_products;\n\n this.initTradingProductsDetails(api_trading_products);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(dataForm.trade_details[0].trading_products_total_payments_percent_on_credit || null);\n }\n else{\n this.initTradingProductsDetails(null);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue( null);\n }\n }\n\n // Load form details for the service provider prduct details \n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n // let api_service_provider_products = Object.keys(dataForm.service_products).map(function (key) {\n // return dataForm.service_products[key];\n // });\n if(dataForm.service_provider_details){\n let api_service_provider_products = dataForm.service_provider_details[0].service_products;\n this.initServiceProviderProductsDetails(api_service_provider_products);\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(dataForm.service_provider_details[0].service_products_total_payments_percent_on_credit || null);\n }\n else{\n this.initServiceProviderProductsDetails(null)\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(null);\n }\n }\n // Load form details for the retail trading details\n let arr3 = record.filter(data => data.type_of_activity_id == 3);\n // if (arr3.length > 0) {\n // this.retaildTradingForm = true;\n // }\n this.noRecordsFound = true;\n } else {\n this.clientInfoForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n service_provider_details: this.fb.array([this.serviceProviderFormCreation(record)]),\n supplier_info_form_remark: [dataForm.supplier_info_form_remark || null]\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n let api_service_provider_products = Object.keys(dataForm.service_products).map(function (key) {\n return dataForm.service_products[key];\n });\n this.initServiceProviderProductsDetails(api_service_provider_products);\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(null);\n }\n // Load form details for the retail trading details\n let arr3 = record.filter(data => data.type_of_activity_id == 3);\n // if (arr3.length > 0) {\n // this.retaildTradingForm = true;\n // }\n this.noRecordsFound = true;\n }\n } else {\n this.clientInfoForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.formDetails.form_id],\n company_id: [this.company_id],\n fk_createdby: [this.users],\n manufacturing_details: this.fb.array([this.manufacturingFormCreation(record)]),\n trade_details: this.fb.array([this.tradingFormCreation(record)]),\n service_provider_details: this.fb.array([this.serviceProviderFormCreation(record)]),\n supplier_info_form_remark: []\n // wholesale_trade_details: this.fb.array([this.tradingFormCreation(record)]),\n });\n let arr = record.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.initManufacturingProductsDetails(null);\n this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials_total_payments_percent_on_credit'].setValue(null);\n }\n let arr1 = record.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr1.length > 0) {\n this.initTradingProductsDetails(null);\n this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products_total_payments_percent_on_credit'].setValue(null);\n }\n let arr2 = record.filter(data => data.type_of_activity_id == 5);\n if (arr2.length > 0) {\n this.initServiceProviderProductsDetails(null);\n this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products_total_payments_percent_on_credit'].setValue(null);\n }\n // Load form details for the retail trading details\n let arr3 = record.filter(data => data.type_of_activity_id == 3);\n // if (arr3.length > 0) {\n // this.retaildTradingForm = true;\n // }\n this.noRecordsFound = true;\n }\n }, err => {\n\n }\n );\n }\n\n manufacturingForm: Boolean = false;\n manufacturingFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 2);\n if (arr.length > 0) {\n this.manufacturingForm = true;\n return this.fb.group({\n main_raw_materials: this.fb.array([]),\n main_raw_materials_total_payments_percent_on_credit: []\n })\n // }\n } else {\n return;\n }\n }\n\n tradingForm: Boolean = false;\n tradingFormCreation(val) {\n // let arr = val.filter(data => data.type_of_activity_id == 4);\n let arr = val.filter(data => data.type_of_activity_id == 3 || data.type_of_activity_id == 4);\n if (arr.length > 0) {\n this.tradingForm = true;\n return this.fb.group({\n trading_products: this.fb.array([]),\n trading_products_total_payments_percent_on_credit: []\n });\n } else {\n return;\n }\n }\n\n serviceProviderForm: Boolean = false;\n serviceProviderFormCreation(val) {\n let arr = val.filter(data => data.type_of_activity_id == 5);\n if (arr.length > 0) {\n this.serviceProviderForm = true;\n return this.fb.group({\n service_products: this.fb.array([]),\n service_products_total_payments_percent_on_credit: []\n });\n } else {\n return;\n }\n }\n\n initManufacturingProductsDetails(datas) {\n const control = this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n if (datas === null) {\n control.push(this.initManufacturingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.manufacturing_payment_type, 1, inx);\n control.push(this.initManufacturingProducts(val));\n });\n // for (let val of datas) {\n // control.push(this.initManufacturingProducts(val));\n // }\n }\n }\n\n initManufacturingProducts(records) {\n if (records === null) {\n return this.fb.group({\n manufacturing_product_name: [''],\n manufacturing_client_name: [''],\n manufacturing_contact_person_name: [''],\n manufacturing_contact_person_mobile_number: [''],//,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n manufacturing_payment_type: [''],\n manufacturing_payment_mode: [''],\n // manufacturing_credit_days: [''],\n person_title_name: [''],\n person_designation: [''],\n person_stdcode: [''],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [''],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [''],\n manufacturing_credit_days_from: [''],\n manufacturing_credit_days_to: ['']\n })\n } else {\n return this.fb.group({\n manufacturing_product_name: [records.manufacturing_product_name || null],\n manufacturing_client_name: [records.manufacturing_client_name || null],\n manufacturing_contact_person_name: [records.manufacturing_contact_person_name || null],\n manufacturing_contact_person_mobile_number: [records.manufacturing_contact_person_mobile_number || null],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n manufacturing_payment_type: [records.manufacturing_payment_type || null],\n manufacturing_payment_mode: [records.manufacturing_payment_mode || null],\n manufacturing_credit_days: [records.manufacturing_credit_days || null],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n person_stdcode: [records.person_stdcode || null],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [records.person_landline || null],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [records.other_person_designation || null],\n manufacturing_credit_days_from: [records.manufacturing_credit_days_from || null],\n manufacturing_credit_days_to: [records.manufacturing_credit_days_to || null]\n })\n }\n }\n\n initTradingProductsDetails(datas) {\n const control = this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n if (datas === null) {\n control.push(this.initTradingProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.trade_product_payment_type, 2, inx);\n control.push(this.initTradingProducts(val));\n });\n // for (let val of datas) {\n // control.push(this.initTradingProducts(val));\n // }\n }\n }\n\n initTradingProducts(records) {\n if (records === null) {\n return this.fb.group({\n trade_product_name: [''],\n trade_client_name: [''],\n trade_product_contact_person_name: [''],\n trade_product_contact_person_mobile_number: [''],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n trade_product_payment_type: [''],\n trade_product_payment_mode: [''],\n trade_product_frequency_of_purchase: [''],\n trade_product_credit_days_from: [''],\n trade_product_credit_days_to: [''],\n person_title_name: [''],\n person_designation: [''],\n person_stdcode: [''],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [''],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [''],\n })\n } else {\n return this.fb.group({\n trade_product_name: [records.trade_product_name],\n trade_client_name: [records.trade_client_name],\n trade_product_contact_person_name: [records.trade_product_contact_person_name],\n trade_product_contact_person_mobile_number: [records.trade_product_contact_person_mobile_number],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n trade_product_payment_type: [records.trade_product_payment_type],\n trade_product_payment_mode: [records.trade_product_payment_mode],\n trade_product_frequency_of_purchase: [records.trade_product_frequency_of_purchase],\n trade_product_credit_days_from: [records.trade_product_credit_days_from],\n trade_product_credit_days_to: [records.trade_product_credit_days_to],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n person_stdcode: [records.person_stdcode || null],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [records.person_landline || null],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [records.other_person_designation || null],\n })\n }\n }\n\n initServiceProviderProductsDetails(datas) {\n const control = this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products'];\n if (datas === null) {\n control.push(this.initServiceProviderProducts(null));\n } else {\n datas.forEach((val, inx) => {\n this.checkCard(val.service_provider_product_payment_type, 3, inx);\n control.push(this.initServiceProviderProducts(val));\n });\n // for (let val of datas) {\n // control.push(this.initServiceProviderProducts(val));\n // }\n }\n }\n\n initServiceProviderProducts(records) {\n if (records === null) {\n return this.fb.group({\n service_provider_product_name: [''],\n service_provider_client_name: [''],\n service_provider_product_contact_person_name: [''],\n service_provider_product_contact_person_mobile_number: [''],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n service_provider_product_payment_type: [''],\n service_provider_product_payment_mode: [''],\n service_provider_product_frequency_of_purchase: [''],\n service_provider_product_credit_days_from: [''],\n service_provider_product_credit_days_to: [''],\n person_title_name: [''],\n person_designation: [''],\n person_stdcode: [''], //Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [''],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [''],\n })\n } else {\n return this.fb.group({\n service_provider_product_name: [records.service_provider_product_name],\n service_provider_client_name: [records.service_provider_client_name],\n service_provider_product_contact_person_name: [records.service_provider_product_contact_person_name],\n service_provider_product_contact_person_mobile_number: [records.service_provider_product_contact_person_mobile_number],//Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n service_provider_product_payment_type: [records.service_provider_product_payment_type],\n service_provider_product_payment_mode: [records.service_provider_product_payment_mode],\n service_provider_product_frequency_of_purchase: [records.service_provider_product_frequency_of_purchase],\n service_provider_product_credit_days_from: [records.service_provider_product_credit_days_from],\n service_provider_product_credit_days_to: [records.service_provider_product_credit_days_to],\n person_title_name: [records.person_title_name || null],\n person_designation: [records.person_designation || null],\n person_stdcode: [records.person_stdcode || null],// Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],\n person_landline: [records.person_landline || null],// Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],\n other_person_designation: [records.other_person_designation || null],\n })\n }\n }\n\n addMoreRawMaterials(e): void {\n // e.stropPropagation();\n const control = this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n\n control.push(this.initManufacturingProducts(null));\n }\n\n removeRawMaterials(inx): void {\n const control = this.clientInfoForm.controls['manufacturing_details']['controls'][0].controls['main_raw_materials'];\n control.removeAt(inx);\n }\n\n addMoretradeProduct(e): void {\n // e.stropPropagation();\n const control = this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n\n control.push(this.initTradingProducts(null));\n }\n\n removeTradingProduct(inx): void {\n const control = this.clientInfoForm.controls['trade_details']['controls'][0].controls['trading_products'];\n control.removeAt(inx);\n }\n\n addMoreServiceProduct(e): void {\n // e.stropPropagation();\n const control = this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products'];\n\n control.push(this.initServiceProviderProducts(null));\n }\n\n removeServiceProduct(inx): void {\n const control = this.clientInfoForm.controls['service_provider_details']['controls'][0].controls['service_products'];\n control.removeAt(inx);\n }\n\n getdropList() {\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(\n data => {\n this.companyRelationShipList = data['records'];\n // .filter(data => data.isactive == 1);\n // because in general no need of \"other\" option but in client others option needed - in DB others option changed into inactive\"\n });\n\n this.qustCat.getcommondrop('TITLES').subscribe(\n data => {\n this.titleList = data['records'].filter(data => data.isactive == 1);\n });\n\n this.qustCat.getcommondrop('PAYMENTMODE').subscribe(\n data => {\n this.m_paymentType = data['records'].filter(data => data.isactive == 1);\n });\n }\n // saveclientDetails(answerData)\n // {\n // let records:any ={};\n\n // records.pdid = this.pdDetails.pd_id;\n // records.formid = this.FormId.form_id;\n // records.fk_createdby = this.users;\n\n // records.client_details = answerData.clientArray;\n\n // this.qustCat.saveForm(records).subscribe(res=>\n // {\n // if(res['dataStatus']==true)\n // {\n // this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n // this.navCtrl.pop();\n // }\n // });\n\n\n // }\n saveClientInfoWithImageCheck(answerFormValues){\n console.log(\"forms\",answerFormValues);\n let required_imageCheck=this.mandatoryImageCheck(answerFormValues)\n console.log(\"required image check\",required_imageCheck);\n if(!required_imageCheck){\n let alert=this.toast.setAlert(\"Mandatory photographs not taken\",\" Do you want to take it later?\")\n alert.present();\n alert.onDidDismiss(value=>{\n if(value=='s'){\n this.saveClientInfo(answerFormValues)\n }\n else{\n return true;\n }\n })\n }\n else{\n this.saveClientInfo(answerFormValues)\n }\n }\n\n /** To Save/Edited Popup Data */\n saveClientInfo(answerFormValues) {\n \n\n \n // answerFormValues.trade_details.forEach((value)=>{\n // value.trading_products.forEach()\n // })\n // this.imageDisplay.forEach((res,index)=>{\n // if(res.Name == )\n // })\n Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]);\n if (answerFormValues.manufacturing_details[0] == null) {\n delete answerFormValues['manufacturing_details'];\n }\n if (answerFormValues.trade_details[0] == null) {\n delete answerFormValues['trade_details'];\n }\n if (answerFormValues.service_provider_details[0] == null) {\n delete answerFormValues['service_provider_details'];\n }\n\n //To Remove The \"Null\" With Key also\n Object.keys(answerFormValues).forEach((key) => { if (answerFormValues[key] === null || answerFormValues[key] === undefined || answerFormValues[key] === '') { delete answerFormValues[key] }; });\n this.qustCat.saveForm(answerFormValues).subscribe(responsed => {\n if (responsed['status'] == 200) {\n this.clientInfoForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n } else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n });\n \n\n }\n\n selectedPersonDesignation(items, e, flag) {\n if (flag == 1) {\n // e==1 ? items.controls['other_person_designation'].setValidators([Validators.required])\n // : items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 2) {\n // e==1 ?items.controls['other_person_designation'].setValidators([Validators.required])\n // :items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n else if (flag == 3) {\n // e==1 ?items.controls['other_person_designation'].setValidators([Validators.required])\n // :items.controls['other_person_designation'].clearValidators(),items.controls['other_person_designation'].setValue('');\n // items.controls['other_person_designation'].updateValueAndValidity();\n }\n }\n\n mfgCreditCardFlag: boolean = false;\n trdCreditCardFlag: boolean = false;\n spCreditCardFlag: boolean = false;\n mfgCounter: any = [];\n trdCounter: any = [];\n spCounter: any = [];\n checkCard(e, flag, index) {\n\n if (flag == 3 && e == 3) {\n this.spCounter[index] = 1;\n }\n else if (flag == 3 && e != 3) {\n this.spCounter[index] = 0;\n }\n let SP = this.spCounter.reduce((sum, val) => sum + +val, 0);\n this.spCreditCardFlag = SP > 0 ? true : false;\n\n if (flag == 2 && e == 3) {\n this.trdCounter[index] = 1;\n }\n else if (flag == 2 && e != 3) {\n this.trdCounter[index] = 0;\n }\n let TRD = this.trdCounter.reduce((sum, val) => sum + +val, 0);\n this.trdCreditCardFlag = TRD > 0 ? true : false;\n\n if (flag == 1 && e == 3) {\n this.mfgCounter[index] = 1;\n }\n else if (flag == 1 && e != 3) {\n this.mfgCounter[index] = 0;\n }\n let MFG = this.mfgCounter.reduce((sum, val) => sum + +val, 0);\n this.mfgCreditCardFlag = MFG > 0 ? true : false;\n\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n\n captureTheClientPics(materialName,index,clientName){\n \n if(clientName != ''){\n // 'Raw Material','l',items.get('manufacturing_supplier_name').value \n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':clientName + ' - ' + materialName + ' ' + (index+1),'link':geoCoordinates});\n })\n }\n\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n }\n else if(clientName == ''){\n alert('Please Fill The Client Name');\n }\n \n }\n mandatoryImageCheck(Form_values){\n let Form_names=[]\n if(Form_values.manufacturing_details.length != 0 && Form_values.manufacturing_details[0] != null){\n if(Form_values.manufacturing_details[0].main_raw_materials.length != 0){\n Form_values.manufacturing_details[0].main_raw_materials.forEach((value,index)=>{\n Form_names.push({'index':index+1,'name':value.manufacturing_client_name+' - '+ 'Manufacturing Product ' + (index+1) })\n })\n }\n }\n if(Form_values.service_provider_details.length != 0 && Form_values.service_provider_details[0] != null ){\n if(Form_values.service_provider_details[0].service_products.length != 0){\n Form_values.service_provider_details[0].service_products.forEach((value,index)=>{\n Form_names.push({'index':index+1,'name':value.service_provider_client_name+' - '+ 'Service Provider ' + (index+1) })\n })\n }\n}\n if(Form_values.trade_details.length != 0 && Form_values.trade_details[0] != null){\n if( Form_values.trade_details[0].trading_products.length != 0){\n Form_values.trade_details[0].trading_products.forEach((value,index)=>{\n Form_names.push({'index':index+1,'name':value.trade_client_name+' - '+ 'Trading Product ' + (index+1) })\n })\n }\n}\n console.log(\"Form Values\",Form_names);\n // console.log(\"image values\",this.imageDisplay)\n let valBool\n let count:number=0;\n let mandatoryimgSaved=[]\n let mandatoryimgNotSaved=[]\n\nif(Form_names.length != 0 ){\n // if( this.imageDisplay.length !=0){\n Form_names.forEach(formvalue=>{\n this.imageDisplay.forEach((imgvalue)=>{\n \n // console.log(\"Form values individuals\",formvalue)\n if(formvalue.name != imgvalue.Name){\n \n valBool=true\n }\n else{\n\n valBool=false\n \n count ++;\n \n \n }\n if(count >=2 && valBool == false){\n // console.log(\"end of image dis\",formvalue.name,\"count \",count)\n mandatoryimgSaved.push(formvalue.name)\n // return\n }\n else{\n mandatoryimgNotSaved.push(formvalue.name)\n return\n }\n \n })\n if(valBool==true)\n console.log(\"Form name\",formvalue.name)\n \n mandatoryimgNotSaved.push(formvalue.name)\n \n })\n \n // console.log(\"mandatoryimgSaved\",mandatoryimgSaved)\n // console.log(\"mandatoryimgNot Saved\",mandatoryimgNotSaved)\n mandatoryimgSaved.forEach(res=>{\n mandatoryimgNotSaved=mandatoryimgNotSaved.filter(val=>val != res)\n \n })\n \n // console.log(\"res for not saved img\",mandatoryimgNotSaved);\n // let uniquenotsavedImage=[ ...new Set(mandatoryimgNotSaved)]\n let uniquenotsavedImage=(mandatoryimgNotSaved)=>mandatoryimgNotSaved.filter((val,i)=>mandatoryimgNotSaved.indexOf(val) === i)\n console.log(\"uniw\",uniquenotsavedImage(mandatoryimgNotSaved));\n if(uniquenotsavedImage(mandatoryimgNotSaved).length > 0){\n return false\n }\n else{\n return true\n }\n \n //COUNTING THE DUPLICATES IN AN ARRAY\n // var arr = ['a','b','c','d','d','e','a','b','c','f','g','h','h','h','e','a'];\n // var map = arr.reduce(function(prev, cur) {\n // prev[cur] = (prev[cur] || 0) + 1;\n // return prev;\n // }, {});\n \n // map is an associative array mapping the elements to their frequency:\n // console.log(map);\n // prints {\"a\": 3, \"b\": 2, \"c\": 2, \"d\": 2, \"e\": 2, \"f\": 1, \"g\": 1, \"h\": 3}\n // }\n // else{\n // return true\n // }\n}\nelse{\n return true\n}\n\n }\n\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams ,AlertController} from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { PdQuestionAssessedInfoPage } from '../pd-question-assessed-info/pd-question-assessed-info';\nimport {PdQuestionAssessedSummaryPage} from '../pd-question-assessed-summary/pd-question-assessed-summary'\nimport {PdQuestionAssessedImagesPage} from '../../pd-question/pd-question-assessed-images/pd-question-assessed-images'\n\n/**\n * Generated class for the PdQuestionAssessedDashPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-dash',\n templateUrl: 'pd-question-assessed-dash.html',\n})\nexport class PdQuestionAssessedDashPage {\n\n businessIncome: boolean;\n grossAccess: boolean;\n finalAccess: boolean;\n finalExpense: any;\n finalIncome: any;\n finalData: any;\n houseExpenseData: boolean;\n businessData: boolean;\n salesData: boolean;\n purchaseData: boolean;\n purchaseBillData:boolean=false;\n grossprofit: any;\n assessedProcess: boolean;\n users: any;\n FormId: any;\n pdDetails: any;\n assessedForm:FormGroup;\n alertShown: boolean;\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public fb:FormBuilder,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public alertCtrl:AlertController) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('formDetails');\n this.users = this.aws.getlocale();\n this.assessedForm = this.fb.group(\n {\n calc_type_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n // radio_for_mode:[null,Validators.compose([Validators.required])],\n mode:[null],\n margin:[null],\n purchase_type:[null,Validators.compose([Validators.required])],\n fk_createdby:[null],\n fk_updatedby:[null],\n })\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedDashPage');\n }\n ionViewCanEnter()\n {\n this.getassessedIncome(); \n }\n getViewPage(pageId)\n {\nif(pageId == 11){//Summary\n this.navCtrl.push(PdQuestionAssessedSummaryPage,{'pdDetails':this.pdDetails,'pageId':pageId})\n}\nelse if(pageId == 12){//IMAGES\n this.navCtrl.push(PdQuestionAssessedImagesPage,{'pdDetails':this.pdDetails,'pageId':pageId,'formdetails':this.FormId})\n}\nelse{\n this.navCtrl.push(PdQuestionAssessedInfoPage,{'pdDetails':this.pdDetails,'pageId':pageId});\n}\n }\n\n saveAssessedForm(answerData)\n {\n \n \n if(this.assessedForm.valid)\n {\n console.log(\"mode\",answerData.purchase_type.value)\n if(this.assessedForm.controls['purchase_type'].value == 1 ){\n this.assessedForm.controls['mode'].setValue(1)\n this.assessedForm.controls['margin'].setValue(null)\n \n }\n else if(this.assessedForm.controls['purchase_type'].value == 2){\n this.assessedForm.controls['mode'].setValue(1)\n this.assessedForm.controls['margin'].setValue(null)\n \n }\n else if(this.assessedForm.controls['purchase_type'].value == 0){\n this.assessedForm.controls['mode'].setValue(2)\n this.assessedForm.controls['margin'].setValue(2)\n this.assessedForm.controls['purchase_type'].setValue(null)\n }\n if(this.assessedForm.controls['calc_type_id'].value != null){\n this.assessedForm.controls['fk_updatedby'].setValue(this.users)\n }\n if(this.assessedForm.controls['fk_createdby'].value == null){\n this.assessedForm.controls['fk_createdby'].setValue(this.users);\n }\n console.log(this.assessedForm.value);\n let tempRec=this.assessedForm.value\n tempRec.company_id=this.pdDetails.company_id;\n console.log(\"tempRec\",tempRec)\n let records = {'records':tempRec};\n // delete records.records.radio_for_mode\n\n // console.log(\"after\",records);\n \n \n \n this.qustCat.saveassessedForms('saveAssessedIncomeCalculateMode',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage(\"Saved Successfully..!\")\n setTimeout(()=>{\n this.getassessedIncome();\n })\n \n }else\n {\n\n }\n })\n \n }\n \n }\n\n getassessedIncome()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'company_id':this.pdDetails.company_id};\n this.qustCat.retiverassessedForm('getAssessedIncome',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.assessedProcess = true;\n this.grossprofit = res['records'].gross_profit_calculation_type[0];\n if(res['records'].purchase_details.length !=0)\n {\n this.purchaseData = true;\n }\n if(res['records'].purchase_billwise.length != 0){\n this.purchaseBillData=true;\n }\n if(res['records'].sales_items_by_monthwise.length !=0 || res['records'].sales_declared_by_customer.length !=0 || res['records'].sales_calculated_by_itemwise.length !=0)\n {\n this.salesData = true;\n }\n if(res['records'].business_expenses.length !=0)\n {\n this.businessData = true;\n }\n if(res['records'].house_hold_expenses.length !=0)\n {\n this.houseExpenseData = true;\n }\n if(res['records'].othre_business_income.length !=0)\n {\n this.businessIncome = true;\n }\n \n if(res['records'].final_data.length !=0){\n this.finalAccess = true;\n this.finalData = res['records'].final_data[0]; \n this.finalIncome = this.finalData.income;\n this.finalExpense = this.finalData.expense; \n }\n \n if(this.grossprofit !==undefined && this.grossprofit.length !=0)\n {\n this.grossAccess = true;\n this.assessedForm.controls['mode'].setValue(this.grossprofit.mode);\n if(this.grossprofit.purchase_type == null ){\n this.assessedForm.controls['purchase_type'].setValue(0);\n }\n else{\n this.assessedForm.controls['purchase_type'].setValue(this.grossprofit.purchase_type);\n }\n this.assessedForm.controls['margin'].setValue(this.grossprofit.margin);\n this.assessedForm.controls['calc_type_id'].setValue(this.grossprofit.calc_type_id);\n this.assessedForm.controls['fk_createdby'].setValue(this.grossprofit.fk_createdby);\n }\n \n \n }else\n {\n this.assessedProcess = false;\n }\n });\n }\n completeAI(){\n let updateStatus={\n \"fk_pd_id\":this.pdDetails.pd_id,\n \"company_id\":this.pdDetails.company_id,\n \"calc_type_id\":this.grossprofit.calc_type_id,\n \"is_completed\":1\n }\n let records:any={'records':updateStatus}\n this.qustCat.saveassessedForms('saveAssessedIncomeCalculateMode',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Assessed Income Completed Successfully\")\n setTimeout(()=>{\n this.navCtrl.pop();\n },1000)\n\n }\n else{\n this.toast.pdTriggerappmessage(\"Error\")\n }\n })\n }\n presentConfirm(){\n let alert=this.alertCtrl.create({\n title:'Complete Assessed Income',\n message:'Please confirm you are completing the Assessed Income details?',\n buttons:[\n {\n text:'No',\n role:'no',\n handler:()=>{\n console.log(\"Cancel clicked\");\n //this.alertShown=false\n alert.dismiss\n }\n },\n {\n text:'Yes',\n handler:()=>{\n console.log(\"Exit\");\n this.completeAI()\n }\n }\n ]\n });\n alert.present();\n // this.alertShown=true;\n }\n\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { SQLite, SQLiteObject } from'@ionic-native/sqlite';\n/*\n Generated class for the DatabaseProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class DatabaseProvider {\n database:SQLiteObject;\n constructor(public http: HttpClient,public sql:SQLite) {\n console.log('Hello DatabaseProvider Provider');\n this.createnewdb();\n }\n\n createnewdb()\n {\n // alert('function in');\n this.sql.create(\n {\n name:'sinnedge',\n location:'defalut',\n }).then((db:SQLiteObject)=>\n {\n db.executeSql('CREATE TABLE IF NOT EXISTS expense(rowid INTEGER PRIMARY KEY, date TEXT, type TEXT, description TEXT, amount INT)').then(res => \n {\n // alert('db create');\n this.getuserDetails();\n })\n .catch(e => console.log(e));\n })\n }\n getuserDetails()\n {\n // alert('getusers');\n this.sql.create(\n {\n name:'sineedge',\n location:'default',\n }).then((db:SQLiteObject)=>\n {\n db.executeSql('select * from expense ORDER BY rowid DESC').then((res)=>\n {\n console.log(res);\n })\n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/database/database.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Camera } from '@ionic-native/camera';\n/*\n Generated class for the CameraProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class CameraProvider {\n\n constructor(public http: HttpClient,public camera:Camera) {\n console.log(\n \"%cWelcome, Camera Provider\",\n \"font-size:300%;color:purple;font-weight:bold;font-family:Mongoose; text-transform: uppercase;\"\n );\n }\n getpicture() \n {\n const options = {\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 500,\n correctOrientation: true\n };\n\n // If set to crop, restricts the image to a square of 600 by 600\n \n\n return this.camera.getPicture(options).then(imageData => {\n console.log('From Camera.ts - getPicture fn image are',imageData)\n const base64Image = 'data:image/png;base64,' + imageData;\n console.log(\"base 64\",base64Image);\n return base64Image;\n }, error => {\n console.log('CAMERA ERROR -> ' + JSON.stringify(error));\n return \"error\"\n });\n \n }\n\n getcommonpicture() \n {\n const options = {\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 500,\n correctOrientation: true\n };\n\n // If set to crop, restricts the image to a square of 600 by 600\n \n\n return this.camera.getPicture(options).then(imageData => {\n console.log('From Camera.ts - getcommonpicture fn image are',imageData)\n const base64Image = 'data:image/png;base64,' + imageData.filter(data=>data.fk_form_id == null);\n console.log(\"base 64\",base64Image);\n return base64Image;\n }, error => {\n console.log('CAMERA ERROR -> ' + JSON.stringify(error));\n return \"error\"\n });\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/common-provider/camera.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LoadingController } from 'ionic-angular';\nimport { async } from 'rxjs/internal/scheduler/async';\n/*\n Generated class for the LoadingProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class LoadingProvider {\n\n loading: any;\n constructor(public http: HttpClient,public loadingCtrl:LoadingController) {\n console.log('Hello LoadingProvider Provider');\n }\n\n pdloader(content)\n {\n this.loading = this.loadingCtrl.create({\n content: content\n });\n\n this.loading.present();\n }\n loaderForSendImage(){\n const loading=this.loadingCtrl.create({\n content:'Sending...',\n duration:2000,\n })\n return loading.present();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/common-provider/loading.ts","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 258;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/@angular/core/esm5 lazy\n// module id = 258\n// module chunks = 2","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncatched exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 301;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src lazy\n// module id = 301\n// module chunks = 2","import { Component,OnInit, ViewEncapsulation } from '@angular/core';\nimport { IonicPage, NavController, NavParams, MenuController } from 'ionic-angular';\nimport { AlertController } from 'ionic-angular';\n// import {Validators, FormBuilder, FormGroup } from '@angular/forms';\n// import { GridPage } from '../grid/grid';\n\n\nimport { FingerprintAIO ,FingerprintOptions} from '@ionic-native/fingerprint-aio';\nimport { Camera } from '@ionic-native/camera';\n// import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\n// import { CustomValidators } from 'ng2-validation';\n\nimport { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { PasswordPage } from '../password/password';\nimport { ToastProvider } from '../../providers/common-provider/toast';\n\n\n@Component({\n selector: 'page-login',\n templateUrl: 'login.html',\n})\nexport class LoginPage {\n users: any;\nchangepass: FormGroup;\nemail: string;\npassword: string;\nnewpassword: any;\nconfirmPassword: any;\nchangePassword: any;\nstatus: Boolean = false;\nconfig: MatDialogConfig = {\n disableClose: false,\n width: '',\n height: '',\n position: {\n top: '',\n bottom: '',\n left: '',\n right: ''\n }\n};\nconstructor( public aws: AwsServiceProvider, public dialog: MatDialog,\npublic shared:CognitoServiceProvider,public navCtrl:NavController,public Menu:MenuController\n,public toast:ToastProvider) {\n \n}\nngOnInit(){\n //this.loggedInCheck();\n \n}\nionViewDidEnter(){\n this.Menu.enable(false);\n}\nionViewWillLeave(){\n this.Menu.enable(true);\n}\n/**\n* @param email\n* @param password\n* AWS login service\n*/\nlogin() {\n // console.log(this.email);\n if(this.email !==undefined && this.password !==undefined && this.email !='' && this.password !='' && this.email !=null && this.password !=null ){\n let auth = { 'Username': this.email, 'Password': this.password };\n this.aws.dologin(auth).subscribe(awsres => {\n let userid = this.aws.getlocale();\n \n this.aws.getuserprofile(userid).subscribe(usersres=>\n {\n this.users = usersres; \n \n if (this.users.dataStatus == true) {\n \n if(this.users.records[0].role_name == \"PD Officer\" || this.users.records[0].role_name == \"PD Executive\"){\n this.navCtrl.setRoot(PdListPage);\n \n }else\n {\n \n this.toast.pdTriggerappmessage('This App only for PD Officers');\n localStorage.clear();\n }\n\n \n }\n });\n }, err => {\n console.log(JSON.stringify(err.message));\n if (err.message == \"New password is required.\") {\n //console.log(\"if\");\n this.navCtrl.setRoot(PasswordPage,{'Username':this.email,'Password':this.password});\n } else {\n console.log(JSON.stringify(err.message));\n this.toast.pdTriggerappmessage(JSON.stringify(err.message));\n\n }\n //alert(err.message);\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter Email or Password');\n }\n}\n/**\n * New password set\n * Defalut aws function \n * @param email password,newpassword\n */\n// newpassopen() {\n// let dialogRef = this.dialog.open(NewPasswordDialog, this.config);\n// dialogRef.afterClosed().subscribe(result => {\n// if (result !== undefined) {\n// let auth = { 'Username': this.email, 'Password': this.password, 'newpassword': result };\n// console.log(auth);\n// this.aws.dologin(auth).subscribe(res => {\n// console.log(res);\n// // this.router.navigate(['/home']);\n// }, err => {\n// // alert(err.message);\n\n// })\n// }\n// });\n// }\n\nforgotopen() {\n this.status = true;\n}\n\n\nforgotpassword() {\n\n let auth = { 'Username': this.email };\n console.log(auth);\n // this.aws.userforgotpass(auth).subscribe(res => {\n // console.log(res);\n\n // })\n}\nloggedInCheck(){\n //alert(this.shared.isLoggedIn);\n if(this.shared.isLoggedIn){\n alert(\"if\");\n // this.router.navigate(['/home']);\n return false;\n }else{\n alert(\"else\");\n \n return true;\n }\n}\n\n}\n\n// ======================= END ==============================\n/**\n* New password Dialog\n*/\n\n// const newpassword = new FormControl('', Validators.required);\n// const confirmPassword = new FormControl('');\n\n// @Component({\n// selector: 'app-jazz-dialog',\n// template: `\n//
New Password Change.
\n\n// \n// \n \n// \n\n\n//
\n// \n// \n// \n\n// Passwords do not math.\n\n//
\n \n// \n \n \n// `\n// })\n// export class NewPasswordDialog {\n\n// newpassword: any = newpassword;\n// confirmPassword: any = confirmPassword;\n// jazzMessage = 'Jazzy jazz jazz';\n\n// constructor(public dialogRef: MatDialogRef) {\n\n// }\n\n\n// }\n\n\n\n// @Component({\n// selector: 'app-jazz-dialog',\n// template: `\n//
Forgot Password
\n\n// \n// \n \n// \n\n\n\n//
\n \n// \n \n \n// `\n// })\n// export class ForgotPass {\n\n// newpassword: any = newpassword;\n// confirmPassword: any = confirmPassword;\n// jazzMessage = 'Jazzy jazz jazz';\n\n// constructor(public dialogRef: MatDialogRef) {\n\n// }\n\n// }\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/login/login.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,Slides , Content, Platform } from 'ionic-angular';\nimport { FormBuilder,FormGroup,FormArray, Validators} from '@angular/forms';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\n\nimport { CameraProvider } from '../../providers/common-provider/camera';\nimport { ToastProvider } from '../../providers/common-provider/toast';\n/**\n * Generated class for the PdQuestionPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nconst currentdate = new Date().toJSON().slice(0,19).replace('T',' ');\n\n\n@Component({\n selector: 'page-pd-question',\n templateUrl: 'pd-question.html',\n})\nexport class PdQuestionPage {\n \n docqustid: any;\n docName: any = [];\n docArray: any = [];\n imageArray:any = [];\n questionCate: any;\n qustCate: any;\n pdinfo: any;\n items: FormArray;\n @ViewChild('SwipedTabsSlider') SwipedTabsSlider: Slides ;\n @ViewChild('MultiItemsScrollingTabs') ItemsTitles : Content;\n\n SwipedTabsIndicator :any= null;\n tabTitleWidthArray :any= [];\n tabElementWidth_px :number= 50;\n screenWidth_px :number= 0;\n isRight :boolean= false;\n isLeft:boolean= false;\n tabs:any=[];\n \n questionDetails: any;\n questionAnswer:FormGroup;\n questionanotherData:FormGroup;\n userid:any;\n questionId:any;\n qustType:any;\n constructor(public navCtrl: NavController, public navParams: NavParams, platform: Platform,public fb:FormBuilder,public qstDetails:QuestionCategoryProvider,public aws:AwsServiceProvider,public camera:CameraProvider,public toast:ToastProvider) {\n \n this.screenWidth_px=platform.width();\n\n \n this.questionAnswer = this.fb.group(\n {\n answerDetails:[null],\n items:this.fb.array([]),\n })\n this.questionanotherData = this.fb.group(\n {\n questionRemarks:[null]\n })\n this.getpdQuestionDetails();\n this.userid = this.aws.getlocale();\n}\n\n ionViewDidLoad() {\n }\n ionViewDidEnter() {\n this.SwipedTabsIndicator = document.getElementById(\"indicator\");\n for (let i in this.tabs)\n this.tabTitleWidthArray.push(document.getElementById(\"tabTitle\"+i).offsetWidth);\n\n this.selectTab(0);\n }\n\n ionViewWillLeave() {\n this.navCtrl.setRoot(PdQuestionCategoryPage,{'pdDetails':this.pdinfo});\n }\n\n scrollIndicatiorTab()\n {\n this.ItemsTitles.scrollTo(this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())-this.screenWidth_px/2,0);\n // let answerDetails = this.questionAnswer.value;\n // let remarks = this.questionanotherData.value;\n if(this.isLeft)\n {\n //this.prev(answerDetails,remarks,this.questionDetails);\n }\n if(this.isRight)\n {\n //this.saveQuestionDetails(answerDetails,remarks,this.questionDetails);\n }\n }\n\n selectTab(index)\n {\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n this.SwipedTabsSlider.slideTo(index);\n \n }\n\n calculateDistanceToSpnd(index)\n {\n var result=0;\n for (var _i = 0; _i < index; _i++) {\n result=result+this.tabTitleWidthArray[_i];\n }\n return result;\n }\n\n updateIndicatorPosition() {\n var index=this.SwipedTabsSlider.getActiveIndex();\n if( this.SwipedTabsSlider.length()==index)\n index=index-1;\n\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n \n }\n\n updateIndicatorPositionOnTouchEnd()\n {\n setTimeout( () => { this.updateIndicatorPosition(); }, 200);\n }\n\n animateIndicator($event)\n {\n \n this.isLeft=false;\n this.isRight=false;\n \n var currentSliderCenterProgress =(1/(this.SwipedTabsSlider.length()-1) )*this.SwipedTabsSlider.getActiveIndex();\n if($event.progress < currentSliderCenterProgress)\n {\n this.isLeft=true;\n this.isRight=false;\n\n } if($event.progress > currentSliderCenterProgress)\n {\n this.isLeft=false;\n this.isRight=true;\n }\n\n if(this.SwipedTabsSlider.isEnd())\n this.isRight=false;\n\n if( this.SwipedTabsSlider.isBeginning())\n this.isLeft=false;\n\n if(this.isRight)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()+1])\n +'px,0,0)';\n\n if(this.isLeft)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()-1])\n +'px,0,0)';\n\n if(!this.isRight && !this.isLeft)\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()]+\"px\";\n \n \n }\n /**\n * Pd Discussion Qustion Load\n */\n getpdQuestionDetails()\n {\n this.questionDetails = this.navParams.get('questionDetails');\n this.pdinfo = this.navParams.get('pdDetails');\n for(let qustimage of this.questionDetails.questions)\n { \n if(qustimage.images !==undefined){\n for(let image of qustimage.images)\n {\n image.questionId = qustimage.fk_question_id; \n this.docArray.push(image);\n }\n for(let answers of qustimage.answers)\n {\n if(qustimage.fk_question_answertype == 3)\n {\n this.items = this.questionAnswer.get('items') as FormArray;\n \n this.items.push(this.getquestionAnswer(answers));\n \n \n }\n }\n }\n }\n for(let i=1;i<=this.questionDetails.questions_count;i++){\n let j = i.toString();\n this.tabs.push(j);\n }\n }\n\ngetquestionAnswer(answers)\n{\n return this.fb.group(\n {\n \"pd_detail_answer_id\":answers.pd_detail_answer_id,\n \"pd_answer_id\":answers.question_answer_id,\n \"pd_answer\": answers.answer,\n \"pd_answer_weightage\": answers.template_answer_weightage,\n \"fk_pd_id\":this.pdinfo.pd_id,\n \"fk_pd_detail_id\":answers.fk_pd_detail_id,\n \"checkbox\":(answers.isactive == null?false:true)\n \n \n })\n}\n // count = 0;\n getDocUpload(qustid)\n {\n // this.docqustid = qustId;\n this.camera.getpicture().then(res=>\n {\n if(res !== undefined){\n this.docArray.push({'pd_document_name':res,'pd_document_title':'','questionId':qustid});\n }\n });\n // this.count++;\n }\n docnames(name,id,image,qustid)\n {\n this.docArray[id] = {'pd_document_name':image,'pd_document_title':name,'questionId':qustid};\n }\n removeimage(index){\n //for(let i=0;i<=this.igrimage.length;i++){\n //if(this.igrimage[i]== this.igrimage[index]){\n this.docArray.splice(index,1);\n //}\n //}\n }\n saveQuestionDetails(answerDetails,questionRemarks,questionDetails)\n {\n \n for(let docs of this.docArray)\n {\n \n if(docs.pd_document_title !='' && docs.pd_document_title != null && docs.pd_document_title !== undefined){\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':docs.pd_document_title});\n // return true;\n }else\n {\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':\"docNames\"});\n \n }\n }\n if(answerDetails.answerDetails !=null){\n //alert('answers');\n let pd_id = this.pdinfo.pd_id;\n let catid = questionDetails.fk_question_category_id;\n let qt_id = questionDetails.questions.filter(qst=>qst.template_question_id == answerDetails.answerDetails.fk_template_question_id)[0];\n let qut_id = qt_id.fk_question_id;\n let qustName = qt_id.question;\n let qut_weightage = qt_id.question_weightage;\n let ans_id = answerDetails.answerDetails.fk_question_answer_id;\n let pd_answer = answerDetails.answerDetails.answer;\n let ans_weightage = answerDetails.answerDetails.template_answer_weightage;\n let pd_remarks = questionRemarks.questionRemarks;\n let updatedby:any='';\n let updateon:any='';\n let createdby:any='';\n let createon:any='';\n let pd_details_id:any='';\n let pd_detail_answer_id:any = '';\n if(qt_id.pd_detail_id ==null)\n {\n createdby = this.userid;\n createon = currentdate;\n pd_details_id = '';\n }else\n {\n pd_details_id = qt_id.pd_detail_id;\n updatedby = this.userid;\n updateon = currentdate;\n pd_detail_answer_id = answerDetails.answerDetails.pd_detail_answer_id;\n }\n let saveRecords = \n {\n \"pd_detail_id\": pd_details_id,\n\t\t\"fk_pd_id\": pd_id,\n\t\t\"fk_category_id\": catid,\n\t\t\"fk_question_id\": qut_id,\n\t\t\"pd_question\": qustName,\n \"pd_question_weightage\": qut_weightage,\n \"question_remark\": pd_remarks,\n \"answers\":[{\"pd_detail_answer_id\": pd_detail_answer_id,\n \"pd_answer_id\":ans_id,\n\t\t\"pd_answer\": pd_answer,\n\t\t\"pd_answer_weightage\": qut_weightage,\n \"fk_pd_id\":pd_id,\n \"fk_pd_detail_id\":pd_details_id,\n\n }],\n\t\t\n\t\t\"fk_createdon\": createon,\n\t\t\"createdby\": createdby,\n\t\t\"fk_updatedon\": updateon,\n \"updatedby\": updatedby,\n \"images\": this.imageArray || \"\",\n \n\n };\n \n // this.qstDetails.saveQusetion(saveRecords).subscribe(res=>\n // {\n // this.qustCate = res;\n // if(this.qustCate.dataStatus == true){\n // this.SwipedTabsSlider.slideNext();\n // this.docArray = [];\n // this.getcategoryList(qt_id,pd_id);\n // }\n // })\n // }else\n // {\n \n // this.SwipedTabsSlider.slideNext(); \n }\n } \n\n getcategoryList(qustinfo,pdId)\n {\n let qustDetails = {\"question_id\":qustinfo.fk_question_id, \"pd_id\":pdId, \"template_id\":qustinfo.fk_template_id, \"category_id\":qustinfo.fk_template_question_category_id\n };\n let answerData:any;\n this.qstDetails.getAnswerTemplate(qustDetails).subscribe(res=>\n {\n answerData = res;\n if(answerData.dataStatus == true)\n {\n \n // answerData = answerData.records;\n // let eachquestion = this.questionDetails.questions.filter(qust=>qust.question_id == answerData.question_id)[0];\n // eachquestion['answers'] = answerData.answers; \n \n // this.questionDetails =\n // this.imageArray = answerData.images;\n // for(let docs of this.imageArray)\n // {\n // this.docArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':docs.pd_document_title,'questionId':''})\n // }\n this.questionanotherData.controls['questionRemarks'].setValue(answerData.question_remark);\n }\n });\n }\n prev(answerDetails,questionRemarks,questionDetails) {\n for(let docs of this.docArray)\n {\n \n if(docs.pd_document_title !='' && docs.pd_document_title != null && docs.pd_document_title !== undefined){\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':docs.pd_document_title});\n // return true;\n }else\n {\n //alert();\n this.imageArray.push({'pd_document_name':docs.pd_document_name,'pd_document_title':\"docNames\"});\n \n }\n }\n if(answerDetails.answerDetails !=null){\n //alert('answers');\n let pd_id = this.pdinfo.pd_id;\n let catid = questionDetails.fk_question_category_id;\n let qt_id = questionDetails.questions.filter(qst=>qst.template_question_id == answerDetails.answerDetails.fk_template_question_id)[0];\n let qut_id = qt_id.fk_question_id;\n let qustName = qt_id.question;\n let qut_weightage = qt_id.question_weightage;\n let ans_id = answerDetails.answerDetails.fk_question_answer_id;\n let pd_answer = answerDetails.answerDetails.answer;\n let ans_weightage = answerDetails.answerDetails.template_answer_weightage;\n let pd_remarks = questionRemarks.questionRemarks;\n let updatedby:any='';\n let updateon:any='';\n let createdby:any='';\n let createon:any='';\n let pd_details_id:any='';\n let pd_detail_answer_id:any = '';\n if(qt_id.pd_detail_id ==null)\n {\n createdby = this.userid;\n createon = currentdate;\n pd_details_id = '';\n }else\n {\n pd_details_id = qt_id.pd_detail_id;\n updatedby = this.userid;\n updateon = currentdate;\n pd_detail_answer_id = answerDetails.answerDetails.pd_detail_answer_id;\n }\n let saveRecords = \n {\n \"pd_detail_id\": pd_details_id,\n \"fk_pd_id\": pd_id,\n \"fk_category_id\": catid,\n \"fk_question_id\": qut_id,\n \"pd_question\": qustName,\n \"pd_question_weightage\": qut_weightage,\n \"question_remark\": pd_remarks,\n \"answers\":[{\"pd_detail_answer_id\": pd_detail_answer_id,\n \"pd_answer_id\":ans_id,\n \"pd_answer\": pd_answer,\n \"pd_answer_weightage\": qut_weightage,\n \"fk_pd_id\":pd_id,\n \"fk_pd_detail_id\":pd_details_id,\n\n }],\n \n \"fk_createdon\": createon,\n \"createdby\": createdby,\n \"fk_updatedon\": updateon,\n \"updatedby\": updatedby,\n \"images\": this.imageArray || \"\",\n \n\n };\n \n this.qstDetails.saveQusetion(saveRecords).subscribe(res=>\n {\n this.qustCate = res;\n if(this.qustCate.dataStatus == true){\n this.SwipedTabsSlider.slidePrev();\n this.docArray = [];\n this.getcategoryList(qt_id,pd_id);\n }\n })\n }else{\n if(this.SwipedTabsSlider.getActiveIndex()!=0){\n this.SwipedTabsSlider.slidePrev();\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';\nimport {FormBuilder,FormControl,FormArray, FormGroup,Validators} from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { Observable, Subject, ReplaySubject, from } from 'rxjs';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport {Camera} from '@ionic-native/camera'\n\nimport {searchValue} from '../search'\nimport { takeUntil } from 'rxjs/operators';\nimport{LoadingProvider} from '../../../providers/common-provider/loading'\nimport {StorageProvider} from '../../../providers/storage/storage'\nimport 'rxjs/add/observable/interval';\nimport { DatePipe } from '@angular/common';\n// import{CacheService} from 'ionic-cache-observable'\n/**\n * Generated class for the PdQuestionAddressPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-address',\n templateUrl: 'pd-question-address.html',\n})\nexport class PdQuestionAddressPage {\n\n // additional_premises: any=[];\n // bussiness_address_type: any=[];\n // formPremisesCityArray: any=[];\n // tempArr: any[];\n // cityData: any = [];\n // PremisesLabel: any=[];\n // formPremisesArray: any=[];\n // z:number = 0;\n \n // PremisesOtherFlag: boolean;\n CITY: any;\n residence: any;\n FormId: any;\n getaddressDetails: any;\n users: any;\n address: string;\n custBehaviour: any;\n cmtlocality: any;\n\n //placeholderName : any = 'Estimated area of the (Address Type)';\n placeholderName:any=[];\n premisesRentAmtInwords:any=[];\n rentAmtInwords : any ;\n\n locality: any = [];\n pdlocation: any = [];\n pdDetails: any;\n questionDetails: any;\n pdQuestionAddress:FormGroup;\n addressTypes:any=[];\n addressRemarksAccess:boolean = false;\n items:FormArray;\n pdState: any;\n pdCity: any;\n pdPincode: any;\n pdOtherPincode: any;\n cityData: any=[];\n pincodeData: any=[];\n stateData: any=[];\n uomData: any=[];\n addressesList: any;\n pincodeValue:any=[]\n cityDataValue:any=[]\n complete_status : boolean = false;\n pipe = new DatePipe('en-US');\n AppxPDLocationImgValid : boolean = false;\n // counts:number = 1;\n private search:searchValue[]\n protected _onDestroy = new Subject();\n public filteredCity: ReplaySubject = new ReplaySubject(1);\n public filteredState:ReplaySubject=new ReplaySubject(1)\n pincodeDataValue: any=[];\n base64: string;\n imageBucket: any=[];\n tab:string='0';\n imageDisplay: any=[];\n public data$:Observable\n timer:any;\n alertnativeCityData: any=[];\n alertnativePincodeData: any=[];\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider,public alerCtrl:AlertController,public constant:ConstantsProvider,\n public camera:Camera,private loading:LoadingProvider,private storagedb:StorageProvider) {\n \n this.questionDetails = this.navParams.get('questionDetails');\n \n this.pdDetails = this.navParams.get('pdDetails');\n \n this.FormId = this.navParams.get('FormId');\n\n this.users = this.aws.getlocale();\n //this.constant.getGeoTag().then(res=>{\n //console.log(\"constructor geo location promise\",res);\n //})\n\n // console.log(\"geo\",this.constant.getGeoTag())\n\n // if(this.pdDetails.addressline2 ! =null || this.pdDetails.addressline3 !=null){\n // this.address = this.pdDetails.addressline1+','+this.pdDetails.addressline2+','+this.pdDetails.addressline3;\n // }else{\n // this.address = this.pdDetails.addressline1+', - , -'; \n // }\n // this.pdState = this.pdDetails.fk_state;\n // this.getCityAndPincodeDetails(this.pdState);\n // this.pdCity = this.pdDetails.fk_city;\n // this.pdPincode = this.pdDetails.pincode_id;\n \n // this.pdOtherPincode = this.pdPincode == 1 ? this.pdDetails.other_pincode : '';\n \n this.getdropdownlist();\n \n //const control=this.pdQuestionAddress.controls['addresses']\n\n this.pdQuestionAddress = this.fb.group(\n {\n // addresses:this.fb.array([]),\n // address_form_remark:[''],\n // alternative_address:this.fb.array([]),\n // address_type_ques:this.fb.array([]),\n // pd_is_done_on_initiated_address:['']\n // address_ownership:[null],\n // other_ownership:[null],\n // rent_amt:[null],\n // other_premises_bussiness_activity : [null],\n // bussiness_activity_remark:[null],\n // bussiness_activity:[null],\n // bussiness_address_type:[null],\n // bussiness_address_type_others:[null], \n // business_years:[null],\n // business_month:[null],\n // additional_address_units: this.fb.array([]),\n addresses: this.fb.array([]),\n is_pd_done_on_initiated_address: [true],\n address_type: ['', Validators.compose([Validators.required])],\n locality: ['', Validators.compose([Validators.required])],\n locality_mixuse: [''],\n pd_location: ['', Validators.compose([Validators.required])],\n comment_locality: ['', Validators.compose([Validators.required])],\n estimated_area: [''],\n uom: [''],\n address_form_remark: ['']\n \n });\n \n //this.loadPD()\n // let con=this.pdQuestionAddress.controls['addresses']['controls']\n \n // this.pdQuestionAddress.controls['addresses']['controls'][0].controls['citySearch'].valueChanges\n // .pipe(takeUntil(this._onDestroy))\n // .subscribe(()=>{\n // this.SearchCity(0);\n // })\n this.timer = Observable.interval(10000)\n .subscribe((val) => { console.log('test',val); });\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n //this.addUnits();\n console.log(\"ionViewDidLoad PdQuestionAddressPage\")\n //this.getaddressForm(); \n let params = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n this.setAddressFromDatas(params);\n // this.getaddressFormFromLocal(); //FOR GETTING DATA FROM LOCAL STORAGE IF IT IS TRUE\n this.getPDImages();\n \n }\n\n \n searchFun(control:any,i:number,option,flag){\n\n if (option == 'city' && flag ==1) {\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'state') {\n\n control.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchState(control.controls['stateSearch'].value)\n })\n }\n if (option == 'pin' && flag ==1) {\n \n control.controls['pinSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchPin(control.controls['pinSearch'].value,i)\n })\n }\n if (option == 'city' && flag ==2) {\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchAlternativeCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'pin' && flag ==2) {\n \n control.controls['pinSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchAlternativePin(control.controls['pinSearch'].value,i)\n })\n }\n }\n searchPin(val:any,index:number){\n if(!this.pincodeData[index]){\n return\n }\n let searchValue=val\n if(!searchValue){\n this.pincodeDataValue[index]=this.pincodeData[index].slice()\n return\n }else{\n searchValue=searchValue.toLowerCase()\n }\n this.pincodeDataValue[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1)\n }\n SearchCity(val: any, i: number) {\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n // this.filteredCity.next(this.cityData[i].slice())\n this.cityDataValue[i]=this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.cityDataValue[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n\n }\n searchAlternativePin(val:any,index:number){\n if(!this.pincodeData[index]){\n return\n }\n let searchValue=val\n if(!searchValue){\n this.alertnativePincodeData[index]=this.pincodeData[index].slice()\n return\n }else{\n searchValue=searchValue.toLowerCase()\n }\n this.alertnativePincodeData[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1)\n }\n SearchAlternativeCity(val: any, i: number) {\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n // this.filteredCity.next(this.cityData[i].slice())\n this.alertnativeCityData[i]=this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.alertnativeCityData[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n\n }\n searchState(val: any) {\n \n if (!this.stateData) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n this.filteredState.next(this.stateData.slice())\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.filteredState.next(\n this.stateData.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n )\n }\n\ncountRowsForTextarea(text){\n \n \n \n if(text !='' && text != undefined){\n if(text.length%100 > 5)\n return 5;\n else if(text.length%100 <= 3)\n return 3;\n else return Math.floor(text.length%100);\n\n }\n}\n\n ionViewWillLeave()\n {\n \n\n // let method = this.alerCtrl.create({\t\t\t\n // message: 'Do You Want Save',\n // buttons: [\n // {\n // text: 'Save',\n // cssClass: 'method-color',\n // handler: () => {\n // \n // }\n // },\n // {\n // text: 'Cancel',\n // cssClass: 'method-color',\n // handler: () => {\n // \n // this.navCtrl.pop(); \n // }\n // }\n // ]\n // });\n // method.present()\n \n \n \n }\n\n ionViewCanLeave(){\n this.timer.unsubscribe();\n \n if(this.pdQuestionAddress.dirty){\n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Form is Modified\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n \n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n \n //For Inserting the data locally\n // this.localInsert(true);\n\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n /** To Get City And Pincode Data For Address Form \n * Param 'stateID' -> selected StateId\n */\n getCityAndPincodeDetails(stateID: string,i,flag) {\n \n //this.pdQuestionAddress.controls['addresses']['controls'].controls\n this.qustCat.getStateWiseCities(stateID).subscribe(data => {\n if (data.status == 200) {\n this.cityData[i] = data.records.cities;\n this.search=this.cityData[i]\n this.pincodeData[i] = data.records.pincode;\n \n //this.filteredCity.next(this.cityData[i].slice())\n if(flag== 1){\n this.cityDataValue[i]=this.cityData[i].slice()\n // this.pincodeData[i] = data.records.pincode;\n this.pincodeDataValue[i]=this.pincodeData[i].slice()\n }\n else if(flag == 2){\n this.alertnativeCityData[i]=this.cityData[i].slice()\n this.alertnativePincodeData[i]=this.pincodeData[i].slice()\n }\n }\n //FOR PINCODE FREE TEXT\n // let pin\n // if(pincode != ''){\n // if(pincode != 1){\n // this.pincodeValue[i]=this.pincodeData[i].filter(res=>res.pincode_id == pincode).map(val=>val.pincode)[0]\n // //this.pincodeValue[i]=[].concat.apply([],this.pincodeValue[i])\n \n\n // }\n // }\n });\n }\n\n\n\n getdropdownlist()\n {\n // this.addressTypes = [\n \n // {'id':'Office','Name':'Office'},\n // {'id':'Clinic','Name':'Clinic'},\n // {'id':'Factory','Name':'Factory'},\n // {'id':'Warehouse','Name':'Warehouse'},\n // {'id':'Shop','Name':'Shop'},\n // {'id':'ResidencecumOffice','Name':'ResidencecumOffice'},\n // {'id':'Residence','Name':'Residence'},\n // {'id':'OTHERS','Name':'OTHERS'}\n // ];\n\n \n this.qustCat.getcommondrop('ADDRESSTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.addressTypes = res['records'].filter(add=>add.isactive==1); \n // this.cacheObservable.register('addressType',this.addressTypes).subscribe(res=>{\n // this.data$=res.get$\n // })\n }\n // this.cacheObservable.loadFromObservable()\n \n })\n \n this.qustCat.getcommondrop('PDLOCATIONAPPROACH').subscribe(res=>\n {\n this.pdlocation = res;\n if(this.pdlocation.dataStatus == true)\n {\n this.pdlocation = this.pdlocation.records.filter(loca=>loca.isactive ==1);\n }\n })\n this.qustCat.getcommondrop('COMMENTSONLOCALITY').subscribe(res=>\n {\n this.cmtlocality = res;\n if(this.cmtlocality.dataStatus ==true)\n {\n this.cmtlocality = this.cmtlocality.records.filter(loc=>loc.isactive ==1);\n }\n });\n\n \n // this.qustCat.getcommondrop('CUSTOMERBEHAVIOUR').subscribe(res=>\n // {\n // this.custBehaviour = res;\n // if(this.custBehaviour.dataStatus == true)\n // {\n // this.custBehaviour = this.custBehaviour.records.filter(cust=>cust.isactive ==1);\n // }\n // })\n this.qustCat.getcommondrop('LOCALITY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.locality = res['records'].filter(loc=>loc.isactive==1);\n }\n })\n\n this.qustCat.getcommondrop('RESIDENCEOWNERSHIP').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.residence = res['records'].filter(red=>red.isactive==1);\n }\n })\n this.qustCat.getcommondrop('CITY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.CITY = res['records'].filter(red=>red.isactive==1);\n }\n })\n this.qustCat.getcommondrop('STATE').subscribe(res=>{\n this.stateData=res['records'].filter(val=>val.isactive == 1);\n this.filteredState.next(this.stateData.slice())\n\n })\n this.qustCat.getcommondrop('UOM').subscribe(res=>{\n this.uomData=res['records'].filter(val=>val.isactive == 1 && val.is_land_uom != 0)\n })\n \n }\n\n // checkaddress(value)\n // {\n // \n // if(value==\"OTHERS\")\n // {\n // this.addressRemarksAccess = true;\n // }else\n // {\n // this.addressRemarksAccess = false;\n // }\n // }\n\n // createItem(): FormGroup {\n // return this.fb.group({\n // name: [null],\n // do_you_know: [null],\n // how_long: [null],\n // is_owner: [null],\n // });\n // };\n \n createUnits(val): FormGroup {\n if(val==null){\n return this.fb.group({\n no_of_additional_units: [''],\n premises_type: [''],\n premises_type_others: [''],\n premises_city: [''],\n // premises_ownership: [''],\n //premises_ownership_others: [''],\n //premises_rent_amt:[''],\n premises_remarks: [''],\n });\n }\n else{\n \n return this.fb.group({\n no_of_additional_units: [val.no_of_additional_units],\n premises_type: [val.premises_type],\n premises_type_others: [val.premises_type_others],\n premises_city: [val.premises_city],\n // premises_ownership: [val.premises_ownership],\n // premises_ownership_others: [val.other_ownership],\n // premises_rent_amt:[val.rent_amt],\n premises_remarks: [val.premises_remarks],\n });\n \n }\n }\n\n addUnits() {\n this.items = this.pdQuestionAddress.get('additional_address_units') as FormArray;\n this.items.push(this.createUnits(null));\n}\n\n\n removeUnits(i){\n this.items.removeAt(i);\n }\n\n ConvertMonthintoYear(e){\n \n let business_year = this.pdQuestionAddress.controls.business_years.value;\n\n let converted_month : number = e%12;\n let converted_year : number = e/12;\n\n this.pdQuestionAddress.controls.business_years.setValue(+business_year + +Math.floor(converted_year));\n this.pdQuestionAddress.controls.business_month.setValue(Math.floor(converted_month));\n \n }\n initAddress(AddressDetails){\n \n if(AddressDetails != null){\n return this.fb.group({\n address: [AddressDetails.address],\n // address_type: [AddressDetails.address_type, Validators.compose([Validators.required])],\n // address_type_others: [AddressDetails.address_type_others],\n state: [AddressDetails.state],\n city: [AddressDetails.city],\n citySearch:[''],\n stateSearch:[''],\n pinSearch:[''],\n pincode: [AddressDetails.pincode],/** ,Validators.compose([Validators.minLength(6),Validators.maxLength(6)]) */\n pincode_others: [AddressDetails.pincode_others, Validators.compose([Validators.minLength(6), Validators.maxLength(6)])],\n // locality: [AddressDetails.locality, Validators.compose([Validators.required])],\n // locality_others: [AddressDetails.locality_others],\n // // locality_mixuse: [AddressDetails.locality_mixuse],\n // pd_location: [AddressDetails.pd_location, Validators.compose([Validators.required])],\n // comment_locality: [AddressDetails.comment_locality, Validators.compose([Validators.required])],\n // estimated_area: [AddressDetails.estimated_area],\n // uom: [AddressDetails.uom],\n // uom_others: [AddressDetails.uom_others] \n })\n }\n else{\n return this.fb.group({\n address: ['' ],\n // address_type: ['', Validators.compose([Validators.required])],\n // address_type_others: [''],\n state: [''],\n city: [''],\n citySearch:[''],\n stateSearch:[''],\n pinSearch:[''],\n pincode: [''],\n pincode_others: ['', Validators.compose([Validators.minLength(6), Validators.maxLength(6)])],\n // locality: ['', Validators.compose([Validators.required])],\n // locality_others: [''],\n // // locality_mixuse: [''],\n // pd_location: ['', Validators.compose([Validators.required])],\n // comment_locality: ['', Validators.compose([Validators.required])],\n // estimated_area: [''],\n // uom: [''],\n // uom_others: [''] \n });\n }\n \n }\n alternativeAddress(e) {\n console.log(e);\n console.log(this.pdQuestionAddress.controls['is_pd_done_on_initiated_address'].value)\n if (e === false) {\n console.log('alternativeAddress false',e);\n this.pdQuestionAddress.addControl('alternative_addresses', this.fb.array([]));\n const alternative_address_control = this.pdQuestionAddress.controls['alternative_addresses'];\n alternative_address_control.push(this.initAlternativeAddress(null));\n }\n else if (e === true) {\n console.log('alternativeAddress',e);\n this.pdQuestionAddress.removeControl('alternative_addresses');\n }\n}\n initAlternativeAddress(add_values){\n if(add_values == null){\nreturn this.fb.group({\n alternative_address:[''],\n alternative_state:[''],\n stateSearch:[''],\n citySearch:[''],\n pinSearch:[''],\n alternative_city:[''],\n alternative_pincode:[''],\n alternative_pincode_others:[''],\n reason_for_alternative_address:['']\n })\n}\nelse{\n return this.fb.group({\n alternative_address:[add_values.alternative_address],\n alternative_state:[add_values.alternative_state],\n stateSearch:[''],\n citySearch:[''],\n pinSearch:[''],\n alternative_city:[add_values.alternative_city],\n alternative_pincode:[add_values.alternative_pincode],\n alternative_pincode_others:[add_values.alternative_pincode_others],\n reason_for_alternative_address:[add_values.reason_for_alternative_address]\n})\n}\n\n }\n /** On Key Press Event For Numbers */\n keyPress(event: any) {\n const pattern = /[0-9]/;\n \n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n inWords(e,i){ \n \n this.premisesRentAmtInwords[i] = this.constant.convertNumberToWords(e.target.value);\n \n }\n\n inWordsForRent(e){\n \n this.rentAmtInwords = this.constant.convertNumberToWords(e.target.value);\n }\n\n selectedAddressType(e: any,i){\n this.placeholderName[0] = 'Estimated area of the ' + e;\n }\n imageMandatoryCheck(){\n if(this.pdQuestionAddress.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields marked with ' * '\")\n return\n }\n if(this.AppxPDLocationImgValid == false){\n //this.toast.pdTriggerappmessage(\"Please Take the Image for Approach to PD Location\");\n let alert=this.toast.setAlert(\"Mandatory photographs not taken\",\" Do you want to take it later?\")\n alert.present();\n alert.onDidDismiss(value=>{\n if(value=='s'){\n this.onSubmit()\n }\n else{\n return true;\n }\n })\n }\n else{\n this.onSubmit()\n }\n \n }\n onSubmit() {\n\n // if(this.pdQuestionAddress.invalid){\n // this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields marked with ' * '\")\n // return\n // }\n // if(this.AppxPDLocationImgValid == false){\n // //this.toast.pdTriggerappmessage(\"Please Take the Image for Approach to PD Location\");\n \n // }\n // else if (this.addressForm.value.address_form_remark == '') {\n // this.notifier.notify('warning', 'Fill Remark!');\n // this.disableAfterSubmit = false;\n // return;\n // }\n \n // console.log('this.addressForm.controls.addresses.value;', this.pdQuestionAddress.value);\n\n let records: any = {};\n\n records.addresses = this.pdQuestionAddress.controls.addresses.value;\n records.is_pd_done_on_initiated_address = this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.value\n\n if (this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.value == true) {\n if(records.addresses[0].pincode != 1){\n delete records.addresses[0].pincode_others\n }\n records.addresses[0].address_type = this.pdQuestionAddress.controls.address_type.value;\n if (this.pdQuestionAddress.controls.address_type.value == 1) {\n records.addresses[0].address_type_others = this.pdQuestionAddress.controls.address_type_others.value;\n }\n records.addresses[0].locality = this.pdQuestionAddress.controls.locality.value;\n if (this.pdQuestionAddress.controls.locality.value == 1) {\n records.addresses[0].locality_others = this.pdQuestionAddress.controls.locality_others.value;\n }\n records.addresses[0].locality_mixuse = this.pdQuestionAddress.controls.locality_mixuse.value;\n records.addresses[0].pd_location = this.pdQuestionAddress.controls.pd_location.value;\n records.addresses[0].comment_locality = this.pdQuestionAddress.controls.comment_locality.value;\n records.addresses[0].estimated_area = this.pdQuestionAddress.controls.estimated_area.value;\n records.addresses[0].uom = this.pdQuestionAddress.controls.uom.value;\n records.addresses[0].citySearch = '';\n records.addresses[0].pinSearch = '';\n records.addresses[0].stateSearch = '';\n if (this.pdQuestionAddress.controls.uom.value == 1) {\n records.addresses[0].uom_others = this.pdQuestionAddress.controls.uom_others.value;\n }\n }\n else if (this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.value == false) {\n records.alternative_addresses = this.pdQuestionAddress.controls.alternative_addresses.value;\n records.alternative_addresses[0].address_type = this.pdQuestionAddress.controls.address_type.value;\n if(records.addresses[0].alternative_pincode != 1){\n delete records.addresses[0].alternative_pincode_others\n }\n if (this.pdQuestionAddress.controls.address_type.value == 1) {\n records.alternative_addresses[0].address_type_others = this.pdQuestionAddress.controls.address_type_others.value;\n }\n records.alternative_addresses[0].locality = this.pdQuestionAddress.controls.locality.value;\n if (this.pdQuestionAddress.controls.locality.value == 1) {\n records.alternative_addresses[0].locality_others = this.pdQuestionAddress.controls.locality_others.value;\n }\n records.alternative_addresses[0].locality_mixuse = this.pdQuestionAddress.controls.locality_mixuse.value;\n records.alternative_addresses[0].pd_location = this.pdQuestionAddress.controls.pd_location.value;\n records.alternative_addresses[0].comment_locality = this.pdQuestionAddress.controls.comment_locality.value;\n records.alternative_addresses[0].estimated_area = this.pdQuestionAddress.controls.estimated_area.value;\n records.alternative_addresses[0].uom = this.pdQuestionAddress.controls.uom.value;\n records.alternative_addresses[0].citySearch == '' ? delete records.alternative_addresses[0].citySearch : '';\n records.alternative_addresses[0].pinSearch == '' ? delete records.alternative_addresses[0].pinSearch : '';\n records.alternative_addresses[0].stateSearch == '' ? delete records.alternative_addresses[0].stateSearch : '';\n if (this.pdQuestionAddress.controls.uom.value == 1) {\n records.alternative_addresses[0].uom_others = this.pdQuestionAddress.controls.uom_others.value;\n }\n }\n records.address_form_remark = this.pdQuestionAddress.controls.address_form_remark.value;\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n\n // console.log('Final records', records);\n\n \n\n this.qustCat.saveForm(records).subscribe(data => {\n if (data['status'] == 200) {\n this.pdQuestionAddress.reset(this.pdQuestionAddress.value);\n //FOR UPDATING THE FORM STATUS IN LOCAL\n // this.localInsert(false);\n this.toast.pdTriggerappmessage('Record Saved Successfully');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000); \n }\n else {\n this.toast.pdTriggerappmessage( 'Something Wents Wrong Try Again.!');\n \n }\n }, error => {\n this.toast.pdTriggerappmessage( 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur');\n \n });\n \n\n }\n\n savepdQuestionOLD(answerData)\n {\n let records: any = {};\n // records.address = answerData.address;\n // if(answerData.address_type_others != null){\n // records.address_type_others = answerData.address_type_others;\n // }\n // // records.state =answerData.state\n // records.city = answerData.city\n\n // records.pincode = answerData.pincode\n // records.pincode_others = answerData.pincode== 1 ?\n // this.pdQuestionAddress.controls.pincode_others.value : '';\n\n // records.address_type = answerData.address_type;\n // records.locality = answerData.locality;\n \n // records.locality_others = answerData.locality == 1 ?\n // this.pdQuestionAddress.controls.locality_others.value : '';\n\n // records.locality_mixuse = answerData.locality == 5 ?\n // this.pdQuestionAddress.controls.locality_mixuse.value : '';\n\n // records.pd_location = answerData.pd_location;\n // records.comment_locality = answerData.comment_locality;\n // records.other_comment_locality = answerData.other_comment_locality;\n // records.estimated_area = answerData.estimated_area;\n\n // records.uom = answerData.uom;\n // records.uom_others = answerData.uom == 1 ?\n // this.pdQuestionAddress.controls.uom_others.value : '';\n // records.customer_behaviour = answerData.customer_behaviour;\n // records.neighbourhood = answerData.neighbourhood;\n \n // answerData.addresses.forEach(element=>{\n // let temp=element.pincode\n // element.pincode=1\n // element.pincode_others=temp\n // })\n if(this.pdQuestionAddress.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields marked with ' * '\")\n return\n }\n if(this.AppxPDLocationImgValid == false){\n this.toast.pdTriggerappmessage(\"Please Take the Image for Approach to PD Location\");\n return\n }\n records.addresses=answerData.addresses\n // records.addressess\n records.address_form_remark=answerData.address_form_remark\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.address_form_remark = answerData.address_form_remark;\n // records.address_ownership = answerData.address_ownership;\n // records.other_ownership = answerData.other_ownership;\n // records.rent_amt = answerData.rent_amt;\n // records.other_premises_bussiness_activity = answerData.other_premises_bussiness_activity;\n // records.bussiness_activity = answerData.bussiness_activity;\n // records.bussiness_activity_remark = answerData.bussiness_activity_remark;\n // records.business_years = answerData.business_years;\n // records.business_month = answerData.business_month;\n \n // records.additional_address_units = answerData.additional_address_units;\n \n \n \n this.qustCat.saveForm(records).subscribe(data => {\n // let params: any = {};\n // params.pd_id = '250';\n // params.pd_form_id = '250';\n \n // setTimeout(function(){\n // this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n // },5000)\n if(data['dataStatus']==true){\n //TO CHANGE THE FORM STATE \n\n this.pdQuestionAddress.reset(this.pdQuestionAddress.value);\n //FOR UPDATING THE FORM STATUS IN LOCAL\n // this.localInsert(false);\n this.toast.pdTriggerappmessage('Record Saved Successfully');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000); \n }\n },err=>{\n this.toast.pdTriggerappmessage('Something went wrong ');\n });\n }\n\n setAddressFromDatas(params){\n this.qustCat.retiverForm(params).subscribe(data => {\n\n const control = this.pdQuestionAddress.controls['addresses'];\n if (data['status'] == 200) {\n let initiated_address_check =data['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? data['records'].is_pd_done_on_initiated_address : true ;\n this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.setValue(initiated_address_check);\n if (data['records'].addresses.length == 0) {\n control.push(this.initAddress(null));\n } else {\n data['records'].addresses.forEach((datas, index) => {\n let obj = {\n 'address': datas.address,\n 'state': datas.state,\n 'city': datas.city,\n 'pincode': datas.pincode,\n 'pincode_others': datas.pincode ? datas.pincode_others : ''\n }\n this.getCityAndPincodeDetails(datas.state, index, 1);\n control.push(this.initAddress(obj));\n \n if (datas.address_type_others == \"\" || datas.address_type_others == null){\n delete datas.address_type_others;\n }\n\n if (datas.citySearch == \"\" || datas.citySearch == null){\n delete datas.citySearch;\n }\n\n if (datas.locality_others == \"\" || datas.locality_others == null){\n delete datas.locality_others;\n }\n if (datas.pinSearch == \"\" || datas.pinSearch == null){\n delete datas.pinSearch;\n }\n if (datas.pincode_others == \"\" || datas.pincode_others == null){\n delete datas.pincode_others;\n }\n if (datas.stateSearch == \"\" || datas.stateSearch == null){\n delete datas.stateSearch;\n }\n if (datas.uom_others == \"\" || datas.uom_others == null){\n delete datas.uom_others;\n }\n \n if (initiated_address_check === true) {\n\n this.pdQuestionAddress.controls.pd_location.setValue(datas.pd_location ? datas.pd_location : '');\n this.pdQuestionAddress.controls.address_type.setValue(datas.address_type ? datas.address_type : '');\n\n let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n this.selectedAddressType(selectedAddressType.address_type,index);\n this.setOthers(datas.address_type, '', 3);\n\n if (datas.address_type == 1) {\n this.pdQuestionAddress.controls.address_type_others.setValue(datas.address_type_others);\n this.selectedAddressType(datas.address_type_others,index);\n }\n\n this.pdQuestionAddress.controls.comment_locality.setValue(datas.comment_locality ? datas.comment_locality : '');\n this.pdQuestionAddress.controls.locality.setValue(datas.locality ? datas.locality : '');\n\n this.setOthers(datas.locality, '', 4);\n\n if (datas.locality == 1) {\n this.pdQuestionAddress.controls.locality_others.setValue(datas.locality_others);\n }\n\n this.pdQuestionAddress.controls.estimated_area.setValue(datas.estimated_area ? datas.estimated_area : '');\n this.pdQuestionAddress.controls.uom.setValue(datas.uom);\n\n this.setOthers(datas.uom, '', 5);\n if (data['records'].uom == 1) {\n this.pdQuestionAddress.controls.uom_others.setValue(datas.uom_others);\n }\n }\n });\n }\n\n if (initiated_address_check == false) {\n \n this.pdQuestionAddress.addControl('alternative_addresses', this.fb.array([]));\n const alternative_address_control = this.pdQuestionAddress.controls['alternative_addresses'];\n if (data['records'].alternative_addresses.length > 0) {\n \n data['records'].alternative_addresses.forEach((datas, index) => {\n \n // if (datas.citySearch == \"\" || datas.citySearch == null){\n // delete datas.citySearch;\n // } \n // if (datas.pinSearch == \"\" || datas.pinSearch == null){\n // delete datas.pinSearch;\n // }\n // if (datas.stateSearch == \"\" || datas.stateSearch == null){\n // delete datas.stateSearch;\n // }\n \n let obj = {\n 'alternative_address': datas.alternative_address,\n 'alternative_state': datas.alternative_state,\n 'alternative_city': datas.alternative_city,\n 'alternative_pincode': datas.alternative_pincode,\n 'alternative_pincode_others': datas.alternative_pincode == 1 ? datas.alternative_pincode_others : '',\n 'reason_for_alternative_address': datas.reason_for_alternative_address,\n }\n this.getCityAndPincodeDetails(datas.alternative_state, index, 2);\n alternative_address_control.push(this.initAlternativeAddress(obj));\n \n this.pdQuestionAddress.controls.pd_location.setValue(datas.pd_location);\n this.pdQuestionAddress.controls.address_type.setValue(datas.address_type);\n\n let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n this.selectedAddressType(selectedAddressType.address_type,index);\n\n this.setOthers(datas.address_type, '', 3);\n\n if (datas.address_type == 1) {\n this.pdQuestionAddress.controls.address_type_others.setValue(datas.address_type_others);\n this.selectedAddressType(datas.address_type_others,index);\n }\n\n this.pdQuestionAddress.controls.comment_locality.setValue(datas.comment_locality);\n\n this.pdQuestionAddress.controls.locality.setValue(datas.locality);\n this.setOthers(datas.locality, '', 4);\n\n if (datas.locality == 1) {\n this.pdQuestionAddress.controls.locality_others.setValue(datas.locality_others);\n }\n\n this.pdQuestionAddress.controls.estimated_area.setValue(datas.estimated_area);\n this.pdQuestionAddress.controls.uom.setValue(datas.uom);\n this.setOthers(datas.uom, '', 5);\n if (data['records'].uom == 1) {\n this.pdQuestionAddress.controls.uom_others.setValue(datas.uom_others);\n }\n\n });\n }\n }\n this.pdQuestionAddress.controls.address_form_remark.setValue(data['records'].address_form_remark);\n }\n else {\n this.getaddressForm();\n }\n // else {\n // control.push(this.createAddresses(null));\n // }\n });\n }\n getaddressFormFromLocal(){\n let local_value:any;\n let data:any={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id};\n // data.pd_id=this.pdDetails.pd_id\n // data.form_id=this.FormId.form_id\n this.storagedb.retrieveLocalStorage(data).then(res=>{\n \n if(res){\n let val_rec:any={}\n val_rec.records=res[0]\n local_value=res[0]\n console.log(\"addd\",val_rec,\"loca\",local_value)\n \n const control=this.pdQuestionAddress.controls['addresses']\n this.getaddressDetails = val_rec;\n \n if(local_value.active == true){\n if(this.getaddressDetails.records.addresses ){\n \n this.getaddressDetails = this.getaddressDetails.records.addresses;\n\n if(this.getaddressDetails.length == 0 ){\n control.push(this.initAddress(''));\n }\n else{\n this.getaddressDetails.forEach((datas,index)=>{\n \n this.getCityAndPincodeDetails(datas.state,index,1)\n if(datas.pincode == 1){\n this.pincodeValue[index]=datas.pincode_others\n }//if(val==true){\n \n let val={\n 'address': datas.address,\n // 'address_type': datas.address_type,\n // 'address_type_others': datas.address_type_others,\n 'state': datas.state,\n 'city': datas.city,\n 'pincode':datas.pincode,\n 'pincode_others':datas.pincode_others,\n // 'locality': datas.locality,\n // 'locality_others': datas.locality_others,\n // // 'locality_mixuse': datas.locality_mixuse,\n // 'pd_location': datas.pd_location,\n // 'comment_locality': datas.comment_locality,\n // 'estimated_area': datas.estimated_area,\n // 'uom': datas.uom,\n // 'uom_others': datas.uom_others\n }\n \n // let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n \n if(datas.address_type != ''){\n this.selectedAddressType(datas.address_type,index);\n // this.selectedAddressType(selectedAddressType.address_type,index);\n if (datas.address_type == 1) {\n this.selectedAddressType(datas.address_type_others,index);\n }\n }\n control.push(this.initAddress(val))\n })\n this.pdQuestionAddress.controls.address_form_remark.setValue(val_rec.records.address_form_remark);\n }\n }\n else{\n control.push(this.initAddress(''))\n }\n }\n else{\n this.getaddressForm()\n }\n }\n else{\n this.getaddressForm()\n }\n \n \n \n })\n \n \n }\n setOthers(e, i, flag) {\n switch (flag) {\n case 1:\n const control = this.pdQuestionAddress.controls['addresses'];\n let ChildCtrl: any = control.controls[i];\n e == 1 ? ChildCtrl.addControl('pincode_others', new FormControl('', Validators.required)) : ChildCtrl.removeControl('pincode_others');\n break;\n case 2:\n const alternative_address_control = this.pdQuestionAddress.controls['alternative_addresses'];\n let AltChildCtrl: any = alternative_address_control.controls[i];\n e == 1 ? AltChildCtrl.addControl('alternative_pincode_others', new FormControl('', Validators.required)) : AltChildCtrl.removeControl('alternative_pincode_others');\n break;\n case 3:\n e == 1 ? this.pdQuestionAddress.addControl('address_type_others', new FormControl('', Validators.required)) : this.pdQuestionAddress.removeControl('address_type_others');\n break;\n case 4:\n e == 1 ? this.pdQuestionAddress.addControl('locality_others', new FormControl('', Validators.required)) : this.pdQuestionAddress.removeControl('locality_others');\n break;\n case 5:\n e == 1 ? this.pdQuestionAddress.addControl('uom_others', new FormControl('', Validators.required)) : this.pdQuestionAddress.removeControl('uom_others');\n break;\n }\n }\n\n\n getaddressForm()\n {\n \n let res:any;\n\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n // this.addressesList = data.records.filter(item => item.assigned_pd == this.pdid && item.isactive == 1);\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n \n const control=this.pdQuestionAddress.controls['addresses']\n this.getaddressDetails = res;\n \n if(this.getaddressDetails.dataStatus ==true){\n if(this.getaddressDetails.records.addresses ){\n \n this.getaddressDetails = this.getaddressDetails.records.addresses;\n\n if(this.getaddressDetails.length == 0 ){\n control.push(this.initAddress(''));\n }\n else{\n \n this.getaddressDetails.forEach((datas,index)=>{\n if (datas.address_type_others == \"\" || datas.address_type_others == null){ delete datas.address_type_others;}\n if (datas.citySearch == \"\" || datas.citySearch == null){delete datas.citySearch;}\n if (datas.locality_others == \"\" || datas.locality_others == null){delete datas.locality_others;}\n if (datas.pinSearch == \"\" || datas.pinSearch == null){delete datas.pinSearch;}\n if (datas.pincode_others == \"\" || datas.pincode_others == null){delete datas.pincode_others;}\n if (datas.stateSearch == \"\" || datas.stateSearch == null){delete datas.stateSearch;}\n if (datas.uom_others == \"\" || datas.uom_others == null){delete datas.uom_others;}\n \n this.getCityAndPincodeDetails(datas.state,index,1)\n if(datas.pincode == 1){\n this.pincodeValue[index]=datas.pincode_others\n }//if(val==true){\n \n let val={\n 'address': datas.address,\n // 'address_type': datas.address_type,\n // 'address_type_others': datas.address_type_others,\n 'state': datas.state,\n 'city': datas.city,\n 'pincode':datas.pincode,\n 'pincode_others':datas.pincode_others,\n // 'locality': datas.locality,\n // 'locality_others': datas.locality_others,\n // // 'locality_mixuse': datas.locality_mixuse,\n // 'pd_location': datas.pd_location,\n // 'comment_locality': datas.comment_locality,\n // 'estimated_area': datas.estimated_area,\n // 'uom': datas.uom,\n // 'uom_others': datas.uom_others\n }\n if(datas.address_type != ''){\n let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas.address_type)[0];\n this.selectedAddressType(selectedAddressType.address_type,index);\n if (datas.address_type == 1) {\n this.selectedAddressType(datas.address_type_others,index);\n }\n }\n control.push(this.initAddress(val))\n this.pdQuestionAddress.controls.pd_location.setValue(datas.pd_location ? datas.pd_location : '');\n this.pdQuestionAddress.controls.address_type.setValue(datas.address_type ? datas.address_type : '');\n // if (datas.address_type) {\n // let selectedAddressType = this.pdQuestionAddress.filter(element => element.address_type_id == datas.address_type)[0];\n // this.selectedAddressType(selectedAddressType.address_type);\n // this.setOthers(datas.address_type, '', 3);\n // if (datas.address_type == 1) {\n // this.addressForm.controls.address_type_others.setValue(datas.address_type_others);\n // this.selectedAddressType(datas.address_type_others);\n // }\n // }\n\n\n this.pdQuestionAddress.controls.comment_locality.setValue(datas.comment_locality ? datas.comment_locality : '');\n this.pdQuestionAddress.controls.locality.setValue(datas.locality ? datas.locality : '');\n\n if (datas.locality) {\n\n this.setOthers(datas.locality, '', 4);\n\n if (datas.locality == 1) {\n this.pdQuestionAddress.controls.locality_others.setValue(datas.locality_others);\n }\n }\n\n\n this.pdQuestionAddress.controls.estimated_area.setValue(datas.estimated_area ? datas.estimated_area : '');\n this.pdQuestionAddress.controls.uom.setValue(datas.uom);\n if (datas.uom) {\n this.setOthers(datas.uom, '', 5);\n if (datas.uom == 1) {\n this.pdQuestionAddress.controls.uom_others.setValue(datas.uom_others);\n }\n }\n })\n let initiated_address_check =res['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? res['records'].is_pd_done_on_initiated_address : true ;\n this.pdQuestionAddress.controls.is_pd_done_on_initiated_address.setValue(initiated_address_check);\n this.pdQuestionAddress.controls.address_form_remark.setValue(res['records'].address_form_remark);\n }\n // if(this.getaddressDetails.additional_address_units != null){\n // var result = Object.keys(res['records'].additional_address_units).map(function(key) {\n // // return res['records'].additional_address_units[key];\n // //for slicing the automatically created\n \n // });\n // //this.removeUnits(0);\n // }\n\n // let control = this.pdQuestionAddress.get('additional_address_units') as FormArray;\n\n // this.pdQuestionAddress.controls['address'].setValue(this.getaddressDetails.address);\n // this.pdQuestionAddress.controls['state'].setValue(this.getaddressDetails.state)\n\n // if (this.getaddressDetails.state != '') {\n // this.getCityAndPincodeDetails(this.getaddressDetails.state);\n // this.pdQuestionAddress.controls.city.setValue(this.getaddressDetails.city);\n // this.pdQuestionAddress.controls.pincode.setValue(this.getaddressDetails.pincode);\n // if (this.getaddressDetails.pincode == 1) {\n // this.pdQuestionAddress.controls.pincode_others.setValue(this.getaddressDetails.pincode_others);\n // this.pdQuestionAddress.controls.pincode_others.setValidators([Validators.required]);\n // this.pdQuestionAddress.controls.pincode_others.updateValueAndValidity();\n // }\n // }\n // this.pdQuestionAddress.controls['pd_location'].setValue(this.getaddressDetails.pd_location);\n // this.pdQuestionAddress.controls['address_type'].setValue(this.getaddressDetails.address_type);\n // let selectedAddressType = this.addressTypes.filter(element =>element.address_type_id == this.getaddressDetails.address_type);\n // this.selectedAddressType(selectedAddressType);\n\n // if(this.getaddressDetails.address_type != null) {\n // this.pdQuestionAddress.controls['address_type_others'].setValue(this.getaddressDetails.address_type_others);\n // this.selectedAddressType(this.getaddressDetails.address_type_others);\n // }\n\n // this.pdQuestionAddress.controls['comment_locality'].setValue(this.getaddressDetails.comment_locality);\n\n // if(this.getaddressDetails.comment_locality != null){\n // this.pdQuestionAddress.controls['other_comment_locality'].setValue(this.getaddressDetails.other_comment_locality);\n // }\n // // this.pdQuestionAddress.controls.customer_behaviour.setValue(this.getaddressDetails.customer_behaviour);\n // this.pdQuestionAddress.controls['locality'].setValue(this.getaddressDetails.locality);\n // if(this.getaddressDetails.locality == 1 ){\n // this.pdQuestionAddress.controls['locality_others'].setValue(this.getaddressDetails.locality_others);\n // }\n // if(this.getaddressDetails.locality == 5){\n // this.pdQuestionAddress.controls['locality_mixuse'].setValue(this.getaddressDetails.locality_mixuse)\n // }\n \n // this.pdQuestionAddress.controls.estimated_area.setValue(this.getaddressDetails.estimated_area);\n // this.pdQuestionAddress.controls.uom.setValue(this.getaddressDetails.uom);\n // if (this.getaddressDetails.uom == 1) {\n // this.pdQuestionAddress.controls.uom_others.setValue(this.getaddressDetails.uom_others);\n // this.pdQuestionAddress.controls.uom_others.setValidators([Validators.required])\n // this.pdQuestionAddress.controls.uom_others.updateValueAndValidity();\n // }\n // this.pdQuestionAddress.controls['address_form_remark'].setValue(this.getaddressDetails.address_form_remark);\n // // this.pdQuestionAddress.controls['address_ownership'].setValue(this.getaddressDetails.address_ownership);\n // this.pdQuestionAddress.controls['other_ownership'].setValue(this.getaddressDetails.other_ownership);\n // this.pdQuestionAddress.controls['rent_amt'].setValue(this.getaddressDetails.rent_amt);\n // if(this.getaddressDetails.rent_amt != null){\n // this.rentAmtInwords = this.constant.convertNumberToWords(this.getaddressDetails.rent_amt);\n // }\n // this.pdQuestionAddress.controls['other_premises_bussiness_activity'].setValue(this.getaddressDetails.other_premises_bussiness_activity);\n // if(this.getaddressDetails['other_premises_bussiness_activity'] !=null) {\n // this.pdQuestionAddress.controls['bussiness_activity_remark'].setValue(this.getaddressDetails.other_premises_bussiness_activity);\n // } \n // else{\n // this.pdQuestionAddress.controls['bussiness_activity_remark'].setValue('');\n // }\n // this.pdQuestionAddress.controls['bussiness_activity'].setValue(this.getaddressDetails.bussiness_activity);\n\n // this.pdQuestionAddress.controls['business_years'].setValue(this.getaddressDetails.business_years);\n // this.pdQuestionAddress.controls['business_month'].setValue(this.getaddressDetails.business_month);\n \n \n \n\n /* if(this.getaddressDetails.bussiness_activity == 'yes') {\n \n if (result.length == 0) {\n \n control.push(this.createUnits(null));\n } else {*/\n \n //for(let val of this.getaddressDetails.additional_address_units){\n //control.push(this.createUnits(val));\n //}\n //result.forEach((datas,index) => {\n \n //this.premisesRentAmtInwords[index] = this.constant.convertNumberToWords(datas.premises_rent_amt);\n //this.pdQuestionAddress.controls['additional_address_units'].setValue(datas);\n \n //});\n \n //}\n \n // }\n\n }\n else{\n control.push(this.initAddress(''))\n }\n }\n else\n this.loadPD();\n });\n \n }\n loadPD(){\n const control=this.pdQuestionAddress.controls['addresses']\n this.qustCat.getAddressDetails(this.pdDetails.pd_id).subscribe(res=>{\n if(res.dataStatus == true){\n this.addressesList = res.records.filter(item => item.isactive == 1 && item.assigned_pd == this.pdDetails.pd_id);\n \n if(this.addressesList.length > 0){\n this.addressesList.forEach((datas,index)=>{\n this.getCityAndPincodeDetails(datas.fk_state,index,1)\n \n let obj ={\n 'address': datas.addressline1,\n 'address_type': '',\n 'address_type_others': '',\n 'state': datas.fk_state,\n 'city': datas.fk_city,\n 'pincode':datas.pincode_id,\n 'pincode_others': datas.other_pincode,\n 'locality': '',\n 'locality_others': '',\n // 'locality_mixuse':'',\n 'pd_location': '',\n 'comment_locality': '',\n 'estimated_area': '',\n 'uom': '',\n 'uom_others': ''\n }\n \n control.push(this.initAddress(obj))\n })\n }\n else{\n control.push(this.initAddress(''))\n }\n }\n else{\n control.push(this.initAddress(''))\n }\n })\n }\n getPDImages(){\n \n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n console.log('record_for_pic',record_for_pic);\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n console.log('records result',result);\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy','is_show_report': result.is_show_report == null ? 0 : result.is_show_report })\n let img_title = (result.pd_document_title).split('(');\n if(img_title[0] == 'Approach to PD Location '){\n this.AppxPDLocationImgValid = true;\n //this.imageDisplay = this.imageDisplay.filter (value=>value.is_show_report != 0 && value.name.split('(')[0] != 'Approach to PD Location ')\n }\n })\n console.log(\"image Display Data Are\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n // console.log('inside changeName Fn - its param are ',value,'Index are ',index,'active are');\n this.imageDisplay[index]={'image':img,'Name':value,'is_show_report':0}\n // console.log(\"image Display Data Are\",this.imageDisplay);\n }\n\n changeNameForBucket(value,index,img,active){\n // console.log('inside change-Name-For-Bucket Fn - its param are',value,'Index are ',index,'active are',active);\n this.imageBucket[index]={'image':img,'Name':value,'is_show_report':0}\n \n }\n changeOptions(event: any,index: any){\n // console.log('Option Changed ' + event);\n let name = this.imageBucket[index].value\n let length = this.imageDisplay.length;\n console.log('image display length',length);\n this.imageDisplay.forEach(result=>{\n if(name == 'Approach to PD Location ' && event == 1){\n result.is_show_report = 0;\n }\n })\n console.log('this.imageDisplay',this.imageDisplay);\n this.imageBucket.forEach(result=>{\n if(name == 'Approach to PD Location ' && event == 1){\n // this.AppxPDLocationImgValid = true;\n console.log('name',name);\n console.log('this.imageBucket.length',this.imageBucket.length);\n result.is_show_report=0;\n }\n })\n console.log('this.imageBucket',this.imageBucket);\n this.imageBucket[index].is_show_report=event;\n // console.log('this.imageBucket',JSON.stringify(this.imageBucket));\n }\n removeImg(index){\n // console.log('inside removeImg Fn - its param are - Index only ',index);\n this.imageDisplay.splice(index,1);\n \n }\n removeImgForBucket(index){\n // console.log('inside removeImgForBucket Fn - its param are - Index only ',index);\n this.imageBucket.splice(index,1)\n // console.log(\"image Display Data Are\",this.imageDisplay);\n }\n savePhoto(flag){\n // console.log('savePhoto');\n let currentDate = this.pipe.transform(new Date(), 'yyyy-MM-dd hh:mm:ss');\n this.camera.getPicture({\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 600,\n correctOrientation: true\n }).then((imageData)=>{\n // console.log('inside savePhoto Fn - its response ',imageData);\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.base64='data:image/png;base64,'+imageData\n if(flag == 1){\n this.imageBucket.push({'image':this.base64,'link':geoCoordinates,'Name':'','is_show_report':''});\n // this.imageDisplay.push({'image':this.base64,'Name':''})\n console.log(\"imagebucket\",this.imageBucket)\n this.getImageName(this.imageBucket.length-1)\n }else if(flag == 2){\n // console.log('flag');\n this.imageBucket.push({'image':this.base64,'link':geoCoordinates,'Name':'Approach to PD Location ( ' + currentDate + ' )','is_show_report':''});\n }\n })\n },(err)=>{\n //alert(\"error\");\n })\n this.tab='1';\n // this.content.scrollToBottom();\n // let dimensions = this.content.getContentDimensions();\n // this.content.scrollTo(0, dimensions.contentHeight+100, 100);\n // this.inputFocus.setFocus();\n }\n\n getImageName(index){\n // console.log('inside get Image Name Fn - its param are - Index only ',index);\n let alert =this.toast.setAlertForDocName()\n \n alert.present()\n alert.onDidDismiss(value=>{\n // console.log('Reponse',value,'Reponse AS Name',value.Name,value.IsShowReport);\n this.imageBucket[index].Name=value.Name;\n });\n \n \n // let alert=this.alerCtrl.create({\n // title:'Document Name',\n // message: 'Please Enter the Document Name',\n // cssClass:'prompt_alert',\n // inputs:[\n // {\n // name:'Name',\n // //value:this.imageBucket[index].Name\n // placeholder:'Document Name'\n // }\n // ],\n // buttons:[\n // {\n // text:'Submit',\n // handler:data=>{\n // this.imageBucket[index].Name=data.Name\n // alert.dismiss\n // }\n // }\n // ]\n // })\n // alert.present();\n //this.inputFocus.setFocus();\n \n }\n // al(){\n // this.toast.pdTriggerappmessage(\"touched\");\n // }\n\n updateImage(){\n }\n sendImage(){\n this.loading.loaderForSendImage() \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\nconsole.log(\"records for sendImage\",records);\n // console.log(\"inside SendImage Function - records array\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n localInsert(option){\n let datas:any=this.pdQuestionAddress.value\n datas.pd_id=this.pdDetails.pd_id\n datas.form_id=this.FormId.form_id;\n datas.active=option;\n // let recors={'records':datas}\n this.storagedb.insertData(datas).then(res=>{\n // let alert=this.toast.setAlert('data',JSON.stringify(res))\n // alert.present();\n // console.log(\"inside localInsert Fn - its Response\",res);\n })\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-address/pd-question-address.ts","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {FormBuilder,FormControl,FormArray, FormGroup,Validators} from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport { max } from 'rxjs/operators';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionEmpInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-emp-info',\n templateUrl: 'pd-question-emp-info.html',\n})\nexport class PdQuestionEmpInfoPage {\n questionDetails: any;\n pdDetails: any;\n employmentForm:FormGroup;\n FormId: any;\n pd_cus_segment: string;\n customer_segment_abbr: string;\n users: any;\n pdid: any;\n frequency_data: any[];\n company_list: any[];\n person_met_list: any[];\n company_related_applicants_list: any[];\n company_relationship_list: any[];\n filtered_company_relationship_list: any[];\n \n mthlySlryAmtInWords\n grossMthlySlryAmtInWords\n netMthlySlryAmtInWords\n bonusIncentiveAmtInWords\n bankAmtInWords\n cashAmtInWords\n\n workExperienceFlag: boolean = false;\n workExperienceErrorFlag:boolean = false;\n generalExistBusinessYear:any;\n generalExistBusinessMonth:any;\n tab:any='0'\n imageBucket:any=[]\n imageDisplay:any=[]\n\n public dateonly: any = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}];\n public todate: any[] = this.dateonly;\n @ViewChild('workExp') expFocus: ElementRef\n @ViewChild('cashPaidFocus') inputCashPaidFocus :ElementRef\n @ViewChild('yearFocus') inputYearFocus :ElementRef\n complete_status: boolean = false;\n \n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws: AwsServiceProvider, \n public toast: ToastProvider,public constant:ConstantsProvider,\n private cameraProvider:CameraProvider,private loading:LoadingProvider) {\n this.FormId = this.navParams.get('FormId');\n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.users = this.aws.getlocale();\n this.pdid=this.pdDetails.pd_id;\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n this.pd_cus_segment = this.pdDetails.customer_segment_abbr.toUpperCase();\n this.generalExistBusinessYear=100;\n this.generalExistBusinessMonth=12;\n this.getDropDownList();\n this.getCompanyFromGeneralDetails();\n this.getEmploymentDetails();\n this.employmentForm = this.fb.group(\n {\n employer_name: [''],\n employer_in_brief:[''],\n \n // members.controls.current_business_experiance_year.setValue(this.generalExistBusinessYear);\n // members.controls.current_business_experiance_month.setValue(this.generalExistBusinessMonth);\n \n how_long_year: ['',Validators.max(this.generalExistBusinessYear)],\n how_long_month: [''],\n total_business_experience: [''],\n total_business_previous_experience: [''],\n was_met: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n name_person_met: [''],\n designation_person_met: [''],\n confirm_salary: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n confirm_salary_amount: [''],\n attendance_seen: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n sal_reg_seen: [this.pd_cus_segment == 'SAL-CHQ' ? 'No' : ''],\n from_date_the_salary_is_rcv: [''],\n to_date_the_salary_is_rcv: [''],\n gross_monthly_salary: [''],\n net_monthly_salary: [''],\n amount_paid_in_cash: [''],\n amount_paid_through_bank: [''],\n check_validated:[''],\n how_was_it_validated: [''],\n why_was_it_not_validated: [''],\n bonus_incentive: [''],\n bonus_frequency: [''],\n bonus_type: [''],\n bonus_type_other: [''],\n any_delays: [''],\n employment_remarks: [''],\n // nameOfEmp:[null],\n // yearWithEmp:[null],\n // empMet:[null],\n // designationOfEmp:[null],\n // salaryConfirm:[null],\n // actualSalary:[null],\n // attRegisterSeen:[null],\n // salaryRegisterSeen:[null]\n })\n\n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionEmpInfoPage');\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.employmentForm.dirty);\n if(this.employmentForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n getDropDownList()\n {\n\n this.qustCat.getcommondrop('FREQUENCY').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.frequency_data = data['records'];\n this.frequency_data = this.frequency_data.filter(freq => freq.isactive == 1);\n }\n });\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.company_relationship_list = data['records'].filter(item => item.isactive == 1);\n this.company_relationship_list = data['records'].filter(item => item.name != 'Others');\n this.company_relationship_list.push({ 'company_relationship_id': 0, 'name': 'Not Applicable' });\n }\n });\n }\n\n getCompanyFromGeneralDetails(){\n \n let records = { 'parent_pdid':this.pdDetails.parent_pd_id,'pd_id': this.pdDetails.pd_id, 'pd_form_id': '18' };\n \n this.qustCat.retiverForm(records).subscribe(value => {\n if (value['dataStatus'] == true) {\n this.company_list = value['records'].companies.filter(com => com.is_active == true);\n this.person_met_list = value['records'].individuals.filter(app => app.is_person_met == true && app.is_active == true);\n this.company_related_applicants_list = value['records'].company_with_relationships;\n } \n else {\n\n }\n })\n \n }\n \n ValidateNetSalary(){\n let salary = this.employmentForm.controls['net_monthly_salary'].value; \n console.log('this.employmentForm.controls[amount_paid_in_cash].value',this.employmentForm.controls['amount_paid_in_cash'].value);\n \n if(salary != ''){\n let cash_amount = this.employmentForm.controls['amount_paid_in_cash'].value;\n // let Bank_amount = this.employmentForm.controls['amount_paid_through_bank'].value;\n\n this.employmentForm.controls['amount_paid_in_cash'].setValidators([Validators.max(salary)]); \n this.employmentForm.controls['amount_paid_in_cash'].updateValueAndValidity();\n let maxamt = salary-cash_amount\n if( this.employmentForm.controls['amount_paid_in_cash'].value !=''){\n let balance=salary-this.employmentForm.controls['amount_paid_in_cash'].value\n console.log(\"bal\",balance)\n this.employmentForm.controls['amount_paid_through_bank'].setValue(balance);\n this.inWords(balance,5)\n }\n if(maxamt >= 0 ){\n this.employmentForm.controls['amount_paid_through_bank'].setValidators([Validators.max(salary-cash_amount)]); \n }\n else{\n this.employmentForm.controls['amount_paid_through_bank'].setValue('0');\n this.employmentForm.controls['amount_paid_through_bank'].setValidators([Validators.max(0)]); \n }\n this.employmentForm.controls['amount_paid_through_bank'].updateValueAndValidity();\n \n }\n else{\n this.toast.pdTriggerappmessage('Net Monthly Salary Is Empty.!');\n this.employmentForm.controls['amount_paid_in_cash'].setValue(''); \n this.employmentForm.controls['amount_paid_in_cash'].updateValueAndValidity();\n this.employmentForm.controls['amount_paid_through_bank'].setValue(''); \n this.employmentForm.controls['amount_paid_through_bank'].updateValueAndValidity();\n return;\n }\n \n \n }\n\n saveEmpInfo(){\n // console.log(\"has Error\",this.employmentForm.controls['how_long_year'].hasError('max'))\n if(this.employmentForm.controls['how_long_year'].hasError('max') || this.employmentForm.controls['how_long_month'].hasError('max')){\n this.toast.pdTriggerappmessage(\"Higher than business Vintage\")\n this.inputYearFocus.nativeElement.focus();\n return\n }\n \n if(this.employmentForm.controls['total_business_experience'].hasError('min') ){\n this.toast.pdTriggerappmessage('Total working Experience is Lower');\n this.expFocus.nativeElement.focus();\n return\n }\n // console.log(\"this.em\",this.employmentForm.controls['amount_paid_in_cash'].errors)\n if(this.employmentForm.controls['amount_paid_in_cash'].hasError('max') || this.employmentForm.controls['amount_paid_through_bank'].hasError('max')){\n this.toast.pdTriggerappmessage(\"Given Value is Maximum of Net Salary\")\n this.inputCashPaidFocus.nativeElement.focus();\n return\n }\n \n if (!this.employmentForm.valid) {\n this.toast.pdTriggerappmessage('Form Invalid Try Again.!');\n return;\n }\n \n\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.employer_name = this.employmentForm.controls['employer_name'].value;\n records.employer_in_brief = this.employmentForm.controls['employer_in_brief'].value;\n records.how_long_year = this.employmentForm.controls['how_long_year'].value;\n records.how_long_month = this.employmentForm.controls['how_long_month'].value;\n records.total_business_experience = this.employmentForm.controls['total_business_experience'].value;\n records.total_business_previous_experience = this.employmentForm.controls['total_business_previous_experience'].value;\n records.was_met = this.employmentForm.controls['was_met'].value;\n if (this.employmentForm.controls['was_met'].value == 'yes') {\n records.name_person_met = this.employmentForm.controls['name_person_met'].value;\n records.designation_person_met = this.employmentForm.controls['designation_person_met'].value;\n }else{\n records.name_person_met = '';\n records.designation_person_met = '';\n }\n records.confirm_salary = this.employmentForm.controls['confirm_salary'].value;\n records.confirm_salary_amount = this.employmentForm.controls['confirm_salary'].value == 'yes' ? this.employmentForm.controls['confirm_salary_amount'].value : '';\n records.attendance_seen = this.employmentForm.controls['attendance_seen'].value;\n records.sal_reg_seen = this.employmentForm.controls['sal_reg_seen'].value;\n records.from_date_the_salary_is_rcv = this.employmentForm.controls['from_date_the_salary_is_rcv'].value;\n records.to_date_the_salary_is_rcv = this.employmentForm.controls['to_date_the_salary_is_rcv'].value;\n records.gross_monthly_salary = this.employmentForm.controls['gross_monthly_salary'].value;\n records.net_monthly_salary = this.employmentForm.controls['net_monthly_salary'].value;\n \n records.amount_paid_in_cash = this.employmentForm.controls['amount_paid_in_cash'].value;\n records.amount_paid_through_bank = this.employmentForm.controls['amount_paid_through_bank'].value;\n records.check_validated = this.employmentForm.controls['check_validated'].value;\n records.how_was_it_validated = this.employmentForm.controls['check_validated'].value == 'validated' ? this.employmentForm.controls['how_was_it_validated'].value : '';\n records.why_was_it_not_validated = this.employmentForm.controls['check_validated'].value != 'validated' ? this.employmentForm.controls['why_was_it_not_validated'].value : '';\n \n records.any_delays = this.employmentForm.controls['any_delays'].value;\n\n records.bonus_incentive = this.employmentForm.controls['bonus_incentive'].value;\n records.bonus_frequency = this.employmentForm.controls['bonus_frequency'].value;\n records.bonus_type = this.employmentForm.controls['bonus_type'].value;\n records.bonus_type_other = this.employmentForm.controls['bonus_type_other'].value;\n\n records.employment_remarks = this.employmentForm.controls['employment_remarks'].value;\n \n this.qustCat.saveForm(records).subscribe(data => {\n\n\n if(data['dataStatus']== true){\n //TO CHANGE THE FORM STATE \n // this.employmentForm.markAsUntouched();\n this.employmentForm.reset(this.employmentForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else {\n this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n }\n })\n }\n \n\n filtercompanyrelationship(companyid, applicantid) {\n var array = companyid.split(\"-\");\n let data = this.company_related_applicants_list.filter(cmpy => cmpy.relation_to_company == array[0] && cmpy.applicant_name == applicantid);\n if (data.length > 0) {\n this.filtered_company_relationship_list = this.company_relationship_list.filter(freq => freq.company_relationship_id == data[0].company_relationship);\n this.employmentForm.controls['designation_person_met'].setValue(this.filtered_company_relationship_list[0]['name'] + ' ' + array[1]);\n }\n else {\n this.employmentForm.controls['designation_person_met'].setValue('');\n }\n }\n\n formDate(value){\n // console.log('to',this.todate)\n // console.log(value);\n // console.log('to length',this.todate.length);\n // console.log('index',value-1);\n // console.log('this.todate',this.todate[11]);\n // console.log('this.todate',this.todate[11].isdisabled);\n this.employmentForm.controls['to_date_the_salary_is_rcv'].setValue('');\n this.todate = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}];\n var i ;\n \n if(value != 0 && value != '')\n for(i=0;i<=value-1;i++){\n this.todate[i].isdisabled = true;\n if(value == 31){\n this.todate[30].isdisabled = false;\n }\n }\n \n }\n checkWithExistYear(e) {\n \n let data1 = this.company_list.filter(c => c.company_name == e.split('-')[1])[0];\n \n console.log('this.generalExistBusinessMonth',this.generalExistBusinessMonth);\n console.log('this.generalExistBusinessYear',this.generalExistBusinessYear);\n if(data1.business_month != null && data1.business_month != '' && data1.business_month != undefined){\n this.generalExistBusinessMonth = data1.business_month\n }\n if(data1.business_years){\n this.generalExistBusinessYear = data1.business_years\n }\n this.employmentForm.controls['how_long_year'].setValidators([Validators.max(this.generalExistBusinessYear)]); \n this.employmentForm.controls['how_long_year'].updateValueAndValidity();\n \n }\n\n \nConvertMonthintoYear(e) {\n\n let how_long_year = this.employmentForm.controls.how_long_year.value;\n\n let converted_month: number = e % 12;\n let converted_year: number = e / 12;\n\n if (how_long_year > this.generalExistBusinessYear) {\n this.employmentForm.controls['how_long_year'].setValidators([Validators.max(this.generalExistBusinessYear)]); \n this.employmentForm.controls['how_long_year'].updateValueAndValidity();\n this.employmentForm.controls['how_long_year'].setValue('');\n this.employmentForm.controls['how_long_month'].setValue('');\n }\n else {\n if (how_long_year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth) {\n \n this.employmentForm.controls['how_long_year'].setValidators([Validators.max(this.generalExistBusinessYear)]); \n this.employmentForm.controls['how_long_year'].updateValueAndValidity(); \n\n this.employmentForm.controls['how_long_month'].setValidators([Validators.max(this.generalExistBusinessMonth)]); \n this.employmentForm.controls['how_long_month'].updateValueAndValidity(); \n\n } else { \n\n this.employmentForm.controls.how_long_year.setValue(+how_long_year + +Math.floor(converted_year));\n this.employmentForm.controls.how_long_month.setValue(Math.floor(converted_month));\n\n }\n }\n}\n\n\ncheckWorkingExperiences(){\n // this.workExperienceErrorFlag = (+this.employmentForm.controls.total_business_experience.value ) <= (+this.employmentForm.controls.how_long_year.value) ? true : false;\n // this.workExperienceFlag = (+this.employmentForm.controls.total_business_experience.value ) < (+this.employmentForm.controls.how_long_year.value) ? false : true;\n\n this.employmentForm.controls['total_business_experience'].setValidators([Validators.min(+this.employmentForm.controls.how_long_year.value)]); \n this.employmentForm.controls['total_business_experience'].updateValueAndValidity(); \n \n if(!this.employmentForm.controls['total_business_experience'].valid){\n this.expFocus.nativeElement.focus();\n }\n\n this.workExperienceFlag = +this.employmentForm.controls.total_business_experience.value > +this.employmentForm.controls.how_long_year.value ? true : false;\n\n if(!this.workExperienceFlag){\n this.employmentForm.controls['total_business_previous_experience'].setValue('');\n this.employmentForm.controls['total_business_previous_experience'].updateValueAndValidity(); \n }\n\n}\n\ninWords(val,flag:number){\n switch(flag){\n case 1 :\n this.mthlySlryAmtInWords= this.constant.convertNumberToWords(val); \n break;\n case 2 : \n this.grossMthlySlryAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 3 :\n this.netMthlySlryAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 4 :\n this.bonusIncentiveAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 5 :\n this.bankAmtInWords = this.constant.convertNumberToWords(val); \n break;\n case 6 :\n this.cashAmtInWords = this.constant.convertNumberToWords(val); \n break;\n }\n }\n\n\n getEmploymentDetails(){\n \n let records = {'parent_pdid':this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId.form_id };\n\n this.qustCat.retiverForm(records).subscribe(value => {\n if (value['dataStatus'] == true) {\n let Emp = value['records'];\n console.log('emp',Emp);\n this.employmentForm.controls['employer_name'].setValue(Emp.employer_name);\n this.employmentForm.controls['employer_in_brief'].setValue(Emp.employer_in_brief)\n this.employmentForm.controls['how_long_year'].setValue(Emp.how_long_year);\n this.employmentForm.controls['how_long_month'].setValue(Emp.how_long_month);\n this.employmentForm.controls['was_met'].setValue(Emp.was_met);\n this.employmentForm.controls['total_business_experience'].setValue(Emp.total_business_experience);\n this.employmentForm.controls['total_business_previous_experience'].setValue(Emp.total_business_previous_experience);\n if(this.employmentForm.controls['total_business_experience'] != null && this.employmentForm.controls['total_business_previous_experience'] != null){\n //this.checkWorkingExperiences();\n }\n\n if (Emp.name_person_met) {\n this.employmentForm.controls['name_person_met'].setValue(Emp.name_person_met);\n }\n if (Emp.designation_person_met) {\n this.employmentForm.controls['designation_person_met'].setValue(Emp.designation_person_met);\n }\n this.employmentForm.controls['confirm_salary'].setValue(Emp.confirm_salary);\n console.log('Emp.confirm_salary_amount',Emp.confirm_salary_amount,Emp.confirm_salary);\n if (Emp.confirm_salary) {\n this.employmentForm.controls['confirm_salary_amount'].setValue(Emp.confirm_salary_amount);\n this.inWords(Emp.confirm_salary_amount,1);\n \n }\n this.employmentForm.controls['attendance_seen'].setValue(Emp.attendance_seen);\n this.employmentForm.controls['sal_reg_seen'].setValue(Emp.sal_reg_seen);\n this.employmentForm.controls['from_date_the_salary_is_rcv'].setValue(Emp.from_date_the_salary_is_rcv);\n this.employmentForm.controls['to_date_the_salary_is_rcv'].setValue(Emp.to_date_the_salary_is_rcv);\n this.employmentForm.controls['gross_monthly_salary'].setValue(Emp.gross_monthly_salary);\n this.employmentForm.controls['net_monthly_salary'].setValue(Emp.net_monthly_salary);\n this.employmentForm.controls['amount_paid_in_cash'].setValue(Emp.amount_paid_in_cash);\n this.employmentForm.controls['amount_paid_through_bank'].setValue(Emp.amount_paid_through_bank);\n this.employmentForm.controls['check_validated'].setValue(Emp.check_validated);\n this.employmentForm.controls['how_was_it_validated'].setValue(Emp.how_was_it_validated);\n this.employmentForm.controls['why_was_it_not_validated'].setValue(Emp.why_was_it_not_validated);\n this.employmentForm.controls['bonus_incentive'].setValue(Emp.bonus_incentive);\n this.employmentForm.controls['bonus_frequency'].setValue(Emp.bonus_frequency);\n this.employmentForm.controls['bonus_type'].setValue(Emp.bonus_type);\n this.employmentForm.controls['bonus_type_other'].setValue(Emp.bonus_type_other);\n this.employmentForm.controls['any_delays'].setValue(Emp.any_delays);\n this.employmentForm.controls['employment_remarks'].setValue(Emp.employment_remarks);\n \n this.inWords(Emp.gross_monthly_salary,2);\n this.inWords(Emp.net_monthly_salary,3);\n this.inWords(Emp.bonus_incentive,4);\n this.inWords(Emp.amount_paid_in_cash,6);\n this.inWords(Emp.amount_paid_through_bank,5);\n if(Emp.total_business_experience != ''){\n this.checkWorkingExperiences();\n}\n\n } \n })\n \n }\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-emp-info/pd-question-emp-info.ts","import { Component, ApplicationInitStatus, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup,FormArray,FormBuilder,Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionCurrentLoansPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-current-loans',\n templateUrl: 'pd-question-current-loans.html',\n})\n\nexport class PdQuestionCurrentLoansPage {\napplicants: any;\n placeholderName: any = [];\n lenderData: any;\n frequencyData: any;\n loanTypeData:any;\n FormId: any;\n users: any;\n pdDetails: any;\n questionDetails: any;\n currentLoans:FormGroup;\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n pdid:number;\n amtInwords: any=[];\n emiAmtInwords: any=[];\n dataFromAssets : any = [];\n labelArr : any = [];\n investmentTypeData: any=[];\n addressTypeData: any;\n propertyTypeData: any;\n tentureErrorFlag:boolean=false\n others_loanAccess:boolean=false\n @ViewChild('balanceTenure') TenureFocus : ElementRef\n lenderDataValue: any;\n protected _onDestroy = new Subject();\n base64: any;\n imageBucket: any=[];\n tab: any='0';\n imageDisplay: any=[];\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public toast:ToastProvider, \n public aws:AwsServiceProvider,public constant:ConstantsProvider,\n public cameraProvider:CameraProvider,private loading:LoadingProvider) {\n\n \n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.FormId = this.navParams.get('FormId');\n this.applicants = this.pdDetails.applicat_details.filter(val=>val.pd_co_applicant_id != 0);\n \n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n \n \n\n this.getdropdown();\n \n this.users = this.aws.getlocale();\n this.currentLoans = this.fb.group(\n {\n existing_loan: [null],\n currentloan_remarks:[null],\n loan_details: this.fb.array([])\n });\n \n //To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionCurrentLoansPage');\n console.log('{{FormId.form_name}}',this.FormId.form_name,this.FormId);\n this.getcurrentLoans()\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.currentLoans.dirty);\n if(this.currentLoans.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n}\n\n getdropdown()\n {\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(res=>\n {\n this.lenderData = res['records'].filter(len=>len.isactive==1);\n this.lenderDataValue=this.lenderData.slice();\n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n this.frequencyData = res['records'].filter(frq=>frq.isactive==1);\n });\n this.qustCat.getcommondrop('EXISTINGLOANTYPES').subscribe(val=>{\n this.loanTypeData=val['records'].filter(loan=>loan.isactive == 1 );\n });\n\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n \n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true )// && val.is_company_applicant===true\n }\n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n //modifyCompanyList.push({'id':\"0\",'name':'Others','group_id':1})\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n }\n })\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n // this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n // modifyApplicantList.push()\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n\n this.qustCat.getcommondrop('INVESTMENTTYPE').subscribe(data => {\n this.investmentTypeData=data['records'].filter(val=>val.isactive == 1);\n \n \n });\n this.qustCat.getcommondrop('ADDRESSTYPE').subscribe(data=>{\n this.addressTypeData=data['records'].filter(val=>val.isactive ==1 );\n })\n this.qustCat.getcommondrop('PROPERTIES').subscribe(data=>{\n this.propertyTypeData=data['records'].filter(val=>val.isactive ==1);\n })\n }\n \n exitsCheck(val)\n { \n \n if(val ==\"Yes\")\n {\n this.addLoanDetails();\n }\n\n }\n createLoanDetail(data) {\n return this.fb.group({\n label: data == null ? [''] : [data.label],\n loan_amount: data == null ? [''] : [data.loan_amount],\n frequency: data == null ? [''] : [data.frequency],\n other_frequency: data == null ? [''] : [data.other_frequency],\n emi: data == null ? [''] : [data.emi],\n loan_type: data == null ? [''] : [data.loan_type],\n others_loan_type: data == null ? [''] : [data.others_loan_type],\n loan_taken_by: data == null ? [''] : [data.loan_taken_by],\n others_loan_taken: data == null ? [''] : [data.others_loan_taken],\n lender: data == null ? [''] : [data.lender],\n bankSearch:[''],\n others_lender: data == null ? [''] : [data.others_lender],\n original_tenure: data == null ? [''] : [data.original_tenure],\n current_balance_tenure: data == null ? [''] : [data.current_balance_tenure],\n elapsed_tenure: data == null ? [''] : [data.elapsed_tenure]\n // other_frequency:[''],\n // loan_amount: [''],\n // frequency:[''],\n // emi: [''],\n // loan_type: [''],\n // others_loan_type:[''],\n // loan_taken_by:[''],\n // others_loan_taken:[''],\n // lender: [''],\n // others_lender:[''],\n // original_tenure: [''],\n // current_balance_tenure: [''],\n // elapsed_tenure:[],\n });\n}\naddLoanDetails() {\n const control = this.currentLoans.controls['loan_details'];\n control.push(this.createLoanDetail(null));\n}\ndeleteLoanDetails(index) {\n const control = this.currentLoans.controls['loan_details'];\n if(control.length==1)\n {\n this.currentLoans.controls['loan_details'].reset();\n }else{\n control.removeAt(index);\n }\n}\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\ncheckOthers(values){\n console.log(values)\n let status\n if(values.length != 0 && values != null){\n status=values.filter(res=>res.id == 0) \n status=status.length > 0 ?true : false\n console.log(status)\n this.others_loanAccess=status\n }\n else {\n this.others_loanAccess= false;\n }\n \n \n}\ncheckTenure(details){\n let originalTenure = details.value.original_tenure;\n // alert(originalTenure);\n // if(originalTenure>=details.value.current_balance_tenure){\n // this.tentureErrorFlag=true\n details.controls.current_balance_tenure.setValidators([Validators.required, Validators.max(+originalTenure)]);\n details.controls.current_balance_tenure.updateValueAndValidity();\n //details.controls.current_balance_tenure.setValue\n // }\n // else{\n\n // this.toast.pdTriggerappmessage(\"Current Tenure \")\n \n \n \n // details.controls.current_balance_tenure.setValidators([Validators.max(+originalTenure)]);\n // details.controls.current_balance_tenure.updateValueAndValidity(); \n // let BalanceTenure = details.value.current_balance_tenure;\n // if( originalTenure < BalanceTenure){\n // alert('Greater');\n // details.controls.current_balance_tenure.setValue('');\n // alert('validation setted For');\n // details.controls.current_balance_tenure.setValidators([Validators.min(+originalTenure)]);\n // details.controls.current_balance_tenure.updateValueAndValidity(); \n \n \n // }\n}\ncalculateTenure(details,flag)\n{\n \n switch(flag){\n \n \n case 1:\n let ElapsedValues;\n console.log(details)\n if(details.value.original_tenure != null && details.value.original_tenure != '' && details.value.current_balance_tenure != null && details.value.current_balance_tenure != '' ){\n console.log(\"not null\")\n \n if(details.value.current_balance_tenure == 0){\n details.controls['elapsed_tenure'].setValue(details.value.original_tenure)\n }\n if(details.value.current_balance_tenure <= details.value.original_tenure){\n \n console.log(\"validate\")\n this.tentureErrorFlag=false\n ElapsedValues = details.value.original_tenure - details.value.current_balance_tenure ;\n \n details.controls['elapsed_tenure'].setValue(ElapsedValues);\n }\n else{\n //this.toast.pdTriggerappmessage(\"Oringinal Tenure Less than Current Balance Tenure\")\n this.tentureErrorFlag=true\n this.TenureFocus.nativeElement.focus();\n }\n \n}\nelse{\n this.tentureErrorFlag=false\n}\nbreak;\ncase 2:\nlet balance\nconsole.log(\"case 2\",details);\n if(details.value.original_tenure !=null && details.value.original_tenure != '' && details.value.elapsed_tenure != null && details.value.elapsed_tenure != ''){\n \n if(details.value.elapsed_tenure == 0){\n details.controls['current_balance_tenure'].setValue(details.value.original_tenure)\n }\n if(details.value.elapsed_tenure <= details.value.original_tenure){\n this.tentureErrorFlag=false\n balance=details.value.original_tenure - details.value.elapsed_tenure;\n \n console.log(\"ba\",balance);\n details.controls['current_balance_tenure'].setValue(balance)\n }\n else{\n //this.toast.pdTriggerappmessage(\"Oringinal Tenure Less than Current Balance Tenure\")\n this.tentureErrorFlag=true\n // this.TenureFocus.nativeElement.focus();\n }\n}\nelse{\n this.tentureErrorFlag=false\n}\n \n}\n}\nkeyPress(event: any) {\n const pattern = /[0-9]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n}\ninWords(e,i,flag){\n switch(flag){\n case 1 : \n this.amtInwords[i] = this.constant.convertNumberToWords(e.target.value);\n break;\n case 2 :\n this.emiAmtInwords[i] = this.constant.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n }\n}\n\n\nselectedfrequency(e,i){\n \n switch(+e){\n case 1: this.placeholderName[i] = 'Instalment Amount'; break;\n case 2: this.placeholderName[i] = 'Annual Instalment Amount'; break;\n case 3: this.placeholderName[i] = 'Halfyearly Instalment Amount'; break;\n case 4: this.placeholderName[i] = 'Fortnightly Instalment Amount'; break;\n case 5: this.placeholderName[i] = 'Daily Instalment Amount'; break;\n case 6: this.placeholderName[i] = 'Quarterly Instalment Amount'; break;\n case 7: this.placeholderName[i] = 'Monthly Instalment Amount'; break;\n default: this.placeholderName[i] = 'Instalment Amount'; break;\n}\n \n}\n\nsubmitCurrentloan(answerData) {\n console.log(answerData)\n console.log(\"true\",this.tentureErrorFlag);\n let inde=[]\n // answerData.loan_details.forEach((element,index)=>{\n \n // if(element.current_balance_tenure > element.original_tenure){\n // this.toast.pdTriggerappmessage(\"Oringinal Tenure Less than Current Balance Tenure\")\n // inde=index\n // }\n \n // })\n // console.log(\"index\",inde);\n // if(inde){\n // return\n // }\n if(this.tentureErrorFlag == true){\n // this.toast.pdTriggerappmessage(\"Original Tenure Less than Current Balance Tenure\");\n this.toast.pdTriggerappmessage(\"Original Tenture is Lower\");\n this.TenureFocus.nativeElement.focus();\n return\n }\n \n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.existing_loan = answerData.existing_loan;\n records.loan_details = answerData.loan_details;\n records.currentloan_remarks = answerData.currentloan_remarks;\n records.loan_details.forEach(val=>{\n delete val.bankSearch\n })\n console.log(' final records when save',records);\n this.qustCat.saveForm(records).subscribe(data => {\n \n if(data['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n // this.currentLoans.markAsUntouched();\n this.currentLoans.reset(this.currentLoans.value);\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n \n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n });\n}\n getcurrentLoans()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n const control = this.currentLoans.controls['loan_details'];\n if(res['dataStatus']==true )\n {\n let currentLoanDetails = res['records'];\n \n if(res['records'].loan_details !== undefined && res['records'].loan_details !=null && res['records'].loan_details !=''){\n currentLoanDetails.loan_details.forEach(val=>{\n val.bankSearch=''\n })\n var result = Object.keys(res['records'].loan_details).map(function(key) {\n \n return res['records'].loan_details[key];\n \n });\n console.log(\"resutl\",result);\n this.currentLoans.controls['existing_loan'].setValue(currentLoanDetails.existing_loan);\n this.currentLoans.controls['currentloan_remarks'].setValue(currentLoanDetails.currentloan_remarks);\n const control = this.currentLoans.controls['loan_details'];\n if(currentLoanDetails.existing_loan != 'No')\n {\n if(result.length ==0)\n {\n control.push(this.createLoanDetail(null));\n }else\n {\n \n result.forEach((datas,index)=>\n {\n //this.calculateTenure(res['records'])\n control.push(this.createLoanDetail(null));\n this.selectedfrequency(datas.frequency,index);\n if(datas.loan_amount!=''){\n this.amtInwords[index]=this.constant.convertNumberToWords(datas.loan_amount);\n }\n if(datas.emi!=''){\n this.emiAmtInwords[index]=this.constant.convertNumberToWords(datas.emi);\n }\n })\n\n this.currentLoans.controls['loan_details'].patchValue(result);\n \n }\n }\n }\n else\n {\n this.currentLoans.controls['existing_loan'].setValue(currentLoanDetails.existing_loan);\n this.currentLoans.controls['currentloan_remarks'].setValue(currentLoanDetails.currentloan_remarks);\n }\n\n }\n else {\n \n this.qustCat.getAssetsWithLoanFromBusiness(this.pdid).subscribe(data=>{\n \n\n if(data.dataStatus == true){\n \n \n \n let AssetData = data.record;\n \n \n \n if(AssetData.business_address_asset.length > 0){\n AssetData.business_address_asset.map(element=>{\n this.dataFromAssets.push({mode:0,\n mode_name:element.address_label,\n details:[],\n owner_name:element.business_name_of_the_owner,\n other_owner: element.business_name_of_the_other_owner,\n form_type:'Data From Bussiness Address'})\n })\n }\n\n if(AssetData.business_assets.length>0){\n AssetData.business_assets.map(element => {\n this.dataFromAssets.push({mode:element.business_assets_mode,\n mode_name:element.business_assets_mode_name,\n details:element.business_details,\n owner_name:element.business_name_of_the_owner,\n other_owner: element.business_name_of_the_other_owner,\n form_type:'Data From Business Assets'})\n });\n }\n\n if(AssetData.other_assests.length > 0){\n AssetData.other_assests.map(element => {\n this.dataFromAssets.push({mode:element.assets_mode,\n mode_name:element.assets_mode_name,\n details:element.details,\n owner_name:element.name_of_the_owner,\n other_owner: element.other_owner,\n form_type:'Data From Other Asset'\n })\n })\n }\n \n \n // id: \"4\", name: \"Equipments and machinaries\", isactive: \"1\", flag: \"1\", is_others: \"0\"\n // id: \"7\", name: \"Investments\", isactive: \"1\", flag: \"0\", is_others: \"0\"\n // id: \"6\", name: \"Life Insurance Policy\", isactive: \"1\", flag: \"0\", is_others: \"0\"\n // id: \"2\", name: \"Property\", isactive: \"1\", flag: \"1\", is_others: \"0\"\n // id: \"3\", name: \"Vehicle\", isactsive: \"1\", flag: \"1\", is_others: \"0\"\n // id: \"1\", name: \"Others\", isactive: \"1\", flag: \"1\", is_others: \"1\"}\n \n if(this.dataFromAssets.length > 0){ \n let labelarray : any = [];\n \n this.dataFromAssets.forEach((val,index) => {\n if(val.mode == 0){\n \n let owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n \n labelarray[index] = ' : '+owner +' - '+ val.mode_name;\n } \n if(val.mode == 1){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.any_other_assets;\n });\n if(val.owner_name.length>0 ){\n owner = val.owner_name.map((e => {\n // return e.name.split(',')\n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 2){\n \n let owner: any = \"Owner Not Mentioned\";\n let data;\n val.details.forEach((v,index) => {\n data = v.property_type_name;\n if(v.property_type != 1){\n if(val.form_type == 'Data From Business Assets'){\n data = this.addressTypeData.filter(item => item.address_type_id == v.property_type)[0].address_type;\n }\n else if(val.form_type == 'Data From Other Asset'){\n data = this.propertyTypeData.filter(item => item.id == v.property_type)[0].name;\n }\n else{\n data = '';\n }\n }else{\n data=v.other_property_type;\n }\n if(val.owner_name.length>0){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n });\n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 3){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.manufacturer_model_vehicle;\n });\n if(val.owner_name.length>0){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 4){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.equipment_manufacturing_description;\n });\n if(val.owner_name.length>0 ){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : '+owner +' - '+ val.mode_name + description;\n }\n if(val.mode == 6){\n \n let owner:any=\"Owner Not Mentioned\";\n if(val.owner_name.length>0)\n {\n owner=val.owner_name.map((e=>{\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n labelarray[index] = ' : '+owner+' - '+ val.mode_name;\n }\n if(val.mode == 7){\n \n let data;\n let owner: any = \"Owner Not Mentioned\";\n val.details.forEach((v,index) => {\n data = v.investments_type != 1 \n ? this.investmentTypeData.filter(data => data.id == v.investments_type)[0].name \n : v.other_investments_type ;\n\n });\n if(val.owner_name.length>0){\n owner = val.owner_name.map((e => {\n \n return (e.name == 'Others' ? val.other_owner : e.name).split(',');\n }));\n }\n \n let description = data != '' ? '( '+ data +' )' : '';\n labelarray[index] = ' : ' + owner + ' - '+ val.mode_name + description;\n var vals= owner + ' - '+ val.mode_name \n \n }\n });\n const control = this.currentLoans.controls['loan_details'];\n this.labelArr = labelarray;\n let arr : any = [];\n if(this.labelArr.length > 0){\n this.currentLoans.controls['existing_loan'].setValue('Yes');\n this.labelArr.forEach((v,index) => {\n \n arr = { \n 'label': v,\n 'loan_amount': '',\n 'frequency':'',\n 'other_frequency':'',\n 'emi': '',\n 'loan_type': '',\n 'others_loan_type': '',\n 'loan_taken_by':'',\n 'others_loan_taken':'',\n 'lender': '',\n 'others_lender':'',\n 'original_tenure': '',\n 'current_balance_tenure': '',\n 'elapsed_tenure':''\n }\n control.push(this.createLoanDetail(arr));\n });\n // this.currentLoanForm.controls['existing_loan'].setValue(arr);\n }\n }\n else{\n \n control.push(this.createLoanDetail(null));\n }\n \n }\n });\n }\n })\n \n \n }\n searchFun(control){\n console.log(control)\n let name:string=\"bank\"\n control.controls['bankSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.lenderDataValue=this.constant.searchData(this.lenderData,control.controls['bankSearch'].value,name)\n })\n \n }\n/*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n tapEvent(value){\n console.log(\"dd\",value);\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n console.log(\"res\",res);\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n console.log(\"Fail\")\n this.toast.pdTriggerappmessage('Fail');\n }\n },ERR=>{\n console.log(JSON.stringify(ERR));\n this.toast.pdTriggerappmessage(JSON.stringify(ERR));\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('others_loan_taken').value\n value.get('others_loan_taken').setValue(this.constant.sentenceCase(name));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormArray, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport { takeUntil } from 'rxjs/operators';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {StorageProvider} from '../../../providers/storage/storage'\n\n/**\n * Generated class for the PdQuestionLoansPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\nexport interface Dbmaster{\n bt_lender_list_id: number;\n lender_name: string;\n // constant_name: string;\n}\n\n@Component({\n selector: 'page-pd-question-loans',\n templateUrl: 'pd-question-loans.html',\n})\n\nexport class PdQuestionLoansPage {\n enduse: any = [];\n propertyType: any;\n mortagetypeAccess: boolean;\n mortageAccess: boolean = false;\n mortageCardAccess: boolean;\n lender_short_name : any;\n topUpAmtInWords: any;\n ownContributionInWords: any;\n valAsPerAgmtInWords: any;\n balTxrfAmtInWords: any;\n loanAmtInWords: any;\n\n emiAmtInWords:any;\n emvAmtInWords:any;\n fundAmtInWords : any;\n m_btLenderList: any;\n applicants: any;\n m_endUseofLoad: any;\n m_sourceofamount: any;\n m_mortageTypeProperty: any;\n m_statusofCunstruction: any;\n ownerNames: any=[];\n isOtherPurpose: boolean=false;\n endUserList: any=[];\n pdDetails: any;\n FormId: any;\n productAbbr:any;\n loanDetailsForm: FormGroup;\n users: any;\n mergeCompanyApplicant:any=[];\n existCompanyList:any;\n m_endUseOFTopUpList:any=[]\n isContribution: boolean = false;\n\n \n isOtherSource: boolean = false;\n isPLSource: boolean = false;\n\n sourceList:any=[];\n pdid:number;\n m_endUseForLoan:any;\n subProductName : any;\n //public filterCtrl:FormControl=new FormControl\n private dbmasters: Dbmaster[];\n /** Subject that emits when the component has been destroyed. */\n protected _onDestroy = new Subject();\n public filteredBanks: ReplaySubject = new ReplaySubject(1);\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n complete_status : boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb: FormBuilder, \n public qustCat: QuestionCategoryProvider, public aws: AwsServiceProvider, \n public toast: ToastProvider,public constant:ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,public storagedb:StorageProvider) {\n this.FormId = this.navParams.get('FormId');\n this.pdDetails = this.navParams.get('pdDetails');\n console.log(\"pd\",this.pdDetails);\n this.applicants = this.pdDetails.applicat_details\n this.applicants = this.applicants.filter(appt => appt.applicant_type != 2 && appt.applicant_type != 3);\n this.productAbbr = this.pdDetails.product_abbr;\n this.subProductName = this.pdDetails.subproduct_name;\n this.users = this.aws.getlocale();\n this.pdid=this.pdDetails.pd_id;\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.getDropdown();\n\n this.loanDetailsForm = this.fb.group({\n loan_amount: [''],\n loan_tenure:[''],\n sub_product:[''],\n end_use: ['', Validators.compose([Validators.required])],\n end_use_other: [''],\n is_transfer: ['', Validators.compose([Validators.required])],\n is_there_total_fund:[''],\n fund_amt:[''],\n //is_topup: ['', Validators.compose([Validators.required])],\n // is_topup: [''],\n balance_transfer_amount: [''],\n topup_amount: [''],\n end_use_topup:[''],\n other_end_use_topup:[''],\n lender: [''],\n filterCtrl:[''],\n other_bt_lender : [''],\n own_contribution: ['', Validators.compose([Validators.required])],\n source: [''],\n //personal_loan_source:[''],\n other_source:[''],\n //lender_name_type: [''],\n emi_level: ['', Validators.compose([Validators.required])],\n property_type: ['', Validators.compose([Validators.required])],\n property_type_others:[''],\n owner_name: ['', Validators.compose([Validators.required])],\n construction_status: ['', Validators.compose([Validators.required])],\n //percentage_of_construction : [''],\n emv_per_customer: ['', Validators.compose([Validators.required])],\n //value_per_agreement: ['', Validators.compose([Validators.required])],\n loandetails_remarks: ['', Validators.compose([Validators.required])],\n });\n console.log(this.pdDetails)\n //Setting Initial value from PD Master\n if(this.pdDetails.loan_amount!=null){\n this.loanDetailsForm.controls['loan_amount'].setValue(this.pdDetails.loan_amount)\n this.loanAmtInWords=this.constant.convertNumberToWords(this.pdDetails.loan_amount);\n }\n if(this.pdDetails.fk_subproduct_id != null && this.pdDetails.fk_subproduct_id != ''){\n this.loanDetailsForm.controls['sub_product'].setValue(this.pdDetails.fk_subproduct_id)\n this.onChangeSubProduct(this.pdDetails.fk_subproduct_id);\n }\n \n if(this.pdDetails.product_abbr !=\"BL\" || this.pdDetails.product_abbr !=\"PL\" || this.pdDetails.product_abbr !=\"LL\")\n {\n this.mortagetypeAccess = true;\n }else\n {\n this.mortagetypeAccess = false;\n }\n \n \n if(this.productAbbr == 'PL' || this.productAbbr == 'BL' || this.productAbbr == 'LAP'){\n this.isContribution = true;\n }\n this.loanDetailsForm.controls['filterCtrl'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.filterBank();\n })\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n }\n ionViewDidLoad() {\n console .log('ionViewDidLoad PdQuestionLoansPage');\n \n this.getLoanDetails();\n this.getPDImages();\n }\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n \n ionViewCanLeave(){\n console.log(\"dirty\",this.loanDetailsForm.dirty);\n if(this.loanDetailsForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n // this.localInsert(true)\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n \n }\n protected filterBank(){\n if(!this.dbmasters){\n return\n }\n let search=this.loanDetailsForm.controls['filterCtrl'].value \n if(!search){\n this.dbmasters=this.m_btLenderList\n // this.dbmasters=this.dbmasters.sort((a,b)=>{\n // if(a.lender_name>b.lender_name){\n // return 1;\n // }\n // if(a.lender_name{\n // if(a.lender_name>b.lender_name){\n // return 1;\n // }\n // if(a.lender_name master.lender_name.toLowerCase().indexOf(search) > -1)\n //this.dbmasters.filter(master => master.lender_name==search)\n )\n // console.log(\"mbtlender\",this.m_btLenderList)\n // console.log(\"Filtered banks\",this.filteredBanks)\n }\n\n\n \n\n\n getDropdown() {\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(\n data => {\n this.m_btLenderList = data['records'].filter(data => data.isactive == 1);\n this.dbmasters=this.m_btLenderList\n this.dbmasters=this.dbmasters.sort((a,b)=>{\n if(a.lender_name>b.lender_name){\n return 1;\n }\n if(a.lender_name{\n \n this.m_endUseForLoan=data['records'].filter(data=>data.isactive==1);\n \n });\n\n this.qustCat.getcommondrop('STATUSOFCONSTRUCTION').subscribe(\n data => {\n this.m_statusofCunstruction = data['records'].filter(data => data.isactive == 1);\n });\n\n this.qustCat.getcommondrop('MORTAGEPROPERTIES').subscribe(\n data => {\n if(data['dataStatus']==true){\n console.log('data[records]',data['records']);\n let that = this;\n this.m_mortageTypeProperty = data['records'].filter(\n function (data) {\n if (that.pdDetails.product_abbr != \"LAP\") {\n if (data.group_name == that.pdDetails.product_abbr && data.isactive == 1) {\n return data;\n }\n }\n else if (that.pdDetails.product_abbr == \"LAP\") {\n if (data.group_name == that.productAbbr && data.sub_group_name == that.subProductName && data.isactive == 1) {\n return data;\n }\n else if (data.group_name == that.pdDetails.product_abbr && data.sub_group_name == null && data.isactive == 1) {\n return data;\n }\n }\n });\n // this.mortage_type(this.propertyType);\n }\n console.log('this.m_mortageTypeProperty',this.m_mortageTypeProperty);\n });\n this.qustCat.getcommondrop('SOURCEOFBALANCETRANSFER').subscribe(\n data => {\n this.m_sourceofamount = data['records'].filter(data => data.isactive == 1);\n });\n this.qustCat.getcommondrop('SUBPRODUCTS').subscribe(\n subdata => {\n if(subdata['dataStatus']==true){\n let that = this;\n this.m_endUseofLoad = subdata['records'].filter(\n function(data)\n {\n if(that.pdDetails.fk_product_id == data.fk_product_id && data.isactive==1)\n {\n return data;\n }\n });\n this.endUserChange(this.enduse)\n }\n });\n \n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true && val.is_company_applicant===true)\n \n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n }\n }\n })\n \n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n if(this.productAbbr != 'LAP'){\n this.mergeCompanyApplicant.push({groupName:'OTHERS',groupValues:[{id:0,name:'Not Yet Finalised',group_id:2}]})\n }\n }\n this.qustCat.getcommondrop('ENDUSEOFTOPUP').subscribe(data=>{\n this.m_endUseOFTopUpList=data['records'].filter(val=>val.is_active == 1)\n }) \n \n }\n\n selectedBalancesTransferChanges(event: any){\n // if(event.value == 'no') { \n // this.loanDetailsForm.controls['is_topup'].clearValidators();\n //this.loanDetailsForm.controls['is_topup'].updateValueAndValidity();\n // this.loanDetailsForm.controls['is_topup'].setValue('');\n //}\n //else if(event.value == 'yes'){\n // this.loanDetailsForm.controls['is_topup'].setValidators([Validators.required]);\n //this.loanDetailsForm.controls['is_topup'].updateValueAndValidity();\n // }\n if (event == 'no') {\n this.loanDetailsForm.controls['source'].setValidators([Validators.required]);\n this.loanDetailsForm.controls['source'].updateValueAndValidity();\n\n this.loanDetailsForm.controls['own_contribution'].setValidators([Validators.required]);\n this.loanDetailsForm.controls['own_contribution'].updateValueAndValidity();\n \n this.loanDetailsForm.controls['other_bt_lender'].setValue('');\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue(''); \n this.loanDetailsForm.controls['lender'].setValue('');\n this.loanDetailsForm.controls['topup_amount'].setValue('');\n this.loanDetailsForm.controls['end_use_topup'].setValue('');\n this.loanDetailsForm.controls['other_end_use_topup'].setValue('');\n this.topUpAmtInWords=''\n\n }\n else if (event == 'yes') {\n this.loanDetailsForm.controls['source'].setValue('');\n this.loanDetailsForm.controls['source'].clearValidators();\n this.loanDetailsForm.controls['source'].updateValueAndValidity();\n \n this.loanDetailsForm.controls['own_contribution'].setValue('');\n this.loanDetailsForm.controls['own_contribution'].clearValidators();\n this.loanDetailsForm.controls['own_contribution'].updateValueAndValidity();\n \n this.isOtherSource = false;\n this.loanDetailsForm.controls['other_source'].setValue('');\n \n }\n\n}\n \n mortage_type(mortage_value)\n {\n console.log('mortage_value',mortage_value);\n console.log('this.m_mortageTypeProperty',this.m_mortageTypeProperty);\n let mortagetypes = this.m_mortageTypeProperty.filter(mor=>mor.mortage_property_id==mortage_value)[0];\n let property_name = mortagetypes.property_name.replace(/\\s/g, \"\").toLowerCase();\n if(property_name=='others(pleasespecify)' || property_name=='others')\n {\n this.mortageAccess = true;\n }else\n {\n this.mortageAccess = false; \n }\n \n \n }\n compareObjects(o1: any, o2: any){\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n \n }\n\n\n loanCalc()\n {\n let BtAmount = this.loanDetailsForm.value.balance_transfer_amount;\n let loanAmount = this.loanDetailsForm.value.loan_amount;\n let topupAmt ;\n if(BtAmount !=null && BtAmount !='' && loanAmount !=null && loanAmount!='')\n {if (loanAmount >= BtAmount) {\n topupAmt = loanAmount - BtAmount;\n this.loanDetailsForm.controls['topup_amount'].setValue(topupAmt);\n \n this.topUpAmtInWords = this.constant.convertNumberToWords(topupAmt);\n } else {\n this.toast.pdTriggerappmessage('warning !! Balances Transfer Amount is greater than Loan Amount Please check.!');\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue('');\n this.balTxrfAmtInWords = '';\n this.loanDetailsForm.controls['topup_amount'].setValue('');\n this.topUpAmtInWords = '';\n } }\n //this.loanDetailsForm.controls['topup_amount'].setValue(topupAmt);\n }\n\n onChangeSubProduct(subproduct) {\n this.qustCat.getEndUseForLoan(this.pdid,subproduct).subscribe(\n data => {\n this.m_endUseForLoan = data['records'].filter(data => data.isactive == 1);\n });\n }\n\n endUserChange(event) {\n //this.endUserList = [];\n event.forEach(option => {\n let othresData = this.m_endUseForLoan.filter(sub=>sub.enduse_of_loan_id==option)[0];\n othresData = othresData.enduse_of_loan.substr(0,6).toLowerCase();\n this.endUserList.push({ end_use: option });\n if (othresData == 'others') {\n \n this.isOtherPurpose = true;\n return ;\n }else\n {\n this.isOtherPurpose = false;\n \n }\n });\n }\n ownerNameChange(event) {\n this.ownerNames = [];\n event.value.forEach(option => {\n this.ownerNames.push({ owner_name: option });\n });\n }\n sourceChange(evt) {\n\n // this.isOtherSource = (evt.some(e => e == 4) == true) ? true : false ;\n // this.isPLSource = (evt.some(e => e == 3) == true) ? true : false ;\n\n this.isOtherSource = evt.some(e => e == 1) // this return true or false Only;\n this.isPLSource = evt.some(e => e == 3) // this return true or false Only;\n\n this.sourceList = [];\n\n evt.forEach(option => {\n this.sourceList.push({source: option});\n });\n}\n inWords(e,flag:number){\n switch(flag){\n case 1 :\n this.loanAmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 2 : \n this.balTxrfAmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 3 :\n this.valAsPerAgmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 4 :\n this.ownContributionInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 5 :\n this.topUpAmtInWords = this.constant.convertNumberToWords(e.target.value); \n break;\n case 6:\n this.emiAmtInWords=this.constant.convertNumberToWords(e.target.value);\n break;\n case 7:\n this.emvAmtInWords=this.constant.convertNumberToWords(e.target.value);\n case 8:\n this.fundAmtInWords=this.constant.convertNumberToWords(e.target.value);\n default:\n break;\n }\n}\n submitLoanDetails() {\n // if(this.loanDetailsForm.valid){\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.loan_amount = this.loanDetailsForm.controls['loan_amount'].value;\n records.loan_tenure=this.loanDetailsForm.controls['loan_tenure'].value;\n records.sub_product=this.loanDetailsForm.controls['sub_product'].value;\n records.is_there_total_fund = this.loanDetailsForm.controls['is_there_total_fund'].value;\n records.fund_amt = this.loanDetailsForm.controls['fund_amt'].value;\n // get end user final group data\n let dataEnd_user_data = [];\n this.loanDetailsForm.controls['end_use'].value.forEach(element => {\n dataEnd_user_data.push({end_use: element})\n });\n records.end_use_group = dataEnd_user_data;\n\n if (this.isOtherPurpose) {\n records.end_use_other = this.loanDetailsForm.controls['end_use_other'].value;\n }\n records.is_transfer = this.loanDetailsForm.controls['is_transfer'].value;\n // records.is_topup = this.loanDetailsForm.controls['is_topup'].value;\n if (this.loanDetailsForm.controls['is_transfer'].value == 'yes') {\n records.balance_transfer_amount = this.loanDetailsForm.controls['balance_transfer_amount'].value;\n }\n else if(this.loanDetailsForm.controls['is_transfer'].value == 'no'){\n records.own_contribution = this.loanDetailsForm.controls['own_contribution'].value;\n \n let dataSource_list=[];\n if(this.loanDetailsForm.controls['source'].value != '')\n {\n \n this.loanDetailsForm.controls['source'].value.forEach(element => {\n dataSource_list.push({sources : element})\n });\n }\n records.source_group=dataSource_list;\n \n }\n //if (this.loanDetailsForm.controls['is_topup'].value == 'yes') {\n records.topup_amount = this.loanDetailsForm.controls['topup_amount'].value;\n //}\n if(records.topup_amount > 0){\n records.end_use_topup = this.loanDetailsForm.controls['end_use_topup'].value;\n if(records.end_use_topup == 1){\n records.other_end_use_topup = this.loanDetailsForm.controls['other_end_use_topup'].value;\n }\n }\n \n if (this.loanDetailsForm.controls['is_transfer'].value == 'yes') {\n records.lender = this.loanDetailsForm.controls['lender'].value;\n }\n if(this.loanDetailsForm.controls['lender'].value == 1){\n records.other_bt_lender = this.loanDetailsForm.controls['other_bt_lender'].value;\n } \n \n \n\n \n /* records.source = this.loanDetailsForm.controls['source'].value;\n if (this.loanDetailsForm.controls['source'].value == 'other') {\n records.lender_name_type = this.loanDetailsForm.controls['lender_name_type'].value;\n }*/\n if(this.isOtherSource){\n records.other_source=this.loanDetailsForm.controls['other_source'].value;\n }\n else{\n records.other_source = ''; \n }\n \n records.emi_level = this.loanDetailsForm.controls['emi_level'].value;\n if(this.mortageCardAccess == true){\n records.property_type = this.loanDetailsForm.controls['property_type'].value;\n if(this.loanDetailsForm.value.property_type_others !='' && this.loanDetailsForm.value.property_type_others !=null){\n records.property_type_others = this.loanDetailsForm.controls['property_type_others'].value;\n };\n // records.owner_name_group = this.ownerNames;\n if(this.loanDetailsForm.controls['owner_name'].value != ''){\n let dataOwner_name = [];\n this.loanDetailsForm.controls['owner_name'].value.forEach(element => {\n dataOwner_name.push({owner_name: element})\n });\n records.owner_name_group = dataOwner_name;\n }\n else{\n records.owner_name_group='';\n }\n \n records.construction_status = this.loanDetailsForm.controls['construction_status'].value;\n // records.percentage_of_construction = this.loanDetailsForm.controls['percentage_of_construction'].value;\n \n }else{\n records.property_type = null;\n records.property_type_others = null;\n records.owner_name_group = null;\n records.construction_status = null;\n records.emv_per_customer = null;\n }\n records.emv_per_customer = this.loanDetailsForm.controls['emv_per_customer'].value;\n //records.value_per_agreement = this.loanDetailsForm.controls['value_per_agreement'].value;\n records.loandetails_remarks = this.loanDetailsForm.controls['loandetails_remarks'].value;\n this.qustCat.saveForm(records).subscribe(data => {\n if(data['dataStatus']== true){\n //TO CHANGE THE FORM STATE \n // this.loanDetailsForm.markAsUntouched();\n this.loanDetailsForm.reset(this.loanDetailsForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage('Error');\n }\n // this.notifier.notify('success', 'Saved Successfully.');\n })\n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter The All Field');\n // }\n }\n\n getLoanDetails() {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId.form_id };\n\n this.qustCat.retiverForm(records).subscribe(value => {\n if (value['dataStatus'] == true) {\n let loanDetails = value['records'];\n let result = Object.keys(loanDetails.end_use_group).map(function (key) {\n return loanDetails.end_use_group[key];\n });\n \n\n //this.enduse\n result.forEach(val => {\n this.enduse.push(val.end_use);\n //this.endUserList.push({'end_use':val.end_use});\n });\n let ownername: any = [];\n if(loanDetails.owner_name_group != null){\n let owner = Object.keys(loanDetails.owner_name_group).map(function (key) {\n return loanDetails.owner_name_group[key];\n });\n owner.forEach(val => {\n ownername.push(val.owner_name);\n this.ownerNames.push({'end_use':val.end_use});\n });\n }\n this.loanDetailsForm.controls['loan_amount'].setValue(loanDetails.loan_amount);\n this.loanDetailsForm.controls['loan_tenure'].setValue(loanDetails.loan_tenure);\n if(loanDetails.loan_amount){ this.loanAmtInWords = this.constant.convertNumberToWords(loanDetails.loan_amount); }\n this.loanDetailsForm.controls['sub_product'].setValue(loanDetails.sub_product)\n this.loanDetailsForm.controls['end_use'].setValue(this.enduse);\n this.loanDetailsForm.controls['is_there_total_fund'].setValue(loanDetails.is_there_total_fund);\n this.loanDetailsForm.controls['fund_amt'].setValue(loanDetails.fund_amt);\n this.endUserChange(this.enduse);\n\n if (loanDetails.end_use_other!='') {\n //this.endUserChange(this.enduse);\n // this.isOtherPurpose=true;\n this.loanDetailsForm.controls['end_use_other'].setValue(loanDetails.end_use_other);\n }\n \n this.loanDetailsForm.controls['is_transfer'].setValue(loanDetails.is_transfer);\n if (loanDetails.balance_transfer_amount) {\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue(loanDetails.balance_transfer_amount);\n this.balTxrfAmtInWords = this.constant.convertNumberToWords(loanDetails.balance_transfer_amount); \n }\n if (loanDetails.topup_amount) {\n this.loanDetailsForm.controls['topup_amount'].setValue(loanDetails.topup_amount);\n this.topUpAmtInWords = this.constant.convertNumberToWords(loanDetails.topup_amount); \n if(loanDetails.topup_amount > 0){\n this.loanDetailsForm.controls['end_use_topup'].setValue(loanDetails.end_use_topup);\n if (loanDetails.end_use_topup == 1) {\n this.loanDetailsForm.controls['other_end_use_topup'].setValue(loanDetails.other_end_use_topup);\n }\n } \n }\n // this.loanDetailsForm.controls['is_topup'].setValue(loanDetails.is_topup);\n if (loanDetails.balance_transfer_amount) {\n this.loanDetailsForm.controls['balance_transfer_amount'].setValue(loanDetails.balance_transfer_amount);\n }\n if (loanDetails.topup_amount) {\n this.loanDetailsForm.controls['topup_amount'].setValue(loanDetails.topup_amount);\n }\n if (loanDetails.lender) {\n this.loanDetailsForm.controls['lender'].setValue(loanDetails.lender);\n }\n // this.loanDetailsForm.controls['own_contribution'].setValue(loanDetails.own_contribution);\n // if(loanDetails.own_contribution)\n // {\n // this.ownContributionInWords = this.constant.convertNumberToWords(loanDetails.own_contribution);\n // }\n //this.loanDetailsForm.controls['source'].setValue(loanDetails.source);\n if(loanDetails.fund_amt){this.fundAmtInWords = this.constant.convertNumberToWords(loanDetails.fund_amt); }\n if ((this.isContribution == true) && (loanDetails.is_transfer != 'yes')) {\n this.loanDetailsForm.controls['own_contribution'].setValue('');\n this.loanDetailsForm.controls['other_source'].setValue('');\n this.loanDetailsForm.controls['source'].setValue('');\n }\n else{\n if(this.isContribution == false && loanDetails.is_transfer!='yes')\n {\n let source=Object.keys(loanDetails.source_group).map(function(key){\n return loanDetails.source_group[key];\n });\n let dbsourcelist:any=[];\n source.forEach(val=>{\n dbsourcelist.push(val.sources);\n });\n this.loanDetailsForm.controls['own_contribution'].setValue(loanDetails.own_contribution)\n if (loanDetails.own_contribution) { this.ownContributionInWords = this.constant.convertNumberToWords(loanDetails.own_contribution); }\n this.loanDetailsForm.controls['source'].setValue(dbsourcelist);\n this.sourceChange(dbsourcelist);\n if(loanDetails.other_source) {\n // this.isOtherSource = true;\n this.loanDetailsForm.controls['other_source'].setValue(loanDetails.other_source);\n }\n \n \n }\n }\n\n/* if (loanDetails.lender_name_type) {\n this.loanDetailsForm.controls['lender_name_type'].setValue(loanDetails.lender_name_type);\n }*/\n \n if(loanDetails.emi_level){\n this.loanDetailsForm.controls['emi_level'].setValue(loanDetails.emi_level);\n this.emiAmtInWords=this.constant.convertNumberToWords(loanDetails.emi_level);\n }\n this.loanDetailsForm.controls['other_bt_lender'].setValue(loanDetails.other_bt_lender); \n this.loanDetailsForm.controls['property_type'].setValue(loanDetails.property_type);\n this.propertyType =loanDetails.property_type;\n if(loanDetails.property_type !=null && loanDetails.property_type !=''){\n this.mortage_type(this.propertyType);\n if(this.mortageCardAccess == true){\n this.loanDetailsForm.controls['property_type_others'].setValue(loanDetails.property_type_others); \n // this.mortage_type(loanDetails.property_type_others);\n \n }\n }\n this.loanDetailsForm.controls['owner_name'].setValue(ownername);\n this.loanDetailsForm.controls['construction_status'].setValue(loanDetails.construction_status);\n this.loanDetailsForm.controls['emv_per_customer'].setValue(loanDetails.emv_per_customer);\n if(loanDetails.emv_per_customer)\n {\n this.emvAmtInWords=this.constant.convertNumberToWords(loanDetails.emv_per_customer);\n }\n \n // this.loanDetailsForm.controls['value_per_agreement'].setValue(loanDetails.value_per_agreement);\n this.loanDetailsForm.controls['loandetails_remarks'].setValue(loanDetails.loandetails_remarks);\n } else {\n if(this.lender_short_name == 'CLIX'){\n \n this.loanDetailsForm.controls['is_transfer'].setValue(\"no\");\n this.selectedBalancesTransferChanges(\"no\")\n }\n }\n })\n if(this.productAbbr == 'BL' || this.productAbbr == 'PL' || this.productAbbr == 'LL' || this.productAbbr == 'LAEP'){\n this.mortageCardAccess = false;\n this.loanDetailsForm.controls['owner_name'].setValue('');\n this.loanDetailsForm.controls['owner_name'].clearValidators();\n this.loanDetailsForm.controls['owner_name'].updateValueAndValidity();\n \n }else{\n this.mortageCardAccess = true;\n this.loanDetailsForm.controls['owner_name'].setValidators([Validators.required]);\n this.loanDetailsForm.controls['owner_name'].updateValueAndValidity();\n \n }\n \n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n localInsert(option){\n let datas:any=this.loanDetailsForm.value\n datas.pd_id=this.pdDetails.pd_id\n datas.form_id=this.FormId.form_id;\n datas.active=option;\n // let form_id=this.FormId.form_id\n // let recors={'records':datas}\n this.storagedb.insertData(datas).then(res=>{\n let alert=this.toast.setAlert('data',JSON.stringify(res))\n alert.present();\n console.log(res);\n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-loans/pd-question-loans.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, FormArray } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { controlNameBinding } from '@angular/forms/src/directives/reactive_directives/form_control_name';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionBankingPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-banking',\n templateUrl: 'pd-question-banking.html',\n // changeDetection:ChangeDetectionStrategy.OnPush\n})\nexport class PdQuestionBankingPage {\n \n m_btLenderList: any;\n applicants: any ;\n salaryField: boolean;\n FormId: any;\n accountType: any;\n users: any;\n bankDetails:FormGroup;\n pdDetails: any;\n pdid:any;\n bankitems:FormArray;\n\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n limitCaseFlag: any=[];\n amtInwords: any=[];\n\n protected _onDestroy = new Subject();\n m_btLenderListValue: any=[];\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public cons: ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider) {\n //this.applicants.pop();\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.FormId = this.navParams.get('FormId');\n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(val=>val.applicant_type==0 || val.applicant_type==1)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'}); \n \n \n // alert();\n this.users = this.aws.getlocale();\n this.bankDetails = this.fb.group(\n {\n bankitems:this.fb.array([]),\n banking_form_remark:[null],\n });\n \n \n \n this.salaryField = this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? false : true;\n \n \n this.getdropdown();\n this.retiveBankDetails();\n // this.bankDetails.controls['bankitems'].valueChanges\n // .pipe(takeUntil(this._onDestroy))\n // .subscribe(()=>{\n // this.filterBank();\n // })\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBankingPage');\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.bankDetails.dirty);\n if(this.bankDetails.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Form is Modified\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n}\n\n checkImage(){\n let value\n if(this.imageDisplay.length>0){\n // return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Captured Images are not Saved\",\"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n // reject();\n value=false;\n }\n else{\n // resolve();\n value=true;\n }\n })\n // })\n }\n return value\n }\n searchFun(control){\n control.controls['filterCtrl'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterBank(control);\n })\n}\n\n filterBank(event){\n if(!this.m_btLenderListValue){\n return\n }\n let search=event.controls['filterCtrl'].value\n if(!search){\n this.m_btLenderListValue=this.m_btLenderList.slice()\n return\n }\n else{\n search=search.toLowerCase()\n this.m_btLenderListValue=this.m_btLenderList.filter(val=>val.lender_name.toLowerCase().indexOf(search)> -1)\n }\n }\n getdropdown()\n {\n this.qustCat.getcommondrop('ACCOUNTTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.accountType=res['records'];\n }\n });\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.m_btLenderList = data['records'].filter(data => data.isactive == 1 && data.lender_type == 1);\n this.m_btLenderListValue=this.m_btLenderList.slice();\n }\n });\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n \n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true && val.is_company_applicant===true)\n \n }\n // let modifyCompanyList : any=[];\n // if(this.existCompanyList.length>0){\n // modifyCompanyList = this.existCompanyList.map(element => {\n // return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n // });\n // this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n //}\n })\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n }\n selectedAccTypeChanges(event: any,i){\n \n if(event == 2 || event == 1) {\n this.limitCaseFlag[i] = false;\n \n // const control = this.bankingForm.controls['itemRows'];\n \n // control.controls[0].get('limit').clearValidators();\n // control.controls[0].get('limit').updateValueAndValidity();\n \n }\n else{\n this.limitCaseFlag[i] = true;\n }\n\n}\n\n/** Amount InWords */\ninWords(e,i,flag){\n switch(flag){\n case 1 : \n this.amtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n }\n}\n\n /** To Convert Month into Year */\n ConvertMonthintoYear(itemrow,e){\n \n \n let year = itemrow.controls.vintage_year.value;\n \n let converted_month : number = e%12;\n let converted_year : number = e/12;\n\n itemrow.controls.vintage_year.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.vintage_month.setValue(Math.floor(converted_month));\n \n}\n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n checkOthers(values){\n if(values!=null) {\n return values.id==0 ? true : false;\n }\n else {\n return false;\n }\n \n }\n createBankItem(name) {\n \n return this.fb.group({\n applicant_name: [''],\n bank_name: [''],\n filterCtrl:[''],\n account_type: [''],\n salary : this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? [''] : [''] ,\n limit: [''],\n other_bank:[''],\n other_applicant:[''],\n //is_main: [''],\n vintage_year: [''],\n vintage_month: [''],\n \n });\n\n }\n \n addBankDetails() {\n // if(this.pd.valid){\n \n // if(this.items.length !=0)\n // {\n // this.neighbourAccess = true;\n // }\n \n \n this.bankitems = this.bankDetails.get('bankitems') as FormArray;\n \n this.bankitems.push(this.createBankItem(''));\n \n \n \n }\n\n addmoreBankDetils()\n {\n \n this.bankitems = this.bankDetails.get('bankitems') as FormArray;\n \n this.bankitems.push(this.createBankItem('')); \n }\n\n removebank(i){\n\n if(this.bankitems.length==1){\n this.bankitems.reset();\n }\n else\n this.bankitems.removeAt(i);\n }\n\n savepdBank(answerData)\n {\n\n answerData.bankitems.forEach(element=>{\n //console.log(\"items\",element.filterCtrl);\n // if(element.filterCtrl){\n // console.log(\"enter\",element.filterCtrl)\n delete element.filterCtrl\n // }\n });\n // console.log(\"logs\",answerData)\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.banking_details = answerData.bankitems;\n records.banking_form_remark = answerData.banking_form_remark;\n \n this.qustCat.saveForm(records).subscribe(data => {\n \n if(data['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n // this.bankDetails.dirty=false;\n // this.bankDetails.markAsDirty();\n // console.log(\"Dir\",this.bankDetails.markAsDirty())\n // console.log(\"pristine\",this.bankDetails.markAsPristine());\n // console.log(\"Touched\",this.bankDetails.markAsTouched());\n\n //TO CHANGE THE FORM STATE \n // this.bankDetails.markAsUntouched();\n // console.log(\"touched\",this.bankDetails.touched)\n // console.log(\"untouched\",this.bankDetails.untouched)\n // console.log(\"pristine\",this.bankDetails.pristine)\n this.bankDetails.reset(this.bankDetails.value)\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n \n }\n\n retiveBankDetails()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n var result = Object.keys(res['records'].banking_details).map(function(key) {\n return res['records'].banking_details[key];\n });\n this.bankDetails.controls.banking_form_remark.setValue(res['records'].banking_form_remark);\n this.bankitems = this.bankDetails.get('bankitems') as FormArray;\n \n if(result.length ==0){\n \n this.bankitems.push(this.createBankItem(''))\n }else\n {\n \n \n \n \n result.forEach((datas,index)=>\n {\n datas.filterCtrl=''\n this.selectedAccTypeChanges(+datas.account_type,index)\n if(datas.limit != ''){\n this.amtInwords[index] = this.cons.convertNumberToWords(+datas.limit); \n } \n // this.selectedBorrower(datas.applicant_name,index);\n this.bankitems.push(this.createBankItem(''));\n })\n this.bankDetails.controls['bankitems'].setValue(result);\n }\n \n \n }else\n {\n \n this.addBankDetails();\n }\n });\n \n }\n\n \n/*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_applicant').value\n value.get('other_applicant').setValue(this.cons.sentenceCase(name));\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-banking/pd-question-banking.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { controlNameBinding } from '@angular/forms/src/directives/reactive_directives/form_control_name';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n\n/**\n * Generated class for the PdQuestionFamilyPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-family',\n templateUrl: 'pd-question-family.html',\n})\nexport class PdQuestionFamilyPage {\n\n\n earningStatus = [{\n type: 'Earning',\n id: 1\n}, {\n type: 'Non Earning',\n id: 2\n}]\nearning_gross_income_per_month:any;\n\n nofamily:number;\ndata:any;\n familyAddStatus: boolean;\n ownerShip: any;\n cusSeg: any;\n FormId: any;\n users: any;\n pdDetails: any;\n occupationData: any;\n membersitem: FormArray;\n items: FormArray;\n relationData: any;\n familyForm: FormGroup;\n total_number_of_family_members;\n filteredStates: any ;\n public selected_person;\n stateData:any;\n cityData: any =[];\n pincodeData:any=[];\n FamilyMemberAsLabel: any=[];\n selectPerson: any=[];\n apiFamilyMembers: any=[];\n //isReadOnly: any=[];\n RentAmount: any=[];\n IncomePerMonth: any=[];\n // cons: any;\n cityDataValue:any=[]\n stateDataValue:any=[]\n protected _onDestroy = new Subject();\n pincodeDataValue: any=[];\n relationDataValue: any=[];\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n titleList: any=[];\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider,public cons:ConstantsProvider,\n private cameraProvider:CameraProvider,private loading:LoadingProvider) {\n this.FormId = this.navParams.get('FormId');\n this.pdDetails = this.navParams.get('pdDetails');\n this.selected_person=this.pdDetails.pdapplicants_details;\n this.selectPerson=this.pdDetails.applicat_details\n this.users = this.aws.getlocale();\n \n \n this.familyForm = this.fb.group({\n family_details: this.fb.array([\n //this.initFamilyDetails()\n \n ]),\n family_details_form_remark:[''],\n \n \n });\n this.getRelation();\n this.getoccupation();\n \n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n\n ionViewDidLoad() {\n console.log(\"ionViewDidLoad PdQuestionFamilyPage\")\n this.getFamilyData();\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.familyForm.dirty);\n if(this.familyForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n initFamilyDetails(records) : void\n {\n if (records === null) {\n let formData: FormGroup = this.fb.group({\n selected_person: ['', Validators.compose([Validators.required])],\n residence_place: [''],\n residence_city: [''],\n citySearch:[''],\n residence_state: [''],\n stateSearch:[''],\n pinSearch:[''],\n residence_pin: [''],\n residence_other_pincode:[''],\n residence_No_of_years: [''],\n residence_ownership: [''],\n ownershipOther: [''],\n rent: [''],\n total_number_of_family_members: ['', Validators.compose([Validators.min(1), Validators.max(20)])],\n family_members_details: this.fb.array([])\n });\n const control = this.familyForm.controls['family_details'];\n control.push(formData);\n \n }\n else{\n records.forEach((val,index)=>{\n if(val.rent != null){\n this.inWords(val.rent,index,2)\n }\n this.FamilyMemberAsLabel[index] = this.selectPerson.filter(item => item.pd_co_applicant_id == val.selected_person)[0].applicant_name;\n this.getCity(val.residence_state,index);\n let formData:FormGroup=this.fb.group({\n selected_person:[val.selected_person,Validators.compose([Validators.required])],\n residence_place:[val.residence_place],\n residence_city:[val.residence_city],\n citySearch:[''],\n residence_state:[val.residence_state],\n stateSearch:[''],\n pinSearch:[''],\n residence_pin:[val.residence_pin],\n residence_other_pincode:[val.residence_other_pincode],\n residence_No_of_years: [val.residence_No_of_years],\n residence_ownership:[val.residence_ownership],\n rent:[val.rent || null],\n ownershipOther:[val.ownershipOther || null],\n total_number_of_family_members:[val.total_number_of_family_members,Validators.compose([Validators.min(1), Validators.max(20)])],\n family_members_details:this.fb.array([])\n \n });\n \n const control = this.familyForm.controls['family_details'];\n control.push(formData);\n \n let inx=control.length-1;\n //this.getNumberOfFamilyMemberDetails(inx);\n this.initFamilyMembersDetails(inx, val.family_members_details);\n \n \n //this.initFamilyMembersDetails\n \n })\n }\n /*\n return this.fb.group({\n //family_details\n selected_person:[''],\n residence_place:[''],\n residence_city:[''],\n residence_state:[''],\n residence_pin:[''],\n residence_No_of_years: [''],\n residence_ownership:[],\n rent:[''],\n ownershipOther:[''],\n total_number_of_family_members:['',Validators.compose([Validators.min(1), Validators.max(20)])],\n \n //family_member_details\n \n \n \n family_members_details:this.fb.array([]),\n \n\n // person: [null],\n /* personOther: [''],\n members: [''],\n residence: [''],\n years: [null],\n family_details_form_remark:[''],\n \n });*/\n\n }\n initFamilyMembersDetails(inx,val) :void {\n const control = this.familyForm.controls['family_details']['controls'][inx].controls.family_members_details;\n val.forEach((vals,index)=>{\n\n \n if(vals.earning_gross_income_per_month != null){\n this.inWords(vals.earning_gross_income_per_month,index,1);\n }\n let datas = this.fb.group({\n family_member_salutation:[vals.family_member_salutation || null],\n family_member_name: [vals.family_member_name || null],\n family_member_relationship: [vals.family_member_relationship || null],\n relationSearch:[''],\n family_member_age: [vals.family_member_age || null],\n family_member_earning_status: [vals.family_member_earning_status || null],\n earning_segment: [vals.earning_segment || null],\n earning_if_others_segment:[vals.earning_if_others_segment || null],\n earning_gross_income_per_month: [vals.earning_gross_income_per_month || null],\n earning_name_of_the_employer_or_business: [vals.earning_name_of_the_employer_or_business || null],\n earning_number_of_years_in_employment_or_business: [vals.earning_number_of_years_in_employment_or_business || null],\n non_earning_occupation: [vals.non_earning_occupation || null],\n non_earning_if_others: [vals.non_earning_if_others || null],\n non_earning_if_schoolorcollege:[vals.non_earning_if_schoolorcollege || null],\n non_earning_if_retired_from: [vals.non_earning_if_retired_from || null],\n })\n \n control.push(datas);\n });\n }\n \n /*return this.fb.group({\n family_member_name:[''],\n family_member_relationship:[],\n family_member_age:[],\n family_member_earning_status:[''],\n //family_member_earnings\n earning_segment:[''],\n earning_gross_income_per_month:[''],\n earning_name_of_the_employer_or_business:[''],\n earning_number_of_years_in_employment_or_business:[''],\n \n non_earning_occupation:[''],\n non_earning_if_others:[''],\n non_earning_if_retired_from:[''],\n });*/\n \n\n\n add() :void { \n // const control=this.familyForm.controls['family_details'];\n //control.push(this.initFamilyDetails('chck'));\n this.initFamilyDetails(null);\n this.toast.pdTriggerappmessage(\"Family Details Added\");\n }\n remove_family_details(i:number):void{\n const control=this.familyForm.controls['family_details'];\n control.removeAt(i);\n }\n addMemberDet(data:any){\n const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n //this.initFamilyMembersDetails('','')\n control.push(this.generateFamilyMembersDetailsGet())\n }\n removeMemberDet(index:any,f_index:any){\n const control=this.familyForm.controls['family_details']['controls'][f_index].controls.family_members_details;\n if(control.length>1){\n control.removeAt(index); \n }\n else{\n control.reset()\n }\n // if(control.value !=null && index == 0)\n\n }\n getNumberOfFamilyMemberDetails(data)\n {\n \n var datavalue=data;\n let formData=this.familyForm.controls['family_details']['controls'][datavalue].controls;\n if(formData['total_number_of_family_members'].valid)\n {\n let totmem=formData['total_number_of_family_members'].value;\n const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n if(totmem>=control.length){\n let len=totmem-control.length;\n for( let i=0;i=totmem;i--)\n {\n control.removeAt(i);\n }\n \n // var nn=control.length-totmem; \n // control.controls = [];\n /*for (let i = 0; i < totmem; i++) {\n control.push(this.generateFamilyMembersDetailsGet());\n\n }*/\n // this.initFamilyDetails(this.resValue['records'].family_details);\n // this.toast.pdTriggerappmessage(\"Please choose the number greater than\"+control.length);\n }\n \n \n }\n else{\n const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n control.removeAt(control.length);\n control.controls=[];\n }\n /* const control=this.familyForm.controls['family_details']['controls'][data].controls.family_members_details;\n control.push(this.initFamilyMembersDetails());\n */ \n }\n generateFamilyMembersDetailsGet(): FormGroup {\n return this.fb.group({\n family_member_salutation:[''],\n family_member_name: ['' ],\n family_member_relationship: [''],\n relationSearch:[''],\n family_member_age: [''],\n family_member_earning_status: [''],\n earning_segment: [''],\n earning_if_others_segment:[''],\n earning_gross_income_per_month: [''],\n earning_name_of_the_employer_or_business: [''],\n earning_number_of_years_in_employment_or_business: [''],\n non_earning_occupation: [''],\n non_earning_if_others: [''],\n non_earning_if_schoolorcollege:[''],\n non_earning_if_retired_from: [''],\n })\n}\n \n getRelation() {\n let master_name = 'RELATIONSHIPS';\n this.qustCat.getcommondrop(master_name).subscribe(data => {\n \n if(data['dataStatus'] == true){\n this.relationData = data['records'].filter(rel=>rel.isactive ==1);\n this.relationDataValue=this.relationData.slice();\n }\n });\n\n this.qustCat.getcommondrop('PERSONSMET').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.filteredStates = res['records'].filter(per=>per.isactive==1);\n }\n });\n // this.qustCat.getcommondrop('CUSTOMERSEGMENT').subscribe(res=>\n // {\n // if(res['dataStatus']==true)\n // {\n // this.cusSeg = res['records'].filter(seg=>seg.isactive==1);\n // }\n // });\n this.qustCat.getcommondrop('EARNINGMEMBERSSTATUS').subscribe(res=>{\n if(res['dataStatus']==true){\n this.cusSeg = res['records'].filter(seg=>seg.isactive==1);\n }\n })\n this.qustCat.getcommondrop('RESIDENCEOWNERSHIP').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.ownerShip = res['records'].filter(own=>own.isactive==1);\n }\n });\n this.qustCat.getcommondrop('STATE').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.stateData=res['records'].filter(item=>item.isactive==1);\n this.stateDataValue=this.stateData.slice();\n }\n })\n this.qustCat.getcommondrop('TITLES').subscribe(res=>{\n if(res['dataStatus']==true){\n this.titleList=res['records'].filter(com=>com.isactive==1);\n }\n });\n \n}\ngetCity(e,i){\n // this.cityData = this.wholeCityData.filter(city=>city.fk_state_id == e); \n // this._pd.retriveForm(params).subscribe(data => {\n this.qustCat.getStateWiseCities(e).subscribe(data=>{\n if (data['dataStatus'] == true) {\n this.cityData[i] = data.records.cities; \n this.cityDataValue[i]=this.cityData[i].slice();\n this.pincodeData[i] = data.records.pincode;\n this.pincodeDataValue[i]=this.pincodeData[i].slice()\n }\n });\n}\ngetoccupation()\n{\n let master_name = 'OCCUPATIONMEMBERS';\n this.qustCat.getcommondrop(master_name).subscribe(data => {\n if(data['dataStatus']==true){\n this.occupationData = data['records'].filter(occ=>occ.isactive ==1);\n }\n });\n}\n /* createMembers(): FormGroup {\n return this.fb.group({\n earning_member_name : [null],\n earning_member_age : [null],\n relation: [null],\n segment: [null],\n income: [null],\n employer_name: [null],\n });\n}\ncount :number = 0;\naddearningMembers()\n{\n this.items = this.familyForm.get('earningMembers') as FormArray;\n this.items.push(this.createMembers());\n this.count++;\n this.checkfamilystatus(this.count,''); \n\n}\n\ndeleteEarningMembers(i)\n{\n\n if(this.items.length==1)\n {\n this.familyForm.controls['earningMembers'].reset();\n }else{\n this.items.removeAt(i);\n }\n this.count--;\n this.checkfamilystatus(this.count,''); \n}\ncreateNonMembers(): FormGroup {\n return this.fb.group({\n non_earning_member_name : [''],\n non_earning_member_age : [''],\n relationship: [null],\n occupation: [null],\n retired: [null],\n others_occupation:[null],\n });\n}\naddMembers()\n{\n this.membersitem =this.familyForm.get('nonEarningMembers') as FormArray;\n this.count++;\n this.checkfamilystatus(this.count,''); \n this.membersitem.push(this.createNonMembers());\n \n}\ndeleteMembers(i)\n{\n if(this.membersitem.length==1){\n this.familyForm.controls['nonEarningMembers'].reset();\n \n }else{\n this.membersitem.removeAt(i);\n }\n this.count--;\n this.checkfamilystatus(this.count,''); \n}\ncheckfamilystatus(count,familystatus)\n{\n if(familystatus !='' && familystatus !==undefined){\n\n }else{\n familystatus = this.familyForm.get('members').value;\n }\n if(familystatus !== null ){\n if(familystatus == count)\n {\n\n this.familyAddStatus = true;\n }else\n {\n this.familyAddStatus = false;\n }\n }\n}*/\n/* Old\nsavepdfamily(answerData)\n{\n let records: any = {};\n records.no_of_years = answerData.years;\n if (answerData.ownership == '4') {\n records.ownershipOther = answerData.ownershipOther;\n } \n records.residence = answerData.residence;\n if (answerData.ownership == '3') {\n records.what_rent = answerData.rent;\n }\n // if (answerData.person == '8') {\n // records.person_met = answerData.personOther.value;\n // } else {\n // records.person_met = answerData.person;\n // }\n records.ownership = answerData.ownership\n records.family_members = answerData.members;\n records.earning_members = answerData.earningMembers;\n records.non_earning_members = answerData.nonEarningMembers;\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.family_details_form_remark = answerData.family_details_form_remark;\n this.qustCat.saveForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n this.navCtrl.pop();\n }\n })\n}*/\nsetValidation(control){\n console.log(control)\n if(control.controls['family_member_earning_status'].value == 1){\n control.controls['non_earning_occupation'].clearValidators()\n control.controls['non_earning_occupation'].updateValueAndValidity()\n }\n if(control.controls['family_member_earning_status'].value == 2 ){\n control.controls['non_earning_occupation'].setValidators(Validators.compose([Validators.required]))\n control.controls['non_earning_occupation'].updateValueAndValidity()\n }\n}\n\nsavepdfamily(answerData)\n{\n if(!this.familyForm.valid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Mandatory Fields\");\n return\n }\n \n let records:any={};\n \n records=this.familyForm.value;\n\n Object.keys(records).forEach((key)=>(records[key]==null)&& delete records[key]);\n \n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid=this.pdDetails.pd_id;\n records.formid=this.FormId.form_id;\n records.fk_createdby=this.users;\n records.family_details.forEach(parVal=>{\n console.log(\"par\",parVal)\n delete parVal.stateSearch\n delete parVal.citySearch\n delete parVal.pinSearch\n parVal.family_members_details.forEach(childVal=>{\n console.log(\"childval\",parVal)\n delete childVal.relationSearch\n })\n })\n this.qustCat.saveForm(records).subscribe(res=>{\n //TO CHANGE THE FORM STATE \n this.familyForm.reset(this.familyForm.value);\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n \n },err=>{\n this.toast.pdTriggerappmessage(\"Some Fields value is Missing Please Fill It\");\n })\n\n /*let records: any = {};\n records.no_of_years = answerData.residence_No_of_years;\n if (answerData.residence_ownership == '4') {\n records.ownershipOther = answerData.ownershipOther;\n } \n //records.residence = answerData.residence;\n if (answerData.residence_ownership == '3') {\n records.what_rent = answerData.rent;\n }\n // if (answerData.person == '8') {\n // records.person_met = answerData.personOther.value;\n // } else {\n // records.person_met = answerData.person;\n // }\n records.ownership = answerData.residence_ownership\n records.family_members = answerData.total_number_of_family_members;\n records.earning_members = answerData.earningMembers;\n records.non_earning_members = answerData.nonEarningMembers;\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.family_details_form_remark = answerData.family_details_form_remark;\n this.qustCat.saveForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n this.navCtrl.pop();\n }\n })*/\n}\nprevFamilyMembersCtrlLength: number = 0;\ncurrFamilyMembersCtrlLength: number = 0;\nselectedPerson(e,inx){\n \n this.FamilyMemberAsLabel[inx] = this.selectPerson.filter(item => item.pd_co_applicant_id == e)[0].applicant_name;\n \n const control = this.familyForm.controls['family_details']['controls'][inx].controls.family_members_details;\n \n this.currFamilyMembersCtrlLength = control.length;\n \n let i : number = 0 ;\n for(i ;i < this.prevFamilyMembersCtrlLength;i++){\n console.log(i,this.prevFamilyMembersCtrlLength);\n control.removeAt(i);\n }\n // while(index < this.prevFamilyMembersCtrlLength)\n // { \n // }\n this.prevFamilyMembersCtrlLength = this.currFamilyMembersCtrlLength;\n console.log('familyMembersControlLength',this. prevFamilyMembersCtrlLength,this.currFamilyMembersCtrlLength);\n\n if(this.apiFamilyMembers.length>0){\n\n let arraydata : any;\n let data = this.apiFamilyMembers.filter(item => item.relation_to == e);\n\n \n // data_gets_from:'GeneralForm'\n // data_gets_from:'BusinessForm'\n \n if(data.length > 0){\n \n \n this.prevFamilyMembersCtrlLength = data.length;\n console.log('familyMembersControlLength',this. prevFamilyMembersCtrlLength,this.currFamilyMembersCtrlLength);\n\n\n data.forEach((val,inx) => {\n \n // // family_member_earning_status\n // if(val.age){\n // this.isReadOnly[inx] = true;\n // }else{\n // this.isReadOnly[inx] = false;\n // }\n arraydata = {\n 'family_member_salutation':'',\n 'family_member_name' : val.name,\n 'family_member_relationship' : val.relationship,\n 'family_member_age' : val.age,\n 'family_member_earning_status': val.data_gets_from == 'BusinessForm' ? '1' :'',\n 'earning_segment': '',\n 'earning_gross_income_per_month': '',\n 'earning_name_of_the_employer_or_business':'',\n 'earning_number_of_years_in_employment_or_business': '',\n 'earning_if_others_segment':'',\n 'non_earning_occupation': '',\n 'non_earning_if_others': '',\n 'non_earning_if_retired_from': '',\n 'non_earning_if_schoolorcollege': ''\n }\n control.push(this.initgenerateFamilyMembersDetailsGet(arraydata));\n \n });\n }\n else{\n this.prevFamilyMembersCtrlLength = 1;\n console.log('familyMembersControlLength',this. prevFamilyMembersCtrlLength,this.currFamilyMembersCtrlLength);\n \n\n control.push(this.generateFamilyMembersDetailsGet()); \n }\n }\n else{\n \n control.push(this.generateFamilyMembersDetailsGet());\n } \n}\n\ngenerateFamilyMembersDetailsGetData(data){\n var result = Object.keys(data).map(function (key) {\n return data[key];\n});\nif (result.length > 0) {\n for (let val of result) {\n const control = this.familyForm.controls['family_members_details'];\n control.push(this.initgenerateFamilyMembersDetailsGet(val));\n }\n}\n}\ninitgenerateFamilyMembersDetailsGet(val):FormGroup{\n return this.fb.group({\n family_member_salutation:[val.family_member_salutation],\n family_member_name: [val.family_member_name],\n family_member_relationship: [val.family_member_relationship],\n relationSearch:[''],\n family_member_age: [val.family_member_age],\n family_member_earning_status: [val.family_member_earning_status],\n earning_segment: [val.earning_segment],\n earning_if_others_segment:[val.earning_if_others_segment],\n earning_gross_income_per_month: [val.earning_gross_income_per_month],\n earning_name_of_the_employer_or_business: [val.earning_name_of_the_employer_or_business],\n earning_number_of_years_in_employment_or_business: [val.earning_number_of_years_in_employment_or_business],\n non_earning_occupation: [val.non_earning_occupation],\n non_earning_if_others: [val.non_earning_if_others],\n non_earning_if_schoolorcollege:[val.non_earning_if_schoolorcollege],\n non_earning_if_retired_from: [val.non_earning_if_retired_from],\n})\n}\nresValue:any;\n\n getFamilyData()\n {\n this.qustCat.getFamilyDetails(this.pdDetails.pd_id).subscribe(res=>{\n // console.log(res);\n if(res['dataStatus']==true){\n // console.log('res.record.from_general_form',res.record.from_general_form,res['record']);\n let Temparr : any = [];\n\n if(res.record.from_general_form.length>0){\n let familyMembersGeneralForm=Object.keys(res.record.from_general_form).map(function(key){\n return res.record.from_general_form[key]\n });\n let datas=familyMembersGeneralForm.map(element=>{\n return {id:element.pd_co_applicant_id.toString(),\n name:element.applicant_name,\n relationship:element.relationship,\n relation_to:element.relation_to,\n age:element.age,\n data_gets_from:'GeneralForm'};\n \n });\n Temparr.push(datas);\n // console.log('Temparr',Temparr);\n }\n else{\n console.log(\"No data in General Form\")\n }\n if(res.record.from_business_form.length >0){\n let familyMembersBusinessForm=Object.keys(res.record.from_business_form).map(function(key){\n return res.record.from_business_form[key]\n });\n let datas=familyMembersBusinessForm.map(element=>{\n return {id:element.other_family_relationship_id,\n name:element.family_member_name,\n relationship:element.other_family_relationship_id,\n relation_to:element.relation_to_id,\n age:'',\n data_gets_from:'BusinessForm'};\n });\n Temparr.push(datas);\n }\n else{\n console.log(\"No data in Business Form\")\n }\n this.apiFamilyMembers = [].concat.apply([],Temparr);\n }\n })\n let records={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n\n this.qustCat.retiverForm(records).subscribe(res=>{\n console.log(\"Entering Retrieve\");\n \n if(res['status']==200){\n if(res['records'].family_details.length > 0){\n //FOR REMOVING CONTROL\n res['records'].family_details.forEach(parVal=>{\n parVal.stateSearch=''\n parVal.citySearch=''\n parVal.pinSearch=''\n parVal.family_members_details.forEach(childVal=>{\n delete childVal.relationSearch\n })\n })\n this.familyForm.controls.family_details_form_remark.setValue(res['records'].family_details_form_remark);\n this.resValue=res;\n this.initFamilyDetails(res['records'].family_details);\n \n }\n \n }\n else{\n console.log(\"No Data Found\");\n this.initFamilyDetails(null);\n \n }\n //this.generateFamilyMembersDetailsGetData(res['records'].family_members_details);\n \n },err=>{\n console.log(\"Error\",err)\n })\n\n \n \n \n /*let earning:any = [];\n let non_earning:any = [];\n let records = {'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n non_earning = Object.keys(res['records'].non_earning_members).map(function(key) {\n\n return res['records'].non_earning_members[key];\n });\n this.familyForm.controls['family_details_form_remark'].setValue(res['records'].family_details_form_remark);\n earning = Object.keys(res['records'].earning_members).map(function(key) {\n return res['records'].earning_members[key];\n });\n let familyDetails = res['records'];\n this.checkfamilystatus(non_earning.length + earning.length,familyDetails.family_members); \n // this.familyForm.controls['person'].setValue(familyDetails.person_met);\n this.familyForm.controls['personOther'].setValue(familyDetails.personOther);\n this.familyForm.controls['members'].setValue(familyDetails.family_members);\n this.familyForm.controls['residence'].setValue(familyDetails.residence);\n this.familyForm.controls['years'].setValue(familyDetails.no_of_years);\n this.familyForm.controls['ownership'].setValue(familyDetails.ownership);\n this.familyForm.controls['ownershipOther'].setValue(familyDetails.ownershipOther);\n this.familyForm.controls['rent'].setValue(familyDetails.what_rent);\n // this.familyForm.controls['earningMembers'].setValue(earning);\n // for(this.)\n this.items = this.familyForm.get('earningMembers') as FormArray;\n this.membersitem =this.familyForm.get('nonEarningMembers') as FormArray;\n if(earning.length==0)\n {\n this.addearningMembers();\n }else\n {\n earning.forEach(datas => {\n this.count++;\n this.items.push(this.createMembers());\n });\n this.familyForm.controls['earningMembers'].setValue(earning);\n \n }\n\n if(non_earning.length==0)\n {\n this.addMembers(); \n }else\n {\n non_earning.forEach(datas => {\n this.count++;\n this.membersitem.push(this.createNonMembers());\n \n });\n this.familyForm.controls['nonEarningMembers'].setValue(non_earning);\n // this.checkfamilystatus(this.count);\n }\n \n // for(let earningDetails of earning){\n // this.items = this.familyForm.get('earningMembers') as FormArray;\n // this.items.push(earning);\n // }\n\n }else\n {\n this.addearningMembers();\n this.addMembers();\n }\n }) */ \n }\n /** To Convert Amount into Words */\n inWords(e,i,flag:number){\n switch(flag){\n case 1 :\n this.IncomePerMonth[i] = this.cons.convertNumberToWords(e); \n break;\n case 2 :\n this.RentAmount[i] = this.cons.convertNumberToWords(e); \n break;\n }\n }\n initSetValue(records):void{\n for(let val of records){\n let formData:FormGroup=this.fb.group({\n selected_person:[val.selected_person,Validators.compose([Validators.required])],\n residence_place:[val.residence_place]\n })\n }\n }\n\n\nsearchFun(control:any,i:number,option){\n console.log(\"control\",control)\n if (option == 'city') {\n // this.cityData[i]=this.filterCity(this.stateList,control.value.state_name)\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'state') {\n console.log(\"state\")\n control.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchState(control.controls['stateSearch'].value)\n })\n }\n if (option == 'pin') {\n console.log(\"pin\")\n control.controls['pinSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.searchPin(control.controls['pinSearch'].value,i)\n })\n }\n }\n searchPin(val:any,index:number){\n if(!this.pincodeData[index]){\n return\n }\n let searchValue=val\n if(!searchValue){\n this.pincodeDataValue[index]=this.pincodeData[index].slice()\n return\n }else{\n searchValue=searchValue.toLowerCase()\n }\n this.pincodeDataValue[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1)\n }\n SearchCity(val: any, i: number) {\n // let cityData=\n console.log(this.cityData[i])\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n this.cityDataValue[i]=this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.cityDataValue[i]=\n this.cityData[i].filter(val=>val.city_name.toLowerCase().indexOf(searchValue)> -1)\n \n console.log(\"City Data value\",this.cityDataValue[i])\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n \n }\n searchState(val: any) {\n console.log(\"statedata\")\n if (!this.stateData) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n // this.filteredState.next(this.stateList.slice())\n this.stateDataValue=this.stateData.slice()\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.stateDataValue=this.stateData.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n // this.filteredState.next(\n // this.stateList.filter(res => res.state_name.toLowerCase().indexOf(searchVal) > -1)\n // )\n }\n searchRelation(val:any){\n // val=val.controls['relationSearch'].value\n console.log(\"val\",val);\n val.controls['relationSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.relationDataValue=this.cons.searchData(this.relationData,val.controls['relationSearch'].value,'')\n \n })\n \n }\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n \n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n \n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo location promise\",geoCoordinates)\n \n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n \n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('family_member_name').value\n value.get('family_member_name').setValue(this.cons.sentenceCase(name));\n }\n }\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-family/pd-question-family.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams,AlertController, Content } from 'ionic-angular';\nimport { FormArray,FormGroup,FormBuilder,Validators} from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {Camera} from '@ionic-native/camera'\n// import {CacheService} from 'ionic-cache-observable'\n// import { Observable } from 'rxjs/Observable';\n\n/**\n * Generated class for the PdQuestionAssestsPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assests',\n templateUrl: 'pd-question-assests.html',\n})\nexport class PdQuestionAssestsPage {\n tab:any='0'\n public m_any_asset_loan_type = [{'value': \"yes\",'viewValue': \"Yes\"},\n {'value': \"no\",'viewValue': \"No\"},\n {'value': \"nan\",'viewValue': \"NA\"}]\n m_relation: any;\n applicants: any ;\n users: any;\n FormId: any;\n m_freqOfPurchase: { 'id': string; 'name': string; }[];\n m_investmentType: { 'id': string; 'name': string; }[];\n m_insuranceType: { 'id': string; 'name': string; }[];\n m_propertyType: { 'id': string; 'name': string; }[];\n m_assets_type: { 'id': string; 'name': string; }[];\n m_vehicle_type: any=[];\n m_uom_type: any=[];\n pdDetails: any;\n assetItem: any;\n items:FormArray;\n AssetsDetailsForm:FormGroup;\n details:FormArray;\n FormList:boolean = false;\n loadDetails:boolean = true;\n assestInfo:any;\n PremiumPaidInwords: any=[]; \n SumAssuredInwords: any=[];\n AmtInvestInwords: any=[];\n ApproxInwords:any =[];\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n isOtherOwner: any = [];\n pdid:any;\n currentYear: any = new Date().getFullYear();\n imageBucket: any=[];\n base64: string;\n imageDisplay: any=[];\n @ViewChild('focusName') inputFocus;\n @ViewChild('picContent') content: Content\n complete_status: boolean = false;\n // data:Observable ;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public constprovider:ConstantsProvider,public camera:Camera,public alert: AlertController) {\n \n this.assestInfo = \"busass\";\n this.FormId = this.navParams.get('FormId');\n \n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.users = this.aws.getlocale();\n this.applicants = this.pdDetails.applicat_details;\n this.applicants=this.applicants.filter(val=>val.applicant_type==0 || val.applicant_type==1)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n \n this.AssetsDetailsForm = this.fb.group({\n assets_details:this.fb.array([]),\n assets_form_remark:['']\n })\n \n this.getAssetDetails();\n this.getdropList();\n this.loadDetails = true;\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssestsPage');\n console.log(\"Form\",this.AssetsDetailsForm)\n this.getPDImages();\n }\n // ionViewWillLeave(){\n // console.log(this.AssetsDetailsForm.dirty);\n // if(this.AssetsDetailsForm.dirty){\n // return;\n // }\n \n // }\n ionViewCanLeave(){\n console.log(\"dirty\",this.AssetsDetailsForm.dirty);\n if(this.AssetsDetailsForm.dirty){\n // console.log(\"dirty\",this.AssetsDetailsForm.dirty)\n //return false;\n // let val=this.toast.setAlert('Form is Modified','Are you sure want to Go Back');\n // console.log(\"v\",val)\n // if(val==1){\n\n // }\n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Form is Modified\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n }\n \n }\n\n getdropList()\n {\n //GETTING Asset Type\n this.qustCat.getcommondrop('ASSETTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_assets_type = res['records'].filter(data=>data.isactive==1 && data.id!=5);\n \n }\n })\n \n //GETTING Property Type;\n this.qustCat.getcommondrop('PROPERTIES').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_propertyType = res['records'].filter(data => data.isactive == 1);\n \n }\n })\n \n //GETTING Investment Type;\n this.qustCat.getcommondrop('INVESTMENTTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_investmentType = res['records'].filter(data => data.isactive == 1);\n }\n })\n\n //GETTING Insurance Type;\n this.qustCat.getcommondrop('INSURANCETYPE').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.m_insuranceType =res['records'].filter(data => data.isactive == 1);\n }\n })\n \n //GETTING Frequency Type;\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_freqOfPurchase = res['records'].filter(data => data.isactive == 1);\n }\n })\n\n //GETTING Relationship;\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(data => \n {\n if(data['dataStatus']==true)\n {\n this.m_relation = data['records'].filter(data => data.isactive == 1);\n }\n });\n\n //GETTING VEHICLE TYPE;\n this.qustCat.getcommondrop('VEHICLETYPE').subscribe(data => {\n if(data['dataStatus']==true)\n {\n this.m_vehicle_type = data['records'].filter(data => data.is_active == 1);\n }\n })\n \n //GETTING UOM List;\n this.qustCat.getcommondrop('UOM').subscribe(data => {\n if(data['dataStatus']==true)\n {\n this.m_uom_type = data['records'].filter(data => data.isactive == 1 && data.is_land_uom == 1 || data.is_land_uom == 2);\n }\n })\n\n //GETTING Company And Applicant List.\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>\n { \n if(data['dataStatus']==true)\n {\n this.existCompanyList=data['records'].filter(val =>val.is_active===true)\n \n }\n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n }\n \n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n })\n \n \n }\n createAsset() : FormGroup\n {\n return this.fb.group(\n {\n assets_mode: [null],\n details: this.fb.array([]),\n approximate_market_value: [null],\n name_of_the_owner: [''],\n other_owner:[''],\n purchase_year: [null,Validators.compose([Validators.minLength(4),Validators.maxLength(4)])],\n vintage_personal : [''],\n emi: [null],\n });\n }\n\n addAsset(flag)\n {\n if(flag==1){\n this.assetItem = this.AssetsDetailsForm.get('assets_details') as FormArray;\n this.assetItem.push(this.createAsset());\n }\n }\n\n deleteAsset(i,flag)\n {\n if(flag==1){\n this.assetItem = this.AssetsDetailsForm.get('assets_details') as FormArray;\n if(this.assetItem.length==1)\n {\n this.AssetsDetailsForm.controls['assets_details'].reset();\n }else{\n this.assetItem.removeAt(i);\n } \n }\n }\n \n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n \n loanCalc(details ,flag)\n {\n if(flag == 1){\n \n let ElapsedValues;\n \n if(details.value.original_loan_tenure != null && details.value.original_loan_tenure != '' && details.value.balance_tenure != null && details.value.balance_tenure != ''){\n ElapsedValues = details.value.original_loan_tenure - details.value.balance_tenure ;\n details.controls['elapsed_tenure'].setValue(ElapsedValues);\n }\n }\n }\n \n show: boolean;\n selectedAssetsType(e: any, i: any,flag : any): void {\n \n let val = i;\n if(flag == 1){\n const arr = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n arr.controls.splice(0);\n }\n \n switch (e.value) {\n case '1': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray ;\n control.push(this.otherAssetsDescription());\n break;\n }\n case '2': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadProperty());\n break;\n }\n case '3': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.load_Four_Weeler());\n break;\n }\n case '4': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray; \n control.push(this.loadEquipmentManufacturingDescription());\n break;\n }\n case '5': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadConsumerDurableDescription());\n break;\n }\n case '6': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadInsuranceDescription());\n break;\n }\n case '7': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.loadInvestDescription());\n break;\n }\n case '8': {\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray \n control.push(this.otherAssetsDescription());\n break;\n }\n default: {\n break;\n }\n }\n }\n\n loadProperty() {\n return this.fb.group({\n property_type: [''],\n other_property_type: [''],\n address_of_the_property: [''],\n describe_of_the_property_asset: [''],\n area_covered_by_this_property: [''],\n uom_of_the_property: [''],\n other_uom: ['']\n });\n } \n\n loadConsumerDurableDescription() {\n return this.fb.group({\n consumer_durable_description: [null]\n });\n }\n \n loadEquipmentManufacturingDescription() {\n return this.fb.group({\n equipment_manufacturing_description: ['']\n });\n }\n\n otherAssetsDescription() {\n return this.fb.group({ any_other_assets: [''] });\n }\n\n loadInsuranceDescription() {\n return this.fb.group({\n // insurance_type: [null],\n premium_paid: [null],\n frequency_mode: [null],\n other_frequency_mode:[null],\n sum_assured: [null],\n members_coverd: [null]\n });\n }\n\n loadInvestDescription() {\n return this.fb.group({\n investments_type: [''],\n other_investments_type:[''],\n in_which_organisation:[''],\n amount_of_invest: [''],\n bank_name: ['']\n });\n }\n\n load_Four_Weeler() {\n return this.fb.group({\n manufacturer_model_vehicle: [''],\n vehicle_type: [''],\n other_vehicle_type: ['']\n });\n }\n \n\n load_Two_Weeler() {\n return this.fb.group({\n manufacturer_model_two_weeler: ['']\n });\n }\n\n\n\n loadPropertyWithData(data) {\n return this.fb.group({\n property_type: [data.property_type],\n other_property_type: [data.other_property_type],\n address_of_the_property: [data.address_of_the_property],\n describe_of_the_property_asset: [data.describe_of_the_property_asset],\n area_covered_by_this_property: [data.area_covered_by_this_property],\n uom_of_the_property: [data.uom_of_the_property],\n other_uom: [data.other_uom]\n });\n }\n\n loadJwellDescriptionWithData(data) {\n return this.fb.group({\n // jwell_description: [data.jwell_description]\n });\n }\n\n loadConsumerDurableDescriptionWithData(data) {\n return this.fb.group({\n consumer_durable_description: [data.consumer_durable_description]\n });\n }\n\n otherAssetsDescriptionWithData(data) {\n return this.fb.group({\n any_other_assets: [data.any_other_assets],\n });\n }\n \n loadInsuranceDescriptionWithData(data) {\n return this.fb.group({\n //insurance_type: [data.insurance_type],\n premium_paid: [data.premium_paid],\n frequency_mode: [data.frequency_mode],\n other_frequency_mode:[data.other_frequency_mode],\n sum_assured: [data.sum_assured],\n members_coverd: [data.members_coverd]\n });\n }\n\n loadInvestDescriptionWithData(data) {\n return this.fb.group({\n investments_type: [data.investments_type],\n other_investments_type:[data.other_investments_type],\n in_which_organisation:[data.in_which_organisation],\n amount_of_invest: [data.amount_of_invest],\n bank_name: [data.bank_name]\n });\n }\n\n \n\n load_Four_WeelerWithData(data) {\n return this.fb.group({\n // manufacturer_model: [data.manufacturer_model, Validators.compose([Validators.required])]\n manufacturer_model_vehicle: [data.manufacturer_model_vehicle],\n vehicle_type: [data.vehicle_type],\n other_vehicle_type: [data.other_vehicle_type]\n });\n }\n\n\n loadEquipmentManufacturingDescriptionWithData(data) {\n return this.fb.group({\n equipment_manufacturing_description: [data.equipment_manufacturing_description]\n });\n }\n\n load_Two_WeelerWithData(data) {\n return this.fb.group({\n manufacturer_model_vehicle: [data.manufacturer_model_vehicle]\n });\n }\n\n\n initDetailsWithdata(data) {\n return this.fb.group({\n assets_mode: [data.assets_mode],\n details: this.fb.array([]),\n approximate_market_value: [data.approximate_market_value],\n name_of_the_owner: [data.name_of_the_owner],\n other_owner:[data.other_owner || ''],\n vintage_personal:[data.vintage_personal],\n purchase_year: [data.purchase_year,Validators.compose([Validators.minLength(4),Validators.maxLength(4)])],\n emi: [data.emi || 0],\n });\n }\n\n saveAssetDetails(answerData)\n {\n if(!this.AssetsDetailsForm.dirty){\n this.toast.pdTriggerappmessage(\"Modified\"+' '+this.AssetsDetailsForm.dirty);\n return;\n }\n \n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n // answerData.assets_details.map(val => {\n // if (val.emi == 'no') {\n // val.emi_paid = '';\n // val.elapsed_tenure = '';\n // val.balance_tenure = '';\n // val.original_loan_tenure ='';\n // }\n // });\n answerData.parent_pdid=this.pdDetails.parent_pd_id\n answerData.pdid = this.pdDetails.pd_id;\n answerData.formid = this.FormId.form_id;\n answerData.fk_createdby = this.users;\n \n this.qustCat.saveForm(answerData).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.AssetsDetailsForm.reset(this.AssetsDetailsForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n }\n\n apiLoadFinish:boolean = false;\n\n // To Fetch The Asset Value;\n getAssetDetails()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n \n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n var assetArray = Object.keys(res['records'].assets_details).map(function(key) {\n // this.AssetsDetailsForm.controls['assets_form_remark'].setValue(res['records'].assets_form_remark)\n return res['records'].assets_details[key];\n });\n \n this.AssetsDetailsForm.controls['assets_form_remark'].setValue(res['records'].assets_form_remark)\n if (assetArray.length > 0) {\n assetArray.forEach((val, index) => {\n let vals = {\n assets_mode: val.assets_mode,\n approximate_market_value: val.approximate_market_value,\n name_of_the_owner: val.name_of_the_owner,\n other_owner:val.other_owner,\n purchase_year: val.purchase_year,\n vintage_personal:val.vintage_personal,\n emi: val.emi,\n };\n \n let Avaliablity = 1;\n if(val.name_of_the_owner.length>0){\n val.name_of_the_owner.forEach(option => {\n if (option.id == 0 && option.group_id == 2) {\n Avaliablity = option.id;\n }\n });\n }\n this.isOtherOwner[index] = Avaliablity == 0 ? true : false\n \n const control = this.AssetsDetailsForm.controls['assets_details'];\n control.push(this.initDetailsWithdata(vals));\n this.inWords(+val.approximate_market_value,index,4);\n this.setAssetsDetailsWithData(vals.assets_mode, val.details, control.length-1)\n // this.setRequiredValidation(val.name_of_the_owner, index, '', 4);\n });\n \n }\n \n this.apiLoadFinish = true;\n \n //this.AssetsDetailsForm.controls['assets_details'].setValue(assetArray);\n }else{\n this.apiLoadFinish = true;\n this.addAsset(1);\n // this.addAsset(2);\n }\n })\n \n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n setAssetsDetailsWithData(assets_details_mode: any, datas: any, i: any): void {\n let val = i;\n \n let data = datas;\n const arr = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n arr.controls.splice(0);\n switch (assets_details_mode) {\n case '1': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { 'any_other_assets': datas.any_other_assets };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.otherAssetsDescriptionWithData(array_data));\n break;\n }\n \n case '2': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { 'property_type': datas.property_type, 'other_property_type': datas.other_property_type,\n 'address_of_the_property': datas.address_of_the_property, 'describe_of_the_property_asset': datas.describe_of_the_property_asset,\n 'uom_of_the_property': datas.uom_of_the_property,\n 'area_covered_by_this_property': datas.area_covered_by_this_property, 'other_uom': datas.other_uom };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadPropertyWithData(array_data));\n break;\n }\n case '3': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { 'manufacturer_model_vehicle': datas.manufacturer_model_vehicle,\n 'vehicle_type': datas.vehicle_type,\n 'other_vehicle_type': datas.other_vehicle_type };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.load_Four_WeelerWithData(array_data));\n break;\n }\n case '4': {\n let array_data:any\n data.forEach((datas,i)=>{\n array_data={'equipment_manufacturing_description': datas.equipment_manufacturing_description }\n })\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadEquipmentManufacturingDescriptionWithData(array_data));\n break;\n }\n case '5': {\n this.FormList = true;\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n // control.push(this.loadConsumerDurableDescriptionWithData(data));\n break;\n }\n case '6': {\n let array_data : any;\n data.forEach((datas,i) => {\n array_data = { \n 'premium_paid': datas.premium_paid,\n 'frequency_mode': datas.frequency_mode,\n 'other_frequency_mode':datas.other_frequency_mode,\n 'sum_assured': datas.sum_assured,\n 'members_coverd': datas.members_coverd\n };\n this.inWords(+datas.premium_paid,i,1);\n this.inWords(+datas.sum_assured,i,2);\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadInsuranceDescriptionWithData(array_data));\n break;\n }\n case '7': {\n let array_data : any;\n data.forEach((datas,i) => {\n this.inWords(+datas.amount_of_invest,i,3);\n array_data = { 'investments_type': datas.investments_type,\n 'other_investments_type' : datas.other_investments_type,\n 'in_which_organisation':datas.in_which_organisation,\n 'amount_of_invest': datas.amount_of_invest,\n 'bank_name': datas.bank_name };\n });\n const control = (this.AssetsDetailsForm.controls['assets_details']).at(val).get('details') as FormArray;\n control.push(this.loadInvestDescriptionWithData(array_data));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n /** On Key Press Event For Number only Accepting */\n keyPress(event: any) {\n const pattern = /[0-9\\-\\.\\ ]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n inWords(e,i,flag){\n switch(flag){\n case 1 : \n this.PremiumPaidInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 2 :\n this.SumAssuredInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 3 :\n this.AmtInvestInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 4 :\n this.ApproxInwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n default:\n break;\n }\n }\n\n calculateVintagePurchase(value: any, controlKey: any, type: number) {\n if (type == 1) { }\n else if (type == 2) { }\n else if (type == 3) {\n let control: any = this.AssetsDetailsForm.controls['assets_details'];\n control.controls[controlKey].controls['purchase_year'].setValue(value != '' ? parseInt(this.currentYear) - parseInt(value) : '');\n }\n else if (type == 4) {\n let control: any = this.AssetsDetailsForm.controls['assets_details'];\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['purchase_year'].setValue(value) : control.controls[controlKey].controls['purchase_year'].setValue('');\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['vintage_personal'].setValue(parseInt(this.currentYear) - parseInt(value)) : control.controls[controlKey].controls['vintage_personal'].setValue('')\n }\n\n }\n\n\n setRequiredValidation(value, ParInx, ChdInx, flag) {\n\n let ParCtrls = this.AssetsDetailsForm.controls.assets_details;\n\n let ChdCtrls: any = ParCtrls.controls[ParInx];\n\n if (flag == 4) {\n let Avaliablity = 1;\n\n if (value.length > 0) {\n value.forEach(option => {\n if (option.id == 0 && option.group_id == 2) {\n Avaliablity = option.id;\n }\n });\n }\n if (Avaliablity == 0) {\n\n\n // ChdCtrls.controlsother_owner.setValidators([Validators.required]);\n this.isOtherOwner[ParInx] = true;\n\n } else if (Avaliablity == 1) {\n\n\n ChdCtrls.controls.other_owner.setValue('');\n // ChdCtrls.controls.other_owner.clearValidators();\n this.isOtherOwner[ParInx] = false;\n\n }\n\n // ChdCtrls.controls.other_owner.updateValueAndValidity();\n\n }\n \n }\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n savePhoto(){\n let num_of_images=(this.imageBucket.length+1)+(this.imageDisplay.length+1)\n console.log(\"num of images\",num_of_images)\n if(num_of_images <=10){\n this.camera.getPicture({\n quality: 100,\n destinationType: this.camera.DestinationType.DATA_URL,\n targetWidth: 500,\n targetHeight: 600,\n correctOrientation: true\n }).then((imageData)=>{\n this.constprovider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.base64='data:image/png;base64,'+imageData\n this.imageBucket.push({'image':this.base64,'Name':'','link':geoCoordinates});\n // this.imageDisplay.push({'image':this.base64,'Name':''})\n this. getImageName(this.imageBucket.length-1)\n })\n },(err)=>{\n //alert(\"error\");\n })\n this.tab='1';\n // this.content.scrollToBottom();\n // let dimensions = this.content.getContentDimensions();\n // this.content.scrollTo(0, dimensions.contentHeight+100, 100);\n // this.inputFocus.setFocus();\n }\n else{\n this.toast.pdTriggerappmessage(\"You are reached the image Limit. To Capture new one Delete the Previous image\");\n }\n }\n getImageName(index){\n console.log(\"index\",index);\n let alert=this.alert.create({\n title:'Document Name',\n message: 'Please Enter the Document Name',\n cssClass:'prompt_alert',\n inputs:[\n {\n name:'Name',\n //value:this.imageBucket[index].Name\n placeholder:'Document Name'\n }\n ],\n buttons:[\n {\n text:'Submit',\n handler:data=>{\n console.log(data.Name)\n this.imageBucket[index].Name=data.Name\n alert.dismiss\n }\n }\n ]\n })\n alert.present();\n //this.inputFocus.setFocus();\n \n }\n// al(){\n// this.toast.pdTriggerappmessage(\"touched\");\n// }\n sendImage(){\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_owner').value\n value.get('other_owner').setValue(this.constprovider.sentenceCase(name));\n }\n \n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assests/pd-question-assests.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams,AlertController } from 'ionic-angular';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { PdQuestionRentalDashPage } from '../pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n\n/**\n * Generated class for the PdQuestionOtherIncomePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-other-income',\n templateUrl: 'pd-question-other-income.html',\n})\nexport class PdQuestionOtherIncomePage {\n\n FormId: any;\n custSeg: any;\n sourceIncome: any;\n otherIncomeDetails: any;\n users: any;\n pdDetails: any;\n pdid:any;\n incomeEarnedBy:any=[];\n amtInWords:any=[];\n \n frequencyData: any;\n otherIncomeForm: FormGroup;\n incomeDetails:FormArray;\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n applicants: any=[];\n isOrganisationOwner: any=[];\n customer_segment_abbr: any;\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,\n public qustCat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider, public constant:ConstantsProvider,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,public alertCtrl:AlertController) \n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id;\n this.FormId = this.navParams.get('FormId');\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n console.log('this.customer_segment_abbr',this.customer_segment_abbr)\n this.applicants=this.pdDetails.applicat_details.filter(val=>val.pd_co_applicant_id != 0)\n //this.applicants.push({'pd_co_applicant_id': 0,'applicant_name': \"Others\"})\n this.getFrequency();\n this.users = this.aws.getlocale();\n\n // this.qustCat.getLoadTemplate(this.pdid).subscribe(res=>\n // {\n // this.one = res;\n // if(this.one.dataStatus == true)\n // {\n // this.one = this.one.records.template_forms;\n // let one = this.one.records.template_forms.filter(val=>val.form_id == '17')\n // console.log(this.one,one);\n // }\n\n // });\n\n this.otherIncomeForm = this.fb.group({\n other_income: [null],\n otherincome_remarks:[null],\n income_details: this.fb.array([])\n });\n \n \n \n //this.incomeDetails=this.otherIncomeForm.get('income_details')as FormArray\n //this.incomeDetails.push(this.createDetail())\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionOtherIncomePage');\n this.getOtherIncome();\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.otherIncomeForm.dirty);\n if(this.otherIncomeForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n createDetail():FormGroup {\n return this.fb.group({\n source: [''],\n address:[''],\n others_source : [''],\n income_earned_by:[''],\n others_income_earned_by:[''],\n amount: [''],\n frequency: [''],\n others_frequency : ['']\n });\n}\naddIncomeDetails() {\n this.incomeDetails = this.otherIncomeForm.get('income_details') as FormArray;\n \n this.incomeDetails.push(this.createDetail());\n}\ndeleteIncomeDetails(index) {\n this.incomeDetails = this.otherIncomeForm.get('income_details') as FormArray;\n if(this.incomeDetails.length==1){\n // this.otherIncomeForm.controls['income_details'].reset();\n this.otherIncomeForm.reset();\n this.amtInWords[index]=''\n }else{\n this.incomeDetails.removeAt(index);\n }\n}\ncheckotherDetails(val)\n{\n if(val==\"Yes\")\n {\n this.addIncomeDetails();\n }\n if(val==\"No\"){\n //let length=this.otherIncomeForm.income_details.controls.length\n const control= this.otherIncomeForm.controls['income_details'];\n control.removeAt(0)\n // let len=control.length\n // for(let i=0;i{\n if(res['dataStatus']==true)\n {\n this.incomeEarnedBy=res['record'];\n }\n })\n this.qustCat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(res=>{\n if(res.dataStatus==true){\n this.existCompanyList=res.records.filter(val=>val.is_active == true)\n console.log(this.existCompanyList)\n }\n let modifyCompanyList:any=[]\n if(this.existCompanyList.length>0){\n modifyCompanyList=this.existCompanyList.map(element=>{\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName: 'COMPANIES', groupValues: modifyCompanyList })\n \n }\n let modifyApplicantList:any=[]\n if(this.applicants.length>0){\n modifyApplicantList=this.applicants.map(element=>{\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n })\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n\n }\n console.log(\"company&Applicant\",this.mergeCompanyApplicant)\n })\n\n let master_name = 'FREQUENCY';\n this.qustCat.getcommondrop(master_name).subscribe(data => {\n if(data['dataStatus']==true)\n {\n this.frequencyData = data['records'].filter(fre=>fre.isactive==1);\n }\n });\n this.qustCat.getcommondrop('SOURCEOFOTHERINCOME').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.sourceIncome = res['records'];\n if (this.customer_segment_abbr == 'SE-RI') {\n let inx = this.sourceIncome.map(data => data.name).indexOf(\"Rental Income\")\n /** -X- Please NOTE THIS :\n * inx is '-1' -> this will remove the last item from array \n * so that If Condition is given. */\n if (inx !== -1) {\n this.sourceIncome.splice(this.sourceIncome.map(data => data.name).indexOf(\"Rental Income\"), 1);\n }\n }\n }\n });\n \n \n}\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\n\ngetOtherOrganisationOwner(value,i) {\n //console.log('value',value,'I',i);\nlet Ctrls = this.otherIncomeForm.controls['income_details'];\n console.log('ParCtrls',Ctrls);\nlet ChdCtrls:any = Ctrls.controls[i];\n // console.log('ChdCtrls',ChdCtrls);\n // return;\n\n\nlet Avaliablity = 1;\nconsole.log('val',value);\nif(value.length>0){\n value.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n}\nif(Avaliablity == 0){\n// console.log('if Avaliablity',Avaliablity);\nconsole.log(\"chld\",ChdCtrls)\n ChdCtrls.controls.others_income_earned_by.setValidators([Validators.required]);\n this.isOrganisationOwner[i] = true;\n}else if(Avaliablity == 1){\n// console.log('else Avaliablity',Avaliablity);\n// console.log('esle this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n ChdCtrls.controls.others_income_earned_by.setValue('');\n ChdCtrls.controls.others_income_earned_by.clearValidators();\n this.isOrganisationOwner[i] = false;\n// console.log('else this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n}\n \nChdCtrls.controls.others_income_earned_by.updateValueAndValidity(); \n}\ninWords(val,i){\n this.amtInWords[i]=this.constant.convertNumberToWords(val.target.value)\n}\n\nToview(){\n // alert('Rental Income Details - Is inprogress');\n \n // here Hardcoded;\n this.otherIncomeForm.reset(this.otherIncomeForm.value)\n let RIFormDtls = {'form_id':17,'form_name':'Rental Verification'};\n this.navCtrl.push(PdQuestionRentalDashPage,{'FormId':RIFormDtls,'pdDetails':this.pdDetails});\n}\nsubmitOtherIncome(answerData)\n{\n \n let records: any = {};\n let rentOptionCount: number = 0;\n let validateFlag: number = 0;\n let TextMessage :any;\n\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.FormId.form_id;\n records.fk_createdby = this.users;\n records.other_income = answerData.other_income;\n records.income_details = answerData.income_details;\n records.otherincome_remarks = answerData.otherincome_remarks;\n console.log(records);\n // this.callSaveApi(records);\n\n if (records.other_income == 'Yes') {\n records.income_details.forEach(option => {\n if (+option.source == 5) {\n rentOptionCount++;\n validateFlag = 1;\n } \n });\n \n if(validateFlag == 1){\n let params: any = {};\n params.parent_pdid = this.pdDetails.parent_pd_id;\n params.pd_id = this.pdDetails.pd_id;\n params.pd_form_id = 17;\n \n this.qustCat.retiverForm(params).subscribe(data=>{\n if(!data['dataStatus']){\n let text : any = rentOptionCount > 1 ? rentOptionCount + ' properties' : rentOptionCount + ' property' ;\n TextMessage = '
You have chosen '+ text +' as rental income, but rental verification form is not filled
';\n\n let alert=this.alertCtrl.create({\n title:'Please Confirm',\n message:TextMessage,\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n alert.dismiss\n }\n },\n {\n text:'Confirm',\n handler:()=>{\n this.callSaveApi(records);\n }\n }\n ]\n });\n alert.present();\n }\n else if(data['dataStatus']){\n this.callSaveApi(records);\n }\n })\n } \n else{\n this.callSaveApi(records);\n }\n }\n else{\n this.callSaveApi(records);\n }\n}\n\ncallSaveApi(records){\n \n this.qustCat.saveForm(records).subscribe(data => {\n //TO CHANGE THE FORM STATE \n this.otherIncomeForm.reset(this.otherIncomeForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n}, error => {\n \n})\n}\n\ngetOtherIncome()\n{\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n this.incomeDetails = this.otherIncomeForm.get('income_details') as FormArray;\n this.otherIncomeDetails = res; \n if(this.otherIncomeDetails.dataStatus == true)\n {\n this.otherIncomeDetails = this.otherIncomeDetails.records;\n if(this.otherIncomeDetails.other_income=='Yes'){\n var incomeArray = Object.keys(res['records'].income_details).map(function(key) {\n return res['records'].income_details[key];\n\n });\n this.otherIncomeForm.controls['other_income'].setValue(this.otherIncomeDetails.other_income);\n this.otherIncomeForm.controls['otherincome_remarks'].setValue(this.otherIncomeDetails.otherincome_remarks);\n \n \n \n \n if(incomeArray.length==0)\n {\n // this.incomeDetails.push(this.createDetail());\n }else\n {\n incomeArray.forEach((datas,index)=>\n {\n \n this.incomeDetails.push(this.createDetail());\n this.amtInWords[index]=this.constant.convertNumberToWords(datas.amount)\n this.getOtherOrganisationOwner(datas.income_earned_by,index)\n })\n }\n this.otherIncomeForm.controls['income_details'].setValue(incomeArray);\n \n }else\n {\n this.otherIncomeForm.controls['other_income'].setValue(this.otherIncomeDetails.other_income);\n this.otherIncomeForm.controls['otherincome_remarks'].setValue(this.otherIncomeDetails.otherincome_remarks);\n }\n }\n else{\n // this.incomeDetails.push(this.createDetail())\n }\n })\n}\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\n\nchangeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\ncapture(){\n //FOR CAPTURING PICS\nthis.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n},error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n})\nthis.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('others_income_earned_by').value\n value.get('others_income_earned_by').setValue(this.constant.sentenceCase(name));\n}\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-other-income/pd-question-other-income.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams ,AlertController} from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder, FormArray, Validators, FormControl } from '@angular/forms';\nimport {ConstantsProvider} from '../../../providers/constants/constants';\nimport {DatePipe} from '@angular/common'\nimport { Message } from '@angular/compiler/src/i18n/i18n_ast';\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n/**\n * Generated class for the PdQuestionRentalInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-rental-info',\n templateUrl: 'pd-question-rental-info.html',\n})\nexport class PdQuestionRentalInfoPage {\n pipe = new DatePipe('en-US');\n users: any;\n pdDetails: any;\n FormId: any;\n rentalForms:FormGroup;\n applicants: any ;\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n personType: any=[{id:2,name:\"Tenant / Lessee\"},{id:3,name:\"Owner of the Rented Property\"},{id:4,name:\"Property Caretaker\"},{id:1,name:\"Others (Please Specify)\"}];\n relationShipList: any=[];\n relationToList: any=[];\n rentAmtInwords : String;\n paymentOptions: any=[{id:1,name:\"Received in Cash\"},{id:2,name:\"Received through Banking Channel\"},{id:3,name:\"Combination of Cash & Bank\"}];\n paymentPaidOptions: any=[{id:1,name:\"Paid in Cash\"},{id:2,name:\"Paid through Banking Channel\"},{id:3,name:\"Combination of Cash & Bank\"}];\n propertyNature: any=[{id:2,name:\"Residential Property\"},{id:3,name:\"Commercial Property\"},{id:4,name:\"Industrial Property\"},{id:1,name:\"Others (Please Specify)\"}];\n unitTypeList: any=[];\n stateData:any=[];\n cityData:any=[];\n pincodeData:any=[];\n stateList:any=[];\n cityList:any=[];\n pincodeList:any=[];\n \n documentList: any=[{id:2,name:\"Property Title Document\"},{id:3,name:\"Electricity Bill with name of owner mentioned therein\"},{id:4,name:\"Property tax Receipts\"},{id:1,name:\"Others (Please Specify)\"}];\n //floorList: any=[{id:1,name:\"Ground Floor\"},{id:1,name:\"First Floor\"},{id:1,name:\"Second Floor\"},{id:1,name:\"Third Floor\"}]\n //unitMeasurementList: any=[{id:2,name:\"Square Feet\"},{id:3,name:\"Square Yards\"},{id:4,name:\"Square Meters\"},{id:5,name:\"Acres\"},{id:6,name:\"Hectares\"},{id:1,name:\"Others (Please Specify)\"}];\n unitMeasurementList: any=[];\n\n rent_per_unit_Inwords : any= [];\n amount_Inwords : any=[];\n // rent_per_unit_2_Inwords: any=[];\n floor_rent_per_unit_Inwords : any[][];\n floor_rent_amount_Inwords: any=[];\n monthly_rent_amount_Inwords: any=[];\n amount_received_cash_Inwords: any=[];\n amount_received_bank_Inwords: any=[];\n securtity_deposit_amount_Inwords: any=[]; \n agreement_monthly_rent_amount_Inwords: any=[];\n agreement_security_deposit_amount_Inwords: any=[]\n paid_monthly_rent_per_met_Inwords: any=[];\n amount_received_cash_per_met_Inwords: any=[];\n amount_received_bank_per_met_Inwords: any=[];\n protected _onDestroy = new Subject();\n imageBucket: any=[];\n tab: any='0';\n imageDisplay: any=[];\n pageTitle: string;\n data:any;\n complete_status: boolean = false;\n \n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public toast:ToastProvider,\n public qustCat:QuestionCategoryProvider,public fb:FormBuilder,\n public constprovider:ConstantsProvider,public alertCtrl:AlertController,\n private loading:LoadingProvider,private cameraProvider:CameraProvider) \n {\n this.data=this.navParams.get('values'); // for get the data from dash page\n console.log(\"From Dashboard of Rental - values are \",this.data);\n this.pageTitle = this.data.manage_status==1 ? 'Add RI Details' : 'Update RI Details';\n this.FormId = this.navParams.get('FormId');\n this.pdDetails = this.navParams.get('pdDetails');\n this.users = this.aws.getlocale();\n this.applicants = this.pdDetails.applicat_details;\n this.applicants=this.applicants.filter(val=>val.applicant_type==0 || val.applicant_type==1)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n \n this.getdropList();\n\n this.rentalForms = this.fb.group(\n {\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid: this.pdDetails.pd_id,\n formid: this.FormId.form_id,\n address_property:['',Validators.required],\n state:['',Validators.required],\n stateSearch:[''],\n city:['',Validators.required],\n citySearch:[''],\n pincode:['',Validators.required],\n pincodeSearch:[''],\n validate_visited_address:[true],\n person_met: ['',Validators.required],\n property_owner: ['',Validators.required],\n property_ownership_proof_documents: ['',Validators.required],\n nature_property: ['',Validators.required],\n unit_type:['',Validators.required],\n no_units:[''],\n multistoried_building_details: this.fb.array([]),\n property_unit_details : this.fb.array([]),\n done_third_party_check :['',Validators.required],\n rental_remark: [''],\n })\n\n // observe person met controls\n this.rentalForms.controls['person_met'].valueChanges.subscribe(val => {\n if(val && val.length>0){\n let otherPersonMetCheck = val.filter(fVal=>fVal.id==0);\n otherPersonMetCheck.length>0 ? this.rentalForms.addControl('other_person_met', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_person_met');\n otherPersonMetCheck.length>0 ? this.rentalForms.addControl('other_name_person_showing_property', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_name_person_showing_property');\n otherPersonMetCheck.length>0 ? '' : this.rentalForms.removeControl('other_name_person_type');\n\n \n }\n else {\n this.rentalForms.removeControl('other_person_met');\n this.rentalForms.removeControl('other_name_person_showing_property');\n this.rentalForms.removeControl('other_name_person_type');\n }\n });\n // observe owner of the property\n this.rentalForms.controls['property_owner'].valueChanges.subscribe(val => {\n if(val && val.length>0){\n let otherOwnerCheck = val.filter(fVal=>fVal.id==0);\n otherOwnerCheck.length>0 ? this.rentalForms.addControl('property_owner_other', new FormControl('', Validators.required)) : this.rentalForms.removeControl('property_owner_other');\n otherOwnerCheck.length>0 ? this.rentalForms.addControl('property_owner_other_relationship', new FormControl('', Validators.required)) : this.rentalForms.removeControl('property_owner_other_relationship');\n otherOwnerCheck.length>0 ? this.rentalForms.addControl('property_owner_other_relation_to', new FormControl('', Validators.required)) : this.rentalForms.removeControl('property_owner_other_relation_to');\n\n }\n else {\n this.rentalForms.removeControl('property_owner_other');\n this.rentalForms.removeControl('property_owner_other_relationship');\n this.rentalForms.removeControl('other_name_person_type');\n this.rentalForms.removeControl('property_owner_other_relation_to');\n }\n });\n // observe other property type\n this.rentalForms.controls['nature_property'].valueChanges.subscribe(val => { \n val.id==1 ? this.rentalForms.addControl('other_nature_property', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_nature_property');\n });\n\n // observe unit type changes\n this.rentalForms.controls['unit_type'].valueChanges.subscribe(val => { \n val.id==1 ? this.rentalForms.addControl('other_unit_type', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_unit_type');\n val.group_id==1 && val.id==6 ? this.rentalForms.removeControl('no_units') : val.group_id==2 && val.id==7 ? this.rentalForms.removeControl('no_units') : this.rentalForms.addControl('no_units', new FormControl(''));\n val.group_id==1 && val.id==6 ? this.rentalForms.addControl('no_floor', new FormControl('',Validators.required)) : val.group_id==2 && val.id==7 ? this.rentalForms.addControl('no_floor', new FormControl('',Validators.required)) : this.rentalForms.removeControl('no_floor');\n val.group_id==1 && val.id==6 ? this.rentalForms.addControl('multistoried_total_area', new FormControl('',Validators.required)) : val.group_id==2 && val.id==7 ? this.rentalForms.addControl('multistoried_total_area', new FormControl('',Validators.required)) : this.rentalForms.removeControl('multistoried_total_area');\n val.group_id==1 && val.id==6 ? this.rentalForms.addControl('multistoried_uom', new FormControl('',Validators.required)) : val.group_id==2 && val.id==7 ? this.rentalForms.addControl('multistoried_uom', new FormControl('',Validators.required)) : this.rentalForms.removeControl('multistoried_uom');\n val.group_id==1 && val.id==6 ? '' : val.group_id==2 && val.id==7 ? '' : this.rentalForms.setControl('multistoried_building_details', this.fb.array([]));\n });\n\n // observe visit address\n this.rentalForms.controls['validate_visited_address'].valueChanges.subscribe(val => { \n if(val===false){\n this.rentalForms.addControl('other_visited_address', new FormControl('', Validators.required)); \n }\n else {\n this.rentalForms.removeControl('other_visited_address'); \n }\n });\n // get city list based on state changes\n this.rentalForms.controls['state'].valueChanges.subscribe(val => { \n this.qustCat.getStateWiseCities(val).subscribe(data => {\n if (data.status == 200) {\n this.cityData = data.records.cities;\n this.cityList = this.cityData.slice();\n this.pincodeData = data.records.pincode;\n this.pincodeList = this.pincodeData.slice();\n }\n });\n });\n\n // ownership property documents during the visit\n this.rentalForms.controls['property_ownership_proof_documents'].valueChanges.subscribe(val => { \n val==\"1\" ? this.rentalForms.addControl('sighted_documents', new FormControl('', Validators.required)) : this.rentalForms.removeControl('sighted_documents');\n val==\"1\" ? '' : this.rentalForms.removeControl('other_sighted_documents');\n }); \n\n // listen third party check\n this.rentalForms.controls['done_third_party_check'].valueChanges.subscribe(val => { \n val==\"1\" ? this.rentalForms.addControl('whom_third_party_check_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('whom_third_party_check_done');\n val==\"1\" ? this.rentalForms.addControl('description_third_party_check_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('description_third_party_check_done');\n val==\"1\" ? this.rentalForms.addControl('rental_rates_third_party_check_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('rental_rates_third_party_check_done');\n val==\"0\" ? this.rentalForms.addControl('why_third_party_check_not_done', new FormControl('', Validators.required)) : this.rentalForms.removeControl('why_third_party_check_not_done');\n }); \n if(this.data.manage_status != 1){\n this.getRentalDetails(); \n }\n else{\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.push(this.createUnitDetails(''));\n }\n\n//To checking Completed Status For CompleteList Menu\nthis.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionRentalInfoPage');\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.rentalForms.dirty);\n if(this.rentalForms.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n getdropList()\n {\n\n let modifyApplicantList: any=[];\n \n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n \n }\n // set unit type list details\n let resiDentialProperty = [{id:2,name:'Independent Flat',group_id:1},{id:3,name:'Independent Floor',group_id:1},\n {id:4,name:'Independent House',group_id:1},{id:5,name:'Independent Row House',group_id:1},{id:6,name:'Multi Storey Building',group_id:1},{id:1,name:'Other (Please Specify)',group_id:1}];\n \n let commercialProperty = [{id:2,name:'Independent Office',group_id:2},{id:3,name:'Independent Shop',group_id:2},{id:4,name:'Warehouse/Godown',group_id:2},\n {id:5,name:'Workshop',group_id:2},{id:6,name:'Independent Clinic',group_id:2},{id:7,name:'Multi Storey Building',group_id:2},{id:1,name:'Other (Please Specify)',group_id:2}];\n\n let industrialProperty = [{id:2,name:'Factory',group_id:3},{id:3,name:'Industrial Shed',group_id:3},{id:1,name:'Other (Please Specify)',group_id:3}];\n \n this.unitTypeList.push({groupID:2,groupName:'Residential Property',groupValues:resiDentialProperty});\n this.unitTypeList.push({groupID:3,groupName:'Commercial Property',groupValues:commercialProperty});\n this.unitTypeList.push({groupID:4,groupName:'Industrial Property',groupValues:industrialProperty}); \n \n\n //GETTING RELATIONSHIPS\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let relationshipList: any = res['records'].filter(item => item.isactive == 1).map(element => {\n return {id:element.relationship_id.toString(),name:element.name,group_id:1};\n });\n relationshipList.length > 0 ? this.relationShipList.push({groupName:'Personal',groupValues:relationshipList}):'';\n }\n })\n \n //GETTING COMPANYRELATIONSHIPS;\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let companyRelationShipList:any = res['records'].filter(item => item.isactive == 1 && item.name != 'Others').map(element => {\n return {id:element.company_relationship_id.toString(),name:element.name,group_id:2};\n });\n companyRelationShipList.length > 0 ? this.relationShipList.push({groupName:'Official',groupValues:companyRelationShipList}):'';\n } \n })\n \n //GETTING STATE;\n this.qustCat.getcommondrop('STATE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.stateData = res['records'].filter(data => data.isactive == 1);\n this.stateList = this.stateData.slice();\n }\n })\n\n //GETTING UOM;\n this.qustCat.getcommondrop('UOM').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.unitMeasurementList = res['records'].filter(data => data.isactive == 1 && data.is_land_uom == 1 || data.is_land_uom == 2).map(mval=>({id : mval.uom_id , name:mval.name}));\n }\n }) \n }\n\n// initRentalForm() {\n// return this.rentalForms = this.fb.group({\n// pdid: this.pdDetails.pd_id,\n// formid: this.FormId.form_id,\n// address_property:['',Validators.required],\n// state:['',Validators.required],\n// city:['',Validators.required],\n// pincode:['',Validators.required],\n// validate_visited_address:[true],\n// person_met: ['',Validators.required],\n// property_owner: ['',Validators.required],\n// property_ownership_proof_documents: ['',Validators.required],\n// nature_property: ['',Validators.required],\n// unit_type:['',Validators.required],\n// no_units:[''],\n// property_unit_details : this.fb.array([]),\n// done_third_party_check :['',Validators.required],\n// rental_remark: [''],\n// });\n// }\n\n // createrentalHome()\n // {\n // return this.fb.group(\n // {\n // complete_add:[null,Validators.compose([Validators.required])],\n // area_of_property:[null,Validators.compose([Validators.required])],\n // structure_property:[null,Validators.compose([Validators.required])],\n // total_room:[null,Validators.compose([Validators.required])],\n // is_rent:[null,Validators.compose([Validators.required])],\n // date_agreement:[null,Validators.compose([Validators.required])],\n // date_validity:[null,Validators.compose([Validators.required])],\n // rent_agreement:[null,Validators.compose([Validators.required])],\n // actual_rent:[null,Validators.compose([Validators.required])],\n // photo_areegment:[null,Validators.compose([Validators.required])],\n // property_photographs:[null],\n // bank:[null,Validators.compose([Validators.required])],\n // cash:[null,Validators.compose([Validators.required])],\n // rent_each_floor:[null,Validators.compose([Validators.required])],\n // total_rent:[null,Validators.compose([Validators.required])],\n // related_doc_owner:[null,Validators.compose([Validators.required])],\n // details_tenants:this.fb.array([]),\n // third_party_check:[null,Validators.compose([Validators.required])],\n // })\n // }\n\n // other_name_person_showing_property changes\n personShowingChanges(value: any): void { \n if(value.length>0){\n let otherCheck: any = value.filter(fVal=>fVal.id==1);\n otherCheck.length >0 ? this.rentalForms.addControl('other_name_person_type', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_name_person_type');\n}\nelse {\n this.rentalForms.removeControl('other_name_person_type');\n}\n}\n\n// dynamic form control generate for other documents sighted\ngetSightedDocs(value): void{\n value.id==1 ? this.rentalForms.addControl('other_sighted_documents', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_sighted_documents');\n}\n\n// add more unit details\naddMoreUnitDetails(){\n let control: any = this.rentalForms.controls['property_unit_details'];\n //control.push(this.createUnitDetails(''));\n control.push(this.createUnitDetails(''));\n}\n\n // create unit details\n createUnitDetails(details){\n return this.fb.group({\n tenant_lessees_options:['1',Validators.required],\n name_tenant_lessees:['',Validators.required],\n monthly_rent_amount: ['',Validators.required],\n payment_mode: ['',Validators.required],\n securtity_deposit_amount: ['',Validators.required],\n property_cover_area: ['',Validators.required],\n unit_measurement: ['',Validators.required],\n is_rent_agreement_executed: ['',Validators.required],\n met_tenant_lessees_options: ['',Validators.required],\n });\n }\n\n // remove unit\n removeUnit(index) {\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.removeAt(index);\n }\n\n // generate payment dynamic fields\n generatePaymentOptions(value:any,index:number,type: number){\n if(type==1){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value && value.payment_mode.id==1){\n control.controls[index].addControl('amount_received_cash', new FormControl(value.amount_received_cash ? value.amount_received_cash : '', Validators.required));\n control.controls[index].removeControl('amount_received_bank');\n control.controls[index].removeControl('payment_received_reason');\n }\n else if(value && value.payment_mode.id==2){\n control.controls[index].addControl('amount_received_bank', new FormControl(value.amount_received_bank ? value.amount_received_bank : '', Validators.required));\n control.controls[index].removeControl('amount_received_cash');\n control.controls[index].removeControl('payment_received_reason');\n }\n else if(value && value.payment_mode.id==3){\n control.controls[index].addControl('amount_received_cash', new FormControl(value.amount_received_cash ? value.amount_received_cash : '', Validators.required));\n control.controls[index].addControl('amount_received_bank', new FormControl(value.amount_received_bank ? value.amount_received_bank : '', Validators.required));\n control.controls[index].addControl('payment_received_reason', new FormControl(value.payment_received_reason ? value.payment_received_reason : '', Validators.required));\n }\n else {\n control.controls[index].removeControl('amount_received_cash');\n control.controls[index].removeControl('amount_received_bank');\n control.controls[index].removeControl('payment_received_reason');\n }\n \n }\n else if(type==2){\n let control: any = this.rentalForms.controls['property_unit_details'];\n console.log(\"controls\",control.controls['index'])\n if( control.controls[index].controls['payment_difference_per_met']){\n console.log(\"pay\");\n control.controls[index].controls['payment_difference_per_met'].setValue('')\n }\n \n if(value && value.payment_mode_per_met.id==1){\n control.controls[index].addControl('amount_received_cash_per_met', new FormControl(value.amount_received_cash_per_met ? value.amount_received_cash_per_met : '', Validators.required));\n control.controls[index].removeControl('amount_received_bank_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n }\n else if(value && value.payment_mode_per_met.id==2){\n control.controls[index].addControl('amount_received_bank_per_met', new FormControl(value.amount_received_bank_per_met ? value.amount_received_bank_per_met : '', Validators.required));\n control.controls[index].removeControl('amount_received_cash_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n }\n else if(value && value.payment_mode_per_met.id==3){\n control.controls[index].addControl('amount_received_cash_per_met', new FormControl(value.amount_received_cash_per_met ? value.amount_received_cash_per_met : '', Validators.required));\n control.controls[index].addControl('amount_received_bank_per_met', new FormControl(value.amount_received_bank_per_met ? value.amount_received_bank_per_met : '', Validators.required));\n control.controls[index].addControl('payment_received_reason_per_met', new FormControl(value.payment_received_reason_per_met ? value.payment_received_reason_per_met : '', Validators.required));\n }\n else {\n control.controls[index].removeControl('amount_received_cash_per_met');\n control.controls[index].removeControl('amount_received_bank_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n }\n }\n \n \n }\n\n// tenant/lessees options\ngenerateTenantOptions(value:any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.tenant_lessees_options==\"1\"){\n control.controls[index].addControl('name_tenant_lessees', new FormControl('', Validators.required));\n control.controls[index].removeControl('name_tenant_lessees_reason');\n }\n else if(value.tenant_lessees_options==\"0\"){\n control.controls[index].addControl('name_tenant_lessees_reason', new FormControl('', Validators.required));\n control.controls[index].removeControl('name_tenant_lessees');\n }\n else {\n control.controls[index].removeControl('name_tenant_lessees');\n control.controls[index].removeControl('name_tenant_lessees_reason');\n }\n }\n\n // unit of measurement generate other field\n generateOtherunitMeasurement(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n value.unit_measurement.id==\"1\" ? control.controls[index].addControl('other_unit_measurement', new FormControl('', Validators.required)) : control.controls[index].removeControl('other_unit_measurement');\n \n}\n\n// generate multistoried other uom\ngenerateMultistoriedOtherUOM(value: any){\n value.multistoried_uom.id==\"1\" ? this.rentalForms.addControl('multistoried_other_uom', new FormControl('', Validators.required)) : this.rentalForms.removeControl('multistoried_other_uom');\n}\n\n// generate Rent AgreementSeen\ngenerateRentAgreementSeen(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n \n if(value.is_rent_agreement_executed==\"1\"){\n control.controls[index].addControl('rent_agreement_seen', new FormControl('', Validators.required))\n }\n else{\n control.controls[index].removeControl('rent_agreement_seen');\n // after no\n control.controls[index].removeControl('rent_agreement_registered');\n // after No\n control.controls[index].removeControl('agreement_date');\n control.controls[index].removeControl('agreement_no_months');\n control.controls[index].removeControl('agreement_expiring_date');\n control.controls[index].removeControl('rental_remaining_months');\n control.controls[index].removeControl('agreement_monthly_rent_amount');\n control.controls[index].removeControl('agreement_security_deposit_amount');\n control.controls[index].removeControl('agreement_property_owners_name');\n control.controls[index].removeControl('agreement_tenant_lessees_name');\n control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n // remove agrement other ownres \n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n }\n \n}\n//genearate rent agreement registered options\ngenerateRegisterOptions(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.rent_agreement_seen==\"1\"){\n control.controls[index].addControl('rent_agreement_registered', new FormControl('', Validators.required));\n }\n else{\n control.controls[index].removeControl('rent_agreement_registered');\n // after No\n control.controls[index].removeControl('agreement_date');\n control.controls[index].removeControl('agreement_no_months');\n control.controls[index].removeControl('agreement_expiring_date');\n control.controls[index].removeControl('rental_remaining_months');\n control.controls[index].removeControl('agreement_monthly_rent_amount');\n control.controls[index].removeControl('agreement_security_deposit_amount');\n control.controls[index].removeControl('agreement_property_owners_name');\n control.controls[index].removeControl('agreement_tenant_lessees_name');\n control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n // remove agrement other ownres \n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n }\n\n}\n//genearate if rent agreement yes registered details\ngenerateRegisterDetails(value: any,index:number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.rent_agreement_registered==\"1\"){\n control.controls[index].addControl('agreement_date', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_no_months', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_expiring_date', new FormControl(''));\n control.controls[index].addControl('rental_remaining_months', new FormControl(''));\n control.controls[index].addControl('agreement_monthly_rent_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_property_owners_name', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_tenant_lessees_name', new FormControl('', Validators.required));\n control.controls[index].addControl('differences_loanapplicant_rentagreement', new FormControl(''));\n\n }\n else if(value.rent_agreement_registered==\"0\"){\n control.controls[index].addControl('agreement_date', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_no_months', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_expiring_date', new FormControl(''));\n control.controls[index].addControl('rental_remaining_months', new FormControl(''));\n control.controls[index].addControl('agreement_monthly_rent_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_property_owners_name', new FormControl('', Validators.required));\n control.controls[index].addControl('agreement_tenant_lessees_name', new FormControl('', Validators.required));\n control.controls[index].addControl('differences_loanapplicant_rentagreement', new FormControl(''));\n }\n else{\n control.controls[index].removeControl('agreement_date');\n control.controls[index].removeControl('agreement_no_months');\n control.controls[index].removeControl('agreement_expiring_date');\n control.controls[index].removeControl('rental_remaining_months');\n control.controls[index].removeControl('agreement_monthly_rent_amount');\n control.controls[index].removeControl('agreement_security_deposit_amount');\n control.controls[index].removeControl('agreement_property_owners_name');\n control.controls[index].removeControl('agreement_tenant_lessees_name');\n control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n // remove agrement other ownres \n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n\n }\n\n}\n\n// calculate expiry date\n// calculateExpiryDate(e: any,index){\n// let control: any = this.rentalForms.controls['property_unit_details'];\n// // let getSeletedDate: any=control.value[index].agreement_date ? this.pipe.transform(control.value[index].agreement_date, 'yyyy/MM/dd'): '';\n// let getSeletedDate: any='';\n// let getEnteredMonth = control.value[index].agreement_no_months > 0 ? control.value[index].agreement_no_months : '0';\n// if(getSeletedDate && getEnteredMonth>0){\n// let modifySeletedDate:any = new Date(new Date(getSeletedDate).setMonth(new Date(getSeletedDate).getMonth() + Number(getEnteredMonth)));\n// modifySeletedDate.setDate(modifySeletedDate.getDate() - 1);\n// // let getExpiryDate=this.pipe.transform(modifySeletedDate, 'dd/MM/yyyy');\n// let getExpiryDate='';\n// control.controls[index].controls['agreement_expiring_date'].setValue(getExpiryDate);\n// // calculate remaining month\n// if(modifySeletedDate >= new Date()){\n// let currentDate:any = new Date();\n// // currentDate = this.pipe.transform(currentDate, 'yyyy/MM/dd');\n// currentDate = '';\n// let remaingMonths;\n// remaingMonths = (modifySeletedDate.getFullYear() - new Date().getFullYear()) * 12;\n// remaingMonths += modifySeletedDate.getMonth() - new Date().getMonth();\n// control.controls[index].controls['rental_remaining_months'].setValue(remaingMonths);\n// }\n// else{\n// control.controls[index].controls['rental_remaining_months'].setValue(0);\n// }\n// }\n// else {\n// control.controls[index].controls['agreement_expiring_date'].setValue('');\n// control.controls[index].controls['rental_remaining_months'].setValue('');\n\n// }\n\n// } \n\ncalculateExpiryDate(e: any,index){\n let control: any = this.rentalForms.controls['property_unit_details'];\n let getSeletedDate: any=control.value[index].agreement_date ? this.pipe.transform(control.value[index].agreement_date, 'yyyy/MM/dd'): '';\n let getEnteredMonth = control.value[index].agreement_no_months > 0 ? control.value[index].agreement_no_months : '0';\n if(getSeletedDate && getEnteredMonth>0){\n let modifySeletedDate:any = new Date(new Date(getSeletedDate).setMonth(new Date(getSeletedDate).getMonth() + Number(getEnteredMonth)));\n modifySeletedDate.setDate(modifySeletedDate.getDate() - 1);\n let getExpiryDate=this.pipe.transform(modifySeletedDate, 'dd/MM/yyyy');\n console.log('getExpiryDate',getExpiryDate);\n control.controls[index].controls['agreement_expiring_date'].setValue(getExpiryDate);\n // calculate remaining month\n if(modifySeletedDate >= new Date()){\n let currentDate:any = new Date();\n currentDate = this.pipe.transform(currentDate, 'yyyy/MM/dd');\n let remaingMonths;\n remaingMonths = (modifySeletedDate.getFullYear() - new Date().getFullYear()) * 12;\n remaingMonths += modifySeletedDate.getMonth() - new Date().getMonth();\n console.log('remaingMonths',remaingMonths);\n control.controls[index].controls['rental_remaining_months'].setValue(remaingMonths);\n }\n else{\n control.controls[index].controls['rental_remaining_months'].setValue(0);\n }\n }\n else {\n control.controls[index].controls['agreement_expiring_date'].setValue('');\n control.controls[index].controls['rental_remaining_months'].setValue('');\n\n }\n\n} \n\n// generate other owners as per rent agreement\ngenerateAgreementOtherOwners(value:any,index:number) {\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value && value.length>0){\n let otherOwnerCheck = value.filter(fVal=>fVal.id==0);\n otherOwnerCheck.length>0 ? control.controls[index].addControl('agreement_property_owner_other', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other');\n otherOwnerCheck.length>0 ? control.controls[index].addControl('agreement_property_owner_other_relationship', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relationship');\n otherOwnerCheck.length>0 ? control.controls[index].addControl('agreement_property_owner_other_relation_to', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n\n }\n else {\n control.controls[index].removeControl('agreement_property_owner_other');\n control.controls[index].removeControl('agreement_property_owner_other_relationship');\n control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n }\n}\n\n// validate agreement amount\nvalidateAgreementAmt(actualRent:number,agreementRent:number){\n if(actualRent>0 && agreementRent>0){\n return (actualRent >= agreementRent) ? Number(actualRent) - Number(agreementRent) : Number(agreementRent) - Number(actualRent);\n }\n else{\n return \"0\";\n }\n\n}\n \n// generate tenant met details\ngenerateTenantMetDetails(value: any, index: number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n \n if(value.met_tenant_lessees_options==\"1\"){\n // remove reason \n control.controls[index].removeControl('name_tenant_lessees_reason_per_met');\n \n control.controls[index].addControl('name_tenant_lessees_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('property_owner_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('paid_monthly_rent_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('period_of_stay_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('payment_mode_per_met', new FormControl('', Validators.required));\n control.controls[index].addControl('payment_difference_per_met', new FormControl(''));\n \n\n }\n else{\n control.controls[index].removeControl('name_tenant_lessees_per_met');\n control.controls[index].removeControl('property_owner_per_met');\n control.controls[index].removeControl('paid_monthly_rent_per_met');\n control.controls[index].removeControl('period_of_stay_per_met');\n control.controls[index].removeControl('payment_mode_per_met');\n control.controls[index].removeControl('payment_difference_per_met');\n\n\n // remove other owner details\n control.controls[index].removeControl('property_owner_other_per_met');\n control.controls[index].removeControl('property_owner_other_relationship_per_met');\n control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n // remove paymnet options\n control.controls[index].removeControl('amount_received_cash_per_met');\n control.controls[index].removeControl('amount_received_bank_per_met');\n control.controls[index].removeControl('payment_received_reason_per_met');\n // add reason\n control.controls[index].addControl('name_tenant_lessees_reason_per_met', new FormControl('', Validators.required));\n\n\n }\n}\n\n// generate met others owner\ngenerateMetOtherOwners(value: any, index: number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n if(value.property_owner_per_met.length>0){\n let otherCheck: any = value.property_owner_per_met.filter(fVal=>fVal.id==0);\n otherCheck.length >0 ? control.controls[index].addControl('property_owner_other_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_per_met');\n otherCheck.length >0 ? control.controls[index].addControl('property_owner_other_relationship_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relationship_per_met');\n otherCheck.length >0 ? control.controls[index].addControl('property_owner_other_relation_to_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n\n}\nelse {\n control.controls[index].removeControl('property_owner_other_per_met');\n control.controls[index].removeControl('property_owner_other_relationship_per_met');\n control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n\n}\n\n}\n\n// generate floor rows\ngenerateFloor(e:any): void{\n let control = this.rentalForms.controls['multistoried_building_details'];\n if(e.target.value && Math.round(e.target.value)!=0){\n \n if(Math.round(e.target.value) > this.rentalForms.value.multistoried_building_details.length){\n let rowValue = Math.round(e.target.value)-this.rentalForms.value.multistoried_building_details.length;\n for(let i=rowValue;i>0;i--){\n control.push(this.createFloorDetails(''));\n }\n }\n else if(Math.round(e.target.value) < this.rentalForms.value.multistoried_building_details.length){\n let rowValue = this.rentalForms.value.multistoried_building_details.length-Math.round(e.target.value);\n for(let i=rowValue;i>0;i--){\n control.removeAt(this.rentalForms.value.multistoried_building_details.length-1);\n }\n }\n }\n else if(e.target.value && Math.round(e.target.value)==0){\n control.controls = [];\n control.setValue([]); \n }\n else{\n control.controls = [];\n control.setValue([]); \n }\n e.stopPropagation();\n}\n\n// create floor details\ncreateFloorDetails(details){\n if(details){\n return this.fb.group({\n floor_level: [this.rentalForms.value.multistoried_building_details.length==0 ? 'Ground Floor' : this.rentalForms.value.multistoried_building_details.length+' Floor', Validators.compose([Validators.required])],\n no_units_in_floor: ['', Validators.compose([Validators.required])],\n unit_rent_difference_options : ['', Validators.compose([Validators.required])], \n floor_unit_details : this.fb.array([]),\n floor_rent_amount: [''],\n });\n }\n else{\n return this.fb.group({\n floor_level: [this.rentalForms.value.multistoried_building_details.length==0 ? 'Ground Floor' : this.rentalForms.value.multistoried_building_details.length+' Floor', Validators.compose([Validators.required])],\n no_units_in_floor: ['', Validators.compose([Validators.required])],\n unit_rent_difference_options : ['', Validators.compose([Validators.required])],\n floor_unit_details : this.fb.array([]),\n floor_rent_amount: [''],\n });\n }\n\n}\n\n// generate floor unit details\ngenerateFloorUnit(values:any, index:number){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n control = control.controls[index];\n control= control.controls['floor_unit_details'];\n if(values.no_units_in_floor>0 && values.unit_rent_difference_options==\"0\"){\n if(Math.round(values.no_units_in_floor) > control.value.length){\n let rowValue = Math.round(values.no_units_in_floor)-control.value.length;\n for(let i=rowValue;i>0;i--){\n control.push(this.createFloorUnitDetails(2));\n }\n }\n else if(Math.round(values.no_units_in_floor) < control.value.length){\n let rowValue = control.value.length-Math.round(values.no_units_in_floor);\n for(let i=rowValue;i>0;i--){\n control.removeAt(control.value.length-1);\n }\n }\n else if(Math.round(values.no_units_in_floor)==0){\n control.controls = [];\n control.setValue([]); \n }\n else{\n control.controls = [];\n control.setValue([]); \n }\n this.calculateFloorRentAmt(values,index);\n \n }\n else if(values.no_units_in_floor>0 && values.unit_rent_difference_options==\"1\") {\n control.controls = [];\n control.setValue([]); \n control.push(this.createFloorUnitDetails(1));\n this.calculateFloorRentAmt(values,index);\n }\n else {\n control.controls = [];\n control.setValue([]); \n }\n\n}\n\n// create floor unit details\ncreateFloorUnitDetails(type:number){\n if(type==1){\n return this.fb.group({\n rent_per_unit: ['', Validators.compose([Validators.required])],\n amount: [''],\n });\n }\n else if(type==2){\n return this.fb.group({\n rent_per_unit: ['', Validators.compose([Validators.required])],\n });\n }\n\n}\n// calculate floor rent amount\ncalculateFloorRentAmt(values: any, index: number){\n // this.inWords(values,index,1);\n if(values.unit_rent_difference_options==\"1\"){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n let unitcontrol = control.controls[index];\n unitcontrol= unitcontrol.controls['floor_unit_details'];\n if(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit>0 && values.no_units_in_floor>0){\n unitcontrol.controls[unitcontrol.value.length-1].controls['amount'].setValue(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor);\n this.inWords(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor,index,2);\n control.controls[index].controls['floor_rent_amount'].setValue(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor);\n this.inWords(unitcontrol.value[unitcontrol.value.length-1].rent_per_unit * values.no_units_in_floor,index,4);\n }\n else{\n unitcontrol.controls[unitcontrol.value.length-1].controls['amount'].setValue('');\n control.controls[index].controls['floor_rent_amount'].setValue('');\n\n }\n }\n else if(values.unit_rent_difference_options==\"0\"){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n let unitcontrol = control.controls[index];\n unitcontrol= unitcontrol.controls['floor_unit_details'];\n // console.log(unitcontrol)\n let getunitValues = unitcontrol.value.filter(val=>val.rent_per_unit!='');\n if(getunitValues.length>0){\n control.controls[index].controls['floor_rent_amount'].setValue(getunitValues.map(mval=>mval.rent_per_unit).reduce((acc, val) => Number(acc) + Number(val), 0));\n this.inWords(getunitValues.map(mval=>mval.rent_per_unit).reduce((acc, val) => Number(acc) + Number(val)),index,4);\n }\n else{\n control.controls[index].controls['floor_rent_amount'].setValue('');\n\n }\n }\n\n}\n\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\ncompareSingleObjects(o1: any, o2: any) {\n if(o1.id == o2.id)\n return true;\n else return false\n}\n // createTenantsDetails()\n // {\n // return this.fb.group(\n // {\n // name:[null,Validators.compose([Validators.required])],\n // mobile_no:[null,Validators.compose([Validators.required])],\n // tenants_seen:[null,Validators.compose([Validators.required])],\n // tenants_con_owner:[null,Validators.compose([Validators.required])],\n // rent_paid:[null,Validators.compose([Validators.required])],\n // staying_since:[null,Validators.compose([Validators.required])],\n \n // });\n // }\n\n // addrentalHome()\n // {\n // const control = this.rentalForms.get('rental_home') as FormArray;\n // control.push(this.createrentalHome());\n // this.addTenantsDetails(0);\n // }\n\n // addTenantsDetails(i)\n // {\n // const control = (this.rentalForms.controls['rental_home']).at(i).get('details_tenants') as FormArray;\n \n // // control.controls.splice(0);\n // control.push(this.createTenantsDetails());\n\n // }\n\n // deleteTenantsDetails(rentIndex,TenantsIndex)\n // {\n // const control = (this.rentalForms.controls['rental_home']).at(rentIndex).get('details_tenants') as FormArray;\n \n // control.removeAt(TenantsIndex);\n // }\n\n // deleterentalHome(i)\n // {\n // const control = (this.rentalForms.controls['rental_home']) as FormArray;\n // if(control.length==1)\n // {\n // this.rentalForms.controls['rental_home'].reset();\n // }else\n // {\n // control.removeAt(i);\n // }\n // }\n saveAlert(answerData){\n let ApplicantRentAmt : number=0 ; \n let TenantRentAmt : number =0; \n let FloorsTotalRentAmt : number =0; \n\n let TempArray1 : any = [];\n let TempArray2 : any = [];\n let TempArray3 : any = [];\n\n let TextMessage :any;\n\n if(answerData.property_unit_details.length > 0){\n \n answerData.property_unit_details.forEach((data,index) => {\n TempArray1[index] = data.hasOwnProperty('monthly_rent_amount') ? data.monthly_rent_amount : 0;\n ApplicantRentAmt = TempArray1.reduce((sum, val) => sum + +val, 0);\n TempArray2[index] = data.hasOwnProperty('paid_monthly_rent_per_met') ? data.paid_monthly_rent_per_met : 0;\n TenantRentAmt = TempArray2.reduce((sum, val) => sum + +val, 0);\n })\n TextMessage = 'Monthly Rent as Per Loan Applicant =' + ApplicantRentAmt+'
'; \n }\n\n \n if(answerData.multistoried_building_details.length > 0){\n answerData.multistoried_building_details.forEach((val,index) => {\n TempArray3[index] = val.hasOwnProperty('floor_rent_amount')? val.floor_rent_amount : 0;\n FloorsTotalRentAmt = TempArray3.reduce((sum, val) => sum + +val, 0);\n });\n TextMessage = TextMessage +'Rent amount calculated = '+FloorsTotalRentAmt;\n }\n else{\n TextMessage = TextMessage +'Monthly Rent amount as Per Tenant met = '+TenantRentAmt;\n }\n \n let alert=this.alertCtrl.create({\n title:'Confirm The Rent Amount',\n message:TextMessage,\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n alert.dismiss\n }\n },\n {\n text:'Confirm',\n handler:()=>{\n this.saveRentalDetails(answerData)\n }\n }\n ]\n });\n alert.present();\n }\n saveRentalDetails(answerData) {\n answerData.rental_count_id=this.data.existing_rental_count_id\n console.log('answerData',answerData);\n \n delete answerData.stateSearch;\n delete answerData.citySearch;\n delete answerData.pincodeSearch;\n answerData.fk_createdby = this.users;\n\n console.log('answerData',answerData);\n\n this.qustCat.saveForm(answerData).subscribe(res=>\n { \n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.rentalForms.reset(this.rentalForms.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n }\n\n// s(answerData)\n// {\n// let records:any={}\n \n \n// // if(this.rentalForms.valid){\n// records.pdid = this.pdDetails.pd_id;\n// records.formid = this.FormId.form_id;\n// records.fk_createdby = this.users;\n// records.person_met = answerData.person_met;\n// records.property_own = answerData.property_own;\n// records.nature_property = answerData.nature_property;\n// if(answerData.nature_property=='others')\n// {\n// records.nature_others = answerData.nature_others\n// }\n// records.rental_home = answerData.rental_home;\n// Object.keys(records.rental_home).forEach((key) => (records.rental_home[key]==null) && delete answerData[key]);\n\n// this.qustCat.saveForm(records).subscribe(res=>\n// { \n// if(res['dataStatus']==true)\n// {\n// this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n// setTimeout(()=>{\n// this.navCtrl.pop();\n// },2000);\n// }\n// })\n// // }else\n// // {\n// // this.toast.pdTriggerappmessage('Enter All Field');\n// // }\n// }\n\n getRentalDetails()\n {\n\n let records = { 'parent_pdid':this.pdDetails.parent_pd_id,'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId.form_id };\n \n \n \n // this.qustCat.retiverForm(records).subscribe(res=> {\n console.log(\"enter\",this.data.editData)\n if(this.data.editData)\n {\n \n let rentalDetails = this.data.editData;\n console.log(\"rental\",rentalDetails)\n rentalDetails.parent_pdid=this.pdDetails.parent_pd_id\n rentalDetails.pdid = this.pdDetails.pd_id,\n rentalDetails.formid = this.FormId.form_id;\n rentalDetails.other_name_person_type ? this.rentalForms.addControl('other_name_person_type', new FormControl('', Validators.required)): this.rentalForms.removeControl('other_name_person_type');\n rentalDetails.other_sighted_documents ? this.rentalForms.addControl('other_sighted_documents', new FormControl('', Validators.required)) : this.rentalForms.removeControl('other_sighted_documents');\n // this.rentalForms.addControl('stateSearch', new FormControl(''));\n // this.rentalForms.addControl('citySearch', new FormControl(''));\n // this.rentalForms.addControl('pincodeSearch', new FormControl(''));\n rentalDetails.stateSearch = '';\n rentalDetails.citySearch = '';\n rentalDetails.pincodeSearch = '';\n //get Multistoried Building Details\n if(rentalDetails.multistoried_building_details){\n let selectedMultistoriedBuilding = Object.keys(rentalDetails.multistoried_building_details).map(function (key) {\n return rentalDetails.multistoried_building_details[key];\n });\n\n if(selectedMultistoriedBuilding.length>0){\n let control: any = this.rentalForms.controls['multistoried_building_details'];\n selectedMultistoriedBuilding.forEach((floorElement,floorIndex)=>{\n control.push(this.createFloorDetails(''));\n let unitControl = control.controls[floorIndex];\n unitControl= unitControl.controls['floor_unit_details'];\n let floor_rent_amount_val;\n floorElement.floor_unit_details.forEach((unitElement,unitIndex) => {\n floorElement.unit_rent_difference_options==\"0\" ? unitControl.push(this.createFloorUnitDetails(2)) : unitControl.push(this.createFloorUnitDetails(1));\n console.log(\"rent per unit\",unitElement.rent_per_unit);\n if(floorElement.unit_rent_difference_options == \"1\"){\n console.log(\"check\",unitElement.rent_per_unit)\n if(unitElement.rent_per_unit !=''){\n this.inWords(unitElement.rent_per_unit,unitIndex,1)\n }\n if(unitElement.amount!=''){\n this.inWords(unitElement.amount,floorIndex,2)\n }\n }\n else if(floorElement.unit_rent_difference_options==\"0\"){\n if(unitElement.rent_per_unit!=''){\n //floor_rent_amount_val+=unitElement.rent_per_unit\n }\n this.inWords(floorElement.floor_rent_amount,floorIndex,4)\n }\n });\n // this.inWords(floor_rent_amount_val,floorIndex,4)\n });\n }\n } \n\n // get property unit details\n if(rentalDetails.property_unit_details){\n console.log(\"property\",rentalDetails.property_unit_details)\n let selectedUnitDetails = Object.keys(rentalDetails.property_unit_details).map(function (key) {\n return rentalDetails.property_unit_details[key];\n });\n if(selectedUnitDetails.length>0){\n selectedUnitDetails.forEach((element,index) => {\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.push(this.createUnitDetails(''));\n \n (element.name_tenant_lessees && element.tenant_lessees_options==\"1\") ? control.controls[index].addControl('name_tenant_lessees', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees');\n (element.name_tenant_lessees_reason && element.tenant_lessees_options==\"0\") ? control.controls[index].addControl('name_tenant_lessees_reason', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees_reason');\n // for payment options\n element.amount_received_cash ? control.controls[index].addControl('amount_received_cash', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_cash');\n element.amount_received_bank ? control.controls[index].addControl('amount_received_bank', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_bank');\n element.payment_received_reason ? control.controls[index].addControl('payment_received_reason', new FormControl('', Validators.required)) : control.controls[index].removeControl('payment_received_reason');\n \n // unit of other measurement \n element.other_unit_measurement ? control.controls[index].addControl('other_unit_measurement', new FormControl('', Validators.required)) : control.controls[index].removeControl('other_unit_measurement');\n // rent agreement seen\n element.rent_agreement_seen ? control.controls[index].addControl('rent_agreement_seen', new FormControl('', Validators.required)) : control.controls[index].removeControl('rent_agreement_seen');\n element.rent_agreement_registered ? control.controls[index].addControl('rent_agreement_registered', new FormControl('', Validators.required)) : control.controls[index].removeControl('rent_agreement_registered');\n element.agreement_date ? control.controls[index].addControl('agreement_date', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_date');\n element.agreement_no_months ? control.controls[index].addControl('agreement_no_months', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_no_months');\n element.agreement_expiring_date ? control.controls[index].addControl('agreement_expiring_date', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_expiring_date');\n (element.rental_remaining_months=='' || element.rental_remaining_months>=0) ? control.controls[index].addControl('rental_remaining_months', new FormControl('', Validators.required)) : control.controls[index].removeControl('rental_remaining_months');\n element.agreement_monthly_rent_amount ? control.controls[index].addControl('agreement_monthly_rent_amount', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_monthly_rent_amount');\n element.agreement_security_deposit_amount ? control.controls[index].addControl('agreement_security_deposit_amount', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_security_deposit_amount');\n element.differences_loanapplicant_rentagreement ? control.controls[index].addControl('differences_loanapplicant_rentagreement', new FormControl('', Validators.required)) : control.controls[index].removeControl('differences_loanapplicant_rentagreement');\n \n //agreement owners\n element.agreement_property_owners_name ? control.controls[index].addControl('agreement_property_owners_name', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owners_name');\n element.agreement_property_owner_other ? control.controls[index].addControl('agreement_property_owner_other', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other');\n element.agreement_property_owner_other_relationship ? control.controls[index].addControl('agreement_property_owner_other_relationship', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relationship');\n element.agreement_property_owner_other_relation_to ? control.controls[index].addControl('agreement_property_owner_other_relation_to', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_property_owner_other_relation_to');\n \n // name of tenant/lessess as agreement\n element.agreement_tenant_lessees_name ? control.controls[index].addControl('agreement_tenant_lessees_name', new FormControl('', Validators.required)) : control.controls[index].removeControl('agreement_tenant_lessees_name');\n \n //met tenant details\n element.name_tenant_lessees_per_met ? control.controls[index].addControl('name_tenant_lessees_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees_per_met');\n element.name_tenant_lessees_reason_per_met ? control.controls[index].addControl('name_tenant_lessees_reason_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('name_tenant_lessees_reason_per_met');\n element.property_owner_per_met ? control.controls[index].addControl('property_owner_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_per_met');\n element.property_owner_other_per_met ? control.controls[index].addControl('property_owner_other_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_per_met');\n element.property_owner_other_relationship_per_met ? control.controls[index].addControl('property_owner_other_relationship_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relationship_per_met');\n element.property_owner_other_relation_to_per_met ? control.controls[index].addControl('property_owner_other_relation_to_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('property_owner_other_relation_to_per_met');\n \n // tennat payment\n \n \n // element.payment_difference_per_met=''\n // control.controls[index].addControl('payment_difference_per_met',new FormControl(''))\n console.log(\"payment\",element);\n element.paid_monthly_rent_per_met ? control.controls[index].addControl('paid_monthly_rent_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('paid_monthly_rent_per_met');\n element.period_of_stay_per_met ? control.controls[index].addControl('period_of_stay_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('period_of_stay_per_met');\n element.payment_mode_per_met ? control.controls[index].addControl('payment_mode_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('payment_mode_per_met');\n element.amount_received_cash_per_met ? control.controls[index].addControl('amount_received_cash_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_cash_per_met');\n element.amount_received_bank_per_met ? control.controls[index].addControl('amount_received_bank_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('amount_received_bank_per_met');\n element.payment_received_reason_per_met ? control.controls[index].addControl('payment_received_reason_per_met', new FormControl('', Validators.required)) : control.controls[index].removeControl('payment_received_reason_per_met');\n if( element.payment_difference_per_met =='' || element.payment_difference_per_met !='') { control.controls[index].addControl('payment_difference_per_met', new FormControl('')) }\n // control.controls[index].removeControl('payment_difference_per_met');\n this.inWords(element.monthly_rent_amount != '' ? +element.monthly_rent_amount : '',index,5);\n this.inWords(element.amount_received_cash != '' ? +element.amount_received_cash : '',index,6);\n this.inWords(element.amount_received_bank != '' ? +element.amount_received_bank : '',index,7);\n this.inWords(element.securtity_deposit_amount != '' ? +element.securtity_deposit_amount : '',index,8);\n this.inWords(element.agreement_monthly_rent_amount != '' ? +element.agreement_monthly_rent_amount : '',index,9);\n this.inWords(element.agreement_security_deposit_amount != '' ? +element.agreement_security_deposit_amount :'',index,10);\n this.inWords(element.paid_monthly_rent_per_met != '' ? +element.paid_monthly_rent_per_met : '',index,11);\n this.inWords(element.amount_received_cash_per_met != '' ? +element.amount_received_cash_per_met : '',index,12);\n this.inWords(element.amount_received_bank_per_met != '' ? +element.amount_received_bank_per_met : '',index,13);\n\n });\n }\n }\n this.rentalForms.patchValue(rentalDetails);\n }\n else{\n let control: any = this.rentalForms.controls['property_unit_details'];\n control.push(this.createUnitDetails(''));\n \n }\n \n \n // });\n \n // this.qustCat.retiverForm(records).subscribe(res=>\n // {\n // if(res['dataStatus']==true)\n // {\n // let rentalDetails = res['records'];\n // var rentalData = Object.keys(res['records'].rental_home\n // ).map(function(key) {\n // return res['records'].rental_home\n // [key];\n\n // });\n // var tanantsData = [];\n // var control = (this.rentalForms.controls['rental_home']) as FormArray;\n // var tanantscontrol; \n // rentalData.forEach((val,index)=>\n // {\n \n // // this.addrentalHome();\n // // tanantsData.push(Object.keys(val.details_tenants).map(function(key)\n // // {\n \n \n // // return val.details_tenants[key];\n // // }));\n // rentalData[index].details_tenants = Object.keys(val.details_tenants).map(function(key)\n // {\n \n \n // return val.details_tenants[key];\n // });\n // // control.push(this.createrentalHome()); \n // tanantscontrol = (this.rentalForms.controls['rental_home']).at(index).get('details_tenants') as FormArray; \n \n // rentalData[index].details_tenants.forEach((val,key)=>\n // {\n // //rentalData[index].details_tenants = val;\n \n // // rentalData[index].details_tenants = [key];\n // // tanantscontrol.push(this.createTenantsDetails());\n // });\n \n // // control[index].details_tenants =tanantscontrol; \n // });\n // this.rentalForms.controls['person_met'].setValue(rentalDetails.person_met);\n // this.rentalForms.controls['property_own'].setValue(rentalDetails.property_own);\n // this.rentalForms.controls['nature_property'].setValue(rentalDetails.nature_property);\n // if(rentalDetails.nature_property=='others'){\n // this.rentalForms.controls['nature_others'].\n // setValue(rentalDetails.nature_others);\n // }\n \n // this.rentalForms.controls['rental_home'].setValue(rentalData); \n // }else\n // {\n // // this.addrentalHome();\n // // this.addTenantsDetails(0);\n // }\n // })\n }\n // createTenantsDetailswithData(index,data)\n // {\n // return this.fb.group(\n // {\n // name:[data.name],\n // mobile_no:[data.mobile_no],\n // tenants_seen:[data.tenants_seen],\n // tenants_con_owner:[data.tenants_con_owner],\n // rent_paid:[data.rent_paid],\n // staying_since:[data.staying_since]\n // });\n // }\n\n inWords(e,i,flag){\n // console.log(e,i,flag);\n switch(flag){\n case 1 : \n this.rent_per_unit_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 2 :\n this.amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 3 :\n // this.rent_per_unit_2_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 4 :\n this.floor_rent_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 5 : \n this.monthly_rent_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 6 :\n this.amount_received_cash_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 7 :\n this.amount_received_bank_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 8 :\n this.securtity_deposit_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 9 : \n this.agreement_monthly_rent_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 10:\n this.agreement_security_deposit_amount_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 11 :\n this.paid_monthly_rent_per_met_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 12 :\n this.amount_received_cash_per_met_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n case 13 :\n this.amount_received_bank_per_met_Inwords[i] = this.constprovider.convertNumberToWords(e);\n break;\n }\n }\n\n inWordsmultiple(e,i,j,flag){\n // console.log(e,i,j,flag); \n return this.constprovider.convertNumberToWords(e);\n }\n validateAllFormFields(formGroup: any) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n \n if (control instanceof FormControl) {\n control.markAsTouched({ onlySelf: true });\n } else if (control instanceof FormGroup) { \n this.validateAllFormFields(control);\n } else if (control instanceof FormArray) { \n this.validateAllFormFields(control);\n }\n });\n }\n\n\n // generate payment dynamic fields\n\nValidatedRentAmount(value:any,index:number,type: number){\n let control: any = this.rentalForms.controls['property_unit_details'];\n console.log(\"validated\",value);\n if(type==1){\n if(value && value.payment_mode.id==3){\n let ChildCtrl : any = control.controls[index]; \n ChildCtrl.controls['amount_received_bank'].clearValidators();\n ChildCtrl.controls['amount_received_bank'].updateValueAndValidity();\n ChildCtrl.controls['amount_received_cash'].clearValidators();; \n ChildCtrl.controls['amount_received_cash'].updateValueAndValidity();\n let monthlyrentamt : any = value.monthly_rent_amount ; \n \n\n if(monthlyrentamt != ''){\n \n let bank_amount = value.amount_received_bank;\n\n ChildCtrl.controls['amount_received_bank'].setValidators([Validators.required,Validators.max(monthlyrentamt),Validators.min(0)]); \n ChildCtrl.controls['amount_received_bank'].updateValueAndValidity();\n let maxamt = monthlyrentamt-bank_amount\n if(maxamt >= 0 ){\n ChildCtrl.controls['amount_received_cash'].setValue(maxamt);\n ChildCtrl.controls['amount_received_cash'].setValidators([Validators.required,Validators.max(monthlyrentamt-bank_amount),Validators.min(monthlyrentamt-bank_amount)]); \n this.inWords(maxamt,index,6)\n }\n else{\n ChildCtrl.controls['amount_received_cash'].setValue(0);\n ChildCtrl.controls['amount_received_cash'].setValidators([Validators.max(0),Validators.min(0)]); \n }\n ChildCtrl.controls['amount_received_cash'].updateValueAndValidity();\n \n }\n }\n }\n if(type==2){\n \n if(value && value.payment_mode_per_met.id==3){\n let ChildCtrl : any = control.controls[index]; \n ChildCtrl.controls['amount_received_bank_per_met'].clearValidators();\n ChildCtrl.controls['amount_received_bank_per_met'].updateValueAndValidity();\n ChildCtrl.controls['amount_received_cash_per_met'].clearValidators();; \n ChildCtrl.controls['amount_received_cash_per_met'].updateValueAndValidity();\n let paidmonthlyrentamt : any = value.paid_monthly_rent_per_met; \n \n\n if(paidmonthlyrentamt != ''){\n \n let bank_amount = value.amount_received_bank_per_met;\n ChildCtrl.controls['amount_received_bank_per_met'].setValidators([Validators.required,Validators.max(paidmonthlyrentamt),Validators.min(0)]); \n ChildCtrl.controls['amount_received_bank_per_met'].updateValueAndValidity();\n let remainingAmt = paidmonthlyrentamt-bank_amount\n console.log(\"paid monthly\",paidmonthlyrentamt);\n console.log(\"remaining\",remainingAmt)\n if(remainingAmt >= 0 ){\n ChildCtrl.controls['amount_received_cash_per_met'].setValue(remainingAmt);\n ChildCtrl.controls['amount_received_cash_per_met'].setValidators([Validators.required,Validators.max(paidmonthlyrentamt-bank_amount),Validators.min(paidmonthlyrentamt-bank_amount)]); \n this.inWords(remainingAmt,index,12)\n }\n else{\n ChildCtrl.controls['amount_received_cash_per_met'].setValue(0);\n ChildCtrl.controls['amount_received_cash_per_met'].setValidators([Validators.max(0),Validators.min(0)]); \n }\n ChildCtrl.controls['amount_received_cash_per_met'].updateValueAndValidity();\n }\n }\n \n }\n}\n\nforSearchableDropdown(val:any,Flag:any){\n // val=val.controls['relationSearch'].value\n console.log(\"val\",val,'Flag',Flag);\n switch(Flag){\n case 'state' : \n console.log(\"val\",val.controls['stateSearch'].value,'Flag',Flag,'1');\n val.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.stateList=this.constprovider.searchData(this.stateData,val.controls['stateSearch'].value,Flag)\n }); break;\n case 'city' : \n console.log(\"val\",val.controls['citySearch'].value,'Flag',Flag,'2');\n val.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.cityList =this.constprovider.searchData(this.cityData,val.controls['citySearch'].value,Flag)\n }); break;\n case 'pin' : \n console.log(\"val\",val.controls['pincodeSearch'].value,'Flag',Flag,'3');\n val.controls['pincodeSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n this.pincodeList =this.constprovider.searchData(this.pincodeData,val.controls['pincodeSearch'].value,Flag)\n }); break;\n }\n}\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null,'rental_count_id':this.data.existing_rental_count_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n console.log('From getPDImages',val);\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\n\nchangeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\n\ncaptureThePropertyPics(){\n // alert('rentalDataCount '+this.data.existing_rental_count_id);\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this.imageBucket.push({'image':res,'Name':'Property '+this.data.existing_rental_count_id});\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n}\n\ncapture(){\n //FOR CAPTURING PICS\nthis.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constprovider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n},error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n})\nthis.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n 'rental_count_id':this.data.existing_rental_count_id,\n \n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n console.log(\"savepd\",records) \n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('agreement_property_owner_other').value\n value.get('agreement_property_owner_other').setValue(this.constprovider.sentenceCase(name));\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-rental-info/pd-question-rental-info.ts","import { Component, OnInit } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormArray, FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';\n\n/**\n * Generated class for the PdQuestionPersonalInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-personal-info',\n templateUrl: 'pd-question-personal-info.html',\n})\nexport class PdQuestionPersonalInfoPage implements OnInit{\n\n questionDetails: any;\n pdDetails: any;\n users: any;\n _personalForm: FormGroup;\n qualifications:any=[\"Graduate\",\"Under Graduate\",\"Post Graduate\",\"Professional\"];\n earningStatus:any=[\"Earning Member\",\"House Wife\",\"Student\",\"Retired\",\"Pensioner\",\"Other Non earning member\"];\n relationShipList:any=[];\n \n form_id:number;\n \n\n public mainApplicantQuestions : any = [\"Name\",\"Age\",\"Entity\",\"Educational Qualification\",\"Earning Status\"];\n public coApplicantQuestions : any = [\"Name\",\"Age\",\"Entity\",\"Educational Qualification\",\"Earning Status\",\"Relationship\"];\n \n public mainApplicantDetails :any=[];\n public coApplicantDetails :any=[];\n \n errorMessage:any;\n //coItem:any;\n //mainItem:any;\n\n repeat:number=3;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public _fb:FormBuilder) {\n \n this.questionDetails = this.navParams.get('questionDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.users = this.aws.getlocale();\n \n \n // this.getRelationMaster();\n \n \n \n }\n ngOnInit() {\n \n this.loadPDDetails();\n this.getRelationMaster();\n this.mainApplicantDetails = this.pdDetails.applicat_details\n .filter(item => item.applicant_type == 1);\n this.coApplicantDetails = this.pdDetails.applicat_details\n .filter(item => item.applicant_type == 0);\n }\n\n // load form pd details\n loadPDDetails(){\n let records = {'pd_id':this.pdDetails.pd_id,'pd_form_id':'341'};\n \n this.qustCat.retiverForm(records).subscribe(\n data => {\n if (data['status'] == 200) {\n this.loadFormWithIDData(data['records']);\n \n }\n else{\n let defaultMainApp=[];\n let defaultCoApp=[];\n // generate default main applicant form details\n if(this.mainApplicantDetails.length>0){ \n for(let j=0;j this.errorMessage = error);\n}\n\nloadDataStatus: boolean = false;\n\nloadFormWithIDData(data) {\n var main_result = Object.keys(data.main_applicant_details).map(function(key) {\n return data.main_applicant_details[key];\n});\nvar co_result = Object.keys(data.co_applicant_details).map(function(key) {\n return data.co_applicant_details[key];\n});\n\n // main applicant\n let mainApplicantGroup = new FormArray(main_result.map((item,key) => new FormGroup({\n name_ans:new FormControl(item.name_ans, Validators.required),\n age_ans:new FormControl(item.age_ans, Validators.required),\n entity_ans:new FormControl(item.entity_ans, Validators.required),\n qualification_ans:new FormControl(item.qualification_ans, Validators.required),\n earning_ans:new FormControl(item.earning_ans, Validators.required),\n })));\n // co applicant\n let iterateCoApp=[];\n \n let coApplicantGroup = new FormArray(co_result.map((item,key) => new FormGroup({\n name_ans:new FormControl(item.name_ans, Validators.required),\n age_ans:new FormControl(item.age_ans, Validators.required),\n entity_ans:new FormControl(item.entity_ans, Validators.required),\n qualification_ans:new FormControl(item.qualification_ans, Validators.required),\n earning_ans:new FormControl(item.earning_ans, Validators.required),\n relation_ans:new FormControl(item.relation_ans, Validators.required),\n\n })));\n \n this._personalForm = this._fb.group({\n pdid:null,\n form_id:null,\n mainItem: mainApplicantGroup,\n coItem: coApplicantGroup,\n personal_info_form_remark: [data.personal_info_form_remark]\n });\n this.loadDataStatus = true;\n}\n\n loadFormData(mainApp,coApp){\n // main applicant\n let mainApplicantGroup = new FormArray(this.mainApplicantDetails.map((item,key) => new FormGroup({\n name_ques:new FormControl(this.mainApplicantQuestions[0]),\n name_ans:new FormControl(item.applicant_name, Validators.required),\n name_id:new FormControl(0),\n age_ques:new FormControl(this.mainApplicantQuestions[1]),\n age_id:new FormControl(1),\n age_ans:new FormControl(null, Validators.required),\n entity_ques: new FormControl(this.mainApplicantQuestions[2]),\n entity_id: new FormControl(2),\n entity_ans:new FormControl(null, Validators.required),\n qualification_ques: new FormControl(this.mainApplicantQuestions[3]),\n qualification_id: new FormControl(3),\n qualification_ans:new FormControl(null, Validators.required),\n earningStatus_ques:new FormControl(this.mainApplicantQuestions[4]),\n earning_id: new FormControl(4),\n earning_ans:new FormControl(null, Validators.required),\n \n })));\n // co applicant\n let iterateCoApp=[];\n \n let coApplicantGroup = new FormArray(this.coApplicantDetails.map((item,key) => new FormGroup({\n name_ques:new FormControl(this.coApplicantQuestions[0]),\n name_ans:new FormControl(item.applicant_name, Validators.required),\n name_id:new FormControl(0),\n age_ques:new FormControl(this.coApplicantQuestions[1]),\n age_id:new FormControl(1),\n age_ans:new FormControl(null, Validators.required),\n entity_ques: new FormControl(this.coApplicantQuestions[2]),\n entity_id: new FormControl(2),\n entity_ans:new FormControl(null, Validators.required),\n qualification_ques: new FormControl(this.coApplicantQuestions[3]),\n qualification_id: new FormControl(3),\n qualification_ans:new FormControl(null, Validators.required),\n earningStatus_ques:new FormControl(this.coApplicantQuestions[4]),\n earning_id: new FormControl(4),\n earning_ans:new FormControl(null, Validators.required),\n relationShip_ques:new FormControl(this.coApplicantQuestions[5]),\n relation_id:new FormControl(5),\n relation_ans:new FormControl(null, Validators.required),\n\n })));\n \n this._personalForm = this._fb.group({\n pdid:null,\n form_id:null,\n mainItem: mainApplicantGroup,\n coItem: coApplicantGroup,\n personal_info_form_remark:null\n });\nthis.loadDataStatus = true;\n }\n\n //get pd main applicant array values \n get pdMainapplicant() { return this._personalForm.get('mainItem') as FormArray; }\n\n // get pd co applicant array values\n get pdCoapplicant() {return this._personalForm.get('coItem') as FormArray;}\n\n // get relation master details\n getRelationMaster(){\n let relation =\"RELATIONSHIPS\";\n this.qustCat.getcommondrop(relation).subscribe(\n data => {\n if (data['status'] == 200) {\n this.relationShipList=data['records'];\n \n }\n}, error => this.errorMessage = error);\n}\n\n// submit forms details\nsubmitPersonalForm(formData:any) {\n if(this._personalForm.valid){\n let main_applicantDetails:any=[];\n let co_applicantDetails:any=[];\n\n formData.mainItem.forEach((element,key) => {\n if(key==0){\n main_applicantDetails.push({\n \"name_ans\":element.name_ans,\n \"age_ans\":element.age_ans,\n \"entity_ans\":element.entity_ans,\n \"qualification_ans\":element.qualification_ans,\n \"earning_ans\":element.earning_ans, \n })\n }\n \n });\n formData.coItem.forEach((Coelement,Cokey) => {\n co_applicantDetails.push({\n\n \"name_ans\":Coelement.name_ans,\n \"age_ans\":Coelement.age_ans,\n \"qualification_ans\":Coelement.qualification_ans,\n \"entity_ans\":Coelement.entity_ans,\n \"earning_ans\":Coelement.earning_ans, \n \"relation_ans\":Coelement.relation_ans, \n })\n \n });\n\n let save_details:any={\n \"pdid\" : this.pdDetails.pd_id,\n \"formid\" : '341',\n \"fk_createdby\":this.users,\n \"main_applicant_details\":main_applicantDetails,\n \"co_applicant_details\":co_applicantDetails,\n \"personal_info_form_remark\": this._personalForm.get('personal_info_form_remark').value\n };\n this.qustCat.saveForm(save_details).subscribe(result => {\n if (result['dataStatus']==true) {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n // this.notifier.notify('success', 'Success.');\n }\n else {\n // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');\n }\n }, error => {\n // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');\n });\n }\n}\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-personal-info/pd-question-personal-info.ts","import { Component, ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Slides } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\nimport { PdQuestionAssessedSalesPage } from '../pd-question-assessed-sales/pd-question-assessed-sales';\nimport { PdQuestionAssessedDailySalesPage } from '../pd-question-assessed-daily-sales/pd-question-assessed-daily-sales';\nimport { FormatWidth } from '@angular/common';\nimport { PdQuestionAssessedPurchasePage } from '../pd-question-assessed-purchase/pd-question-assessed-purchase';\nimport { PdQuestionAssessedBusinessPage } from '../pd-question-assessed-business/pd-question-assessed-business';\nimport { PdQuestionAssessedHouseholdPage } from '../pd-question-assessed-household/pd-question-assessed-household';\nimport { PdQuestionAssessedBusinessIncomePage } from '../pd-question-assessed-business-income/pd-question-assessed-business-income';\n\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport {PdQuestionAssessedDailyPurchasePage} from '../pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase'\nimport {RupeeCurrencyFormatPipe} from '../../../pipes/rupee-currency-format/rupee-currency-format'\n\n\n/**\n * Generated class for the PdQuestionAssessedInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-info',\n templateUrl: 'pd-question-assessed-info.html',\n providers:[RupeeCurrencyFormatPipe]\n})\nexport class PdQuestionAssessedInfoPage {\n\n grossProfitForm:FormGroup\n check__purchse_type:any=[{'id':'1','name':'Yes'},{'id':'2','name':'No'}]\n busissnessIncome: any;\n mode: any;\n grossprofitCalc: any;\n houseHold_details: any;\n grandHouseExpenseTotal: any;\n houseannual: any=[];\n businessExpenses_details: any;\n grandExpenseTotal: any;\n expenseannual: any=[];\n businessExpenses: any;\n purchse_details: any;\n sales_item_month_value: any=[];\n sales_wise_month_headers:any = [];\n sales_month_wise_data:any = [];\n sales_item_value: any;\n grandpurchaseTotal: any=null;\n UOM: any;\n m_freqOfPurchase: any;\n users: any;\n pageId: any;\n pdDetails: any;\n assessedForm:FormGroup;\n FormName:any;\n annual:any = [];\n rawMaterialForm:FormGroup;\n BuissnessForm:FormGroup;\n houseHoldForm:FormGroup;\n activateMarginCalculation:boolean=false\n SaleAmtInwords: any=[];\n marginAmtInwords: any=[];\n purchase_bill_wise: any=[];\n purchase_bill_wise_data:any=[]\n purchase_type:any;\n totalAnnualSale_Item_wise;\n totalAnnualpurchase_Item_wise: any;\n totalAnnualBusiness_details: any;\n totalAnnual_House_hold_details: any;\n sales_type: any=[];\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public fb:FormBuilder,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.pageId = this.navParams.get('pageId');\n // this.getAssessedDetails(); \n switch(this.pageId)\n {\n case 1:\n this.FormName = \"Sales Page\";\n break;\n case 2:\n this.FormName = \"Purchase Page\";\n break;\n case 3:\n this.FormName = \"Business Expenses Page\";\n break;\n case 4:\n this.FormName = \"Household Expenses Page\";\n break;\n default:\n this.FormName = \"Question Page\";\n break;\n }\n this.users = this.aws.getlocale();\n this.assessedForm = this.fb.group(\n {\n sdc_id:[null],\n sales_declared_by_customer:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n margin_per:[null],\n margin_value:[null],\n comments:[null],\n isactive:[1],\n fk_createdby:[this.users],\n \n });\n this.grossProfitForm=this.fb.group({\n calc_type_id:[''],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n mode:['',Validators.compose([Validators.required])],\n margin:[''],\n })\n \n \n \n \n // this.getdropList();\n \n \n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedInfoPage');\n }\n\n\n \n \n\n ionViewDidEnter() {\n \n }\n ionViewCanEnter()\n {\n this.getAssessedDetails()\n }\n\n\n \n \n changeOptions(values: any){\n // console.log('values',values);\n this.grossProfitForm.controls['margin'].setValue('');\n /** if Mode Value is 'No' -> margin value is setted as netmargin and its id - 2\n * Refer => check_sales_type **/\n if(values.mode == 2){\n // console.log('2');\n this.grossProfitForm.controls['margin'].setValue('2');\n }\n }\n\n //PURCHASE DETAILS SUBMIT\n // submitDetails(records: any){\n // if (this.grossProfitForm.invalid) {\n \n // this.toast.pdTriggerappmessage(\"Please Check All Manatory Fields..\");\n // return;\n // }\n // // let datas:any;\n // // datas=records;\n\n // this.qustCat.saveassessedForms('saveAssessedIncomeCalculateMode',records).subscribe(data => {\n // this.toast.pdTriggerappmessage('Saved Successfully.');\n // //this.loadAssessedForms.next('1');\n // }, error => {\n // this.toast.pdTriggerappmessage('Something Wents Wrong Try Again.!');\n // // this.loadAssessedForms.next('1');\n // });\n // } \n \n\n getMarginCalc()\n {\n \n let margin_per = this.assessedForm.controls['margin_per'].value;\n console.log(\"Margin Per\",margin_per)\n let sales_declared_by_customer = this.assessedForm.controls['sales_declared_by_customer'].value;\n if(margin_per !=null && sales_declared_by_customer !=null)\n {\n let value = sales_declared_by_customer * (margin_per/100);\n this.assessedForm.controls['margin_value'].setValue(value);\n }\n }\n\n saveData(answerData)\n {\n let records:any = {};\n answerData.company_id=this.pdDetails.company_id\n \n records ={'records':answerData};\n console.log(records);\n this.qustCat.saveassessedForms('saveAssessedIncomeSalesDeclaredByCustomer',records).subscribe(res=>\n {\n // console.log(res);\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n \n }\n })\n setTimeout(()=>{\n this.getAssessedDetails();\n },1500)\n }\n salesCalculation(values): void {\n if(values.sales_declared_by_customer !=''){this.SaleAmtInwords = this.cons.convertNumberToWords(values.sales_declared_by_customer);}\n if(values.margin_per !='' && values.sales_declared_by_customer !='')\n {\n \n this.assessedForm.controls['margin_value'].setValue((values.sales_declared_by_customer * (values.margin_per/100)).toFixed(2));\n this.marginAmtInwords = this.cons.convertNumberToWords(values.sales_declared_by_customer * (values.margin_per/100));\n }\n }\n \n getAssessedDetails()\n {\n this.sales_item_month_value = [];\n this.sales_month_wise_data = [];\n this.sales_item_value= [];\n this.purchase_bill_wise_data=[];\n let records = {'pd_id':this.pdDetails.pd_id,'company_id':this.pdDetails.company_id};\n console.log(\"company\",this.pdDetails.company_id)\n console.log(\"getAssesed\",records)\n this.qustCat.retiverassessedForm('getAssessedIncome',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let sales_value = res['records'].sales_declared_by_customer[0];\n this.sales_item_value = res['records'].sales_calculated_by_itemwise;\n //SALE ANNUAL TOTAL\n this.totalAnnualSale_Item_wise=this.sales_item_value.map(val=>val.annual_sale_value).reduce((original,value)=>original + Number(value),0)\n console.log(\"this.sales_item\",this.totalAnnualSale_Item_wise);\n this.sales_item_month_value = res['records'].sales_items_by_monthwise;\n this.purchse_details = res['records'].purchase_details; \n //PURCHASE ANNUAL TOTAL\n this.totalAnnualpurchase_Item_wise=this.purchse_details.map(val=>val.annual_purchase_value).reduce((original,value)=>original+Number(value),0)\n this.purchase_bill_wise=res['records'].purchase_billwise\n this.grossprofitCalc = res['records'].gross_profit_calculation_type[0]\n this.purchase_type=this.grossprofitCalc.purchase_type;\n console.log(\"gross\",this.grossprofitCalc);\n this.mode = this.grossprofitCalc.mode;\n\n var lenOfGrossProfit=res['records'].gross_profit_calculation_type.length\n console.log(\"len\",lenOfGrossProfit)\n this.activateMarginCalculation=res['records'].gross_profit_calculation_type[lenOfGrossProfit-1].margin==2 && res['records'].gross_profit_calculation_type[lenOfGrossProfit-1].mode ==2 ?true : false\n console.log(this.activateMarginCalculation);\n var result = this.purchse_details.reduce(function(p, c) {\n \n return p;\n },[]);\n console.log(result);\n\n\n this.businessExpenses_details = res['records'].business_expenses;\n //BUSINESS ANNUAL TOTAL\n this.totalAnnualBusiness_details=this.businessExpenses_details.map(val=>val.annual_expenses_value).reduce((original,value)=>original + Number(value),0);\n this.houseHold_details = res['records'].house_hold_expenses;\n //HOUSEHOLD ANNUAL TOTAL\n this.totalAnnual_House_hold_details=this.houseHold_details.map(val=>val.annual_expense_value).reduce((original,value)=>original+Number(value),0)\n this.busissnessIncome = res['records'].othre_business_income;\n // console.log(this.sales_item_month_value);\n // this.getpurchaseDetails(this.purchse_details);\n \n \n // this.grossProfitForm.controls['mode'].setValue(res['records'].gross)\n\n // const control=this.grossProfitForm['controls']\n // this.grossProfitForm.controls['mode'].setValue(res['records'].gross_profit_calculation_type.mode);\n // this.grossProfitForm.controls['margin'].setValue(res['records'].gross_profit_calculation_type.margin)\n // this.grossProfitForm.controls['calc_type_id'].setValue(res['records'].gross_profit_calculation_type.calc_type_id)\n \n \n \n \n this.sales_item_month_value.forEach((itemElement, itemIndex) => {\n this.sales_type[itemIndex]=itemElement.sales_type\n let expandBodyContent= Object.keys(itemElement.items).map(key => ({ header:key, value: itemElement.items[key] }));\n let listItems: any=[];\n expandBodyContent.forEach((expnadElement, expnadIndex) => {\n let calculateItems = expnadElement.value.reduce((acc, calculate) => acc + Number(calculate.sales_value), 0);\n listItems.push({items:expnadElement, itemsTotal:calculateItems})\n })\n let calculateAllItemsTotal:number=listItems.reduce((racc, rcalculate) => racc + Number(rcalculate.itemsTotal), 0);\n \n let convertYear : number = 12 / listItems.length;\n let footerMessage: any=[];\n footerMessage.push({\n month_message: listItems.length + ' Month Sales : '+ calculateAllItemsTotal,\n month_value:calculateAllItemsTotal,\n year_message: ' Yearly Sales Arrived : '+ calculateAllItemsTotal * convertYear,\n year_value: calculateAllItemsTotal * convertYear,\n })\n this.sales_month_wise_data.push({salesItem:itemElement.sales_item, expandElements:expandBodyContent, footerMessage: footerMessage,simId:itemElement.sim_id,otherSaleItem:itemElement.other_sales_item});\n });\n this.purchase_bill_wise.forEach((itemElement,itemIndex)=>{\n console.log(\"0index\",itemElement.items[0]);\n let result=Object.assign({},...itemElement.items);\n console.log(\"result\",result)\n let expandBodyContent=Object.keys(result).map(key=>({header:key,value:result[key]}));\n console.log(\"expanBody\",expandBodyContent);\n let listItems:any=[];\n expandBodyContent.forEach((expandElement,expandIndex)=>{\n let calculateItems=expandElement.value.reduce((acc,calculate)=>acc + Number(calculate.purchase_value),0)\n listItems.push({items:expandElement,itemsTotal:calculateItems})\n })\n let calculateAllItemsTotal:number=listItems.reduce((va,rcalc)=>va+Number(rcalc.itemsTotal),0);\n let convertYear : number = 12 / listItems.length;\n let footerMessage: any=[];\n footerMessage.push({\n month_message: listItems.length + ' Month Sales : '+ calculateAllItemsTotal,\n month_value:calculateAllItemsTotal,\n year_message: ' Yearly Sales Arrived : '+ calculateAllItemsTotal * convertYear,\n year_value: calculateAllItemsTotal * convertYear,\n })\n this.purchase_bill_wise_data.push({purchaseItem:itemElement.purchase_item,expandElements:expandBodyContent,footerMessage:footerMessage,pbw_id:itemElement.pbw_id,otherPurchaseItem:itemElement.other_purchase_item});\n })\n console.log(\"val purchase0\",this.purchase_bill_wise_data)\n\n\n console.log(\"value\",this.sales_month_wise_data);\n if(sales_value!==undefined){\n this.assessedForm.controls['sdc_id'].setValue(sales_value.sdc_id);\n this.assessedForm.controls['sales_declared_by_customer'].setValue(sales_value.sales_declared_by_customer);\n this.assessedForm.controls['margin_value'].setValue(sales_value.margin_value);\n this.assessedForm.controls['comments'].setValue(sales_value.comments)\n this.assessedForm.controls['margin_per'].setValue(sales_value.margin_per);\n if(sales_value.sales_declared_by_customer != null){\n this.SaleAmtInwords=this.cons.convertNumberToWords(sales_value.sales_declared_by_customer)\n }\n if(sales_value.margin_value != null){\n this.marginAmtInwords=this.cons.convertNumberToWords(sales_value.margin_value)\n }\n \n }\n \n }\n })\n\n }\n grossProfitWithData(data:any){\n return this.fb.group({\n calc_type_id:[data.calc_type_id],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[data.company_id],\n mode:[data.mode],\n margin:[data.margin],\n})\n }\n /**\n * Add Assessed Forms\n */\n\n AddAssessedForm()\n {\n this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':null,'margin_calculation_status':this.activateMarginCalculation}); \n \n }\n\n editDetails(salesCal)\n {\n let salesData = this.sales_item_value.filter(sal=>sal.sci_id==salesCal);\n console.log(salesData);\n // this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':salesData,'grossprofit':this.grossprofitCalc}); \n this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':salesData,'margin_calculation_status':this.activateMarginCalculation}); \n \n }\n editAllDetails(AllsalesData)\n {\n this.navCtrl.push(PdQuestionAssessedSalesPage,{'pdDetails':this.pdDetails,'sales':AllsalesData,'margin_calculation_status':this.activateMarginCalculation}); \n }\n\n /**Assessed Daily Form Details */\n\n AddAssessedDailyForm()\n {\n this.navCtrl.push(PdQuestionAssessedDailySalesPage,{'pdDetails':this.pdDetails,'salesDaily':null,'margin_calculation_status':this.activateMarginCalculation})\n }\n editAssessedDailyForm(simId)\n {\n let dailySaleDetails = this.sales_item_month_value.filter(ass=>ass.sim_id==simId);\n console.log(dailySaleDetails);\n this.navCtrl.push(PdQuestionAssessedDailySalesPage,{'pdDetails':this.pdDetails,'salesDaily':dailySaleDetails,'margin_calculation_status':this.activateMarginCalculation})\n \n }\n allEditSalesDailyWise(values){\n this.navCtrl.push(PdQuestionAssessedDailySalesPage,{'pdDetails':this.pdDetails,'salesDaily':values,'margin_calculation_status':this.activateMarginCalculation})\n }\n\n /**purchase Details Forms */\n AddPurchaseForm()\n {\n this.navCtrl.push(PdQuestionAssessedPurchasePage,{'pdDetails':this.pdDetails,'purchase':null}); \n \n }\n\n editPurchaseDetails(purchaseCal)\n {\n let salesData = this.purchse_details.filter(sal=>sal.purchase_id==purchaseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedPurchasePage,{'pdDetails':this.pdDetails,'purchase':salesData}); \n \n }\n editPurchaseAllDetails(AllpurchaseData)\n {\n console.log('260',AllpurchaseData);\n this.navCtrl.push(PdQuestionAssessedPurchasePage,{'pdDetails':this.pdDetails,'purchase':AllpurchaseData}); \n }\n AddPurchaseBillWiseForm(){\n this.navCtrl.push(PdQuestionAssessedDailyPurchasePage,{'pdDetails':this.pdDetails,'purchaseDaily':null})\n }\n \n alleditPurchaseBillWise(all_purchase_daily){\n this.navCtrl.push(PdQuestionAssessedDailyPurchasePage,{'pdDetails':this.pdDetails,'purchaseDaily':all_purchase_daily})\n }\n editPurchaseBillWise(daily_purchase){\n let single_purchase=this.purchase_bill_wise.filter(val=>val.pbw_id==daily_purchase)\n this.navCtrl.push(PdQuestionAssessedDailyPurchasePage,{'pdDetails':this.pdDetails,'purchaseDaily':single_purchase})\n }\n\n /**Business Expense */\n AddExpenseForm()\n {\n this.navCtrl.push(PdQuestionAssessedBusinessPage,{'pdDetails':this.pdDetails,'expense':null}); \n \n }\n\n editExpenseDetails(expenseCal)\n {\n let salesData = this.businessExpenses_details.filter(sal=>sal.pd_expense_id==expenseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedBusinessPage,{'pdDetails':this.pdDetails,'expense':salesData}); \n \n }\n editExpenseAllDetails(AllexpenseData)\n {\n this.navCtrl.push(PdQuestionAssessedBusinessPage,{'pdDetails':this.pdDetails,'expense':AllexpenseData}); \n }\n \n\n /** Household Expenses Details */\n AddHouseExpenseForm()\n {\n this.navCtrl.push(PdQuestionAssessedHouseholdPage,{'pdDetails':this.pdDetails,'expense':null}); \n \n }\n\n editHouseExpenseDetails(expenseCal)\n {\n let salesData = this.houseHold_details.filter(sal=>sal.household_expense_id==expenseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedHouseholdPage,{'pdDetails':this.pdDetails,'expense':salesData}); \n \n }\n editHouseExpenseAllDetails(AllExpenseData)\n {\n this.navCtrl.push(PdQuestionAssessedHouseholdPage,{'pdDetails':this.pdDetails,'expense':AllExpenseData}); \n }\n\n /**\n * Income Details\n */\n AddIncomeForm()\n {\n this.navCtrl.push(PdQuestionAssessedBusinessIncomePage,{'pdDetails':this.pdDetails,'income':null}); \n \n }\n\n editIncomeDetails(expenseCal)\n {\n let salesData = this.busissnessIncome.filter(sal=>sal.pd_business_income_id==expenseCal);\n console.log(salesData);\n this.navCtrl.push(PdQuestionAssessedBusinessIncomePage,{'pdDetails':this.pdDetails,'income':salesData}); \n \n }\n editIncomeAllDetails(AllexpenseData)\n {\n this.navCtrl.push(PdQuestionAssessedBusinessIncomePage,{'pdDetails':this.pdDetails,'income':AllexpenseData}); \n }\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-info/pd-question-assessed-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {ConstantsProvider} from '../../../providers/constants/constants';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n/**\n * Generated class for the PdQuestionAssessedSalesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-sales',\n templateUrl: 'pd-question-assessed-sales.html',\n})\nexport class PdQuestionAssessedSalesPage {\n\n grossprofitCalc: any;\n salesData: any =[];\n annual: any=[];\n grandTotal: any;\n UOM: any;\n m_freqOfPurchase: any;\n assessedForm: FormGroup;\n users: any;\n FormId: any;\n pdDetails: any;\n annualSaleAmtInwords: any=[];\n marginAmtInwords: any=[];\n marginFinalAmtInwords:any =[];\n ratePerUnitAmtInwords: any=[];\n margin_calculation_status:any=[]\n check_type:any=[{'type_id':\"1\",'type_name':'Quantity and Rate Information'},{'type_id':\"2\",'type_name':'Value Information'}]\n product_and_services: any=[];\n complete_status: boolean = false;\n UOMData:any=[]\n protected _onDestroy = new Subject();\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public fb:FormBuilder,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n //this.grossprofitCalc = this.navParams.get('grossprofit');\n this.margin_calculation_status=this.navParams.get('margin_calculation_status');\n this.users = this.aws.getlocale();\n this.assessedForm = this.fb.group(\n {\n \n salesCalItemwise:this.fb.array([]),\n });\n this.salesData = this.navParams.get('sales');\n if(this.salesData!=null)\n {\n this.getSalesItemData(this.salesData);\n }else\n {\n this.addSalesCal();\n }\n // this.addSalesCal();\n this.getdropList();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedSalesPage');\n }\n\n getdropList()\n {\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n this.qustCat.getcommondrop('UOM').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.UOM = res['records'].filter(uom=>uom.isactive==1);\n this.UOMData=this.UOM.slice();\n }\n });\n\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(res=>{\n if(res.dataStatus == true){\n let datas=res.records\n let api=Object.keys(datas.type_of_activity).map(function(key){\n return datas.type_of_activity[key];\n })\n if(api.length>0){\n api.forEach(val=>{\n if(val.type_of_activity_id == 2){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 3){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 4){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 5){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n })\n }\n console.log(\"before\",this.product_and_services)\n this.product_and_services = [].concat.apply([], this.product_and_services);\n console.log(\"After\",this.product_and_services)\n }\n })\n }\n\n createSalesCal()\n {\n return this.fb.group(\n {\n sci_id:[null],\n \n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n sales_item:[null,Validators.compose([Validators.required])],\n other_sales_item:[null],\n sales_qty:[null,Validators.compose([Validators.required])],\n sales_type:[\"1\"],\n fk_uom_id:[null,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[null],\n rate_per_unit:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_sale_value:[null],\n margin_per:[null],\n margin_per_uom:[null],\n margin_final_value:[null],\n comments:[null]\n });\n }\n\n addSalesCal()\n {\n if(this.assessedForm.valid){\n const control = this.assessedForm.get('salesCalItemwise') as FormArray;\n control.push(this.createSalesCal());\n }else\n {\n this.toast.pdTriggerappmessage('Enter the all fields');\n }\n }\n \n removeSalesCal(i,item)\n {\n console.log(\"value\",item)\n this.annual.splice(i,1);\n \n // this.annual[i].spl\n this.grandTotal = this.annual.reduce((a,b)=> a+b,0); \n console.log(this.grandTotal);\n console.log(\"pd\",this.pdDetails);\n let deleteRecords:any;\n if(item.sci_id !=null && item.fk_pd_id !=null){\n deleteRecords=[{\n sci_id:item.sci_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeSalesCalculatedByItemwise',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n const control = this.assessedForm.get('salesCalItemwise') as FormArray;\n if(control.length==1)\n {\n control.removeAt(i);\n this.addSalesCal(); \n } else{\n control.removeAt(i);\n }\n }\n /**\n * frequency Type \n * 1.Weekly no need\n * 2.Daily 250\n * 3.Yearly \n * 4.Hourly no need\n * 5.Monthly 12\n * 6.none\n * 7.none\n * 8.none\n */\n salecalculat(indexVal,values)\n {\n // console.log(\"Det\",details);\n // let frequencyId = details.value.fk_frequency_id;\n // let salesQty = details.value.sales_qty;\n // let UOM = details.value.rate_per_unit;\n // // console.log(frequencyId,salesQty,UOM,index);\n // // console.log(frequencyId);\n // let annual\n // if(salesQty!=null && UOM!=null){\n // if(frequencyId==1)\n // {\n\n // }else if(frequencyId==2)\n // {\n // annual = (salesQty*UOM*250);\n // this.annual[index] = annual;\n // details.controls['annual_sale_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (salesQty*UOM);\n // this.annual[index] = annual;\n // details.controls['annual_sale_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n\n // }else if(frequencyId==5)\n // {\n // annual = (salesQty*UOM*12);\n // this.annual[index] = annual;\n // details.controls['annual_sale_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n\n // }else if(frequencyId==7)\n // {\n\n // }else if(frequencyId==8)\n // {\n\n // }else\n // {\n\n // }\n // this.grandTotal = this.annual.reduce((a,b)=> a+b,0); \n // }else\n // {\n // // this.toast.pdTriggerappmessage('Enter the Sales Quantity and UOM');\n // }\n \n \n \n \n // console.log(this.annual);\n\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n if(values.rate_per_unit!=''&& values.rate_per_unit != null ){\n console.log(\"Rate Per value\",values.rate_per_unit);\n this.inWords(values.rate_per_unit,indexVal,4)\n }\n \n if(values.sales_qty!='' && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.fk_frequency_id != null) {\n console.log(\"Frequency\",values.fk_frequency_id);\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n let AnnualSalesValue = parseInt(values.sales_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor)\n control.controls[indexVal].controls['annual_sale_value'].setValue(parseInt(values.sales_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor));\n this.inWords(AnnualSalesValue,indexVal,1)\n \n }\n else {\n control.controls[indexVal].controls['annual_sale_value'].setValue('');\n }\n if(this.margin_calculation_status===true) {\n values.margin_per_uom=='' && values.margin_per!='' ? this.salesMarginPerCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]): values.margin_per_uom!='' && values.margin_per=='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) : values.margin_per_uom!='' && values.margin_per!='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) :this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]);\n }\n }\n salesCalculation(indexVal: number,values: any): void {\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n if(values.sales_type==\"1\" && values.sales_qty!='' && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.fk_frequency_id != null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_sale_value'].setValue((parseFloat(values.sales_qty) * parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.sales_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,1)\n }\n else if(values.sales_type==\"2\" && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.fk_frequency_id != null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_sale_value'].setValue((parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,1)\n }\n else {\n control.controls[indexVal].controls['annual_sale_value'].setValue('');\n }\n if(this.margin_calculation_status===true) {\n values.margin_per_uom=='' && values.margin_per!='' ? this.salesMarginPerCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]): values.margin_per_uom!='' && values.margin_per=='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) : values.margin_per_uom!='' && values.margin_per!='' ? this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]) :this.salesMarginAmtCalculation(indexVal,this.assessedForm.value.salesCalItemwise[indexVal]);\n }\n }\n \n salesMarginPerCalculation(indexVal: number,values: any): void {\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n control.controls[indexVal].controls['margin_per_uom'].setValue('');\n if(values.margin_per!='' && values.annual_sale_value!='' && values.margin_per!=null && values.annual_sale_value!=null) {\n control.controls[indexVal].controls['margin_final_value'].setValue((parseFloat(values.annual_sale_value) * (parseFloat(values.margin_per)/100)).toFixed(2));\n this.inWords(parseInt(values.annual_sale_value) * (parseInt(values.margin_per)/100),indexVal,3)\n }\n else {\n control.controls[indexVal].controls['margin_final_value'].setValue('');\n }\n }\n salesMarginAmtCalculation(indexVal: number,values: any): void {\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n control.controls[indexVal].controls['margin_per'].setValue('');\n \n if(values.sales_type==\"1\" && values.margin_per_uom!='' && values.margin_per_uom !=null && values.sales_qty!='' && values.sales_qty!=null && values.fk_frequency_id!='' && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n let Type1CalculatedValue = parseFloat(values.sales_qty) * parseFloat(values.margin_per_uom) * parseFloat(filterFrequencyValue[0].mutiple_factor);\n control.controls[indexVal].controls['margin_final_value'].setValue(Type1CalculatedValue.toFixed(2));\n this.inWords(Type1CalculatedValue.toFixed(2),indexVal,3)\n }\n else if(values.sales_type==\"2\" && values.margin_per_uom!='' && values.margin_per_uom!=null && values.rate_per_unit!='' && values.rate_per_unit!=null) {\n let Type2CalculatedValue = parseFloat(values.rate_per_unit) * parseFloat(values.margin_per_uom);\n control.controls[indexVal].controls['margin_final_value'].setValue(Type2CalculatedValue.toFixed(2));\n this.inWords(Type2CalculatedValue.toFixed(2),indexVal,3)\n }\n else {\n control.controls[indexVal].controls['margin_final_value'].setValue('');\n }\n }\n /*OLD NOT USED CALCULATION*/\n getSalesCalc(indexVal,values)\n {\n // // console.log(details);\n // let margin_per = details.value.margin_per;\n // let margin_amount = details.value.margin_per_uom;\n // let annual_sale_value = details.value.annual_sale_value;\n // let sales_qty = details.value.sales_qty;\n // // console.log(sales_qty,margin_amount);\n // let value:any = '';\n // if(margin_per !=null || margin_amount !=null){\n // if(margin_per !=null)\n // {\n // value = +annual_sale_value * (+margin_per/100);\n // }else\n // {\n // console.log('else');\n // value = +sales_qty* +margin_amount;\n // }\n // console.log(value);\n // details.controls['margin_final_value'].setValue(value);\n // }\n let control:any = this.assessedForm.controls['salesCalItemwise'];\n control.controls[indexVal].controls['margin_per_uom'].setValue('');\n if(values.margin_per!='' && values.annual_sale_value!='' && values.margin_per!=null && values.annual_sale_value!=null) {\n control.controls[indexVal].controls['margin_final_value'].setValue(parseInt(values.annual_sale_value) * (parseInt(values.margin_per)/100));\n this.inWords(parseInt(values.annual_sale_value) * (parseInt(values.margin_per)/100),indexVal,3)\n }\n else {\n control.controls[indexVal].controls['margin_final_value'].setValue('');\n }\n }\n \n inWords(value,inx,flag){\n switch(flag){\n case 1 : \n this.annualSaleAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n case 2 : \n this.marginAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n case 3 : \n this.marginFinalAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n case 4 : \n console.log(\"Rate\",value);\n this.ratePerUnitAmtInwords[inx] = this.cons.convertNumberToWords(value);\n break;\n default:break;}\n }\n saveData(answerData)\n {\n \n if(this.assessedForm.valid){\n answerData.salesCalItemwise.forEach(parVal=>{\n delete parVal.uomSearch\n });\n\n let records = {'records':answerData.salesCalItemwise};\n console.log(records);\n this.qustCat.saveassessedForms('saveAssessedIncomeSalesCalculatedByItemwise',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }\nelse{\n console.log(answerData);\n\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields\")\n}\n}\n getSalesItemData(salesData)\n {\n console.log(salesData);\n const control = this.assessedForm.get('salesCalItemwise') as FormArray;\n\n salesData.forEach((sale,index)=>{\n \n this.annual[index] = sale.annual_sale_value\n control.push(this.createSaleswithData(sale));\n if(sale.rate_per_unit != null){\n this.ratePerUnitAmtInwords[index]=this.cons.convertNumberToWords(sale.rate_per_unit)\n }\n if(sale.annual_sale_value != null){\n this.annualSaleAmtInwords[index]=this.cons.convertNumberToWords(sale.annual_sale_value)\n }\n if(sale.margin_per_uom != null){\n this.marginAmtInwords[index]=this.cons.convertNumberToWords(sale.margin_per_uom)\n }\n if(sale.margin_final_value != null){\n this.marginFinalAmtInwords[index]=this.cons.convertNumberToWords(sale.margin_final_value)\n }\n this.changeOptions(index,sale.sales_type)\n })\n // this.assessedForm.controls['salesCalItemwise'].setValue(salesData);\n // console.log(control);\n this.grandTotal = this.annual.reduce((a,b)=> a+b,0); \n }\n changeOptions(indexVal: any,event: any): void{\n console.log(\"ai\")\n let control: any = this.assessedForm.controls['salesCalItemwise'];\n if(event.value==\"1\"){\n control.controls[indexVal].controls['fk_frequency_id'].setValue(\"\");\n control.controls[indexVal].controls['fk_frequency_id'].clearValidators();\n control.controls[indexVal].controls['fk_frequency_id'].updateValueAndValidity();\n\n control.controls[indexVal].controls['annual_sale_value'].setValue(\"\");\n control.controls[indexVal].controls['annual_sale_value'].clearValidators();\n control.controls[indexVal].controls['annual_sale_value'].updateValueAndValidity();\n\n control.controls[indexVal].controls['rate_per_unit'].setValue(\"\");\n control.controls[indexVal].controls['rate_per_unit'].clearValidators();\n control.controls[indexVal].controls['rate_per_unit'].updateValueAndValidity();\n\n control.controls[indexVal].controls['sales_qty'].setValidators([Validators.required]);\n control.controls[indexVal].controls['sales_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValidators([Validators.required]);\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n this.salesCalculation(indexVal,control.controls[indexVal].value);\n }\n else if(event.value==\"2\"){\n control.controls[indexVal].controls['sales_qty'].setValue(\"\");\n control.controls[indexVal].controls['sales_qty'].clearValidators();\n control.controls[indexVal].controls['sales_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValue(\"\");\n control.controls[indexVal].controls['fk_uom_id'].clearValidators();\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n \n control.controls[indexVal].controls['margin_per_uom'].setValue(\"\");\n \n this.salesCalculation(indexVal,control.controls[indexVal].value);\n }\n }\n \n\n\n createSaleswithData(data)\n {\n return this.fb.group(\n {\n sci_id:[data.sci_id],\n company_id:[this.pdDetails.company_id],\n fk_pd_id:[this.pdDetails.pd_id],\n sales_item:[data.sales_item,Validators.compose([Validators.required])],\n other_sales_item:[data.other_sales_item],\n sales_type:[data.sales_type,Validators.compose([Validators.required])],\n sales_qty:[data.sales_qty,Validators.compose([Validators.required])],\n fk_uom_id:[data.fk_uom_id,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[data.uom_other],\n rate_per_unit:[data.rate_per_unit,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_sale_value:[data.annual_sale_value],\n margin_per:[data.margin_per],\n margin_per_uom:[data.margin_per_uom],\n margin_final_value:[data.margin_final_value],\n comments:[data.comments]\n });\n }\n\n searchUOM(control:any,i:number){ \n control.controls['uomSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n let val = control.controls['uomSearch'].value;\n if (!this.UOM) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n \n this.UOMData=this.UOM.slice()\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.UOMData=this.UOM.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-sales/pd-question-assessed-sales.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants';\nimport {DatePipe} from '@angular/common'\n\n/**\n * Generated class for the PdQuestionAssessedDailySalesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-daily-sales',\n templateUrl: 'pd-question-assessed-daily-sales.html',\n})\nexport class PdQuestionAssessedDailySalesPage {\n pipe = new DatePipe('en-US');\n\n currentDate: string;\n grossprofitCalc: any;\n salesDaily: any;\n users: any;\n FormId: any;\n pdDetails: any;\n salesDailyForm: FormGroup;\n margin_calculation_status:any\n Value: any=[];\n marginAmtInwords: any=[];\n frequencyData: any=[];\n freqAmtInwords: any=[];\n check_type:any=[{'type_id':\"1\",'type_name':'Date Information'},{'type_id':\"2\",'type_name':'Frequency Information'}]\n product_and_services: any=[];\n maxDate:any;\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams, public aws: AwsServiceProvider, public qustCat: QuestionCategoryProvider, public toast: ToastProvider, public fb: FormBuilder,public constant:ConstantsProvider) {\n // this.maxDate=new Date()\n var today=new Date\n console.log(\"today\",today)\n let date=today.getDate()< 10 ? (\"0\"+(today.getDate())) : today.getDate()\n let month=today.getMonth() < 10 ? (\"0\"+(today.getMonth()+1)) : (today.getMonth()+1)\n this.maxDate = today.getFullYear() + '-' + month + '-' + date;\n console.log(\"max\",this.maxDate)\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n this.salesDaily = this.navParams.get('salesDaily');\n // this.grossprofitCalc = this.navParams.get('grossprofit');\n this.margin_calculation_status=this.navParams.get('margin_calculation_status');\n this.users = this.aws.getlocale();\n this.currentDate = constant.getcurrentDate().replace(\"T00:00\",'');\n \n this.salesDailyForm = this.fb.group(\n {\n sales_product: this.fb.array([]),\n })\n if (this.salesDaily != null) {\n this.getDailySalesData(this.salesDaily);\n } else {\n this.adddailySalaesProduct();\n\n }\n this.getDropDown()\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedDailySalesPage');\n }\n\n getDropDown(){\n this.qustCat.getcommondrop('FREQUENCY').subscribe(data=>{\n this.frequencyData=data['records'].filter(val=>val.isactive == 1)\n })\n this.qustCat.getTypeofActivityForSuppliedInfoForm(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(res=>{\n if(res.dataStatus == true){\n let datas=res.records\n let api=Object.keys(datas.type_of_activity).map(function(key){\n return datas.type_of_activity[key];\n })\n if(api.length>0){\n api.forEach(val=>{\n if(val.type_of_activity_id == 2){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 3){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 4){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n if(val.type_of_activity_id == 5){\n if(val.prodcuts){\n this.product_and_services.push(val.prodcuts)\n }\n }\n })\n }\n console.log(\"before\",this.product_and_services)\n this.product_and_services = [].concat.apply([], this.product_and_services);\n console.log(\"After\",this.product_and_services)\n }\n })\n }\n // change options for either Date/Frequency Information\nchangeOptions(indexVal: any,event: any): void{\n console.log(\"event\",event)\n let control: any = this.salesDailyForm.controls['sales_product'];\n console.log(\"control\",control)\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n if(event==\"1\"){\n for (let i = 0; i < innercontrol.value.length-1; i++) {\n innercontrol.removeAt(i);\n }\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].setValidators([Validators.required]);\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].clearValidators();\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].updateValueAndValidity();\n\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].clearValidators();\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].updateValueAndValidity();\n\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n\n // control.controls[indexVal].controls['comments'].setValue(\"\");\n // control.controls[indexVal].controls['comments'].clearValidators();\n //control.controls[indexVal].controls['comments'].updateValueAndValidity();\n }\n else if(event==\"2\"){\n for (let i = 0; i < innercontrol.value.length-1; i++) {\n innercontrol.removeAt(i);\n }\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].clearValidators();\n innercontrol.controls[innercontrol.value.length-1].controls['sales_date'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].setValidators([Validators.required]);\n innercontrol.controls[innercontrol.value.length-1].controls['fk_frequency_id'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].setValue(\"\");\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].setValidators([Validators.required]);\n innercontrol.controls[innercontrol.value.length-1].controls['frequency_value'].updateValueAndValidity();\n \n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n\n control.controls[indexVal].controls['comments'].setValue(\"\");\n // control.controls[indexVal].controls['comments'].setValidators([Validators.required]);\n // control.controls[indexVal].controls['comments'].updateValueAndValidity();\n\n }\n control.controls[indexVal].controls['margin_per'].setValue(\"\");\n control.controls[indexVal].controls['margin_value'].setValue(\"\");\n\n }\n createdailysalesProduct() {\n return this.fb.group(\n {\n sim_id: [null],\n sales_item: [null, Validators.compose([Validators.required])],\n other_sales_item:[null],\n sales_type:[\"1\"],\n child: this.fb.array([]),\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n margin_per: [null],\n margin_value: [null],\n comments:[null],\n fk_createdby: [this.users],\n isactive: [true],\n });\n }\n createdailyChildSaleProduct() {\n return this.fb.group({\n simc_id: [null],\n fk_sim_id: [null],\n sales_date: [null],\n sales_value: [null],\n fk_frequency_id:[null],\n frequency_value:[null],\n isactive: [true],\n })\n }\n temparr = [];\n tempdate = [];\n getSalesCalc(subchild,child,key) {\n \n let saledate: any = new Date(subchild.value.sales_date).getMonth() + 1;\n let totalitemmargin = child.value.margin_per;\n \n if (totalitemmargin != null && subchild.value.sales_value !=null) {\n let loopAccess = false;\n let loopindex = 0;\n if (this.tempdate.length != 0) {\n for (var i = 0; i < this.tempdate.length; i++) {\n\n if (this.tempdate[i].month == saledate) {\n loopAccess = true;\n loopindex = i;\n }\n }\n\n if (loopAccess) {\n\n \n this.tempdate[loopindex].value = this.tempdate[loopindex].value + subchild.value.sales_value;\n this.temparr.push(subchild.value.sales_value);\n loopAccess = false;\n loopindex = 0;\n \n } else {\n \n this.tempdate.push({ 'month': saledate, 'value': subchild.value.sales_value }); this.temparr.push(subchild.value.sales_value);\n }\n\n\n } else {\n \n this.tempdate.push({ 'month': saledate, 'value': subchild.value.sales_value });\n this.temparr.push(subchild.value.sales_value);\n }\n\n let totalMonth = 12 / this.tempdate.length;\n \n let tempgrandTotal = this.tempdate.reduce((a, b) => (+a + +b.value), 0);\n \n // let value = tempgrandTotal * (totalitemmargin / 100);\n let value = tempgrandTotal*totalMonth ;\n \n let grandValue = value * (totalitemmargin / 100);\n child.controls['margin_value'].setValue(grandValue);\n \n }\n \n }\n salesCalculation(indexVal: number,values: any): void {\n console.log(indexVal,values)\n console.log(\"Margin\",this.margin_calculation_status);\n if(this.margin_calculation_status===true && values.sales_type==\"1\"){\n console.log(\"value == 1\")\n let control:any = this.salesDailyForm.controls['sales_product'];\n if(values.child.length>0 && values.margin_per!='' && values.margin_per!=null){\n // let transformData = values.child.filter(val=>val.sales_date!='' && val.sales_date!=null && val.sales_date!=undefined && val.sales_value!='' && val.isactive===true).map(mval=>{\n let transformData = values.child.filter(val=>val.sales_date!='' && val.sales_date!=null && val.sales_date!=undefined && val.sales_value!='' && val.isactive==true).map(mval=>{\n mval.custum_date = this.pipe.transform(mval.sales_date, 'yyyy-MM');\n return mval;\n });\n console.log(\"transform\",transformData)\n if(transformData.length>0) {\n let getUniqueMonthCounts = transformData.map(val=>val.custum_date)\n .filter((fVal,fIndex,fArray)=>{\n return fIndex === fArray.indexOf(fVal);\n });\n let getTotalValueCounts = transformData.map(val=>val.sales_value)\n .reduce((sum, curr) => parseFloat(sum) + parseFloat(curr));\n console.log(\"value\",(parseFloat(getTotalValueCounts) * (parseFloat(values.margin_per)/100) * (12 / parseFloat(getUniqueMonthCounts.length))).toFixed(2))\n console.log(control.controls[indexVal])\n control.controls[indexVal].controls['margin_value'].setValue((parseFloat(getTotalValueCounts) * (parseFloat(values.margin_per)/100) * (12 / parseFloat(getUniqueMonthCounts.length))).toFixed(2));\n this.inWords(parseInt(getTotalValueCounts) * (parseInt(values.margin_per)/100) * (12 / parseInt(getUniqueMonthCounts.length)),indexVal,2)\n }\n else{\n console.log(\"else 1\")\n control.controls[indexVal].controls['margin_value'].setValue(\"\");\n \n }\n console.log(\"else 1\")\n }\n else {\n console.log(\"else 2\")\n control.controls[indexVal].controls['margin_value'].setValue('');\n \n }\n }\n else if(this.margin_calculation_status===true && values.sales_type==\"2\"){\n let control:any = this.salesDailyForm.controls['sales_product'];\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n \n if(values.child[values.child.length-1].fk_frequency_id!='' && values.child[values.child.length-1].frequency_value!='' && values.child[values.child.length-1].fk_frequency_id!=null && values.child[values.child.length-1].frequency_value!=null){\n let filterFrequencyValue: any = this.frequencyData.filter(val =>val.frequency_id==values.child[values.child.length-1].fk_frequency_id);\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue((parseFloat(filterFrequencyValue[0].mutiple_factor) * parseFloat(values.child[values.child.length-1].frequency_value)).toFixed(2));\n this.inWords(parseInt(filterFrequencyValue[0].mutiple_factor) * parseInt(values.child[values.child.length-1].frequency_value),innercontrol.value.length-1,1)\n \n let getTotalValueCounts =parseFloat(filterFrequencyValue[0].mutiple_factor) * parseFloat(values.child[values.child.length-1].frequency_value)\n values.margin_per!='' ? control.controls[indexVal].controls['margin_value'].setValue( (getTotalValueCounts * (parseFloat(values.margin_per)/100)).toFixed(2)) : '';\n values.margin_per!='' ? this.inWords(getTotalValueCounts * (parseInt(values.margin_per)/100),indexVal,2) : ''\n }\n else {\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n control.controls[indexVal].controls['margin_value'].setValue(\"\");\n \n }\n }\n else if(this.margin_calculation_status===false && values.sales_type==\"2\"){\n let control:any = this.salesDailyForm.controls['sales_product'];\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n \n if(values.child[values.child.length-1].fk_frequency_id!='' && values.child[values.child.length-1].frequency_value!='' && values.child[values.child.length-1].fk_frequency_id!=null && values.child[values.child.length-1].frequency_value!=null){\n let filterFrequencyValue: any = this.frequencyData.filter(val =>val.frequency_id==values.child[values.child.length-1].fk_frequency_id);\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue((parseFloat(filterFrequencyValue[0].mutiple_factor) * parseFloat(values.child[values.child.length-1].frequency_value)).toFixed(2));\n this.inWords(parseInt(filterFrequencyValue[0].mutiple_factor) * parseInt(values.child[values.child.length-1].frequency_value),innercontrol.value.length-1,1)\n }\n else {\n innercontrol.controls[innercontrol.value.length-1].controls['sales_value'].setValue(\"\");\n }\n }\n \n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.constant.convertNumberToWords(e);\n break;\n case 2 : \n this.marginAmtInwords[c] = this.constant.convertNumberToWords(e);\n break;\n case 3:\n this.freqAmtInwords[c]=this.constant.convertNumberToWords(e)\n default : break;\n }\n }\n adddailySalaesProduct() {\n this.tempdate = [];\n if (this.salesDailyForm.valid) {\n const control = this.salesDailyForm.get('sales_product') as FormArray;\n control.push(this.createdailysalesProduct());\n \n this.adddailyChildSaleProduct(control.length - 1);\n }\n }\n adddailyChildSaleProduct(index) {\n // if(this.salesDailyForm.valid){\n const control = (this.salesDailyForm.get('sales_product')).at(index).get('child') as FormArray;\n\n control.push(this.createdailyChildSaleProduct());\n // }\n }\n\n deletedailySalesProduct(index,item) {\n console.log(\"fk_pd_id\",item);\n this.tempdate.slice(index,1);\n let deleteRecords:any;\n \n if(item.fk_pd_id !=null){\n deleteRecords=[{\n sim_id:item.sim_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeMonthwiseItems',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n \n const control = (this.salesDailyForm.controls['sales_product']) as FormArray;\n if (control.length == 1) {\n this.salesDailyForm.controls['sales_product'].reset();\n } else {\n control.removeAt(index);\n }\n }\n\n deletedailyChildSaleProduct(saleIndex, saleChildIndex,childVal) {\n let control = this.salesDailyForm.controls['sales_product'];\n control=control.controls[saleIndex].get('child') as FormArray\n if(childVal == '' || childVal == null){\n control.removeAt(saleChildIndex)\n }\n else{\n console.log(\"control\",control.controls[saleChildIndex])\n control.controls[saleChildIndex].get('isactive').setValue(false);\n }\n\n // this.tempdate = [];\n // const control = (this.salesDailyForm.controls['sales_product']).at(saleIndex).get('child') as FormArray;\n // if(control.length==1)\n // {\n // control.removeAt(saleChildIndex);\n // this.adddailyChildSaleProduct(saleIndex); \n // }else{\n // control.removeAt(saleChildIndex);\n // }\n }\n saveData(answerData) {\n answerData.sales_product.forEach(parVal=>{\n parVal.child.forEach(childVal=>{\n if(childVal['custum_date']){\n delete childVal['custum_date'];\n }\n if(childVal['sales_date'])\n childVal['sales_date']=this.pipe.transform(childVal['sales_date'], 'yyyy-MM-dd');\n });\n });\n if (this.salesDailyForm.valid) {\n let records = { 'records': answerData.sales_product };\n console.log(\"answer Data\",records)\n \n this.qustCat.saveassessedForms('saveAssessedIncomeMonthwiseItems', records).subscribe(res => {\n if (res['dataStatus'] == true) {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n });\n }\n else{\n console.log(\"pd\",this.salesDailyForm);\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields\")\n }\n\n\n }\n getDailySalesData(dailySalesData) {\n console.log(\"daily sale\",dailySalesData);\n \n const control = this.salesDailyForm.get('sales_product') as FormArray;\n let control1: any = this.salesDailyForm.controls['sales_product'];\n let salesChildControl;\n let salesChildControlarr = [];\n dailySalesData.forEach((val, index) => {\n \n if(val.margin_per != null && val.margin_per != ''){\n console.log(\"c\",parseInt(val.margin_per).toFixed(2))\n val.margin_per=parseInt(val.margin_per).toFixed(2)\n }\n if(val.margin_value != null && val.margin_value != ''){\n val.margin_value=parseInt(val.margin_value).toFixed(2)\n }\n control.push(this.dailySalesWithData(val));\n if(val.margin_value != null){\n this.marginAmtInwords[index]=this.constant.convertNumberToWords(val.margin_value)\n }\n salesChildControl = (this.salesDailyForm.controls['sales_product']).at(index).get('child') as FormArray;\n\n salesChildControlarr[index] = Object.keys(val['items']).map(key => val['items'][key]);\n\n salesChildControlarr[index].forEach((vals, i) => {\n vals.forEach((item, key) => {\n console.log(\"item\",item,'key',key)\n if(val.sales_type != 2){\n let saleDate = new Date(item.sales_date);\n let date=saleDate.getDate()< 10 ? (\"0\"+(saleDate.getDate())) : saleDate.getDate()\n let month=saleDate.getMonth() < 10 ? (\"0\"+(saleDate.getMonth()+1)) : (saleDate.getMonth()+1)\n\n // item.sales_date = saleDate.getFullYear() + '-' + (\"0\" + (saleDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + (saleDate.getDay()+1 )).slice(-2);\n console.log(\"sale Day\",saleDate.getDay())\n item.sales_date = saleDate.getFullYear() + '-' + month+ '-' + date;\n }\n \n //console.log(\"sale data\",new Date(this.pipe.transform(item.sales_date, 'dd-MM-yyyy')))\n console.log(\"itme\",val)\n console.log(\"sale\",item.sales_date)\n salesChildControl.push(this.dailySalesChildWithData(item, val.sim_id,val.sales_type));\n if(item.sales_value !=null){\n this.Value[i]=this.constant.convertNumberToWords(item.sales_value)\n }\n if(item.frequency_value != null){\n this.freqAmtInwords[i]=this.constant.convertNumberToWords(item.frequency_value);\n }\n })\n \n\n\n });\n // this.changeOptions(index,val.sales_type)\n if(val.sales_type==\"2\"){\n salesChildControl.controls[salesChildControl.value.length-1].controls['sales_date'].setValue(\"\");\n salesChildControl.controls[salesChildControl.value.length-1].controls['sales_date'].clearValidators();\n salesChildControl.controls[salesChildControl.value.length-1].controls['sales_date'].updateValueAndValidity();\n \n salesChildControl.controls[salesChildControl.value.length-1].controls['fk_frequency_id'].setValidators([Validators.required]);\n salesChildControl.controls[salesChildControl.value.length-1].controls['fk_frequency_id'].updateValueAndValidity();\n \n salesChildControl.controls[salesChildControl.value.length-1].controls['frequency_value'].setValidators([Validators.required]);\n salesChildControl.controls[salesChildControl.value.length-1].controls['frequency_value'].updateValueAndValidity();\n \n // control1.controls[control.value.length-1].controls['comments'].setValidators([Validators.required]);\n // control1.controls[control.value.length-1].controls['comments'].updateValueAndValidity();\n\n }\n });\n \n console.log(\"aall\",this.salesDailyForm.value)\n }\n\n dailySalesWithData(data) {\n\n return this.fb.group(\n {\n sim_id: [data.sim_id],\n sales_item: [data.sales_item],\n other_sales_item:[data.other_sales_item],\n sales_type:[data.sales_type],\n child: this.fb.array([]),\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n fk_createdby: [this.users],\n isactive: [true],\n margin_per: [data.margin_per == null ? '' : data.margin_per],\n margin_value: [data.margin_value == null ? '' :data.margin_value],\n comments:[data.comments]\n })\n }\n dailySalesChildWithData(data, fk_id,salesType) {\n\nconsole.log(\"Sales type\",salesType)\n return this.fb.group(\n {\n simc_id: [data.simc_id],\n fk_sim_id: [fk_id],\n // sales_date: [data.sales_date, Validators.compose([Validators.required])],\n sales_date:[salesType==2 ? '' : data.sales_date],\n // sales_date: [new Date(this.pipe.transform(data.sales_date, 'dd-MM-yyyy')), Validators.compose([Validators.required])],\n sales_value: [data.sales_value],\n fk_frequency_id:[data.fk_frequency_id],\n frequency_value:[data.frequency_value],\n isactive: [true],\n })\n \n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-daily-sales/pd-question-assessed-daily-sales.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n/**\n * Generated class for the PdQuestionAssessedPurchasePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-purchase',\n templateUrl: 'pd-question-assessed-purchase.html',\n})\nexport class PdQuestionAssessedPurchasePage {\n purchaseDetails: any;\n users: any;\n pdDetails: any;\n businessExpenses: any;\n UOM: any;\n m_freqOfPurchase: any;\n annual: any = [];\n grandpurchaseTotal: any;\n rawMaterialForm:FormGroup;\n RateOfPurchase: any=[];\n AnnualPurchase: any=[];\n productListData:any=[];\n UOMData:any=[]\n check_type:any=[{'type_id':\"1\",'type_name':'Quantity and Rate Information'},{'type_id':\"2\",'type_name':'Value Information'}]\n complete_status: boolean = false;\n \n protected _onDestroy = new Subject();\n\n constructor(public navCtrl: NavController, public fb:FormBuilder,public navParams: NavParams,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public aws:AwsServiceProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.purchaseDetails = this.navParams.get('purchase');\n console.log(\"purchase\",this.purchaseDetails)\n console.log(\"pd\",this.pdDetails);\n this.users = this.aws.getlocale();\n this.rawMaterialForm = this.fb.group(\n {\n purchase:this.fb.array([]),\n });\n \n if(this.purchaseDetails!=null)\n {\n this.getpurchaseDetails(this.purchaseDetails);\n }else\n {\n this.addPurchaseDetails();\n }\n this.getdropList();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedPurchasePage');\n }\n\n\n createPurchaseDetails()\n {\n return this.fb.group(\n {\n purchase_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n purchase_item:[null,Validators.compose([Validators.required])],\n other_purchase_item:[null],\n purchase_type:['1'],\n purchase_qty:[null,Validators.compose([Validators.required])],\n fk_uom_id:[null,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[null],\n rate_per_unit:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_purchase_value:[null,Validators.compose([Validators.required])],\n comments:[null],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n\n getdropList()\n {\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.m_freqOfPurchase = res['records'].filter(fre=>fre.isactive==1);\n }\n })\n this.qustCat.getcommondrop('UOM').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.UOM = res['records'].filter(uom=>uom.isactive==1);\n this.UOMData=this.UOM.slice();\n }\n });\n this.qustCat.getcommondrop('BUSINESSEXPENSES').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.businessExpenses = res['records'].filter(bus=>bus.isactive==1);\n }\n })\n this.qustCat.stockFormAccess(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(data=>{\n if (data.dataStatus){\n let datas = data.record;\n \n let type2 = datas.from_business.filter(data => data.type_of_activity_id == 2); \n if(type2[0].hasOwnProperty(\"products\")){\n // this.productListData.push(type2[0].products);\n }\n let type3 = datas.from_business.filter(data => data.type_of_activity_id == 3);\n if(type3[0].hasOwnProperty(\"products\")){\n this.productListData.push(type3[0].products);\n }\n let type4 = datas.from_business.filter(data => data.type_of_activity_id == 4);\n if(type4[0].hasOwnProperty(\"products\")){\n this.productListData.push(type4[0].products);\n }\n if(datas.from_supplier.hasOwnProperty(\"raw_material\")){\n this.productListData.push(datas.from_supplier.raw_material);\n }\n this.productListData = [].concat.apply([], this.productListData);\n \n }\n })\n }\n addPurchaseDetails()\n {\n const control = this.rawMaterialForm.controls['purchase'] as FormArray\n control.push(this.createPurchaseDetails());\n }\n\n deletePurchaseDetails(i,item)\n {\n this.annual.splice(i,1);\n \n // this.annual[i].spl\n this.grandpurchaseTotal = this.annual.reduce((a,b)=> +a + +b,0); \n let deleteRecords:any; \n if(item.fk_pd_id !=null){\n deleteRecords=[{\n purchase_id:item.purchase_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomePurchaseDetails',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n \n const control = this.rawMaterialForm.controls['purchase'] as FormArray\n if(control.length==1){\n control.reset();\n }\n else{\n control.removeAt(i); \n } \n }\n\n\n purchaseCalculation(indexVal,values)\n {\n let control:any = this.rawMaterialForm.controls['purchase'];\n if(values.rate_per_unit != null){\n if(values.rate_per_unit != ''){\n this.inWords(values.rate_per_unit,indexVal,1);\n }\n }\n\n if(values.purchase_type == \"1\" && values.purchase_qty!='' && values.rate_per_unit!='' && values.fk_frequency_id!='' && values.purchase_qty!=null && values.rate_per_unit!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_purchase_value'].setValue((parseFloat(values.purchase_qty) * parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.purchase_qty) * parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n\n }\n else if(values.purchase_type==\"2\" && values.rate_per_unit !='' && values.rate_per_unit !=null && values.fk_frequency_id != '' && values.fk_frequency_id != null ){\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_purchase_value'].setValue((parseFloat(values.rate_per_unit) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.rate_per_unit) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n }\n else {\n control.controls[indexVal].controls['annual_purchase_value'].setValue(null);\n }\n // console.log(this.grandpurchaseTotal);\n // console.log(details,index);\n // let frequencyId = details.value.fk_frequency_id;\n // let purchaseQty = details.value.purchase_qty;\n // let UOM = details.value.rate_per_unit;\n // console.log(frequencyId,purchaseQty,UOM,index);\n // // console.log(frequencyId);\n // let annual\n // if(purchaseQty!=null && UOM!=null){\n // if(frequencyId==1)\n // {\n\n // }else if(frequencyId==2)\n // {\n // annual = (purchaseQty*UOM*250);\n // this.annual[index] = annual;\n // details.controls['annual_purchase_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (purchaseQty*UOM);\n // this.annual[index] = annual;\n // details.controls['annual_purchase_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n\n // }else if(frequencyId==5)\n // {\n // annual = (purchaseQty*UOM*12);\n // this.annual[index] = annual;\n // details.controls['annual_purchase_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n\n // }else if(frequencyId==7)\n // {\n\n // }else if(frequencyId==8)\n // {\n\n // }else\n // {\n\n // }\n // this.grandpurchaseTotal = this.annual.reduce((a,b)=> +a + +b,0); \n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter the Purchase Quantity and UOM');\n // }\n }\n savepurchaseData(answerData)\n {\n answerData.purchase.forEach(parVal=>{\n delete parVal.uomSearch\n })\n\n if(this.rawMaterialForm.valid){\n \n answerData.purchase.forEach(parVal=>{\n delete parVal.uomSearch\n })\n \n let records = {'records':answerData.purchase};\n console.log('data',records);\n this.qustCat.saveassessedForms('saveAssessedIncomePurchaseDetails',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n // this.getAssessedDetails();\n \n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter All Field');\n }\n }\n\n getpurchaseDetails(purchaseDetails)\n {\n console.log('function in',purchaseDetails);\n \n const control = this.rawMaterialForm.controls['purchase'] as FormArray; \n console.log(control); \n if(purchaseDetails.length ==0)\n {\n console.log('if');\n this.addPurchaseDetails();\n }else{\n console.log('else');\n purchaseDetails.forEach((val,index)=>\n {\n // console.log(index);\n control.push(this.createPurchasewithData(val));\n this.annual[index] = val.annual_purchase_value;\n if(val.rate_per_unit != null){\n this.RateOfPurchase[index]=this.cons.convertNumberToWords(val.rate_per_unit)\n }\n if(val.annual_purchase_value != null){\n this.AnnualPurchase[index]=this.cons.convertNumberToWords(val.annual_purchase_value)\n }\n });\n this.grandpurchaseTotal = this.annual.reduce((a,b)=>(+a + +b),0);\n }\n // console.log(control); \n \n }\n\n createPurchasewithData(data)\n {\n return this.fb.group(\n {\n purchase_id:[data.purchase_id],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n purchase_item:[data.purchase_item,Validators.compose([Validators.required])],\n other_purchase_item:[data.other_purchase_item],\n purchase_type:[data.purchase_type],\n purchase_qty:[data.purchase_qty,Validators.compose([Validators.required])],\n fk_uom_id:[data.fk_uom_id,Validators.compose([Validators.required])],\n uomSearch:[null],\n uom_other:[data.uom_other],\n rate_per_unit:[data.rate_per_unit,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_purchase_value:[data.annual_purchase_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n changeOptions(indexVal: any,event: any): void{\n console.log('event',event)\n let control: any = this.rawMaterialForm.controls['purchase'];\n if(event.value==\"1\"){\n control.controls[indexVal].controls['purchase_qty'].setValidators([Validators.required]);\n control.controls[indexVal].controls['purchase_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValidators([Validators.required]);\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n this.purchaseCalculation(indexVal,control.controls[indexVal].value);\n }\n else if(event.value==\"2\"){\n control.controls[indexVal].controls['purchase_qty'].setValue(\"\");\n control.controls[indexVal].controls['purchase_qty'].clearValidators();\n control.controls[indexVal].controls['purchase_qty'].updateValueAndValidity();\n \n control.controls[indexVal].controls['fk_uom_id'].setValue(\"\");\n control.controls[indexVal].controls['fk_uom_id'].clearValidators();\n control.controls[indexVal].controls['fk_uom_id'].updateValueAndValidity();\n this.purchaseCalculation(indexVal,control.controls[indexVal].value);\n }\n }\n\n searchUOM(control:any,i:number){ \n control.controls['uomSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(()=>{\n let val = control.controls['uomSearch'].value;\n if (!this.UOM) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n \n this.UOMData=this.UOM.slice()\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.UOMData=this.UOM.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1)\n })\n }\n\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.RateOfPurchase[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualPurchase[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-purchase/pd-question-assessed-purchase.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionAssessedBusinessPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-business',\n templateUrl: 'pd-question-assessed-business.html',\n})\nexport class PdQuestionAssessedBusinessPage {\n m_freqOfPurchase: any;\n expenseDetails: any;\n Value: any=[];\n AnnualExpenses: any=[];\n complete_status: boolean = false;\n grandpurchaseTotal(arg0: any): any {\n throw new Error(\"Method not implemented.\");\n }\n grandExpenseTotal: any=[];\n expenseannual: any=[];\n users: any;\n pdDetails: any;\n BuissnessForm:FormGroup;\n businessExpenses:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.expenseDetails = this.navParams.get('expense');\n this.users = this.aws.getlocale();\n this.BuissnessForm = this.fb.group(\n {\n busExpense:this.fb.array([]),\n });\n\n if(this.expenseDetails!=null)\n {\n this.getBuisnessExpenses(this.expenseDetails);\n }else\n {\n this.addBusinessDetails();\n }\n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('BUSINESSEXPENSES').subscribe(res=>\n {\n if(res['dataStatus']==true){\n \n this.businessExpenses = res['records'].filter(bus=>bus.isactive==1);\n } \n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus'] == true){\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedBusinessPage');\n }\n\n\n createBusinessDetails()\n {\n return this.fb.group(\n {\n pd_expense_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n expense_item_id:[null,Validators.compose([Validators.required])],\n other_expense_item:[null],\n expense_value:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_expenses_value:[null,Validators.compose([Validators.required])],\n comments:[null],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n\n\n businessCalculation(indexVal: number,values: any): void {\n let control:any = this.BuissnessForm.controls['busExpense'];\n if(values.expense_value!='' && values.fk_frequency_id!='' && values.expense_value!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_expenses_value'].setValue((parseFloat(values.expense_value) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.expense_value) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n \n }\n else {\n control.controls[indexVal].controls['annual_expenses_value'].setValue(null);\n }\n }\n \n addBusinessDetails()\n {\n const control = this.BuissnessForm.controls['busExpense'] as FormArray;\n control.push(this.createBusinessDetails());\n }\n\n deleteBuisnessDetails(i,item)\n {\n console.log(\"item\",item);\n this.expenseannual.splice(i,1); \n this.grandExpenseTotal = this.expenseannual.reduce((a,b)=> +a + +b,0); \n \n let deleteRecords:any;\n if(item.fk_pd_id !=null){\n deleteRecords=[{\n pd_expense_id:item.pd_expense_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeBusinessExpenses',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n \n const control = this.BuissnessForm.controls['busExpense'] as FormArray;\n if(control.length==1){\n control.reset();\n }\n else{\n control.removeAt(i); \n } \n }\n\n busExpensecalculat(index,details)\n {\n \n \n let frequencyId = details.value.fk_frequency_id;\n let expenseValue = details.value.expense_value;\n let UOM = details.value.rate_per_unit;\n \n let annual\n if(expenseValue!=null){\n if(frequencyId==1)\n {\n\n }else if(frequencyId==2)\n {\n annual = (expenseValue*250);\n this.expenseannual[index] = annual;\n details.controls['annual_expenses_value'].setValue(annual); \n this.inWords(annual,index,2) \n }else if(frequencyId==3)\n {\n annual = (expenseValue);\n this.expenseannual[index] = annual;\n details.controls['annual_expenses_value'].setValue(annual);\n this.inWords(annual,index,2)\n }else if(frequencyId==4)\n {\n\n }else if(frequencyId==5)\n {\n annual = (expenseValue*12);\n this.expenseannual[index] = annual;\n details.controls['annual_expenses_value'].setValue(annual);\n this.inWords(annual,index,2)\n }else if(frequencyId==6)\n {\n\n }else if(frequencyId==7)\n {\n\n }else if(frequencyId==8)\n {\n\n }else\n {\n\n }\n this.grandExpenseTotal = this.expenseannual.reduce((a,b)=> +a + +b,0); \n }else\n {\n this.toast.pdTriggerappmessage('Enter the Amount and Frequency');\n }\n }\n\n saveBusinessData(answerData)\n {\n \n if(this.BuissnessForm.valid){\n let records = {'records':answerData.busExpense};\n \n this.qustCat.saveassessedForms('saveAssessedIncomeBusinessExpenses',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!'); \n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n \n }\n\n getBuisnessExpenses(expenseDetails)\n {\n if(expenseDetails.length==0)\n {\n this.addBusinessDetails();\n }else\n {\n const control = this.BuissnessForm.controls['busExpense'] as FormArray; \n expenseDetails.forEach((val,index)=>\n {\n this.expenseannual[index] = val.annual_expenses_value;\n control.push(this.createBusinessExpensewithData(val));\n if(val.expense_value != null){\n this.Value[index]=this.cons.convertNumberToWords(val.expense_value)\n this.AnnualExpenses[index]=this.cons.convertNumberToWords(val.annual_expenses_value)\n }\n })\n this.grandExpenseTotal = this.expenseannual.reduce((a,b)=> +a + +b,0); \n }\n }\n\n createBusinessExpensewithData(data)\n {\n return this.fb.group(\n {\n pd_expense_id:[data.pd_expense_id],\n fk_pd_id:[this.pdDetails.pd_id],\n expense_item_id:[data.expense_item_id,Validators.compose([Validators.required])],\n other_expense_item:[data.other_expense_item || ''],\n expense_value:[data.expense_value,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_expenses_value:[data.annual_expenses_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n isactive:['1'],\n fk_createdby:[this.users]\n })\n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualExpenses[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-business/pd-question-assessed-business.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormArray, FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionAssessedHouseholdPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-household',\n templateUrl: 'pd-question-assessed-household.html',\n})\nexport class PdQuestionAssessedHouseholdPage {\n\n m_freqOfPurchase: any;\n expenseDetails: any;\n houseExpenseDetails: any;\n users: any;\n pdDetails: any;\n houseannual: any =[];\n grandHouseExpenseTotal: any=[];\n houseHoldForm:FormGroup;\n Value: any=[];\n AnnualExpenses: any=[];\n complete_status: boolean = false;\n // nn:Object[][]=[]\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public toast:ToastProvider,public qustCat:QuestionCategoryProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.houseExpenseDetails = this.navParams.get('FormId');\n this.expenseDetails = this.navParams.get('expense');\n this.users = this.aws.getlocale();\n this.houseHoldForm = this.fb.group(\n {\n houseExpense:this.fb.array([]),\n });\n if(this.expenseDetails !=null)\n {\n this.getHouseholdExpense(this.expenseDetails);\n }else\n {\n this.addHouseExpenses();\n }\n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedHouseholdPage');\n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus'] == true){\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n }\n createHouseExpense()\n {\n return this.fb.group(\n {\n household_expense_id:[null],\n fk_pd_id:[this.pdDetails.pd_id] ,\n company_id:[this.pdDetails.company_id],\n\t\t expense_item: [null,Validators.compose([Validators.required])],\n\t\t expense_value: [null,Validators.compose([Validators.required])],\n\t\t fk_frequency_id: [null,Validators.compose([Validators.required])],\n annual_expense_value: [null,Validators.compose([Validators.required])],\n comments:[null],\n\t\t isactive: [\"1\"],\n\t\t fk_createdby: [this.users]\n })\n }\n\n addHouseExpenses()\n {\n \n const control = this.houseHoldForm.controls['houseExpense'] as FormArray;\n\n control.push(this.createHouseExpense());\n }\n\n deleteHouseExpense(i,item)\n {\n this.houseannual.splice(i,1); \n this.grandHouseExpenseTotal = this.houseannual.reduce((a,b)=> +a + +b,0); \n let deleteRecords:any\n if(item.household_expense_id !=null){\n deleteRecords=[{\n household_expense_id:item.household_expense_id,\n fk_pd_id:item.fk_pd_id,\n company_id:this.pdDetails.company_id,\n isactive:false\n\n }]\n \n let records:any={'records':deleteRecords}\n this.qustCat.saveassessedForms('saveAssessedIncomeHouseholdExpenses',records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Deleted Successfully\");\n }\n else{\n this.toast.pdTriggerappmessage(\"Something Went Wrong\");\n }\n })\n }\n const control = this.houseHoldForm.controls['houseExpense'] as FormArray;\n if(control.length==1){\n control.reset();\n }\n else{\n control.removeAt(i); \n } \n }\n houseExpensecalculat(indexVal,values)\n {\n\n let control:any = this.houseHoldForm.controls['houseExpense'];\n if(values.expense_value!='' && values.fk_frequency_id!='' && values.expense_value!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_expense_value'].setValue((parseFloat(values.expense_value) * parseFloat(filterFrequencyValue[0].mutiple_factor)).toFixed(2));\n this.inWords(parseInt(values.expense_value) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n \n }\n else {\n control.controls[indexVal].controls['annual_expense_value'].setValue(null);\n }\n \n //OLD CALCULATION\n // let frequencyId = details.value.fk_frequency_id;\n // let expenseValue = details.value.expense_value;\n // // let UOM = details.value.rate_per_unit;\n // // console.log(frequencyId,purchaseQty,UOM,index);\n // // console.log(details);\n // let annual\n // if(expenseValue!=null){\n // if(frequencyId==1)\n // {\n\n // }else if(frequencyId==2)\n // {\n // annual = (expenseValue*250);\n // this.houseannual[index] = annual;\n // details.controls['annual_expense_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (expenseValue);\n // this.houseannual[index] = annual;\n // details.controls['annual_expense_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n\n // }else if(frequencyId==5)\n // {\n // annual = (expenseValue*12);\n // this.houseannual[index] = annual;\n // details.controls['annual_expense_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n\n // }else if(frequencyId==7)\n // {\n\n // }else if(frequencyId==8)\n // {\n\n // }else\n // {\n\n // }\n // this.grandHouseExpenseTotal = this.houseannual.reduce((a,b)=> +a + +b,0); \n // console.log(this.grandHouseExpenseTotal); \n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter the Amount and Frequency');\n // }\n }\n saveHouseExpenseData(answerData)\n {\n if(this.houseHoldForm.valid)\n {\n let records = {'records':answerData.houseExpense};\n this.qustCat.saveassessedForms('saveAssessedIncomeHouseholdExpenses',records).subscribe(res=>\n { \n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!'); \n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n }\n\n getHouseholdExpense(houseExpesneDetails)\n {\n if(houseExpesneDetails.length==0)\n {\n this.addHouseExpenses(); \n }else\n {\n const control = this.houseHoldForm.controls['houseExpense'] as FormArray; \n houseExpesneDetails.forEach((val,index)=>\n {\n this.houseannual[index] = val.annual_expense_value;\n control.push(this.createHouseholdwithData(val));\n if(val.expense_value != null){\n this.Value[index]=this.cons.convertNumberToWords(val.expense_value)\n this.AnnualExpenses[index]=this.cons.convertNumberToWords(val.annual_expense_value)\n }\n \n });\n this.grandHouseExpenseTotal = this.houseannual.reduce((a,b)=> +a + +b,0); \n }\n }\n\n createHouseholdwithData(data)\n {\n return this.fb.group(\n {\n household_expense_id:[data.household_expense_id],\n fk_pd_id:[this.pdDetails.pd_id] ,\n company_id:[this.pdDetails.company_id],\n\t\t expense_item: [data.expense_item,Validators.compose([Validators.required])],\n\t\t expense_value: [data.expense_value,Validators.compose([Validators.required])],\n\t\t fk_frequency_id: [data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_expense_value: [data.annual_expense_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n\t\t isactive: [\"1\"],\n\t\t fk_createdby: [this.users]\n })\n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualExpenses[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-household/pd-question-assessed-household.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionAssessedBusinessIncomePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-business-income',\n templateUrl: 'pd-question-assessed-business-income.html',\n})\nexport class PdQuestionAssessedBusinessIncomePage {\n m_freqOfPurchase: any = [];\n expenseDetails: any;\n \n grandIncomeTotal: any=[];\n incomeannual: any=[];\n users: any;\n pdDetails: any;\n BuissnessForm:FormGroup;\n businessIncome:any;\n Value: any=[];\n AnnualExpenses: any=[];\n complete_status : boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,public cons:ConstantsProvider) {\n this.pdDetails = this.navParams.get('pdDetails');\n this.expenseDetails = this.navParams.get('income');\n \n this.users = this.aws.getlocale();\n this.BuissnessForm = this.fb.group(\n {\n busIncome:this.fb.array([]),\n });\n\n if(this.expenseDetails!=null)\n {\n this.getBuisnessExpenses(this.expenseDetails);\n }else\n {\n this.addBusinessDetails();\n }\n this.getdropdown();\n\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('BUSINESSINCOME').subscribe(res=>\n {\n if(res['dataStatus']==true){\n \n this.businessIncome = res['records'].filter(bus=>bus.isactive==1);\n } \n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus'] == true){\n this.m_freqOfPurchase = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedBusinessIncomePage');\n }\n createBusinessDetails()\n {\n return this.fb.group(\n {\n pd_business_income_id:[null],\n fk_pd_id:[this.pdDetails.pd_id],\n business_income_id:[null,Validators.compose([Validators.required])],\n income_value:[null,Validators.compose([Validators.required])],\n fk_frequency_id:[null,Validators.compose([Validators.required])],\n annual_income_value:[null,Validators.compose([Validators.required])],\n comments:[null],\n isactive:['1'],\n fk_createdby:[this.users],\n other_income_item:[null],\n other_frequncy_item:[null],\n })\n }\n\n addBusinessDetails()\n {\n const control = this.BuissnessForm.controls['busIncome'] as FormArray;\n control.push(this.createBusinessDetails());\n }\n\n deleteBuisnessDetails(i)\n {\n this.incomeannual.splice(i,1); \n this.grandIncomeTotal = this.incomeannual.reduce((a,b)=> +a + +b,0); \n \n const control = this.BuissnessForm.controls['busIncome'] as FormArray;\n control.removeAt(i);\n }\n\n busIncomecalculate(indexVal,values)\n {\n let control:any = this.BuissnessForm.controls['busIncome'];\n if(values.income_value!='' && values.fk_frequency_id!='' && values.income_value!=null && values.fk_frequency_id!=null) {\n let filterFrequencyValue: any = this.m_freqOfPurchase.filter(val =>val.frequency_id==values.fk_frequency_id);\n control.controls[indexVal].controls['annual_income_value'].setValue(parseInt(values.income_value) * parseInt(filterFrequencyValue[0].mutiple_factor));\n this.inWords(parseInt(values.income_value) * parseInt(filterFrequencyValue[0].mutiple_factor),indexVal,2)\n\n }\n else {\n control.controls[indexVal].controls['annual_income_value'].setValue('');\n }\n //OLD CALCULATION\n // let frequencyId = details.value.fk_frequency_id;\n // let incomeValue = details.value.income_value;\n // // let UOM = details.value.rate_per_unit;\n \n // let annual:any;\n // if(incomeValue!=null && incomeValue !=null){\n // let frequency_factor = this.m_freqOfPurchase.filter(frq=>frq.frequency_id == frequencyId)[0]; \n // if(frequencyId==1)\n // {\n \n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==2)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==3)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual);\n // }else if(frequencyId==4)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual);\n // }else if(frequencyId==5)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual);\n // }else if(frequencyId==6)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==7)\n // {\n // annual = (incomeValue*frequency_factor.mutiple_factor);\n // this.incomeannual[index] = annual;\n // details.controls['annual_income_value'].setValue(annual); \n // }else if(frequencyId==8)\n // {\n // annual = (incomeValue);\n // this.incomeannual[index] = annual; \n // details.controls['annual_income_value'].setValue(annual); \n\n // }else\n // {\n\n // }\n // this.grandIncomeTotal = this.incomeannual.reduce((a,b)=> +a + +b,0); \n // }else\n // {\n // this.toast.pdTriggerappmessage('Enter the Amount and Frequency');\n // }\n }\n\n saveBusinessData(answerData)\n {\n \n if(this.BuissnessForm.valid){\n let records = {'records':answerData.busIncome};\n \n this.qustCat.saveassessedForms('saveOtherBusinessIncome',records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n \n this.toast.pdTriggerappmessage('Record Saved Successfully.!'); \n setTimeout(()=>{\n this.navCtrl.pop();\n },1500)\n }\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter The All Field');\n }\n \n }\n\n getBuisnessExpenses(expenseDetails)\n {\n if(expenseDetails.length==0)\n {\n this.addBusinessDetails();\n }else\n {\n const control = this.BuissnessForm.controls['busIncome'] as FormArray; \n expenseDetails.forEach((val,index)=>\n {\n this.incomeannual[index] = val.annual_income_value;\n control.push(this.createBusinessExpensewithData(val));\n if(val.income_value != null){\n this.Value[index]=this.cons.convertNumberToWords(val.income_value)\n this.AnnualExpenses[index]=this.cons.convertNumberToWords(val.annual_income_value)\n }\n })\n this.grandIncomeTotal = this.incomeannual.reduce((a,b)=> +a + +b,0); \n }\n }\n\n createBusinessExpensewithData(data)\n {\n return this.fb.group(\n {\n pd_business_income_id:[data.pd_business_income_id],\n fk_pd_id:[this.pdDetails.pd_id],\n business_income_id:[data.business_income_id,Validators.compose([Validators.required])],\n income_value:[data.income_value,Validators.compose([Validators.required])],\n fk_frequency_id:[data.fk_frequency_id,Validators.compose([Validators.required])],\n annual_income_value:[data.annual_income_value,Validators.compose([Validators.required])],\n comments:[data.comments],\n isactive:['1'],\n fk_createdby:[this.users],\n other_income_item:[data.other_income_item],\n other_frequncy_item:[data.other_frequncy_item],\n })\n }\n inWords(e,c,flag){\n switch(flag){\n case 1 : \n this.Value[c] = this.cons.convertNumberToWords(e);\n break;\n case 2 : \n this.AnnualExpenses[c] = this.cons.convertNumberToWords(e);\n break;\n default : break;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-business-income/pd-question-assessed-business-income.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Form } from 'ionic-angular';\nimport {AwsServiceProvider} from '../../../providers/aws-service/aws-service'\nimport { FormGroup,FormBuilder,FormArray, Validators} from '@angular/forms';\nimport {QuestionCategoryProvider} from '../../../providers/question-category/question-category'\nimport {ToastProvider} from '../../../providers/common-provider/toast'\nimport { DatePipe } from '@angular/common';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\nimport { max } from 'rxjs/operators';\n\n/**\n * Generated class for the PdQuestionAssessedDailyPurchasePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-daily-purchase',\n templateUrl: 'pd-question-assessed-daily-purchase.html',\n})\nexport class PdQuestionAssessedDailyPurchasePage {\n pipe = new DatePipe('en-US');\n pdDetails:any;\n formId:any;\n margin_calculation_status: any;\n users: any;\n purchaseItemForm:FormGroup\n dailyPurchase:any;\n productListData: any=[];\n purchaseData:any;\n purchaseAmtInWords: any=[];\n maxDate:any;\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,\n private fb:FormBuilder,private quesCat:QuestionCategoryProvider,private toast:ToastProvider,private cons:ConstantsProvider) {\n var today=new Date\n console.log(\"today\",today)\n let date=today.getDate()< 10 ? (\"0\"+(today.getDate())) : today.getDate()\n let month=today.getMonth() < 10 ? (\"0\"+(today.getMonth()+1)) : (today.getMonth()+1)\n this.maxDate = today.getFullYear() + '-' + month + '-' + date;\n console.log(\"max\",this.maxDate)\n this.pdDetails=this.navParams.get('pdDetails')\n console.log(\"pd\",this.pdDetails)\n this.formId=this.navParams.get('FormId')\n this.purchaseData=this.navParams.get('purchaseDaily')\n console.log(\"data\",this.purchaseData);\n this.margin_calculation_status=this.navParams.get('margin_calculation_status');\n this.users = this.aws.getlocale();\n\n this.purchaseItemForm=this.fb.group({\n // purchase_item:[''],\n // other_purchase_item:[''],\n purchase_product:this.fb.array([])\n // child:this.fb.array([])\n })\n this.getDropDown()\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedDailyPurchasePage');\n if(this.purchaseData != null){\n this.getDailyPurchase(this.purchaseData)\n }\n else{\n this.addPurchase();\n }\n \n }\n getDropDown(){\n this.quesCat.stockFormAccess(this.pdDetails.pd_id,this.pdDetails.company_id).subscribe(data=>{\n if (data.dataStatus){\n let datas = data.record;\n \n let type2 = datas.from_business.filter(data => data.type_of_activity_id == 2); \n if(type2[0].hasOwnProperty(\"products\")){\n // this.productListData.push(type2[0].products);\n }\n let type3 = datas.from_business.filter(data => data.type_of_activity_id == 3);\n if(type3[0].hasOwnProperty(\"products\")){\n this.productListData.push(type3[0].products);\n }\n let type4 = datas.from_business.filter(data => data.type_of_activity_id == 4);\n if(type4[0].hasOwnProperty(\"products\")){\n this.productListData.push(type4[0].products);\n }\n if(datas.from_supplier.hasOwnProperty(\"raw_material\")){\n this.productListData.push(datas.from_supplier.raw_material);\n }\n this.productListData = [].concat.apply([], this.productListData);\n \n }\n })\n }\n addPurchase(){\n const control=this.purchaseItemForm.get('purchase_product') as FormArray\n control.push(this.createDailyPurchase())\n this.addDailyPurchaseChild(control.length-1)\n }\n createDailyPurchase(){\n return this.fb.group({\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n pbw_id: [''],\n purchase_item: ['', Validators.compose([Validators.required])],\n other_purchase_item:[''],\n annual_purchase_value: [''],\n child: this.fb.array([]),\n comments: [''],\n isactive:[true],\n })\n }\n addDailyPurchaseChild(index)\n {\n const control=(this.purchaseItemForm.get('purchase_product')).at(index).get('child') as FormArray;\n control.push(this.createDailyPurchaseChild(''))\n }\n createDailyPurchaseChild(value){\n return this.fb.group({\n pbwc_id: [''],\n fk_pbw_id: [value],\n purchase_date: [''],\n purchase_value: ['', Validators.compose([Validators.required])],\n isactive:[true],\n })\n }\n createPurchaseItemWithData(values: any) {\n return this.fb.group({\n fk_pd_id: [this.pdDetails.pd_id],\n company_id:[this.pdDetails.company_id],\n pbw_id: [values.pbw_id],\n purchase_item: [values.purchase_item, Validators.compose([Validators.required])],\n other_purchase_item:[values.other_purchase_item === null ? '' : values.other_purchase_item ],\n annual_purchase_value: [values.annual_purchase_value],\n child: this.fb.array([]),\n comments: [values.comments],\n isactive:[true],\n });\n }\n \n // create daily purchase product with Data\n createDailyPurchaseWithData(values: any, parent: any) {\n console.log(\"dd\",new Date(this.pipe.transform(values.purchase_date, 'yyyy-MM-dd')))\n return this.fb.group({\n pbwc_id: [values.pbwc_id],\n fk_pbw_id: [parent.pbw_id],\n // purchase_date: [parent.purchase_date=='' ? '' :new Date(this.pipe.transform(values.purchase_date, 'yyyy-MM-dd')), Validators.compose([Validators.required])],\n purchase_date:[values.purchase_date],\n purchase_value: [values.purchase_value, Validators.compose([Validators.required])],\n isactive:[true]\n })\n }\ninWords(values,index){\n console.log(\"value\",values)\n if(values != ''){\n this.purchaseAmtInWords[index]=this.cons.convertNumberToWords(values)\n }\n}\n // this caculation for running total\npurchaseCalculation(indexVal: number,values: any): void {\n \n let control:any = this.purchaseItemForm.controls['purchase_product'];\n \n if(values.child.length>0){\n let transformData = values.child.filter(val=>val.purchase_date!='' && val.purchase_date!=null && val.purchase_date!=undefined && val.purchase_value!='' && val.isactive===true).map(mval=>{\n mval.custum_date = this.pipe.transform(mval.purchase_date, 'yyyy-MM');\n return mval;\n });\n\n if(transformData.length>0) {\n // let getUniqueMonthCounts = transformData.map(val=>val.custum_date)\n // .filter((fVal,fIndex,fArray)=>{\n // return fIndex === fArray.indexOf(fVal);\n // });\n\n let TotalAnnualValue = transformData.map(val=>val.purchase_value)\n .reduce((sum, curr) => parseInt(sum) + parseInt(curr));\n // let months:number=12/values.child.length;\n control.controls[indexVal].controls['annual_purchase_value'].setValue(TotalAnnualValue);\n }\n else{\n control.controls[indexVal].controls['annual_purchase_value'].setValue(\"\");\n }\n \n }\n else {\n let innercontrol: any = control.controls[indexVal].get('child') as FormArray;\n innercontrol.controls[innercontrol.value.length-1].controls['purchase_value'].setValue(\"\");\n control.controls[indexVal].controls['annual_purchase_value'].setValue(\"\");\n }\n}\naddDailyPurchase(len){\n const control=this.purchaseItemForm.get('purchase_product');\n control.push(this.createDailyPurchase())\n const innercontrol=control.at(len).get('child') as FormArray\n innercontrol.push(this.createDailyPurchaseChild(''))\n}\nremoveDailyPurchase(index){\n const control=this.purchaseItemForm.get('purchase_product');\n control.removeAt(index)\n}\naddChild(parentIndex,values){\n let control: any = this.purchaseItemForm.controls['purchase_product'];\n control=control.controls[parentIndex].get('child') as FormArray;\n control.push(this.createDailyPurchaseChild(values.pbw_id));\n}\nremoveChild(parentIndex,childIndex,childValue){\n let control: any = this.purchaseItemForm.controls['purchase_product'];\n control=control.controls[parentIndex].get('child') as FormArray;\n if(childValue.pbwc_id=='' || childValue.pbwc_id==null){\n control.removeAt(childIndex);\n let calculatControlValues: any = this.purchaseItemForm.controls['purchase_product'];\n calculatControlValues = calculatControlValues.controls[parentIndex];\n this.purchaseCalculation(parentIndex,calculatControlValues.value);\n }\n else {\n control.controls[childIndex].controls.isactive.setValue(false);\n let calculatControlValues: any = this.purchaseItemForm.controls['purchase_product'];\n calculatControlValues = calculatControlValues.controls[parentIndex];\n this.purchaseCalculation(parentIndex,calculatControlValues.value);\n }\n}\ngetDailyPurchase(records){\n const control=this.purchaseItemForm.get('purchase_product')\n // const innercontrol=control.at(0).get('child') as FormArray\n records.forEach((element,index)=>{\n let purchaseChildControlarr=[]\n let nexContro=[]\n control.push(this.createPurchaseItemWithData(element))\n console.log(\"records\",element)\n let result=Object.assign({},...element.items);\n console.log(\"result\",result);\n // let expandBodyContent= Object.keys(result).map(key => ({ header:key, value: result[key] }));\n // console.log(\"expandBody\",expandBodyContent);\n // let listItems: any=[];\n nexContro[index] = Object.keys(element['items']).map(key => element['items'][key]);\n console.log(\"purchasechildcontrol\",nexContro[index])\n purchaseChildControlarr[index]=Object.keys(result).map(key=>result[key])\n console.log(\"nexcontrol\",purchaseChildControlarr[index])\n // expandBodyContent.forEach((expnadElement, expnadIndex) => {\n // console.log(\"expand\",expnadElement)\n // let calculateItems = expnadElement.value.reduce((acc, calculate) => acc + Number(calculate.purchase_value), 0);\n // console.log(\"calculateItems\",calculateItems)\n // listItems.push({items:expnadElement, itemsTotal:calculateItems})\n const innercontrol=control.at(index).get('child') as FormArray\n purchaseChildControlarr[index].forEach((chilVal,childIndex)=>{\n chilVal.forEach((val,innerIndex)=>{\n if(val.purchase_date ){\n let saleDate = new Date(val.purchase_date);\n console.log(saleDate.getDay())\n console.log(saleDate.getDate());\n // val.purchase_date= saleDate.getFullYear() + '-' + (\"0\" + (saleDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + (saleDate.getDay() )).slice(-2);\n let date=saleDate.getDate()< 10 ? (\"0\"+(saleDate.getDate())) : saleDate.getDate()\n let month=saleDate.getMonth() < 10 ? (\"0\"+(saleDate.getMonth()+1)) : (saleDate.getMonth()+1)\n console.log(\"datamonth\")\n console.log(date,month)\n val.purchase_date= saleDate.getFullYear() + '-' + month + '-' + date;\n console.log( val.purchase_date)\n }\n if(val.purchase_value != ''){\n this.inWords(val.purchase_value,childIndex)\n }\n console.log(\"child\",val)\n innercontrol.push(this.createDailyPurchaseWithData(val,element))\n })\n })\n \n })\n // console.log(\"list_items\",listItems)\n // })\n // control.push(this.createPurchaseItemWithData(records))\n \n //console.log('innercontrol',innercontrol)\n // records.items.forEach((element,index)=>{\n // innercontrol.push(this.createDailyPurchaseWithData(element,records))\n // })\n \n}\n\n\nsubmitDetails(records){\n records.purchase_product.forEach(parVal=>{\n parVal.child.forEach(childVal=>{\n if(childVal['custum_date']){\n delete childVal['custum_date']\n }\n if(childVal['purchase_date']){\n childVal['purchase_date']=this.pipe.transform(childVal['purchase_date'], 'yyyy-MM-dd')\n }\n })\n })\n let recordVal:any={'records':records.purchase_product}\n this.quesCat.saveassessedForms('saveAssessedIncomePurchaseBillwise',recordVal).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Record Saved Successfully..!\")\n setTimeout(()=>{\n this.navCtrl.pop()\n },1500)\n }\n else{\n this.toast.pdTriggerappmessage(\"Error\");\n }\n })\n}\n \n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {QuestionCategoryProvider} from '../../../providers/question-category/question-category'\nimport {RupeeCurrencyFormatPipe} from '../../../pipes/rupee-currency-format/rupee-currency-format'\n\n/**\n * Generated class for the PdQuestionAssessedSummaryPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-assessed-summary',\n templateUrl: 'pd-question-assessed-summary.html',\n providers:[RupeeCurrencyFormatPipe]\n})\nexport class PdQuestionAssessedSummaryPage {\n pdDetails:any;\n salesCustomer:any;\n salesMonthWise:any;\n salesItemWise:any;\n consolidatedReport:any;\n loadData:boolean=false;\n constructor(public navCtrl: NavController, public navParams: NavParams,public qustCat: QuestionCategoryProvider) {\n this.pdDetails=this.navParams.get('pdDetails')\n // console.log(this.pdDetails)\n this.getAssessedDetails();\n }\n ionViewWillEnter(){\n //console.log(\"ionViewWillEnter\")\n //this.getAssessedDetails();\n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedSummaryPage');\n \n }\n getAssessedDetails(){\n let records = {'pd_id':this.pdDetails.pd_id,'company_id':this.pdDetails.company_id};\n this.qustCat.retiverassessedForm('getAssessedIncome',records).subscribe(res=>{\n if(res['dataStatus']== true){\n if(res['records'].final_data.length != 0){\n this.salesCustomer=res['records'].final_data[0].sales_declared_by_customer\n this.salesItemWise=res['records'].final_data[0].sales_calculated_by_itemwise\n this.salesMonthWise=res['records'].final_data[0].sales_calculated_by_monthwise\n this.consolidatedReport=res['records'].final_data[0].consolidated_report\n console.log(this.salesCustomer);\n }\n this.loadData=true\n \n }\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-summary/pd-question-assessed-summary.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ToastProvider} from '../../../providers/common-provider/toast'\nimport {QuestionCategoryProvider} from '../../../providers/question-category/question-category'\nimport { QueueScheduler } from 'rxjs/internal/scheduler/QueueScheduler';\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionAssessedImagesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-assessed-images',\n templateUrl: 'pd-question-assessed-images.html',\n})\nexport class PdQuestionAssessedImagesPage {\n imageDisplay: any=[];\n imageBucket: any=[];\n pdDetails:any;\n FormId:any;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,private toast:ToastProvider,public qustCat:QuestionCategoryProvider,private constantProvider:ConstantsProvider ) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.FormId=this.navParams.get('formdetails')\n console.log(\"pd\",this.pdDetails,\"form\",this.FormId)\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionAssessedImagesPage');\n this.getPDImages();\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n \n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n console.log(\"res\",res);\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n console.log(\"Fail\")\n this.toast.pdTriggerappmessage('Fail');\n }\n },ERR=>{\n console.log(JSON.stringify(ERR));\n this.toast.pdTriggerappmessage(JSON.stringify(ERR));\n })\n \n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-assessed-images/pd-question-assessed-images.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n/**\n * Generated class for the PdQuestionLenderRepresentativePage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-lender-representative',\n templateUrl: 'pd-question-lender-representative.html',\n})\nexport class PdQuestionLenderRepresentativePage {\n\n users: any;\n FormId: any;\n pdDetails: any;\n representativeForm:FormGroup;\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public fb:FormBuilder,private cameraProvider:CameraProvider,\n private loading:LoadingProvider,private constantProvider:ConstantsProvider) \n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n \n this.users = this.aws.getlocale();\n this.representativeForm = this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid:[this.pdDetails.pd_id],\n formid:[this.FormId.form_id],\n fk_createdby:[this.users],\n lender_representative_accompany: ['', Validators.compose([Validators.required])],\n representative_remarks: ['', Validators.compose([Validators.required])],\n lender_representative_details: this.fb.array([]),\n });\n this.getLenderReDetails();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionLenderRepresentativePage');\n this.getPDImages();\n }\n\n ionViewCanLeave(){\n console.log(\"dirty\",this.representativeForm.dirty);\n if(this.representativeForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n \n createlenReDetails()\n {\n return this.fb.group({\n lender_representative_who_accompanies : ['', Validators.compose([Validators.required])],\n lender_representative_carry_loan_files: ['', Validators.compose([Validators.required])],\n });\n }\n\n selectedLoanChanges(e): void {\n if (e.value == 'Yes') {\n const control = this.representativeForm.controls['lender_representative_details'];\n control.push(this.createlenReDetails());\n } else if (e.value == 'No') {\n const arr = this.representativeForm.controls.lender_representative_details;\n arr.removeAt(0);\n }\n }\n\n sumbitData(answerData)\n { \n if(this.representativeForm.valid)\n {\n let records = this.representativeForm.value;\n \n this.qustCat.saveForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.representativeForm.reset(this.representativeForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n });\n }else\n {\n this.toast.pdTriggerappmessage('Enter All Field');\n }\n }\n\n getLenderReDetails()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id}\n \n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let lenderReDetails = res['records'];\n if(lenderReDetails.lender_representative_accompany=='Yes'){\n\n this.representativeForm.controls['lender_representative_accompany'].setValue(lenderReDetails.lender_representative_accompany);\n\n this.representativeForm.controls['representative_remarks'].setValue(lenderReDetails.representative_remarks);\n\n\n let lender_represent_details = Object.keys(res['records'].lender_representative_details).map(function(key)\n {\n return res['records'].lender_representative_details[key];\n });\n \n const control = this.representativeForm.controls['lender_representative_details'] as FormArray; \n lender_represent_details.forEach(val=>\n {\n control.push(this.createlenReDetails());\n })\n this.representativeForm.controls['lender_representative_details'].setValue(lender_represent_details);\n\n }else\n {\n this.representativeForm.controls['lender_representative_accompany'].setValue(lenderReDetails.lender_representative_accompany);\n\n this.representativeForm.controls['representative_remarks'].setValue(lenderReDetails.representative_remarks);\n }\n }\n })\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-lender-representative/pd-question-lender-representative.ts","import { Component,ViewChild,ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams, ModalController, CardTitle, Content } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray,Validator, Validators } from '@angular/forms';\nimport { PdQuestionGeneralOtherApplicantPage } from './pd-question-general-other-applicant/pd-question-general-other-applicant';\nimport { DatePipe} from '@angular/common';\nimport { SearchRelationPipe } from '../../../pipes/search-relation/search-relation';\nimport { removeSummaryDuplicates } from '@angular/compiler';\nimport { DataSource } from '@angular/cdk/table';\nimport { MatSelect } from '@angular/material';\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n//import {} from 'moment'\n\n/**\n * Generated class for the PdQuestionGeneralInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-general-info',\n templateUrl: 'pd-question-general-info.html',\n providers:[SearchRelationPipe],\n})\nexport class PdQuestionGeneralInfoPage {\n pipe=new DatePipe('en-US');\n // person_name:any;\n qualification_name:any;\n individuals_order_id:any;\n is_new:any;\n pd_co_applicant_id:any;\n lengthv:any;\n qual_name:any;\n curr_qualification_name;\n curr_business_name;\n \n\n applicant_name: any;\n otherapp: any;\n fetch_related_details: any = [];\n checkApplicantExist: any;\n pd_applicants_details: any = [];\n companyRelationShipList: any;\n qualificationList:any;\n businessEntityTypeList:any;\n relationShipList: any;\n titleList:any;\n users: any;\n FormId: any;\n pdDetails: any;\n generalForm:FormGroup;\n list_value:FormArray;\n fulldata:any\n public buttonClick:boolean;\n public h_companies:boolean\n \n datav:any;\n individualsListBothCase:any;\n individualsList:any;\n companyList:any;\n i:number;\n data_all:any;\n maxDate:any;\n OldData:any=[];\n OldData_indi:any=[];\n updateIndex_indi:any;\n public addComp:boolean\n public addIndi:boolean\n updateIndex_comp: any;\n\n complete_status : boolean = false;\n\n@ViewChild('remark') nameField: ElementRef;\n@ViewChild('focusBusiness') focus_business_entity : MatSelect\n customer_segment_abbr: any;\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public fb:FormBuilder,public modal:ModalController,\n private cameraProvider:CameraProvider,private loading:LoadingProvider,private cons:ConstantsProvider) {\n this.maxDate = new Date();\n this.pd_applicants_details = []; \n this.pd_applicants_details.pop(); \n this.pdDetails = this.navParams.get('pdDetails');\n console.log(this.pdDetails)\n //let get_max_date=this.pdDetails.pd_date_of_initiation.split('/').reverse.join(\"/\");\n //this.maxDate=new Date(get_max_date)\n this.FormId = this.navParams.get('FormId');\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n console.log('this.customer_segment_abbr',this.customer_segment_abbr)\n this.users = this.aws.getlocale();\n this.getdropdown();\n \n this.generalForm = this.fb.group({\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid:this.pdDetails.pd_id,\n formid:this.FormId.form_id,\n applicant_list: this.fb.array([]),\n applicant_relation: this.fb.array([]),\n list_value:this.fb.array([]),\n company_value:this.fb.array([]),\n individuals:this.fb.array([]),\n companies:this.fb.array([]),\n persons_with_relationships:this.fb.array([]),\n company_with_relationships:this.fb.array([]),\n rental_income_rcv_in_years:[''],\n rental_income_rcv_in_month:[''],\n \n general_remark:''\n });\n \n //this.initIndividuals();\n this.pd_applicants_details = this.pdDetails.applicat_details;\n \n console.log(\"persons_with_relationships\",this.generalForm.controls['persons_with_relationships']['controls'][0])\n let control=this.generalForm.get('persons_with_relationships')\n console.log('p1',control)\n \n \n // this.getcoapplicantDetails();\n this.buttonClick=false;\n this.h_companies=false;\n this.addIndi=false\n this.addComp=false\n // this.initCompanies()\n this.datav=[{\n name:\"fairoj\",\n id:1\n },\n {\n name:\"ff\",\n id:2\n }\n \n ]\n //this.fulldata=this.generalForm.value\n this.generalForm.controls['list_value'].valueChanges.subscribe(val=>{\n let control=this.generalForm.controls['list_value'];\n this.individualsList=control.value.filter(element=>element.is_applicant == true);\n this.individualsListBothCase=control.value.filter(element=>element.is_applicant==true || element.is_person_met==true)\n this.fulldata=control.value;\n //control.controls.length\n //control.push()\n });\n this.generalForm.controls['company_value'].valueChanges.subscribe(val=>{\n let control=this.generalForm.controls['company_value'];\n this.companyList=control.value.filter(element=>element.company_name )\n })\n this.i=0;\n\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n\n ionViewDidLoad() {\n // this.pd_applicants_details.pop();\n console.info(\"%cionViewDidLoad, PdQuestionGeneralInfoPage\",\"font-size:100%;color:purple;font-weight:bold;font-family:Mongoose;\");\n this.getGeneralForm()\n this.getPDImages();\n \n }\n ionViewLoaded() {\n\n // setTimeout(() => {\n // this.generalForm.controls['general_remark']['controls'].setFocus();\n // },150);\n }\n\n ionViewCanLeave(){\n console.table(\"dirty\",this.generalForm.dirty);\n if(this.generalForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n console.log('if part . this.imageBucket.length',this.imageBucket.length);\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n console.log('else part . this.imageBucket.length',this.imageBucket.length)\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n initlistv(data,purpose) :void\n {\n const control=this.generalForm.controls['list_value'];\n console.log(\"control\",control.length)\n if(purpose=='ins')\n {\n for(let val of data)\n {\n var c_qualification_name=this.qualificationById(val.qualification) // for getting qualification Name\n let formData:FormGroup=this.fb.group({\n applicant_title_name:[val.applicant_title_name],\n applicant_name:[val.applicant_name],\n is_person_met:val.is_person_met,\n is_person_met_pic :val.is_person_met_pic != null ? val.is_person_met_pic : '',\n is_person_met_id_proof : val.is_person_met_id_proof,\n is_applicant:val.is_applicant,\n age:[val.age],\n qualification:[val.qualification],\n course_name:[val.course_name],\n \n individuals_order_id:[control.length+1],\n is_new:true,\n is_active:true,\n pd_co_applicant_id:[control.length+1], \n \n qualification_name:[c_qualification_name]\n \n\n });\n control.push(formData);\n this.buttonClick=false;\n // this.generalForm.value.individuals.value=\"\"\n }\n }\n if(purpose=='get'){\n for(let val of data)\n {\n var c_qualification_name=this.qualificationById(val.qualification) // for getting qualification Name\n let formData:FormGroup=this.fb.group({\n applicant_title_name:[val.applicant_title_name],\n applicant_name:[val.applicant_name],\n is_person_met:val.is_person_met,\n is_person_met_pic:val.is_person_met_pic != null ? val.is_person_met_pic : '',\n is_person_met_id_proof:val.is_person_met_id_proof,\n is_applicant:val.is_applicant,\n age:[val.age],\n qualification:[val.qualification],\n course_name:[val.course_name],\n \n individuals_order_id:[val.individuals_order_id],\n is_new:[val.is_new],\n is_active:[val.is_active],\n pd_co_applicant_id:[val.pd_co_applicant_id] , \n \n \n \n \n\n qualification_name:[c_qualification_name]\n \n\n });\n control.push(formData);\n this.buttonClick=false;\n // this.generalForm.value.individuals.value=\"\"\n }\n }\n}\n\n qualificationById(data):string{\n for(let i of this.qualificationList){\n if(data==i.qualification_id){\n this.qual_name=i.qualification_name\n return this.qual_name\n }\n }\n \n }\n initCompanyValue(data,purpose):void{\n const control=this.generalForm.controls['company_value'];\n if(purpose=='ins')\n {\n for(let val of data)\n {\n var c_business_name=''\n if(val.business_entity_type!=1){\n c_business_name=this.businessEntityById(val.business_entity_type)\n }\n if(val.business_entity_type==1){\n c_business_name=val.business_entity_type_other\n }\n \n let formData:FormGroup=this.fb.group({\n company_name:[val.company_name],\n // pd_co_applicant_id:[this.i+1],\n // company_order_id:[this.lengthv.companies.length+1],\n company_order_id:[control.length+1],\n is_company_applicant:[val.is_company_applicant],\n business_entity_type:[val.business_entity_type],\n business_entity_type_other:[val.business_entity_type_other],\n is_new:true,\n is_active:true,\n company_messrs_name:['M/s'],\n \n business_years:[val.business_years],\n business_month:[val.business_month],\n business_date_object:[val.business_date_object],\n associate_pd_id:[this.pdDetails.pd_id],\n\n business_entity_type_name:[c_business_name]\n });\n control.push(formData);\n this.h_companies=false;\n }\n }\n if(purpose=='get')\n {\n for(let val of data)\n {\n \n var c_business_name=''\n if(val.business_entity_type!=1){\n c_business_name=this.businessEntityById(val.business_entity_type)\n }\n if(val.business_entity_type==1){\n c_business_name=val.business_entity_type_other\n }\n\n let formData:FormGroup=this.fb.group({\n company_name:[val.company_name],\n // pd_co_applicant_id:[this.i+1],\n company_order_id:[val.company_order_id],\n is_company_applicant:[val.is_company_applicant],\n business_entity_type:[val.business_entity_type],\n business_entity_type_other:[val.business_entity_type_other],\n is_new:[val.is_new],\n is_active:[val.is_active],\n company_messrs_name:[val.company_messrs_name],\n \n business_years:[val.business_years],\n business_month:[val.business_month],\n business_date_object:[val.business_date_object],\n associate_pd_id:[val.associate_pd_id],\n\n business_entity_type_name:[c_business_name]\n });\n control.push(formData);\n this.h_companies=false;\n }\n }\n }\n businessEntityById(val):string{\n for(let v of this.businessEntityTypeList){\n if(val==v.business_entity_type_id){\n var name=v.business_entity_type_name\n return name\n }\n }\n \n }\n \n\n initIndividuals(data):void{\n \n const control=this.generalForm.controls['individuals'];\n control.controls=[]\n if(data==null){\n let formData : FormGroup=this.fb.group({\n applicant_name:['',Validators.required],\n is_person_met:false,\n is_person_met_pic:[''],\n is_person_met_id_proof:[''],\n is_applicant:false,\n age:[''],\n qualification:[''],\n course_name:[''],\n applicant_title_name:['']\n\n });\n control.push(formData);\n }\n else{\n let formData : FormGroup=this.fb.group({\n \n \n applicant_name:[data.applicant_name,Validators.required],\n is_person_met:data.is_person_met,\n is_person_met_pic : data.is_person_met_pic != null ? data.is_person_met_pic : '' ,\n is_person_met_id_proof : data.is_person_met_id_proof,\n is_applicant:data.is_applicant,\n age:[data.age],\n qualification:[data.qualification],\n course_name:[data.course_name],\n applicant_title_name:[data.applicant_title_name]\n \n \n });\n this.buttonClick=!this.buttonClick;\n control.push(formData);\n\n }\n \n \n \n \n }\n initCompanies(data):void{\n const control=this.generalForm.controls['companies'];\n control.controls=[]\n if(data == null){\n let formData:FormGroup=this.fb.group({\n company_name:[''],\n is_company_applicant:false,\n business_entity_type:[''],\n business_entity_type_other:[''],\n business_years:[''],\n business_month:[''],\n business_date_object:[''],\n });\n control.controls=[]\n control.push(formData)\n \n }\n else{\n let formData:FormGroup=this.fb.group({\n company_name:[data.company_name],\n is_company_applicant:data.is_company_applicant,\n business_entity_type:[data.business_entity_type],\n business_entity_type_other:[data.business_entity_type_other],\n business_years:[data.business_years],\n business_month:[data.business_month],\n business_date_object:[data.business_date_object]\n })\n this.h_companies=!this.h_companies\n \n control.push(formData)\n }\n }\n initPersonRelationship(value):void{\n console.log('From Genral Form - value are',value)\n const control=this.generalForm.controls['persons_with_relationships'];\n if(value=='')\n {\n console.log('fulldata',this.fulldata);\n console.log('control.length+1',control.length+1);\n console.log('full data',this.fulldata[control.length]);\n\n let formData:FormGroup=this.fb.group({\n pd_co_applicant_id:[''],\n applicant_name:[this.fulldata[control.length].applicant_name],\n relationship:[''],\n relation_to:[''],\n individuals_order_id:[control.length+1],\n \n });\n \n control.push(formData);\n }\n else{\n value.forEach((val,index)=>{\n console.log(\"val for each\",val)\n let formData:FormGroup=this.fb.group({\n pd_co_applicant_id:[val.pd_co_applicant_id],\n applicant_name:[val.applicant_name],\n relationship:[index == 0 ? '0' : val.relationship],\n relation_to:[val.relation_to],\n });\n \n control.push(formData);\n })\n }\n \n }\n initCompanyRelationShip(value):void{\n console.log(value)\n if(value=='')\n {\n let formData:FormGroup=this.fb.group({\n applicant_name:[''],\n company_relationship:[''],\n relation_to_company:[''],\n });\n const control=this.generalForm.controls['company_with_relationships'];\n control.push(formData);\n }\n else{\n console.log(\"data\",value);\n for(let val of value){\n let formData:FormGroup=this.fb.group({\n applicant_name:[val.applicant_name],\n company_relationship:[val.company_relationship],\n relation_to_company:[val.relation_to_company],\n });\n const control=this.generalForm.controls['company_with_relationships'];\n control.push(formData);\n }\n }\n \n }\n\n \n \n add():void{\n \n this.initIndividuals(null);\n }\ndata:any;\ncart=[];\ndatajson:any;\ndataobj:any;\n\n addRec(v){\n if(v=='1')\n {\n this.addIndi=true;\n this.buttonClick=!this.buttonClick;\n this.initIndividuals(null);\n }\n if(v=='2')\n {\n console.log(\"companies\",this.h_companies);\n this.addComp=true\n // this.h_companies=true;\n this.h_companies=!this.h_companies;\n console.log(\"companies\",this.h_companies);\n this.initCompanies(null);\n }\n }\n editIndividuals(index){\n let values=this.generalForm.controls.list_value.value[index]\n console.log(values)\n this.addIndi=false\n this.updateIndex_indi=index;\n this.initIndividuals(values);\n // this.nameField.nativeElement.focus();\n\n }\n editCompanies(index){\n console.log(\"index\",index);\n let values=this.generalForm.controls.company_value.value[index]\n console.log(values)\n this.updateIndex_comp=index\n this.addComp=false\n //this.\n this.initCompanies(values)\n }\n update(v,controlVal){\n console.log(\"index\",v)\n if(v=='1'){\n\n let values=this.generalForm.controls['individuals'].value[0]\n // let control=(this.generalForm.controls['individuals']).at(0) as FormArray;\n // console.log(\"full\",this.generalForm)\n // console.log(control,values);\n if(values.is_person_met == true && values.is_applicant != true){\n controlVal.controls['age'].clearValidators();\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].clearValidators();\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met != true){\n console.log(\"1st\");\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met == true && values.is_applicant == true){\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n\n if(!this.generalForm.controls['individuals'].valid){\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory fields Marked with '*'\");\n }\n else{\n let val=this.generalForm.controls.individuals.value[0]\n let old=this.generalForm.controls.list_value.value[this.updateIndex_indi]\n // const control=this.generalForm.controls.list_value.at(this.updateIndex_indi)\n // const control=this.list_value\n var c_qualification_name=this.qualificationById(val.qualification) \n const control=this.generalForm.controls['list_value']['controls'][this.updateIndex_indi]\n control.patchValue({\n \n applicant_title_name:val.applicant_title_name,\n applicant_name:val.applicant_name,\n is_person_met:val.is_person_met,\n is_person_met_pic : val.is_person_met_pic != null ? val.is_person_met_pic : '',\n is_person_met_id_proof: val.is_person_met_id_proof,\n is_applicant:val.is_applicant,\n age:val.age,\n qualification:val.qualification,\n course_name:val.course_name,\n \n individuals_order_id:old.individuals_order_id,\n is_new:old.is_new,\n is_active:old.is_active,\n pd_co_applicant_id:old.pd_co_applicant_id, \n \n qualification_name:c_qualification_name\n });\n this.buttonClick=false;\n console.log(this.generalForm.controls.list_value['controls'])\n // this.generalForm.controls.list_value.value.scrollToTop();\n // this.generalForm.controls['list_value']._scrollContent;\n //this.myinput._scrollContent();\n \n \n console.log(\"values\",val)\n console.log(\"old\",old);\n console.log(control);\n \n }\n }\n else if(v=='2'){\n if(!this.generalForm.controls['companies'].valid)\n {\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory Fields Marked with '*\")\n }\n else{\n let val=this.generalForm.controls.companies.value[0]\n var c_business_name=this.businessEntityById(val.business_entity_type)\n const control=this.generalForm.controls['company_value']['controls'][this.updateIndex_comp]\n control.patchValue({\n company_name:val.company_name,\n // company_order_id:[control.length+1],\n is_company_applicant:val.is_company_applicant,\n business_entity_type:val.business_entity_type,\n business_entity_type_other:val.business_entity_type_other,\n // is_new:true,\n // is_active:true,\n //company_messrs_name:['M/s'],\n \n business_years:val.business_years,\n business_month:val.business_month,\n business_date_object:val.business_date_object,\n\n business_entity_type_name:c_business_name\n })\n this.h_companies=false\n console.log(this.generalForm.controls['company_value']['controls'][this.updateIndex_comp])\n }\n }\n \n\n }\n \n addParticular(v,controlVal):void{\n //console.log(\"controlVAl\",controlVal)\n // const control=this.generalForm.controls['individuals'];\n //control.removeAt(i);\n //this.data=this.generalForm.value.individuals;\n this.cart.push(this.generalForm.value.individuals);\n this.data=Object.assign(this.cart);\n // this.data=Object.assign(this.generalForm.value.individuals)\n this.datajson=JSON.stringify(this.cart)\n if(v=='1')\n {let values=this.generalForm.controls['individuals'].value[0]\n let control=(this.generalForm.controls['individuals']).at(0) as FormArray;\n // console.log(\"full\",this.generalForm)\n // console.log(control,values);\n if(values.is_person_met == true && values.is_applicant != true){\n controlVal.controls['age'].clearValidators();\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].clearValidators();\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met != true){\n // console.log(\"1st\");\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(values.is_person_met == true && values.is_applicant == true){\n controlVal.controls['age'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['age'].updateValueAndValidity()\n\n controlVal.controls['qualification'].setValidators(Validators.compose([Validators.required]));\n controlVal.controls['qualification'].updateValueAndValidity()\n }\n if(!this.generalForm.controls['individuals'].valid){\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory field Marked with '*'\");\n }\n else{\n this.initlistv(this.generalForm.value.individuals,'ins');\n this.initPersonRelationship('');\n }\n }\n else if(v=='2')\n {\n if(!this.generalForm.controls['companies'].valid){\n this.toast.pdTriggerappmessage(\"Please Fill all Mandatory field Marked with '*'\");\n }\n else{\n this.initCompanyValue(this.generalForm.value.companies,'ins')\n }\n }\n \n }\n removeList(i,index){\n if(index=='1')\n {\n //For List List_value(Individuals)\n const control=this.generalForm.controls['list_value'];\n control.value[i].is_active=false;\n this.OldData_indi.push(control.value[i])\n control.removeAt(i);\n //For Person RelationShip auto Delete\n const control1=this.generalForm.controls['persons_with_relationships'];\n control1.removeAt(i);\n \n }\n if(index==2){\n //For Company_values(Companies)\n const control=this.generalForm.controls['company_value']\n control.value[i].is_active=false\n var vla=control.value[i]\n this.OldData.push(vla);\n control.removeAt(i);\n \n\n // let control: any = this.generalForm.get('companies') as FormArray;\n //this.generalForm.controls['companies']\n //control.controls['is_active'].setValue(false);\n //control.controls[i].clearValidators();\n //control.controls[i].updateValueAndValidity();\n //control.clear\n // control.controls[i].is_active.setValue(false);\n /* control.controls[i].controls.company_name.clearValidators();\n control.controls[i].controls.company_name.updateValueAndValidity();\n control.controls[i].controls.business_years.clearValidators();\n control.controls[i].controls.business_years.updateValueAndValidity();\n control.controls[i].controls.business_entity_type.clearValidators();\n control.controls[i].controls.business_entity_type.updateValueAndValidity();*/\n }\n if(index==\"companyrel\")\n {\n //For company_relationship\n const control=this.generalForm.controls['company_with_relationships'];\n control.removeAt(i);\n }\n }\n \n \n getdropdown()\n {\n this.qustCat.getcommondrop('EDUQUALIFICATION').subscribe(res=>{\n if(res['dataStatus']==true)\n {\n this.qualificationList=res['records'].filter(com=>com.isactive==1);\n }\n });\n this.qustCat.getcommondrop('BUSINESSENTITYTYPE').subscribe(res=>{\n this.businessEntityTypeList=res['records'].filter(com=>com.isactive==1);\n });\n\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.relationShipList = res['records'].filter(rel=>rel.isactive==1);\n }\n });\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.companyRelationShipList = res['records'].filter(com=>com.isactive==1);\n }\n });\n \n this.qustCat.getcommondrop('TITLES').subscribe(res=>{\n if(res['dataStatus']==true){\n this.titleList=res['records'].filter(com=>com.isactive==1);\n }\n });\n \n }\n\n getcoapplicantDetails(checkApplicantExist,exist_applicant_relation)\n {\n let applicantControl = this.generalForm.controls['applicant_list'];\n let relationControl = this.generalForm.controls['applicant_relation'];\n \n \n if(checkApplicantExist.length > 0)\n {\n checkApplicantExist.forEach(val => {\n applicantControl.push(this.createApplicant(val));\n });\n \n }\n if(exist_applicant_relation.length > 0){\n exist_applicant_relation.forEach(val => {\n relationControl.push(this.createApplicantRelation(val));\n //push related to details\n this.fetch_related_details.push(val.applicant_name);\n });\n }\n }\n\n createApplicant(elementValue:any){\n return this.fb.group({\n pd_co_applicant_id: [elementValue.pd_co_applicant_id],\n applicant_name: [elementValue.applicant_name],\n company_name: [elementValue.company_name],\n exist_status:[elementValue.exist_status==1 && elementValue.pd_co_applicant_id > 0 ? true : false],\n });\n }\n\n coapplicantChange(event,index,item)\n {\n \n let relationControl = this.generalForm.controls['applicant_relation'];\n let applicantControl = this.generalForm.controls['applicant_list'];\n \n if(item.exist_status.value)\n {\n if(item.pd_co_applicant_id.value==0){\n let modal = this.modal.create(PdQuestionGeneralOtherApplicantPage);\n modal.onDidDismiss(data => {\n if(data!=1){\n data.otherName.forEach(val=>\n {\n\n let applicant_details: any= {'pd_co_applicant_id':val.pd_co_applicant_id,'applicant_name':val.applicant_name,'applicant_relation_to':'','relation':'','company_name':'','company_relation':''};\n relationControl.push(this.createApplicantRelation(applicant_details));\n // push related to details\n this.fetch_related_details.push(val.applicant_name);\n });\n }else\n {\n applicantControl.at(index).get('exist_status').setValue(false);\n \n \n }\n });\n modal.present();\n }else\n {\n \n let applicant_details: any= {'pd_co_applicant_id':item.pd_co_applicant_id.value,'applicant_name':item.applicant_name.value,'applicant_relation_to':'','relation':'','company_name':item.company_name.value,'company_relation':''};\n relationControl.push(this.createApplicantRelation(applicant_details));\n // push related to details\n this.fetch_related_details.push(item.applicant_name.value);\n }\n }\n else\n {\n let relationControl = this.generalForm.controls['applicant_relation'];\n let pos_id = relationControl.value.map(e=> \n e.pd_co_applicant_id).indexOf(item.pd_co_applicant_id.value);\n if(item.pd_co_applicant_id.value !=0){\n relationControl.removeAt(pos_id);\n let pos_name=this.fetch_related_details.indexOf(item.applicant_name.value);\n this.fetch_related_details.splice(pos_name, 1); \n }else\n {\n applicantControl.at(index).get('exist_status').setValue(false);\n \n }\n // remove related to details\n \n }\n\n }\n\n // update personal relation\n updatePersonalRelation(indexVal) {\n let control: any = this.generalForm.controls['persons_with_relationships'];\n control.controls[indexVal].value.relationship == 0 ? control.controls[indexVal].controls['relation_to'].setValue('') : control.controls[indexVal].controls['relation_to'].setValue(control.controls[indexVal].value.relation_to);\n }\n\n createApplicantRelation(elementValue: any) {\n return this.fb.group({\n \n pd_co_applicant_id: [elementValue.pd_co_applicant_id],\n applicant_name: [elementValue.applicant_name],\n company_name: [elementValue.company_name,elementValue.company_name ? Validators.required : Validators.nullValidator],\n company_relationship: [elementValue.company_relationship],\n applicant_relation_to: [elementValue.applicant_relation_to, Validators.required],\n relationship: [elementValue.relationship],\n });\n }\n // temparr=[];\n removereferance(index)\n {\n \n let relationControl = this.generalForm.controls['applicant_relation'];\n \n \n \n \n relationControl.removeAt(index);\n // this.temparr = [];\n \n }\n // createApplicateOthers()\n // {\n // return this.fb.group(\n // {\n // Name:\n // })\n // }\n ConvertMonthintoYearforBusiness(e,controlIndex,flag){\n \n\n let converted_month : number = e%12;\n let converted_year : number = e/12;\nif(flag==1){\n let control: any = this.generalForm.get('companies') as FormArray;\n control = control.controls[controlIndex];\n let business_year = control.controls.business_years.value;\n control.controls.business_years.setValue(+business_year + +Math.floor(converted_year));\n control.controls.business_month.setValue(Math.floor(converted_month));\n }\n else if(flag==2){\n let ri_year = this.generalForm.controls.rental_income_rcv_in_years.value;\n this.generalForm.controls['rental_income_rcv_in_years'].setValue(+ri_year + +Math.floor(converted_year));\n this.generalForm.controls['rental_income_rcv_in_month'].setValue(Math.floor(converted_month));\n }\n}\ngetDateObjects(values: any, controlIndex) {\n let control: any = this.generalForm.get('companies') as FormArray;\n control.controls['business_years']=''\n control.controls['business_month']=''\n control = control.controls[controlIndex];\n let pd_initiation_date:string = this.pdDetails.pd_date_of_initiation.split('/').reverse().join(\"/\");\n let date=new Date()\n\n let curr_date=date.getFullYear()+'/'+('0'+(date.getMonth()+1))+'/'+('0'+date.getDate())\n console.log(\"current date\",curr_date);\n let selected_date = this.pipe.transform(values, 'yyyy/MM/dd'); ;\n console.log(\"pd date\",pd_initiation_date);\n console.log(\"selected date\",selected_date)\n /*WORKING STATEMENT*/\n let months = date.getMonth() - values.getMonth() + (12 * (date.getFullYear() - values.getFullYear()));\n\nif (months >= 12) {\n console.log('years:', (months - (months %12))/12 );\n console.log(\"moth\",months%12);\n} else {\n console.log('only months',months);\n}\ncontrol.controls['business_years'].setValue((months - (months %12))/12);\n control.controls['business_month'].setValue(months%12);\n/*END OF WORKING STATEMENT*/\n //let diffInMs: number = Date.parse(pd_initiation_date) - Date.parse(selected_date);\n// function monthDiff(d1, d2) {\n// var months;\n// months = (d2.getFullYear() - d1.getFullYear()) * 12;\n// months -= d1.getMonth() + 1;\n// months += d2.getMonth();\n// return months <= 0 ? 0 : months;\n \n// }\n// console.log(\"new\",monthDiff( new Date(2008, 10, 4), new Date(2010, 2, 12) )) // March 12th, 2010);\n //var start_date=moment(start_date)\n /* old working statement*/\n // let diffInMs: number = Date.parse(selected_date) - Date.parse(curr_date);\n // let diff: number = Math.floor(diffInMs / 1000);\n // console.log(\"diff\",diff)\n // diff /= (60 * 60 * 24 * 30);\n // console.log(\"diff /\",diff)\n // diff=Math.abs(Math.round(diff));\n // control.controls['business_years'].setValue(0);\n // control.controls['business_month'].setValue(0);\n \n // if(diff){\n // control.controls['business_years'].setValue(Math.floor(diff / 12));\n // control.controls['business_month'].setValue(Math.floor(diff % 12));\n // }\n\n}\ntemp: number = 0;\n\n submitData(answerData)\n {\n console.table(this.generalForm.value);\n console.log(answerData);\n\nconsole.log('1)',this.temp);\n let saveRecords:any={}\n var valuesData_indi:any=[]\n\n var valuesData:any=[]\n var existData_indi=Object.keys(answerData.list_value).map(function(key){\n return answerData.list_value[key]\n })\n existData_indi.forEach((element)=>{\n valuesData_indi.push(element)\n })\n if(this.OldData_indi.length>0){\n this.OldData_indi.forEach((element)=>{\n valuesData_indi.push(element)\n })\n }\n\n var existData=Object.keys(answerData.company_value).map(function(key){\n return answerData.company_value[key]\n })\n if(this.customer_segment_abbr != 'SE-RI'){\n let count=0\n existData.forEach((element,index)=>{\n // console.log(\"company value\",element)\n if(element.business_entity_type=='' || element.business_entity_type == null){\n this.editCompanies(index);\n // this.focus_business_entity.focused=true;\n count=count+1;\n }\n valuesData.push(element)\n })\n if(count >0){\n this.toast.pdTriggerappmessage(\"Please choose business entity type for each companies\");\n return\n }\n }\n if(this.OldData.length>0){\n this.OldData.forEach((element)=>{\n valuesData.push(element)\n })\n }\n \n if (valuesData_indi.length > 0) {\n // console.log('2)',this.temp);\n valuesData_indi.forEach((val, index) => {\n if (val.is_person_met == false) {\n this.temp++;\n }\n // console.log('3)',this.temp);\n });\n // console.log('4)',this.temp,'length',valuesData_indi.length);\n if (this.temp == valuesData_indi.length) {\n // console.log('5)',this.temp);\n this.toast.pdTriggerappmessage('Please Choose Name of Person Met.!');\n this.temp = 0;\n // console.log('6)',this.temp);\n return;\n }\n }\n\n if (this.customer_segment_abbr != 'SE-RI') {\n saveRecords.companies=valuesData\n saveRecords.company_with_relationships=answerData.company_with_relationships\n saveRecords.rental_income_rcv_in_years = null;\n saveRecords.rental_income_rcv_in_month = null;\n //saveRecords.applicant_relation=answerData.applicant_relation; \n }\n else if (this.customer_segment_abbr == 'SE-RI') {\n saveRecords.companies = [];\n saveRecords.company_with_relationships = [];\n saveRecords.rental_income_rcv_in_years = answerData.rental_income_rcv_in_years;\n saveRecords.rental_income_rcv_in_month = answerData.rental_income_rcv_in_month;\n //saveRecords.applicant_relation=answerData.applicant_relation;\n }\n\n saveRecords.individuals=valuesData_indi;\n // saveRecords.companies=valuesData\n saveRecords.parent_pdid=answerData.parent_pdid\n saveRecords.pdid=answerData.pdid;\n saveRecords.formid=answerData.formid;\n saveRecords.fk_createdby=this.users; \n saveRecords.persons_with_relationships=answerData.persons_with_relationships;\n // saveRecords.company_with_relationships=answerData.company_with_relationships\n saveRecords.general_remark=answerData.general_remark;\n \n this.qustCat.saveForm(saveRecords).subscribe(dataResult=>{\n if(dataResult['dataStatus']==true){\n //TO CHANGE THE FORM STATE \n this.generalForm.reset(this.generalForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },3000);\n \n\n }\n else{\n this.toast.pdTriggerappmessage('Error');\n }\n })\n \n /* Old Data\n if(this.generalForm.valid)\n {\n let saveRecords:any = {}\n let applicantList:any=[];\n let applicantRelationList:any=[];\n // this for applicant list for selected\n answerData.applicant_list.forEach((element,key) => {\n if(element.exist_status==1){\n applicantList.push({\n \"pd_co_applicant_id\":element.pd_co_applicant_id,\n \"applicant_name\":element.applicant_name,\n }) \n }\n });\n // this is for selected applicant relation \n answerData.applicant_relation.forEach((element,key) => {\n applicantRelationList.push({\n \"pd_co_applicant_id\":element.pd_co_applicant_id,\n \"applicant_name\":element.applicant_name,\n \"company_name\":element.company_name,\n \"company_relationship\":element.company_relationship,\n \"applicant_relation_to\":element.applicant_relation_to,\n \"relationship\":element.relationship,\n }) \n });\n \n saveRecords.pdid=answerData.pdid;\n saveRecords.formid=answerData.formid;\n saveRecords.general_remark=answerData.general_remark;\n saveRecords.selected_applicant=applicantList;\n saveRecords.applicant_relation=applicantRelationList;\n saveRecords.fk_createdby = this.users;\n this.qustCat.saveForm(saveRecords).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n this.navCtrl.pop();\n } \n })\n }*/\n }\n\n getGeneralForm()\n {\n let records={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n this.qustCat.retiverForm(records).subscribe(res=>{\n this.data_all=res['records'];\n let exist_companies:any;\n let exist_company_with_relationship:any;\n let companyControl = this.generalForm.get('company_value') as FormArray;\n companyControl.controls=[]\n this.lengthv=this.data_all;\n if(res['dataStatus']==true)\n {\n \n \n this.generalForm.controls['general_remark'].setValue(this.data_all.general_remark);\n //\n\n var arrlist_indi:any=[] \n var exist_individuals=Object.keys(res['records'].individuals).map(function(key){\n return res['records'].individuals[key];\n }) \n if(exist_individuals.length>0){\n exist_individuals.forEach((element)=>{\n if(element.is_active != false){\n arrlist_indi.push(element);\n }\n else{\n this.OldData_indi.push(element)\n }\n })\n }\n this.initlistv(arrlist_indi,'get')\n \n \n if(this.data_all.persons_with_relationships != ''){\n this.initPersonRelationship(this.data_all.persons_with_relationships);\n }\n //Create Company with Relationship\n exist_company_with_relationship=Object.keys(res['records'].company_with_relationships).map(function(key){\n return res['records'].company_with_relationships[key];\n })\n console.log(\"Customer Segment\",this.customer_segment_abbr)\n if(this.customer_segment_abbr !='SE-RI')\n {\n if(exist_company_with_relationship.length>0){\n // exist_company_with_relationship.forEach(key=>{\n // console.log(\"company relation\",key)\n // this.initCompanyRelationShip(key)\n // })\n this.initCompanyRelationShip(exist_company_with_relationship);\n }\n else if(exist_company_with_relationship.length==0){\n this.initCompanyRelationShip('');\n }\n //create Companies\n exist_companies=Object.keys(res['records'].companies).map(function(key){\n return res['records'].companies[key];\n })\n var arraylis:any=[]\n if(exist_companies.length>0){\n exist_companies.forEach((element,cindex)=>{\n if(element.is_active!=false){\n arraylis.push(element);\n }\n else{\n this.OldData.push(element);\n }\n })\n \n }\n this.initCompanyValue(arraylis,'get');\n this.generalForm.controls['rental_income_rcv_in_years'].setValue(null);\n this.generalForm.controls['rental_income_rcv_in_month'].setValue(null);\n }\n else if(this.customer_segment_abbr == 'SE-RI'){\n this.generalForm.controls['rental_income_rcv_in_years'].setValue(res['records'].rental_income_rcv_in_years ? res['records'].rental_income_rcv_in_years:'');\n this.generalForm.controls['rental_income_rcv_in_month'].setValue(res['records'].rental_income_rcv_in_month ? res['records'].rental_income_rcv_in_month:'');\n\n }\n\n // var arraylis:any=[]\n \n \n // if(exist_companies.length>0){\n // exist_companies.forEach((element,cindex)=>{\n // if(element.is_active!=false){\n // arraylis.push(element);\n // }\n // else{\n // this.OldData.push(element);\n // }\n // })\n \n // }\n // this.initCompanyValue(arraylis,'get');\n \n \n\n // if(this.data_all.company_with_relationships != ''){\n // this.initCompanyRelationShip(this.data_all.company_with_relationships);\n // }\n \n }\n else{\n console.log(\"Else data\",this.pd_applicants_details)\n this.pd_applicants_details.forEach((datas,index)=>{\n datas.is_applicant=true,\n datas.is_person_met = false;\n datas.is_person_met_pic = '';\n datas.is_person_met_id_proof = '';\n datas.is_new = false;\n datas.is_main_applicant = datas.applicant_type == '1' ? true : false;\n datas.is_active = true;\n datas.individuals_order_id = index + 1;\n // company_order_id = index+1,\n datas.age = '',\n datas.qualification = '',\n datas.course_name = ''\n \n if (datas.company_name != '' && datas.company_name != null) {\n console.log(\"company\");\n let setCompanyValues: any = { company_order_id: companyControl.controls.length + 1, company_name: datas.company_name, is_company_applicant: datas.is_company_applicant, business_entity_type: datas.business_entity_type, business_entity_type_other: datas.business_entity_type_other, business_years: datas.business_years, business_month: datas.business_month, business_date_object: datas.business_date_object, is_new: datas.is_new, is_active: true, associate_pd_id:this.pdDetails.pd_id }\n companyControl.push(this.createCompanies(setCompanyValues))\n }\n });\n \n // this.lengthv.push(\"individuals\")\n // this.lengthv.push(\"companies\")\n // this.lengthv.push('persons_with_relationships')\n //this.lengthv.push(\"\")\n console.log(\"applicant\",this.lengthv)\n this.initlistv(this.pd_applicants_details,'get');\n this.initPersonRelationship(this.pd_applicants_details)\n // this.initCompanyValue(this.pd_applicants_details,'get');\n this.initCompanyRelationShip('')\n\n }\n })\n /*let records = {'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.pd_applicants_details.push({'pd_co_applicant_id':\"0\",'applicant_name':'Others'});\n \n let generalDetails = res['records'];\n this.generalForm.controls['general_remark'].setValue(generalDetails.general_remark);\n\n let applicant_relation = Object.keys(res['records'].applicant_relation).map(function(key)\n {\n return res['records'].applicant_relation[key];\n });\n\n let selected_applicant = Object.keys(res['records'].selected_applicant).map(function(key)\n {\n return res['records'].selected_applicant[key].pd_co_applicant_id;\n });\n let applicantControl = this.generalForm.controls['applicant_list'];\n \n let actual_applicant = this.pd_applicants_details.map(item => item.pd_co_applicant_id);\n let checkApplicantExist =actual_applicant.map((id, index) => {\n if (selected_applicant.indexOf(id) < 0) {\n this.pd_applicants_details[index].exist_status=0;\n return this.pd_applicants_details[index];\n }\n else{\n this.pd_applicants_details[index].exist_status=1;\n this.pd_applicants_details[index].applicant_relation_to='';\n this.pd_applicants_details[index].relation='';\n return this.pd_applicants_details[index];\n }\n }).filter(item => item != undefined);\n this.getcoapplicantDetails(checkApplicantExist,applicant_relation);\n }else\n {\n this.pd_applicants_details.push({'pd_co_applicant_id':\"0\",'applicant_name':'Others'});\n \n }\n })*/\n }\n createCompanies(elementValue:any) {\n var name=this.businessEntityById(elementValue.business_entity_type)\n return this.fb.group({\n company_order_id: [elementValue.company_order_id],\n company_name: [elementValue.company_name,],\n company_messrs_name: ['M/s'],\n is_company_applicant:[elementValue.is_company_applicant],\n business_entity_type :[elementValue.business_entity_type,Validators.required],\n business_years: [elementValue.business_years, Validators.required],\n business_month: [elementValue.business_month],\n business_date_object: [elementValue.business_date_object],\n is_active: [elementValue.is_active],\n is_new:[elementValue.is_new],\n business_entity_type_name:[name],\n associate_pd_id:[elementValue.associate_pd_id]\n \n });\n }\n\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n\n sendImage(){\n \n this.loading.loaderForSendImage()\n console.log(\"image bucket - json data\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"DB - records\",JSON.stringify(records))\n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('applicant_name').value\n value.get('applicant_name').setValue(this.cons.sentenceCase(name));\n }\n\n ImageUpload(control,Flag : any){ \n if(Flag == 1){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n control.controls['is_person_met_pic'].setValue(res);\n //this.toast.pdTriggerappmessage('Flag 1 Success');\n }\n else{\n control.controls['is_person_met_pic'].setValue('');\n // this.toast.pdTriggerappmessage('Flag 1 Fail');\n }\n console.table('1',this.generalForm.value);\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n else if(Flag == 2){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n control.controls['is_person_met_id_proof'].setValue(res);\n // this.toast.pdTriggerappmessage('Flag 2 Success');\n }\n else{\n control.controls['is_person_met_id_proof'].setValue('');\n // this.toast.pdTriggerappmessage('Flag 2 Fail');\n }\n // console.table('1',this.generalForm.value);\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-general-info/pd-question-general-info.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams,ViewController } from 'ionic-angular';\nimport { FormGroup, FormBuilder,FormArray, Validators } from '@angular/forms';\n\n/**\n * Generated class for the PdQuestionGeneralOtherApplicantPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-general-other-applicant',\n templateUrl: 'pd-question-general-other-applicant.html',\n})\nexport class PdQuestionGeneralOtherApplicantPage {\n otherForm:FormGroup;\napplicantInfo:any={'pd_co_applicant_id':\"0\",'applicant_name':'','company_name':''};\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder,public viewCtrl:ViewController) {\n this.otherForm = this.fb.group(\n {\n otherName:this.fb.array([]),\n })\n this.addmore();\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionGeneralOtherApplicantPage');\n }\n\n createName(elementValue:any)\n {\n return this.fb.group(\n {\n pd_co_applicant_id: [elementValue.pd_co_applicant_id],\n applicant_name: [elementValue.applicant_name, Validators.required],\n })\n }\n\n addmore()\n {\n if(this.otherForm.valid)\n {\n const control = this.otherForm.controls['otherName'];\n control.push(this.createName(this.applicantInfo));\n }\n }\n\n deleteappdata(index)\n {\n const control = this.otherForm.controls['otherName'];\n if(control.length==1){\n control.reset();\n }else{\n control.removeAt(index);\n }\n }\n\n closeModal(){\n this.viewCtrl.dismiss(1); \n }\n submitData(answerData)\n {\n if(this.otherForm.valid){\n this.viewCtrl.dismiss(this.otherForm.value);\n }\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-general-info/pd-question-general-other-applicant/pd-question-general-other-applicant.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Generated class for the SearchRelationPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: 'searchRelation',\n})\nexport class SearchRelationPipe implements PipeTransform {\n /**\n * Takes a value and makes it lowercase.\n */\n transform(value: any, searchItem:any): any {\n let findExistIndex = searchItem.existRelationList.filter(sVal=>sVal.relation_to==searchItem.currentApplicantID);\n if(findExistIndex.length>0){\n let check = value.filter(function(fVal){\n return !findExistIndex.some(function(sVal){\n return fVal.pd_co_applicant_id==searchItem.currentApplicantID || fVal.pd_co_applicant_id == sVal.pd_co_applicant_id;\n });\n })\n return check;\n }\n else {\n return value.filter(fVal=>fVal.pd_co_applicant_id!=searchItem.currentApplicantID);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/search-relation/search-relation.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { FormGroup, FormBuilder,FormArray,Validators,FormControl} from '@angular/forms';\nimport { ConstantsProvider } from '../../../providers/constants/constants'\nimport {CameraProvider} from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionNeighbourHoodPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-neighbour-hood',\n templateUrl: 'pd-question-neighbour-hood.html',\n})\nexport class PdQuestionNeighbourHoodPage {\n\n frequency: any;\n relationBusiness: any;\n users: any;\n FormId: any;\n pdDetails: any;\n neighbourhoodForm:FormGroup;\n check_type:any=[{'id':0,'type_name':'Neighbourhood'},{'id':1,'type_name':'Reference Check'}]\n finalRemarksList : any = [{'id': 1,'name': \"Positive\"},\n {'id': 2,'name': \"Negative\"},\n {'id': 3,'name': \"Insufficient information provided\"}];\n\n // amtInWords:any=[];\n applicants:any;\n isDisplay:any = [];\n isDisplay2:any = [];\n existCompanyList: any=[];\n mergeCompanyApplicant: any=[];\n isOrganisationOwner: any=[];\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public qustCat:QuestionCategoryProvider,\n public toast:ToastProvider,public fb:FormBuilder, \n public constant: ConstantsProvider,private cameraProvider:CameraProvider,private loading:LoadingProvider)\n {\n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2 && appt.pd_co_applicant_id != 0);\n this.applicants.push({'pd_co_applicant_id': 0,'applicant_name': \"Others\"})\n this.neighbourhoodForm = this.fb.group(\n {\n parent_pdid:this.pdDetails.parent_pd_id,\n pdid:this.pdDetails.pd_id,\n formid:this.FormId.form_id,\n check_type:0,\n neighbourhood_list: this.fb.array([]),\n neighbourhood_status:[''],\n referencecheck_list: this.fb.array([]),\n neighbour_reference_remark:'' \n })\n this.users = this.aws.getlocale();\n \n \n this.getdropdown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionNeighbourHoodPage');\n this.getneighbourhood();\n this.getPDImages();\n }\n ionViewCanLeave(){\n console.log(\"dirty\",this.neighbourhoodForm.dirty);\n if(this.neighbourhoodForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\n\n getdropdown()\n {\n this.qustCat.getcommondrop('RELATIONWITHBUSINESS').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.relationBusiness = res['records'].filter(rel=>rel.isactive==1);\n }\n });\n this.qustCat.getcommondrop('FREQUENCY').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.frequency = res['records'].filter(frq=>frq.isactive==1);\n }\n })\n this.qustCat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(res=>{\n if(res.dataStatus==true){\n this.existCompanyList=res.records.filter(val=>val.is_active == true)\n console.log(this.existCompanyList)\n }\n let modifyCompanyList:any=[]\n if(this.existCompanyList.length>0){\n modifyCompanyList=this.existCompanyList.map(element=>{\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName: 'COMPANIES', groupValues: modifyCompanyList })\n \n }\n let modifyApplicantList:any=[]\n if(this.applicants.length>0){\n modifyApplicantList=this.applicants.map(element=>{\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n })\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n\n }\n console.log(\"company&Applicant\",this.mergeCompanyApplicant)\n })\n }\n inWords(val,i)\n {\n // this.amtInWords[i]=this.constant.convertNumberToWords(val.target.value)\n }\n keyPress(event: any) {\n const pattern = /[0-9]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n /** To Convert Month into Year */\n ConvertMonthintoYear(itemrow,e,flag){\n if(flag == 2){\n\n let year = itemrow.controls.year_relation_applicant.value;\n let converted_month : number = e%12;\n let converted_year : number = e/12;\n itemrow.controls.year_relation_applicant.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.months_relation_applicant.setValue(Math.floor(converted_month));\n }\n else if(flag == 1){\n \n let year = itemrow.controls.how_long_do_know_in_year.value;\n let converted_month : number = e%12;\n let converted_year : number = e/12;\n itemrow.controls.how_long_do_know_in_year.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.how_long_do_know_in_month.setValue(Math.floor(converted_month));\n }\n}\n\ntoggleVisibility(e,index,flag){ \n let val\n \n if(flag == 1){\n this.isDisplay[index] = e;\n }\n else if(flag==2){\n this.isDisplay2[index] = e;\n }\n}\n\ncheckOthers(values){\n if(values!=null) {\n return values==0 ? true : false;\n }\n else {\n return false;\n }\n}\ncompareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n}\n\n\ngetOtherOrganisationOwner(value,i) {\n //console.log('value',value,'I',i);\nlet Ctrls = this.neighbourhoodForm.controls['neighbourhood_list'];\n //console.log('ParCtrls',Ctrls);\nlet ChdCtrls:any = Ctrls.controls[i];\n // console.log('ChdCtrls',ChdCtrls);\n // return;\n\n\nlet Avaliablity = 1;\nconsole.log('val',value);\nif(value.length>0){\n value.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n}\nif(Avaliablity == 0){\n// console.log('if Avaliablity',Avaliablity);\n\n ChdCtrls.controls.other_organisation_owner.setValidators([Validators.required]);\n this.isOrganisationOwner[i] = true;\n}else if(Avaliablity == 1){\n// console.log('else Avaliablity',Avaliablity);\n// console.log('esle this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n ChdCtrls.controls.other_organisation_owner.setValue('');\n ChdCtrls.controls.other_organisation_owner.clearValidators();\n this.isOrganisationOwner[i] = false;\n// console.log('else this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]);\n}\n \nChdCtrls.controls.other_organisation_owner.updateValueAndValidity(); \n}\n createreferance()\n {\n return this.fb.group({\n reference_name: [null],\n mobile: ['',Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],\n statecode:[null],\n landline: [null],\n location:[null],\n relationship_with:[null],\n others:[null],\n year_relation_applicant:[null],\n months_relation_applicant:[null],\n business_volume_amount:[null],\n business_volume_unit:[null],\n others_unit:[null],\n reference_final_remarks:[null],\n specify_final_remark:[null]\n });\n }\n addreferance()\n {\n const control = this.neighbourhoodForm.controls['referencecheck_list'];\n control.push(this.createreferance());\n }\n\n removereferance(i)\n {\n const control = this.neighbourhoodForm.controls['referencecheck_list'];\n if(control.length==1)\n {\n control.reset();\n }else{\n control.removeAt(i);\n }\n }\n\n createNeighbourhood(){\n return this.fb.group({\n neighbourhood_name: [null],\n do_know: [''],\n \n how_long_do_know_in_year: [''],\n how_long_do_know_in_month:[''],\n organisation_owner: [''],\n is_applicant_owner:[''],\n other_organisation_owner:[''],\n did_not_know_the_business_operation:[''],\n did_not_know_the_owner:[''],\n });\n }\n\n addneighbourhood()\n {\n const control = this.neighbourhoodForm.controls['neighbourhood_list'];\n control.push(this.createNeighbourhood());\n }\n\n removeneighbourhood(i)\n {\n const control = this.neighbourhoodForm.controls['neighbourhood_list'];\n if(control.length==1)\n {\n control.reset();\n }else{\n control.removeAt(i);\n }\n }\n\n submitData(answerData)\n {\n \n const neighbourhoodControl : FormGroup = this.neighbourhoodForm.controls['neighbourhood_list'] as FormGroup;\n let NbhdCtrlLength: any = neighbourhoodControl.controls.length;\n // this.neighbourhoodForm.controls['neighbourhood_status'].setValidators([Validators.required]);\n // this.neighbourhoodForm.controls['neighbourhood_status'].updateValueAndValidity();\n\n // this.neighbourhoodForm.controls['neighbour_reference_remark'].setValidators([Validators.required])\n // this.neighbourhoodForm.controls['neighbour_reference_remark'].updateValueAndValidity();\n if (NbhdCtrlLength > 0) {\n let Ncnt = 0;\n while(Ncnt < NbhdCtrlLength){\n\n let nbhdChildCtrl : any = neighbourhoodControl.controls[Ncnt]; \n\n // nbhdChildCtrl.controls['neighbourhood_name'].setValidators([Validators.required]);\n // nbhdChildCtrl.controls['neighbourhood_name'].updateValueAndValidity();\n\n // nbhdChildCtrl.controls['do_know'].setValidators([Validators.required]);\n // nbhdChildCtrl.controls['do_know'].updateValueAndValidity();\n \n\n if(nbhdChildCtrl.controls.do_know.value != ''){\n // console.log('nbhdChildCtrl.controls.did_not_know_the_business_operation.value',nbhdChildCtrl.controls.did_not_know_the_business_operation.value)\n if(nbhdChildCtrl.controls.did_not_know_the_business_operation.value == '' || nbhdChildCtrl.controls.did_not_know_the_business_operation.value == false){\n // console.log('IF nbhdChildCtrl.controls.did_not_know_the_business_operation.value',nbhdChildCtrl.controls.did_not_know_the_business_operation.value)\n // nbhdChildCtrl.controls['how_long_do_know_in_month'].setValidators([Validators.required]);\n // nbhdChildCtrl.controls['how_long_do_know_in_month'].updateValueAndValidity();\n nbhdChildCtrl.controls['how_long_do_know_in_year'].setValidators([Validators.required]);\n nbhdChildCtrl.controls['how_long_do_know_in_year'].updateValueAndValidity(); \n }\n else if(nbhdChildCtrl.controls.did_not_know_the_business_operation.value == true){\n // console.log('ELSE nbhdChildCtrl.controls.did_not_know_the_business_operation.value',nbhdChildCtrl.controls.did_not_know_the_business_operation.value)\n nbhdChildCtrl.controls['how_long_do_know_in_month'].setValue('');\n // nbhdChildCtrl.controls['how_long_do_know_in_month'].clearValidators();\n nbhdChildCtrl.controls['how_long_do_know_in_month'].updateValueAndValidity();\n nbhdChildCtrl.controls['how_long_do_know_in_year'].setValue('');\n nbhdChildCtrl.controls['how_long_do_know_in_year'].clearValidators();\n nbhdChildCtrl.controls['how_long_do_know_in_year'].updateValueAndValidity(); \n }\n\n if(nbhdChildCtrl.controls.did_not_know_the_owner.value == '' || nbhdChildCtrl.controls.did_not_know_the_owner.value == false){\n nbhdChildCtrl.controls['organisation_owner'].setValidators([Validators.required]);\n nbhdChildCtrl.controls['organisation_owner'].updateValueAndValidity();\n }\n else if(nbhdChildCtrl.controls.did_not_know_the_owner.value == true){\n nbhdChildCtrl.controls['organisation_owner'].setValue('');\n nbhdChildCtrl.controls['organisation_owner'].clearValidators();\n nbhdChildCtrl.controls['organisation_owner'].updateValueAndValidity();\n }\n }\n Ncnt++;\n }\n this.neighbourhoodForm.controls.neighbourhood_status.setValidators([Validators.required]);\n this.neighbourhoodForm.controls.neighbourhood_status.updateValueAndValidity();\n }\n\n\n if (this.neighbourhoodForm.invalid) {\n // this.validateAllFormFields(this._neighbourhoodForm);\n this.toast.pdTriggerappmessage('Please Fill All Mandatory Fields.!');\n return;\n }\n \n let saveRecords:any = {}\n let referencecheck_list:any=[];\n let neighbourhood_list:any=[];\n // if(answerData.check_type==0){\n answerData.neighbourhood_list.forEach((element,key) => {\n neighbourhood_list.push({\n \"neighbourhood_name\":element.neighbourhood_name,\n \"do_know\":element.do_know,\n \"how_long_do_know_in_year\":element.how_long_do_know_in_year,\n \"how_long_do_know_in_month\":element.how_long_do_know_in_month,\n \"is_applicant_owner\":element.is_applicant_owner,\n \"organisation_owner\":element.organisation_owner,\n \"other_organisation_owner\":element.other_organisation_owner,\n \"did_not_know_the_business_operation\":element.did_not_know_the_business_operation,\n \"did_not_know_the_owner\":element.did_not_know_the_owner\n }) \n });\n saveRecords.neighbourhood_list=neighbourhood_list;\n \n // }\n // else{\n // this for referencecheck_list for selected\n answerData.referencecheck_list.forEach((element,key) => {\n referencecheck_list.push({\n \"reference_name\":element.reference_name,\n \"mobile\":element.mobile,\n \"landline\":element.statecode+'-'+element.landline,\n \"location\":element.location,\n \"relationship_with\":element.relationship_with,\n \"others\":element.others,\n \"year_relation_applicant\":element.year_relation_applicant,\n \"months_relation_applicant\":element.months_relation_applicant,\n \"business_volume_amount\":element.business_volume_amount,\n \"business_volume_unit\":element.business_volume_unit,\n \"others_unit\":element.others_unit,\n \"reference_final_remarks\":element.reference_final_remarks,\n \"specify_final_remark\":element.specify_final_remark\n }) \n });\n saveRecords.referencecheck_list=referencecheck_list;\n \n // }\n saveRecords.parent_pdid=answerData.parent_pd_id\n saveRecords.pdid=answerData.pdid;\n saveRecords.formid=answerData.formid;\n // saveRecords.check_type=answerData.check_type;\n saveRecords.fk_createdby = this.users;\n saveRecords.neighbourhood_status=answerData.neighbourhood_status\n saveRecords.neighbour_reference_remark=answerData.neighbour_reference_remark;\n\n this.qustCat.saveForm(saveRecords).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n //TO CHANGE THE FORM STATE \n this.neighbourhoodForm.reset(this.neighbourhoodForm.value);\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n })\n \n }\n\n getneighbourhood()\n {\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.FormId.form_id};\n const control = this.neighbourhoodForm.controls['referencecheck_list']; \n const neicontrol = this.neighbourhoodForm.controls['neighbourhood_list'];\n \n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n let neighbourDetails = res['records'];\n // neighbourDetails.neighbourhood_list.=''\n \n // if(neighbourDetails.check_type==0)\n // {\n \n this.neighbourhoodForm.controls['check_type'].setValue(0);//this one for mobile only\n this.neighbourhoodForm.controls['neighbour_reference_remark'].setValue(neighbourDetails.neighbour_reference_remark);\n this.neighbourhoodForm.controls['neighbourhood_status'].setValue(neighbourDetails.neighbourhood_status)\n let neighbourhood_list = Object.keys(res['records'].neighbourhood_list).map(function(key)\n {\n return res['records'].neighbourhood_list[key];\n });\n console.log('neighbourhood_list',neighbourhood_list);\n console.log('length',neighbourhood_list.length);\n if(neighbourhood_list.length > 0){\n\n \n neighbourhood_list.forEach((element,index)=>\n {\n this.toggleVisibility(element.did_not_know_the_business_operation,index,1);\n this.toggleVisibility(element.did_not_know_the_owner,index,2);\n neicontrol.push(this.createNeighbourhood());\n this.getOtherOrganisationOwner(element.organisation_owner,index)\n });\n this.neighbourhoodForm.controls['neighbourhood_list'].setValue(neighbourhood_list);\n \n\n }else\n {\n this.addneighbourhood();\n }\n // if(neighbourDetails.check_type==1)\n // {\n let referencecheck_list = Object.keys(res['records'].referencecheck_list).map(function(key)\n {\n return res['records'].referencecheck_list[key];\n });\n console.log('referencecheck_list',referencecheck_list);\n console.log('length',referencecheck_list.length);\n if(referencecheck_list.length > 0){\n // this.neighbourhoodForm.controls['check_type'].setValue(neighbourDetails.check_type);\n this.neighbourhoodForm.controls['neighbour_reference_remark'].setValue(neighbourDetails.neighbour_reference_remark);\n referencecheck_list.forEach((val,index)=>\n {\n let statecodesearch = val.landline.search(\"-\");\n referencecheck_list[index].statecode = val.landline.substr(0,statecodesearch);\n referencecheck_list[index].landline = val.landline.substr(+statecodesearch + 1,8);\n control.push(this.createreferance());\n // this.amtInWords[index]=this.constant.convertNumberToWords(val.business_volume_amount);\n });\n this.neighbourhoodForm.controls['referencecheck_list'].setValue(referencecheck_list);\n \n }else\n {\n this.addreferance();\n }\n }else\n {\n this.addneighbourhood();\n this.addreferance();\n }\n })\n }\n\n /*Image SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constant.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n // this.imageDisplay.push(this.imageBucket)\n // console.log(\"length\",this.imageDisplay.length)\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_organisation_owner').value\n value.get('other_organisation_owner').setValue(this.constant.sentenceCase(name));\n }\n\n\n}\n \n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder,FormArray,FormControl,Validators} from '@angular/forms';\n// import { t } from '@angular/core/src/render3';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { ToastProvider } from '../../../providers/common-provider/toast';\nimport { CameraProvider } from '../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionFinalRemarkPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-final-remark',\n templateUrl: 'pd-question-final-remark.html',\n})\nexport class PdQuestionFinalRemarkPage {\n\n m_remarkTypeCustomerBehaviour:any=[];\n\n users:any;\n pdDetails:any;\n pdid:any;\n FormId:any;\n _finalRemarkForm:FormGroup;\n m_recommendationList: any=[];\n imageDisplay: any=[];\n imageBucket: any=[];\n tab: any='0';\n product_abbr: any;\n lender_short_name : any;\n mode_of_transport_values=[{'id':'two_wheeler','name':'Two Wheeler'},\n {'id':'four_wheeler','name':'Four Wheeler'},\n {'id':'public_transport','name':'Public Transport'},\n {'id':'others','name':'Others'}]\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb:FormBuilder,\n public qustcat:QuestionCategoryProvider,public aws:AwsServiceProvider,\n public toast:ToastProvider,private cameraProvider:CameraProvider,private loading:LoadingProvider,private constantProvider:ConstantsProvider) {\n this.pdDetails=this.navParams.get('pdDetails');\n this.pdid=this.pdDetails.pd_id\n this.FormId=this.navParams.get('FormId');\n this.users=aws.getlocale();\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n \n this._finalRemarkForm=this.fb.group({\n fk_createdby:[this.users],\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid:[this.pdid],\n formid:[this.FormId.form_id],\n final_custormer_remark_type:[null,Validators.compose([Validators.required])],\n final_other_customer_behaviour:[null],\n is_service_provided:[null],\n final_form_remarks:[null],\n pd_officers_recommendation:[null],\n others_pd_officers_recommendation:[''],\n // reason_for_positive:[''],\n // reason_for_negative:[''],\n // reason_for_refer_to_credit:[''],\n recommendation_positive:this.fb.array([]),\n recommendation_negative:this.fb.array([]),\n recommendation_refer_to_credit:this.fb.array([]),\n\n was_the_pd_address_ogl:[''],\n mode_of_transport_during_visit:['',Validators.compose([Validators.required])],\n others_transport:['',Validators.compose([Validators.required])]\n \n })\n\n if(this.lender_short_name == 'CLIX' || this.product_abbr == 'LAEP'){ \n this._finalRemarkForm.addControl('outlet_location', new FormControl('', Validators.required)) ;\n this._finalRemarkForm.addControl('is_competition', new FormControl(''));\n this._finalRemarkForm.addControl('sealing_activity', new FormControl('')); \n this._finalRemarkForm.addControl('demolition_activity', new FormControl('')); \n }\n else{ \n this._finalRemarkForm.removeControl('outlet_location');\n this._finalRemarkForm.removeControl('is_competition');\n this._finalRemarkForm.removeControl('sealing_activity'); \n this._finalRemarkForm.removeControl('demolition_activity'); \n }\n\n this.getDropDown();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n }\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionFinalRemarkPage');\n this.getFinalRemark();\n this.getPDImages();\n \n }\n ionViewCanLeave(){\n console.log(\"dirty\",this._finalRemarkForm.dirty);\n if(this._finalRemarkForm.dirty){\n \n return new Promise((resolve,reject)=>{\n let alert=this.toast.setAlert(\"Data will be Lost\",\"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data)=>{\n console.log(\"d\",data);\n if(data== false){\n reject();\n return true;\n }\n else{\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n \n }\n else{\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n console.log(\"d\", data);\n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n \n }\n \n }\ngetDropDown(){\n this.qustcat.getcommondrop('CUSTOMERBEHAVIOUR').subscribe(res=>{\n this.m_remarkTypeCustomerBehaviour=res['records'].filter(data=>data.isactive==1)\n })\n this.qustcat.getcommondrop('PDOFFICERRECOMMENDATIONS').subscribe(res=>{\n this.m_recommendationList=res['records'].filter(val=>val.pdofficer_recommendation_id!=1)\n })\n}\ncreateRecomendationPositive(data){\n console.log(\"val\",data)\n return this.fb.group({\n reason_for_positive: data != null ? [data.reason_for_positive] : ['']\n })\n}\naddRecomendationPositive(){\n const control= this._finalRemarkForm.controls['recommendation_positive'];\n control.push(this.createRecomendationPositive(null))\n}\nremoveRecomendationPositive(index){\n const control= this._finalRemarkForm.controls['recommendation_positive'];\n control.removeAt(index);\n}\ncreateRecomendationNegative(data){\n return this.fb.group({\n reason_for_negative:data !=null ? [data.reason_for_negative] : ['']\n })\n}\naddRecomendationNegative(){\n const control= this._finalRemarkForm.controls['recommendation_negative']\n control.push(this.createRecomendationNegative(null))\n}\nremoveRecomendationNegative(index){\n const control= this._finalRemarkForm.controls['recommendation_negative']\n control.removeAt(index)\n}\ncreateRecomendationCreditRefer(data){\n return this.fb.group({\n reason_for_refer_to_credit:data!=null ? [data.reason_for_refer_to_credit] : ['']\n })\n}\naddRecomendationCreditRefer(){\n const control= this._finalRemarkForm.controls['recommendation_refer_to_credit']\n control.push(this.createRecomendationCreditRefer(null));\n}\nremoveRecomendationCreditRefer(index){\n const control= this._finalRemarkForm.controls['recommendation_refer_to_credit']\n control.removeAt(index)\n}\n\nRecommendationChange(e) {\n // console.log('Event',e);\n let recommendationPositiveCtrl: any = this._finalRemarkForm.get('recommendation_positive') as FormArray;\n let recommendationNegativeCtrl: any = this._finalRemarkForm.get('recommendation_negative') as FormArray;\n let recommendationReferToCredit: any = this._finalRemarkForm.get('recommendation_refer_to_credit') as FormArray;\n\n if (e == 1) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValidators([Validators.required]);\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n\n recommendationNegativeCtrl.removeAt(i + 1);\n\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[0];\n\n recommendationNegativeCtrl.controls['reason_for_negative'].setValue('');\n recommendationNegativeCtrl.controls['reason_for_negative'].clearValidators();\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n\n\n }\n }\n\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl.removeAt(i + 1);\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[0];\n recommendationPositiveCtrl.controls['reason_for_positive'].clearValidators();\n recommendationPositiveCtrl.controls['reason_for_positive'].setValue('');\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n recommendationReferToCredit.removeAt(i + 1);\n\n recommendationReferToCredit = recommendationReferToCredit.controls[0];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValue('');\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].clearValidators();\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n }\n }\n \n\n }\n if (e == 2) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].clearValidators();\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValue('');\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n recommendationReferToCredit.removeAt(i + 1);\n\n recommendationReferToCredit = recommendationReferToCredit.controls[0];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValue('');\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].clearValidators();\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n\n }\n }\n\n // this._finalRemarkForm.controls['reason_for_positive'].setValidators([Validators.required]);\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[i];\n recommendationPositiveCtrl.controls['reason_for_positive'].setValidators([Validators.required]);\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n\n recommendationNegativeCtrl.removeAt(i + 1);\n\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[0];\n\n recommendationNegativeCtrl.controls['reason_for_negative'].setValue('');\n recommendationNegativeCtrl.controls['reason_for_negative'].clearValidators();\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n\n }\n }\n\n\n }\n\n if (e == 3) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValue('');\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].clearValidators();\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n recommendationReferToCredit.removeAt(i + 1);\n\n recommendationReferToCredit = recommendationReferToCredit.controls[0];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValue('');\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].clearValidators();\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n }\n }\n\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl.removeAt(i + 1);\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[0];\n recommendationPositiveCtrl.controls['reason_for_positive'].clearValidators();\n recommendationPositiveCtrl.controls['reason_for_positive'].setValue('');\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[i];\n recommendationNegativeCtrl.controls['reason_for_negative'].setValidators([Validators.required]);\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n }\n }\n // this._finalRemarkForm.controls['reason_for_negative'].setValidators([Validators.required]);\n\n }\n if (e == 4) {\n\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].setValue('');\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].clearValidators();\n this._finalRemarkForm.controls['others_pd_officers_recommendation'].updateValueAndValidity();\n\n if (recommendationReferToCredit.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationReferToCredit.controls.length; i++) {\n\n recommendationReferToCredit = recommendationReferToCredit.controls[i];\n\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].setValidators([Validators.required]);\n recommendationReferToCredit.controls['reason_for_refer_to_credit'].updateValueAndValidity();\n\n }\n }\n\n if (recommendationNegativeCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationNegativeCtrl.controls.length; i++) {\n\n recommendationNegativeCtrl.removeAt(i + 1);\n\n recommendationNegativeCtrl = recommendationNegativeCtrl.controls[0];\n\n recommendationNegativeCtrl.controls['reason_for_negative'].setValue('');\n recommendationNegativeCtrl.controls['reason_for_negative'].clearValidators();\n recommendationNegativeCtrl.controls['reason_for_negative'].updateValueAndValidity();\n\n }\n }\n\n if (recommendationPositiveCtrl.controls.length > 0) {\n let i: number = 0;\n for (i; i < recommendationPositiveCtrl.controls.length; i++) {\n recommendationPositiveCtrl.removeAt(i + 1);\n recommendationPositiveCtrl = recommendationPositiveCtrl.controls[0];\n recommendationPositiveCtrl.controls['reason_for_positive'].clearValidators();\n recommendationPositiveCtrl.controls['reason_for_positive'].setValue('');\n recommendationPositiveCtrl.controls['reason_for_positive'].updateValueAndValidity();\n }\n }\n }\n}\n getFinalRemark(){\n let saveRecords={'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdid,'pd_form_id':this.FormId.form_id}\n this.qustcat.retiverForm(saveRecords).subscribe(data=>{\n if(data['dataStatus']==true){\n this._finalRemarkForm.controls.final_custormer_remark_type.setValue(data['records'].final_custormer_remark_type);\n \n this._finalRemarkForm.controls.final_other_customer_behaviour.setValue(data['records'].final_other_customer_behaviour);\n this._finalRemarkForm.controls.is_service_provided.setValue(data['records'].is_service_provided);\n this._finalRemarkForm.controls.pd_officers_recommendation.setValue(data['records'].pd_officers_recommendation);\n this._finalRemarkForm.controls.others_pd_officers_recommendation.setValue(data['records'].others_pd_officers_recommendation)\n this._finalRemarkForm.controls.was_the_pd_address_ogl.setValue(data['records'].was_the_pd_address_ogl);\n this._finalRemarkForm.controls.mode_of_transport_during_visit.setValue(data['records'].mode_of_transport_during_visit)\n this._finalRemarkForm.controls.others_transport.setValue(data['records'].others_transport);\n this.setValidation();\n // this._finalRemarkForm.controls.reason_for_positive.setValue(data['records'].reason_for_positive)\n // this._finalRemarkForm.controls.reason_for_refer_to_credit.setValue(data['records'].reason_for_refer_to_credit);\n // this._finalRemarkForm.controls.reason_for_negative.setValue(data['records'].reason_for_negative);\n if(data['records'].recommendation_positive.length>0){\n let recommendationPositiveCtrl: any = this._finalRemarkForm.get('recommendation_positive') as FormArray;\n data['records'].recommendation_positive.forEach((val,index)=>{\n console.log(\"for\",val);\n if(val.reason_for_positive != null){\n let obj={'reason_for_positive':val.reason_for_positive};\n recommendationPositiveCtrl.push(this.createRecomendationPositive(obj));\n }\n })\n }\n if(data['records'].recommendation_negative.length>0){\n let recommendationNegativeCtrl: any = this._finalRemarkForm.get('recommendation_negative') as FormArray;\n data['records'].recommendation_negative.forEach((val,index)=>{\n console.log(\"for\",val);\n let obj={'reason_for_negative':val.reason_for_negative};\n recommendationNegativeCtrl.push(this.createRecomendationNegative(obj))\n })\n }\n if(data['records'].recommendation_refer_to_credit.length>0){\n let recommendationReferToCredit: any = this._finalRemarkForm.get('recommendation_refer_to_credit') as FormArray;\n data['records'].recommendation_refer_to_credit.forEach(val=>{\n let obj={'reason_for_refer_to_credit':val.reason_for_refer_to_credit};\n recommendationReferToCredit.push(this.createRecomendationCreditRefer(obj))\n })\n }\n this._finalRemarkForm.controls.final_form_remarks.setValue(data['records'].final_form_remarks);\n\n if(this.lender_short_name == 'CLIX' || this.product_abbr == 'LAEP'){\n \n this._finalRemarkForm.controls.outlet_location.setValue(data['records'].outlet_location);\n this._finalRemarkForm.controls.is_competition.setValue(data['records'].is_competition);\n this._finalRemarkForm.controls.sealing_activity.setValue(data['records'].sealing_activity); \n this._finalRemarkForm.controls.demolition_activity.setValue(data['records'].demolition_activity); \n this.clixChange(data['records'].is_competition,1);\n this.clixChange(data['records'].sealing_activity,2);\n this.clixChange(data['records'].demolition_activity,3);\n \n if(data['records'].is_competition ==true){ this._finalRemarkForm.controls.appx_outlet_or_stores.setValue(data['records'].appx_outlet_or_stores);}\n if(data['records'].sealing_activity ==true){ this._finalRemarkForm.controls.comment_of_demolition_activity.setValue(data['records'].comment_of_demolition_activity);\n this._finalRemarkForm.controls.demolition_activity_pic.setValue(data['records'].demolition_activity_pic); }\n if(data['records'].demolition_activity ==true) {this._finalRemarkForm.controls.comment_of_sealing_activity.setValue(data['records'].comment_of_sealing_activity); \n this._finalRemarkForm.controls.sealing_activity_pic.setValue(data['records'].sealing_activity_pic); }\n }\n\n }\n else{\n let recommendationPositiveCtrl: any = this._finalRemarkForm.get('recommendation_positive') as FormArray;\n recommendationPositiveCtrl.push(this.createRecomendationPositive(null));\n let recommendationNegativeCtrl: any = this._finalRemarkForm.get('recommendation_negative') as FormArray;\n recommendationNegativeCtrl.push(this.createRecomendationNegative(null));\n let recommendationReferToCredit: any = this._finalRemarkForm.get('recommendation_refer_to_credit') as FormArray;\n recommendationReferToCredit.push(this.createRecomendationCreditRefer(null));\n }\n })\n \n }\n\n clixChange(e,flag){\n if(flag == 1){ \n console.log(e,flag);\n e==true ? this._finalRemarkForm.addControl('appx_outlet_or_stores', new FormControl('', Validators.required)) : this._finalRemarkForm.removeControl('appx_outlet_or_stores');\n }\n if(flag == 2){\n console.log(e,flag);\n e==true ? this._finalRemarkForm.addControl('comment_of_demolition_activity', new FormControl('', Validators.required)) : this._finalRemarkForm.removeControl('comment_of_demolition_activity');\n e==true ? this._finalRemarkForm.addControl('demolition_activity_pic', new FormControl('')) : this._finalRemarkForm.removeControl('demolition_activity_pic');\n }\n if(flag == 3){\n console.log(e,flag);\n e==true ? this._finalRemarkForm.addControl('comment_of_sealing_activity', new FormControl('', Validators.required)) : this._finalRemarkForm.removeControl('comment_of_sealing_activity');\n e==true ? this._finalRemarkForm.addControl('sealing_activity_pic', new FormControl('')) : this._finalRemarkForm.removeControl('sealing_activity_pic');\n }\n }\n\n saveFinalRemark(){\n if(this._finalRemarkForm.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields marked with '*' \")\n }\n else{\n var answerData=this._finalRemarkForm.value\n //To Remove The \"Null\" With Key also\n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n this.qustcat.saveForm(answerData).subscribe(res=>{\n if(res['dataStatus']==true){\n //TO CHANGE THE FORM STATE \n this._finalRemarkForm.reset(this._finalRemarkForm.value);\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Sorry!! Something Went Wrong\");\n }\n });\n }\n }\n\n ImageUpload(Flag : any){ \n if(Flag == 1){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this._finalRemarkForm.controls['demolition_activity_pic'].setValue(res);\n }\n else{\n this._finalRemarkForm.controls['demolition_activity_pic'].setValue('');\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n else if(Flag == 2){\n this.cameraProvider.getpicture().then(res=>{\n if(res != 'error'){\n this._finalRemarkForm.controls['sealing_activity_pic'].setValue(res);\n }\n else{\n this._finalRemarkForm.controls['sealing_activity_pic'].setValue('');\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n }\n}\n\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.FormId.form_id,'company_id':null}\n this.qustcat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\n\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\ncapture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.FormId.form_id,\n 'images':this.imageBucket,\n 'company_id':'',\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustcat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n setValidation(){\n console.log(\"enter\");\n if(this._finalRemarkForm.controls['mode_of_transport_during_visit'].value == 'others'){\n this._finalRemarkForm.controls['others_transport'].setValue('');\n this._finalRemarkForm.controls['others_transport'].setValidators(Validators.compose([Validators.required]))\n this._finalRemarkForm.controls['others_transport'].updateValueAndValidity()\n }\n else{\n this._finalRemarkForm.controls['others_transport'].setValue('');\n this._finalRemarkForm.controls['others_transport'].clearValidators();\n this._finalRemarkForm.controls['others_transport'].updateValueAndValidity()\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-final-remark/pd-question-final-remark.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { PdQuestionSupplierInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info';\nimport { PdQuestionClientInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info';\nimport { PdQuestionStockInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info';\nimport { PdQuestionBusinessInfoPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info';\nimport { PdQuestionBusinessAssetsPage } from '../../../pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets'\nimport {PdQuestionBusinessBankingPage} from '../../../pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking'\nimport {PdQuestionFinancialInfoPage} from '../../../pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info'\nimport {PdQuestionAssessedDashPage} from '../../../pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash'\nimport {PdQuestionFuturePlansAndBusinessEnvironmentPage} from '../../../pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment';\n\n/**\n * Generated class for the PdQuestionBusinessGroupPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-business-group',\n templateUrl: 'pd-question-business-group.html',\n})\nexport class PdQuestionBusinessGroupPage {\n \n FormId: any;\n pdDetails: any = [];\n existCompanyList: any = [];\n waitLoading:boolean;\n count:number;\n forms_order:any=[]\n\n constructor(public navCtrl: NavController, \n public navParams: NavParams,\n public qustCat:QuestionCategoryProvider){\n \n this.pdDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n // this.getCompanyListForBusiness(); \n \n\n }\n ionViewCanEnter()\n {\n this.getCompanyListForBusiness(); \n //this.colorChange();\n\n }\n \n /** To Get General Form's Company List */\n getCompanyListForBusiness(): void{\n this.qustCat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(data=>{\n if(data.dataStatus){\n this.existCompanyList = data.records.filter(val =>val.is_active);\n // let forms=Object.keys(this.existCompanyList.form_status).map(function (key){\n // return this.existCompanyList.form_status[key]\n // })\n //console.log(forms)\n // console.log(this.existCompanyList)\n this.existCompanyList.forEach((key,ele)=>{\n this.forms_order.push(key.form_status)\n })\n console.log(this.forms_order)\n this.forms_order=this.forms_order.filter(val=>val.isAnswerable == true)\n console.log(this.forms_order)\n // this.existCompanyList.forEach(element=>{\n // console.log(element);\n // })\n \n \n // this.existCompanyList.array.forEach(element => {\n // console.log(element)\n // });\n \n \n // this.forms_order=this.existCompanyList.form_status.filter(val=>val.isAnswerable==true)\n if(this.existCompanyList.length==1){\n this.count=0\n }\n this.waitLoading = true;\n }\n else {\n this.waitLoading = false;\n }\n })\n }\n \n\n /** To Get Related Form Details */\n OnSelectBusinessGroupForms(details: any, company: any) {\n \n this.pdDetails.company_id = company.company_order_id;\n this.pdDetails.company_name = company.company_name;\n this.pdDetails.business_entity_type = company.business_entity_type;\n this.pdDetails.business_entity_type_other = company.business_entity_type_other;\n this.pdDetails.business_years = company.business_years;\n this.pdDetails.business_month = company.business_month;\n console.log(details.form_id);\n \n if(details.form_id==1){\n this.navCtrl.push(PdQuestionSupplierInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n }\n if(details.form_id==2){\n this.navCtrl.push(PdQuestionClientInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==11){\n this.navCtrl.push(PdQuestionStockInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==13){\n this.navCtrl.push(PdQuestionBusinessInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==14){\n this.navCtrl.push(PdQuestionFinancialInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==15){\n this.navCtrl.push(PdQuestionSupplierInfoPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==21){\n this.navCtrl.push(PdQuestionBusinessBankingPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==22){\n this.navCtrl.push(PdQuestionBusinessAssetsPage,{'formDetails':details,'pdDetails':this.pdDetails});\n \n }\n if(details.form_id==16){\n this.navCtrl.push(PdQuestionAssessedDashPage,{'formDetails':details,'pdDetails':this.pdDetails});\n }\n if(details.form_id==23){\n this.navCtrl.push(PdQuestionFuturePlansAndBusinessEnvironmentPage,{'formDetails':details,'pdDetails':this.pdDetails});\n }\n\n\n}\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-group.ts","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service';\nimport { ToastProvider } from '../../../../providers/common-provider/toast';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder,FormArray,Validator, Validators, FormControl } from '@angular/forms';\nimport { createPipe } from '@angular/compiler/src/core';\nimport { elementAt, takeUntil } from 'rxjs/operators';\nimport { ConstantsProvider } from '../../../../providers/constants/constants'\nimport { Subject, ReplaySubject } from 'rxjs';\nimport { searchValue } from '../../search'\nimport { CameraProvider } from '../../../../providers/common-provider/camera'\nimport { LoadingProvider } from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionBusinessInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-business-info',\n templateUrl: 'pd-question-business-info.html',\n})\nexport class PdQuestionBusinessInfoPage {\n stateList: any = [];\n users: any; formdetails: any;\n FormId: any;\n pdDetails: any;\n businessForm: FormGroup;\n applicants: any = [];\n businessEntityTypeList: any = {\n business_entity_type_id: String,\n business_entity_type_name: String,\n sourcsection_labeleName: String\n };\n generalExistEntityType: string\n generalExistEntityType_other: string;\n generalExistBusinessYear: Number;\n generalExistBusinessMonth: Number;\n pdid: any;\n step: number\n\n relationData: any = [];\n industryData: any = [];\n activityData: any = [];\n relativeNames: any;\n companyRelationShipList: any = []\n countryDataList: any = []\n exist_status: any;\n\n filterCityList: any = [];\n errorMessage: any = [];\n appxSalaryAmtInwords: any;\n titleData: any = []\n personsList: any = []\n\n ManufacturingChecked: boolean;\n RetailedChecked: boolean;\n WholeSalesChecked: boolean;\n ServiceChecked: boolean;\n ExportFlag: boolean = false;\n bankList: any = [];\n bankListValue: any = [];\n temp_additiondetailofposmachine: any = []\n isreadonlyyear: any = [];\n isreadonlymonth: any = [];\n EntityTypeFlag: boolean = false\n\n yearErrorMessage: any = [];\n monthErrorMessage: any = [];\n errorMessageForExistTotalWorkExperience: any = [];\n countryDataListValue: any = [];\n product_abbr: any;\n lender_short_name: any;\n\n @ViewChild('shareholding') share_focus: ElementRef\n private search: searchValue[]\n protected _onDestroy = new Subject();\n public filteredCity: ReplaySubject = new ReplaySubject(1);\n //public filterCity=new Rx.Subject()\n public filteredState: ReplaySubject = new ReplaySubject(1)\n public filteredCountry: ReplaySubject = new ReplaySubject(1)\n cityData: any = []\n cityDataValue: any = []\n imageDisplay: any[];\n imageBucket: any = [];\n tab: string = '0';\n complete_status: boolean = false;\n\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws: AwsServiceProvider, public toast: ToastProvider,\n public qustCat: QuestionCategoryProvider, public fb: FormBuilder, public cons: ConstantsProvider,\n private loading: LoadingProvider, private cameraProvider: CameraProvider) {\n this.getStateCityDet();\n // console.log(typeof this.filteredCity)\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid = this.pdDetails.pd_id\n\n this.formdetails = this.navParams.get('formDetails');\n\n this.FormId = this.formdetails.form_id;\n this.users = this.aws.getlocale();\n\n this.applicants = this.pdDetails.applicat_details;\n console.log(\"pd\", this.pdDetails);\n this.generalExistEntityType = this.pdDetails.business_entity_type\n this.generalExistEntityType_other = this.pdDetails.business_entity_type_other\n this.generalExistBusinessYear = this.pdDetails.business_years;\n this.generalExistBusinessMonth = this.pdDetails.business_month;\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n this.step = 0\n\n\n\n // this.initBusinessForm();\n // this.getBuisnessDetails();\n\n this.businessForm = this.fb.group({\n fk_createdby: [this.users],\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: [this.FormId],\n company_id: this.pdDetails.company_id,\n partners: this.fb.array([]),\n persons_with_relationships: this.fb.array([]),\n select_business_activity_type: this.fb.array([]),\n manufacturing_activity_details: this.fb.array([]),\n retail_trading_activity_details: this.fb.array([]),\n wholesale_trading_activity_details: this.fb.array([]),\n service_provider_activity_details: this.fb.array([]),\n // others_activity_details:this.fb.array([]),\n export_sale_of_total_sales: ['', Validators.compose([Validators.max(100), Validators.min(0)])],\n // applicant_use_mobile_wallets:[''],\n // applicant_use_pos_machines:[''],\n // no_of_pos_machines:[''],\n seasonality: [''],\n employees_total: ['', Validators.compose([Validators.required])],\n employees_permanent: ['', Validators.compose([Validators.required])],\n employees_temporary: ['', Validators.compose([Validators.required])],\n employees_appx_salary: [''],\n was_the_company_name_board_sighted: ['', Validators.compose([Validators.required])],\n officer_total: ['', Validators.compose([Validators.required])],\n shop_eat_act_cert: ['', Validators.compose([Validators.required])],\n // shop_eat_act_cert_pic:['', Validators.compose([Validators.required])],\n gst_Regn_cert: ['', Validators.compose([Validators.required])],\n //export_import_cert: [''],\n //factory_cert: [''],\n //practice_cert: [''],\n pf_regn: ['', Validators.compose([Validators.required])],\n esic_regn: ['', Validators.compose([Validators.required])],\n other_documents: [''],\n documents: this.fb.array([]),\n business_remarks: ['']\n })\n this.getdropdown();\n\n // this.initBusinessForm();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBusinessInfoPage');\n this.getPDImages();\n\n\n }\n getdropdown() {\n\n this.qustCat.getcommondrop('RELATIONSHIPS').subscribe(data => {\n\n data['records'].forEach(val => {\n if (val.isactive == 1) {\n this.relationData.push(val);\n }\n })\n });\n this.qustCat.getcommondrop('BUSINESSENTITYTYPE').subscribe(data => {\n if (data['dataStatus'] == true) {\n let filterList = data['records'].filter(val => val.business_entity_type_id == this.generalExistEntityType);\n console.log(\"Filter\", filterList)\n if (filterList.length > 0) {\n this.businessEntityTypeList.business_entity_type_id = filterList[0].business_entity_type_id == 1;\n this.businessEntityTypeList.business_entity_type_name = filterList[0].business_entity_type_id != 1 ? filterList[0].business_entity_type_name : this.generalExistEntityType_other;\n this.businessEntityTypeList.section_label = filterList[0].business_entity_type_id != 1 ? filterList[0].section_label : this.generalExistEntityType_other;\n\n if (this.businessEntityTypeList.business_entity_type_name == 'OPC (One Person Company)' || this.businessEntityTypeList.business_entity_type_name == 'Sole proprietorship') {\n this.EntityTypeFlag = true;\n }\n }\n }\n\n });\n this.qustCat.getcommondrop('INDUSTRYCLASSIFICATION').subscribe(data => {\n\n data['records'].forEach(val => {\n if (val.isactive == 1) {\n this.industryData.push(val);\n }\n })\n });\n\n this.qustCat.getcommondrop('TYPEOFACTIVITY').subscribe(data => {\n\n data['records'].forEach(val => {\n if (val.isactive == 1 && val.type_of_activity_id != 1) {\n this.activityData.push(val);\n }\n })\n });\n\n this.qustCat.getcommondrop('COMPANYRELATIONSHIPS').subscribe(data => {\n this.companyRelationShipList = data['records'].filter(val => val.isactive == 1);\n\n });\n\n\n\n this.qustCat.getcommondrop('COUNTRY').subscribe(data => {\n this.countryDataList = data['records'].filter(val => val.isactive == 1);\n this.filteredCountry.next(this.countryDataList.slice());\n });\n this.qustCat.getcommondrop('TITLES').subscribe(data => {\n this.titleData = data['records'].filter(val => val.isactive == 1);\n })\n this.qustCat.getAllPersonsName(this.pdid).subscribe(data => {\n if (data.dataStatus) {\n\n this.personsList = data['record'].filter(val => val.applicant_type == 1)\n\n }\n })\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(data => {\n this.bankList = data['records'].filter(val => val.isactive == 1 && val.lender_type == 1);\n this.bankListValue = this.bankList.slice();\n })\n\n }\n getStateCityDet() {\n this.qustCat.getStateCityDetails().subscribe(data => {\n\n\n this.stateList = data.records\n this.filteredState.next(this.stateList.slice())\n\n this.getDetails();\n });\n\n\n }\n changeOfStartedBusiness(members, i, e) {\n if (e == 'yes') {\n members.controls.current_business_experiance_year.setValue(this.generalExistBusinessYear);\n this.isreadonlyyear[i] = this.generalExistBusinessYear != undefined ? true : false;\n members.controls.current_business_experiance_month.setValue(this.generalExistBusinessMonth);\n this.isreadonlymonth[i] = this.generalExistBusinessMonth != undefined ? true : false;\n }\n else {\n this.isreadonlyyear[i] = false;\n this.isreadonlymonth[i] = false;\n }\n }\n getDetails() {\n\n let params: any = {};\n params.parent_pdid = this.pdDetails.parent_pd_id\n params.pd_id = this.pdid;\n params.pd_form_id = 13\n params.company_id = this.pdDetails.company_id;\n this.qustCat.retiverForm(params).subscribe(data => {\n console.log('data[records]', data['records']);\n let businessVal = data['records']\n let constVal: any;\n\n\n const Partnr: any = this.businessForm.controls['partners'];\n\n const control1: any = this.businessForm.controls['persons_with_relationships'];\n\n const business_activity: any = this.businessForm.controls['select_business_activity_type'];\n\n const manufacture_details: any = this.businessForm.controls['manufacturing_activity_details'];\n const retailControl: any = this.businessForm.controls['retail_trading_activity_details'];\n const wholesaleControl: any = this.businessForm.controls['wholesale_trading_activity_details'];\n const serviceProviderControl: any = this.businessForm.controls['service_provider_activity_details'];\n // const othersControl:any=this.businessForm.controls['others_activity_details'];\n const otherDoc = this.businessForm.controls['documents'];\n //retailControl.push(this.manufactureDetails());\n //manufacture_details.push(this.manufactureDetails())\n\n // const india_sales:any= this.businessForm.controls['manufacturing_activity_details']['controls'][0].controls.india_where_sale_done;\n //india_sales.push(this.indiaSalesDone())\n //const country_sale:any=this.businessForm.controls['manufacturing_activity_details']['controls'][0].controls.countries_where_export_done;\n // country_sale.push(this.createCountrySale());\n //const max_sale_state:any= this.businessForm.controls['manufacturing_activity_details']['controls'][0].controls.max_sale_state_name;\n //max_sale_state.push(this.maxSaleState())\n this.product_abbr == 'LAEP' ? this.businessForm.addControl('fire_noc', new FormControl(null, Validators.compose([Validators.required]))) : this.businessForm.removeControl('fire_noc');\n if (data['status'] == 200) {\n\n let DocArray: any;\n let PartnrArray = Object.keys(data['records'].partners).map(function (key) {\n return data['records'].partners[key];\n })\n\n if (PartnrArray.length == 0) {\n Partnr.push(this.createPartners())\n }\n else {\n PartnrArray.forEach((datas, key) => {\n Partnr.push(this.createPartners());\n if (datas.partner_name == 'Others') {\n Partnr.controls[key].addControl('partner_other_name', new FormControl('', Validators.required))\n }\n if (parseInt(datas.total_business_experiance) > parseInt(datas.current_business_experiance_year)) {\n Partnr.controls[key].addControl('total_business_previous_experience', new FormControl('', Validators.required))\n }\n else {\n Partnr.controls[key].removeControl('total_business_previous_experience')\n }\n });\n }\n if (data['records'].persons_with_relationships) {\n let PartnrArray1 = Object.keys(data['records'].persons_with_relationships).map(function (key) {\n return data['records'].persons_with_relationships[key];\n })\n if (PartnrArray1.length > 0) {\n PartnrArray1.forEach((datas, key) => {\n control1.push(this.createRelationShip());\n })\n businessVal.persons_with_relationships = PartnrArray1\n\n }\n else {\n //control1.push(this.createRelationShip());\n businessVal.persons_with_relationships = []\n }\n }\n else {\n businessVal.persons_with_relationships = []\n\n }\n\n\n if (data['records'].other_documents == 'yes') {\n DocArray = Object.keys(data['records'].documents).map(function (key) {\n return data['records'].documents[key];\n });\n DocArray.forEach(datas => {\n otherDoc.push(this.createDocument());\n });\n } else {\n DocArray = [{ document: '', document_pic: '' }];\n otherDoc.push(this.createDocument());\n }\n businessVal.parent_pdid = this.pdDetails.parent_pd_id\n businessVal.pdid = this.pdid;\n businessVal.formid = 13;\n businessVal.company_id = this.pdDetails.company_id;\n businessVal.fk_createdby = this.users;\n //businessVal.designation = DesgnArray;\n businessVal.partners = PartnrArray;\n // businessVal.persons_with_relationships=PartnrArray1\n businessVal.documents = DocArray\n\n if (businessVal.employees_appx_salary) {\n this.appxSalaryAmtInwords = this.cons.convertNumberToWords(businessVal.employees_appx_salary);\n }\n\n\n // this.businessForm.controls['partners']['controls'].value.partner_other_name='dd'\n // this.businessForm.setValue(businessVal);\n //this.businessForm.value.seasonality\n let activityData = this.activityData.map(item => ({ name: item.name, type_of_activity_id: item.type_of_activity_id }))\n let exist_activity_data: any = [];\n if (data['records'].select_business_activity_type) {\n exist_activity_data = Object.keys(data['records'].select_business_activity_type).map(function (key) {\n return data['records'].select_business_activity_type[key].type_of_activity_id;\n });\n }\n\n let actual_businees_activity = activityData.map(item => item.type_of_activity_id);\n let check_exist_businees_activity = actual_businees_activity.map((id, index) => {\n if (exist_activity_data.indexOf(id) < 0) {\n activityData[index].exist_status = 0;\n return activityData[index];\n }\n else {\n activityData[index].exist_status = 1;\n return activityData[index];\n }\n }).filter(item => item != undefined);\n\n if (check_exist_businees_activity.length > 0) {\n check_exist_businees_activity.forEach((val, index) => {\n business_activity.push(this.createBusinessActivity(val));\n // this.businessForm.controls['select_business_activity_type'].value[index].exist_status=val.exist_status\n\n });\n\n businessVal.select_business_activity_type = check_exist_businees_activity;\n }\n // business_activity.push(this.createBusinessActivity())\n\n // this.businessForm.controls['select_business_activity_type'].setValue(check_exist_businees_activity)\n\n if (data['records'].manufacturing_activity_details) {\n let selectedManufacturing = Object.keys(data['records'].manufacturing_activity_details).map(function (key) {\n return data['records'].manufacturing_activity_details[key];\n });\n if (selectedManufacturing.length > 0) {\n selectedManufacturing.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('export_import_cert');\n selectedManufacturing.length > 0 ? this.businessForm.addControl('factory_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('factory_cert');\n\n selectedManufacturing.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'MActivity', index)\n manufacture_details.push(this.manufactureDetails())\n if (element.area_of_sale == 'Within India') {\n\n manufacture_details.controls[index].addControl('india_where_sale_done', this.fb.array([]))\n manufacture_details.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n manufacture_details.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n })\n }\n else if (element.area_of_sale == 'Export') {\n manufacture_details.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = manufacture_details.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n manufacture_details.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n manufacture_details.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n manufacture_details.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = manufacture_details.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n\n manufacture_details.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = manufacture_details.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n\n }\n });\n businessVal.manufacturing_activity_details = selectedManufacturing;\n\n\n }\n else {\n\n businessVal.manufacturing_activity_details = [];\n }\n }\n else {\n\n businessVal.manufacturing_activity_details = [];\n }\n\n if (data['records'].retail_trading_activity_details) {\n\n let selectedRetail = Object.keys(data['records'].retail_trading_activity_details).map(function (key) {\n return data['records'].retail_trading_activity_details[key];\n });\n if (selectedRetail.length > 0) {\n selectedRetail.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('export_import_cert');\n selectedRetail.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl('')) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n selectedRetail.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl('')) : this.businessForm.removeControl('applicant_use_pos_machines');\n selectedRetail.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('no_of_pos_machines', new FormControl('')) : this.businessForm.removeControl('no_of_pos_machines');\n selectedRetail.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('pos_machines_details', this.fb.array([])) : this.businessForm.removeControl('pos_machines_details')\n selectedRetail.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'RActivity', index)\n retailControl.push(this.manufactureDetails());\n if (element.area_of_sale == 'Within India') {\n retailControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n retailControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n retailControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n }\n else if (element.area_of_sale == 'Export') {\n retailControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = retailControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n retailControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n retailControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n retailControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = retailControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n retailControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = retailControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n });\n businessVal.retail_trading_activity_details = selectedRetail;\n }\n else {\n businessVal.retail_trading_activity_details = [];\n }\n }\n else {\n businessVal.retail_trading_activity_details = [];\n }\n\n\n // update whole sale details\n if (data['records'].wholesale_trading_activity_details) {\n let selectedWholesale = Object.keys(data['records'].wholesale_trading_activity_details).map(function (key) {\n return data['records'].wholesale_trading_activity_details[key];\n });\n if (selectedWholesale.length > 0) {\n selectedWholesale.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('export_import_cert');\n selectedWholesale.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl('')) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n selectedWholesale.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl('')) : this.businessForm.removeControl('applicant_use_pos_machines');\n selectedWholesale.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('no_of_pos_machines', new FormControl('')) : this.businessForm.removeControl('no_of_pos_machines');\n selectedWholesale.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('pos_machines_details', this.fb.array([])) : this.businessForm.removeControl('pos_machines_details')\n selectedWholesale.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'WActivity', index)\n wholesaleControl.push(this.manufactureDetails());\n if (element.area_of_sale == 'Within India') {\n wholesaleControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n wholesaleControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n wholesaleControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n }\n else if (element.area_of_sale == 'Export') {\n wholesaleControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = wholesaleControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n wholesaleControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n wholesaleControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n wholesaleControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = wholesaleControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n wholesaleControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = wholesaleControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n\n });\n businessVal.wholesale_trading_activity_details = selectedWholesale;\n }\n else {\n businessVal.wholesale_trading_activity_details = [];\n }\n }\n else {\n businessVal.wholesale_trading_activity_details = [];\n\n }\n\n\n if (data['records'].service_provider_activity_details) {\n let selectedService = Object.keys(data['records'].service_provider_activity_details).map(function (key) {\n return data['records'].service_provider_activity_details[key];\n })\n if (selectedService.length > 0) {\n selectedService.length > 0 ? this.businessForm.addControl('practice_cert', new FormControl('', Validators.required)) : this.businessForm.removeControl('practice_cert');\n selectedService.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl('')) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n selectedService.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl('')) : this.businessForm.removeControl('applicant_use_pos_machines');\n selectedService.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('no_of_pos_machines', new FormControl('')) : this.businessForm.removeControl('no_of_pos_machines');\n selectedService.length > 0 && businessVal.applicant_use_pos_machines == 'yes' ? this.businessForm.addControl('pos_machines_details', this.fb.array([])) : this.businessForm.removeControl('pos_machines_details')\n\n selectedService.forEach((element, index) => {\n this.CheckExport(element.area_of_sale, 'SPActivity', index)\n serviceProviderControl.push(this.manufactureDetails());\n\n if (element.area_of_sale == 'Within India') {\n serviceProviderControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n serviceProviderControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n serviceProviderControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n }\n else if (element.area_of_sale == 'Export') {\n serviceProviderControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n\n let innercontrol: any = serviceProviderControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n }\n else if (element.area_of_sale == 'Both') {\n serviceProviderControl.controls[index].addControl('india_where_sale_done', this.fb.array([]));\n serviceProviderControl.controls[index].addControl('pan_india_options', new FormControl('', Validators.required));\n serviceProviderControl.controls[index].addControl('max_sale_state_name', this.fb.array([]));\n element.india_where_sale_done.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('india_where_sale_done') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.indiaSalesDone())\n });\n\n element.max_sale_state_name.forEach((innerElement, innerIndex) => {\n this.filterCityData(this.stateList, innerElement.state_name, innerIndex);\n let innercontrol: any = serviceProviderControl.controls[index].get('max_sale_state_name') as FormArray;\n innerElement.stateSearch = ''\n innerElement.citySearch = ''\n innercontrol.push(this.maxSaleState())\n });\n serviceProviderControl.controls[index].addControl('countries_where_export_done', this.fb.array([]));\n element.countries_where_export_done.forEach((innerElement, innerIndex) => {\n let innercontrol: any = serviceProviderControl.controls[index].get('countries_where_export_done') as FormArray;\n innerElement.countrySearch = '';\n innercontrol.push(this.createCountrySale())\n });\n\n\n }\n });\n\n\n businessVal.service_provider_activity_details = selectedService;\n\n }\n else {\n businessVal.service_provider_activity_details = [];\n\n }\n }\n else {\n businessVal.service_provider_activity_details = [];\n\n }\n\n // if(data['records'].others_activity_details){ \n\n // // update others activity details\n // let selectedOthers = Object.keys(data['records'].others_activity_details).map(function (key) {\n // return data['records'].others_activity_details[key];\n // });\n // if(selectedOthers.length > 0) {\n // selectedOthers.forEach((element,index)=>{\n // othersControl.push(this.createOthersActivity());\n // });\n // businessVal.others_activity_details=selectedOthers;\n // }\n // else{\n // businessVal.others_activity_details=[];\n // } \n // }\n // else {\n // businessVal.others_activity_details=[];\n\n // } \n\n // dynamically add form group control\n if (data['dataStatus']) {\n\n if (data['records'].seasonality.toUpperCase() == 'YES') {\n this.businessForm.addControl('peak_period_of_business', new FormControl('', Validators.required));\n this.businessForm.addControl('month_of_business_run', new FormControl('', Validators.required));\n }\n\n\n\n }\n\n\n // this.businessForm.controls['partners'].setValue(PartnrArray);\n //this.businessForm.controls['persons_with_relationships'].setValue(PartnrArray1)\n\n // this.businessForm.controls['manufacturing_activity_details'].setValue(businessVal.manufacturing_activity_details)\n if (businessVal.applicant_use_pos_machines == 'yes') {\n //For Adding the bank search in data\n businessVal.pos_machines_details.forEach(value => {\n value.bankSearch = ''\n })\n //-----------------------\n this.businessForm.controls.no_of_pos_machines.setValue(businessVal.no_of_pos_machines);\n const posControl: any = this.businessForm.controls['pos_machines_details'];\n for (let i = 1; i <= businessVal.no_of_pos_machines; i++) {\n\n posControl.push(this.createPOSMachinesDetails(businessVal.pos_machines_details));\n }\n }\n console.log('businessVal', businessVal);\n if (data['records'].gst_Regn_cert == 'yes') { this.businessForm.addControl('gst_Regn_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('gst_Regn_cert_pic'); }\n if (data['records'].factory_cert == 'yes') { this.businessForm.addControl('factory_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('factory_cert_pic'); }\n if (data['records'].practice_cert == 'yes') { this.businessForm.addControl('practice_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('practice_cert_pic'); }\n if (data['records'].shop_eat_act_cert == 'yes') { this.businessForm.addControl('shop_eat_act_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('shop_eat_act_cert_pic'); }\n if (data['records'].pf_regn == 'yes') { this.businessForm.addControl('pf_regn_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('pf_regn_pic'); }\n if (data['records'].esic_regn == 'yes') { this.businessForm.addControl('esic_regn_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('esic_regn_pic'); }\n if (data['records'].export_import_cert == 'yes') { this.businessForm.addControl('export_import_cert_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('export_import_cert_pic'); }\n if (data['records'].fire_noc == 'yes') { this.businessForm.addControl('fire_noc_pic', new FormControl('', Validators.compose([Validators.required]))); } else { this.businessForm.removeControl('fire_noc_pic'); }\n\n this.businessForm.setValue(businessVal);\n\n\n }\n else {\n console.log('console.log 2');\n Partnr.push(this.createPartners());\n control1.push(this.createRelationShip())\n //otherDoc.push(this.createDocument());\n\n // find business activity type businees activity type list\n let activityData = this.activityData.map(item => ({ name: item.name, type_of_activity_id: item.type_of_activity_id, exist_status: 0 }))\n if (activityData.length > 0) {\n activityData.forEach(val => {\n business_activity.push(this.createBusinessActivity(val));\n });\n }\n\n }\n })\n // change business sessional\n this.businessForm.controls['seasonality'].valueChanges.subscribe(val => {\n val.toUpperCase() == 'YES' ? this.businessForm.addControl('peak_period_of_business', new FormControl('', Validators.required)) : this.businessForm.removeControl('peak_period_of_business');\n val.toUpperCase() == 'YES' ? this.businessForm.addControl('month_of_business_run', new FormControl('', Validators.required)) : this.businessForm.removeControl('month_of_business_run');\n });\n\n // if(this.businessForm.controls['gst_Regn_cert']){\n // this.businessForm.controls['gst_Regn_cert'].valueChanges.subscribe(val => {\n\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('gst_Regn_cert_pic', new FormControl('')) : this.businessForm.removeControl('gst_Regn_cert_pic');\n // });}\n // if(this.businessForm.controls['factory_cert']){\n // this.businessForm.controls['factory_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('factory_cert_pic', new FormControl('')) : this.businessForm.removeControl('factory_cert_pic');\n // });}\n // if(this.businessForm.controls['practice_cert']){\n // this.businessForm.controls['practice_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('practice_cert_pic', new FormControl('')) : this.businessForm.removeControl('practice_cert_pic');\n // });}\n // if(this.businessForm.controls['shop_eat_act_cert']){\n // this.businessForm.controls['shop_eat_act_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('shop_eat_act_cert_pic', new FormControl('')) : this.businessForm.removeControl('shop_eat_act_cert_pic');\n // });}\n // if(this.businessForm.controls['pf_regn']){\n // this.businessForm.controls['pf_regn'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('pf_regn_pic', new FormControl('')) : this.businessForm.removeControl('pf_regn_pic');\n // });}\n // if(this.businessForm.controls['esic_regn']){\n // this.businessForm.controls['esic_regn'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('esic_regn_pic', new FormControl('')) : this.businessForm.removeControl('esic_regn_pic');\n // });}\n // if(this.businessForm.controls['export_import_cert']){\n // this.businessForm.controls['export_import_cert'].valueChanges.subscribe(val => {\n // val.toUpperCase()=='YES' ? this.businessForm.addControl('export_import_cert_pic', new FormControl('')) : this.businessForm.removeControl('export_import_cert_pic');\n // });\n // }\n\n }\n\n filterCity(datasource: any, filterid: number) {\n // if(val){\n // console.log(\"val\",val)\n // return val\n // }\n\n\n if (filterid) {\n console.log(\"val filter\", filterid)\n let filter = this.stateList.filter(x => x.state_id == filterid);\n return filter.length > 0 ? filter[0].cities : [];\n }\n }\n filterCityData(datasource: any, filterid: number, index) {\n console.log(\"test\")\n console.log(filterid, index)\n\n if (filterid) {\n let filter = this.stateList.filter(x => x.state_id == filterid);\n this.cityData[index] = filter.length > 0 ? filter[0].cities : [];\n // this.filteredCity.next(this.cityData[index].slice())\n this.cityDataValue[index] = this.cityData[index].slice()\n console.log(\"filter \", this.cityDataValue[index])\n }\n // console.log(\"City value\",this.cityData[index])\n }\n\n // filter max sale options\n filterMaxSaleState(datasource: any, filterValues: any) {\n this.filterCityList = filterValues;\n if (filterValues) {\n let getOriginalStateList = datasource.map(dval => dval.state_id);\n let getStateValues = filterValues.filter(val => val.state_name).map(mapVal => mapVal.state_name);\n let setStateFilter: any = [];\n setStateFilter = getStateValues.map(x => {\n let findIndex = getOriginalStateList.indexOf(x);\n return datasource[findIndex];\n });\n return setStateFilter.length > 0 ? setStateFilter : [];\n }\n }\n filterMaxSaleCities(datasource: any, filterValues: any, selectedCites: any) {\n if (filterValues) {\n let setCityValues: any = [];\n let getOriginalStateList = datasource.map(dval => dval.state_id);\n filterValues.forEach((stateElement, statePos) => {\n selectedCites.forEach((existElement, existPos) => {\n if (stateElement == existElement.state_name && existElement.city_name.length > 0) {\n let findIndex = getOriginalStateList.indexOf(stateElement);\n findIndex = datasource[findIndex].cities;\n\n let getAllCities: any = existElement.city_name.filter(cVal => cVal == \"1\");\n // this is for throuh out states city\n if (getAllCities.length > 0) {\n setCityValues = setCityValues.concat.apply(setCityValues, findIndex);\n // console.log(\"First\",setCityValues)\n }\n // this is for seleted states city\n else {\n let check: any = findIndex.filter(function (fVal) {\n return existElement.city_name.some(function (sVal) {\n return fVal.city_id == sVal;\n });\n });\n setCityValues = setCityValues.concat.apply(setCityValues, check);\n // console.log(\"second\",setCityValues) \n\n }\n }\n\n });\n });\n return setCityValues.length > 0 ? setCityValues.filter(fVal => fVal.city_id != \"1\") : [];\n\n }\n else {\n return [];\n }\n }\n // filterMaxSaleCities(datasource: any,filterValues:any,selectedCites: any) { \n // console.log(selectedCites)\n // let existCities: any = selectedCites.filter(cfVal=>cfVal.city_name!='').map(mcVal=>mcVal.city_name);\n // console.log(\"selectd\",existCities)\n // existCities = [].concat.apply([], existCities);\n // existCities.forEach(element=>{\n // if(element== 1){\n\n // }\n // })\n // console.log(\"concat\",existCities)\n // if(filterValues){\n // let getOriginalStateList = datasource.map(dval => dval.state_id);\n // console.log(\"Original map\",getOriginalStateList)\n // let setCityFilter = filterValues.map(x => {\n // let findIndex = getOriginalStateList.indexOf(x);\n // findIndex = datasource[findIndex].cities;\n // return findIndex;\n // });\n // console.log(\"findindex\",setCityFilter)\n\n // let merged = [].concat.apply([], setCityFilter);\n // console.log(\"merge\",merged)\n\n // if(merged.length>0){\n // let check: any = merged.filter(function(fVal){\n // return existCities.some(function(sVal){\n // return fVal.city_id==sVal;\n // });\n // })\n // console.log(check);\n // return check;\n\n // }\n // else {\n // return [];\n // }\n // }\n // else {\n // return [];\n // }\n // }\n\n\n checkTotalEmployee(FormData) {\n this.businessForm.controls['employees_total'].setValue((+FormData.value.employees_permanent || 0) + (+FormData.value.employees_temporary || 0));\n }\n // checkWithExistBusinessYear(e,i){\n // if(e > this.generalExistBusinessYear){\n // this.errorMessage[i] = \"Higher than Business Vintage\";\n // }\n // else{\n // this.errorMessage[i] = '';\n // }\n // }\n\n checkWithExistBusinessYear(e, i, members) {\n\n if (+e > this.generalExistBusinessYear) {\n this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n members.controls.current_business_experiance_year.setValue('');\n }\n else {\n this.yearErrorMessage[i] = '';\n }\n }\n\n checkWithExistTotalWorkExperience(e, i, members) {\n\n if (+members.value.current_business_experiance_year > +e) {\n this.errorMessageForExistTotalWorkExperience[i] = \"Total Experience is Lower Than Experience in The Current Company\";\n members.controls.total_business_experiance.setValue('');\n }\n else {\n this.errorMessageForExistTotalWorkExperience[i] = '';\n }\n }\n\n // businees activity type change event\n changeBusinessActivity(event: any) {\n\n if (event.value.exist_status == true && event.value.type_of_activity_id == 2) {\n this.ManufacturingChecked = event.value.exist_status;\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n manufacturingControl.controls = [];\n manufacturingControl.setValue([]);\n\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 2) {\n this.ManufacturingChecked = event.value.exist_status;\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n manufacturingControl.push(this.manufactureDetails());\n\n\n }\n if (event.value.exist_status == true && event.value.type_of_activity_id == 3) {\n this.RetailedChecked = event.value.exist_status\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n retailControl.controls = [];\n retailControl.setValue([]);\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 3) {\n this.RetailedChecked = event.value.exist_status\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n retailControl.push(this.manufactureDetails());\n }\n if (event.value.exist_status == true && event.value.type_of_activity_id == 4) {\n this.WholeSalesChecked = event.value.exist_status\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n wholesaleControl.controls = [];\n wholesaleControl.setValue([]);\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 4) {\n this.WholeSalesChecked = event.value.exist_status\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n wholesaleControl.push(this.manufactureDetails());\n }\n if (event.value.exist_status == true && event.value.type_of_activity_id == 5) {\n this.ServiceChecked = event.value.exist_status\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n serviceControl.controls = [];\n serviceControl.setValue([]);\n }\n else if (event.value.exist_status == false && event.value.type_of_activity_id == 5) {\n this.ServiceChecked = event.value.exist_status\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n serviceControl.push(this.manufactureDetails());\n }\n\n // if(event.value.exist_status==true && event.value.type_of_activity_id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.controls = [];\n // othersControl.setValue([]);\n // }\n // else if(event.value.exist_status==false && event.value.type_of_activity_id==1){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.push(this.createOthersActivity());\n // }\n // check activity type for make dosument sighted filed dynamically\n this.businessForm.value.manufacturing_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0 ? this.businessForm.addControl('export_import_cert', new FormControl(this.businessForm.value.export_import_cert, Validators.required)) : this.businessForm.removeControl('export_import_cert');\n this.businessForm.value.manufacturing_activity_details.length > 0 ? this.businessForm.addControl('factory_cert', new FormControl(this.businessForm.value.factory_cert, Validators.required)) : this.businessForm.removeControl('factory_cert');\n this.businessForm.value.service_provider_activity_details.length > 0 ? this.businessForm.addControl('practice_cert', new FormControl(this.businessForm.value.practice_cert, Validators.required)) : this.businessForm.removeControl('practice_cert');\n // check activity for extra question make dynamic\n\n this.businessForm.value.service_provider_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0 ? this.businessForm.addControl('applicant_use_mobile_wallets', new FormControl(this.businessForm.value.applicant_use_mobile_wallets)) : this.businessForm.removeControl('applicant_use_mobile_wallets');\n this.businessForm.value.service_provider_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0 ? this.businessForm.addControl('applicant_use_pos_machines', new FormControl(this.businessForm.value.applicant_use_pos_machines)) : this.businessForm.removeControl('applicant_use_pos_machines');\n\n if (this.businessForm.value.service_provider_activity_details.length > 0 || this.businessForm.value.retail_trading_activity_details.length > 0 || this.businessForm.value.wholesale_trading_activity_details.length > 0) {\n if (this.businessForm.controls['applicant_use_pos_machines'] && this.product_abbr == 'LAEP') {\n this.businessForm.controls['applicant_use_pos_machines'].setValue('yes');\n }\n this.changePOSMachinesAvailablity(this.businessForm.value.applicant_use_pos_machines, 2);\n }\n\n if (this.ManufacturingChecked || this.ManufacturingChecked == undefined && this.RetailedChecked || this.RetailedChecked == undefined && this.WholeSalesChecked || this.WholeSalesChecked == undefined && this.ServiceChecked || this.ServiceChecked == undefined) {\n this.ExportFlag = false;\n }\n }\n\n\n changeManufacturingAreaSale(getDetails: any, getIndex) {\n console.log('changeManufacturingAreaSale', getDetails.value.area_of_sale);\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n if (getDetails.value.area_of_sale == \"Within India\") {\n console.log('Within India', getDetails.value.area_of_sale);\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n console.log('Export', getDetails.value.area_of_sale);\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n console.log('Both', getDetails.value.area_of_sale);\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n\n // change retail options\n changeRetailAreaSale(getDetails: any, getIndex) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n\n if (getDetails.value.area_of_sale == \"Within India\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n\n // change whole options\n changeWholesaleAreaSale(getDetails: any, getIndex) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n\n if (getDetails.value.area_of_sale == \"Within India\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n // change service provider \n changeServiceArea(getDetails: any, getIndex) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n\n if (getDetails.value.area_of_sale == \"Within India\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n\n }\n else if (getDetails.value.area_of_sale == \"Export\") {\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n else if (getDetails.value.area_of_sale == \"Both\") {\n control.controls[getIndex].removeControl('india_where_sale_done');\n control.controls[getIndex].removeControl('countries_where_export_done');\n control.controls[getIndex].removeControl('pan_india_options');\n control.controls[getIndex].removeControl('max_sale_state_name');\n control.controls[getIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[getIndex].addControl('pan_india_options', new FormControl('', Validators.required));\n control.controls[getIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n control.controls[getIndex].addControl('countries_where_export_done', this.fb.array([this.createCountrySale()]));\n }\n }\n\n\n changePanIndiaOptions(type, selectedIndex, value) {\n if (type == 1) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n else if (type == 3) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n else if (type == 4) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control.controls[selectedIndex].removeControl('india_where_sale_done');\n control.controls[selectedIndex].removeControl('max_sale_state_name');\n if (value == 'Yes') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n else if (value == 'No') {\n control.controls[selectedIndex].addControl('india_where_sale_done', this.fb.array([this.indiaSalesDone()]));\n control.controls[selectedIndex].addControl('max_sale_state_name', this.fb.array([this.maxSaleState()]));\n }\n }\n }\n\n // update partner group other form control\n changePartnerGroup(value, key) {\n let control: any = this.businessForm.get('partners') as FormArray;\n value == 'Others' ? control.controls[key].addControl('partner_other_name', new FormControl('', Validators.required)) : control.controls[key].removeControl('partner_other_name');\n }\n\n createDesignation(): FormGroup {\n return this.fb.group({\n sec_name: ['', Validators.compose([Validators.required])],\n sec_designation: ['', Validators.compose([Validators.required])],\n });\n }\n keyPress(event: any) {\n const pattern = /[0-9]/;\n\n let inputChar = String.fromCharCode(event.charCode);\n if (event.keyCode != 8 && !pattern.test(inputChar)) {\n event.preventDefault();\n }\n }\n getWorkExperience(event, key) {\n let current_experience = event.current_business_experiance_year == '' ? 0 : parseInt(event.current_business_experiance_year);\n let total_experience = event.total_business_experiance == '' ? 0 : parseInt(event.total_business_experiance);\n let control: any = this.businessForm.get('partners') as FormArray;\n if (total_experience > current_experience) {\n control.controls[key].addControl('total_business_previous_experience', new FormControl('', Validators.required))\n }\n else if (total_experience < current_experience) {\n //control.controls[key].controls['total_business_experiance'].setValue(current_experience);\n control.controls[key].removeControl('total_business_previous_experience')\n }\n\n else {\n control.controls[key].removeControl('total_business_previous_experience')\n }\n // let total ;\n // if(control.length > 0){\n // total = control.value.reduce((sum, val) => sum + +val.current_business_experiance_year, 0);\n // this.businessForm.controls.business_years.setValidators([Validators.required, Validators.min(+total)]);\n // this.businessForm.controls.business_years.updateValueAndValidity();\n // }\n }\n // Out of Total Export Sales what % of Sales is done in Albania?\n getPlaceHolderName(id) {\n let name = this.countryDataList.filter(value => value.country_id == id);\n\n return 'Out of Total Export Sales what % of Sales is done in ' + name[0].country_name + ' ?';\n // return name[0].country_name +'?';\n }\n ConvertMonthintoYear(itemrow, e, i) {\n\n console.log('datas', e, i);\n let year = itemrow.controls.current_business_experiance_year.value;\n\n let converted_month: number = e % 12;\n let converted_year: number = e / 12;\n\n itemrow.controls.current_business_experiance_year.setValue(+year + +Math.floor(converted_year));\n itemrow.controls.current_business_experiance_month.setValue(Math.floor(converted_month));\n\n // if (year > this.generalExistBusinessYear) {\n // console.log('data')\n // this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n // itemrow.controls.current_business_experiance_year.setValue('');\n // itemrow.controls.current_business_experiance_month.setValue('');\n\n // }\n // else {\n // if (year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth) {\n // this.monthErrorMessage[i] = \"Higher than Business Vintage\";\n // itemrow.controls.current_business_experiance_year.setValue('');\n // itemrow.controls.current_business_experiance_month.setValue('');\n\n // } else {\n // this.monthErrorMessage[i] = '';\n // this.yearErrorMessage[i] = '';\n // itemrow.controls.current_business_experiance_year.setValue(year);\n // itemrow.controls.current_business_experiance_month.setValue(Math.floor(converted_month));\n // }\n // }\n\n }\n\n\n\n createPartners(): FormGroup {\n return this.fb.group({\n partner_name: ['', Validators.compose([Validators.required])],\n // partner_other_name:[''],\n shareholding: [''],\n started_business: [''],\n current_business_experiance_year: [''],\n current_business_experiance_month: [''],\n total_business_experiance: [''],\n // total_business_previous_experience:['']\n /* shareholding: ['', Validators.compose([Validators.required])],\n current_business_experiance: ['', Validators.compose([Validators.required])],\n total_business_experiance: ['', Validators.compose([Validators.required])],*/\n });\n }\n createRelationShip(): FormGroup {\n return this.fb.group({\n family_member_salutation: [''],\n family_member_name: [''],\n other_family_relationship_id: [''],\n relation_to_id: [''],\n relationship_with_company_id: [''],\n started_business: ['']\n });\n }\n createBusinessActivity(details): FormGroup {\n return this.fb.group({\n type_of_activity_id: [details.type_of_activity_id, Validators.compose([Validators.required])],\n name: [details.name, Validators.compose([Validators.required])],\n exist_status: [details.exist_status == 1 ? true : false]\n });\n }\n createServiceActivity(): FormGroup {\n return this.fb.group({\n main_products: ['', Validators.compose([Validators.required])],\n area_of_sale: ['', Validators.compose([Validators.required])],\n description: ['']\n });\n }\n createOthersActivity(): FormGroup {\n return this.fb.group({\n others_details: ['', Validators.compose([Validators.required])]\n });\n }\n manufactureDetails(): FormGroup {\n return this.fb.group({\n main_products: [''],\n area_of_sale: [''],\n description: ['']\n // pan_india_options:[''],\n // india_where_sale_done:this.fb.array([]),\n //max_sale_state_name:this.fb.array([]),\n //countries_where_export_done:this.fb.array([])\n })\n }\n indiaSalesDone(): FormGroup {\n return this.fb.group({\n state_name: [''],\n city_name: [''],\n stateSearch: [''],\n citySearch: ['']\n })\n }\n maxSaleState(): FormGroup {\n return this.fb.group({\n state_name: [''],\n city_name: [''],\n stateSearch: [''],\n citySearch: ['']\n })\n }\n createDocument() {\n return this.fb.group({\n document: [''],\n document_pic: [''],\n });\n }\n addDesignation() {\n const control = this.businessForm.controls['designation'];\n control.push(this.createDesignation());\n }\n deleteDesignation(index) {\n const control = this.businessForm.controls['designation'];\n if (control.length == 1) {\n this.businessForm.controls['designation'].reset();\n } else {\n control.removeAt(index);\n }\n }\n addPartnerDetails(event) {\n const control = this.businessForm.controls['partners'];\n event.stopPropagation()\n let length = control.length;\n this.step = length;\n\n control.push(this.createPartners());\n }\n addPersonRelationship(event) {\n event.stopPropagation()\n const control = this.businessForm.controls['persons_with_relationships']\n let length = control.length\n this.step = length\n control.push(this.createRelationShip());\n }\n deletePersonRelationship(index) {\n const control = this.businessForm.controls['persons_with_relationships'];\n control.removeAt(index)\n }\n deletePartnerDetails(index) {\n const control = this.businessForm.controls['partners'];\n if (control.length == 1) {\n this.businessForm.controls['partners'].reset();\n } else {\n control.removeAt(index);\n }\n }\n addMoreManufacturing() {\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n manufacturingControl.push(this.manufactureDetails());\n }\n removeManufacturing(index) {\n let manufacturingControl = this.businessForm.controls['manufacturing_activity_details'];\n if (manufacturingControl.length > 1) {\n manufacturingControl.removeAt(index)\n }\n else {\n manufacturingControl.reset();\n }\n }\n addMoreRetail() {\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n retailControl.push(this.manufactureDetails());\n }\n removeRetail(index) {\n let retailControl = this.businessForm.controls['retail_trading_activity_details'];\n if (retailControl.length > 1) {\n retailControl.removeAt(index)\n }\n else {\n retailControl.reset();\n }\n }\n addMoreWholesale() {\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n wholesaleControl.push(this.manufactureDetails());\n }\n removeWholesale(index) {\n let wholesaleControl = this.businessForm.controls['wholesale_trading_activity_details'];\n if (wholesaleControl.length > 1) {\n wholesaleControl.removeAt(index)\n }\n else {\n wholesaleControl.reset();\n }\n }\n addMoreServiceprovider() {\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n serviceControl.push(this.manufactureDetails());\n }\n removeServiceProvider(index) {\n let serviceControl = this.businessForm.controls['service_provider_activity_details'];\n if (serviceControl.length > 1) {\n serviceControl.removeAt(index)\n }\n else {\n serviceControl.reset();\n }\n }\n // addMoreOthersActivity(){\n // let othersControl = this.businessForm.controls['others_activity_details'];\n // othersControl.push(this.createOthersActivity());\n // }\n createCountrySale() {\n return this.fb.group({\n country_name: ['', Validators.compose([Validators.required])],\n countrySearch: [''],\n approx_sale: ['', Validators.compose([Validators.required])]\n });\n }\n\n addMoreState(mindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n\n\n }\n removeState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.removeAt(sindex);\n }\n }\n\n addRetailMoreState(rindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[rindex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[rindex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n }\n removeRetailState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('retail_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.removeAt(sindex);\n }\n }\n // add more whole sale state\n addWholesaleMoreState(windex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[windex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[windex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n\n }\n // remove for whole sale\n removeWholesaleState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('wholesale_trading_activity_details') as FormArray;\n control = control.controls[mindex].get('countries_where_export_done') as FormArray;\n control.removeAt(sindex);\n }\n }\n // add more service provider\n addServiceMoreState(sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control = control.controls[sindex].get('india_where_sale_done') as FormArray;\n control.push(this.indiaSalesDone())\n }\n else if (type == 2) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control = control.controls[sindex].get('countries_where_export_done') as FormArray;\n control.push(this.createCountrySale())\n }\n }\n\n // remove service provider\n\n removeServiceState(mindex, sindex, type) {\n if (type == 1) {\n let control: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control = control.controls[mindex].get('india_where_sale_done') as FormArray;\n control.removeAt(sindex);\n }\n else if (type == 2) {\n let control1: any = this.businessForm.get('service_provider_activity_details') as FormArray;\n control1 = control1.controls[mindex].get('countries_where_export_done') as FormArray\n control1.removeAt(sindex)\n }\n }\n addDocuments() {\n const control = this.businessForm.controls['documents'];\n control.push(this.createDocument());\n }\n deleteDocuments(index) {\n const control = this.businessForm.controls['documents'];\n if (control.length == 1) {\n this.businessForm.controls['documents'].reset();\n } else {\n control.removeAt(index);\n }\n }\n\n UploadDocuments(index) {\n const control = this.businessForm.controls['documents'];\n const control_with_index = control.controls[index];\n this.cameraProvider.getpicture().then(res => {\n control_with_index.controls['document_pic'].setValue(res != 'error' ? res : '');\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n }\n\n relationChanged(event) {\n this.relativeNames = [];\n event.value.forEach(option => {\n this.relativeNames.push({ member: option });\n });\n }\n createPOSMachinesDetails(data) {\n if (data == null) {\n return this.fb.group({\n pos_machines_financial_institution_name: [''],\n bankSearch: [''],\n tid_no_of_pos_machine: [''],\n })\n }\n else {\n return this.fb.group({\n pos_machines_financial_institution_name: [data.pos_machines_financial_institution_name],\n bankSearch: [''],\n tid_no_of_pos_machine: [data.tid_no_of_pos_machine],\n })\n }\n }\n\n public initBusinessForm(): void {\n this.businessForm = this.fb.group({\n parent_pdid: this.pdDetails.parent_pd_id,\n pdid: this.pdDetails.pd_id,\n formid: this.FormId,\n fk_createdby: this.users,\n profession_name: ['', Validators.compose([Validators.required])],\n business_years: ['', Validators.compose([Validators.required])],\n industry: ['', Validators.compose([Validators.required])],\n type_of_activity: ['', Validators.compose([Validators.required])],\n seasonality: ['', Validators.compose([Validators.required])],\n designation: this.fb.array([]),\n partners: this.fb.array([]),\n employees_total: ['', Validators.compose([Validators.required])],\n employees_permanent: ['', Validators.compose([Validators.required])],\n employees_temporary: ['', Validators.compose([Validators.required])],\n officer_total: ['', Validators.compose([Validators.required])],\n officer_permanent: ['', Validators.compose([Validators.required])],\n officer_temporary: ['', Validators.compose([Validators.required])],\n invested_amount: ['', Validators.compose([Validators.required])],\n working_capital: ['', Validators.compose([Validators.required])],\n is_service_provided: ['', Validators.compose([Validators.required])],\n ownership_setup: ['', Validators.compose([Validators.required])],\n ownership_others: [''],\n rent_paid: [''],\n shop_eat_act_cert: ['', Validators.compose([Validators.required])],\n gst_Regn_cert: ['', Validators.compose([Validators.required])],\n export_import_cert: ['', Validators.compose([Validators.required])],\n factory_cert: ['', Validators.compose([Validators.required])],\n practice_cert: ['', Validators.compose([Validators.required])],\n pf_regn: ['', Validators.compose([Validators.required])],\n esic_regn: ['', Validators.compose([Validators.required])],\n other_documents: ['', Validators.compose([Validators.required])],\n documents: this.fb.array([]),\n business_remarks: ['', Validators.compose([Validators.required])],\n who_started: ['', Validators.compose([Validators.required])],\n main_person: ['', Validators.compose([Validators.required])],\n other_main_person: [''],\n family_members_involved: ['', Validators.compose([Validators.required])],\n before_business: ['', Validators.compose([Validators.required])],\n any_delays: ['', Validators.compose([Validators.required])],\n });\n }\n\n submitDetails() {\n\n // if (!this.businessForm.valid) {\n // return;\n // }\n\n if (this.businessForm.controls['export_sale_of_total_sales'].invalid) {\n this.toast.pdTriggerappmessage(\"Please enter a value between 0 and 100 in export sale as a % total sales\");\n return;\n }\n\n if (this.businessForm.controls['gst_Regn_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"GST Regn Cert is required\");\n return;\n }\n if (this.businessForm.controls['gst_Regn_cert_pic'] && this.businessForm.value.gst_Regn_cert == 'yes') { \n if (this.businessForm.controls['gst_Regn_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"gst regn cert pic is required\");\n return;\n }\n }\n\n\n if (this.businessForm.controls['factory_cert'] && this.businessForm.controls['factory_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"Factory Cert is required\");\n return;\n }\n if (this.businessForm.controls['factory_cert_pic'] && this.businessForm.value.factory_cert == 'yes') { \n if (this.businessForm.controls['factory_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"factory cert pic is required\");\n return;\n }\n }\n\n\n if (this.businessForm.controls['practice_cert'] && this.businessForm.controls['practice_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"Practice Cert is required\");\n return;\n }\n if (this.businessForm.controls['practice_cert_pic'] && this.businessForm.value.practice_cert == 'yes') { \n if (this.businessForm.controls['practice_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\" practice cert pic is required\");\n return;\n }\n }\n\n\n if (this.businessForm.controls['shop_eat_act_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"shop eat act cert is required\");\n return;\n }\n if (this.businessForm.controls['shop_eat_act_cert_pic'] && this.businessForm.value.shop_eat_act_cert == 'yes') { \n if (this.businessForm.controls['shop_eat_act_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"Shop eat act cert pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['pf_regn'].invalid) {\n this.toast.pdTriggerappmessage(\"PF Regn is required\");\n return;\n }\n if (this.businessForm.controls['pf_regn_pic'] && this.businessForm.value.pf_regn == 'yes') { \n if (this.businessForm.controls['pf_regn_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"PF Regn pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['esic_regn'].invalid) {\n this.toast.pdTriggerappmessage(\"ESIC Regn is required\");\n return;\n }\n if (this.businessForm.controls['esic_regn_pic'] && this.businessForm.value.esic_regn == 'yes') { \n if (this.businessForm.controls['esic_regn_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"ESIC Regn pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['export_import_cert'] && this.businessForm.controls['export_import_cert'].invalid) {\n this.toast.pdTriggerappmessage(\"Export Import Cert is required\");\n return;\n }\n if (this.businessForm.controls['export_import_cert_pic'] && this.businessForm.value.export_import_cert == 'yes') { \n if (this.businessForm.controls['export_import_cert_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"Export /Import Cert pic is required\");\n return;\n }\n }\n\n if (this.businessForm.controls['fire_noc'] && this.businessForm.controls['fire_noc'].invalid) {\n this.toast.pdTriggerappmessage(\"Fire Noc is required\");\n return;\n }\n if (this.businessForm.controls['fire_noc_pic'] && this.businessForm.value.fire_noc == 'yes') { \n if (this.businessForm.controls['fire_noc_pic'].invalid) {\n this.toast.pdTriggerappmessage(\"Fire Noc pic is required\");\n return;\n } }\n \n \n // if(this.businessForm.controls['export_sale_of_total_sales']){\n // if(this.businessForm.controls['export_sale_of_total_sales'].value > 100 || this.businessForm.controls['export_sale_of_total_sales'].value < 0){\n\n // }\n // }\n\n if (this.EntityTypeFlag == true) {\n let control: any = this.businessForm.controls['partners'];\n let control2: any = control.controls[0];\n\n control2.controls['shareholding'].clearValidators();\n control2.controls['shareholding'].updateValueAndValidity();\n control2.controls['shareholding'].setValue('100');\n\n\n // control.controls[0].removeControl('shareholding');\n // control.controls[0].removeControl('started_business');\n // control.controls[0].removeControl('current_business_experiance_year');\n // control.controls[0].removeControl('current_business_experiance_month');\n // control.controls[0].removeControl('total_business_experiance');\n\n // control2.controls['started_business'].setValue('');\n\n // control2.controls['current_business_experiance_year'].clearValidators();\n // control2.controls['current_business_experiance_year'].updateValueAndValidity();\n // control2.controls['current_business_experiance_year'].setValue('');\n\n // control2.controls['current_business_experiance_month'].setValue('');\n\n // control2.controls['total_business_experiance'].clearValidators();\n // control2.controls['total_business_experiance'].updateValueAndValidity();\n // control2.controls['total_business_experiance'].setValue('');\n // if(control2.controls['total_business_previous_experience'].value !=undefined){\n // control2.controls['total_business_previous_experience'].clearValidators();\n // control2.controls['total_business_previous_experience'].updateValueAndValidity();\n // control2.controls['total_business_previous_experience'].setValue('0');\n // }\n\n }\n let control: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n console.log(\"manufacture\", control);\n // control.controls.forEach(element=>{\n // if(element.controls['india_where_sale_done']){\n // element.controls\n // }\n // })\n\n let family: any = [];\n\n let design: any;\n //let records={'pdid':this.pdDetails.pd_id,'formid':this.FormId,'fk_createdby':this.users};\n let records: any;\n // records.pdid = this.pdDetails.pd_id;\n // records.formid = this.FormId;\n // records.fk_createdby = this.users;\n records = this.businessForm.value;\n\n //if(records.persons_with_relationships=='')\n if (records.other_documents == 'no') {\n delete records.documents;\n }\n if (records.rent_paid == '') {\n delete records.rent_paid;\n }\n if (records.ownership_others == '') {\n delete records.ownership_others;\n }\n // records.family_members_involved = this.relativeNames;\n if (!this.EntityTypeFlag) {\n let count: number = 0;\n if (records.partners.length > 0) {\n records.partners.forEach(element => {\n console.log(element)\n count += element.shareholding\n })\n }\n if (count >= 101) {\n this.toast.pdTriggerappmessage(\"Share Holding is Greater than 100 %\");\n // this.businessForm.get('shareholding').value.setFocus()\n //this.businessForm.controls['partners']\n console.log(this.businessForm.controls)\n // const control=this.businessForm.controls['partners'] as FormArray\n this.share_focus.nativeElement.focus();\n //control.get('shareholding').Focus()\n // this.businessForm.get('business_remarks').value.setFocus()\n return\n }\n }\n let validationFlag: number = 0;\n\n //type 1: Checking manufacturing_activity_details \n if (records.manufacturing_activity_details.length > 0) {\n\n records.manufacturing_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n let ManufacturingArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = ManufacturingArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n\n }\n\n //type 3 checking wholesale_trading_activity_details\n if (records.wholesale_trading_activity_details.length > 0) {\n\n records.wholesale_trading_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n let WholesaleTradingArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = WholesaleTradingArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n }\n\n //type 2 checking retail_trading_activity_details\n if (records.retail_trading_activity_details.length > 0) {\n\n records.retail_trading_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n let RetailTradingArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = RetailTradingArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n }\n\n\n //type 4 checking service_provider_activity_details\n if (records.service_provider_activity_details.length > 0) {\n\n records.service_provider_activity_details.forEach((val, index) => {\n if (val.area_of_sale != \"Within India\") {\n\n let ServiceProviderArray = Object.keys(val.countries_where_export_done).map(function (key) {\n return val.countries_where_export_done[key];\n });\n let total = ServiceProviderArray.reduce((sum, item) => sum + +item.approx_sale, 0);\n if (total > 100 || total < 100) {\n validationFlag++;\n }\n }\n });\n\n }\n\n //validationFlag is greater then 0 means its display the notifer as warning\n if (validationFlag > 0) {\n this.toast.pdTriggerappmessage(\"warning!! Approximate sales doesn't add upto 100%\");\n return;\n }\n\n records.select_business_activity_type = records.select_business_activity_type.filter(value => value.exist_status == 1);\n if (records.pos_machines_details) {\n records.pos_machines_details.forEach(value => {\n delete value.bankSearch\n })\n }\n\n // if(records.manufacturing_activity_details.length > 0){\n // records.manufacturing_activity_details.forEach((val,index) => {\n // let manufacturingControl: any = this.businessForm.get('manufacturing_activity_details') as FormArray;\n // let childCtrl1 : any = manufacturingControl.controls[index].get('india_where_sale_done') as FormArray;\n // let childCtrl2 : any = manufacturingControl.controls[index].get('max_sale_state_name') as FormArray;\n // if(val.area_of_sale != \"Export\"){ \n // if(val.india_where_sale_done.length > 0){\n // val.india_where_sale_done.forEach((vals,inx) => {\n // childCtrl1.controls[inx].removeControl('citySearch');\n // delete vals.citySearch;\n // childCtrl1.controls[inx].removeControl('stateSearch');\n // delete vals.stateSearch;\n // });\n // }\n // if(val.max_sale_state_name.length > 0){\n // val.max_sale_state_name.forEach((vals,inx) => {\n // childCtrl2.controls[inx].removeControl('citySearch');\n // childCtrl2.controls[inx].removeControl('stateSearch');\n // });\n // }\n // }\n // });\n // }\n // console.log('records',records);\n this.qustCat.saveForm(records).subscribe(data => {\n if (data['dataStatus'] == true) {\n this.businessForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(() => {\n this.navCtrl.pop();\n }, 3000);\n }\n });\n }\n getBuisnessDetails() {\n let records = { 'parent_pdid': this.pdDetails.parent_pd_id, 'pd_id': this.pdDetails.pd_id, 'pd_form_id': this.FormId };\n this.qustCat.retiverForm(records).subscribe(data => {\n let businessVal = data['records'];\n\n let constVal: any;\n const Desgn = this.businessForm.controls['designation'];\n const Partnr = this.businessForm.controls['partners'];\n const otherDoc = this.businessForm.controls['documents'];\n\n if (data['status'] == 200) {\n let DocArray: any;\n let DesgnArray = Object.keys(data['records'].designation).map(function (key) {\n return data['records'].designation[key];\n });\n let PartnrArray = Object.keys(data['records'].partners).map(function (key) {\n return data['records'].partners[key];\n });\n\n let selectedMembers = Object.keys(data['records'].family_members_involved).map(function (key) {\n return data['records'].family_members_involved[key];\n });\n let enduse: any = [];\n let existRelative: any = [];\n selectedMembers.forEach(val => {\n enduse.push(val.member);\n existRelative.push(val);\n });\n this.relativeNames = existRelative;\n if (DesgnArray.length == 0) {\n Desgn.push(this.createDesignation());\n } else {\n DesgnArray.forEach(datas => {\n Desgn.push(this.createDesignation());\n });\n\n }\n if (PartnrArray.length == 0) {\n Partnr.push(this.createPartners());\n } else {\n PartnrArray.forEach(datas => {\n Partnr.push(this.createPartners());\n });\n }\n if (data['records'].other_documents == 'yes') {\n DocArray = Object.keys(data['records'].documents).map(function (key) {\n return data['records'].documents[key];\n });\n DocArray.forEach(datas => {\n otherDoc.push(this.createDocument());\n });\n } else {\n DocArray = [{ document: '', document_pic: '' }];\n otherDoc.push(this.createDocument());\n }\n if (data['records'].ownership_setup != 'others') {\n businessVal.ownership_others = '';\n }\n if (data['records'].ownership_setup != 'rented') {\n businessVal.rent_paid = '';\n }\n businessVal.family_members_involved = enduse;\n businessVal.parent_pdid = this.pdDetails.parent_pd_id\n businessVal.pdid = this.pdDetails.pd_id;\n businessVal.formid = this.FormId;\n businessVal.fk_createdby = this.users;\n businessVal.designation = DesgnArray;\n businessVal.partners = PartnrArray;\n businessVal.documents = DocArray;\n\n this.businessForm.setValue(businessVal);\n } else {\n Desgn.push(this.createDesignation());\n Partnr.push(this.createPartners());\n otherDoc.push(this.createDocument());\n }\n\n });\n }\n setStep(index: number) {\n this.step = index;\n }\n inWords(e, flag) {\n switch (flag) {\n case 1:\n this.appxSalaryAmtInwords = this.cons.convertNumberToWords(e.target.value);\n break;\n }\n }\n ManufacturingCounterArray: any = [];\n RetailCounterArray: any = [];\n WholeSaleCounterArray: any = [];\n ServiceCounterArray: any = [];\n\n CheckExport(value, stringFlag, index) {\n //this.ExportFlag=false\n const parentControl = this.businessForm.controls['select_business_activity_type'];\n const childControl = parentControl.controls[0];\n\n\n // childControl.forEach((datas,index) => {\n\n\n // // exist_status==true && event.value.type_of_activity_id\n\n // });\n\n\n\n\n\n if (!this.ManufacturingChecked) {\n // console.log(\"Manu\")\n if (stringFlag == 'MActivity' && value == \"Both\") {\n this.ManufacturingCounterArray[index] = 1;\n }\n else if (stringFlag == 'MActivity' && value != \"Both\") {\n this.ManufacturingCounterArray[index] = 0;\n }\n } else if (this.ManufacturingChecked && stringFlag == 'MActivity') {\n // console.log(\"manu\");\n this.ManufacturingCounterArray[index] = 0;\n }\n\n if (!this.RetailedChecked) {\n if (stringFlag == 'RActivity' && value == \"Both\") {\n this.RetailCounterArray[index] = 1;\n }\n else if (stringFlag == 'RActivity' && value != \"Both\") {\n this.RetailCounterArray[index] = 0;\n }\n }\n else if (stringFlag == 'RActivity' && this.RetailedChecked) {\n this.RetailCounterArray[index] = 0;\n }\n\n if (!this.WholeSalesChecked) {\n if (stringFlag == 'WActivity' && value == \"Both\") {\n this.WholeSaleCounterArray[index] = 1;\n }\n else if (stringFlag == 'WActivity' && value != \"Both\") {\n this.WholeSaleCounterArray[index] = 0;\n }\n }\n else if (stringFlag == 'WActivity' && this.WholeSalesChecked) {\n this.WholeSaleCounterArray[index] = 0;\n }\n\n if (!this.ServiceChecked) {\n\n if (stringFlag == 'SPActivity' && value == \"Both\") {\n this.ServiceCounterArray[index] = 1;\n }\n else if (stringFlag == 'SPActivity' && value != \"Both\") {\n this.ServiceCounterArray[index] = 0;\n }\n\n } else if (stringFlag == 'SPActivity') {\n this.ServiceCounterArray[index] = 0;\n }\n\n let SumOfManufacturingCounter = this.ManufacturingCounterArray.reduce((sum, val) => sum + +val, 0);\n\n let SumOfRetailCounter = this.RetailCounterArray.reduce((sum, val) => sum + +val, 0);\n\n let SumOfWholeSaleCounter = this.WholeSaleCounterArray.reduce((sum, val) => sum + +val, 0);\n\n let SumOfServiceCounter = this.ServiceCounterArray.reduce((sum, val) => sum + +val, 0);\n\n\n let overallCounter = SumOfManufacturingCounter + SumOfRetailCounter + SumOfWholeSaleCounter + SumOfServiceCounter;\n\n\n this.ExportFlag = overallCounter > 0 ? true : false;\n // console.log(this.ExportFlag);\n //console.log(overallCounter)\n\n }\n changePOSMachinesAvailablity(e, flag) {\n\n e == 'yes'\n ? this.businessForm.addControl('no_of_pos_machines', new FormControl(''))\n : this.businessForm.removeControl('no_of_pos_machines');\n\n if (flag == 2) {\n e == 'yes'\n ? this.businessForm.controls.no_of_pos_machines.setValue('')\n : this.businessForm.removeControl('no_of_pos_machines');\n }\n\n }\n toGetPOSMachinesDetails(e, flag) {\n\n if (flag == 1) { this.businessForm.addControl('pos_machines_details', this.fb.array([])); }\n const control = this.businessForm.controls['pos_machines_details'];\n\n while (control.length !== 0) {\n control.removeAt(0);\n }\n\n if (e > 0) {\n if (flag == 1) {\n for (let i = 1; i <= e; i++) {\n control.push(this.createPOSMachinesDetails(null));\n }\n }\n else if (flag == 2) {\n for (let i = 1; i <= e; i++) {\n control.push(this.createPOSMachinesDetails(this.temp_additiondetailofposmachine));\n }\n }\n }\n }\n // searchCountriesList(control:any,i:number){\n // if(!this.countryDataList){\n // return\n // }\n // let searchVal=control.controls['countrySearch'].value\n // if(!searchVal){\n // this.countryDataListValue=this.countryDataList.slice()\n // return\n // }\n // else{\n // searchVal=searchVal.toLowerCase();\n // this.countryDataListValue=this.countryDataList.filter(val=>val.country_name.toLowerCase().indexOf(searchVal)>-1)\n // }\n // }\n\n searchFun(control: any, i: number, option) {\n\n\n if (option == 'country') {\n console.log('option', option, control);\n control.controls['countrySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.searchCountries(control.controls['countrySearch'].value);\n })\n }\n if (option == 'city') {\n // this.cityData[i]=this.filterCity(this.stateList,control.value.state_name)\n control.controls['citySearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.SearchCity(control.controls['citySearch'].value, i);\n })\n }\n if (option == 'state') {\n // console.log(\"state\")\n control.controls['stateSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.searchState(control.controls['stateSearch'].value)\n\n })\n }\n //For Pos bank search using constant provider\n if (option == 'bank') {\n console.log(\"bank\", control.controls['bankSearch'].value)\n control.controls['bankSearch'].valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.bankListValue = this.cons.searchData(this.bankList, control.controls['bankSearch'].value, option)\n })\n }\n }\n SearchCity(val: any, i: number) {\n // let cityData=\n // console.log(this.cityData[i])\n if (!this.cityData[i]) {\n return\n }\n let searchValue = val\n if (!searchValue) {\n this.cityDataValue[i] = this.cityData[i].slice()\n return\n } else {\n searchValue = searchValue.toLowerCase()\n }\n this.cityDataValue[i] =\n this.cityData[i].filter(val => val.city_name.toLowerCase().indexOf(searchValue) > -1)\n\n // console.log(\"City Data value\",this.cityDataValue[i])\n // this.filterCity('',1,this.cityData[i])\n // this.filteredCity.next(\n // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1)\n // )\n\n }\n searchState(val: any) {\n console.log(\"statedata\")\n if (!this.stateList) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n this.filteredState.next(this.stateList.slice())\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.filteredState.next(\n this.stateList.filter(res => res.state_name.toLowerCase().indexOf(searchVal) > -1)\n )\n }\n\n searchCountries(val: any) {\n console.log(\"Countrydata\");\n if (!this.countryDataList) {\n return\n }\n let searchVal = val\n if (!searchVal) {\n this.filteredCountry.next(this.countryDataList.slice())\n return\n }\n else {\n searchVal = searchVal.toLowerCase()\n }\n this.filteredCountry.next(\n this.countryDataList.filter(val => val.country_name.toLowerCase().indexOf(searchVal) > -1)\n )\n }\n\n /*IMAGE SECTION*/\n getPDImages() {\n //FOR RETRIEVING PICTURES\n this.imageDisplay = []\n let record_for_pic = { 'pd_id': this.pdDetails.pd_id, 'form_id': this.FormId, 'company_id': this.pdDetails.company_id }\n\n this.qustCat.getPDImages(record_for_pic).subscribe(val => {\n if (!val['msg']) {\n console.log(val['records'])\n if (val['records'].length > 0) {\n val['records'].forEach(result => {\n this.imageDisplay.push({ 'image': result.doc_url, 'Name': result.pd_document_title, 'option': 'dummy' })\n })\n console.log(\"imageBuck\", this.imageDisplay);\n }\n }\n })\n }\n changeName(value, index, img) {\n console.log(value);\n this.imageDisplay[index] = { 'image': img, 'Name': value }\n\n }\n changeNameForBucket(value, index, img) {\n this.imageBucket[index] = { 'image': img, 'Name': value }\n }\n removeImg(index) {\n this.imageDisplay.splice(index, 1);\n }\n removeImgForBucket(index) {\n this.imageBucket.splice(index, 1)\n }\n capture(value) {\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res => {\n console.log(\"Value\", res)\n if (res != 'error') {\n this.cons.getGeoTag().then(geoCoordinates => {\n console.log(\"geo promise\", geoCoordinates)\n if (value != '') {\n if (this.imageBucket.length != 0) {\n this.imageBucket.forEach((res, index) => {\n if (res.Name == value) {\n console.log(\"res[index]\", res[index])\n delete res[index]\n }\n this.imageBucket.push({ 'image': res, 'Name': value, 'link': geoCoordinates });\n })\n }\n this.imageBucket.push({ 'image': res, 'Name': value, 'link': geoCoordinates });\n\n }\n else {\n this.imageBucket.push({ 'image': res, 'Name': '', 'link': geoCoordinates });\n\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert = this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value => {\n console.log(\"alert value\", value);\n if (value) {\n this.imageBucket[this.imageBucket.length - 1].Name = value.Name\n }\n })\n } // Else End\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n\n this.tab = '1';\n\n\n }\n sendImage() {\n this.loading.loaderForSendImage()\n console.log(\"about business - Images bucket\", JSON.stringify(this.imageBucket));\n\n let records: any = {\n 'pd_id': this.pdDetails.pd_id,\n 'formid': this.FormId,\n 'images': this.imageBucket,\n 'company_id': this.pdDetails.company_id,\n\n }\n console.log(\"about Business images \", JSON.stringify(records));\n\n this.qustCat.savePDImages(records).subscribe(res => {\n console.log('response records', res, res['record']);\n if (res['dataStatus'] == true) {\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket = []\n this.getPDImages();\n }\n else {\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n\n }\n changeSentence(value) {\n console.log(\"val\", value)\n let name = value.get('partner_other_name').value\n value.get('partner_other_name').setValue(this.cons.sentenceCase(name));\n }\n\n ImageUpload(Flag: any) {\n\n this.cameraProvider.getpicture().then(res => {\n if (Flag == 1) { this.businessForm.controls.shop_eat_act_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 2) { this.businessForm.controls.gst_Regn_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 3) { this.businessForm.controls.export_import_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 4) { this.businessForm.controls.factory_cert_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 5) { this.businessForm.controls.practice_cert_pic.setValue(res != 'error' ? res : ''); }// alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 6) { this.businessForm.controls.pf_regn_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 7) { this.businessForm.controls.esic_regn_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n if (Flag == 8) { this.businessForm.controls.fire_noc_pic.setValue(res != 'error' ? res : ''); }//alert('Inside Mobile Upload Function' + Flag);}\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n }\n\n radioChange(event, Flag) {\n if (Flag == 1) { event.value == 'yes' ? this.businessForm.addControl('shop_eat_act_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('shop_eat_act_cert_pic'); }\n if (Flag == 2) { event.value == 'yes' ? this.businessForm.addControl('gst_Regn_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('gst_Regn_cert_pic'); }\n if (Flag == 4) { event.value == 'yes' ? this.businessForm.addControl('factory_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('factory_cert_pic'); }\n if (Flag == 5) { event.value == 'yes' ? this.businessForm.addControl('practice_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('practice_cert_pic'); }\n if (Flag == 6) { event.value == 'yes' ? this.businessForm.addControl('pf_regn_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('pf_regn_pic'); }\n if (Flag == 7) { event.value == 'yes' ? this.businessForm.addControl('esic_regn_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('esic_regn_pic'); }\n if (Flag == 3) { event.value == 'yes' ? this.businessForm.addControl('export_import_cert_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('export_import_cert_pic'); }\n if (Flag == 8) { event.value == 'yes' ? this.businessForm.addControl('fire_noc_pic', new FormControl('', Validators.compose([Validators.required]))) : this.businessForm.removeControl('fire_noc_pic'); }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info.ts","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../../providers/aws-service/aws-service'\nimport { FormGroup,FormBuilder,FormArray, Validators} from '@angular/forms';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category'\nimport { ConstantsProvider } from '../../../../providers/constants/constants'\nimport { ToastProvider } from '../../../../providers/common-provider/toast'\nimport { controlNameBinding } from '@angular/forms/src/directives/reactive_directives/form_control_name';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n/**\n * Generated class for the PdQuestionBusinessAssetsPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-business-assets',\n templateUrl: 'pd-question-business-assets.html',\n})\nexport class PdQuestionBusinessAssetsPage {\n currentYear:any=new Date().getFullYear();\n\n public m_any_asset_loan_type = [{'value': \"yes\",'viewValue': \"Yes\"},\n {'value': \"no\",'viewValue': \"No\"},\n {'value': \"nan\",'viewValue': \"NA\"}]\n\n company_id:any;\n pdDetails:any;\n formDetails : any;\n users:any;\n _businessAssetsQuesFrom:FormGroup;\n m_assets_type:any;\n m_propertyType:any;\n AssetValueInwords:any=[];\n appxMarketAmtInwords:any=[];\n RentAmtInwords:any=[]\n mergeCompanyApplicant:any=[];\n existCompanyList:any=[]\n applicants:any;\n data_all:any;\n CustSegAbbr: any;\n generalExistBusinessYear:Number;\n generalExistBusinessMonth:Number;\n yearErrorMessage: any=[];\n monthErrorMessage: any=[];\n addressLabel: any=[];\n placeholderName : any = []\n m_address_type:any=[]\n pageTitle: string;\n main_applicant: any;\n lender_applicant_id: any;\n subproduct_abbr: any;\n customer_segment_abbr: any;\n RentAmtInwordsForAddress: any =[];\n appxMarketAmtInwordsForAddress: any =[];\n isOtherOwnerForAddress : boolean = false;\n isOtherOwner: boolean = false;\n addressType:any = '';\n public m_vehicle_type = [];\n cityArr: any=[];\n pinArr: any=[];\n m_state_for_address: any=[];\n @ViewChild('remarksFocus') focusRemark:ElementRef\n imageDisplay: any[];\n imageBucket: any=[];\n tab: any='0';\n complete_status: boolean = false;\n addressList: any=[];\n \n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws:AwsServiceProvider,public fb:FormBuilder,public qustcat:QuestionCategoryProvider,\n public cons:ConstantsProvider,public toast:ToastProvider,private loading:LoadingProvider,\n private cameraProvider:CameraProvider) {\n \n \n this.pdDetails=this.navParams.get('pdDetails');\n this.formDetails=this.navParams.get('formDetails');\n this.users=this.aws.getlocale();\n this.company_id=this.pdDetails.company_id;\n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'});\n this.generalExistBusinessYear = this.pdDetails.business_years;\n this.generalExistBusinessMonth = this.pdDetails.business_month;\n this.pageTitle = this.pdDetails.company_name + ' - ' +this.pageTitle ;\n this.main_applicant = this.pdDetails.applicant_name;\n this.lender_applicant_id = this.pdDetails.lender_applicant_id;\n this.subproduct_abbr = this.pdDetails.subproduct_abbr;\n this.customer_segment_abbr = this.pdDetails.customer_segment_abbr;\n this.getDropDown()\n \n \n \n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n \n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBusinessAssetsPage');\n this.getDetails()\n //this.getAddress()\n this.getPDImages();\n }\n chooseAddress(){\n let params:any={};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id;\n params.pd_form_id='5'\n this.qustcat.retiverForm(params).subscribe(data=>{\n const control=this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n if(data['status']==200){\n if(data['records'].is_pd_done_on_initiated_address){\n console.log(\"kd\",data['records'])\n }\n }\n })\n }\n getAddress(flag){\n let params:any={};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id;\n params.pd_form_id='5'\n\n this.qustcat.retiverForm(params).subscribe(data => {\n const control= this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n if(data['status'] == 200) {\n if(flag == 1){\n let initiated_address_check = data['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? data['records'].is_pd_done_on_initiated_address : true;\n this.addressList.push({ key_name: 'initiate_address', value: data['records'].addresses[0].address, description: 'Initiated Address' });\n if (initiated_address_check == false ) {\n this.addressList.push({ key_name: 'alternative_addresses', value: data['records'].alternative_addresses[0].alternative_address, description: 'Alternative Address' });\n }\n }\n if(flag == 2){\n let dataOfAddress = data['records'].addresses.filter(item => item.isactive == 1);\n this.addressList.push({ key_name: 'initiate_address', value: data['records'].addresses[0].address, description: 'Initiated Address' });\n let initiated_address_check = data['records'].hasOwnProperty('is_pd_done_on_initiated_address') ? data['records'].is_pd_done_on_initiated_address : true;\n if (initiated_address_check == true && data['records'].addresses.length > 0) \n \n if(initiated_address_check == true && data['records'].addresses.length > 0){\n data['records'].addresses.forEach((data,inx)=>{\n this.addressLabel[inx] = '';\n console.log(\"address\",data)\n this.qustcat.getStateWiseCities(data.state).subscribe(res=>{\n if(res.dataStatus== true){\n console.log(\"state\",res)\n this.cityArr=res.records.cities\n this.pinArr = res.records.pincode;\n let selectedAddressType = this.m_address_type.filter(element => element.address_type_id == data.address_type)[0];\n let selectedState = this.m_state_for_address.filter(element => element.state_id == data.state)[0];\n let selectedCity = this.cityArr.filter(element => element.city_id == data.city)[0]; \n let selectedPincode = this.pinArr.filter(element => element.pincode_id == data.pincode)[0];\n \n console.log(selectedCity)\n \n if(selectedAddressType != '' && selectedAddressType != undefined){\n this.addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n }\n else{\n this.addressType=''\n }\n let address = data.address + ' , ' + selectedCity.city_name + ','+selectedState.name +'-' + (data.pincode == 1 ? data.pincode_others : selectedPincode.pincode);\n \n \n // let selectedAddressType = this.m_address_type.filter(element =>element.address_type_id == data.address_type)[0];\n // let address = data.address;\n // let addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n \n this.placeholderName[inx] = 'Was any business activity seen at the '+ this.addressType+' during PD visit?';\n //console.log(this.placeholderName)\n let addressLabel = \" : \"+address+' / '+ this.addressType ;\n console.log(\"dd\",addressLabel)\n let values={\n address_label:addressLabel,\n business_years: '',\n business_month: '',\n business_address_availability: '',\n business_is_pd_visited: '',\n business_pd_visited_remark: '', \n business_approximate_market_value: '',\n business_ownership_type: '',\n business_monthly_rented_amt: '',\n business_name_of_the_owner: '',\n business_name_of_the_other_owner: '',\n business_vintage: '',\n business_purchase_year: '',\n business_emi: ''\n }\n console.log('this.addressType',this.addressType);\n control.push(this.initBusinessDetailsWithdata(values));\n }\n })\n\n })\n \n }\n else if(initiated_address_check == true && data['records'].alternative_addresses.length > 0)\n {\n this.addressList.push({ key_name: 'alternative_addresses', value: data['records'].alternative_addresses[0].alternative_address, description: 'Alternative Address' });\n data['records'].alternative_address.forEach((data,inx)=>{\n this.qustcat.getStateWiseCities(data.state).subscribe(res=>{\n if (data['status'] == 200) {\n console.log(\"state\",res)\n this.cityArr=res.records.cities\n this.pinArr = res.records.pincode;\n let selectedAddressType = this.m_address_type.filter(element => element.address_type_id == data.address_type)[0];\n let selectedState = this.m_state_for_address.filter(element => element.state_id == data.state)[0];\n let selectedCity = this.cityArr.filter(element => element.city_id == data.city)[0]; \n let selectedPincode = this.pinArr.filter(element => element.pincode_id == data.pincode)[0];\n \n console.log(selectedCity)\n \n if(selectedAddressType != '' && selectedAddressType != undefined){\n this.addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n }\n else{\n this.addressType=''\n }\n let address = data.address + ' , ' + selectedCity.city_name + ','+selectedState.name +'-' + (data.pincode == 1 ? data.pincode_others : selectedPincode.pincode);\n \n \n // let selectedAddressType = this.m_address_type.filter(element =>element.address_type_id == data.address_type)[0];\n // let address = data.address;\n // let addressType = data.address_type != 1 ? selectedAddressType.address_type : data.address_type_others;\n \n this.placeholderName[inx] = 'Was any business activity seen at the '+ this.addressType+' during PD visit?';\n //console.log(this.placeholderName)\n let addressLabel = \" : \"+address+' / '+ this.addressType ;\n console.log(\"dd\",addressLabel)\n let values={\n address_label:addressLabel,\n business_years: '',\n business_month: '',\n business_address_availability: '',\n business_is_pd_visited: '',\n business_pd_visited_remark: '', \n business_approximate_market_value: '',\n business_ownership_type: '',\n business_monthly_rented_amt: '',\n business_name_of_the_owner: '',\n business_name_of_the_other_owner: '',\n business_vintage: '',\n business_purchase_year: '',\n business_emi: ''\n }\n console.log('this.addressType',this.addressType);\n control.push(this.initBusinessDetailsWithdata(values));\n }\n })\n })\n }\n else{\n control.push(this.initBusinessDetails())\n }\n }\n }\n else{\n control.push(this.initBusinessDetails());\n }\n });\n console.log(\"address List data\",this.addressList)\n }\n AutoCompleteUpdateFun(property_id,event,i){\n if(event != ''){\n let getList = this.addressList.map(dval => dval.value.replace(/\\s/g, \"\").toLowerCase());\n let getkeyname = this.addressList.map(dval => dval.key_name);\n let findName = this.m_address_type.find(x => x.address_type_id == property_id);\n // console.log(getkeyname.indexOf(i));\n let evt = event.replace(/\\s/g, \"\").toLowerCase();\n\n let keyexist = this.addressList.find(ob => ob['key_name'] === i);\n\n if (keyexist === undefined || keyexist === null && !getList.includes(evt)) {\n console.log('push on this');\n this.addressList.push({ key_name: i, value: event, description: findName.address_type + ' At Index ' + i });\n }\n else {\n let Index = getkeyname.indexOf(i);\n this.addressList[Index] = { key_name: i, value: event, description: findName.address_type + ' At Index ' + i }\n console.log('update on this => Index', Index);\n }\n\n console.log('at Final add or update ', this.addressList);\n }\n}\nremoveOptionOnAutoComplete(index){\n let getkeyname = this.addressList.map(dval => dval.key_name);\n let Index = getkeyname.indexOf(index);\n if (Index !== -1) {\n this.addressList.splice(Index, 1);\n }\n console.log('at Final remove', this.addressList);\n}\n getDropDown(){\n this.qustcat.getcommondrop('ADDRESSTYPE').subscribe(data=>{\n this.m_address_type=data['records'].filter(val=>val.isactive == 1);\n })\n this.qustcat.getcommondrop('VEHICLETYPE').subscribe(\n data => {\n this.m_vehicle_type = data['records'].filter(data => data.is_active == 1);\n })\n \n this.qustcat.getcommondrop('ASSETTYPE').subscribe(data=>{\n this.m_assets_type=data['records'].filter(val=>val.isactive==1 && val.flag==1);\n \n })\n\n this.qustcat.getcommondrop('PROPERTIES').subscribe(data=>{\n this.m_propertyType=data['records'].filter(val=>val.isactive==1)\n })\n\n this.qustcat.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(data=>{\n if(data.dataStatus){\n this.existCompanyList=data['records'].filter(val=>val.is_active==true);\n \n }\n \n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n }\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})\n\n }\n })\n this.qustcat.getcommondrop('STATE').subscribe(data=>{\n this.m_state_for_address = data['records'].filter(val=>val.isactive ==1 )\n })\n\n \n \n }\n apiLoadFinish:boolean=false\n getDetails(){\n let params:any={};\n params.parent_pdid=this.pdDetails.parent_pd_id\n params.pd_id=this.pdDetails.pd_id\n params.company_id=this.company_id\n params.pd_form_id=22\n this.qustcat.retiverForm(params).subscribe(res=>{\n \n if(res['dataStatus']==true){\n \n //this.data_all=res['records']\n /* var assestArray=Object.keys(res['records'].business_assets_details).map(function(key){\n return res['records'].business_assets_details[key]\n });\n \n //this.formLoadData(assestArray)\n this._businessAssetsQuesFrom.controls['business_assets_form_remark'].setValue(res['records'].business_assets_form_remark);\n if(assestArray.length>0){\n for(let val of assestArray){\n let formData={\n business_assets_mode: val.business_assets_mode,\n business_approximate_market_value: val.business_approximate_market_value,\n business_name_of_the_owner: val.business_name_of_the_owner,\n business_name_of_the_other_owner: val.business_name_of_the_other_owner,\n business_purchase_year: val. business_purchase_year,\n business_vintage : val.business_vintage,\n business_emi: val.business_emi,\n };\n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.push(this.initBusinessDetailsWithdata(formData));\n this.setBusinessAssetsDetailsWithData(formData.business_assets_mode, val.business_details, control.length- 1)\n }\n }*/\n this.formLoadData(res['records'])\n }\n\n \n else{\n this.formLoadData(null);\n }\n this.apiLoadFinish=true\n \n \n })\n //this.formLoadData(null);\n \n }\n \n formLoadData(data){\n if(data==null){\n this._businessAssetsQuesFrom=this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n /* formid: ['22'],*/\n formid: [this.formDetails.form_id],\n company_id : [this.company_id],\n fk_createdby:[this.users],\n \n business_assets_for_address: this.fb.array([]),\n //this.createBusinessAssetsForAddress(),\n business_assets_details : this.fb.array([\n this.initBusinessDetails(),\n ]),\n business_assets_form_remark:['']\n });\n this.getAddress(2);\n this.loadDetails=true;\n }\n else{\n this.getAddress(1);\n let value=data;\n this._businessAssetsQuesFrom=this.fb.group({\n parent_pdid:[this.pdDetails.parent_pd_id],\n pdid: [this.pdDetails.pd_id],\n /* formid: ['22'],*/\n formid: [this.formDetails.form_id],\n company_id : [this.company_id],\n fk_createdby:[this.users],\n // business_years:[value.business_years],\n // business_month:[value.business_month],\n // business_address_availability:[value.business_address_availability],\n // business_is_pd_visited:[value.business_is_pd_visited],\n // business_pd_visited_remark:[value.business_pd_visited_remark],\n business_assets_for_address: this.fb.array([]),\n business_assets_details : this.fb.array([]),\n business_assets_form_remark:[value.business_assets_form_remark || '']\n });\n // if (value.business_assets_for_address.business_address_availability == 'yes') {\n \n // this.addBusinessAssetsForAddress(value.business_assets_for_address);\n // }\n // else {\n // const control = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n // control.push(this.createBusinessAssetsForAddress());\n // } \n // this.addBusinessAssetsDetailsWithData(value.business_assets_details);\n this.addBusinessAssetsForAddress(value.business_assets_for_address);\n this.addBusinessAssetsDetailsWithData(value.business_assets_details);\n }\n\n this.loadDetails=true\n }\n\n initBusinessDetails(){\n return this.fb.group({\n address_label:[''],\n business_assets_mode:[''],\n business_details: this.fb.array([]),\n \n business_years:[''],\n business_month:[''],\n business_address_availability:[''],\n business_is_pd_visited:[''],\n business_pd_visited_remark:[''],\n \n business_approximate_market_value: [''],\n business_ownership_type:[''],\n business_monthly_rented_amt:[''],\n business_name_of_the_owner: [],\n business_name_of_the_other_owner: [],\n business_vintage: [''],\n business_purchase_year: ['',Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n business_emi: [''],\n \n })\n }\n loadProperty() {\n return this.fb.group({\n property_type: [''],\n other_property_type: [''],\n address_of_the_property: ['']\n });\n }\n load_Four_Weeler() {\n return this.fb.group({\n manufacturer_model_vehicle: [''],\n vehicle_type: [''],\n other_vehicle_type: ['']\n });\n }\n loadEquipmentManufacturingDescription() {\n return this.fb.group({\n equipment_manufacturing_description: ['']\n });\n }\n otherBusinessAssetsDescription() {\n return this.fb.group({\n any_other_assets: ['',Validators.compose([Validators.required])],\n any_other_asset_value : [''],\n any_other_asset_loan : [''], \n });\n }\n\n /** Add More Asset using Flag Both \"Other Asset\" And \"Business Asset\" */\n addAssetDetails(e) {\n \n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.push(this.initBusinessDetails());\n \n }\n /** To remove The Added Asset using Flag Both \"Other Asset\" And \"Business Asset\" */\n removeAssetsDetails(i: number) {\n \n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.removeAt(i);\n\n}\n\ncreateBusinessAssetsForAddress(): FormGroup {\n return this.fb.group({\n address_label:[''],\n business_years:[''],\n business_month:[''],\n business_address_availability:[''],\n business_is_pd_visited:[''],\n business_pd_visited_remark:[''],\n\n business_approximate_market_value: [''],\n business_ownership_type: [''],\n business_monthly_rented_amt: [''],\n business_name_of_the_owner: [''],\n business_name_of_the_other_owner: [''],\n business_vintage: [''],\n business_purchase_year: ['', Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n business_emi: ['']\n });\n}\n\n selectedAssetsType(e: any, i: any): void {\n let val = i;\n const arr = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray;\n arr.controls.splice(0);\n \n switch (e.value) {\n case '1': {\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.otherBusinessAssetsDescription());\n break;\n }\n case '2': {\n let val = i;\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadProperty());\n break;\n }\n case '3': {\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.load_Four_Weeler());\n break;\n }\n case '4': {\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadEquipmentManufacturingDescription());\n break;\n }\n \n default: {\n break;\n }\n }\n this.removeOptionOnAutoComplete(i);\n }\n\n loadPropertyWithData(data) { \n return this.fb.group({\n property_type: [data.property_type],\n other_property_type: [data.other_property_type],\n address_of_the_property: [data.address_of_the_property],\n });\n }\n load_Four_WeelerWithData(data){\n return this.fb.group({\n manufacturer_model_vehicle: [data.manufacturer_model_vehicle],\n vehicle_type: [data.vehicle_type],\n other_vehicle_type: [data.other_vehicle_type]\n })\n }\n\n loadEquipmentManufacturingDescriptionWithData(data) {\n return this.fb.group({\n equipment_manufacturing_description: [data.equipment_manufacturing_description]\n });\n }\n otherBusinessAssetsDescriptionWithData(data) {\n return this.fb.group({\n any_other_assets: [data.any_other_assets],\n any_other_asset_loan : [data.any_other_asset_loan],\n });\n }\n\n loadDetails:boolean\n addBusinessAssetsForAddress(data) {\n console.log(\"add business\")\n var result = Object.keys(data).map(function (key) {\n return data[key];\n });\n if (result.length > 0) {\n result.forEach((datas, index) => {\n //this.placeholderName[index]=datas.address_label.split('/')\n // console.log(datas.address_label.split('/'))\n // console.log(datas.address_label.split('/')[0])\n if(datas.address_label != null && datas.address_label !=''){\n let splitted=datas.address_label.split('/')[1]\n this.placeholderName[index]='Was any business activity seen at the '+splitted+' during PD visit?';\n this.addressType = splitted;\n }\n this.RentAmtInwordsForAddress[index] = this.cons.convertNumberToWords(datas.business_monthly_rented_amt);\n this.appxMarketAmtInwordsForAddress[index] = this.cons.convertNumberToWords(datas.business_approximate_market_value);\n let Avaliablity = 1;\n \n if(datas.business_name_of_the_owner.length > 0){\n datas.business_name_of_the_owner.forEach(option => {\n if(option.id == 0 && option.group_id == 2){\n Avaliablity = option.id;\n }\n });\n }\n this.isOtherOwnerForAddress = Avaliablity == 0 ? true : false;\n });\n\n for (let val of result) {\n \n let vals = {\n address_label:val.address_label,\n business_years:val.business_years,\n business_month:val.business_month,\n business_address_availability:val.business_address_availability,\n business_is_pd_visited:val.business_is_pd_visited,\n business_pd_visited_remark:val.business_pd_visited_remark,\n\n business_approximate_market_value: val.business_approximate_market_value,\n business_ownership_type: val.business_ownership_type,\n business_monthly_rented_amt: val.business_monthly_rented_amt,\n business_name_of_the_owner: val.business_name_of_the_owner,\n business_name_of_the_other_owner: val.business_name_of_the_other_owner,\n business_vintage: val.business_vintage,\n business_purchase_year: val.business_purchase_year,\n business_emi: val.business_emi\n };\n const control = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n control.push(this.createBusinessAssetsForAddressWithData(vals));\n }\n } else {\n const control = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n control.push(this.createBusinessAssetsForAddress());\n }\n }\n addBusinessAssetsDetailsWithData(supp_data){\n var result=Object.keys(supp_data).map(function(key){\n return supp_data[key];\n })\n \n if(result.length>0){\n console.log(\"length >0\")\n result.forEach((datas,index)=>{\n this.appxMarketAmtInwords[index]=this.cons.convertNumberToWords(+datas.business_approximate_market_value)\n this.RentAmtInwords[index]=this.cons.convertNumberToWords(+datas.business_monthly_rented_amt);\n });\n for(let val of result){\n let formData={\n address_label:val.address_label,\n business_assets_mode: val.business_assets_mode,\n\n business_years:val.business_year,\n business_month:val.business_month,\n business_address_availability:val.business_address_availability,\n business_is_pd_visited:val.business_is_pd_visited,\n business_pd_visited_remark:val.business_pd_visited_remark,\n\n business_approximate_market_value: val.business_approximate_market_value,\n business_ownership_type:val.business_ownership_type,\n business_monthly_rented_amt:val.business_monthly_rented_amt,\n business_name_of_the_owner: val.business_name_of_the_owner,\n business_name_of_the_other_owner: val.business_name_of_the_other_owner,\n business_purchase_year: val. business_purchase_year,\n business_vintage : val.business_vintage,\n business_emi: val.business_emi,\n };\n const control = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.push(this.initBusinessDetailsWithdata(formData));\n this.setBusinessAssetsDetailsWithData(formData.business_assets_mode, val.business_details, control.length - 1)\n }\n \n }\n this.loadDetails=true\n }\n\n createBusinessAssetsForAddressWithData(data): FormGroup {\n return this.fb.group({\n address_label:[data.address_label],\n business_years:[data.business_years],\n business_month:[data.business_month],\n business_address_availability:[data.business_address_availability],\n business_is_pd_visited:[data.business_is_pd_visited],\n business_pd_visited_remark:[data.business_pd_visited_remark],\n\n business_approximate_market_value: [data.business_approximate_market_value],\n business_ownership_type: [data.business_ownership_type],\n business_monthly_rented_amt: [data.business_monthly_rented_amt],\n business_name_of_the_owner: [data.business_name_of_the_owner],\n business_name_of_the_other_owner: [data.business_name_of_the_other_owner],\n business_vintage: [data.business_vintage],\n business_purchase_year: [data.business_purchase_year, Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n business_emi: [data.business_emi]\n });\n }\n\n initBusinessDetailsWithdata(data) {\n \n\n let formGroup= this.fb.group({\n address_label:[data.address_label],\n business_assets_mode: [data.business_assets_mode],\n \n business_years:[data.business_year],\n business_month:[data.business_month],\n business_address_availability:[data.business_address_availability],\n business_is_pd_visited:[data.business_is_pd_visited],\n business_pd_visited_remark:[data.business_pd_visited_remark],\n\n business_details: this.fb.array([]),\n business_approximate_market_value: [data.business_approximate_market_value],\n business_ownership_type : [data.business_ownership_type],\n business_monthly_rented_amt:[data.business_monthly_rented_amt],\n business_name_of_the_owner: [data.business_name_of_the_owner],\n business_name_of_the_other_owner:[data.business_name_of_the_other_owner || ''],\n // relation: [data.relation || ''],\n business_vintage: [data. business_vintage],\n business_purchase_year: [data. business_purchase_year,Validators.compose([Validators.pattern(\"[1-9]{1}[0-9]{3}\")])],\n // purchase_month: [data.purchase_month],\n business_emi: [data.business_emi || ''],\n });\n return formGroup;\n }\n setBusinessAssetsDetailsWithData(assets_details_mode:any,datas:any,i:any){\n \n let val = i;\n let data = datas;\n const control=(this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray;\n control.controls.splice(0);\n\n switch (assets_details_mode) {\n case '2': {\n let business_property_datas : any;\n data.forEach((datas,i) => {\n business_property_datas = { 'property_type': datas.property_type, 'other_property_type': datas.other_property_type, 'address_of_the_property': datas.address_of_the_property };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadPropertyWithData(business_property_datas));\n break;\n }\n case '3': {\n let business_Four_Weeler_datas : any;\n data.forEach((datas,i) => {\n business_Four_Weeler_datas = { 'manufacturer_model_vehicle': datas.manufacturer_model_vehicle, 'vehicle_type': datas.vehicle_type, 'other_vehicle_type': datas.other_vehicle_type };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.load_Four_WeelerWithData(business_Four_Weeler_datas));\n break;\n }\n case '4': {\n let equipment_manufacturing_description_datas : any;\n data.forEach((datas,i) => {\n equipment_manufacturing_description_datas= { 'equipment_manufacturing_description': datas.equipment_manufacturing_description };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.loadEquipmentManufacturingDescriptionWithData(equipment_manufacturing_description_datas));\n break;\n }\n \n case '1': {\n let array_datas : any;\n data.forEach((datas,i) => {\n this.AssetValueInwords[i] = this.cons.convertNumberToWords(+datas.any_other_asset_value);\n array_datas = {\n 'any_other_assets': datas.any_other_assets,\n // 'any_other_asset_value': datas.any_other_asset_value,\n 'any_other_asset_loan': datas.any_other_asset_loan,\n };\n });\n const control = (this._businessAssetsQuesFrom.controls['business_assets_details']).at(val).get('business_details') as FormArray ;\n control.push(this.otherBusinessAssetsDescriptionWithData(array_datas));\n break;\n }\n default: {\n break;\n }\n }\n }\n\n public paymentModeTextBox: number;\n selectedPM(e) {\n this.paymentModeTextBox = e.value;\n // this.f.supplier_details.controls.get('payment_mode_value');\n }\n\n public freqPurchaseTextBox: number;\n selectedFreqPurchase(e) {\n this.freqPurchaseTextBox = e.value;\n }\n \n\n onSubmit(){\n //console.log(\"Remarks\",this.focusRemark);\n if(!this._businessAssetsQuesFrom.valid){\n this.toast.pdTriggerappmessage(\"Please Fill the Required Field\")\n this._businessAssetsQuesFrom.value.business_assets_for_address.forEach(element=>{\n console.log(element)\n if(element.business_address_availability != 'no' && element.business_pd_visited_remark ==''){\n this.focusRemark.nativeElement.focus()\n }\n })\n return;\n }\n \n var answerData=this._businessAssetsQuesFrom.value;\n \n //To Remove The \"Null\" With Key also\n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n\n this.qustcat.saveForm(answerData).subscribe(result=>{\n if(result['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Sorry!! something went Wrong \");\n }\n })\n \n }\n // calculate vintage and purchase {}\n calculateVintagePurchase(value: any, controlKey: any, type: number) {\n if (type == 1) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_details'];\n control.controls[controlKey].controls['business_purchase_year'].setValue(value != '' ? parseInt(this.currentYear) - parseInt(value) : '');\n }\n else if (type == 2) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_details'];\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_purchase_year'].setValue(value) : control.controls[controlKey].controls['business_purchase_year'].setValue('');\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_vintage'].setValue(parseInt(this.currentYear) - parseInt(value)) : control.controls[controlKey].controls['business_vintage'].setValue('')\n }\n if (type == 3) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n control.controls[controlKey].controls['business_purchase_year'].setValue(value != '' ? parseInt(this.currentYear) - parseInt(value) : '');\n }\n else if (type == 4) {\n let control: any = this._businessAssetsQuesFrom.controls['business_assets_for_address'];\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_purchase_year'].setValue(value) : control.controls[controlKey].controls['business_purchase_year'].setValue('');\n value != '' && value <= this.currentYear ? control.controls[controlKey].controls['business_vintage'].setValue(parseInt(this.currentYear) - parseInt(value)) : control.controls[controlKey].controls['business_vintage'].setValue('')\n }\n }\n\n\n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n\n // // check others\n checkOthers(values){\n // if(values!=null) {\n // return values.id==0 ? true : false;\n // }\n if(values.length > 0) {\n // return values.id==0 ? true : false;\n let Avaliablity = 1;\n values.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n return Avaliablity == 0 ? true : false;\n }\n else {\n return false;\n }\n \n }\n\n\n setRequiredValidation(value, item, flag,i) {\nif(flag== 11){\n if(value == 'yes'){\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.clearValidators();\n }\n else if(value == 'no'){\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.setValidators([Validators.required]);\n }\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.updateValueAndValidity();\n}\n if (flag == 1) {\n if (value == 'yes') {\n console.log(\"bu\",this._businessAssetsQuesFrom.controls);\n // this._businessAssetsQuesFrom.controls.business_assets_for_address.value[i].business_years.setValidators([Validators.required]);\n \n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_address_availability.setValidators([Validators.required]);\n // this._businessAssetsQuesFrom.controls.business_activity.setValidators([Validators.required]) ;\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_is_pd_visited.setValidators([Validators.required]);\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.setValidators([Validators.required]);\n // this._businessAssetsQuesFrom.controls.business_activity.setValidators([Validators.required]) ;\n }\n else {\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_years.clearValidators();\n \n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_address_availability.clearValidators();\n // this._businessAssetsQuesFrom.controls.business_activity.clearValidators();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_is_pd_visited.clearValidators();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.clearValidators();\n // this._businessAssetsQuesFrom.controls.business_activity.clearValidators();\n }\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_years.updateValueAndValidity();\n \n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_address_availability.updateValueAndValidity();\n // this._businessAssetsQuesFrom.controls.business_activity.updateValueAndValidity();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_is_pd_visited.updateValueAndValidity();\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][i].controls.business_pd_visited_remark.updateValueAndValidity();\n // this._businessAssetsQuesFrom.controls.business_activity.updateValueAndValidity();\n\n\n }\n // if(flag == 2){\n // value==1\n // ? item.controls.premises_type_others.setValidators([Validators.required])\n // : item.controls.premises_type_others.clearValidators();\n // item.controls.premises_type_others.updateValueAndValidity();\n // }\n if (flag == 3) {\n if (value == 'owned') {\n item.controls.business_monthly_rented_amt.clearValidators();\n item.controls.business_name_of_the_owner.setValidators([Validators.required]);\n }\n else {\n item.controls.business_monthly_rented_amt.setValidators([Validators.required]);\n item.controls.business_name_of_the_owner.clearValidators();\n }\n item.controls.business_monthly_rented_amt.updateValueAndValidity();\n item.controls.business_name_of_the_owner.updateValueAndValidity();\n }\n if (flag == 4) {\n let Avaliablity = 1;\n value.forEach(option => {\n if(option.id == 0 && option.group_id == 2){ \n Avaliablity = option.id;\n }\n });\n if(Avaliablity == 0){\n \n item.controls.business_name_of_the_other_owner.setValidators([Validators.required]);\n this.isOtherOwner = true;\n }else{\n \n item.controls.business_name_of_the_other_owner.setValue('');\n item.controls.business_name_of_the_other_owner.clearValidators();\n this.isOtherOwner = false;\n }\n \n item.controls.business_name_of_the_other_owner.updateValueAndValidity();\n\n // value == 0\n // ? item.controls.business_name_of_the_other_owner.setValidators([Validators.required])\n // : item.controls.business_name_of_the_other_owner.clearValidators();\n // item.controls.business_name_of_the_other_owner.updateValueAndValidity();\n }\n if (flag == 5) {\n value == 1\n ? item.controls.other_vehicle_type.setValidators([Validators.required])\n : item.controls.other_vehicle_type.clearValidators();\n item.controls.other_vehicle_type.updateValueAndValidity();\n }\n if (flag == 6) {\n value == 1\n ? item.controls.other_property_type.setValidators([Validators.required])\n : item.controls.other_property_type.clearValidators();\n item.controls.other_property_type.updateValueAndValidity();\n\n value != ''\n ? item.controls.address_of_the_property.setValidators([Validators.required])\n : item.controls.address_of_the_property.clearValidators();\n item.controls.address_of_the_property.updateValueAndValidity();\n }\n if (flag == 7) {\n if (value == 'owned') {\n item.controls.business_monthly_rented_amt.clearValidators();\n item.controls.business_name_of_the_owner.setValidators([Validators.required]);\n }\n else {\n item.controls.business_monthly_rented_amt.setValidators([Validators.required]);\n item.controls.business_name_of_the_owner.clearValidators();\n }\n item.controls.business_monthly_rented_amt.updateValueAndValidity();\n item.controls.business_name_of_the_owner.updateValueAndValidity();\n }\n // if(flag == 8){\n // let Avaliablity = 1;\n // value.forEach(option => {\n // if(option.id == 0 && option.group_id == 2){\n \n // Avaliablity = option.id;\n // }\n // });\n // this.isOtherOwner = false;\n // if(Avaliablity == 0){\n \n // item.controls.business_name_of_the_other_owner.setValidators([Validators.required]);\n // this.isOtherOwnerForAddress = true;\n // }else{\n \n // item.controls.business_name_of_the_other_owner.setValue('');\n // item.controls.business_name_of_the_other_owner.clearValidators();\n // this.isOtherOwnerForAddress = false;\n // }\n \n // item.controls.business_name_of_the_other_owner.updateValueAndValidity();\n \n // }\n\n }\n /** To Convert Month into Year */\n ConvertMonthintoYear(e,ind){\n console.log( this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years)\n let business_year = this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.value;\n \n \n let converted_month : number = e%12;\n let converted_year : number = e/12;\n\n let Year = +business_year + +Math.floor(converted_year);\n \n if(Year > this.generalExistBusinessYear){\n this.yearErrorMessage[ind] = \"Higher than Business Vintage\";\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue('');\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_month.setValue('');\n \n }\n else{\n if(Year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth)\n {\n this.monthErrorMessage[ind] = \"Higher than Business Vintage\";\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue('');\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_month.setValue('');\n \n }else{\n this.monthErrorMessage[ind] = '';\n this.yearErrorMessage[ind] = '';\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue(+business_year + +Math.floor(converted_year));\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_month.setValue(Math.floor(converted_month));\n }\n }\n }\n\n checkWithExistBusinessYear(e,ind){\n \n if(+e > this.generalExistBusinessYear){\n this.yearErrorMessage[ind] = \"Higher than Business Vintage\";\n this._businessAssetsQuesFrom.controls['business_assets_for_address']['controls'][ind].controls.business_years.setValue('');\n \n }\n else{\n this.yearErrorMessage[ind] = '';\n }\n }\n\n\n inWords(e,i,flag){\n switch(flag){\n case 1:\n this.AssetValueInwords[i]=this.cons.convertNumberToWords(e.target.value);\n break;\n case 2 : \n this.appxMarketAmtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n case 3:\n this.RentAmtInwords[i]=this.cons.convertNumberToWords(e.target.value);\n break;\n case 9:\n this.RentAmtInwordsForAddress[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n case 10:\n this.appxMarketAmtInwordsForAddress[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n\n }\n }\n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustcat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n }\n changeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n }\n changeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n }\n removeImg(index){\n this.imageDisplay.splice(index,1);\n }\n removeImgForBucket(index){\n this.imageBucket.splice(index,1)\n }\n capture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n \n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustcat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('business_name_of_the_other_owner').value\n value.get('business_name_of_the_other_owner').setValue(this.cons.sentenceCase(name));\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormBuilder,FormGroup,FormArray,Validators} from '@angular/forms';\nimport {AwsServiceProvider} from '../../../../providers/aws-service/aws-service';\nimport { QuestionCategoryProvider } from '../../../../providers/question-category/question-category'\n// import { QueryState } from '@angular/core/src/render3/interfaces';\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\nimport {ToastProvider} from '../../../../providers/common-provider/toast'\nimport { Subject } from 'rxjs';\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\n\n/**\n * Generated class for the PdQuestionBusinessBankingPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-business-banking',\n templateUrl: 'pd-question-business-banking.html',\n})\nexport class PdQuestionBusinessBankingPage {\npdDetails:any;\nm_btLenderList: any;\napplicants: any \nsalaryField: boolean;\nformDetails: any;\nform_id:any;\naccountType: any;\nusers: any;\nbankingForm:FormGroup;\npublic pd_cus_segment:string\ncompany_id:any;\n\npdid:any;\nitemRows:FormArray;\n\nexistCompanyList: any=[];\nmergeCompanyApplicant: any=[];\nstep:number\n amtInwords: any=[];\n emiAmtInwords: any=[];\n limitCaseFlag: any=[];\n generalExistBusinessYear: number;\n generalExistBusinessMonth:number\n yearErrorMessage: any=[];\n monthErrorMessage: any=[];\n m_btLenderListValue:any=[]\n protected _onDestroy = new Subject();\n imageDisplay: any[];\n imageBucket: any=[];\n tab: string='0';\n complete_status: boolean = false;\n constructor(public navCtrl: NavController, public navParams: NavParams,\n public aws: AwsServiceProvider,public fb:FormBuilder,public qustCat:QuestionCategoryProvider,\n public cons:ConstantsProvider,public toast:ToastProvider,private loading:LoadingProvider,\n private cameraProvider:CameraProvider) {\n this.pdDetails=this.navParams.get('pdDetails')\n \n this.pd_cus_segment=this.pdDetails.customer_segment_abbr.toUpperCase();\n this.pd_cus_segment=this.pd_cus_segment.substring(0,3)\n this.pdid=this.pdDetails.pd_id;\n this.formDetails=this.navParams.get('formDetails');\n this.form_id = this.formDetails.form_id;\n this.company_id=this.pdDetails.company_id\n \n this.applicants = this.pdDetails.applicat_details;\n this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2)\n this.applicants.push({'pd_co_applicant_id':'0','applicant_name':'Others'}); \n this.generalExistBusinessMonth=this.pdDetails.business_month\n this.generalExistBusinessYear=this.pdDetails.business_years\n \n\n this.users = this.aws.getlocale();\n this.step=0\n this.bankingForm = this.fb.group(\n {\n itemRows:this.fb.array([]),\n banking_form_remark:[''],\n });\n \n \n \n this.salaryField = this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? false : true;\n \n \n this.getdropdown();\n this.retiveBankDetails();\n\n //To checking Completed Status For CompleteList Menu\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionBusinessBankingPage');\n this.getPDImages();\n }\n searchFun(control){\n if(!this.m_btLenderListValue){\n return\n }\n let searchVal=control.controls['filterCtrl'].value\n if(!searchVal){\n this.m_btLenderListValue=this.m_btLenderList.slice()\n return\n }\n else{\n searchVal=searchVal.toLowerCase();\n this.m_btLenderListValue=this.m_btLenderList.filter(val=>val.lender_name.toLowerCase().indexOf(searchVal)>-1)\n }\n }\n getdropdown(){\n \n this.qustCat.getcommondrop('ACCOUNTTYPE').subscribe(res=>\n {\n if(res['dataStatus']==true)\n {\n this.accountType=res['records'];\n }\n });\n this.qustCat.getcommondrop('BTLENDERLIST').subscribe(\n data => {\n if(data['dataStatus']==true){\n this.m_btLenderList = data['records'].filter(data => data.isactive == 1 && data.lender_type == 1);\n this.m_btLenderListValue=this.m_btLenderList.slice();\n }\n });\n this.qustCat.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{\n \n if(data['dataStatus']==true){\n this.existCompanyList=data['records'].filter(val =>val.is_active===true) /*&& val.is_company_applicant===true*/\n \n }\n let modifyCompanyList : any=[];\n if(this.existCompanyList.length>0){\n modifyCompanyList = this.existCompanyList.map(element => {\n return {id:element.company_order_id.toString(),name:element.company_name,group_id:1};\n });\n this.mergeCompanyApplicant.push({groupName:'COMPANIES',groupValues:modifyCompanyList})\n \n }\n })\n let modifyApplicantList: any=[];\n if(this.applicants.length > 0){\n modifyApplicantList = this.applicants.map(element => {\n return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};\n });\n this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) \n \n // this.listOfLanguagues.splice(this.listOfLanguagues.indexOf(languague), 1);\n }\n }\n \n checkWithExistBusinessYear(itemrow,e, i) {\nconsole.log(this.generalExistBusinessYear)\n if (+e > this.generalExistBusinessYear) {\n this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n itemrow.controls.vintage_year.setValue('');\n }\n else {\n this.yearErrorMessage[i] = '';\n }\n }\n compareObjects(o1: any, o2: any) {\n if(o1.id == o2.id && o1.group_id == o2.group_id)\n return true;\n else return false\n }\n checkOthers(values){\n if(values!=null) {\n return values.id==0 ? true : false;\n }\n else {\n return false;\n }\n \n }\n selectedAccTypeChanges(event: any,i){\n \n if(event == 2 || event == 1) {\n this.limitCaseFlag[i] = false;\n \n // const control = this.bankingForm.controls['itemRows'];\n \n // control.controls[0].get('limit').clearValidators();\n // control.controls[0].get('limit').updateValueAndValidity();\n \n }\n else{\n this.limitCaseFlag[i] = true;\n }\n\n}\n /** To Convert Month into Year */\n ConvertMonthintoYear(itemrow, e,i) {\n console.log(this.generalExistBusinessMonth)\n\n\n let year = itemrow.controls.vintage_year.value;\n\n let converted_month: number = e % 12;\n let converted_year: number = e / 12;\n let Year = +year + +Math.floor(converted_year);\n \n if (Year > this.generalExistBusinessYear) {\n this.yearErrorMessage[i] = \"Higher than Business Vintage\";\n itemrow.controls.vintage_year.setValue('');\n itemrow.controls.vintage_month.setValue('');\n\n }\n else {\n if (Year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth) {\n this.monthErrorMessage[i] = \"Higher than Business Vintage\";\n itemrow.controls.vintage_year.setValue('');\n itemrow.controls.vintage_month.setValue('');\n console.log(this.monthErrorMessage[i])\n\n } else {\n this.monthErrorMessage[i] = '';\n this.yearErrorMessage[i] = '';\n itemrow.controls.vintage_year.setValue(Year);\n itemrow.controls.vintage_month.setValue(Math.floor(converted_month));\n }\n }\n\n\n}\n /** Amount InWords */\n inWords(e,i,flag){\n switch(flag){\n case 1 : \n this.amtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n case 2 :\n this.emiAmtInwords[i] = this.cons.convertNumberToWords(e.target.value);\n break;\n default:\n break;\n }\n }\n\n setRequiredValidation(value,item,flag) {\n \n \n if(flag == 1){\n value==0\n ? item.controls.other_applicant.setValidators([Validators.required])\n : item.controls.other_applicant.clearValidators();\n item.controls.other_applicant.updateValueAndValidity();\n }\n if(flag == 2){\n value==1\n ? item.controls.other_bank.setValidators([Validators.required])\n : item.controls.other_bank.clearValidators();\n item.controls.other_bank.updateValueAndValidity();\n }\n \n }\n\n createBankItem(name) {\n \n return this.fb.group({\n applicant_name: [''],\n \n bank_name: [''],\n filterCtrl:[''],\n account_type: [''],\n salary : this.pdDetails.customer_segment_abbr.substring(0,2) == 'SE' ? [''] : [''] ,\n limit: [''],\n other_bank:[''],\n other_applicant:[''],\n is_main: [''],\n vintage_year: [''],\n vintage_month: [''],\n \n });\n\n }\n addBankDetails(index,event) {\n // if(this.pd.valid){\n \n // if(this.items.length !=0)\n // {\n // this.neighbourAccess = true;\n // }\n \n event.stopPropagation()\n const control = this.bankingForm.controls['itemRows'];\n let length = control.length;\n this.step = length;\n \n control.push(this.createBankItem(''));\n \n \n \n }\n\n addmoreBankDetils()\n {\n \n this.itemRows = this.bankingForm.get('itemRows') as FormArray;\n \n this.itemRows.push(this.createBankItem('')); \n }\n\n removebank(i){\n const control = this.bankingForm.controls['itemRows'];\n if(control.length==1){\n control.reset();\n }\n else\n \n \n control.removeAt(i);\n }\n \n setStep(index: number) {\n this.step = index;\n }\n\n retiveBankDetails(){\n let records = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':this.form_id,'company_id':this.company_id}\n const control = this.bankingForm.controls['itemRows'];\n this.qustCat.retiverForm(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n var result = Object.keys(res['records'].banking_details).map(function(key) {\n return res['records'].banking_details[key];\n });\n \n this.bankingForm.controls.banking_form_remark.setValue(res['records'].banking_form_remark);\n \n \n if(result.length == 0){\n \n control.push(this.createBankItem(''))\n }else\n {\n \n result.forEach((datas,index)=>\n {\n datas.filterCtrl=''\n this. selectedAccTypeChanges(datas.account_type,index);\n if(datas.limit != ''){\n \n this.amtInwords[index] = this.cons.convertNumberToWords(+datas.limit); \n }\n this. selectedAccTypeChanges(datas.account_type,index);\n control.push(this.createBankItem(''));\n })\n \n this.bankingForm.controls['itemRows'].setValue(result);\n } \n }else\n {\n \n control.push(this.createBankItem(''));\n }\n });\n \n }\n\n savepdBank(answerData)\n {\n answerData.itemRows.forEach(element=>{\n delete element.filterCtrl\n })\n console.log(\"logs\",answerData)\n let records: any = {};\n records.parent_pdid=this.pdDetails.parent_pd_id\n records.pdid = this.pdDetails.pd_id;\n records.formid = this.form_id;\n records.fk_createdby = this.users;\n records.company_id=this.company_id;\n records.banking_details = answerData.itemRows;\n records.banking_form_remark = answerData.banking_form_remark;\n \n this.qustCat.saveForm(records).subscribe(data => {\n \n if(data['dataStatus']==true)\n {\n this.bankingForm.markAsUntouched();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n setTimeout(()=>{\n this.navCtrl.pop();\n },2000);\n }\n else{\n this.toast.pdTriggerappmessage(\"Sorry!! Something Went Wrong\");\n }\n })\n \n }\n \n /*IMAGE SECTION*/\n getPDImages(){\n //FOR RETRIEVING PICTURES\n this.imageDisplay=[]\n let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.formDetails.form_id,'company_id':this.pdDetails.company_id}\n this.qustCat.getPDImages(record_for_pic).subscribe(val=>{\n if(!val['msg']){\n console.log(val['records'])\n if(val['records'].length>0){\n val['records'].forEach(result=>{\n this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy'})\n })\n console.log(\"imageBuck\",this.imageDisplay);\n }\n }\n })\n}\nchangeName(value,index,img){\n console.log(value);\n this.imageDisplay[index]={'image':img,'Name':value}\n \n}\nchangeNameForBucket(value,index,img){\n this.imageBucket[index]={'image':img,'Name':value}\n}\nremoveImg(index){\n this.imageDisplay.splice(index,1);\n}\nremoveImgForBucket(index){\n this.imageBucket.splice(index,1)\n}\ncapture(){\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res=>{\n console.log(\"Value\",res)\n if(res != 'error'){\n this.cons.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert =this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value=>{\n console.log(\"alert value\",value);\n if(value){\n this.imageBucket[this.imageBucket.length-1].Name=value.Name\n }\n })\n })\n }\n },error=>{\n console.log(\"Camera Error \",JSON.stringify(error));\n })\n this.tab='1';\n\n\n }\n sendImage(){\n this.loading.loaderForSendImage()\n console.log(\"ll\",JSON.stringify(this.imageBucket));\n \n let records:any={\n 'pd_id':this.pdDetails.pd_id,\n 'formid':this.formDetails.form_id,\n 'images':this.imageBucket,\n 'company_id':this.pdDetails.company_id,\n \n }\n console.log(\"records\",JSON.stringify(records))\n \n this.qustCat.savePDImages(records).subscribe(res=>{\n if(res['dataStatus']== true){\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket=[]\n this.getPDImages();\n }\n else{\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n changeSentence(value){\n console.log(\"val\",value)\n let name=value.get('other_applicant').value\n value.get('other_applicant').setValue(this.cons.sentenceCase(name));\n }\n \n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup, FormBuilder } from '@angular/forms';\n\nimport {AwsServiceProvider} from '../../../../providers/aws-service/aws-service'\nimport {ToastProvider} from '../../../../providers/common-provider/toast'\nimport {QuestionCategoryProvider} from '../../../../providers/question-category/question-category'\nimport {CameraProvider} from '../../../../providers/common-provider/camera'\nimport {LoadingProvider} from '../../../../providers/common-provider/loading'\nimport {ConstantsProvider} from '../../../../providers/constants/constants'\n\n/**\n * Generated class for the PdQuestionFuturePlansAndBusinessEnvironmentPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n@Component({\n selector: 'page-pd-question-future-plans-and-business-environment',\n templateUrl: 'pd-question-future-plans-and-business-environment.html',\n})\nexport class PdQuestionFuturePlansAndBusinessEnvironmentPage {\n\n\n pdDetails: any;\n formDetails: any;\n pdid: any;\n FormId: any;\n company_id:any;\n users: any;\n product_abbr: any;\n lender_short_name: any;\n complete_status: boolean = false;\n tab: any = '0';\n imageDisplay: any = [];\n imageBucket: any = [];\n public _futurePlansForm: FormGroup;\n\n\n constructor(public navCtrl: NavController, public navParams: NavParams, public fb: FormBuilder,\n public qustcat: QuestionCategoryProvider, public aws: AwsServiceProvider,\n public toast: ToastProvider, private cameraProvider: CameraProvider, private loading: LoadingProvider,private constantProvider:ConstantsProvider) {\n\n \n this.formDetails=this.navParams.get('formDetails');\n this.pdDetails = this.navParams.get('pdDetails');\n this.pdid = this.pdDetails.pd_id\n this.FormId = this.formDetails.form_id;\n this.company_id=this.pdDetails.company_id\n this.users = aws.getlocale();\n this.lender_short_name = this.pdDetails.lender_short_name;\n this.product_abbr = this.pdDetails.product_abbr;\n this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false;\n\n this._futurePlansForm = this.fb.group({\n parent_pdid: [this.pdDetails.parent_pd_id],\n pdid: [this.pdid],\n formid: ['23'],\n company_id:[this.company_id],\n usp_of_the_business: [''],\n future_plans_for_business_expansion: [''],\n impact_of_gst_on_the_business: [''],\n key_competitors: [''],\n succession_plan: [''],\n brief_of_other_group_concerns_or_businesses_run_by_the_applicants: [''],\n remarks: [''],\n fk_createdby:[this.users]\n });\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionFuturePlansAndBusinessEnvironmentPage');\n this.getFuturePlans();\n this.getPDImages();\n }\n\n ionViewCanLeave() {\n \n if (this._futurePlansForm.dirty) {\n\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Data will be Lost\", \"Are you sure want to Go Back\")\n alert.present();\n alert.onDidDismiss((data) => {\n \n if (data == false) {\n reject();\n return true;\n }\n else {\n //AFTER FORM DIRTY CHECK\n if (this.imageBucket.length > 0) {\n return new Promise((resolve1, reject1) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the Save Image button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n \n if (data == false) {\n //reject1();\n reject();\n }\n else {\n resolve1();\n resolve();\n }\n })\n })\n }\n resolve();\n }\n })\n })\n\n }\n else {\n //REGULAR CHECK FOR IMAGE IS CAPTURED\n if (this.imageBucket.length > 0) {\n return new Promise((resolve, reject) => {\n let alert = this.toast.setAlert(\"Captured Images are not Saved\", \"Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?\")\n alert.present();\n alert.onDidDismiss((data) => {\n \n if (data == false) {\n reject();\n }\n else {\n resolve();\n }\n })\n })\n }\n\n }\n\n }\n\n getFuturePlans() {\n let Records = { 'parent_pdid': this.pdDetails.parent_pd_id, \n 'pd_id': this.pdid, \n 'pd_form_id': this.FormId,\n 'company_id': this.company_id}\n this.qustcat.retiverForm(Records).subscribe(data => {\n if (data['dataStatus'] == true) {\n this._futurePlansForm.controls.usp_of_the_business.setValue(data['records'].usp_of_the_business);\n this._futurePlansForm.controls.future_plans_for_business_expansion.setValue(data['records'].future_plans_for_business_expansion);\n this._futurePlansForm.controls.impact_of_gst_on_the_business.setValue(data['records'].impact_of_gst_on_the_business);\n this._futurePlansForm.controls.key_competitors.setValue(data['records'].key_competitors);\n this._futurePlansForm.controls.succession_plan.setValue(data['records'].succession_plan);\n this._futurePlansForm.controls.brief_of_other_group_concerns_or_businesses_run_by_the_applicants.setValue(data['records'].brief_of_other_group_concerns_or_businesses_run_by_the_applicants);\n this._futurePlansForm.controls.remarks.setValue(data['records'].remarks);\n }\n else { };\n })\n\n }\n\n saveFuturePlan() {\n if (this._futurePlansForm.invalid) {\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields marked with '*' \")\n }\n else {\n var answerData = this._futurePlansForm.value\n //To Remove The \"Null\" With Key also\n Object.keys(answerData).forEach((key) => (answerData[key] == null) && delete answerData[key]);\n this.qustcat.saveForm(answerData).subscribe(res => {\n if (res['dataStatus'] == true) {\n //TO CHANGE THE FORM STATE \n this._futurePlansForm.reset(this._futurePlansForm.value);\n this.toast.pdTriggerappmessage(\"Record Saved Successfully\");\n setTimeout(() => {\n this.navCtrl.pop();\n }, 2000);\n }\n else {\n this.toast.pdTriggerappmessage(\"Sorry!! Something Went Wrong\");\n }\n });\n }\n }\n\n getPDImages() {\n //FOR RETRIEVING PICTURES\n this.imageDisplay = []\n let record_for_pic = { 'pd_id': this.pdDetails.pd_id, 'form_id': this.FormId, 'company_id':this.pdDetails.company_id }\n this.qustcat.getPDImages(record_for_pic).subscribe(val => {\n if (!val['msg']) {\n \n if (val['records'].length > 0) {\n val['records'].forEach(result => {\n this.imageDisplay.push({ 'image': result.doc_url, 'Name': result.pd_document_title, 'option': 'dummy' })\n })\n \n }\n }\n })\n }\n\n changeName(value, index, img) {\n this.imageDisplay[index] = { 'image': img, 'Name': value }\n }\n\n changeNameForBucket(value, index, img) {\n this.imageBucket[index] = { 'image': img, 'Name': value }\n }\n\n removeImg(index) {\n this.imageDisplay.splice(index, 1);\n }\n\n removeImgForBucket(index) {\n this.imageBucket.splice(index, 1)\n }\n\n capture() {\n //FOR CAPTURING PICS\n this.cameraProvider.getpicture().then(res => {\n \n if (res != 'error') {\n this.constantProvider.getGeoTag().then(geoCoordinates=>{\n console.log(\"geo promise\",geoCoordinates)\n this.imageBucket.push({ 'image': res, 'Name': '' ,'link':geoCoordinates});\n //FOR GETTING THE DOC NAME FROM ALERT\n let alert = this.toast.setAlertForDocName()\n alert.present()\n alert.onDidDismiss(value => {\n if (value) {\n this.imageBucket[this.imageBucket.length - 1].Name = value.Name\n }\n })\n })\n }\n }, error => {\n console.log(\"Camera Error \", JSON.stringify(error));\n })\n this.tab = '1';\n\n\n }\n sendImage() {\n this.loading.loaderForSendImage()\n \n let records: any = {\n 'pd_id': this.pdDetails.pd_id,\n 'formid': this.FormId,\n 'images': this.imageBucket,\n 'company_id':this.company_id,\n \n }\n \n this.qustcat.savePDImages(records).subscribe(res => {\n if (res['dataStatus'] == true) {\n this.toast.pdTriggerappmessage(\"Image Saved Successfully\")\n this.imageBucket = []\n this.getPDImages();\n }\n else {\n this.toast.pdTriggerappmessage('Fail');\n }\n })\n \n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\n\n/**\n * Generated class for the FormCompleteCheckModalPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n//@IonicPage()\n@Component({\n selector: 'page-form-complete-check-modal',\n templateUrl: 'form-complete-check-modal.html',\n})\nexport class FormCompleteCheckModalPage {\n\n datas:any\n constructor(public navCtrl: NavController, public navParams: NavParams) {\n this.datas=this.navParams.get('values');\n console.log(this.datas)\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad FormCompleteCheckModalPage');\n\n }\n closeModal(){\n this.navCtrl.pop();\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/form-complete-check-modal/form-complete-check-modal.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { CameraProvider } from '../../providers/common-provider/camera';\nimport { QuestionCategoryProvider } from '../../providers/question-category/question-category';\nimport { ToastProvider } from '../../providers/common-provider/toast';\n\n/**\n * Generated class for the PdGeneralImagesPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-general-images',\n templateUrl: 'pd-general-images.html',\n})\nexport class PdGeneralImagesPage {\n\n cameraArr:any = [];\n applicatentDetails: any;\n count:any = 0;\n saveAccess:boolean =false;\n FormId:any = '';\n constructor(public navCtrl: NavController, public navParams: NavParams,public camera:CameraProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider) {\n\n this.applicatentDetails = this.navParams.get('pdDetails');\n this.FormId = this.navParams.get('FormId');\n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdGeneralImagesPage');\n }\n \n takePicture()\n {\n this.camera.getpicture().then(image=>\n {\n this.count = this.count+1;\n \n this.cameraArr.push({'image':image,'name':''});\n });\n }\n\n removeimage(i)\n {\n this.count = this.count - 1; \n this.cameraArr.splice(i,1);\n }\n\n docnames(doc,i,img)\n {\n \n this.cameraArr[i] = {'image':img,'Name':doc};\n // console.log(JSON.stringify(this.pddocdata)); \n }\n savePDImages()\n {\n \n this.saveAccess = true;\n let records :any = {'pd_id':this.applicatentDetails.pd_id,'formid':''};\n records.images = this.cameraArr;\n this.qustCat.savePDImages(records).subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.saveAccess = false;\n this.navCtrl.pop();\n this.toast.pdTriggerappmessage('Record Saved Successfully.!');\n } \n })\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-general-images/pd-general-images.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, ViewController } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../../providers/pdtrigger/pdtrigger';\nimport { QuestionCategoryProvider } from '../../../providers/question-category/question-category';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { PdListPage } from '../../pd-list/pd-list';\nimport {ToastProvider} from '../../../providers/common-provider/toast'\n\n/**\n * Generated class for the BouncedRejectPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-bounced-reject',\n templateUrl: 'bounced-reject.html',\n})\nexport class BouncedRejectPage {\n\n users: any;\n bounseMaster: any;\n pdDetails: any;\n status: any;\n bounce_reason:any;\n bounce_reason_others:any = '';\n constructor(public navCtrl: NavController, public navParams: NavParams,public viewCtrl:ViewController,\n public aws:AwsServiceProvider,public pdservice:PdtriggerProvider,\n public qustCat:QuestionCategoryProvider,public fb:FormBuilder,public toast:ToastProvider) {\n // this.pdDetails = this.navParams.get('appdetails');\n // this.status = this.navParams.get('status');\n this.pdDetails=this.navParams.get('details')\n // console.log(this.pdDetails)\n this.users = this.aws.getlocale();\n this.getDropdown();\n \n }\n\n getDropdown()\n {\n \n \n this.qustCat.getcommondrop('BOUNCEMASTER').subscribe(res=>\n {\n if(res['dataStatus']==true){\n this.bounseMaster = res['records'].filter(bouns=>bouns.isactive==1);\n console.log(this.bounseMaster);\n }\n })\n \n }\n updatePDStatus()\n {\n if(this.bounce_reason !=null && this.bounce_reason !=1)\n {\n let data = {'pd_id':this.pdDetails.pd_id,'pd_status':this.pdDetails.pd_status,'fk_updatedby':this.users,'bounce_reason':this.bounce_reason,'bounce_reason_others':this.bounce_reason_others};\n // console.log(this.bounce_reason)\n // console.log(this.bounce_reason_others);\n console.log(data);\n this.toast.pdTriggerappmessage(\"Thank You\");\n this.pdservice.updatepdStatus(data).subscribe(res=>\n {\n // this.updateStatus = res;\n if(res['dataStatus'] == true)\n {\n this.navCtrl.setRoot(PdListPage); \n }\n })\n }\n else if(this.bounce_reason == 1 && this.bounce_reason_others != '' && this.bounce_reason_others !=null )\n {\n let data = {'pd_id':this.pdDetails.pd_id,'pd_status':this.pdDetails.pd_status,'fk_updatedby':this.users,'bounce_reason':this.bounce_reason,'bounce_reason_others':this.bounce_reason_others};\n // console.log(this.bounce_reason)\n // console.log(this.bounce_reason_others);\n console.log(data);\n this.toast.pdTriggerappmessage(\"Thank You\");\n this.pdservice.updatepdStatus(data).subscribe(res=>\n {\n // this.updateStatus = res;\n if(res['dataStatus'] == true)\n {\n this.navCtrl.setRoot(PdListPage); \n }\n })\n }\n \n \n\n else{\n this.toast.pdTriggerappmessage(\"Please Choose the Reason to Reject\");\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/input/bounced-reject/bounced-reject.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport {QuestionCategoryProvider} from '../../providers/question-category/question-category'\nimport { FormGroup,FormBuilder, Validators } from '@angular/forms';\nimport{AwsServiceProvider} from '../../providers/aws-service/aws-service'\nimport {PdtriggerProvider} from '../../providers/pdtrigger/pdtrigger'\nimport {ToastProvider} from '../../providers/common-provider/toast'\n\n\n/**\n * Generated class for the MapAddressPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-map-address',\n templateUrl: 'map-address.html',\n})\nexport class MapAddressPage {\n cus_seg:any=[]\n addressMapping:FormGroup\n mobileDisable:boolean=false;\n master:any=[]\n addressData:any=[]\n applicants:any=[]\n pageTitle=\"Choose customer segment For this PD address\"\n constructor(public navCtrl: NavController, public navParams: NavParams,private qustCat:QuestionCategoryProvider,\n private fb:FormBuilder,private aws:AwsServiceProvider,private pdTrigger:PdtriggerProvider,private toast:ToastProvider) {\n\nthis.master=this.navParams.get('master')\nthis.addressData=this.navParams.get('address')\nthis.applicants=this.navParams.get('applicants')\nconsole.log(\"d\",this.master,'kd',this.applicants,'dks',this.applicants);\n this.addressMapping=this.fb.group({\n fk_customer_segment:[''],\n pd_co_applicant_id:[''],\n mobile_no:['']\n })\n this.dropDown();\n\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad MapAddressPage');\n }\n updateMobile(data){\n \n let mobile=this.applicants.filter(val=>val.pd_co_applicant_id==data.pd_co_applicant_id).map(val=>val.mobile_no)[0]\n console.log(mobile)\n if(mobile != '' && mobile != null){\n this.addressMapping.controls['mobile_no'].setValue(mobile)\n this.addressMapping.controls['mobile_no'].clearValidators();\n this.addressMapping.controls['mobile_no'].updateValueAndValidity();\n this.mobileDisable=true\n }\n else{\n\n this.addressMapping.controls['mobile_no'].setValue('')\n this.addressMapping.controls['mobile_no'].setValidators(Validators.compose([Validators.required]));\n this.addressMapping.controls['mobile_no'].updateValueAndValidity();\n this.mobileDisable=false\n }\n }\n dropDown(){\n this.qustCat.getCustomersDetails().subscribe(res=>{\n if(res['dataStatus']== true){\n this.cus_seg=res['records']\n }\n })\n }\n cancel(){\n this.navCtrl.pop();\n }\n submit(values){\n if(this.addressMapping.invalid){\n this.toast.pdTriggerappmessage(\"Please Fill all the Fields\");\n return;\n }\n let update_records={\"pd_id\":null,\"parent_pd_id\":this.master.parent_pd_id,\"fk_address_id\":this.addressData.pd_address_id,\"pd_status\":\"ACCEPTED\",\"fk_updatedby\":this.aws.getlocale(),\n \"fk_customer_segment\":values.fk_customer_segment,\n \"pd_co_applicant_id\":values.pd_co_applicant_id,\n \"mobile_no\":values.mobile_no\n }\n console.log(\"update\",update_records);\n this.pdTrigger.updatepdStatus(update_records).subscribe(res=>{\n if(res['dataStatus']==true){\n this.toast.pdTriggerappmessage(\"Saved Successfully..\");\n this.navCtrl.pop();\n }\n else{\n this.toast.pdTriggerappmessage(\"Something went wrong!!\")\n }\n },err=>{\n console.log(\"Error\",JSON.stringify(err))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/map-address/map-address.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdListPage } from '../pd-list/pd-list';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { ConstantsProvider } from '../../providers/constants/constants';\n/**\n * Generated class for the PasswordPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-password',\n templateUrl: 'password.html',\n})\nexport class PasswordPage {\n commonImage: string;\n newpassword: any;\n confirmPassword: any;\n pin:any;\n Username:any;\n Password:any;\n \n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public toast:ToastProvider,public commonconstant:ConstantsProvider) {\n this.commonImage = this.commonconstant.commonimage;\n this.Username = this.navParams.get('Username');\n this.Password = this.navParams.get('Password');\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PasswordPage');\n }\n setNewPassword(newpass)\n {\n if(newpass !='' && newpass !=null && newpass !== undefined){\n let auth = { 'Username': this.Username, 'Password': this.Password, 'newpassword': newpass };\n console.log(auth);\n this.aws.dologin(auth).subscribe(res => {\n console.log(res);\n this.navCtrl.setRoot(PdListPage);\n // this.router.navigate(['/home']);\n }, err => {\n this.toast.pdTriggerappmessage(err.message);\n // alert(err.message);\n })\n }else\n {\n this.toast.pdTriggerappmessage('Enter the new Password');\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/password/password.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams, MenuController,ToastController } from 'ionic-angular';\nimport {Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms';\n\nimport { PdListPage } from '../pd-list/pd-list';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { ToastProvider } from '../../providers/common-provider/toast';\nimport { FingerprintAIO } from '@ionic-native/fingerprint-aio';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\n\nimport { LoadingProvider } from '../../providers/common-provider/loading';\nimport { ConstantsProvider } from '../../providers/constants/constants';\n/**\n * Generated class for the AuthPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n \n\n@Component({\n selector: 'page-auth',\n templateUrl: 'auth.html',\n})\nexport class AuthPage {\n pinAccess: any;\n newpindetails: any;\n userDetails: any;\npin:any;\n mpinaccess:boolean =false;\n newpassword:any;\n ConfirmPassword:any;\n commonImage:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public Menu:MenuController,public fb:FormBuilder,public shared:CognitoServiceProvider,public toast:ToastProvider,public faio:FingerprintAIO,public aws:AwsServiceProvider,public loadingCtrl:LoadingProvider,public commonconstant:ConstantsProvider) {\n this.commonImage = this.commonconstant.commonimage;\n this.shared.refresh();\n this.getuserDetails();\n \n\n \n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad AuthPage');\n }\n ionViewDidEnter(){\n this.Menu.enable(false);\n }\n ionViewWillLeave(){\n this.Menu.enable(true);\n }\n getuserDetails()\n {\n this.loadingCtrl.pdloader('loading...');\n let userid = this.aws.getlocale();\n this.aws.getuserprofile(userid).subscribe(res=>{\n this.userDetails = res;\n if(this.userDetails.dataStatus == true)\n { \n this.loadingCtrl.loading.dismiss();\n this.userDetails = this.userDetails.records;\n if(this.userDetails[0].role_name ==\"PD Executive\" || this.userDetails[0].role_name == \"PD Officer\"){\n //localStorage.setItem('userDetails',JSON.stringify(this.userDetails[0]));\n if(this.userDetails[0].mpin ==null)\n {\n \n this.mpinaccess = true;\n \n }else\n {\n this.mpinaccess = false;\n }\n }else{\n \n this.toast.pdTriggerappmessage('This App only for PD Officers');\n localStorage.clear();\n }\n }else{\n this.toast.pdTriggerappmessage('')\n }\n //console.log(this.mpinaccess);\n });\n }\n setnewpin(newpin)\n {\n console.log(\"set Pin\")\n this.aws.userpinupdate(newpin).subscribe(res=>\n {\n this.newpindetails = res;\n if(this.newpindetails.dataStatus == true)\n {\n this.navCtrl.setRoot(PdListPage); \n }\n })\n }\n /**Finger print */\n \n checkpin(pin) {\n console.log(\"Check pin\",pin);\n if(pin !='' && pin !=null)\n {\n if(this.userDetails[0].mpin == pin)\n {\n console.log(\"Entering List page\")\n this.navCtrl.setRoot(PdListPage);\n }else\n {\n this.toast.pdTriggerappmessage('Enter The Correct PIN');\n }\n }else\n {\n this.toast.pdTriggerappmessage('Enter The PIN');\n }\n\n \n \n }\n checkfingerprint()\n {\n console.log(\"Check Finger\");\n this.faio.show({\n clientId: 'Fingerprint-Demo',\n clientSecret: 'password', // Only Android\n localizedFallbackTitle: 'Use Pin', // Only iOS\n localizedReason: 'Please authenticate',\n disableBackup:true,\n })\n .then((result: any) => {\n this.navCtrl.setRoot(PdListPage);\n })\n .catch((error: any) => {\n this.toast.pdTriggerappmessage('err: '+ error);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/auth/auth.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { parseDate } from 'ionic-angular/util/datetime-util';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\nimport { DatabaseProvider } from '../../providers/database/database';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\nimport { InputPage } from '../input/input';\n\n/**\n * Generated class for the CompleteListPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n//@IonicPage()\n@Component({\n selector: 'page-complete-list',\n templateUrl: 'complete-list.html',\n})\nexport class CompleteListPage {\n // random_ng_past(): any {\n // throw new Error(\"Method not implemented.\");\n // }\n // random_bg_color(): any {\n // throw new Error(\"Method not implemented.\");\n // }\n aws: any;\n pdlistaccess: boolean;\n pdofficer: any;\n pdlistdetails: any = [];\n pdschduleDetails: any;\n searchpast: any;\n pdcomplete: any=[];\n searchcomplete: any;\n bgColorPast: any = [];\n bgColor: any = [];\n viewchange: boolean;\n pdlist:any = \"0\";\n\n \n constructor(public navCtrl: NavController, public navParams: NavParams,public awsservice:AwsServiceProvider,public PdtriggerProvider:PdtriggerProvider,public shared:CognitoServiceProvider,public db:DatabaseProvider,public androidPermissions:AndroidPermissions) {\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad CompleteListPage');\n\n this.db.getuserDetails();\n \n }\n ionViewCanEnter()\n {\n console.log(\"Pd list ionViewCanEnter\")\n this.getpdTriggerdetails();\n }\n \n doRefresh(refresher) {\n this.bgColor = [];\n this.pdschduleDetails = [];\n this.pdcomplete = [];\n // this.pdlistaccess = true;\n this.shared.refresh();\n this.getpdTriggerdetails();\n setTimeout(() => {\n \n refresher.complete();\n }, 2000);\n }\n getpdTriggerdetails()\n {\n \n let userid = this.awsservice.getlocale();\n //.log(\"User\",userid)\n // this.pdlistaccess = true;\n\n this.PdtriggerProvider.getpddetails(userid).subscribe(res=>\n {\n console.log('res',res);\n this.pdlistdetails = res;\n if(this.pdlistdetails.dataStatus == true)\n {\n this.pdlistaccess = false;\n \n \n // this.searchpast = this.pdschduleDetails;\n \n this.pdcomplete = this.pdlistdetails.records.filter(complete=>complete.pd_status == \"COMPLETED\");\n this.searchcomplete = this.pdcomplete;\n \n this.random_bg_color();\n this.random_ng_past();\n }else\n {\n this.pdlistaccess = false;\n this.pdlistdetails = \"No Records Found\";\n }\n })\n }\n random_bg_color() {\n for(let id of this.pdcomplete){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColor.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n \n return this.bgColor;\n }\n random_ng_past()\n {\n for(let id of this.pdschduleDetails){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColorPast.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n }\n \n PdAllocation(pddetails)\n {\n \n if(pddetails.pd_status == 'COMPLETED')\n {\n this.navCtrl.push(InputPage,{'pdDetails':pddetails});\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/complete-list/complete-list.ts","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app.module';\nimport { enableProdMode } from '@angular/core';\nenableProdMode();\nplatformBrowserDynamic().bootstrapModule(AppModule);\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/main.ts","import { BrowserModule } from '@angular/platform-browser';\nimport { ErrorHandler, NgModule } from '@angular/core';\nimport { IonicApp, IonicErrorHandler, IonicModule,Config, Events } from 'ionic-angular';\n\nimport { MyApp } from './app.component';\n\n\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { SplashScreen } from '@ionic-native/splash-screen';\nimport {platformBrowserDynamic} from '@angular/platform-browser-dynamic';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport { SQLite } from '@ionic-native/sqlite';\nimport { DatabaseProvider } from '../providers/database/database';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\nimport {MapAddressPage} from '../pages/map-address/map-address'\nimport {FormCompleteCheckModalPage} from '../pages/form-complete-check-modal/form-complete-check-modal'\n//import { FCM } from '@ionic-native/fcm/ngx';\n\n\nimport {\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatStepperModule\n} from '@angular/material';\nimport { AwsServiceProvider } from '../providers/aws-service/aws-service';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { AuthGuard } from '../providers/_guard/auth.guard';\nimport { TokenInterceptor } from '../providers/_guard/token.interceptor';\nimport { CognitoServiceProvider } from '../providers/aws-service/cognito.service';\nimport { ConstantsProvider } from '../providers/constants/constants';\nimport { AuthPage } from '../pages/auth/auth';\nimport { LoginPage } from '../pages/login/login';\nimport { PdListPage } from '../pages/pd-list/pd-list';\nimport { PdQuestionCategoryPage } from '../pages/pd-question-category/pd-question-category';\nimport { PdQuestionPage } from '../pages/pd-question/pd-question';\nimport { GoogleplaytabPage } from '../pages/googleplaytab/googleplaytab';\nimport { PasswordPage } from '../pages/password/password';\nimport { PdAllocationPage } from '../pages/pd-allocation/pd-allocation';\nimport { InputPage } from '../pages/input/input';\nimport { ToastProvider } from '../providers/common-provider/toast';\nimport { PdtriggerProvider } from '../providers/pdtrigger/pdtrigger';\nimport { FingerprintAIO } from '@ionic-native/fingerprint-aio';\n\nimport { LaunchNavigator } from '@ionic-native/launch-navigator';\nimport { OtpPage } from '../pages/otp/otp';\nimport { QuestionCategoryProvider } from '../providers/question-category/question-category';\n\nimport { ReactiveFormsModule,FormsModule} from '@angular/forms';\nimport { IonicImageViewerModule } from 'ionic-img-viewer';\nimport { CameraProvider } from '../providers/common-provider/camera';\nimport { LoadingProvider } from '../providers/common-provider/loading';\nimport { Camera } from '@ionic-native/camera';\n\nimport { PdQuestionAddressPage } from '../pages/pd-question/pd-question-address/pd-question-address';\nimport { PdQuestionAssestsPage } from '../pages/pd-question/pd-question-assests/pd-question-assests';\nimport { PdQuestionBankingPage } from '../pages/pd-question/pd-question-banking/pd-question-banking';\nimport { PdQuestionCurrentLoansPage } from '../pages/pd-question/pd-question-current-loans/pd-question-current-loans';\nimport { PdQuestionEmpInfoPage } from '../pages/pd-question/pd-question-emp-info/pd-question-emp-info';\nimport { PdQuestionFamilyPage } from '../pages/pd-question/pd-question-family/pd-question-family';\n\nimport { PdQuestionLoansPage } from '../pages/pd-question/pd-question-loans/pd-question-loans';\nimport { PdQuestionFinancialInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info';\nimport { PdQuestionOtherIncomePage } from '../pages/pd-question/pd-question-other-income/pd-question-other-income';\nimport { PdQuestionSupplierInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info';\nimport { Geolocation } from '@ionic-native/geolocation';\nimport { PdQuestionPersonalInfoPage } from '../pages/pd-question/pd-question-personal-info/pd-question-personal-info';\nimport { PdQuestionStockInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info';\nimport { PdQuestionClientInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info';\n// import { DatePicker } from '@ionic-native/date-picker';\nimport { PdQuestionBusinessInfoPage } from '../pages/pd-question/pd-question-business-group/pd-question-business-info/pd-question-business-info';\nimport { PdQuestionRentalInfoPage } from '../pages/pd-question/pd-question-rental-info/pd-question-rental-info';\nimport { PdQuestionAssessedInfoPage } from '../pages/pd-question/pd-question-assessed-info/pd-question-assessed-info';\nimport { PdQuestionAssessedDailySalesPage } from '../pages/pd-question/pd-question-assessed-daily-sales/pd-question-assessed-daily-sales';\nimport { PdQuestionAssessedSalesPage } from '../pages/pd-question/pd-question-assessed-sales/pd-question-assessed-sales';\nimport { PdQuestionAssessedHouseholdPage } from '../pages/pd-question/pd-question-assessed-household/pd-question-assessed-household';\nimport { PdQuestionAssessedPurchasePage } from '../pages/pd-question/pd-question-assessed-purchase/pd-question-assessed-purchase';\nimport { PdQuestionAssessedDashPage } from '../pages/pd-question/pd-question-assessed-dash/pd-question-assessed-dash';\nimport { BouncedRejectPage } from '../pages/input/bounced-reject/bounced-reject';\nimport { PdQuestionAssessedBusinessPage } from '../pages/pd-question/pd-question-assessed-business/pd-question-assessed-business';\nimport { PdQuestionLenderRepresentativePage } from '../pages/pd-question/pd-question-lender-representative/pd-question-lender-representative';\nimport { PdQuestionGeneralInfoPage } from '../pages/pd-question/pd-question-general-info/pd-question-general-info';\nimport { PdQuestionGeneralOtherApplicantPage } from '../pages/pd-question/pd-question-general-info/pd-question-general-other-applicant/pd-question-general-other-applicant';\nimport { PdQuestionNeighbourHoodPage } from '../pages/pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood';\nimport { PdQuestionFinalRemarkPage } from '../pages/pd-question/pd-question-final-remark/pd-question-final-remark';\nimport { PdQuestionFuturePlansAndBusinessEnvironmentPage } from '../pages/pd-question/pd-question-business-group/pd-question-future-plans-and-business-environment/pd-question-future-plans-and-business-environment';\nimport { PdQuestionBusinessGroupPage } from '../pages/pd-question/pd-question-business-group/pd-question-business-group'\nimport { PdQuestionBusinessAssetsPage } from '../pages/pd-question/pd-question-business-group/pd-question-business-assets/pd-question-business-assets'\nimport {PdQuestionBusinessBankingPage} from '../pages/pd-question/pd-question-business-group/pd-question-business-banking/pd-question-business-banking'\nimport { PdPipe } from '../pipes/pd/pd';\nimport { SearchRelationPipe } from '../pipes/search-relation/search-relation';\nimport { PdQuestionAssessedBusinessIncomePage } from '../pages/pd-question/pd-question-assessed-business-income/pd-question-assessed-business-income';\nimport { PdGeneralImagesPage } from '../pages/pd-general-images/pd-general-images';\nimport { PdQuestionSalaryInfoPage } from '../pages/pd-question/pd-question-salary-info/pd-question-salary-info';\nimport { LocationAccuracy } from '@ionic-native/location-accuracy';\nimport {PdQuestionAssessedSummaryPage} from '../pages/pd-question/pd-question-assessed-summary/pd-question-assessed-summary'\nimport { NgxMatSelectSearchModule} from 'ngx-mat-select-search'\nimport { ContentLoaderModule } from '@netbasal/content-loader';\nimport {PdQuestionAssessedDailyPurchasePage} from '../pages/pd-question/pd-question-assessed-daily-purchase/pd-question-assessed-daily-purchase'\nimport {RupeeCurrencyFormatPipe} from '../pipes/rupee-currency-format/rupee-currency-format'\nimport {PdQuestionAssessedImagesPage} from '../pages/pd-question/pd-question-assessed-images/pd-question-assessed-images'\n// import {PipesModule} from '../pipes/pipes.module'\nimport {IonicStorageModule} from '@ionic/storage'\nimport { StorageProvider } from '../providers/storage/storage';\nimport {PdQuestionRentalDashPage} from '../pages/pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash'\nimport {CacheModule} from 'ionic-cache'\nimport { CompleteListPage } from '../pages/complete-list/complete-list';\nimport {BackgroundGeolocation} from '@ionic-native/background-geolocation'\nimport {ModalScaleUpEnterTransition} from '../app/modalanimations/enter'\nimport {ModalScaleUpLeaveTransition} from '../app/modalanimations/leave'\nimport {Push} from '@ionic-native/push'\n\n\n@NgModule({\n declarations: [\n MyApp,\n AuthPage,\n LoginPage,\n PdListPage,\n CompleteListPage,\n PdQuestionCategoryPage,\n PdQuestionPage,\n GoogleplaytabPage,\n PasswordPage,\n PdAllocationPage,\n InputPage,\n OtpPage,\n PdQuestionAddressPage,\n PdQuestionAssestsPage,\n PdQuestionBankingPage,\n PdQuestionCurrentLoansPage,\n PdQuestionEmpInfoPage,\n PdQuestionFamilyPage,\n PdQuestionBusinessInfoPage,\n PdQuestionLoansPage,\n PdQuestionFinancialInfoPage,\n PdQuestionOtherIncomePage,\n PdQuestionSupplierInfoPage,\n PdQuestionPersonalInfoPage,\n PdQuestionStockInfoPage,\n PdQuestionClientInfoPage,\n PdQuestionRentalInfoPage,\n PdQuestionAssessedInfoPage,\n PdQuestionAssessedDailySalesPage,\n PdQuestionAssessedSalesPage,\n PdQuestionBusinessInfoPage,\n PdQuestionAssessedHouseholdPage,\n PdQuestionAssessedPurchasePage,\n PdQuestionAssessedDashPage,\n BouncedRejectPage,\n PdQuestionAssessedBusinessPage,\n PdQuestionLenderRepresentativePage,\n PdQuestionGeneralInfoPage,\n PdQuestionGeneralOtherApplicantPage,\n PdQuestionNeighbourHoodPage,\n PdQuestionFinalRemarkPage,\n PdQuestionFuturePlansAndBusinessEnvironmentPage,\n PdQuestionBusinessGroupPage,\n PdQuestionBusinessAssetsPage,\n PdQuestionBusinessBankingPage,\n PdQuestionAssessedBusinessIncomePage,\n PdGeneralImagesPage,\n PdQuestionSalaryInfoPage,\n PdQuestionAssessedSummaryPage,\n PdQuestionAssessedDailyPurchasePage,\n PdQuestionAssessedImagesPage,\n RupeeCurrencyFormatPipe,SearchRelationPipe,\n PdQuestionRentalDashPage,\n MapAddressPage,\n FormCompleteCheckModalPage\n // PipesModule\n \n ],\n imports: [\n BrowserModule,ReactiveFormsModule,FormsModule,\n IonicModule.forRoot(MyApp),\n BrowserAnimationsModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,MatListModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatStepperModule,HttpClientModule,IonicImageViewerModule,NgxMatSelectSearchModule,\n ContentLoaderModule,\n IonicStorageModule.forRoot(),\n CacheModule.forRoot()\n \n ],\n bootstrap: [IonicApp],\n entryComponents: [\n MyApp,\n AuthPage,\n LoginPage,\n PdListPage,\n PdQuestionCategoryPage,\n PdQuestionPage,\n GoogleplaytabPage,\n PasswordPage,\n CompleteListPage,\n PdAllocationPage,\n InputPage,\n OtpPage,\n PdQuestionAddressPage,\n PdQuestionAssestsPage,\n PdQuestionBankingPage,\n PdQuestionCurrentLoansPage,\n PdQuestionEmpInfoPage,\n PdQuestionFamilyPage,\n PdQuestionBusinessInfoPage,\n PdQuestionLoansPage,\n PdQuestionFinancialInfoPage,\n PdQuestionOtherIncomePage,\n PdQuestionSupplierInfoPage,\n PdQuestionPersonalInfoPage,\n PdQuestionStockInfoPage,\n PdQuestionClientInfoPage,\n PdQuestionRentalInfoPage,\n PdQuestionAssessedInfoPage,\n PdQuestionAssessedDailySalesPage,\n PdQuestionAssessedSalesPage,\n PdQuestionBusinessInfoPage,\n PdQuestionAssessedHouseholdPage,\n PdQuestionAssessedPurchasePage,\n PdQuestionAssessedDashPage,\n BouncedRejectPage,\n PdQuestionAssessedBusinessPage,\n PdQuestionLenderRepresentativePage,\n PdQuestionGeneralInfoPage,\n PdQuestionGeneralOtherApplicantPage,\n PdQuestionNeighbourHoodPage,\n PdQuestionFinalRemarkPage,\n PdQuestionFuturePlansAndBusinessEnvironmentPage,\n PdQuestionBusinessGroupPage,\n PdQuestionBusinessAssetsPage,\n PdQuestionBusinessBankingPage,\n PdQuestionAssessedBusinessIncomePage,\n PdGeneralImagesPage,\n PdQuestionSalaryInfoPage,\n PdQuestionAssessedSummaryPage,\n PdQuestionAssessedDailyPurchasePage,\n PdQuestionAssessedImagesPage,\n PdQuestionRentalDashPage,\n MapAddressPage,\n FormCompleteCheckModalPage\n \n \n ],\n providers: [\n StatusBar,AwsServiceProvider,AuthGuard,TokenInterceptor,ToastProvider,\n ConstantsProvider,CognitoServiceProvider,SplashScreen,PdtriggerProvider,FingerprintAIO,SQLite,AndroidPermissions,BackgroundGeolocation,\n Push,Events,\n {\n provide:HTTP_INTERCEPTORS,\n useClass: TokenInterceptor,\n multi: true\n },\n {\n provide: ErrorHandler,\n useClass: IonicErrorHandler\n },LaunchNavigator,\n AwsServiceProvider,\n QuestionCategoryProvider,\n CameraProvider,Camera,\n PdPipe,LocationAccuracy,\n LoadingProvider,Geolocation,\n DatabaseProvider,\n StorageProvider\n \n ]\n})\nexport class AppModule {\n\n constructor(public config:Config){\n this.setCustomTransitionsForModal()\n }\n private setCustomTransitionsForModal() {\n this.config.setTransition('modal-scale-up-leave', ModalScaleUpLeaveTransition);\n this.config.setTransition('modal-scale-up-enter', ModalScaleUpEnterTransition);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { Component, ViewChild } from '@angular/core';\nimport { Nav, Platform, Events } from 'ionic-angular';\nimport { StatusBar } from '@ionic-native/status-bar';\nimport { SplashScreen } from '@ionic-native/splash-screen';\nimport { LoginPage } from '../pages/login/login';\nimport { PdListPage } from '../pages/pd-list/pd-list';\nimport { MethodCall } from '@angular/compiler';\nimport { AwsServiceProvider } from '../providers/aws-service/aws-service';\nimport { CognitoServiceProvider } from '../providers/aws-service/cognito.service';\nimport { PasswordPage } from '../pages/password/password';\nimport { AuthPage } from '../pages/auth/auth';\nimport {AlertController} from 'ionic-angular'\nimport { platformBrowser } from '@angular/platform-browser';\nimport {CacheService} from 'ionic-cache'\n// import { AndroidPermissions } from '@ionic-native/android-permissions';\nimport { CompleteListPage } from '../pages/complete-list/complete-list';\nimport {Push,PushOptions,PushObject} from '@ionic-native/push'\nimport { CookieStorage } from 'amazon-cognito-identity-js';\nimport {ToastProvider} from '../providers/common-provider/toast'\n\ndeclare let notificationAccess:boolean\n\n\n\n@Component({\n templateUrl: 'app.html'\n})\nexport class MyApp {\n \n userDetails: any;\n userAccess:boolean = false;\n @ViewChild(Nav) nav: Nav;\n\n rootPage: any = LoginPage;\n public alertShown:boolean=false\n\n pages: Array<{title: string,icon:any, method: any}>;\n\n constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen,public aws:AwsServiceProvider,public shared:CognitoServiceProvider,public AWS:AwsServiceProvider\n ,public alertCtrl:AlertController,cache:CacheService,private push:Push,private event:Events,private toastProvider:ToastProvider) {\n cache.setDefaultTTL(60*60)\n this.initializeApp();\n\n // used for an example of ngFor and navigation\n this.pages = [ \n // { title: 'Home', component: HomePage, icon: 'home' },\n { title: 'Home', icon: 'home',method:()=>this.menulist(1) },\n { title: 'Logout', icon: 'md-exit',method:()=>this.menulist(2)},\n { title: 'Complete List', icon: 'checkmark-circle',method:()=>this.menulist(3)}\n\n ];\n\n\n }\n\n initializeApp() {\n this.platform.ready().then(() => {\n // Okay, so the platform is ready and our plugins are available.\n // Here you can do any higher level native things you might need.\n this.statusBar.styleDefault();\n if (this.platform.is('android')) {\n this.statusBar.overlaysWebView(false);\n this.statusBar.backgroundColorByHexString('#db4437');\n \n }\n this.splashScreen.hide();\n \n this.shared.getAccessToken().then(()=>{\n this.getuserDetails();\n this.rootPage = AuthPage\n this.notification()\n }).catch(()=>{\n setTimeout(() => {\n this.rootPage = LoginPage;\n this.unregisterNotification()\n }, 1000);\n });\n \n });\n this.platform.registerBackButtonAction(()=>{\n if(this.nav.length()==1){\n if(this.alertShown==false){\n //this.presentConfirm(); \n let alert=this.alertCtrl.create({\n title:'Confirm Exit',\n message:'Do You Want Exit ?',\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n console.log(\"Cancel clicked\");\n this.alertShown=false\n alert.dismiss\n }\n },\n {\n text:'Yes',\n handler:()=>{\n console.log(\"Exit\");\n this.platform.exitApp();\n }\n }\n ]\n });\n alert.present();\n this.alertShown=true\n }\n }\n else{\n this.nav.pop()\n }\n });\n }\n\n presentConfirm(){\nlet alert=this.alertCtrl.create({\n title:'Confirm Exit',\n message:'Do You Want Exit ?',\n buttons:[\n {\n text:'Cancel',\n role:'cancel',\n handler:()=>{\n console.log(\"Cancel clicked\");\n // this.alertShown=false\n alert.dismiss\n }\n },\n {\n text:'Yes',\n handler:()=>{\n console.log(\"Exit\");\n this.platform.exitApp();\n }\n }\n ]\n});\n alert.present();\n // this.alertShown=true;\n }\n getuserDetails()\n {\n this.userDetails=''\n \n let userid = this.aws.getlocale();\n this.aws.getuserprofile(userid).subscribe(res=>{\n this.userDetails = res;\n if(this.userDetails.dataStatus == true)\n { \n notificationAccess=true\n this.userAccess = true;\n this.userDetails = this.userDetails.records[0];\n \n }\n \n });\n }\n menulist(id){\n //alert();\n switch(id)\n {\n case 1:\n this.nav.setRoot(PdListPage);\n break;\n case 2:\n this.AWS.logout().subscribe(()=>{\n this.nav.setRoot(LoginPage);\n });\n break;\n case 3:\n this.nav.setRoot(CompleteListPage);\n break;\n case 4:\n break;\n}\n}\n logout()\n {\n // this.aws.logout();\n this.nav.setRoot(LoginPage);\n }\n notification(){\n // this.nav.setRoot(this.nav.getActive().component);\n this.push.hasPermission().then((res: any) => {\n \n if (res.isEnabled) {\n console.log('We have permission to send push notifications');\n } else {\n console.log('We do not have permission to send push notifications');\n }\n \n });\n const option:PushOptions={\n android:{\n senderID:'893175418100'\n },\n ios: {\n alert: 'true',\n badge: true,\n sound: 'false'\n },\n windows: {},\n browser: {\n pushServiceURL: 'http://push.api.phonegap.com/v1/push'\n }\n }\n const pushObject:PushObject=this.push.init(option);\n if(notificationAccess){\n\n pushObject.on('notification').subscribe((notification: any) =>{\n console.log('Received a notification', notification)\n if(notification.additionalData.foreground){\n this.event.publish('alert',notification);\n this.toastProvider.setAlertwithButton(notification)\n }\n else{\n this.event.publish('notify',notification);\n //this.nav.setRoot(PdListPage,{notify:'Via Notification'});\n this.rootPage=PdListPage\n }\n });\n }\n else{\n console.log(\"Sorry you dont have notification access\");\n }\n \n\n pushObject.on('registration').subscribe((registration: any) => console.log('Device registered', registration));\n\n pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error));\n \n }\n unregisterNotification(){\n // PushObject.unregister(()=>console.log(\"Notification is Unregistered\"))\n // this.push.unregister()\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Injectable } from '@angular/core';\n\n// import { CanActivateChild, Router } from '@angular/router';\nimport {\n AuthenticationDetails,\n CognitoUserPool,\n CognitoUser,\n \n} from \"amazon-cognito-identity-js\";\n// import { IonicPage, NavController, NavParams, MenuController } from 'ionic-angular';\n\n// import { environment } from '../../environments/environment';\n\nimport { BehaviorSubject,Observable,of } from 'rxjs';\n\nconst sineedge_poolData = { \n UserPoolId: \"ap-south-1_y7dt3iEaX\", //ap-south-1_qQ85yQZJO UserName :SPARQ_SINEEDGE_DEV\n ClientId: \"291qt4smn5pql6o8cc2hi201lj\" // ClientName: SINEEDGE_DEV_WEB\n};\nconst sineedgedev_poolData = {\n UserPoolId: \"ap-south-1_qQ85yQZJO\", // UserName :SPARQ_SINEEDGE_DEV\n ClientId: \"2o5c3cs9k3als16nqhp3irh8rs\" // ClientName: SINEEDGE_DEV_WEB\n}\nconst lender_poolData = {\n UserPoolId: \"ap-south-1_hFiGyr1Gw\", // Username :SPARQ_LENDER_DEV\n ClientId: \"38v9rpp1495v60e1gd14mj6rjr\" // ClientName:LENDER_DEV_WEB\n};\nconst vendor_poolData = {\n UserPoolId: \"\",\n ClientId: \"\"\n}\nconst sineedgeUserPool = new CognitoUserPool(sineedge_poolData);\nconst lenderUserPool = new CognitoUserPool(lender_poolData);\nconst sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData);\n\n/**\n* Identity PoolID \n*/\nconst sineedgeIdentity = \"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";//\"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";\nconst lenderIdentity = \"ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907\";\nconst vendorIdenttiy = \"\";\n// serviceProvider\nconst apiurl = \"http://ssa.sineedge.com/sparqapi/api/\";\n// const apiurl = \"http://localhost/sparqapi/api/\";\n\n@Injectable()\n\nexport class CognitoServiceProvider {\n public loggedIn :boolean = false;\n // public static _REGION = environment.region;\n\n // public static _IDENTITY_POOL_ID = environment.identityPoolId;\n // public static _USER_POOL_ID = environment.UserPoolId;\n // public static _CLIENT_ID = environment.ClientId;\n\n // public static _POOL_DATA: any = {\n // UserPoolId: CognitoService._USER_POOL_ID,\n // ClientId: CognitoService._CLIENT_ID\n // };\n \n\n // public cognitoCreds: AWS.CognitoIdentityCredentials;\nisloggin:boolean = false; \n\n\n \n\n \n constructor() { \n \n }\n getCurrentUser() {\n \n return sineedgedevUserpool.getCurrentUser();\n}\n get isLoggedIn() {\n if(sineedgedevUserpool.getCurrentUser() !=null){\n this.loggedIn = true;\n }else{\n this.loggedIn = false;\n }\n return this.loggedIn; // {2}\n }\n \nrefresh() {\n let tokenexp:boolean;\n \n if(this.getCurrentUser() !=null){\n \n this.getCurrentUser().getSession(function (err, session) {\n if (err) {\n console.log(\"CognitoUtil: Can't set the credentials:\" + err);\n }\n\n else {\n if (session.isValid()) {\n tokenexp = session.isValid();\n of(tokenexp)\n console.log(\"CognitoUtil: refreshed successfully\");\n \n } else {\n tokenexp = session.isValid();\n console.log(\"CognitoUtil: refreshed but session is still not valid\");\n \n }\n }\n \n return tokenexp;\n \n });\n }else{\n this.loggedIn = false;\n }\n}\ngetAccessToken(){\n this.refresh();\n return new Promise((resolve, reject) => {\n let jwttoken = '';\n if (this.getCurrentUser() != null) {\n //console.log(JSON.stringify(this.getCurrentUser()));\n // console.log('76 if');\n this.getCurrentUser().getSession(function (err, session) {\n if (err) {\n console.log(\"CognitoUtil: Can't set the credentials:\" + err);\n jwttoken ='';\n // console.log('81 if')\n reject(err);\n }\n else {\n if (session.isValid()) {\n // console.log('85 else if');\n jwttoken = session;\n resolve();\n } else {\n \n }\n }\n });\n }\n else {\n //console.log(\"else\");\n reject();\n }\n});\n}\n\ngetToken():any {\n let isloggin = false;\n let jwttoken = '';\n if (this.getCurrentUser() != null) {\n \n this.getCurrentUser().getSession(function (err, session) {\n if (err) {\n // console.log(\"CognitoUtil: Can't set the credentials:\" + err);\n isloggin = false;\n //console.log('81 if')\n }\n else {\n //alert('function else');\n if (session.isValid()) {\n // console.log('85 else if');\n jwttoken = session;\n isloggin = true;\n } else {\n \n isloggin = false;\n }\n }\n });\n }\n else {\n // console.log(\"else\");\n isloggin = false;\n }\n return jwttoken;\n}\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/aws-service/cognito.service.ts","import { Injectable } from '@angular/core';\n// import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\n\n\n\n@Injectable()\nexport class AuthGuard {\n \n constructor() { \n\n \n }\n\n // canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n // // if (this.shared.getToken()) {\n // alert(\"if\");\n // // this.router.navigate(['']);\n // return true\n // } else {\n // alert(\"else\");\n // this.router.navigate(['/login']);\n // return false;\n // }\n // }\n getlogin(){\n // if (this.shared.getToken()) {\n // // alert(\"if\");\n // //alert();\n // return true;\n // } else {\n // // alert(\"else\");\n \n // //this.myGlobalServiceNav.setRoot(LoginPage);\n // this.shared.isloggin = false;\n // return false;\n \n \n // }\n }\n // canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n \n \n // }\n\n // public getToken(): string {\n // return localStorage.getItem('token');\n // }\n\n // public logOut() {\n // localStorage.clear();\n // if(localStorage.getItem('token') === null){\n // this.router.navigate(['/login']);\n // }\n // }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/providers/_guard/auth.guard.ts","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor,\n HttpHeaders\n} from '@angular/common/http';\n// import { AuthGuard } from './auth.guard';\nimport { Observable, of} from 'rxjs';\n\n// import { Router } from '@angular/router';\n\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { HttpErrorResponse } from \"@angular/common/http\";\n\nimport { CognitoServiceProvider } from '../aws-service/cognito.service';\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor{\n constructor(public shared:CognitoServiceProvider ) {\n \n }\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // request = request.clone({\n // setHeaders: {\n // Authorization: `${this.auth.getToken()}`\n // }\n // });\n let token:any;\n this.shared.refresh();\n token = this.shared.getToken() || null;\n \n token = token.getIdToken().getJwtToken();\n \n //console.log(token);\n let requests = request.clone({\n headers:new HttpHeaders({\n \n 'Authorization': 'sparqvenba2018',\n 'Token':token,\n 'From':'1',\n \n \n }) \n \n });\n \n return next.handle(requests).pipe(\n catchError(this.handleError('role', []))\n )\n }\n\n private handleError (operation = 'operation', result?: T) {\n return (error: any): Observable => {\n if(error instanceof HttpErrorResponse){\n console.error(\"Error: \" + error.status);\n if(error.status == 401){\n localStorage.clear();\n // this.router.navigate(['/authentication/login']);\n }\n return of(result as T);\n }\n };\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/providers/_guard/token.interceptor.ts","import { Component ,ViewChild} from '@angular/core';\nimport { IonicPage, NavController, NavParams , Slides , Content, Platform } from 'ionic-angular';\n\n/**\n * Generated class for the GoogleplaytabPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-googleplaytab',\n templateUrl: 'googleplaytab.html',\n})\nexport class GoogleplaytabPage {\n\n @ViewChild('SwipedTabsSlider') SwipedTabsSlider: Slides ;\n @ViewChild('MultiItemsScrollingTabs') ItemsTitles : Content;\n\n SwipedTabsIndicator :any= null;\n tabTitleWidthArray :any= [];\n tabElementWidth_px :number= 50;\n screenWidth_px :number= 0;\n isRight :boolean= true;\n isLeft:boolean= true;\n tabs:any=[];\n\n constructor(public navCtrl: NavController, public navParams: NavParams, platform: Platform) {\n this.tabs=[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"9\",\"10\",\"11\"];\n console.log('Width: ' + platform.width());\n this.screenWidth_px=platform.width();\n \n}\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad GoogleplaytabPage');\n }\n ionViewDidEnter() {\n this.SwipedTabsIndicator = document.getElementById(\"indicator\");\n for (let i in this.tabs)\n this.tabTitleWidthArray.push(document.getElementById(\"tabTitle\"+i).offsetWidth);\n\n this.selectTab(0);\n }\n\n scrollIndicatiorTab()\n {\n this.ItemsTitles.scrollTo(this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())-this.screenWidth_px/2,0);\n }\n\n selectTab(index)\n {\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n this.SwipedTabsSlider.slideTo(index);\n }\n\n calculateDistanceToSpnd(index)\n {\n var result=0;\n for (var _i = 0; _i < index; _i++) {\n result=result+this.tabTitleWidthArray[_i];\n }\n return result;\n }\n\n updateIndicatorPosition() {\n var index=this.SwipedTabsSlider.getActiveIndex();\n if( this.SwipedTabsSlider.length()==index)\n index=index-1;\n\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[index]+\"px\";\n this.SwipedTabsIndicator.style.webkitTransform = 'translate3d('+(this.calculateDistanceToSpnd(index))+'px,0,0)';\n\n }\n\n updateIndicatorPositionOnTouchEnd()\n {\n setTimeout( () => { this.updateIndicatorPosition(); }, 200);\n }\n\n animateIndicator($event)\n {\n\n this.isLeft=false;\n this.isRight=false;\n var currentSliderCenterProgress =(1/(this.SwipedTabsSlider.length()-1) )*this.SwipedTabsSlider.getActiveIndex();\n if($event.progress < currentSliderCenterProgress)\n {\n this.isLeft=true;\n this.isRight=false;\n\n } if($event.progress > currentSliderCenterProgress)\n {\n this.isLeft=false;\n this.isRight=true;\n }\n\n if(this.SwipedTabsSlider.isEnd())\n this.isRight=false;\n\n if( this.SwipedTabsSlider.isBeginning())\n this.isLeft=false;\n\n if(this.isRight)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()+1])\n +'px,0,0)';\n\n if(this.isLeft)\n this.SwipedTabsIndicator.style.webkitTransform =\n 'translate3d('+( this.calculateDistanceToSpnd(this.SwipedTabsSlider.getActiveIndex())\n +($event.progress - currentSliderCenterProgress) *(this.SwipedTabsSlider.length()-1)*this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()-1])\n +'px,0,0)';\n\n if(!this.isRight && !this.isLeft)\n this.SwipedTabsIndicator.style.width = this.tabTitleWidthArray[this.SwipedTabsSlider.getActiveIndex()]+\"px\";\n\n }\n\n\n\n}\n\n \n\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/googleplaytab/googleplaytab.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\n\n/**\n * Generated class for the PdAllocationPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-allocation',\n templateUrl: 'pd-allocation.html',\n})\nexport class PdAllocationPage {\npdFullDetails:any = [];\n constructor(public navCtrl: NavController, public navParams: NavParams) {\n \n this.pdFullDetails = this.navParams.get('pdDetails');\n console.log(this.pdFullDetails);\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdAllocationPage');\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-allocation/pd-allocation.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Toast, ToastController,AlertController} from 'ionic-angular';\n\n/*\n Generated class for the ToastProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n@Injectable()\nexport class ToastProvider {\n\n constructor(public http: HttpClient,public toast:ToastController,private alertCtrl:AlertController) {\n console.log('Hello ToastProvider Provider');\n }\n pdTriggerappmessage(mess){\n let valalert = this.toast.create({\n message:mess, \n duration: 3000, \n position: 'bottom',\n dismissOnPageChange: true,\n });\n\n valalert.present();\n} \nsetAlert(title_name,msg){\n \n\nlet alert=this.alertCtrl.create({\n title:title_name,\n message:msg,\n cssClass:'buttoncss',\n buttons:[{\n text:'No',\n cssClass:'btnNo',\n handler:()=>{\n alert.dismiss(false)\n return false\n }\n },{\n text:'Yes',\n cssClass:'btnYes',\n handler:()=>{\n alert.dismiss('s')\n return false\n }\n },\n ]\n});\n//alert.present()\nreturn alert\n\n}\nsetAlertForDocName(){\n \n let alert=this.alertCtrl.create({\n title:'Document Name',\n message: 'Please Enter the Document Name',\n cssClass:'prompt_alert',\n inputs:[\n {\n name:'Name',\n //value:this.imageBucket[index].Name\n placeholder:'Document Name'\n }\n ],\n buttons:[\n {\n text:'Submit',\n handler:data=>{\n console.log(data.Name)\n alert.dismiss(data.Name)\n }\n \n }\n ]\n })\n //alert.present();\n //this.inputFocus.setFocus();\n\nreturn alert\n}\nsetAlertForCompletePD(){\n let alert=this.alertCtrl.create({\n title:'Complete Discussion',\n message: 'Please confirm you are completing the Discussion and forwarding for Quality Check ?',\n cssClass:'complete_alert',\n buttons:[\n {\n text:'Yes / Allow Addon PD',\n handler:()=>{\n alert.dismiss('addon')\n return false\n }\n },\n {\n text:'Yes',\n handler:()=>{\n alert.dismiss('yes')\n return false\n }\n },\n {\n text:'No',\n handler:()=>{\n alert.dismiss('no')\n return false\n }\n }\n ]\n })\n //alert.present();\n //this.inputFocus.setFocus();\n\nreturn alert\n}\nsetAlertwithButton(data){\n let alert =this.alertCtrl.create({\n title: 'Notification',\n subTitle:data.title ,\n message:data.message,\n buttons: ['OK']\n })\n alert.present();\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/common-provider/toast.ts","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Generated class for the PdPipe pipe.\n *\n * See https://angular.io/api/core/Pipe for more info on Angular Pipes.\n */\n@Pipe({\n name: 'pdPipe',\n})\nexport class PdPipe implements PipeTransform {\n /**\n * Takes a value and makes it lowercase.\n */\n transform(value: any, searchItem:any):any {\n let findExistIndex = searchItem.existRelationList.filter(sVal=>sVal.relation_to==searchItem.currentApplicantID);\n if(findExistIndex.length>0){\n let check = value.filter(function(fVal){\n return !findExistIndex.some(function(sVal){\n return fVal.pd_co_applicant_id==searchItem.currentApplicantID || fVal.pd_co_applicant_id == sVal.pd_co_applicant_id;\n });\n })\n return check;\n }\n else {\n return value.filter(fVal=>fVal.pd_co_applicant_id!=searchItem.currentApplicantID);\n }\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pipes/pd/pd.ts","import { Component } from '@angular/core';\nimport { IonicPage, NavController, NavParams } from 'ionic-angular';\nimport { FormGroup,FormBuilder,FormArray } from '@angular/forms';\n\n/**\n * Generated class for the PdQuestionSalaryInfoPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-question-salary-info',\n templateUrl: 'pd-question-salary-info.html',\n})\nexport class PdQuestionSalaryInfoPage {\n\n salaryDetails:FormGroup\n constructor(public navCtrl: NavController, public navParams: NavParams,public fb:FormBuilder) {\n \n this.salaryDetails = this.fb.group(\n {\n gross:[null],\n netTakeHome:[null],\n bounsIncentive:[null],\n salaryDate:[null],\n anydelays:[null], \n })\n }\n\n ionViewDidLoad() {\n console.log('ionViewDidLoad PdQuestionSalaryInfoPage');\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-question/pd-question-salary-info/pd-question-salary-info.ts","import { Animation, PageTransition } from 'ionic-angular';\n\nexport class ModalScaleUpEnterTransition extends PageTransition {\n\npublic init() {\n const ele = this.enteringView.pageRef().nativeElement;\n const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper'));\n\n wrapper.beforeStyles({ 'transform': 'scale(0)', 'opacity': 1 });\n wrapper.fromTo('transform', 'scale(0)', 'scale(1.0)');\n wrapper.fromTo('opacity', 1, 1);\n\n this\n .element(this.enteringView.pageRef())\n .duration(500)\n .easing('cubic-bezier(.1, .7, .1, 1)')\n .add(wrapper);\n}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modalanimations/enter.ts","import { Animation, PageTransition } from 'ionic-angular';\n\nexport class ModalScaleUpLeaveTransition extends PageTransition {\n\npublic init() {\n const ele = this.leavingView.pageRef().nativeElement;\n const wrapper = new Animation(this.plt, ele.querySelector('.modal-wrapper'));\n const contentWrapper = new Animation(this.plt, ele.querySelector('.wrapper'));\n\n wrapper.beforeStyles({ 'transform': 'scale(0)', 'opacity': 1 });\n wrapper.fromTo('transform', 'scale(1)', 'scale(5.0)');\n wrapper.fromTo('opacity', 1, 1);\n contentWrapper.fromTo('opacity', 1, 0);\n\n this\n .element(this.leavingView.pageRef())\n .duration(500)\n .easing('cubic-bezier(.1, .7, .1, 1)')\n .add(contentWrapper)\n .add(wrapper);\n}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/modalanimations/leave.ts","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {ConstantsProvider} from '../constants/constants';\n\n/*\n Generated class for the PdtriggerProvider provider.\n\n See https://angular.io/guide/dependency-injection for more info on providers\n and Angular DI.\n*/\n\n// const apiurl = 'http://ssa.sineedge.com/sparqapi/api/'\n@Injectable()\nexport class PdtriggerProvider {\n apiurl:any;\n constructor(public http: HttpClient,public constants:ConstantsProvider) {\n this.apiurl = constants.apiurl();\n console.log('Hello PdtriggerProvider Provider');\n }\n\n \n\n /**get dropdonw list */\n\n /**Get list of PD Trigger */\n\n getpddetails(userid)\n { \n console.log(userid);\n return this.http.get(this.apiurl+'listLessPDDetails/get?pdofficerid='+userid);\n }\n\n getFullPDdetails(pdid)\n {\n return this.http.post(this.apiurl+'getFullPDDetails',pdid);\n }\n\n updatepdStatus(dataStatus)\n {\n let records = {'records':dataStatus};\n return this.http.post(this.apiurl+'updatePDMaster',records);\n }\n\n updateSchedule(updateData){\n return this.http.post(this.apiurl + \"schdulePD\", { \"records\": updateData })\n }\n\n\n\n saveCurrentLocation(data)\n {\n let records = {'records':data};\n return this.http.post(this.apiurl+'savePDOfficerCurrentLocation',data);\n }\n\n checkotp(otpDetails)\n {\n\n let records = {'records':otpDetails};\n \n return this.http.post(this.apiurl+'checkOTP',records); \n }\n getPDCompleteDetails(details){\n return this.http.post(this.apiurl+'getPDCompleteDetails',{'records':details})\n }\n pdFormsCompletenessCheck(pd_id){\n return this.http.post(this.apiurl+'pdFormsCompletenessCheck',{'pd_id':pd_id,'client':'MOB'})\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/pdtrigger/pdtrigger.ts","import { Component,ViewChild } from '@angular/core';\nimport { IonicPage, NavController, NavParams, Slides, Events } from 'ionic-angular';\nimport { InputPage } from '../input/input';\nimport { AwsServiceProvider } from '../../providers/aws-service/aws-service';\nimport { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger';\nimport { CognitoServiceProvider } from '../../providers/aws-service/cognito.service';\nimport { parseDate } from 'ionic-angular/util/datetime-util';\nimport { PdAllocationPage } from '../pd-allocation/pd-allocation';\nimport { OtpPage } from '../otp/otp';\nimport { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category';\nimport { DatabaseProvider } from '../../providers/database/database';\nimport { AndroidPermissions } from '@ionic-native/android-permissions';\n/**\n * Generated class for the PdListPage page.\n *\n * See https://ionicframework.com/docs/components/#navigation for more info on\n * Ionic pages and navigation.\n */\n\n\n@Component({\n selector: 'page-pd-list',\n templateUrl: 'pd-list.html',\n})\nexport class PdListPage {\n\n @ViewChild('slider') slider:Slides;\n searchinprogress: any;\n searchpast: any;\n pdschduleDetails: any;\n bgColorPast: any = [];\n bgColor: any = [];\n pdinprogress: any=[];\n pdlistdetails: any=[];\n viewchange: boolean;\n pdlist:any = \"0\";\n pdlistaccess:boolean = null;\n\n notification:any=[]\n from:any;\n constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public pdofficer:PdtriggerProvider,public shared:CognitoServiceProvider,public db:DatabaseProvider,public androidPermissions:AndroidPermissions,private event:Events) {\n //this.getlenderpddetails(); \n // this.getpdTriggerdetails();\n this.event.subscribe('notify',(res)=>{\n this.notification.push(res);\n })\n \n this.from=this.navParams.get('notify')\n console.log(\"from\",this.from);\n console.log(\"notification via event\",this.notification);\n }\n selectedTab(ind)\n {\n this.slider.slideTo(ind)\n }\n moveButton(event){\n this.pdlist=event._snapIndex.toString();\n }\n\n ionViewDidLoad() {\n \n console.log('ionViewDidLoad PdListPage');\n this.db.getuserDetails();\n this.setpermission();\n }\n ionViewCanEnter()\n {\n console.log(\"Pd list ionViewCanEnter\")\n this.getpdTriggerdetails();\n }\n filter(view){\n if(!view){\n this.viewchange = true;\n }else{\n this.viewchange = false;\n this.pdinprogress = this.pdinprogress;\n this.pdschduleDetails = this.pdschduleDetails;\n }\n \n //alert(this.viewchange);\n }\n pdlistsearch(searchbar) {\n \n this.pdinprogress = this.searchinprogress;\n this.pdschduleDetails = this.searchpast;\n // reset countries list with initial call\n //this.pdinprogress = this.countriesInitial;\n // set q to the value of the searchbar\n var q = searchbar.target.value;\n\n // if the value is an empty string don't filter the items\n \n if(this.pdlist == \"inpro\"){\n if (q.trim() == '') {\n return ;\n }else{\n this.pdinprogress = this.searchinprogress.filter((v) => {\n if (v.applicat_details !== undefined && v.applicat_details[0].applicant_name.toLowerCase().indexOf(q.toLowerCase()) > -1 || v.pd_status.toLowerCase().indexOf(q.toLowerCase())>-1 || v.city_name != null && v.city_name.toLowerCase().indexOf(q.toLowerCase())>-1 || v.lender_applicant_id.toLowerCase().indexOf(q.toLowerCase())>-1) {\n return true;\n }\n return false;\n })\n }\n }else\n {\n if (q.trim() == '') {\n \n return ;\n }else{\n this.pdschduleDetails = this.searchpast.filter((v) => {\n if (v.applicat_details[0].applicant_name.toLowerCase().indexOf(q.toLowerCase()) > -1\n || v.pd_status.toLowerCase().indexOf(q.toLowerCase())>-1|| v.city_name.toLowerCase().indexOf(q.toLowerCase())>-1 || v.lender_applicant_id.toLowerCase().indexOf(q.toLowerCase())>-1) {\n \n return true;\n }\n \n return false;\n })\n }\n \n}\n}\n newpage(){\n this.navCtrl.push(InputPage);\n }\n getpdTriggerdetails()\n {\n \n let userid = this.aws.getlocale();\n //.log(\"User\",userid)\n this.pdlistaccess = true;\n\n this.pdofficer.getpddetails(userid).subscribe(res=>\n {\n this.pdlistdetails = res;\n if(this.pdlistdetails.dataStatus == true)\n {\n this.pdlistaccess = false;\n \n this.pdschduleDetails = this.pdlistdetails.records.filter(sch=>sch.pd_status ==\"ACCEPTED\" || sch.pd_status ==\"SCHEDULED\" || sch.pd_status ==\"INITIATED\" || sch.pd_status ==\"STARTED\" || sch.pd_status ==\"INPROGRESS\" || sch.pd_status == \"ADD_ON_PENDING\" );\n this.searchpast = this.pdschduleDetails;\n \n this.pdinprogress = this.pdlistdetails.records.filter(allocate=>allocate.pd_status == \"ALLOCATED\");\n this.searchinprogress = this.pdinprogress;\n console.log(\"allocated\",this.pdinprogress);\n console.log(\"inpr\",this.pdschduleDetails);\n this.random_bg_color();\n this.random_ng_past();\n }else\n {\n this.pdlistaccess = false;\n this.pdlistdetails = \"No Records Found\";\n }\n })\n }\n\n random_bg_color() {\n for(let id of this.pdinprogress){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColor.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n \n return this.bgColor;\n }\n random_ng_past()\n {\n for(let id of this.pdschduleDetails){\n var x = Math.floor(Math.random() * 256);\n var y = Math.floor(Math.random() * 256);\n var z = Math.floor(Math.random() * 256);\n this.bgColorPast.push(\"rgb(\" + x + \",\" + y + \",\" + z + \")\");\n \n }\n }\n doRefresh(refresher) {\n this.bgColor = [];\n this.pdschduleDetails = [];\n this.pdinprogress = [];\n // this.pdlistaccess = true;\n this.shared.refresh();\n this.getpdTriggerdetails();\n setTimeout(() => {\n \n refresher.complete();\n }, 2000);\n }\n \n PdAllocation(pddetails)\n {\n \n \n if(pddetails.pd_status == '')//for STARTED\n {\n this.navCtrl.push(OtpPage,{'pdDetails':pddetails});\n \n // }else if(pddetails.pd_status == 'INPROGRESS'){\n // this.navCtrl.push(PdQuestionCategoryPage,{'pdDetails':pddetails});\n }else //if(pddetails.pd_status == 'ADD_ON_PENDING' || pddetails.pd_status == 'ALLOCATED')\n {\n //FOR ASSIGNING THE PARENT PD ID\n //pddetails.pd_id=pddetails.parent_pd_id\n // pddetails.pd_id=pddetails.parent_pd_id\n this.navCtrl.push(InputPage,{'pdDetails':pddetails});\n }\n }\n\n setpermission()\n {\n // let permission = this.androidPermissions.PERMISSION; \n // let premission_list = [\n // permission.ACCESS_LOCATION_EXTRA_COMMANDS,\n // permission.CAMERA,\n\n\n // ];\n this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS).then(\n result => console.log('Has permission?',result.hasPermission),\n err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS)\n );\n \n this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/pd-list/pd-list.ts","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n AuthenticationDetails,\n CognitoUserPool,\n CognitoUser,\n \n} from \"amazon-cognito-identity-js\";\n\n\nimport { Observable } from \"rxjs/Observable\";\nimport \"rxjs/add/operator/map\";\nimport { CognitoServiceProvider } from './cognito.service';\nimport { ConstantsProvider } from '../constants/constants';\nimport { UrlResolver } from '@angular/compiler';\nconst sineedgedev_poolData = {\n UserPoolId: \"ap-south-1_qQ85yQZJO\", // UserName :SPARQ_SINEEDGE_DEV\n ClientId: \"2o5c3cs9k3als16nqhp3irh8rs\" // ClientName: SINEEDGE_DEV_WEB\n}\nconst lender_poolData = {\n UserPoolId: \"ap-south-1_hFiGyr1Gw\", // Username :SPARQ_LENDER_DEV\n ClientId: \"38v9rpp1495v60e1gd14mj6rjr\" // ClientName:LENDER_DEV_WEB\n};\nconst vendor_poolData = {\n UserPoolId: \"ap-south-1_K57yPaWxV\",\n ClientId: \"\"\n}\n// const sineedgeUserPool = new CognitoUserPool(sineedge_poolData);\nconst lenderUserPool = new CognitoUserPool(lender_poolData);\n const sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData);\n\n/**\n* Identity PoolID \n*/\nconst sineedgeIdentity = \"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";//\"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961\";\nconst lenderIdentity = \"ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907\";\nconst vendorIdenttiy = \"ap-south-1:5ad3ce43-4260-4273-87b2-e6a377b8e874\";\n\nconst currentDate = new Date().toJSON().slice(0,19).replace('T',' ');\n\n\n@Injectable()\nexport class AwsServiceProvider {\napiurl:any;\n constructor(public http:HttpClient,public shared:CognitoServiceProvider,public con:ConstantsProvider) {\n this.apiurl = con.apiurl();\n }\n\n dologin(authenticationData) {\n // alert();\n //(authenticationData);\n const authenticationDetails = new AuthenticationDetails(authenticationData);\n let Newpassword = authenticationData.newpassword;\n let attributesData = [];\n const userData = {\n Username: authenticationData.Username, // User email id\n Pool: sineedgedevUserpool // user Pool ID\n };\n let cognitoUser = new CognitoUser(userData);\n return Observable.create(observer => {\n cognitoUser.authenticateUser(authenticationDetails, {\n newPasswordRequired: (userAttributes, requiredAttributes) => { // new password set \n cognitoUser.completeNewPasswordChallenge(\n Newpassword,\n attributesData,\n {\n onSuccess: function (result) {\n observer.next(result);\n observer.complete();\n },\n onFailure: function (err) {\n //(err);\n observer.error(err);\n //LoginComponent.prototype.open();\n }\n }\n );\n },\n onSuccess: function (result) { // success user login\n // let accessToken = result.getAccessToken().getJwtToken();\n ////(result);\n //window.localStorage.setItem('Currentuser', '1');\n observer.next(result);\n observer.complete();\n this.shared.isloggin = true;\n },\n onFailure: function (err) { // error user login\n\n //alert(err.message);\n observer.error(err);\n }\n });\n });\n }\n userforgotpass(auth) {\n ////(auth);\n const userData = {\n Username: auth.Username,\n Pool: sineedgedevUserpool\n };\n let cognitoUser = new CognitoUser(userData);\n return Observable.create(observe => {\n cognitoUser.forgotPassword({\n onSuccess: function (data) {\n // successfully initiated reset password request\n //('CodeDeliveryData from forgotPassword: ' + data);\n observe.next(data);\n },\n onFailure: function (err) {\n alert(err.message || JSON.stringify(err));\n },\n //Optional automatic callback\n inputVerificationCode: function (data) {\n //('Code sent to: ' + data);\n var verificationCode = prompt('Please input verification code ', '');\n var newPassword = prompt('Enter new password ', '');\n cognitoUser.confirmPassword(verificationCode, newPassword, {\n onSuccess() {\n //('Password confirmed!');\n },\n onFailure(err) {\n //('Password not confirmed!');\n }\n });\n }\n });\n });\n\n\n }\n /**\n * End of the function \n */\n\n /**\n * Logout function\n */\n logout(){\n \n return Observable.create(observe=>{\n this.shared.getCurrentUser().signOut(); \n \n observe.next();\n \n observe.complete();\n });\n }\n\n\n /**\n * Config function\n */\n // getconfig() {\n // let session:any = this.shared.getAccessToken() || \"\";\n \n // let config = \"\";\n // config += AWS.config.region = \"ap-south-1\";\n // config += AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n // IdentityPoolId: sineedgeIdentity, // for sineedge_DEV\n // Logins: {\n // \"cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO\": session\n // .getIdToken()\n // .getJwtToken()\n // }\n // // NOTE: getSession must be called to authenticate user before calling getUserAttributes\n // });\n // return config;\n // }\n\n getlocale(){\n let session:any = this.shared.getToken() || null;\n let userid = session.idToken.payload.locale;\n return userid;\n }\n getuserprofile(userid)\n {\n \n \n // alert();\n \n //console.log(cogusers.idToken.payload.locale);\n let roles = {'userid':userid}; \n \n \n // let request = new RequestOptions({headers:headers});\n return this.http.post(this.apiurl+'getUsersDetails',roles);\n \n }\n\n userpinupdate(pin)\n {\n let userid = this.getlocale(); \n let records = {'mpin':pin,'updatedon':currentDate,'fk_updatedby':userid,'userid':userid};\n let formdata = new FormData();\n \n formdata.append('records',JSON.stringify(records));\n return this.http.post(this.apiurl+'updateExistUser',formdata);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/providers/aws-service/aws-service.ts"],"sourceRoot":""} \ No newline at end of file diff --git a/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.html b/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.html index d230a0f5..95e209f5 100755 --- a/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.html +++ b/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.html @@ -437,15 +437,14 @@
-
- Service Provider #{{chd+1}} +
+ Service Provider #{{c+1}} - + Select Add Stock Details No stock observed @@ -478,16 +477,16 @@ + (keyup)="inWords($event.target.value,5,c)"> {{"₹"}} - {{S_GoodsValueInWords[g]}} Only + {{S_GoodsValueInWords[c]}} Only - + diff --git a/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts b/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts index 5982d245..378c0cca 100755 --- a/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts +++ b/src/pages/pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info.ts @@ -707,7 +707,7 @@ this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false; if (val.estimated_service_provider_value) { this.inWords(val.estimated_service_provider_value, 5, index); } - this.checkComments(val.service_provider_observed, 5, index); + this.checkSPComment(val.service_provider_observed, 5, index); service.push(this.createServiceProvider(val)); }); @@ -850,8 +850,37 @@ this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false; not_stock_of_ws: any = []; not_stock_of_sp: any = []; + checkSPComment(value, flag, index) { + + if (flag == 5) { + + this.ServiceCounterArray[index] = value != "" ? 1 : 0 + this.not_stock_of_sp[index] = value == "yes" ? 1 : 0; + + let SPOverallCount = this.ServiceCounterArray.reduce((sum, val) => sum + +val, 0); + this.SPCommentCard = SPOverallCount > 0 ? true : false; + + let not_stock3 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0); + + if(not_stock3 > 0){ + + this.SPsufficientList[0].disabled = false; + this.SPsufficientList[2].disabled = true; + + } + else if(not_stock3 == 0){ + + this.SPsufficientList[0].disabled = true; + this.SPsufficientList[2].disabled = false; + + } + + } + } checkComments(value, flag, index) { + console.log(value, flag, index); + if (flag == 1) { this.ManufacturingCounterArray[index] = value != "" ? 1 : 0; @@ -890,30 +919,6 @@ this.complete_status = this.pdDetails.pd_status == 'COMPLETED' ? true : false; this.WholeSaleCounterArray[index] = value != "" ? 1 : 0 this.not_stock_of_ws[index] = value == "yes" ? 1 : 0; } - if (flag == 5) { - console.log('adf'); - this.ServiceCounterArray[index] = value != "" ? 1 : 0 - this.not_stock_of_sp[index] = value == "yes" ? 1 : 0; - - let SPOverallCount = this.ServiceCounterArray.reduce((sum, val) => sum + +val, 0); - this.SPCommentCard = SPOverallCount > 0 ? true : false; - - let not_stock3 = this.not_stock_of_rm.reduce((sum, val) => sum + +val, 0); - - if(not_stock3 > 0){ - - this.SPsufficientList[0].disabled = false; - this.SPsufficientList[2].disabled = true; - - } - else if(not_stock3 == 0){ - - this.SPsufficientList[0].disabled = true; - this.SPsufficientList[2].disabled = false; - - } - - } let FGOverallCount = this.FinishedCounterArray.reduce((sum, val) => sum + +val, 0); let RTGOverallCount = this.RetailCounterArray.reduce((sum, val) => sum + +val, 0); let WTGOverallCount = this.WholeSaleCounterArray.reduce((sum, val) => sum + +val, 0); diff --git a/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.html b/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.html index b6ab96da..d09aaed3 100755 --- a/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.html +++ b/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.html @@ -331,12 +331,10 @@
- - + Select - {{ tp.name }} + {{ msp.name }} - diff --git a/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts b/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts index 695a12d1..d6d47512 100755 --- a/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts +++ b/src/pages/pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info.ts @@ -30,7 +30,7 @@ export class PdQuestionSupplierInfoPage { business_manufacturingProducts: any = []; business_tradingProducts: any = []; - business_serviceProvider: any = []; + m_serviceProvider: any = []; m_titleList: any = []; m_paymentList: any = []; @@ -65,8 +65,7 @@ export class PdQuestionSupplierInfoPage { this.initFormLoadDetails(datas.type_of_activity); this.business_manufacturingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 2 ){return data}}).map(data=> [...data.prodcuts]); // this.business_tradingProducts = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 3){return data}}).map(data=> [...data.prodcuts]); - this.business_serviceProvider = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 5){return data}}).map(data=> [...data.prodcuts]); - + this.m_serviceProvider = datas.type_of_activity.filter(data=>{if(data.type_of_activity_id == 5){return data}}).map(data=> [...data.prodcuts]); let api = Object.keys(datas.type_of_activity).map(function (key) { return datas.type_of_activity[key]; }); @@ -84,17 +83,13 @@ export class PdQuestionSupplierInfoPage { this.business_tradingProducts.push(val.prodcuts); } } - if (val.type_of_activity_id == 5) { - if(val.prodcuts){ - this.business_serviceProvider.push(val.prodcuts); - console.log(this.business_serviceProvider); - } - } + }); } this.business_tradingProducts = [].concat.apply([], this.business_tradingProducts); + }else { this.toast.pdTriggerappmessage('No Category Records Found.!'); diff --git a/src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.html b/src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.html index 8783c0f5..40538431 100755 --- a/src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.html +++ b/src/pages/pd-question/pd-question-current-loans/pd-question-current-loans.html @@ -5,6 +5,15 @@ {{FormId.form_name}} + + +    + + + + + + - - @@ -34,7 +41,9 @@ --> - + + + + +
diff --git a/src/pages/pd-question/pd-question-general-info/pd-question-general-info.html b/src/pages/pd-question/pd-question-general-info/pd-question-general-info.html index 3fcf09b8..5e9217de 100755 --- a/src/pages/pd-question/pd-question-general-info/pd-question-general-info.html +++ b/src/pages/pd-question/pd-question-general-info/pd-question-general-info.html @@ -128,9 +128,7 @@
- +
diff --git a/www/index.html b/www/index.html index 40ddf01d..c681631f 100755 --- a/www/index.html +++ b/www/index.html @@ -1,6 +1,9 @@ + Ionic App