{"version":3,"sources":["./src/app/interfaces/submitter-details.ts","./src/app/interfaces/expense-details.ts","./src/app/guarded/fee-vat-and-expenses/fee-vat-and-expenses.component.ts","./src/app/guarded/fee-vat-and-expenses/fee-vat-and-expenses.component.html","./src/app/interfaces/insurance-details.ts","./src/app/guarded/contractor-infomationpage/aro-region/aro-region.component.ts","./src/app/guarded/contractor-infomationpage/aro-region/aro-region.component.html","./src/app/guarded/insurance/insurance-company/insurance-company.component.ts","./src/app/guarded/insurance/insurance-company/insurance-company.component.html","./src/app/interfaces/contractor-information.ts","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/guarded/contractor-information/contractor-information.component.ts","./src/app/guarded/contractor-information/contractor-information.component.html","./src/app/providers/app.contstants.ts","./src/environments/environment.ts","./src/app/error/error.component.ts","./src/app/error/error.component.html","./src/app/guarded/contractor-infomationpage/eseaor-region/eseaor-region.component.ts","./src/app/guarded/contractor-infomationpage/eseaor-region/eseaor-region.component.html","./src/app/interfaces/address.ts","./src/app/guarded/contractor-infomationpage/acro-region/acro-region.component.ts","./src/app/guarded/contractor-infomationpage/acro-region/acro-region.component.html","./src/app/guarded/contractor-infomationpage/region-contractor-info/region-contractor-info.component.ts","./src/app/guarded/contractor-infomationpage/region-contractor-info/region-contractor-info.component.html","./src/app/loader/spinner/spinner.component.ts","./src/app/loader/spinner/spinner.component.html","./src/app/guarded/contractor-infomationpage/saro-region/saro-region.component.ts","./src/app/guarded/contractor-infomationpage/saro-region/saro-region.component.html","./src/app/guarded/disclosure-service/disclosure-service.component.ts","./src/app/guarded/disclosure-service/disclosure-service.component.html","./src/app/guarded/ask-help/ask-help.component.ts","./src/app/guarded/ask-help/ask-help.component.html","./src/app/guarded/reference/reference.component.ts","./src/app/guarded/reference/reference.component.html","./src/app/providers/common.api.calls.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/guarded/widgets/fileupload/fileupload.component.ts","./src/app/guarded/widgets/fileupload/fileupload.component.html","./src/app/guarded/ippfhealth-and-safety/ippfhealth-and-safety.component.ts","./src/app/guarded/ippfhealth-and-safety/ippfhealth-and-safety.component.html","./src/app/interfaces/document.ts","./src/app/interfaces/help-details.ts","./src/app/interfaces/dbssecurity-checks.ts","./src/app/interfaces/service-details.ts","./src/app/guarded/ContractorProforma.component.ts","./src/app/guarded/contractorproforma.component.html","./src/app/app.module.ts","./src/app/alert-dialog/alert-dialog.component.ts","./src/app/alert-dialog/alert-dialog.component.html","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/model-popup/model-popup.component.ts","./src/app/model-popup/model-popup.component.html","./src/app/guarded/insurance/insurance.component.ts","./src/app/guarded/insurance/insurance.component.html","./src/app/help/help.component.ts","./src/app/help/help.component.html","./auth-config.ts","./src/app/guarded/submitter/submitter.component.ts","./src/app/guarded/submitter/submitter.component.html","./src/app/guarded/contractor-infomationpage/co-region/co-region.component.ts","./src/app/guarded/contractor-infomationpage/co-region/co-region.component.html","./src/app/guarded/details-of-service/details-of-service.component.ts","./src/app/guarded/details-of-service/details-of-service.component.html","./src/app/guarded/ContractorProforma.module.ts","./src/app/interfaces/ppfpolicy-procedures.ts","./src/app/loader/loading.interceptor.ts","./src/app/interfaces/contractor-reference-details.ts","./src/app/show-contractor-proforma-header.service.ts","./src/app/guarded/contractor-infomationpage/en-region/en-region.component.ts","./src/app/guarded/contractor-infomationpage/en-region/en-region.component.html","./src/app/loader/loader.service.ts","./src/app/interfaces/vendor-details.ts","./src/app/app-routing.module.ts","./src/app/guarded/details-of-service/format-datepicker.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["export class SubmitterDetails {\r\n ProformaID: number;\r\n name: string;\r\n position: string;\r\n ipAddress: string;\r\n}","export class ExpenseDetails {\r\n proformaID: number;\r\n // paymentTerms: string;\r\n // isContractorRegisteredForVAT: string; \r\n fees : string;\r\n // vatType : string;\r\n // vatRate : string;\r\n feeArrangement : string;\r\n timePeriod : string;\r\n noOfPeriods : string;\r\n ratePerPeriod : string;\r\n otherDescription : string;\r\n feeCurrency : string;\r\n feeCurrencyInternalID : string;\r\n serviceMilestones : ServiceMilestones[] = [];\r\n paymentMilestones : PaymentMilestones[] = [];\r\n regionName: string;\r\n\r\n populateDataJson(data:any) {\r\n this.proformaID = data.proformaID;\r\n // this.paymentTerms = data.paymentTerms;\r\n // this.isContractorRegisteredForVAT = data.isContractorRegisteredForVAT;\r\n this.fees = data.fees;\r\n // this.vatType = data.vatType;\r\n // this.vatRate = data.vatRate;\r\n this.feeArrangement = data.feeArrangement;\r\n this.timePeriod = data.timePeriod;\r\n this.noOfPeriods = data.noOfPeriods;\r\n this.ratePerPeriod = data.ratePerPeriod;\r\n this.otherDescription = data.otherDescription;\r\n this.feeCurrency = data.feeCurrency;\r\n this.feeCurrencyInternalID = data.feeCurrencyInternalID;\r\n this.regionName = data.regionName;\r\n let serviceMilestoneLength = 1;\r\n let PaymentMilestoneLength = 1;\r\n if(data.serviceMilestones === undefined || data.serviceMilestones.length ===0){\r\n serviceMilestoneLength = 0;\r\n }\r\n if(serviceMilestoneLength > 0){\r\n let length = data.serviceMilestones.length;\r\n for(let i=0;i 0){\r\n let length = data.paymentMilestones.length;\r\n for(let i=0;i = new EventEmitter();\r\n @Output()\r\n BackClicked: EventEmitter = new EventEmitter();\r\n\r\n PreviousStep() {\r\n this.BackClicked.emit(\"1\");\r\n }\r\n\r\n async getFeesAndExpenses() {\r\n await this.api.getFeesAndExpenses03().toPromise().then(data => {\r\n this.model.populateDataJson(data);\r\n this.proformaRegion = this.model.regionName;\r\n this.ControlIPPFNoteSection = true;\r\n debugger;\r\n if(this.proformaRegion =='CO'){\r\n this.ControlIPPFNoteSection = false;\r\n }\r\n if(this.proformaRegion =='ACRO'){\r\n this.ControlIPPFNoteSection = false;\r\n }\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = true;\r\n }\r\n this.totalMilestoneAmount =\"0\";\r\n this.totalMilestonePercentage = \"0\";\r\n this.totalPaymentMilestoneAmount =\"0\";\r\n console.log(\"fees.....: \"+this.model.feeCurrency);\r\n if(this.model.fees !==\"\" && this.model.feeCurrency !=\"\" && this.model.fees !==null){\r\n this.model.fees = parseFloat(this.model.fees.toString()).toFixed(2);\r\n }\r\n else{\r\n this.model.fees =\"\";\r\n }\r\n // if(this.model.vatRate !==\"\" && this.model.feeCurrency !=\"\"){\r\n // this.model.vatRate = parseFloat(this.model.vatRate.toString()).toFixed(2);\r\n // }\r\n // else{\r\n // this.model.vatRate =\"\";\r\n // }\r\n if(this.model.noOfPeriods !==\"\" && this.model.feeCurrency !=\"\"){\r\n this.model.noOfPeriods = parseFloat(this.model.noOfPeriods.toString()).toFixed(2);\r\n }\r\n else{\r\n this.model.noOfPeriods =\"\";\r\n }\r\n if(this.model.ratePerPeriod !==\"\" && this.model.feeCurrency !=\"\"){\r\n this.model.ratePerPeriod = parseFloat(this.model.ratePerPeriod.toString()).toFixed(2);\r\n }\r\n else{\r\n this.model.ratePerPeriod =\"\";\r\n }\r\n if (this.model.noOfPeriods !== \"\" && this.model.ratePerPeriod !== \"\") { \r\n this.totalFee = (parseFloat(this.model.noOfPeriods) * parseFloat(this.model.ratePerPeriod)).toString();\r\n this.totalFee = parseFloat(this.totalFee.toString()).toFixed(2);\r\n }\r\n \r\n if (this.model.serviceMilestones != undefined && this.model.serviceMilestones.length > 0) {\r\n for (let i = 0; i < this.model.serviceMilestones.length; i++) {\r\n this.model.serviceMilestones[i].amount = parseFloat(this.model.serviceMilestones[i].amount.toString()).toFixed(2);\r\n //this.model.serviceMilestones[i].paymentSplit = parseFloat(this.model.serviceMilestones[i].paymentSplit.toString()).toFixed(2);\r\n let amount = parseFloat(this.totalMilestoneAmount) + parseFloat(this.model.serviceMilestones[i].amount)\r\n this.totalMilestoneAmount = parseFloat(amount.toString()).toFixed(2);\r\n\r\n // let percentage = parseFloat(this.totalMilestonePercentage) + parseFloat(this.model.serviceMilestones[i].paymentSplit)\r\n // this.totalMilestonePercentage = parseFloat(percentage.toString()).toFixed(2);\r\n }\r\n }\r\n\r\n if (this.model.paymentMilestones != undefined && this.model.paymentMilestones.length > 0) {\r\n for (let i = 0; i < this.model.paymentMilestones.length; i++) {\r\n this.model.paymentMilestones[i].paymentAmount = parseFloat(this.model.paymentMilestones[i].paymentAmount.toString()).toFixed(2);\r\n \r\n let amount = parseFloat(this.totalPaymentMilestoneAmount) + parseFloat(this.model.paymentMilestones[i].paymentAmount)\r\n this.totalPaymentMilestoneAmount = parseFloat(amount.toString()).toFixed(2);\r\n }\r\n }\r\n this.SetDefaultStateForVATNO(data);\r\n }).catch((e) => {\r\n\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getCurrency() {\r\n await this.api.getCurrency().toPromise().then(data => {\r\n this.populateCurrency(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"5\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n async getMaxNoOfMileStones() {\r\n await this.api.getMaxNoOfMileStones().toPromise().then(data => {\r\n var sdata:any = data;\r\n this.serviceMilestoneLimit = sdata;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.serviceMilestoneLimit = 6;\r\n });\r\n }\r\n\r\n populateCurrency(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Currency();\r\n item.internalId = data[i].internalId;\r\n item.baseCurrency = data[i].baseCurrency;\r\n this.currencies.push(item);\r\n }\r\n }\r\n\r\n populateControlSettings(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new ControlSettings();\r\n item.Type = data[i].type;\r\n item.Limit = data[i].limit;\r\n this.controlSettings.push(item);\r\n }\r\n }\r\n\r\n radioChange(event: MatRadioChange) {\r\n if(event.value ==\"Fixed\"){\r\n this.model.fees = this.totalMilestoneAmount;\r\n }else if(event.value == \"Monthly\"){\r\n this.model.fees = this.totalPaymentMilestoneAmount;\r\n }\r\n else{\r\n let total = parseFloat(this.totalMilestoneAmount) + parseFloat(this.totalPaymentMilestoneAmount);\r\n this.model.fees = parseFloat(total.toString()).toFixed(2);\r\n }\r\n }\r\n\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n\r\n SetDefaultStateForVATNO(data: any) {\r\n this.disableVATNO = data.isContractorRegisteredForVAT;\r\n }\r\n\r\n OnVATStatusChange(event: MatRadioChange) {\r\n this.disableVATNO = event.value == \"False\";\r\n }\r\n\r\n onFocus(param: any) {\r\n switch (param) {\r\n case \"Fees\":\r\n if (this.model.fees === \"0\") {\r\n this.model.fees = \"\";\r\n }\r\n break;\r\n case \"VATRate\":\r\n // if (this.model.vatRate === \"0\") {\r\n // this.model.vatRate = \"\";\r\n // }\r\n break;\r\n case \"noOfPeriods\":\r\n if (this.model.noOfPeriods === \"0\") {\r\n this.model.noOfPeriods = \"\";\r\n }\r\n break;\r\n case \"ratePerPeriod\":\r\n if (this.model.ratePerPeriod === \"0\") {\r\n this.model.ratePerPeriod = \"\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n onFocusEventMilestone(param: any, i: any) {\r\n switch (param) {\r\n case \"amount\":\r\n if (this.model.serviceMilestones[i].amount === \"0\") {\r\n this.model.serviceMilestones[i].amount = \"\";\r\n }\r\n break;\r\n case \"paymentSplit\":\r\n if (this.model.serviceMilestones[i].paymentSplit === \"0\") {\r\n this.model.serviceMilestones[i].paymentSplit = \"\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n onFocusEventPaymentMilestone(param: any, i: any) {\r\n switch (param) {\r\n case \"amount\":\r\n if (this.model.paymentMilestones[i].paymentAmount === \"0\") {\r\n this.model.paymentMilestones[i].paymentAmount = \"\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n onFocusOutEvent(param: any) {\r\n switch (param) {\r\n case \"Fees\":\r\n if (this.model.fees === \"\" || this.model.fees === \"0\") {\r\n return;\r\n }\r\n this.model.fees = parseFloat(this.model.fees.toString()).toFixed(2);\r\n break;\r\n case \"VATRate\":\r\n // if (this.model.vatRate === \"\" || this.model.vatRate === \"0\") {\r\n // return;\r\n // }\r\n // this.model.vatRate = parseFloat(this.model.vatRate.toString()).toFixed(2);\r\n break;\r\n case \"noOfPeriods\":\r\n let noOfPeriod = 0;\r\n let ratePeriod = 0;\r\n if (this.model.noOfPeriods != \"\") { \r\n noOfPeriod = parseFloat(this.model.noOfPeriods);\r\n this.model.noOfPeriods = parseFloat(this.model.noOfPeriods.toString()).toFixed(2);\r\n }\r\n if (this.model.ratePerPeriod != \"\") { \r\n ratePeriod = parseFloat(this.model.ratePerPeriod);\r\n }\r\n this.totalFee = (noOfPeriod * ratePeriod).toString();\r\n this.totalFee = parseFloat(this.totalFee.toString()).toFixed(2);\r\n break;\r\n case \"ratePerPeriod\":\r\n noOfPeriod = 0;\r\n ratePeriod = 0;\r\n if (this.model.noOfPeriods != \"\") { \r\n noOfPeriod = parseFloat(this.model.noOfPeriods);\r\n }\r\n if (this.model.ratePerPeriod != \"\") { \r\n ratePeriod = parseFloat(this.model.ratePerPeriod);\r\n this.model.ratePerPeriod = parseFloat(this.model.ratePerPeriod.toString()).toFixed(2);\r\n }\r\n this.totalFee = (noOfPeriod * ratePeriod).toString();\r\n this.totalFee = parseFloat(this.totalFee.toString()).toFixed(2);\r\n break;\r\n }\r\n }\r\n\r\n onFocusOutEventMilestone(param: any, i: any) {\r\n switch (param) {\r\n case \"amount\":\r\n this.totalMilestoneAmount = \"0\";\r\n let isValueEmpty = false;\r\n if (this.model.serviceMilestones[i].amount === \"\" || this.model.serviceMilestones[i].amount === \"0\") {\r\n isValueEmpty = true;\r\n this.model.serviceMilestones[i].amount = \"0\";\r\n }\r\n this.model.serviceMilestones[i].amount = parseFloat(this.model.serviceMilestones[i].amount.toString()).toFixed(2);\r\n for (let j = 0; j < this.model.serviceMilestones.length; j++) {\r\n if (this.model.serviceMilestones[j].amount === \"\" || this.model.serviceMilestones[j].amount === null || this.model.serviceMilestones[j].amount == undefined) {\r\n continue;\r\n }\r\n let amount = parseFloat(this.totalMilestoneAmount) + parseFloat(this.model.serviceMilestones[j].amount)\r\n this.totalMilestoneAmount = parseFloat(amount.toString()).toFixed(2);\r\n }\r\n if(isValueEmpty){\r\n this.model.serviceMilestones[i].amount = \"\";\r\n }\r\n if(this.model.feeArrangement === \"Both\"){\r\n let total = parseFloat(this.totalMilestoneAmount) + parseFloat(this.totalPaymentMilestoneAmount);\r\n this.model.fees = parseFloat(total.toString()).toFixed(2);\r\n }else{\r\n this.model.fees = this.totalMilestoneAmount;\r\n }\r\n break;\r\n case \"paymentSplit\":\r\n this.totalMilestonePercentage = \"0\";\r\n isValueEmpty = false;\r\n if (this.model.serviceMilestones[i].paymentSplit === \"\" || this.model.serviceMilestones[i].paymentSplit === \"0\") {\r\n isValueEmpty = true;\r\n this.model.serviceMilestones[i].paymentSplit = \"0\";\r\n }\r\n this.model.serviceMilestones[i].paymentSplit = parseFloat(this.model.serviceMilestones[i].paymentSplit.toString()).toFixed(2);\r\n for (let i = 0; i < this.model.serviceMilestones.length; i++) {\r\n let percentage = parseFloat(this.totalMilestonePercentage) + parseFloat(this.model.serviceMilestones[i].paymentSplit)\r\n this.totalMilestonePercentage = parseFloat(percentage.toString()).toFixed(2);\r\n }\r\n if(isValueEmpty){\r\n this.model.serviceMilestones[i].paymentSplit = \"\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n onFocusOutEventPaymentMilestone(param: any, i: any) {\r\n switch (param) {\r\n case \"amount\":\r\n this.totalPaymentMilestoneAmount = \"0\";\r\n let isValueEmpty = false;\r\n if (this.model.paymentMilestones[i].paymentAmount === \"\" || this.model.paymentMilestones[i].paymentAmount === \"0\") {\r\n isValueEmpty = true;\r\n this.model.paymentMilestones[i].paymentAmount = \"0\";\r\n }\r\n this.model.paymentMilestones[i].paymentAmount = parseFloat(this.model.paymentMilestones[i].paymentAmount.toString()).toFixed(2);\r\n for (let j = 0; j < this.model.paymentMilestones.length; j++) {\r\n if (this.model.paymentMilestones[j].paymentAmount === \"\" || this.model.paymentMilestones[j].paymentAmount === null || this.model.paymentMilestones[j].paymentAmount == undefined) {\r\n continue;\r\n }\r\n let amount = parseFloat(this.totalPaymentMilestoneAmount) + parseFloat(this.model.paymentMilestones[j].paymentAmount)\r\n this.totalPaymentMilestoneAmount = parseFloat(amount.toString()).toFixed(2);\r\n }\r\n this.model.fees = this.totalPaymentMilestoneAmount;\r\n if(isValueEmpty){\r\n this.model.paymentMilestones[i].paymentAmount = \"\";\r\n }\r\n if(this.model.feeArrangement === \"Both\"){\r\n let total = parseFloat(this.totalMilestoneAmount) + parseFloat(this.totalPaymentMilestoneAmount);\r\n this.model.fees = parseFloat(total.toString()).toFixed(2);\r\n }else{\r\n this.model.fees = this.totalPaymentMilestoneAmount;\r\n }\r\n \r\n break;\r\n }\r\n }\r\n\r\n SaveAndNext() {\r\n var reqID : any;\r\n reqID = localStorage.getItem('ReqID');\r\n reqID = reqID.replace(/\\\"/g, \"\");\r\n //this.model.populateDataJson(this.model);\r\n // if (this.model.vatType == \"No_VAT\") {\r\n // this.model.vatRate = \"\";\r\n // }\r\n // if(this.proformaRegion != \"ARO\"){\r\n // this.model.paymentMilestones = [];\r\n // }\r\n if(this.model.fees === \"\"){\r\n this.openAlertDialog(\"Please provide Fees !\");\r\n return;\r\n }\r\n\r\n if(this.model.feeCurrencyInternalID === \"\" || this.model.feeCurrencyInternalID === undefined || this.model.feeCurrencyInternalID == null){\r\n this.openAlertDialog(\"Please select Fees Currency !\");\r\n return;\r\n }else{\r\n // alert(this.model.feeCurrencyInternalID);\r\n for (let index = 0; index < this.currencies.length; index++) {\r\n if(this.model.feeCurrencyInternalID == this.currencies[index].internalId){\r\n this.model.feeCurrency = this.currencies[index].baseCurrency;\r\n break;\r\n } \r\n }\r\n }\r\n\r\n // if(this.model.vatType === \"\"){\r\n // this.openAlertDialog(\"Please select VAT Type !\");\r\n // return;\r\n // }\r\n\r\n // if((this.model.vatType === \"VAT_Applicable\" || this.model.vatType === \"Reverse_Charge\") && this.model.vatRate === \"\"){\r\n // this.openAlertDialog(\"Please provide VAT Rate !\");\r\n // return;\r\n // }\r\n\r\n // if((this.model.vatType === \"VAT_Applicable\" || this.model.vatType === \"Reverse_Charge\") && parseFloat(this.model.vatRate) > 100){\r\n // this.openAlertDialog(\"VAT Rate should be less than or equal to 100 !\");\r\n // return;\r\n // }\r\n\r\n \r\n if(this.model.feeArrangement === \"\"){\r\n this.openAlertDialog(\"Please select Fee Arrangement !\");\r\n return;\r\n }\r\n\r\n if(this.model.feeArrangement === \"Monthly\" || this.model.feeArrangement === \"Both\"){\r\n if(this.model.timePeriod === \"\"){\r\n this.openAlertDialog(\"Please select the Period for the Fee Arrangement - Monthly/Time and Materials!\");\r\n return;\r\n }\r\n if(this.model.noOfPeriods === \"\"){\r\n this.openAlertDialog(\"Please provide Number of Periods for the Fee Arrangement - Monthly/Time and Materials!\");\r\n return;\r\n }\r\n if(this.model.ratePerPeriod === \"\"){\r\n this.openAlertDialog(\"Please provide Rate per period for the Fee Arrangement - Monthly/Time and Materials!\");\r\n return;\r\n }\r\n \r\n }\r\n\r\n if(this.model.feeArrangement === \"Monthly\" || this.model.feeArrangement === \"Both\"){ \r\n if(this.model.paymentMilestones.length == 0){\r\n this.openAlertDialog(\"Atleast one Payment milestone need to be provided !\"); \r\n return;\r\n } \r\n if (this.model.paymentMilestones != undefined && this.model.paymentMilestones.length > 0) {\r\n for (let i = 0; i < this.model.paymentMilestones.length; i++) {\r\n this.model.paymentMilestones[i].proformaID = this.model.proformaID;\r\n this.model.paymentMilestones[i].reqID = reqID;\r\n this.model.paymentMilestones[i].milestoneID = i+1;\r\n if (this.model.paymentMilestones[i].paymentMilestone.trim() === \"\" || this.model.paymentMilestones[i].paymentAmount.toLocaleString() === \"\" || this.model.paymentMilestones[i].paymentDate.toLocaleString() === \"\") {\r\n this.openAlertDialog(\"Payment Milestone information not provided correctly at row \" + (i + 1) + \".\");\r\n return;\r\n }\r\n }\r\n } \r\n if(this.model.fees == undefined || this.model.fees == null || this.model.fees == \"\"){\r\n this.model.fees = \"0\";\r\n }\r\n if(this.totalFee == undefined || this.totalFee == null || this.totalFee == \"\"){\r\n this.totalFee = \"0\";\r\n }\r\n\r\n if(this.totalPaymentMilestoneAmount == undefined || this.totalPaymentMilestoneAmount == null || this.totalPaymentMilestoneAmount == \"\"){\r\n this.totalPaymentMilestoneAmount = \"0\";\r\n }\r\n\r\n if(this.model.fees != this.totalFee){\r\n this.openAlertDialog(\"The payment milestones total should match the total fee amount specified !\"); \r\n return;\r\n }\r\n }\r\n\r\n if(this.model.feeArrangement === \"Fixed\"){ \r\n if(this.model.serviceMilestones.length == 0){\r\n //this.openAlertDialog(\"Atleast one Fixed/Deliverable Based Payment Milestone need to be provided !\"); - changed the Error message\r\n this.openAlertDialog(\"Please provide atleast one Fixed/Deliverable Based Payment Milestone!\"); \r\n\r\n return;\r\n }\r\n }\r\n\r\n if(this.model.feeArrangement === \"Fixed\" || this.model.feeArrangement === \"Both\"){\r\n if (this.model.serviceMilestones != undefined && this.model.serviceMilestones.length > 0) {\r\n for (let i = 0; i < this.model.serviceMilestones.length; i++) {\r\n this.model.serviceMilestones[i].proformaID = this.model.proformaID;\r\n this.model.serviceMilestones[i].reqID = reqID;\r\n this.model.serviceMilestones[i].milestoneID = i+1;\r\n if (this.model.serviceMilestones[i].description.trim() === \"\" || this.model.serviceMilestones[i].amount.toLocaleString() === \"\" || this.model.serviceMilestones[i].estimatedCompletionDate.toLocaleString() === \"\") {\r\n this.openAlertDialog(\"Service Milestone information not provided correctly at row \" + (i + 1) + \".\");\r\n return;\r\n }\r\n // if(parseFloat(this.model.serviceMilestones[i].paymentSplit) > 100){\r\n // this.openAlertDialog(\"Relevant rate should be less than or equal to 100 ! , Please check at row \" + (i + 1) + \".\");\r\n // return;\r\n // }\r\n }\r\n }\r\n }\r\n\r\n if(this.model.feeArrangement == \"Both\"){\r\n if(this.model.paymentMilestones.length == 0){\r\n //this.openAlertDialog(\"Atleast one Payment milestone need to be provided !\"); Shiwali change 21/11\r\n this.openAlertDialog(\"Please provide atleast one Time Based Payment Milestone!\"); \r\n return;\r\n } \r\n if(this.model.serviceMilestones.length == 0){\r\n this.openAlertDialog(\"Atleast one Service milestone need to be provided !\"); \r\n return;\r\n }\r\n }\r\n\r\n \r\n \r\n if(this.model.feeArrangement === \"Other\"){\r\n if(this.model.otherDescription === \"\"){\r\n this.openAlertDialog(\"Please provide Description for the Fee Arrangement - Other!\");\r\n return;\r\n }\r\n }\r\n \r\n\r\n switch (this.model.feeArrangement) {\r\n case \"Monthly\":\r\n this.model.serviceMilestones = [];\r\n this.model.otherDescription = \"\";\r\n break;\r\n case \"Fixed\":\r\n this.model.timePeriod = \"\";\r\n this.model.noOfPeriods = \"\";\r\n this.model.ratePerPeriod = \"\";\r\n this.model.otherDescription = \"\"; \r\n this.model.paymentMilestones =[];\r\n break;\r\n case \"Both\":\r\n this.model.otherDescription = \"\";\r\n break;\r\n case \"Other\":\r\n this.model.serviceMilestones = [];\r\n this.model.paymentMilestones = [];\r\n this.model.timePeriod = \"\";\r\n this.model.noOfPeriods = \"\";\r\n this.model.ratePerPeriod = \"\";\r\n break;\r\n }\r\n // this.model.populateDataJson(this.model);\r\n this.api.updateFeesAndExpenses03(this.model).subscribe(Response => {\r\n console.log(Response);\r\n });\r\n this.SaveAndNextClicked.emit(\"3\");\r\n }\r\n\r\n numberOnly(event: any, param: any): boolean {\r\n if (param === undefined) {\r\n return true;\r\n }\r\n if (param.toString().indexOf('.') > -1 && event.keyCode == 46) {\r\n return false;\r\n }\r\n\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 46) {\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n Next() {\r\n this.SaveAndNextClicked.emit(\"2\");\r\n }\r\n\r\n addRow(index: any) {\r\n if (this.disableField == true) {\r\n return false;\r\n }\r\n if(this.model.serviceMilestones.length == this.serviceMilestoneLimit){\r\n this.openAlertDialog(\"Only \"+ this.serviceMilestoneLimit.toLocaleString() +\" Service Milestones can be provided !\");\r\n return;\r\n }\r\n this.serviceMilestones = new ServiceMilestones();\r\n this.serviceMilestones.description = \"\";\r\n this.serviceMilestones.paymentSplit = \"0\";\r\n this.serviceMilestones.amount = \"\";\r\n this.serviceMilestones.estimatedCompletionDate = \"\";\r\n this.model.serviceMilestones.push(this.serviceMilestones);\r\n return true;\r\n }\r\n\r\n deleteRow(index: any) {\r\n if (this.disableField == true) {\r\n return false;\r\n }\r\n this.model.serviceMilestones.splice(index, 1);\r\n if(this.model.serviceMilestones.length == 0){\r\n this.totalMilestoneAmount = \"0\";\r\n this.totalMilestonePercentage = \"0\"\r\n }\r\n return true;\r\n }\r\n\r\n addPaymentMileStone(index: any) {\r\n if (this.disableField == true) {\r\n return false;\r\n }\r\n if(this.model.paymentMilestones.length == this.serviceMilestoneLimit){\r\n this.openAlertDialog(\"Only \"+ this.serviceMilestoneLimit.toLocaleString() +\" Payment Milestones can be provided !\");\r\n return;\r\n }\r\n this.paymentMilestones = new PaymentMilestones();\r\n this.paymentMilestones.paymentMilestone = \"\";\r\n this.paymentMilestones.paymentDate = \"\";\r\n this.paymentMilestones.paymentAmount = \"\";\r\n this.model.paymentMilestones.push(this.paymentMilestones);\r\n return true;\r\n }\r\n\r\n deletePaymentMileStone(index: any) {\r\n if (this.disableField == true) {\r\n return false;\r\n }\r\n this.model.paymentMilestones.splice(index, 1);\r\n if(this.model.paymentMilestones.length == 0){\r\n this.totalPaymentMilestoneAmount = \"0\";\r\n this.model.fees = \"0\";\r\n }\r\n return true;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Fees\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{value.baseCurrency}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Monthly/Time and\r\n Materials
\r\n Fixed/Milestone\r\n Based
\r\n Both
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
PeriodNumber of PeriodsRate per periodTotal Fee
select if billing is on a per hour/day/month basisspecify number of hours/days/months to complete the workspecify the hourly/daily/monthly rate charged
\r\n
\r\n \r\n Per Hour
\r\n Per Day
\r\n Per Month
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
Time Based Payment Milestones :
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Payment MilestonePayment AmountPayment Date
\r\n \r\n Payment Milestone\r\n \r\n \r\n \r\n \r\n \r\n Payment Amount \r\n \r\n \r\n \r\n \r\n Payment Date\r\n \r\n\r\n \r\n keyboard_arrow_down\r\n \r\n \r\n \r\n \r\n delete\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
Fixed/Deliverable Based Payment Milestones :
(applicable for Fixed/Milestone based service projects)
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DescriptionAmountEstimated Completion Date
\r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n Amount \r\n \r\n \r\n \r\n \r\n Estimated Date\r\n \r\n\r\n \r\n keyboard_arrow_down\r\n \r\n \r\n \r\n \r\n delete\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n

IPPF note: Where Contractor is an overseas entity (i.e. non-UK) and is not registered\r\n for\r\n VAT in the UK and is providing services to IPPF in UK, IPPF may be required by law to account for 20% VAT on the\r\n value of the services (even though it is the recipient if the services)

\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
","import { Document } from \"./document\";\r\n\r\nexport class InsuranceDetails {\r\n proformaID: number;\r\n\r\n professionalIndemnityInsID : number;\r\n professionalIndemnityLevelLimit : string;\r\n professionalIndemnityComplianceStatus : string;\r\n professionalIndemnityDetails : string;\r\n professionalIndemnityCurrency : string;\r\n professionalIndemnityDocument : Document;\r\n\r\n cyberSecurityInsID : number;\r\n cyberSecurityLevelLimit : string;\r\n cyberSecurityComplianceStatus : string;\r\n cyberSecurityDetails : string;\r\n cyberSecurityCurrency : string;\r\n cyberSecurityDocument : Document;\r\n\r\n employerLiabilityInsID : number;\r\n employerLiabilityLevelLimit : string;\r\n employerLiabilityComplianceStatus : string;\r\n employerLiabilityDetails : string;\r\n employerLiabilityCurrency : string;\r\n employerLiabilityDocument : Document;\r\n\r\n publicLiabilityInsID : number;\r\n publicLiabilityLevelLimit : string;\r\n publicLiabilityComplianceStatus : string;\r\n publicLiabilityDetails : string;\r\n publicLiabilityCurrency : string;\r\n publicLiabilityDocument : Document;\r\n\r\n proInsuranceApplicable : string;\r\n\r\n\r\n populateDataJson(data:any) {\r\n this.professionalIndemnityInsID = data.professionalIndemnityInsID;\r\n this.professionalIndemnityLevelLimit = data.professionalIndemnityLevelLimit;\r\n this.professionalIndemnityComplianceStatus = data.professionalIndemnityComplianceStatus;\r\n if(data.professionalIndemnityComplianceStatus == \"Not Compliant\"){\r\n this.professionalIndemnityComplianceStatus = \"Not Available\";\r\n }\r\n this.professionalIndemnityCurrency = data.professionalIndemnityCurrency;\r\n this.professionalIndemnityDetails = data.professionalIndemnityDetails;\r\n this.professionalIndemnityDocument = data.professionalIndemnityDocument;\r\n\r\n\r\n this.cyberSecurityInsID = data.cyberSecurityInsID;\r\n this.cyberSecurityLevelLimit = data.cyberSecurityLevelLimit\r\n this.cyberSecurityComplianceStatus = data.cyberSecurityComplianceStatus;\r\n if(data.cyberSecurityComplianceStatus == \"Not Compliant\"){\r\n this.cyberSecurityComplianceStatus = \"Not Available\";\r\n }\r\n this.cyberSecurityCurrency = data.cyberSecurityCurrency;\r\n this.cyberSecurityDetails = data.cyberSecurityDetails;\r\n this.cyberSecurityDocument = data.cyberSecurityDocument;\r\n\r\n this.employerLiabilityInsID = data.employerLiabilityInsID;\r\n this.employerLiabilityLevelLimit = data.employerLiabilityLevelLimit\r\n this.employerLiabilityComplianceStatus = data.employerLiabilityComplianceStatus;\r\n if(data.employerLiabilityComplianceStatus == \"Not Compliant\"){\r\n this.employerLiabilityComplianceStatus = \"Not Available\";\r\n }\r\n this.employerLiabilityCurrency = data.employerLiabilityCurrency;\r\n this.employerLiabilityDetails = data.employerLiabilityDetails;\r\n this.employerLiabilityDocument = data.employerLiabilityDocument;\r\n\r\n this.publicLiabilityInsID = data.publicLiabilityInsID;\r\n this.publicLiabilityLevelLimit = data.publicLiabilityLevelLimit\r\n this.publicLiabilityComplianceStatus = data.publicLiabilityComplianceStatus;\r\n if(data.publicLiabilityComplianceStatus == \"Not Compliant\"){\r\n this.publicLiabilityComplianceStatus = \"Not Available\";\r\n }\r\n this.publicLiabilityCurrency = data.publicLiabilityCurrency;\r\n this.publicLiabilityDetails = data.publicLiabilityDetails;\r\n this.publicLiabilityDocument = data.publicLiabilityDocument;\r\n\r\n this.proInsuranceApplicable = data.proInsuranceApplicable;\r\n }\r\n}","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-aro-region',\r\n templateUrl: './aro-region.component.html',\r\n styleUrls: ['./aro-region.component.css']\r\n})\r\nexport class AroRegionComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n\r\n\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaStatus: any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n isHidden = true;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(data);\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n\r\n SaveAndNext() {\r\n this.modelPopupMessages = [];\r\n for (let i = 0; i < this.countries.length; i++) {\r\n if(this.modelAddress.countryID == this.countries[i].id)\r\n {\r\n this.modelAddress.countryName = this.countries[i].name;\r\n break;\r\n }\r\n }\r\n this.model.isCompRegCertificateProvided = \"False\";\r\n this.model.isBusinessPermitProvided = \"False\";\r\n this.model.isTINProvided=\"False\";\r\n\r\n this.model.populateAddress(this.modelAddress);\r\n if(!this.validateControls()){\r\n return;\r\n }\r\n \r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n if (this.VendorType == \"Company\") {\r\n const docNo = this.model.certicateOfIncorporationDocuments == undefined ? 0 : this.model.certicateOfIncorporationDocuments.length;\r\n const saveddocNo = this.DocumentsType1 == undefined ? 0 : this.DocumentsType1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Certificate Of Incorporation\";\r\n message.value = \"Please confirm that there is no change in the 'Certificate Of Incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Certificate Of Incorporation Document\");\r\n return;\r\n } \r\n }\r\n }\r\n\r\n if (!this.IsVATRequired) {\r\n this.model.vatRegistrationNumber = \"\";\r\n this.model.vatRegistrationDocuments = [] \r\n }else{\r\n const docNo1 = this.model.vatRegistrationDocuments == undefined ? 0 : this.model.vatRegistrationDocuments.length;\r\n const saveddocNo1 = this.DocumentsType5 == undefined ? 0 : this.DocumentsType5.length;\r\n if (docNo1 == 0 && saveddocNo1 == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"VAT Registration\";\r\n message.value = \"Please confirm that there is no change in the 'VAT Registration'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide VAT Registration Document\");\r\n return;\r\n } \r\n }\r\n } \r\n \r\n if (this.VendorType == \"Sole Trader\") {\r\n const docNo = this.model.personalIdentificationDocuments == undefined ? 0 : this.model.personalIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType2 == undefined ? 0 : this.DocumentsType2.length;\r\n \r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Personal Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Personal Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Personal Identification Document\");\r\n return;\r\n } \r\n }\r\n }\r\n }\r\n \r\n\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n \r\n if(this.VendorType == 'Individual' || 'Company'){\r\n if(this.IsGSTRequired){\r\n const docNo = this.model.gstDocuments_1 == undefined ? 0 : this.model.gstDocuments_1.length;\r\n const saveddocNo = this.DocumentsType25_1 == undefined ? 0 : this.DocumentsType25_1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_1;\r\n this.DocumentsType25 = this.DocumentsType25_1;\r\n this.model.removableGSTDocuments = this.DocumentsType25_2;\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n const docNo = this.model.gstDocuments_2 == undefined ? 0 : this.model.gstDocuments_2.length;\r\n const saveddocNo = this.DocumentsType25_2 == undefined ? 0 : this.DocumentsType25_2.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate for confirming overall turnover is not more !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_2;\r\n this.DocumentsType25 = this.DocumentsType25_2;\r\n this.model.removableGSTDocuments = this.DocumentsType25_1;\r\n }\r\n }\r\n\r\n if(this.VendorType == \"Company\"){\r\n if(this.IsMCARequired){\r\n this.model.isMCARequired = this.IsMCARequired;\r\n const docNo = this.model.mcaDocuments == undefined ? 0 : this.model.mcaDocuments.length;\r\n const saveddocNo = this.DocumentsType26 == undefined ? 0 : this.DocumentsType26.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Corporate Affairs (MCA)\";\r\n message.value = \"Please confirm that there is no change in the 'Corporate Affairs (MCA) certificate of incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Ministry of Corporate Affairs (MCA) certificate of incorporation document !\");\r\n return;\r\n } \r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n const docNo = this.model.compRegCertificateDocuments == undefined ? 0 : this.model.compRegCertificateDocuments.length;\r\n const saveddocNo = this.DocumentsType22 == undefined ? 0 : this.DocumentsType22.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Company Registration Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'Company Registration Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Company Registration Certificate !\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isCompRegCertificateProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n const docNo = this.model.businessPermitDocuments == undefined ? 0 : this.model.businessPermitDocuments.length;\r\n const saveddocNo = this.DocumentsType23 == undefined ? 0 : this.DocumentsType23.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Business Permit\";\r\n message.value = \"Please confirm that there is no change in the 'Business Permit'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Business Permit Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isBusinessPermitProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n if(this.model.taxIdentificationNumber == undefined || this.model.taxIdentificationNumber == null || this.model.taxIdentificationNumber.trim() == \"\"){\r\n this.openAlertDialog(\"Please provide Tax Identification Number to continue !\");\r\n return;\r\n }\r\n const docNo = this.model.taxIdentificationDocuments == undefined ? 0 : this.model.taxIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType24 == undefined ? 0 : this.DocumentsType24.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Tax Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Tax Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Tax Identification Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isTINProvided = \"True\";\r\n }\r\n }\r\n\r\n\r\n const docNo = this.model.companyBankStatementDocuments == undefined ? 0 : this.model.companyBankStatementDocuments.length;\r\n const saveddocNo = this.DocumentsType3 == undefined ? 0 : this.DocumentsType3.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n this.openAlertDialog(\"Please provide Company Bank Statement Document\");\r\n return;\r\n }\r\n\r\n this.openModelPopup();\r\n \r\n }\r\n Next() {\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openModelPopup() { \r\n \r\n if(this.model.isExistingVendor == \"True\" && this.modelPopupMessages.length > 0){\r\n const dialogRef = this.dialog.open(ModelPopupComponent, {\r\n data:{\r\n messages: this.modelPopupMessages,\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n debugger;\r\n if (confirmed) {\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n });\r\n }\r\n else{\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n } \r\n } \r\n\r\n\r\n onCertificateOfIncorporationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorIncorporationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorIncorporationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporation;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n this.model.certicateOfIncorporationDocuments = [];\r\n }\r\n this.model.certicateOfIncorporationDocuments.push(document);\r\n this.DocumentsType1.push(document);\r\n };\r\n }\r\n\r\n onCertificateOfIncorporationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType1.length;i++){\r\n if(this.DocumentsType1[i].documentName == event.documentName){\r\n this.DocumentsType1.splice(i,1);\r\n }\r\n }\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.certicateOfIncorporationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.certicateOfIncorporationDocuments.length; i++) {\r\n if (this.model.certicateOfIncorporationDocuments[i].documentName == event.documentName) {\r\n this.model.certicateOfIncorporationDocuments.splice(i, 1);\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n\r\n onPersonalIdentificationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorPersonalIdentificationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorPersonalIdentificationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.PersonalIdentification;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = (e) => {\r\n document.documentBase64 = reader.result as string;\r\n\r\n };\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n this.model.personalIdentificationDocuments = [];\r\n }\r\n this.model.personalIdentificationDocuments.push(document);\r\n this.DocumentsType2.push(document);\r\n }\r\n\r\n onPersonalIdentificationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType2.length;i++){\r\n if(this.DocumentsType2[i].documentName == event.documentName){\r\n this.DocumentsType2.splice(i,1);\r\n }\r\n }\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.personalIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.personalIdentificationDocuments.length; i++) {\r\n if (this.model.personalIdentificationDocuments[i].documentName == event.name) {\r\n this.model.personalIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompanyBankStatementFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBankStatement = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBankStatement = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompanyBankStatement;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n this.model.companyBankStatementDocuments = [];\r\n }\r\n this.model.companyBankStatementDocuments.push(document);\r\n this.DocumentsType3.push(document);\r\n };\r\n }\r\n\r\n onCompanyBankStatementFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType3.length;i++){\r\n if(this.DocumentsType3[i].documentName == event.documentName){\r\n this.DocumentsType3.splice(i,1);\r\n }\r\n }\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n return;\r\n }\r\n if (this.model.companyBankStatementDocuments.length > 0) {\r\n for (let i = 0; i < this.model.companyBankStatementDocuments.length; i++) {\r\n if (this.model.companyBankStatementDocuments[i].documentName == event.name) {\r\n this.model.companyBankStatementDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onVATRegistrationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorVAT = true;\r\n return;\r\n }\r\n this.showFileSizeErrorVAT = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.VATRegistrationDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n this.model.vatRegistrationDocuments = [];\r\n }\r\n this.model.vatRegistrationDocuments.push(document);\r\n this.DocumentsType5.push(document);\r\n };\r\n }\r\n\r\n onVATRegistrationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType5.length;i++){\r\n if(this.DocumentsType5[i].documentName == event.documentName){\r\n this.DocumentsType5.splice(i,1);\r\n }\r\n }\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.vatRegistrationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.vatRegistrationDocuments.length; i++) {\r\n if (this.model.vatRegistrationDocuments[i].documentName == event.name) {\r\n this.model.vatRegistrationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTAccepted = true;\r\n return;\r\n }\r\n\r\n this.showFileSizeErrorGSTAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n this.model.gstDocuments_1 = [];\r\n }\r\n this.model.gstDocuments_1.push(document);\r\n this.DocumentsType25_1.push(document);\r\n };\r\n }\r\n\r\n onGSTAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_1.length;i++){\r\n if(this.DocumentsType25_1[i].documentName == event.documentName){\r\n this.DocumentsType25_1.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_1.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_1.length; i++) {\r\n if (this.model.gstDocuments_1[i].documentName == event.name) {\r\n this.model.gstDocuments_1.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTNotAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTNotAccepted = true;\r\n return;\r\n }\r\n this.showFileSizeErrorGSTNotAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n this.model.gstDocuments_2 = [];\r\n }\r\n this.model.gstDocuments_2.push(document);\r\n this.DocumentsType25_2.push(document);\r\n };\r\n }\r\n\r\n onGSTNotAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_2.length;i++){\r\n if(this.DocumentsType25_2[i].documentName == event.documentName){\r\n this.DocumentsType25_2.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_2.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_2.length; i++) {\r\n if (this.model.gstDocuments_2[i].documentName == event.name) {\r\n this.model.gstDocuments_2.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBusinessPermitFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBusinessPermitFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBusinessPermitFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.BussPermit;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n this.model.businessPermitDocuments = [];\r\n }\r\n this.model.businessPermitDocuments.push(document);\r\n this.DocumentsType23.push(document);\r\n };\r\n }\r\n\r\n onBusinessPermitFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType23.length;i++){\r\n if(this.DocumentsType23[i].documentName == event.documentName){\r\n this.DocumentsType23.splice(i,1);\r\n }\r\n }\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n return;\r\n }\r\n if (this.model.businessPermitDocuments.length > 0) {\r\n for (let i = 0; i < this.model.businessPermitDocuments.length; i++) {\r\n if (this.model.businessPermitDocuments[i].documentName == event.name) {\r\n this.model.businessPermitDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onTINFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorTINFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorTINFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.TIN;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n this.model.taxIdentificationDocuments = [];\r\n }\r\n this.model.taxIdentificationDocuments.push(document);\r\n this.DocumentsType24.push(document);\r\n };\r\n }\r\n\r\n onTINFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType24.length;i++){\r\n if(this.DocumentsType24[i].documentName == event.documentName){\r\n this.DocumentsType24.splice(i,1);\r\n }\r\n }\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.taxIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.taxIdentificationDocuments.length; i++) {\r\n if (this.model.taxIdentificationDocuments[i].documentName == event.name) {\r\n this.model.taxIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompRegCertificateFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorCertificate = true;\r\n return;\r\n }\r\n this.showFileSizeErrorCertificate = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompRegCertificate;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n this.model.compRegCertificateDocuments = [];\r\n }\r\n this.model.compRegCertificateDocuments.push(document);\r\n this.DocumentsType22.push(document);\r\n };\r\n }\r\n\r\n onCompRegCertificateFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType22.length;i++){\r\n if(this.DocumentsType22[i].documentName == event.documentName){\r\n this.DocumentsType22.splice(i,1);\r\n }\r\n }\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n return;\r\n }\r\n if (this.model.compRegCertificateDocuments.length > 0) {\r\n for (let i = 0; i < this.model.compRegCertificateDocuments.length; i++) {\r\n if (this.model.compRegCertificateDocuments[i].documentName == event.name) {\r\n this.model.compRegCertificateDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMCAFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorMCAFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorMCAFile = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporationMCA;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n this.model.mcaDocuments = [];\r\n }\r\n this.model.mcaDocuments.push(document);\r\n this.DocumentsType26.push(document);\r\n };\r\n }\r\n\r\n onMCAFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType26.length;i++){\r\n if(this.DocumentsType26[i].documentName == event.documentName){\r\n this.DocumentsType26.splice(i,1);\r\n }\r\n }\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n return;\r\n }\r\n if (this.model.mcaDocuments.length > 0) {\r\n for (let i = 0; i < this.model.mcaDocuments.length; i++) {\r\n if (this.model.mcaDocuments[i].documentName == event.name) {\r\n this.model.mcaDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n keyPressAlphaNumeric(event: any,source : any) {\r\n var inp = String.fromCharCode(event.keyCode);\r\n if((source == 'ESIC' || source == 'MSME') && inp == '-'){\r\n return true;\r\n }\r\n if(source == 'EPF'&& inp == '/'){\r\n return true;\r\n }\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n validateControls() : boolean {\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n // alert(\"servicesProvidedBy\");\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(this.model.entityName === undefined || this.model.entityName === null || this.model.entityName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Entity Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationNo === undefined || this.model.companyRegistrationNo === null || this.model.companyRegistrationNo.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.companyRegAddress === undefined || this.model.companyRegistrationAddress.companyRegAddress === null || this.model.companyRegistrationAddress.companyRegAddress.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registered Address to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.city === undefined || this.model.companyRegistrationAddress.city === null || this.model.companyRegistrationAddress.city.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide City to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.postCode === undefined || this.model.companyRegistrationAddress.postCode === null || this.model.companyRegistrationAddress.postCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Postcode to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.countryID === undefined || this.model.companyRegistrationAddress.countryID === null ){\r\n this.openAlertDialog(\"Please select Country to continue !\");\r\n return false;\r\n }\r\n if(this.model.phoneNumber === undefined || this.model.phoneNumber === null || this.model.phoneNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Phone Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.email === undefined || this.model.email === null || this.model.email.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Email Address to continue !\");\r\n return false;\r\n }\r\n if(!this.validateEmail()){\r\n this.openAlertDialog(\"Please provide valid Email Address to continue !\");\r\n return false;\r\n }\r\n\r\n if (!this.validatePaymentEmailID()) {\r\n return false; // Stop further processing if the email is invalid\r\n }\r\n \r\n if(this.VendorType == \"Individual\" || this.VendorType == \"Company\"){\r\n if(this.model.bankAccountName === undefined || this.model.bankAccountName === null || this.model.bankAccountName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Account Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.bankName === undefined || this.model.bankName === null || this.model.bankName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Name to continue !\");\r\n return false;\r\n }\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.sortCode = \"\";\r\n if(this.model.accountType === undefined || this.model.accountType === null || this.model.accountType.trim() === \"\"){\r\n this.openAlertDialog(\"Please select Account Type to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n if(this.model.sortCode === undefined || this.model.sortCode === null || this.model.sortCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Sort Code to continue !\");\r\n return false;\r\n }\r\n else{\r\n this.model.accountType == \"\";\r\n }\r\n }\r\n \r\n if(this.model.accountNumber === undefined || this.model.accountNumber === null || this.model.accountNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Account Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.iban === undefined || this.model.iban === null || this.model.iban.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide IBAN / IFSC to continue !\");\r\n return false;\r\n }\r\n if(this.model.swiftCode === undefined || this.model.swiftCode === null || this.model.swiftCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide SWIFT/BIC Code to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.bankName = \"\";\r\n this.model.sortCode = \"\";\r\n this.model.iban = \"\";\r\n this.model.accountNumber = \"\";\r\n this.model.accountType = \"\";\r\n this.model.swiftCode = \"\";\r\n }\r\n\r\n if (this.IsVATRequired && (this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\")){\r\n if(this.model.vatRegistrationNumber === undefined || this.model.vatRegistrationNumber === null || this.model.vatRegistrationNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide VAT Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n if (this.IsGSTRequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.gstNumber === undefined || this.model.gstNumber === null || this.model.gstNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide GST Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.gstNumber,\"GST Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n }\r\n\r\n if (this.IsEPFRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.epfNumber === undefined || this.model.epfNumber === null || this.model.epfNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.epfNumber.indexOf('/') <0){\r\n this.openAlertDialog(\"Please provide valid EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.epfNumber = \"\";\r\n }\r\n if (this.IsESICRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.esicNumber === undefined || this.model.esicNumber === null || this.model.esicNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.esicNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.esicNumber = \"\";\r\n }\r\n if (this.IsMSMERequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.msmeNumber === undefined || this.model.msmeNumber === null || this.model.msmeNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.msmeNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.msmeNumber = \"\";\r\n }\r\n\r\n\r\n if (this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.panNumber === undefined || this.model.panNumber === null || this.model.panNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide PAN Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.panNumber,\"PAN Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.panNumber = '';\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event : any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if(charCode == 46){\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateEmail() : boolean {\r\n if (this.model.email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(this.model.email).toLowerCase()))\r\n if (re.test(String(this.model.email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validatePaymentEmailID(): boolean {\r\n if (this.model.paymentNotificationEmailID !== '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const email = String(this.model.paymentNotificationEmailID).toLowerCase();\r\n const isValid = re.test(email);\r\n \r\n console.log(isValid); // Log the validity of the email\r\n \r\n if (!isValid) {\r\n this.openAlertDialog(\"Please provide a valid Email Address to continue!\");\r\n return false;\r\n } else {\r\n // If valid, you can proceed with the logic you need\r\n console.log(\"Valid email:\", email);\r\n // You can send the valid email to another function or service here\r\n this.sendValidEmail(email);\r\n }\r\n } \r\n return true;\r\n}\r\n\r\nsendValidEmail(email: string) {\r\n // Logic to handle the valid email, e.g., send it to the server or store it\r\n console.log(\"Sending valid email:\", email);\r\n}\r\n}\r\n\r\n","
\r\n \r\n Entity Name/Supplier Name\r\n \r\n \r\n\r\n \r\n Company registration number\r\n \r\n \r\n
\r\n
\r\n \r\n First Name\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Company registered address \r\n \r\n \r\n\r\n \r\n City / Town\r\n \r\n \r\n
\r\n
\r\n \r\n Postcode/Zipcode \r\n \r\n \r\n\r\n \r\n Country \r\n \r\n \r\n {{value.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Phone number \r\n \r\n \r\n \r\n Company Email\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Payment notification email ID\r\n \r\n \r\n
\r\n \r\n Services Provided By\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
Please attach your Company Registration Certificate : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
Please attach your Business Permit document : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
Please attach evidence for TIN (Tax Identification Number) : \r\n \r\n \r\n Tax Identification Number\r\n \r\n \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n \r\n \r\n
Bank Statement : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank Account Name\r\n \r\n \r\n \r\n \r\n \r\n Bank Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Sort Code\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n
\r\n \r\n IBAN / IFSC\r\n \r\n \r\n \r\n \r\n \r\n SWIFT/BIC Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-insurance-company',\r\n templateUrl: './insurance-company.component.html',\r\n styleUrls: ['./insurance-company.component.css']\r\n})\r\nexport class InsuranceCompanyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

insurance-company works!

\r\n","import { Address } from \"./address\";\r\nimport { Document } from \"./document\";\r\n\r\nexport class ContractorInformation {\r\n ReqID: number;\r\n proformaID: number;\r\n entityName: string;\r\n contractorFirstName: string;\r\n contractorLastName: string;\r\n companyRegistrationNo: string;\r\n companyRegistrationAddress: Address;\r\n phoneNumber: string;\r\n email: string;\r\n paymentNotificationEmailID:string;\r\n servicesProvidedBy:string;\r\n isSelfEmployeed: string;\r\n isEarningsReportedToHMRC: string;\r\n vatRegistrationNumber: string;\r\n gstNumber: string;\r\n epfNumber: string;\r\n esicNumber: string;\r\n msmeNumber: string;\r\n panNumber: string;\r\n bankName: string;\r\n bankAccountName: string;\r\n accountType: string;\r\n sortCode: string;\r\n accountNumber: string;\r\n iban: string;\r\n swiftCode: string;\r\n agreementType: string;\r\n isExistingVendor : string;\r\n certicateOfIncorporationDocuments: Document[];\r\n personalIdentificationDocuments: Document[];\r\n companyBankStatementDocuments: Document[];\r\n vatRegistrationDocuments: Document[];\r\n businessPermitDocuments: Document[];\r\n taxIdentificationDocuments: Document[];\r\n compRegCertificateDocuments: Document[];\r\n mcaDocuments:Document[];\r\n isMCARequired:boolean;\r\n gstDocuments_1: Document[];\r\n gstDocuments_2: Document[];\r\n origincalGSTDocuments: Document[];\r\n removableGSTDocuments: Document[];\r\n isCompRegCertificateProvided:string;\r\n isBusinessPermitProvided:string;\r\n isTINProvided: string;\r\n taxIdentificationNumber:string;\r\n regionName: string;\r\n proformaStatus : string;\r\n constructor() {\r\n this.companyRegistrationAddress = new Address();\r\n }\r\n\r\n populateData(ContractorInfo: any, AddressInfo: any) {\r\n this.ReqID = ContractorInfo.reqID;\r\n this.entityName = ContractorInfo.entityName;\r\n this.contractorFirstName = ContractorInfo.contractorFirstName;\r\n this.contractorLastName = ContractorInfo.contractorLastName;\r\n this.companyRegistrationNo = ContractorInfo.companyRegistrationNo;\r\n this.companyRegistrationAddress = AddressInfo;\r\n this.companyRegistrationAddress.companyRegAddress = AddressInfo.companyRegAddress;\r\n this.companyRegistrationAddress.city = AddressInfo.city;\r\n this.companyRegistrationAddress.postCode = AddressInfo.postCode;\r\n this.companyRegistrationAddress.countryID = AddressInfo.countryID;\r\n this.companyRegistrationAddress.countryName = AddressInfo.countryName;\r\n this.phoneNumber = ContractorInfo.phoneNumber;\r\n this.email = ContractorInfo.email;\r\n if (ContractorInfo.isSelfEmployeed != undefined && ContractorInfo.isSelfEmployeed != null) {\r\n this.isSelfEmployeed = ContractorInfo.isSelfEmployeed.toString();\r\n }\r\n if (ContractorInfo.isEarningsReportedToHMRC != undefined && ContractorInfo.isEarningsReportedToHMRC != null) {\r\n this.isEarningsReportedToHMRC = ContractorInfo.isEarningsReportedToHMRC.toString();\r\n }\r\n\r\n\r\n this.vatRegistrationNumber = ContractorInfo.vatRegistrationNumber;\r\n this.bankName = ContractorInfo.bankName;\r\n this.bankAccountName = ContractorInfo.bankAccountName;\r\n this.sortCode = ContractorInfo.sortCode;\r\n this.accountNumber = ContractorInfo.accountNumber;\r\n this.accountType = ContractorInfo.accountType;\r\n this.iban = ContractorInfo.iban;\r\n this.swiftCode = ContractorInfo.swiftCode;\r\n this.taxIdentificationNumber = ContractorInfo.taxIdentificationNumber;\r\n this.gstNumber = ContractorInfo.gstNumber;\r\n this.epfNumber = ContractorInfo.epfNumber;\r\n this.esicNumber = ContractorInfo.esicNumber;\r\n this.msmeNumber = ContractorInfo.msmeNumber;\r\n this.panNumber = ContractorInfo.panNumber;\r\n if (ContractorInfo.certicateOfIncorporationDocuments != undefined && ContractorInfo.certicateOfIncorporationDocuments != null) {\r\n this.certicateOfIncorporationDocuments = ContractorInfo.certicateOfIncorporationDocuments;\r\n }\r\n if (ContractorInfo.isCompRegCertificateProvided != undefined && ContractorInfo.isCompRegCertificateProvided != null) {\r\n this.isCompRegCertificateProvided = ContractorInfo.isCompRegCertificateProvided;\r\n }\r\n\r\n if (ContractorInfo.personalIdentificationDocuments != undefined && ContractorInfo.personalIdentificationDocuments != null) {\r\n this.personalIdentificationDocuments = ContractorInfo.personalIdentificationDocuments;\r\n }\r\n\r\n if (ContractorInfo.compRegCertificateDocuments != undefined && ContractorInfo.compRegCertificateDocuments != null) {\r\n this.compRegCertificateDocuments = ContractorInfo.compRegCertificateDocuments;\r\n }\r\n\r\n if (ContractorInfo.isCompRegCertificateProvided != undefined && ContractorInfo.isCompRegCertificateProvided != null) {\r\n this.isCompRegCertificateProvided = ContractorInfo.isCompRegCertificateProvided;\r\n }\r\n\r\n if (ContractorInfo.businessPermitDocuments != undefined && ContractorInfo.businessPermitDocuments != null) {\r\n this.businessPermitDocuments = ContractorInfo.businessPermitDocuments;\r\n }\r\n\r\n if (ContractorInfo.isBusinessPermitProvided != undefined && ContractorInfo.isBusinessPermitProvided != null) {\r\n this.isBusinessPermitProvided = ContractorInfo.isBusinessPermitProvided;\r\n }\r\n\r\n if (ContractorInfo.taxIdentificationDocuments != undefined && ContractorInfo.taxIdentificationDocuments != null) {\r\n this.taxIdentificationDocuments = ContractorInfo.taxIdentificationDocuments;\r\n }\r\n\r\n if (ContractorInfo.isTINProvided != undefined && ContractorInfo.isTINProvided != null) {\r\n this.isTINProvided = ContractorInfo.isTINProvided;\r\n }\r\n\r\n if (ContractorInfo.companyBankStatementDocuments != undefined && ContractorInfo.companyBankStatementDocuments != null) {\r\n this.companyBankStatementDocuments = ContractorInfo.companyBankStatementDocuments;\r\n }\r\n\r\n this.vatRegistrationDocuments = ContractorInfo.vatRegistrationDocuments;\r\n this.gstNumber = ContractorInfo.gstNumber;\r\n if (ContractorInfo.origincalGSTDocuments != undefined && ContractorInfo.origincalGSTDocuments != null) {\r\n this.origincalGSTDocuments = ContractorInfo.origincalGSTDocuments;\r\n }\r\n if (ContractorInfo.removableGSTDocuments != undefined && ContractorInfo.removableGSTDocuments != null) {\r\n this.removableGSTDocuments = ContractorInfo.removableGSTDocuments;\r\n }\r\n if (ContractorInfo.mcaDocuments != undefined && ContractorInfo.mcaDocuments != null) {\r\n this.mcaDocuments = ContractorInfo.mcaDocuments;\r\n }\r\n }\r\n\r\n populateDataJson(data: any) {\r\n if (data.entityName === null) {\r\n return;\r\n }\r\n this.ReqID = data.reqID;\r\n this.entityName = data.entityName;\r\n this.contractorFirstName = data.contractorFirstName;\r\n this.contractorLastName = data.contractorLastName;\r\n this.companyRegistrationNo = data.companyRegistrationNo;\r\n this.companyRegistrationAddress.companyRegAddress = data.companyRegistrationAddress.companyRegAddress;\r\n this.companyRegistrationAddress.city = data.companyRegistrationAddress.city;\r\n this.companyRegistrationAddress.postCode = data.companyRegistrationAddress.postCode;\r\n this.companyRegistrationAddress.countryID = data.companyRegistrationAddress.countryID;\r\n this.companyRegistrationAddress.countryName = data.companyRegistrationAddress.countryName;\r\n this.phoneNumber = data.phoneNumber;\r\n this.email = data.email;\r\n this.isSelfEmployeed = data.isSelfEmployeed;\r\n this.isEarningsReportedToHMRC = data.isEarningsReportedToHMRC;\r\n this.vatRegistrationNumber = data.vatRegistrationNumber;\r\n this.bankName = data.bankName;\r\n this.bankAccountName = data.bankAccountName;\r\n this.sortCode = data.sortCode;\r\n this.accountNumber = data.accountNumber;\r\n this.iban = data.iban;\r\n this.swiftCode = data.swiftCode;\r\n this.certicateOfIncorporationDocuments = data.certicateOfIncorporationDocuments;\r\n this.personalIdentificationDocuments = data.personalIdentificationDocuments;\r\n this.businessPermitDocuments = data.businessPermitDocuments;\r\n this.taxIdentificationDocuments = data.taxIdentificationDocuments;\r\n this.compRegCertificateDocuments = data.compRegCertificateDocuments;\r\n this.companyBankStatementDocuments = data.companyBankStatementDocuments;\r\n this.vatRegistrationDocuments = data.vatRegistrationDocuments;\r\n this.isCompRegCertificateProvided = data.isCompRegCertificateProvided;\r\n this.isBusinessPermitProvided = data.isBusinessPermitProvided;\r\n this.isTINProvided = data.isTINProvided;\r\n this.taxIdentificationNumber = data.taxIdentificationNumber;\r\n this.paymentNotificationEmailID = data.paymentNotificationEmailID;\r\n this.servicesProvidedBy = data.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n \r\n if (data.agreementType != undefined && data.agreementType != null && data.agreementType != \"\")\r\n localStorage.setItem(\"AgreementType\", JSON.stringify(data.agreementType));\r\n else\r\n localStorage.setItem(\"AgreementType\", JSON.stringify('0'));\r\n this.isExistingVendor = data.isExistingVendor;\r\n this.regionName = data.regionName;\r\n this.proformaStatus = data.proformaStatus;\r\n\r\n \r\n if(this.regionName == \"SARO\"){\r\n this.accountType = data.accountType;\r\n this.sortCode = \"\";\r\n this.panNumber = data.panNumber;\r\n this.gstNumber = data.gstNumber;\r\n this.epfNumber = data.epfNumber;\r\n this.msmeNumber = data.msmeNumber;\r\n this.esicNumber = data.esicNumber;\r\n if(this.gstNumber == \"\"){\r\n this.gstDocuments_2 = data.origincalGSTDocuments;\r\n }\r\n else{\r\n this.gstDocuments_1 = data.origincalGSTDocuments;\r\n }\r\n this.mcaDocuments = data.mcaDocuments;\r\n this.isMCARequired = data.isMCARequired;\r\n }\r\n else{\r\n this.accountType = \"\";\r\n this.panNumber = \"\";\r\n this.epfNumber = \"\";\r\n this.esicNumber = \"\";\r\n this.gstNumber = \"\";\r\n this.msmeNumber = \"\";\r\n this.mcaDocuments=[];\r\n this.isMCARequired = false;\r\n }\r\n }\r\n\r\n populateAddress(data: any) {\r\n this.companyRegistrationAddress = new Address();\r\n this.companyRegistrationAddress.companyRegAddress = data.companyRegAddress;\r\n this.companyRegistrationAddress.city = data.city;\r\n this.companyRegistrationAddress.postCode = data.postCode;\r\n this.companyRegistrationAddress.countryID = data.countryID;\r\n this.companyRegistrationAddress.countryName = data.countryName;\r\n }\r\n}\r\n\r\nexport class BankAccountType{\r\n name: string;\r\n value: string;\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { EventMessage, EventType, AuthenticationResult, InteractionStatus } from '@azure/msal-browser';\r\nimport { silentRequest } from '../../../auth-config';\r\nimport { AppConstants } from '../providers/app.contstants';\r\nimport { Router } from '@angular/router';\r\nimport { CommonApiCallsProvider } from '../providers/common.api.calls';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n vendorStatus: any;\r\n loginDisplay:boolean = false;\r\n IsDataLoaded:boolean = false;\r\n loggedInUserName:any ;\r\n claims:any ;\r\n displayedColumns: string[] = ['vendorID','reqID', 'vendorName', 'vendorEmailId', 'requestedBy', 'vendorType', 'dbsChecksRequired', 'travelRequired', 'status', 'requestedDate'];\r\n dataSourcePending: any = [];\r\n dataSourceAll: any = [];\r\n dataSource: any = [];\r\n private readonly _destroying$ = new Subject();\r\n\r\n constructor(private authService: MsalService,private route : Router, private msalBroadcastService: MsalBroadcastService, private appConstants: AppConstants, private router: Router, private api: CommonApiCallsProvider, private dialog: MatDialog) \r\n { \r\n // this.checkAndSetActiveAccount();\r\n //this.setLoginDisplay();\r\n }\r\n\r\n // ngOnInit(): void {\r\n // this.msalBroadcastService.msalSubject$\r\n // .pipe(\r\n // filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS),\r\n // takeUntil(this._destroying$)\r\n // )\r\n // .subscribe((result: EventMessage) => {\r\n // console.log(result);\r\n // const payload = result.payload as AuthenticationResult;\r\n // this.authService.instance.setActiveAccount(payload.account);\r\n // console.log(payload.idToken);\r\n // console.log(payload.accessToken);\r\n // this.authService.instance.acquireTokenSilent(silentRequest).then((response: AuthenticationResult) => {\r\n \r\n // console.log(\"Slient\");\r\n // console.log(response.accessToken);\r\n // console.log(response.account);\r\n // localStorage.setItem(this.appConstants.SESSION_NAME, response.accessToken);\r\n // this.authService.instance.setActiveAccount(response.account);\r\n // });\r\n // });\r\n\r\n // this.msalBroadcastService.inProgress$\r\n // .pipe(\r\n // filter((status: InteractionStatus) => status === InteractionStatus.None)\r\n // )\r\n // .subscribe(() => {\r\n // this.checkAndSetActiveAccount();\r\n // this.setLoginDisplay();\r\n // });\r\n \r\n // this.claims = this.authService.instance.getActiveAccount()?.idTokenClaims;\r\n // this.loggedInUserName = this.claims ? this.claims['name'] : null;\r\n \r\n \r\n // }\r\n\r\n ngOnInit(): void {\r\n // Listen for successful login events\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe((result: EventMessage) => {\r\n console.log(result);\r\n const payload = result.payload as AuthenticationResult;\r\n this.authService.instance.setActiveAccount(payload.account); // Set the active account\r\n console.log(payload.idToken);\r\n console.log(payload.accessToken);\r\n \r\n // Silent token request to acquire token for the active account\r\n this.authService.instance.acquireTokenSilent(silentRequest).then((response: AuthenticationResult) => {\r\n console.log(\"Slient Token Response:\");\r\n console.log(response.accessToken);\r\n localStorage.setItem(this.appConstants.SESSION_NAME, response.accessToken);\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n });\r\n \r\n // Listen for when the authentication status becomes 'None' (i.e., no interaction in progress)\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None)\r\n )\r\n .subscribe(() => {\r\n this.checkAndSetActiveAccount(); // Ensure that the active account is set\r\n this.setLoginDisplay(); // Set the login display state\r\n });\r\n \r\n // At the beginning of the component, check if there's already an active account\r\n this.checkAndSetActiveAccount(); // Ensure an active account is set if available\r\n this.setLoginDisplay(); // Update login display state based on active account\r\n \r\n // Get claims from the active account (if available)\r\n this.claims = this.authService.instance.getActiveAccount()?.idTokenClaims;\r\n this.loggedInUserName = this.claims ? this.claims['name'] : null;\r\n }\r\n \r\n\r\n checkAndSetActiveAccount() {\r\n /**\r\n * If no active account set but there are accounts signed in, sets first account to active account\r\n * To use active account set here, subscribe to inProgress$ first in your component\r\n * Note: Basic usage demonstrated. Your app may require more complicated account selection logic\r\n */\r\n let activeAccount = this.authService.instance.getActiveAccount();\r\n if (!activeAccount && this.authService.instance.getAllAccounts().length > 0) {\r\n let accounts = this.authService.instance.getAllAccounts();\r\n this.authService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n\r\n setLoginDisplay() {\r\n this.claims = this.authService.instance.getActiveAccount()?.idTokenClaims;\r\n // alert(this.loggedInUserName);\r\n this.loggedInUserName = this.claims ? this.claims['name'] : null;\r\n \r\n this.loginDisplay = this.authService.instance.getAllAccounts().length > 0;\r\n // alert(this.loginDisplay);\r\n if (this.loginDisplay && !this.IsDataLoaded){\r\n this.getRequistions();\r\n this.getAllRequistions();\r\n }\r\n }\r\n async getRequistions() {\r\n this.dataSourcePending = []; \r\n await this.api.getRequitions().toPromise().then(data => {\r\n this.dataSourcePending = data || [];\r\n // this.dataSource = data || [];\r\n this.IsDataLoaded = true;\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0){\r\n //alert(\"2\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getRequistions::: Session timeout, Please logout and login back\");\r\n }else if(e.status === 0 && e.statusText === 'Unknown Error'){\r\n console.log(\"2:Service Currently unavailable, Please try later\"); \r\n }else{\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n async getAllRequistions() {\r\n this.dataSourceAll = []; \r\n await this.api.getAllRequitions().toPromise().then(data => {\r\n this.dataSourceAll = data || [];\r\n this.dataSource = data || [];\r\n this.IsDataLoaded = true;\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0){\r\n // alert(\"1\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n // localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n // this.authService.logout();\r\n\r\n }else if(e.status === 0 && e.statusText === 'Unknown Error'){\r\n this.openAlertDialog(\"Service Currently unavailable, Please try later\"); \r\n // this.authService.logout();\r\n }\r\n else{\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n goToContractorProforma(row: any) {\r\n localStorage.setItem(\"ReqID\", JSON.stringify(row.reqID));\r\n this.router.navigateByUrl('/ContractorProforma?ProformaID=' + row.vendorID + '&VendorType=' + row.vendorType)\r\n }\r\n \r\n ShowCompletedProformas(event: any) {\r\n if (event.checked == false) {\r\n this.dataSource = this.dataSourceAll;\r\n }\r\n else{\r\n this.dataSource = this.dataSourcePending;\r\n }\r\n }\r\n\r\n // getClaims(claims: any) {\r\n // console.log(claims);\r\n // this.dataSource = [\r\n // {id: 1, claim: \"Display Name\", value: claims ? claims['name'] : null},\r\n // {id: 2, claim: \"Object ID\", value: claims ? claims['oid']: null},\r\n // {id: 3, claim: \"Job Title\", value: claims ? claims['jobTitle']: null},\r\n // {id: 4, claim: \"City\", value: claims ? claims['city']: null},\r\n // ];\r\n // }\r\n\r\n ngOnDestroy(): void {\r\n this._destroying$.next(undefined);\r\n this._destroying$.complete();\r\n }\r\n // openAlertDialog(ErrorMsg: string) {\r\n // const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n // data: {\r\n // message: ErrorMsg,\r\n // buttonText: {\r\n // cancel: 'OK'\r\n // }\r\n // },\r\n // });\r\n // }\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n // Subscribe to the afterClosed observable\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result === 'OK') {\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout(); // Call logout method upon 'OK' click\r\n }\r\n });\r\n }\r\n \r\n}","\r\n IPPF\r\n Welcome\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n Show Completed Proformas \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Proforma ID {{element.vendorID}} Requition ID {{element.reqID}} Name {{element.vendorName}} Vendor Email Id {{element.vendorEmailId}} Requested By {{element.requestedBy}} Vendor Type {{element.vendorType}} DBS Checks Required {{element.dbsChecksRequired}} Travel Required {{element.travelRequired}} Status {{element.status}} Requested Date {{element.requestedDate}}
\r\n
No Proforma Requests Found
\r\n
\r\n\r\n \r\n ","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-contractor-information',\r\n templateUrl: './contractor-information.component.html',\r\n styleUrls: ['./contractor-information.component.css']\r\n})\r\nexport class ContractorInformationComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n\r\n\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaStatus: any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveAndNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(data);\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n\r\n SaveAndNext() {\r\n this.modelPopupMessages = [];\r\n for (let i = 0; i < this.countries.length; i++) {\r\n if(this.modelAddress.countryID == this.countries[i].id)\r\n {\r\n this.modelAddress.countryName = this.countries[i].name;\r\n break;\r\n }\r\n }\r\n this.model.isCompRegCertificateProvided = \"False\";\r\n this.model.isBusinessPermitProvided = \"False\";\r\n this.model.isTINProvided=\"False\";\r\n\r\n this.model.populateAddress(this.modelAddress);\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy == \"\";\r\n }\r\n }else{\r\n this.model.servicesProvidedBy == \"\";\r\n }\r\n if(!this.validateControls()){\r\n return;\r\n }\r\n \r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n if (this.VendorType == \"Company\") {\r\n const docNo = this.model.certicateOfIncorporationDocuments == undefined ? 0 : this.model.certicateOfIncorporationDocuments.length;\r\n const saveddocNo = this.DocumentsType1 == undefined ? 0 : this.DocumentsType1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Certificate Of Incorporation\";\r\n message.value = \"Please confirm that there is no change in the 'Certificate Of Incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Certificate Of Incorporation Document\");\r\n return;\r\n } \r\n }\r\n }\r\n\r\n if (!this.IsVATRequired) {\r\n this.model.vatRegistrationNumber = \"\";\r\n this.model.vatRegistrationDocuments = [] \r\n }else{\r\n const docNo1 = this.model.vatRegistrationDocuments == undefined ? 0 : this.model.vatRegistrationDocuments.length;\r\n const saveddocNo1 = this.DocumentsType5 == undefined ? 0 : this.DocumentsType5.length;\r\n if (docNo1 == 0 && saveddocNo1 == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"VAT Registration\";\r\n message.value = \"Please confirm that there is no change in the 'VAT Registration'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide VAT Registration Document\");\r\n return;\r\n } \r\n }\r\n } \r\n \r\n if (this.VendorType == \"Sole Trader\") {\r\n const docNo = this.model.personalIdentificationDocuments == undefined ? 0 : this.model.personalIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType2 == undefined ? 0 : this.DocumentsType2.length;\r\n \r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Personal Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Personal Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Personal Identification Document\");\r\n return;\r\n } \r\n }\r\n }\r\n }\r\n \r\n\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n \r\n if(this.VendorType == 'Individual' || 'Company'){\r\n if(this.IsGSTRequired){\r\n const docNo = this.model.gstDocuments_1 == undefined ? 0 : this.model.gstDocuments_1.length;\r\n const saveddocNo = this.DocumentsType25_1 == undefined ? 0 : this.DocumentsType25_1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_1;\r\n this.DocumentsType25 = this.DocumentsType25_1;\r\n this.model.removableGSTDocuments = this.DocumentsType25_2;\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n const docNo = this.model.gstDocuments_2 == undefined ? 0 : this.model.gstDocuments_2.length;\r\n const saveddocNo = this.DocumentsType25_2 == undefined ? 0 : this.DocumentsType25_2.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate for confirming overall turnover is not more !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_2;\r\n this.DocumentsType25 = this.DocumentsType25_2;\r\n this.model.removableGSTDocuments = this.DocumentsType25_1;\r\n }\r\n }\r\n\r\n if(this.VendorType == \"Company\"){\r\n if(this.IsMCARequired){\r\n this.model.isMCARequired = this.IsMCARequired;\r\n const docNo = this.model.mcaDocuments == undefined ? 0 : this.model.mcaDocuments.length;\r\n const saveddocNo = this.DocumentsType26 == undefined ? 0 : this.DocumentsType26.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Corporate Affairs (MCA)\";\r\n message.value = \"Please confirm that there is no change in the 'Corporate Affairs (MCA) certificate of incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Ministry of Corporate Affairs (MCA) certificate of incorporation document !\");\r\n return;\r\n } \r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n const docNo = this.model.compRegCertificateDocuments == undefined ? 0 : this.model.compRegCertificateDocuments.length;\r\n const saveddocNo = this.DocumentsType22 == undefined ? 0 : this.DocumentsType22.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Company Registration Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'Company Registration Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Company Registration Certificate !\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isCompRegCertificateProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n const docNo = this.model.businessPermitDocuments == undefined ? 0 : this.model.businessPermitDocuments.length;\r\n const saveddocNo = this.DocumentsType23 == undefined ? 0 : this.DocumentsType23.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Business Permit\";\r\n message.value = \"Please confirm that there is no change in the 'Business Permit'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Business Permit Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isBusinessPermitProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n if(this.model.taxIdentificationNumber == undefined || this.model.taxIdentificationNumber == null || this.model.taxIdentificationNumber.trim() == \"\"){\r\n this.openAlertDialog(\"Please provide Tax Identification Number to continue !\");\r\n return;\r\n }\r\n const docNo = this.model.taxIdentificationDocuments == undefined ? 0 : this.model.taxIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType24 == undefined ? 0 : this.DocumentsType24.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Tax Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Tax Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Tax Identification Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isTINProvided = \"True\";\r\n }\r\n }\r\n\r\n\r\n const docNo = this.model.companyBankStatementDocuments == undefined ? 0 : this.model.companyBankStatementDocuments.length;\r\n const saveddocNo = this.DocumentsType3 == undefined ? 0 : this.DocumentsType3.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n this.openAlertDialog(\"Please provide Company Bank Statement Document\");\r\n return;\r\n }\r\n\r\n this.openModelPopup();\r\n }\r\n Next() {\r\n this.SaveAndNextClicked.emit(\"1\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openModelPopup() { \r\n \r\n if(this.model.isExistingVendor == \"True\" && this.modelPopupMessages.length > 0){\r\n const dialogRef = this.dialog.open(ModelPopupComponent, {\r\n data:{\r\n messages: this.modelPopupMessages,\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n debugger;\r\n if (confirmed) {\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveAndNextClicked.emit(\"1\");\r\n }\r\n });\r\n }\r\n else{\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveAndNextClicked.emit(\"1\");\r\n } \r\n } \r\n\r\n\r\n onCertificateOfIncorporationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorIncorporationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorIncorporationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporation;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n this.model.certicateOfIncorporationDocuments = [];\r\n }\r\n this.model.certicateOfIncorporationDocuments.push(document);\r\n this.DocumentsType1.push(document);\r\n };\r\n }\r\n\r\n onCertificateOfIncorporationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType1.length;i++){\r\n if(this.DocumentsType1[i].documentName == event.documentName){\r\n this.DocumentsType1.splice(i,1);\r\n }\r\n }\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.certicateOfIncorporationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.certicateOfIncorporationDocuments.length; i++) {\r\n if (this.model.certicateOfIncorporationDocuments[i].documentName == event.documentName) {\r\n this.model.certicateOfIncorporationDocuments.splice(i, 1);\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n\r\n onPersonalIdentificationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorPersonalIdentificationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorPersonalIdentificationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.PersonalIdentification;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = (e) => {\r\n document.documentBase64 = reader.result as string;\r\n\r\n };\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n this.model.personalIdentificationDocuments = [];\r\n }\r\n this.model.personalIdentificationDocuments.push(document);\r\n this.DocumentsType2.push(document);\r\n }\r\n\r\n onPersonalIdentificationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType2.length;i++){\r\n if(this.DocumentsType2[i].documentName == event.documentName){\r\n this.DocumentsType2.splice(i,1);\r\n }\r\n }\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.personalIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.personalIdentificationDocuments.length; i++) {\r\n if (this.model.personalIdentificationDocuments[i].documentName == event.name) {\r\n this.model.personalIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompanyBankStatementFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBankStatement = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBankStatement = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompanyBankStatement;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n this.model.companyBankStatementDocuments = [];\r\n }\r\n this.model.companyBankStatementDocuments.push(document);\r\n this.DocumentsType3.push(document);\r\n };\r\n }\r\n\r\n onCompanyBankStatementFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType3.length;i++){\r\n if(this.DocumentsType3[i].documentName == event.documentName){\r\n this.DocumentsType3.splice(i,1);\r\n }\r\n }\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n return;\r\n }\r\n if (this.model.companyBankStatementDocuments.length > 0) {\r\n for (let i = 0; i < this.model.companyBankStatementDocuments.length; i++) {\r\n if (this.model.companyBankStatementDocuments[i].documentName == event.name) {\r\n this.model.companyBankStatementDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onVATRegistrationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorVAT = true;\r\n return;\r\n }\r\n this.showFileSizeErrorVAT = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.VATRegistrationDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n this.model.vatRegistrationDocuments = [];\r\n }\r\n this.model.vatRegistrationDocuments.push(document);\r\n this.DocumentsType5.push(document);\r\n };\r\n }\r\n\r\n onVATRegistrationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType5.length;i++){\r\n if(this.DocumentsType5[i].documentName == event.documentName){\r\n this.DocumentsType5.splice(i,1);\r\n }\r\n }\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.vatRegistrationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.vatRegistrationDocuments.length; i++) {\r\n if (this.model.vatRegistrationDocuments[i].documentName == event.name) {\r\n this.model.vatRegistrationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTAccepted = true;\r\n return;\r\n }\r\n\r\n this.showFileSizeErrorGSTAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n this.model.gstDocuments_1 = [];\r\n }\r\n this.model.gstDocuments_1.push(document);\r\n this.DocumentsType25_1.push(document);\r\n };\r\n }\r\n\r\n onGSTAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_1.length;i++){\r\n if(this.DocumentsType25_1[i].documentName == event.documentName){\r\n this.DocumentsType25_1.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_1.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_1.length; i++) {\r\n if (this.model.gstDocuments_1[i].documentName == event.name) {\r\n this.model.gstDocuments_1.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTNotAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTNotAccepted = true;\r\n return;\r\n }\r\n this.showFileSizeErrorGSTNotAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n this.model.gstDocuments_2 = [];\r\n }\r\n this.model.gstDocuments_2.push(document);\r\n this.DocumentsType25_2.push(document);\r\n };\r\n }\r\n\r\n onGSTNotAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_2.length;i++){\r\n if(this.DocumentsType25_2[i].documentName == event.documentName){\r\n this.DocumentsType25_2.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_2.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_2.length; i++) {\r\n if (this.model.gstDocuments_2[i].documentName == event.name) {\r\n this.model.gstDocuments_2.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBusinessPermitFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBusinessPermitFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBusinessPermitFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.BussPermit;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n this.model.businessPermitDocuments = [];\r\n }\r\n this.model.businessPermitDocuments.push(document);\r\n this.DocumentsType23.push(document);\r\n };\r\n }\r\n\r\n onBusinessPermitFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType23.length;i++){\r\n if(this.DocumentsType23[i].documentName == event.documentName){\r\n this.DocumentsType23.splice(i,1);\r\n }\r\n }\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n return;\r\n }\r\n if (this.model.businessPermitDocuments.length > 0) {\r\n for (let i = 0; i < this.model.businessPermitDocuments.length; i++) {\r\n if (this.model.businessPermitDocuments[i].documentName == event.name) {\r\n this.model.businessPermitDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onTINFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorTINFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorTINFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.TIN;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n this.model.taxIdentificationDocuments = [];\r\n }\r\n this.model.taxIdentificationDocuments.push(document);\r\n this.DocumentsType24.push(document);\r\n };\r\n }\r\n\r\n onTINFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType24.length;i++){\r\n if(this.DocumentsType24[i].documentName == event.documentName){\r\n this.DocumentsType24.splice(i,1);\r\n }\r\n }\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.taxIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.taxIdentificationDocuments.length; i++) {\r\n if (this.model.taxIdentificationDocuments[i].documentName == event.name) {\r\n this.model.taxIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompRegCertificateFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorCertificate = true;\r\n return;\r\n }\r\n this.showFileSizeErrorCertificate = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompRegCertificate;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n this.model.compRegCertificateDocuments = [];\r\n }\r\n this.model.compRegCertificateDocuments.push(document);\r\n this.DocumentsType22.push(document);\r\n };\r\n }\r\n\r\n onCompRegCertificateFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType22.length;i++){\r\n if(this.DocumentsType22[i].documentName == event.documentName){\r\n this.DocumentsType22.splice(i,1);\r\n }\r\n }\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n return;\r\n }\r\n if (this.model.compRegCertificateDocuments.length > 0) {\r\n for (let i = 0; i < this.model.compRegCertificateDocuments.length; i++) {\r\n if (this.model.compRegCertificateDocuments[i].documentName == event.name) {\r\n this.model.compRegCertificateDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMCAFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorMCAFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorMCAFile = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporationMCA;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n this.model.mcaDocuments = [];\r\n }\r\n this.model.mcaDocuments.push(document);\r\n this.DocumentsType26.push(document);\r\n };\r\n }\r\n\r\n onMCAFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType26.length;i++){\r\n if(this.DocumentsType26[i].documentName == event.documentName){\r\n this.DocumentsType26.splice(i,1);\r\n }\r\n }\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n return;\r\n }\r\n if (this.model.mcaDocuments.length > 0) {\r\n for (let i = 0; i < this.model.mcaDocuments.length; i++) {\r\n if (this.model.mcaDocuments[i].documentName == event.name) {\r\n this.model.mcaDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n keyPressAlphaNumeric(event: any,source : any) {\r\n var inp = String.fromCharCode(event.keyCode);\r\n if((source == 'ESIC' || source == 'MSME') && inp == '-'){\r\n return true;\r\n }\r\n if(source == 'EPF'&& inp == '/'){\r\n return true;\r\n }\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n validateControls() : boolean {\r\n // alert(this.proformaRegion);\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy == \"\";\r\n }\r\n }else{\r\n // alert(\"servicesProvidedBy\");\r\n this.model.servicesProvidedBy == \"\";\r\n }\r\n if(this.model.entityName === undefined || this.model.entityName === null || this.model.entityName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Entity Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationNo === undefined || this.model.companyRegistrationNo === null || this.model.companyRegistrationNo.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.companyRegAddress === undefined || this.model.companyRegistrationAddress.companyRegAddress === null || this.model.companyRegistrationAddress.companyRegAddress.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registered Address to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.city === undefined || this.model.companyRegistrationAddress.city === null || this.model.companyRegistrationAddress.city.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide City to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.postCode === undefined || this.model.companyRegistrationAddress.postCode === null || this.model.companyRegistrationAddress.postCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Postcode to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.countryID === undefined || this.model.companyRegistrationAddress.countryID === null || this.model.companyRegistrationAddress.countryID === 0){\r\n this.openAlertDialog(\"Please select Country to continue !\");\r\n return false;\r\n }\r\n if(this.model.phoneNumber === undefined || this.model.phoneNumber === null || this.model.phoneNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Phone Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.email === undefined || this.model.email === null || this.model.email.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Email Address to continue !\");\r\n return false;\r\n }\r\n if(!this.validateEmail()){\r\n this.openAlertDialog(\"Please provide valid Email Address to continue !\");\r\n return false;\r\n }\r\n\r\n \r\n if(this.VendorType == \"Individual\" || this.VendorType == \"Company\"){\r\n if(this.model.bankAccountName === undefined || this.model.bankAccountName === null || this.model.bankAccountName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Account Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.bankName === undefined || this.model.bankName === null || this.model.bankName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Name to continue !\");\r\n return false;\r\n }\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.sortCode = \"\";\r\n if(this.model.accountType === undefined || this.model.accountType === null || this.model.accountType.trim() === \"\"){\r\n this.openAlertDialog(\"Please select Account Type to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n if(this.model.sortCode === undefined || this.model.sortCode === null || this.model.sortCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Sort Code to continue !\");\r\n return false;\r\n }\r\n else{\r\n this.model.accountType == \"\";\r\n }\r\n }\r\n \r\n if(this.model.accountNumber === undefined || this.model.accountNumber === null || this.model.accountNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Account Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.iban === undefined || this.model.iban === null || this.model.iban.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide IBAN / IFSC to continue !\");\r\n return false;\r\n }\r\n if(this.model.swiftCode === undefined || this.model.swiftCode === null || this.model.swiftCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide SWIFT/BIC Code to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.bankName = \"\";\r\n this.model.sortCode = \"\";\r\n this.model.iban = \"\";\r\n this.model.accountNumber = \"\";\r\n this.model.accountType = \"\";\r\n this.model.swiftCode = \"\";\r\n }\r\n\r\n if (this.IsVATRequired && (this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\")){\r\n if(this.model.vatRegistrationNumber === undefined || this.model.vatRegistrationNumber === null || this.model.vatRegistrationNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide VAT Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n if (this.IsGSTRequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.gstNumber === undefined || this.model.gstNumber === null || this.model.gstNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide GST Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.gstNumber,\"GST Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n }\r\n\r\n if (this.IsEPFRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.epfNumber === undefined || this.model.epfNumber === null || this.model.epfNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.epfNumber.indexOf('/') <0){\r\n this.openAlertDialog(\"Please provide valid EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.epfNumber = \"\";\r\n }\r\n if (this.IsESICRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.esicNumber === undefined || this.model.esicNumber === null || this.model.esicNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.esicNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.esicNumber = \"\";\r\n }\r\n if (this.IsMSMERequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.msmeNumber === undefined || this.model.msmeNumber === null || this.model.msmeNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.msmeNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.msmeNumber = \"\";\r\n }\r\n\r\n\r\n if (this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.panNumber === undefined || this.model.panNumber === null || this.model.panNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide PAN Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.panNumber,\"PAN Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.panNumber = '';\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event : any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if(charCode == 46){\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateEmail() : boolean {\r\n if (this.model.email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(this.model.email).toLowerCase()))\r\n if (re.test(String(this.model.email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n","
\r\n \r\n Entity Name/Supplier Name\r\n \r\n \r\n\r\n \r\n Company registration number\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n First Name\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Company registered address \r\n \r\n \r\n\r\n \r\n City / Town\r\n \r\n \r\n
\r\n
\r\n \r\n Postcode/Zipcode \r\n \r\n \r\n \r\n \r\n Country \r\n \r\n \r\n {{value.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Phone number \r\n \r\n \r\n \r\n Company Email\r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n Are you VAT registered?\r\n \r\n
\r\n Please enter your VAT number and upload evidence of your VAT registration : \r\n \r\n VAT Registration Number\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n Is GST Applicable ? \r\n \r\n
\r\n Please enter your GST number and upload GST Certificate : \r\n \r\n GST Number\r\n \r\n \r\n \r\n
\r\n
\r\n Please provide Certification or undertaking confirming overall turnover is no more than INR 40,00,000 : \r\n \r\n \r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n Are you registered for EPF ? \r\n \r\n
\r\n Please enter your EPF Registration Number : \r\n \r\n EPF Number\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Are you registered for ESIC (Employee State Insurance) ? \r\n \r\n
\r\n Please enter your ESIC Registration Number : \r\n \r\n ESIC Number\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Are you registered with any Government organisation ? \r\n \r\n
\r\n Please provide MSME registration Number : \r\n \r\n MSME Number\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n Are you registered with the Ministry of Corporate Affairs (MCA) ? \r\n \r\n
\r\n Please provide certificate of incorporation : \r\n \r\n \r\n
\r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
Please attach a copy of personal identification and a proof of address e.g. passport, driving licence, utility bill : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}} MB. Please select a smaller file.\r\n
\r\n
\r\n Please attach a Certificate of Incorporation \r\n \r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
VAT Registration Document : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
GST Certificate : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
PAN Number : \r\n \r\n PAN Number\r\n \r\n \r\n \r\n
Please attach your Company Registration Certificate : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
Please attach your Business Permit document : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
Please attach evidence for TIN (Tax Identification Number) : \r\n \r\n \r\n Tax Identification Number\r\n \r\n \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n \r\n \r\n \r\n
Bank Statement : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank Account Name\r\n \r\n \r\n \r\n \r\n \r\n Bank Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Sort Code\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Account Type \r\n \r\n \r\n {{value.value}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n
\r\n \r\n IBAN / IFSC\r\n \r\n \r\n \r\n \r\n \r\n SWIFT/BIC Code \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","export class AppConstants {\r\n\r\n //Mobile\r\n public SESSION_NAME = \"access_token\";\r\n public API_ENDPOINT = \"https://vendormgmt.iautomate.ippf.org:4431/api/\";\r\n \r\n// public API_ENDPOINT = \"https://localhost:44341/api/\";\r\n // public API_ENDPOINT = \"http://localhost:1096/api/\";\r\n public ENDPOINT_LOGIN = \"Users/authenticate\";\r\n public ENDPOINT_REGISTER = \"Users/registeruser\";\r\n \r\n public SERVER_ERROR=\"Something went wrong please try again\";\r\n public ENDPOINT_GET_ALL_REQUISITIONS= \"ContractorProforma/GetAllRequistions\";\r\n public ENDPOINT_GET_REQUISITIONS= \"ContractorProforma/GetRequistions\";\r\n public ENDPOINT_GET_VENDOR_INFORMATION= \"ContractorProforma/getVendorInformation\";\r\n // CONTRACTORINFORMATION01\r\n public ENDPOINT_GET_CONTRACTOR_INFORMATION01= \"ContractorProforma/getcontractorinformation01\";\r\n public ENDPOINT_UPDATE_CONTRACTOR_INFORMATION01= \"ContractorProforma/updatecontractorinformation01\";\r\n // DETAILSOFSERVICE02\r\n public ENDPOINT_GET_DETAILS_OF_SERVICE02= \"ContractorProforma/getdetailsofservice02\";\r\n public ENDPOINT_UPDATE_DETAILS_OF_SERVICE02= \"ContractorProforma/updatedetailsofservice02\";\r\n // FEESANDEXPENSES03\r\n public ENDPOINT_GET_FEES_AND_EXPENSES03= \"ContractorProforma/getfeesandexpenses03\";\r\n public ENDPOINT_UPDATE_FEES_AND_EXPENSES03= \"ContractorProforma/updatefeesandexpenses03\";\r\n // INSURANCE04\r\n public ENDPOINT_GET_INSURANCE04= \"ContractorProforma/getVendorInsuranceDetails04\";\r\n public ENDPOINT_UPDATE_INSURANCE04= \"ContractorProforma/updateVendorInsuranceDetails04\";\r\n // IPPF HEALTH AND POLICIES05\r\n public ENDPOINT_GET_IPPF_HEALTH_AND_POLICIES05= \"ContractorProforma/getippfhealthandpolicies05\";\r\n public ENDPOINT_UPDATE_IPPF_HEALTH_AND_POLICIES05= \"ContractorProforma/updateippfhealthandpolicies05\";\r\n // DISCLOSURE BARRING SERVICE06\r\n public ENDPOINT_GET_DISCLOSURE_BARRING_SERVICE06= \"ContractorProforma/getdisclosurebarringservice06\";\r\n public ENDPOINT_UPDATE_DISCLOSURE_BARRING_SERVICE06= \"ContractorProforma/updatedisclosurebarringservice06\";\r\n // REFERENCE07\r\n public ENDPOINT_GET_REFERENCE07= \"ContractorProforma/getreference07\";\r\n public ENDPOINT_UPDATE_REFERENCE07= \"ContractorProforma/updatereference07\";\r\n // PERSIST HELP INFORMATION\r\n public ENDPOINT_GET_HELP_INFORMATION = \"ContractorProforma/getContractorHelpInformation\"; \r\n public ENDPOINT_PERSIST_HELP_INFORMATION = \"ContractorProforma/saveContractorHelpInformation\"; \r\n\r\n public ENDPOINT_PERSIST_SUBMITTER_INFORMATION = \"ContractorProforma/persistSubmitterInformation\"; \r\n \r\n\r\n public ENDPOINT_GET_DOCUMENTS = \"ContractorProforma/getDocuments\"; \r\n public ENDPOINT_DELETE_DOCUMENT = \"ContractorProforma/deleteDocument\"; \r\n public ENDPOINT_IS_DOCUMENT_EXISTS = \"ContractorProforma/isDocumentIDExists\"; \r\n public ENDPOINT_UPLOAD_DOCUMENT = \"ContractorProforma/uploadDocument\"; \r\n public ENDPOINT_GET_COUNTRIES= \"ContractorProforma/GetCountries\";\r\n public ENDPOINT_GET_CURRENCY= \"ContractorProforma/GetCurrency\";\r\n public ENDPOINT_GET_MAX_NO_OF_MILESTONES= \"ContractorProforma/GetMaxNoOfMileStones\";\r\n public ENDPOINT_GET_HST_OPTIONS= \"ContractorProforma/GetHSTOptions\";\r\n public ENDPOINT_DOWNLOAD_FILE= \"ContractorProforma/downloadFile\";\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.css']\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

Request is not valid. Profroma ID is not matching with vendor email address !

\r\n","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-eseaor-region',\r\n templateUrl: './eseaor-region.component.html',\r\n styleUrls: ['./eseaor-region.component.css']\r\n})\r\nexport class EseaorRegionComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n isHidden = true;\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaStatus: any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(data);\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n\r\n SaveAndNext() {\r\n this.modelPopupMessages = [];\r\n for (let i = 0; i < this.countries.length; i++) {\r\n if(this.modelAddress.countryID == this.countries[i].id)\r\n {\r\n this.modelAddress.countryName = this.countries[i].name;\r\n break;\r\n }\r\n }\r\n this.model.isCompRegCertificateProvided = \"False\";\r\n this.model.isBusinessPermitProvided = \"False\";\r\n this.model.isTINProvided=\"False\";\r\n\r\n this.model.populateAddress(this.modelAddress);\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(!this.validateControls()){\r\n return;\r\n }\r\n \r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n if (this.VendorType == \"Company\") {\r\n const docNo = this.model.certicateOfIncorporationDocuments == undefined ? 0 : this.model.certicateOfIncorporationDocuments.length;\r\n const saveddocNo = this.DocumentsType1 == undefined ? 0 : this.DocumentsType1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Certificate Of Incorporation\";\r\n message.value = \"Please confirm that there is no change in the 'Certificate Of Incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Certificate Of Incorporation Document\");\r\n return;\r\n } \r\n }\r\n }\r\n\r\n if (!this.IsVATRequired) {\r\n this.model.vatRegistrationNumber = \"\";\r\n this.model.vatRegistrationDocuments = [] \r\n }else{\r\n const docNo1 = this.model.vatRegistrationDocuments == undefined ? 0 : this.model.vatRegistrationDocuments.length;\r\n const saveddocNo1 = this.DocumentsType5 == undefined ? 0 : this.DocumentsType5.length;\r\n if (docNo1 == 0 && saveddocNo1 == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"VAT Registration\";\r\n message.value = \"Please confirm that there is no change in the 'VAT Registration'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide VAT Registration Document\");\r\n return;\r\n } \r\n }\r\n } \r\n \r\n if (this.VendorType == \"Sole Trader\") {\r\n const docNo = this.model.personalIdentificationDocuments == undefined ? 0 : this.model.personalIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType2 == undefined ? 0 : this.DocumentsType2.length;\r\n \r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Personal Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Personal Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Personal Identification Document\");\r\n return;\r\n } \r\n }\r\n }\r\n }\r\n \r\n\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n \r\n if(this.VendorType == 'Individual' || 'Company'){\r\n if(this.IsGSTRequired){\r\n const docNo = this.model.gstDocuments_1 == undefined ? 0 : this.model.gstDocuments_1.length;\r\n const saveddocNo = this.DocumentsType25_1 == undefined ? 0 : this.DocumentsType25_1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_1;\r\n this.DocumentsType25 = this.DocumentsType25_1;\r\n this.model.removableGSTDocuments = this.DocumentsType25_2;\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n const docNo = this.model.gstDocuments_2 == undefined ? 0 : this.model.gstDocuments_2.length;\r\n const saveddocNo = this.DocumentsType25_2 == undefined ? 0 : this.DocumentsType25_2.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate for confirming overall turnover is not more !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_2;\r\n this.DocumentsType25 = this.DocumentsType25_2;\r\n this.model.removableGSTDocuments = this.DocumentsType25_1;\r\n }\r\n }\r\n\r\n if(this.VendorType == \"Company\"){\r\n if(this.IsMCARequired){\r\n this.model.isMCARequired = this.IsMCARequired;\r\n const docNo = this.model.mcaDocuments == undefined ? 0 : this.model.mcaDocuments.length;\r\n const saveddocNo = this.DocumentsType26 == undefined ? 0 : this.DocumentsType26.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Corporate Affairs (MCA)\";\r\n message.value = \"Please confirm that there is no change in the 'Corporate Affairs (MCA) certificate of incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Ministry of Corporate Affairs (MCA) certificate of incorporation document !\");\r\n return;\r\n } \r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n const docNo = this.model.compRegCertificateDocuments == undefined ? 0 : this.model.compRegCertificateDocuments.length;\r\n const saveddocNo = this.DocumentsType22 == undefined ? 0 : this.DocumentsType22.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Company Registration Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'Company Registration Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Company Registration Certificate !\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isCompRegCertificateProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n const docNo = this.model.businessPermitDocuments == undefined ? 0 : this.model.businessPermitDocuments.length;\r\n const saveddocNo = this.DocumentsType23 == undefined ? 0 : this.DocumentsType23.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Business Permit\";\r\n message.value = \"Please confirm that there is no change in the 'Business Permit'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Business Permit Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isBusinessPermitProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n if(this.model.taxIdentificationNumber == undefined || this.model.taxIdentificationNumber == null || this.model.taxIdentificationNumber.trim() == \"\"){\r\n this.openAlertDialog(\"Please provide Tax Identification Number to continue !\");\r\n return;\r\n }\r\n const docNo = this.model.taxIdentificationDocuments == undefined ? 0 : this.model.taxIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType24 == undefined ? 0 : this.DocumentsType24.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Tax Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Tax Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Tax Identification Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isTINProvided = \"True\";\r\n }\r\n }\r\n\r\n\r\n const docNo = this.model.companyBankStatementDocuments == undefined ? 0 : this.model.companyBankStatementDocuments.length;\r\n const saveddocNo = this.DocumentsType3 == undefined ? 0 : this.DocumentsType3.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n this.openAlertDialog(\"Please provide Company Bank Statement Document\");\r\n return;\r\n }\r\n\r\n this.openModelPopup();\r\n }\r\n Next() {\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openModelPopup() { \r\n \r\n if(this.model.isExistingVendor == \"True\" && this.modelPopupMessages.length > 0){\r\n const dialogRef = this.dialog.open(ModelPopupComponent, {\r\n data:{\r\n messages: this.modelPopupMessages,\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n debugger;\r\n if (confirmed) {\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n });\r\n }\r\n else{\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n } \r\n } \r\n\r\n\r\n onCertificateOfIncorporationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorIncorporationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorIncorporationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporation;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n this.model.certicateOfIncorporationDocuments = [];\r\n }\r\n this.model.certicateOfIncorporationDocuments.push(document);\r\n this.DocumentsType1.push(document);\r\n };\r\n }\r\n\r\n onCertificateOfIncorporationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType1.length;i++){\r\n if(this.DocumentsType1[i].documentName == event.documentName){\r\n this.DocumentsType1.splice(i,1);\r\n }\r\n }\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.certicateOfIncorporationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.certicateOfIncorporationDocuments.length; i++) {\r\n if (this.model.certicateOfIncorporationDocuments[i].documentName == event.documentName) {\r\n this.model.certicateOfIncorporationDocuments.splice(i, 1);\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n\r\n onPersonalIdentificationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorPersonalIdentificationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorPersonalIdentificationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.PersonalIdentification;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = (e) => {\r\n document.documentBase64 = reader.result as string;\r\n\r\n };\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n this.model.personalIdentificationDocuments = [];\r\n }\r\n this.model.personalIdentificationDocuments.push(document);\r\n this.DocumentsType2.push(document);\r\n }\r\n\r\n onPersonalIdentificationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType2.length;i++){\r\n if(this.DocumentsType2[i].documentName == event.documentName){\r\n this.DocumentsType2.splice(i,1);\r\n }\r\n }\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.personalIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.personalIdentificationDocuments.length; i++) {\r\n if (this.model.personalIdentificationDocuments[i].documentName == event.name) {\r\n this.model.personalIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompanyBankStatementFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBankStatement = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBankStatement = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompanyBankStatement;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n this.model.companyBankStatementDocuments = [];\r\n }\r\n this.model.companyBankStatementDocuments.push(document);\r\n this.DocumentsType3.push(document);\r\n };\r\n }\r\n\r\n onCompanyBankStatementFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType3.length;i++){\r\n if(this.DocumentsType3[i].documentName == event.documentName){\r\n this.DocumentsType3.splice(i,1);\r\n }\r\n }\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n return;\r\n }\r\n if (this.model.companyBankStatementDocuments.length > 0) {\r\n for (let i = 0; i < this.model.companyBankStatementDocuments.length; i++) {\r\n if (this.model.companyBankStatementDocuments[i].documentName == event.name) {\r\n this.model.companyBankStatementDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onVATRegistrationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorVAT = true;\r\n return;\r\n }\r\n this.showFileSizeErrorVAT = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.VATRegistrationDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n this.model.vatRegistrationDocuments = [];\r\n }\r\n this.model.vatRegistrationDocuments.push(document);\r\n this.DocumentsType5.push(document);\r\n };\r\n }\r\n\r\n onVATRegistrationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType5.length;i++){\r\n if(this.DocumentsType5[i].documentName == event.documentName){\r\n this.DocumentsType5.splice(i,1);\r\n }\r\n }\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.vatRegistrationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.vatRegistrationDocuments.length; i++) {\r\n if (this.model.vatRegistrationDocuments[i].documentName == event.name) {\r\n this.model.vatRegistrationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTAccepted = true;\r\n return;\r\n }\r\n\r\n this.showFileSizeErrorGSTAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n this.model.gstDocuments_1 = [];\r\n }\r\n this.model.gstDocuments_1.push(document);\r\n this.DocumentsType25_1.push(document);\r\n };\r\n }\r\n\r\n onGSTAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_1.length;i++){\r\n if(this.DocumentsType25_1[i].documentName == event.documentName){\r\n this.DocumentsType25_1.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_1.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_1.length; i++) {\r\n if (this.model.gstDocuments_1[i].documentName == event.name) {\r\n this.model.gstDocuments_1.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTNotAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTNotAccepted = true;\r\n return;\r\n }\r\n this.showFileSizeErrorGSTNotAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n this.model.gstDocuments_2 = [];\r\n }\r\n this.model.gstDocuments_2.push(document);\r\n this.DocumentsType25_2.push(document);\r\n };\r\n }\r\n\r\n onGSTNotAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_2.length;i++){\r\n if(this.DocumentsType25_2[i].documentName == event.documentName){\r\n this.DocumentsType25_2.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_2.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_2.length; i++) {\r\n if (this.model.gstDocuments_2[i].documentName == event.name) {\r\n this.model.gstDocuments_2.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBusinessPermitFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBusinessPermitFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBusinessPermitFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.BussPermit;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n this.model.businessPermitDocuments = [];\r\n }\r\n this.model.businessPermitDocuments.push(document);\r\n this.DocumentsType23.push(document);\r\n };\r\n }\r\n\r\n onBusinessPermitFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType23.length;i++){\r\n if(this.DocumentsType23[i].documentName == event.documentName){\r\n this.DocumentsType23.splice(i,1);\r\n }\r\n }\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n return;\r\n }\r\n if (this.model.businessPermitDocuments.length > 0) {\r\n for (let i = 0; i < this.model.businessPermitDocuments.length; i++) {\r\n if (this.model.businessPermitDocuments[i].documentName == event.name) {\r\n this.model.businessPermitDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onTINFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorTINFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorTINFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.TIN;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n this.model.taxIdentificationDocuments = [];\r\n }\r\n this.model.taxIdentificationDocuments.push(document);\r\n this.DocumentsType24.push(document);\r\n };\r\n }\r\n\r\n onTINFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType24.length;i++){\r\n if(this.DocumentsType24[i].documentName == event.documentName){\r\n this.DocumentsType24.splice(i,1);\r\n }\r\n }\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.taxIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.taxIdentificationDocuments.length; i++) {\r\n if (this.model.taxIdentificationDocuments[i].documentName == event.name) {\r\n this.model.taxIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompRegCertificateFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorCertificate = true;\r\n return;\r\n }\r\n this.showFileSizeErrorCertificate = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompRegCertificate;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n this.model.compRegCertificateDocuments = [];\r\n }\r\n this.model.compRegCertificateDocuments.push(document);\r\n this.DocumentsType22.push(document);\r\n };\r\n }\r\n\r\n onCompRegCertificateFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType22.length;i++){\r\n if(this.DocumentsType22[i].documentName == event.documentName){\r\n this.DocumentsType22.splice(i,1);\r\n }\r\n }\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n return;\r\n }\r\n if (this.model.compRegCertificateDocuments.length > 0) {\r\n for (let i = 0; i < this.model.compRegCertificateDocuments.length; i++) {\r\n if (this.model.compRegCertificateDocuments[i].documentName == event.name) {\r\n this.model.compRegCertificateDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMCAFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorMCAFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorMCAFile = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporationMCA;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n this.model.mcaDocuments = [];\r\n }\r\n this.model.mcaDocuments.push(document);\r\n this.DocumentsType26.push(document);\r\n };\r\n }\r\n\r\n onMCAFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType26.length;i++){\r\n if(this.DocumentsType26[i].documentName == event.documentName){\r\n this.DocumentsType26.splice(i,1);\r\n }\r\n }\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n return;\r\n }\r\n if (this.model.mcaDocuments.length > 0) {\r\n for (let i = 0; i < this.model.mcaDocuments.length; i++) {\r\n if (this.model.mcaDocuments[i].documentName == event.name) {\r\n this.model.mcaDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n keyPressAlphaNumeric(event: any,source : any) {\r\n var inp = String.fromCharCode(event.keyCode);\r\n if((source == 'ESIC' || source == 'MSME') && inp == '-'){\r\n return true;\r\n }\r\n if(source == 'EPF'&& inp == '/'){\r\n return true;\r\n }\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n validateControls() : boolean {\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n // alert(\"servicesProvidedBy\");\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(this.model.entityName === undefined || this.model.entityName === null || this.model.entityName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Entity Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationNo === undefined || this.model.companyRegistrationNo === null || this.model.companyRegistrationNo.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.companyRegAddress === undefined || this.model.companyRegistrationAddress.companyRegAddress === null || this.model.companyRegistrationAddress.companyRegAddress.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registered Address to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.city === undefined || this.model.companyRegistrationAddress.city === null || this.model.companyRegistrationAddress.city.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide City to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.postCode === undefined || this.model.companyRegistrationAddress.postCode === null || this.model.companyRegistrationAddress.postCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Postcode to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.countryID === undefined || this.model.companyRegistrationAddress.countryID === null ){\r\n this.openAlertDialog(\"Please select Country to continue !\");\r\n return false;\r\n }\r\n if(this.model.phoneNumber === undefined || this.model.phoneNumber === null || this.model.phoneNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Phone Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.email === undefined || this.model.email === null || this.model.email.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Email Address to continue !\");\r\n return false;\r\n }\r\n if(!this.validateEmail()){\r\n this.openAlertDialog(\"Please provide valid Email Address to continue !\");\r\n return false;\r\n }\r\n if (!this.validatePaymentEmailID()) {\r\n return false; // Stop further processing if the email is invalid\r\n }\r\n if(this.VendorType == \"Individual\" || this.VendorType == \"Company\"){\r\n if(this.model.bankAccountName === undefined || this.model.bankAccountName === null || this.model.bankAccountName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Account Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.bankName === undefined || this.model.bankName === null || this.model.bankName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Name to continue !\");\r\n return false;\r\n }\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.sortCode = \"\";\r\n if(this.model.accountType === undefined || this.model.accountType === null || this.model.accountType.trim() === \"\"){\r\n this.openAlertDialog(\"Please select Account Type to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n if(this.model.sortCode === undefined || this.model.sortCode === null || this.model.sortCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Sort Code to continue !\");\r\n return false;\r\n }\r\n else{\r\n this.model.accountType == \"\";\r\n }\r\n }\r\n \r\n if(this.model.accountNumber === undefined || this.model.accountNumber === null || this.model.accountNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Account Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.iban === undefined || this.model.iban === null || this.model.iban.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide IBAN / IFSC to continue !\");\r\n return false;\r\n }\r\n if(this.model.swiftCode === undefined || this.model.swiftCode === null || this.model.swiftCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide SWIFT/BIC Code to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.bankName = \"\";\r\n this.model.sortCode = \"\";\r\n this.model.iban = \"\";\r\n this.model.accountNumber = \"\";\r\n this.model.accountType = \"\";\r\n this.model.swiftCode = \"\";\r\n }\r\n\r\n if (this.IsVATRequired && (this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\")){\r\n if(this.model.vatRegistrationNumber === undefined || this.model.vatRegistrationNumber === null || this.model.vatRegistrationNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide VAT Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n if (this.IsGSTRequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.gstNumber === undefined || this.model.gstNumber === null || this.model.gstNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide GST Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.gstNumber,\"GST Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n }\r\n\r\n if (this.IsEPFRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.epfNumber === undefined || this.model.epfNumber === null || this.model.epfNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.epfNumber.indexOf('/') <0){\r\n this.openAlertDialog(\"Please provide valid EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.epfNumber = \"\";\r\n }\r\n if (this.IsESICRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.esicNumber === undefined || this.model.esicNumber === null || this.model.esicNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.esicNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.esicNumber = \"\";\r\n }\r\n if (this.IsMSMERequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.msmeNumber === undefined || this.model.msmeNumber === null || this.model.msmeNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.msmeNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.msmeNumber = \"\";\r\n }\r\n\r\n\r\n if (this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.panNumber === undefined || this.model.panNumber === null || this.model.panNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide PAN Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.panNumber,\"PAN Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.panNumber = '';\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event : any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if(charCode == 46){\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateEmail() : boolean {\r\n if (this.model.email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(this.model.email).toLowerCase()))\r\n if (re.test(String(this.model.email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n validatePaymentEmailID(): boolean {\r\n if (this.model.paymentNotificationEmailID !== '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const email = String(this.model.paymentNotificationEmailID).toLowerCase();\r\n const isValid = re.test(email);\r\n \r\n console.log(isValid); // Log the validity of the email\r\n \r\n if (!isValid) {\r\n this.openAlertDialog(\"Please provide a valid Email Address to continue!\");\r\n return false;\r\n } else {\r\n // If valid, you can proceed with the logic you need\r\n console.log(\"Valid email:\", email);\r\n // You can send the valid email to another function or service here\r\n this.sendValidEmail(email);\r\n }\r\n } \r\n return true;\r\n}\r\n\r\nsendValidEmail(email: string) {\r\n // Logic to handle the valid email, e.g., send it to the server or store it\r\n console.log(\"Sending valid email:\", email);\r\n}\r\n}\r\n\r\n","
\r\n \r\n Entity Name/Supplier Name\r\n \r\n \r\n\r\n \r\n Company registration number\r\n \r\n \r\n
\r\n
\r\n \r\n First Name\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Company registered address \r\n \r\n \r\n\r\n \r\n City / Town\r\n \r\n \r\n
\r\n
\r\n \r\n Postcode/Zipcode \r\n \r\n \r\n\r\n \r\n Country \r\n \r\n \r\n {{value.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Phone number \r\n \r\n \r\n \r\n Company Email\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Payment notification email ID\r\n \r\n \r\n
\r\n \r\n Services Provided By\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Are you VAT registered?\r\n \r\n
\r\n Please enter your VAT number and upload evidence of your VAT registration : \r\n \r\n VAT Registration Number\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
Please attach a copy of personal identification and a proof of address e.g. passport, driving licence,\r\n utility\r\n bill : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}} MB. Please select a smaller file.\r\n
\r\n
\r\n Please attach a Certificate of Incorporation \r\n \r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
VAT Registration Document : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n \r\n \r\n \r\n
Bank Statement : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank Account Name\r\n \r\n \r\n \r\n \r\n \r\n Bank Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Sort Code\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n
\r\n \r\n IBAN / IFSC\r\n \r\n \r\n \r\n \r\n \r\n SWIFT/BIC Code\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
","export class Address {\r\n addressID: number;\r\n companyRegAddress: string;\r\n city: string;\r\n postCode: string;\r\n countryID: number;\r\n countryName: string;\r\n}\r\n\r\nexport class Country{\r\n id : number;\r\n name : string;\r\n}","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-acro-region',\r\n templateUrl: './acro-region.component.html',\r\n styleUrls: ['./acro-region.component.css']\r\n})\r\nexport class AcroRegionComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n isHidden = true;\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n proformaStatus: any;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(data);\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\" || this.proformaRegion == \"ACRO\"){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n\r\n SaveAndNext() {\r\n this.modelPopupMessages = [];\r\n for (let i = 0; i < this.countries.length; i++) {\r\n if(this.modelAddress.countryID == this.countries[i].id)\r\n {\r\n this.modelAddress.countryName = this.countries[i].name;\r\n break;\r\n }\r\n }\r\n this.model.isCompRegCertificateProvided = \"False\";\r\n this.model.isBusinessPermitProvided = \"False\";\r\n this.model.isTINProvided=\"False\";\r\n\r\n this.model.populateAddress(this.modelAddress);\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(!this.validateControls()){\r\n return;\r\n }\r\n \r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\" || this.proformaRegion == \"ACRO\"){\r\n if (this.VendorType == \"Company\") {\r\n const docNo = this.model.certicateOfIncorporationDocuments == undefined ? 0 : this.model.certicateOfIncorporationDocuments.length;\r\n const saveddocNo = this.DocumentsType1 == undefined ? 0 : this.DocumentsType1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Certificate Of Incorporation\";\r\n message.value = \"Please confirm that there is no change in the 'Certificate Of Incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Certificate Of Incorporation Document\");\r\n return;\r\n } \r\n }\r\n }\r\n\r\n if (!this.IsVATRequired) {\r\n this.model.vatRegistrationNumber = \"\";\r\n this.model.vatRegistrationDocuments = [] \r\n }else{\r\n const docNo1 = this.model.vatRegistrationDocuments == undefined ? 0 : this.model.vatRegistrationDocuments.length;\r\n const saveddocNo1 = this.DocumentsType5 == undefined ? 0 : this.DocumentsType5.length;\r\n if (docNo1 == 0 && saveddocNo1 == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"VAT Registration\";\r\n message.value = \"Please confirm that there is no change in the 'VAT Registration'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide VAT Registration Document\");\r\n return;\r\n } \r\n }\r\n } \r\n \r\n if (this.VendorType == \"Sole Trader\") {\r\n const docNo = this.model.personalIdentificationDocuments == undefined ? 0 : this.model.personalIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType2 == undefined ? 0 : this.DocumentsType2.length;\r\n \r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Personal Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Personal Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Personal Identification Document\");\r\n return;\r\n } \r\n }\r\n }\r\n }\r\n \r\n\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n \r\n if(this.VendorType == 'Individual' || 'Company'){\r\n if(this.IsGSTRequired){\r\n const docNo = this.model.gstDocuments_1 == undefined ? 0 : this.model.gstDocuments_1.length;\r\n const saveddocNo = this.DocumentsType25_1 == undefined ? 0 : this.DocumentsType25_1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_1;\r\n this.DocumentsType25 = this.DocumentsType25_1;\r\n this.model.removableGSTDocuments = this.DocumentsType25_2;\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n const docNo = this.model.gstDocuments_2 == undefined ? 0 : this.model.gstDocuments_2.length;\r\n const saveddocNo = this.DocumentsType25_2 == undefined ? 0 : this.DocumentsType25_2.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate for confirming overall turnover is not more !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_2;\r\n this.DocumentsType25 = this.DocumentsType25_2;\r\n this.model.removableGSTDocuments = this.DocumentsType25_1;\r\n }\r\n }\r\n\r\n if(this.VendorType == \"Company\"){\r\n if(this.IsMCARequired){\r\n this.model.isMCARequired = this.IsMCARequired;\r\n const docNo = this.model.mcaDocuments == undefined ? 0 : this.model.mcaDocuments.length;\r\n const saveddocNo = this.DocumentsType26 == undefined ? 0 : this.DocumentsType26.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Corporate Affairs (MCA)\";\r\n message.value = \"Please confirm that there is no change in the 'Corporate Affairs (MCA) certificate of incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Ministry of Corporate Affairs (MCA) certificate of incorporation document !\");\r\n return;\r\n } \r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n const docNo = this.model.compRegCertificateDocuments == undefined ? 0 : this.model.compRegCertificateDocuments.length;\r\n const saveddocNo = this.DocumentsType22 == undefined ? 0 : this.DocumentsType22.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Company Registration Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'Company Registration Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Company Registration Certificate !\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isCompRegCertificateProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n const docNo = this.model.businessPermitDocuments == undefined ? 0 : this.model.businessPermitDocuments.length;\r\n const saveddocNo = this.DocumentsType23 == undefined ? 0 : this.DocumentsType23.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Business Permit\";\r\n message.value = \"Please confirm that there is no change in the 'Business Permit'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Business Permit Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isBusinessPermitProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n if(this.model.taxIdentificationNumber == undefined || this.model.taxIdentificationNumber == null || this.model.taxIdentificationNumber.trim() == \"\"){\r\n this.openAlertDialog(\"Please provide Tax Identification Number to continue !\");\r\n return;\r\n }\r\n const docNo = this.model.taxIdentificationDocuments == undefined ? 0 : this.model.taxIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType24 == undefined ? 0 : this.DocumentsType24.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Tax Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Tax Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Tax Identification Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isTINProvided = \"True\";\r\n }\r\n }\r\n\r\n\r\n const docNo = this.model.companyBankStatementDocuments == undefined ? 0 : this.model.companyBankStatementDocuments.length;\r\n const saveddocNo = this.DocumentsType3 == undefined ? 0 : this.DocumentsType3.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n this.openAlertDialog(\"Please provide Company Bank Statement Document\");\r\n return;\r\n }\r\n\r\n this.openModelPopup();\r\n }\r\n Next() {\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openModelPopup() { \r\n \r\n if(this.model.isExistingVendor == \"True\" && this.modelPopupMessages.length > 0){\r\n const dialogRef = this.dialog.open(ModelPopupComponent, {\r\n data:{\r\n messages: this.modelPopupMessages,\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n debugger;\r\n if (confirmed) {\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n });\r\n }\r\n else{\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n } \r\n } \r\n\r\n\r\n onCertificateOfIncorporationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorIncorporationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorIncorporationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporation;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n this.model.certicateOfIncorporationDocuments = [];\r\n }\r\n this.model.certicateOfIncorporationDocuments.push(document);\r\n this.DocumentsType1.push(document);\r\n };\r\n }\r\n\r\n onCertificateOfIncorporationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType1.length;i++){\r\n if(this.DocumentsType1[i].documentName == event.documentName){\r\n this.DocumentsType1.splice(i,1);\r\n }\r\n }\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.certicateOfIncorporationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.certicateOfIncorporationDocuments.length; i++) {\r\n if (this.model.certicateOfIncorporationDocuments[i].documentName == event.documentName) {\r\n this.model.certicateOfIncorporationDocuments.splice(i, 1);\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n\r\n onPersonalIdentificationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorPersonalIdentificationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorPersonalIdentificationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.PersonalIdentification;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = (e) => {\r\n document.documentBase64 = reader.result as string;\r\n\r\n };\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n this.model.personalIdentificationDocuments = [];\r\n }\r\n this.model.personalIdentificationDocuments.push(document);\r\n this.DocumentsType2.push(document);\r\n }\r\n\r\n onPersonalIdentificationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType2.length;i++){\r\n if(this.DocumentsType2[i].documentName == event.documentName){\r\n this.DocumentsType2.splice(i,1);\r\n }\r\n }\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.personalIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.personalIdentificationDocuments.length; i++) {\r\n if (this.model.personalIdentificationDocuments[i].documentName == event.name) {\r\n this.model.personalIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompanyBankStatementFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBankStatement = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBankStatement = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompanyBankStatement;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n this.model.companyBankStatementDocuments = [];\r\n }\r\n this.model.companyBankStatementDocuments.push(document);\r\n this.DocumentsType3.push(document);\r\n };\r\n }\r\n\r\n onCompanyBankStatementFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType3.length;i++){\r\n if(this.DocumentsType3[i].documentName == event.documentName){\r\n this.DocumentsType3.splice(i,1);\r\n }\r\n }\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n return;\r\n }\r\n if (this.model.companyBankStatementDocuments.length > 0) {\r\n for (let i = 0; i < this.model.companyBankStatementDocuments.length; i++) {\r\n if (this.model.companyBankStatementDocuments[i].documentName == event.name) {\r\n this.model.companyBankStatementDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onVATRegistrationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorVAT = true;\r\n return;\r\n }\r\n this.showFileSizeErrorVAT = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.VATRegistrationDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n this.model.vatRegistrationDocuments = [];\r\n }\r\n this.model.vatRegistrationDocuments.push(document);\r\n this.DocumentsType5.push(document);\r\n };\r\n }\r\n\r\n onVATRegistrationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType5.length;i++){\r\n if(this.DocumentsType5[i].documentName == event.documentName){\r\n this.DocumentsType5.splice(i,1);\r\n }\r\n }\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.vatRegistrationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.vatRegistrationDocuments.length; i++) {\r\n if (this.model.vatRegistrationDocuments[i].documentName == event.name) {\r\n this.model.vatRegistrationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTAccepted = true;\r\n return;\r\n }\r\n\r\n this.showFileSizeErrorGSTAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n this.model.gstDocuments_1 = [];\r\n }\r\n this.model.gstDocuments_1.push(document);\r\n this.DocumentsType25_1.push(document);\r\n };\r\n }\r\n\r\n onGSTAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_1.length;i++){\r\n if(this.DocumentsType25_1[i].documentName == event.documentName){\r\n this.DocumentsType25_1.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_1.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_1.length; i++) {\r\n if (this.model.gstDocuments_1[i].documentName == event.name) {\r\n this.model.gstDocuments_1.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTNotAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTNotAccepted = true;\r\n return;\r\n }\r\n this.showFileSizeErrorGSTNotAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n this.model.gstDocuments_2 = [];\r\n }\r\n this.model.gstDocuments_2.push(document);\r\n this.DocumentsType25_2.push(document);\r\n };\r\n }\r\n\r\n onGSTNotAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_2.length;i++){\r\n if(this.DocumentsType25_2[i].documentName == event.documentName){\r\n this.DocumentsType25_2.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_2.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_2.length; i++) {\r\n if (this.model.gstDocuments_2[i].documentName == event.name) {\r\n this.model.gstDocuments_2.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBusinessPermitFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBusinessPermitFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBusinessPermitFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.BussPermit;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n this.model.businessPermitDocuments = [];\r\n }\r\n this.model.businessPermitDocuments.push(document);\r\n this.DocumentsType23.push(document);\r\n };\r\n }\r\n\r\n onBusinessPermitFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType23.length;i++){\r\n if(this.DocumentsType23[i].documentName == event.documentName){\r\n this.DocumentsType23.splice(i,1);\r\n }\r\n }\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n return;\r\n }\r\n if (this.model.businessPermitDocuments.length > 0) {\r\n for (let i = 0; i < this.model.businessPermitDocuments.length; i++) {\r\n if (this.model.businessPermitDocuments[i].documentName == event.name) {\r\n this.model.businessPermitDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onTINFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorTINFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorTINFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.TIN;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n this.model.taxIdentificationDocuments = [];\r\n }\r\n this.model.taxIdentificationDocuments.push(document);\r\n this.DocumentsType24.push(document);\r\n };\r\n }\r\n\r\n onTINFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType24.length;i++){\r\n if(this.DocumentsType24[i].documentName == event.documentName){\r\n this.DocumentsType24.splice(i,1);\r\n }\r\n }\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.taxIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.taxIdentificationDocuments.length; i++) {\r\n if (this.model.taxIdentificationDocuments[i].documentName == event.name) {\r\n this.model.taxIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompRegCertificateFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorCertificate = true;\r\n return;\r\n }\r\n this.showFileSizeErrorCertificate = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompRegCertificate;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n this.model.compRegCertificateDocuments = [];\r\n }\r\n this.model.compRegCertificateDocuments.push(document);\r\n this.DocumentsType22.push(document);\r\n };\r\n }\r\n\r\n onCompRegCertificateFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType22.length;i++){\r\n if(this.DocumentsType22[i].documentName == event.documentName){\r\n this.DocumentsType22.splice(i,1);\r\n }\r\n }\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n return;\r\n }\r\n if (this.model.compRegCertificateDocuments.length > 0) {\r\n for (let i = 0; i < this.model.compRegCertificateDocuments.length; i++) {\r\n if (this.model.compRegCertificateDocuments[i].documentName == event.name) {\r\n this.model.compRegCertificateDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMCAFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorMCAFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorMCAFile = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporationMCA;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n this.model.mcaDocuments = [];\r\n }\r\n this.model.mcaDocuments.push(document);\r\n this.DocumentsType26.push(document);\r\n };\r\n }\r\n\r\n onMCAFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType26.length;i++){\r\n if(this.DocumentsType26[i].documentName == event.documentName){\r\n this.DocumentsType26.splice(i,1);\r\n }\r\n }\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n return;\r\n }\r\n if (this.model.mcaDocuments.length > 0) {\r\n for (let i = 0; i < this.model.mcaDocuments.length; i++) {\r\n if (this.model.mcaDocuments[i].documentName == event.name) {\r\n this.model.mcaDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n keyPressAlphaNumeric(event: any,source : any) {\r\n var inp = String.fromCharCode(event.keyCode);\r\n if((source == 'ESIC' || source == 'MSME') && inp == '-'){\r\n return true;\r\n }\r\n if(source == 'EPF'&& inp == '/'){\r\n return true;\r\n }\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n validateControls() : boolean {\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n // alert(\"servicesProvidedBy\");\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(this.model.entityName === undefined || this.model.entityName === null || this.model.entityName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Entity Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationNo === undefined || this.model.companyRegistrationNo === null || this.model.companyRegistrationNo.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.companyRegAddress === undefined || this.model.companyRegistrationAddress.companyRegAddress === null || this.model.companyRegistrationAddress.companyRegAddress.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registered Address to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.city === undefined || this.model.companyRegistrationAddress.city === null || this.model.companyRegistrationAddress.city.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide City to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.postCode === undefined || this.model.companyRegistrationAddress.postCode === null || this.model.companyRegistrationAddress.postCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Postcode to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.countryID === undefined || this.model.companyRegistrationAddress.countryID === null ){\r\n this.openAlertDialog(\"Please select Country to continue !\");\r\n return false;\r\n }\r\n if(this.model.phoneNumber === undefined || this.model.phoneNumber === null || this.model.phoneNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Phone Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.email === undefined || this.model.email === null || this.model.email.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Email Address to continue !\");\r\n return false;\r\n }\r\n \r\n if(!this.validateEmail()){\r\n this.openAlertDialog(\"Please provide valid Email Address to continue !\");\r\n return false;\r\n }\r\n\r\n if (!this.validatePaymentEmailID()) {\r\n return false; // Stop further processing if the email is invalid\r\n }\r\n\r\n if(this.VendorType == \"Individual\" || this.VendorType == \"Company\"){\r\n if(this.model.bankAccountName === undefined || this.model.bankAccountName === null || this.model.bankAccountName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Account Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.bankName === undefined || this.model.bankName === null || this.model.bankName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Name to continue !\");\r\n return false;\r\n }\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.sortCode = \"\";\r\n if(this.model.accountType === undefined || this.model.accountType === null || this.model.accountType.trim() === \"\"){\r\n this.openAlertDialog(\"Please select Account Type to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n if(this.model.sortCode === undefined || this.model.sortCode === null || this.model.sortCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Sort Code to continue !\");\r\n return false;\r\n }\r\n else{\r\n this.model.accountType == \"\";\r\n }\r\n }\r\n \r\n if(this.model.accountNumber === undefined || this.model.accountNumber === null || this.model.accountNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Account Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.iban === undefined || this.model.iban === null || this.model.iban.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide IBAN / IFSC to continue !\");\r\n return false;\r\n }\r\n if(this.model.swiftCode === undefined || this.model.swiftCode === null || this.model.swiftCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide SWIFT/BIC Code to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.bankName = \"\";\r\n this.model.sortCode = \"\";\r\n this.model.iban = \"\";\r\n this.model.accountNumber = \"\";\r\n this.model.accountType = \"\";\r\n this.model.swiftCode = \"\";\r\n }\r\n\r\n if (this.IsVATRequired && (this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\")){\r\n if(this.model.vatRegistrationNumber === undefined || this.model.vatRegistrationNumber === null || this.model.vatRegistrationNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide VAT Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n if (this.IsGSTRequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.gstNumber === undefined || this.model.gstNumber === null || this.model.gstNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide GST Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.gstNumber,\"GST Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n }\r\n\r\n if (this.IsEPFRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.epfNumber === undefined || this.model.epfNumber === null || this.model.epfNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.epfNumber.indexOf('/') <0){\r\n this.openAlertDialog(\"Please provide valid EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.epfNumber = \"\";\r\n }\r\n if (this.IsESICRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.esicNumber === undefined || this.model.esicNumber === null || this.model.esicNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.esicNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.esicNumber = \"\";\r\n }\r\n if (this.IsMSMERequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.msmeNumber === undefined || this.model.msmeNumber === null || this.model.msmeNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.msmeNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.msmeNumber = \"\";\r\n }\r\n\r\n\r\n if (this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.panNumber === undefined || this.model.panNumber === null || this.model.panNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide PAN Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.panNumber,\"PAN Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.panNumber = '';\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event : any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if(charCode == 46){\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateEmail() : boolean {\r\n if (this.model.email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(this.model.email).toLowerCase()))\r\n if (re.test(String(this.model.email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validatePaymentEmailID(): boolean {\r\n if (this.model.paymentNotificationEmailID !== '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const email = String(this.model.paymentNotificationEmailID).toLowerCase();\r\n const isValid = re.test(email);\r\n \r\n console.log(isValid); // Log the validity of the email\r\n \r\n if (!isValid) {\r\n this.openAlertDialog(\"Please provide a valid Email Address to continue!\");\r\n return false;\r\n } else {\r\n // If valid, you can proceed with the logic you need\r\n console.log(\"Valid email:\", email);\r\n // You can send the valid email to another function or service here\r\n this.sendValidEmail(email);\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nsendValidEmail(email: string) {\r\n // Logic to handle the valid email, e.g., send it to the server or store it\r\n console.log(\"Sending valid email:\", email);\r\n}\r\n}\r\n\r\n\r\n","
\r\n \r\n Entity Name/Supplier Name\r\n \r\n \r\n \r\n \r\n Company registration number\r\n \r\n \r\n
\r\n
\r\n \r\n First Name\r\n \r\n \r\n \r\n \r\n Last Name\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Company registered address \r\n \r\n \r\n \r\n \r\n City / Town\r\n \r\n \r\n
\r\n
\r\n \r\n Postcode/Zipcode \r\n \r\n \r\n \r\n \r\n Country \r\n \r\n \r\n {{value.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Phone number \r\n \r\n \r\n \r\n Company Email\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Payment notification email ID\r\n \r\n \r\n
\r\n \r\n Services Provided By\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Are you VAT registered?\r\n \r\n
\r\n Please enter your VAT number and upload evidence of your VAT registration : \r\n \r\n VAT Registration Number\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
Please attach a copy of personal identification and a proof of address e.g. passport, driving licence, utility\r\n bill : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}} MB. Please select a smaller file.\r\n
\r\n
\r\n Please attach a Certificate of Incorporation \r\n \r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
VAT Registration Document : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n \r\n \r\n \r\n
Bank Statement : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank Account Name\r\n \r\n \r\n \r\n \r\n \r\n Bank Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Sort Code\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Account Type \r\n \r\n \r\n {{value.value}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n
\r\n \r\n IBAN / IFSC\r\n \r\n \r\n \r\n \r\n \r\n SWIFT/BIC Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-region-contractor-info',\r\n templateUrl: './region-contractor-info.component.html',\r\n styleUrls: ['./region-contractor-info.component.css']\r\n})\r\nexport class RegionContractorInfoComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n\r\n\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaStatus: any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlENSection:boolean;\r\n ControlACROSection:boolean;\r\n ControlESEAORSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveAndNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(data);\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlENSection = true;\r\n this.ControlACROSection= true;\r\n this.ControlESEAORSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" ){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n if( this.proformaRegion == \"ESEAOR\" ){\r\n this.ControlESEAORSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n if(this.proformaRegion == \"EN\"){\r\n this.ControlENSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n if(this.proformaRegion == \"ACRO\"){\r\n this.ControlACROSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n \r\n\r\n\r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n onSaveAndNextClicked(event:any){\r\n this.SaveAndNextClicked.emit(\"1\");\r\n }\r\n\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n \r\n\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoaderService } from '../loader.service';\r\n\r\n@Component({\r\n selector: 'app-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.css']\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n\r\n constructor(public loader: LoaderService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-saro-region',\r\n templateUrl: './saro-region.component.html',\r\n styleUrls: ['./saro-region.component.css']\r\n})\r\nexport class SaroRegionComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n isHidden = true;\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaStatus: any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(data);\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n\r\n SaveAndNext() {\r\n this.modelPopupMessages = [];\r\n for (let i = 0; i < this.countries.length; i++) {\r\n if(this.modelAddress.countryID == this.countries[i].id)\r\n {\r\n this.modelAddress.countryName = this.countries[i].name;\r\n break;\r\n }\r\n }\r\n this.model.isCompRegCertificateProvided = \"False\";\r\n this.model.isBusinessPermitProvided = \"False\";\r\n this.model.isTINProvided=\"False\";\r\n\r\n this.model.populateAddress(this.modelAddress);\r\n \r\n if(!this.validateControls()){\r\n return;\r\n }\r\n \r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n if (this.VendorType == \"Company\") {\r\n const docNo = this.model.certicateOfIncorporationDocuments == undefined ? 0 : this.model.certicateOfIncorporationDocuments.length;\r\n const saveddocNo = this.DocumentsType1 == undefined ? 0 : this.DocumentsType1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Certificate Of Incorporation\";\r\n message.value = \"Please confirm that there is no change in the 'Certificate Of Incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Certificate Of Incorporation Document\");\r\n return;\r\n } \r\n }\r\n }\r\n\r\n if (!this.IsVATRequired) {\r\n this.model.vatRegistrationNumber = \"\";\r\n this.model.vatRegistrationDocuments = [] \r\n }else{\r\n const docNo1 = this.model.vatRegistrationDocuments == undefined ? 0 : this.model.vatRegistrationDocuments.length;\r\n const saveddocNo1 = this.DocumentsType5 == undefined ? 0 : this.DocumentsType5.length;\r\n if (docNo1 == 0 && saveddocNo1 == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"VAT Registration\";\r\n message.value = \"Please confirm that there is no change in the 'VAT Registration'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide VAT Registration Document\");\r\n return;\r\n } \r\n }\r\n } \r\n \r\n if (this.VendorType == \"Sole Trader\") {\r\n const docNo = this.model.personalIdentificationDocuments == undefined ? 0 : this.model.personalIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType2 == undefined ? 0 : this.DocumentsType2.length;\r\n \r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Personal Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Personal Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Personal Identification Document\");\r\n return;\r\n } \r\n }\r\n }\r\n }\r\n \r\n\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n \r\n if(this.VendorType == 'Individual' || 'Company'){\r\n if(this.IsGSTRequired){\r\n const docNo = this.model.gstDocuments_1 == undefined ? 0 : this.model.gstDocuments_1.length;\r\n const saveddocNo = this.DocumentsType25_1 == undefined ? 0 : this.DocumentsType25_1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_1;\r\n this.DocumentsType25 = this.DocumentsType25_1;\r\n this.model.removableGSTDocuments = this.DocumentsType25_2;\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n const docNo = this.model.gstDocuments_2 == undefined ? 0 : this.model.gstDocuments_2.length;\r\n const saveddocNo = this.DocumentsType25_2 == undefined ? 0 : this.DocumentsType25_2.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate for confirming overall turnover is not more !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_2;\r\n this.DocumentsType25 = this.DocumentsType25_2;\r\n this.model.removableGSTDocuments = this.DocumentsType25_1;\r\n }\r\n }\r\n\r\n if(this.VendorType == \"Company\"){\r\n if(this.IsMCARequired){\r\n this.model.isMCARequired = this.IsMCARequired;\r\n const docNo = this.model.mcaDocuments == undefined ? 0 : this.model.mcaDocuments.length;\r\n const saveddocNo = this.DocumentsType26 == undefined ? 0 : this.DocumentsType26.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Corporate Affairs (MCA)\";\r\n message.value = \"Please confirm that there is no change in the 'Corporate Affairs (MCA) certificate of incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Ministry of Corporate Affairs (MCA) certificate of incorporation document !\");\r\n return;\r\n } \r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n const docNo = this.model.compRegCertificateDocuments == undefined ? 0 : this.model.compRegCertificateDocuments.length;\r\n const saveddocNo = this.DocumentsType22 == undefined ? 0 : this.DocumentsType22.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Company Registration Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'Company Registration Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Company Registration Certificate !\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isCompRegCertificateProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n const docNo = this.model.businessPermitDocuments == undefined ? 0 : this.model.businessPermitDocuments.length;\r\n const saveddocNo = this.DocumentsType23 == undefined ? 0 : this.DocumentsType23.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Business Permit\";\r\n message.value = \"Please confirm that there is no change in the 'Business Permit'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Business Permit Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isBusinessPermitProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n if(this.model.taxIdentificationNumber == undefined || this.model.taxIdentificationNumber == null || this.model.taxIdentificationNumber.trim() == \"\"){\r\n this.openAlertDialog(\"Please provide Tax Identification Number to continue !\");\r\n return;\r\n }\r\n const docNo = this.model.taxIdentificationDocuments == undefined ? 0 : this.model.taxIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType24 == undefined ? 0 : this.DocumentsType24.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Tax Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Tax Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Tax Identification Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isTINProvided = \"True\";\r\n }\r\n }\r\n\r\n\r\n const docNo = this.model.companyBankStatementDocuments == undefined ? 0 : this.model.companyBankStatementDocuments.length;\r\n const saveddocNo = this.DocumentsType3 == undefined ? 0 : this.DocumentsType3.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n this.openAlertDialog(\"Please provide Company Bank Statement Document\");\r\n return;\r\n }\r\n\r\n this.openModelPopup();\r\n }\r\n Next() {\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openModelPopup() { \r\n \r\n if(this.model.isExistingVendor == \"True\" && this.modelPopupMessages.length > 0){\r\n const dialogRef = this.dialog.open(ModelPopupComponent, {\r\n data:{\r\n messages: this.modelPopupMessages,\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n debugger;\r\n if (confirmed) {\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n });\r\n }\r\n else{\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n } \r\n } \r\n\r\n\r\n onCertificateOfIncorporationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorIncorporationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorIncorporationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporation;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n this.model.certicateOfIncorporationDocuments = [];\r\n }\r\n this.model.certicateOfIncorporationDocuments.push(document);\r\n this.DocumentsType1.push(document);\r\n };\r\n }\r\n\r\n onCertificateOfIncorporationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType1.length;i++){\r\n if(this.DocumentsType1[i].documentName == event.documentName){\r\n this.DocumentsType1.splice(i,1);\r\n }\r\n }\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.certicateOfIncorporationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.certicateOfIncorporationDocuments.length; i++) {\r\n if (this.model.certicateOfIncorporationDocuments[i].documentName == event.documentName) {\r\n this.model.certicateOfIncorporationDocuments.splice(i, 1);\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n\r\n onPersonalIdentificationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorPersonalIdentificationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorPersonalIdentificationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.PersonalIdentification;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = (e) => {\r\n document.documentBase64 = reader.result as string;\r\n\r\n };\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n this.model.personalIdentificationDocuments = [];\r\n }\r\n this.model.personalIdentificationDocuments.push(document);\r\n this.DocumentsType2.push(document);\r\n }\r\n\r\n onPersonalIdentificationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType2.length;i++){\r\n if(this.DocumentsType2[i].documentName == event.documentName){\r\n this.DocumentsType2.splice(i,1);\r\n }\r\n }\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.personalIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.personalIdentificationDocuments.length; i++) {\r\n if (this.model.personalIdentificationDocuments[i].documentName == event.name) {\r\n this.model.personalIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompanyBankStatementFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBankStatement = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBankStatement = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompanyBankStatement;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n this.model.companyBankStatementDocuments = [];\r\n }\r\n this.model.companyBankStatementDocuments.push(document);\r\n this.DocumentsType3.push(document);\r\n };\r\n }\r\n\r\n onCompanyBankStatementFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType3.length;i++){\r\n if(this.DocumentsType3[i].documentName == event.documentName){\r\n this.DocumentsType3.splice(i,1);\r\n }\r\n }\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n return;\r\n }\r\n if (this.model.companyBankStatementDocuments.length > 0) {\r\n for (let i = 0; i < this.model.companyBankStatementDocuments.length; i++) {\r\n if (this.model.companyBankStatementDocuments[i].documentName == event.name) {\r\n this.model.companyBankStatementDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onVATRegistrationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorVAT = true;\r\n return;\r\n }\r\n this.showFileSizeErrorVAT = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.VATRegistrationDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n this.model.vatRegistrationDocuments = [];\r\n }\r\n this.model.vatRegistrationDocuments.push(document);\r\n this.DocumentsType5.push(document);\r\n };\r\n }\r\n\r\n onVATRegistrationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType5.length;i++){\r\n if(this.DocumentsType5[i].documentName == event.documentName){\r\n this.DocumentsType5.splice(i,1);\r\n }\r\n }\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.vatRegistrationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.vatRegistrationDocuments.length; i++) {\r\n if (this.model.vatRegistrationDocuments[i].documentName == event.name) {\r\n this.model.vatRegistrationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTAccepted = true;\r\n return;\r\n }\r\n\r\n this.showFileSizeErrorGSTAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n this.model.gstDocuments_1 = [];\r\n }\r\n this.model.gstDocuments_1.push(document);\r\n this.DocumentsType25_1.push(document);\r\n };\r\n }\r\n\r\n onGSTAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_1.length;i++){\r\n if(this.DocumentsType25_1[i].documentName == event.documentName){\r\n this.DocumentsType25_1.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_1.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_1.length; i++) {\r\n if (this.model.gstDocuments_1[i].documentName == event.name) {\r\n this.model.gstDocuments_1.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTNotAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTNotAccepted = true;\r\n return;\r\n }\r\n this.showFileSizeErrorGSTNotAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n this.model.gstDocuments_2 = [];\r\n }\r\n this.model.gstDocuments_2.push(document);\r\n this.DocumentsType25_2.push(document);\r\n };\r\n }\r\n\r\n onGSTNotAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_2.length;i++){\r\n if(this.DocumentsType25_2[i].documentName == event.documentName){\r\n this.DocumentsType25_2.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_2.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_2.length; i++) {\r\n if (this.model.gstDocuments_2[i].documentName == event.name) {\r\n this.model.gstDocuments_2.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBusinessPermitFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBusinessPermitFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBusinessPermitFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.BussPermit;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n this.model.businessPermitDocuments = [];\r\n }\r\n this.model.businessPermitDocuments.push(document);\r\n this.DocumentsType23.push(document);\r\n };\r\n }\r\n\r\n onBusinessPermitFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType23.length;i++){\r\n if(this.DocumentsType23[i].documentName == event.documentName){\r\n this.DocumentsType23.splice(i,1);\r\n }\r\n }\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n return;\r\n }\r\n if (this.model.businessPermitDocuments.length > 0) {\r\n for (let i = 0; i < this.model.businessPermitDocuments.length; i++) {\r\n if (this.model.businessPermitDocuments[i].documentName == event.name) {\r\n this.model.businessPermitDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onTINFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorTINFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorTINFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.TIN;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n this.model.taxIdentificationDocuments = [];\r\n }\r\n this.model.taxIdentificationDocuments.push(document);\r\n this.DocumentsType24.push(document);\r\n };\r\n }\r\n\r\n onTINFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType24.length;i++){\r\n if(this.DocumentsType24[i].documentName == event.documentName){\r\n this.DocumentsType24.splice(i,1);\r\n }\r\n }\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.taxIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.taxIdentificationDocuments.length; i++) {\r\n if (this.model.taxIdentificationDocuments[i].documentName == event.name) {\r\n this.model.taxIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompRegCertificateFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorCertificate = true;\r\n return;\r\n }\r\n this.showFileSizeErrorCertificate = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompRegCertificate;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n this.model.compRegCertificateDocuments = [];\r\n }\r\n this.model.compRegCertificateDocuments.push(document);\r\n this.DocumentsType22.push(document);\r\n };\r\n }\r\n\r\n onCompRegCertificateFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType22.length;i++){\r\n if(this.DocumentsType22[i].documentName == event.documentName){\r\n this.DocumentsType22.splice(i,1);\r\n }\r\n }\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n return;\r\n }\r\n if (this.model.compRegCertificateDocuments.length > 0) {\r\n for (let i = 0; i < this.model.compRegCertificateDocuments.length; i++) {\r\n if (this.model.compRegCertificateDocuments[i].documentName == event.name) {\r\n this.model.compRegCertificateDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMCAFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorMCAFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorMCAFile = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporationMCA;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n this.model.mcaDocuments = [];\r\n }\r\n this.model.mcaDocuments.push(document);\r\n this.DocumentsType26.push(document);\r\n };\r\n }\r\n\r\n onMCAFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType26.length;i++){\r\n if(this.DocumentsType26[i].documentName == event.documentName){\r\n this.DocumentsType26.splice(i,1);\r\n }\r\n }\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n return;\r\n }\r\n if (this.model.mcaDocuments.length > 0) {\r\n for (let i = 0; i < this.model.mcaDocuments.length; i++) {\r\n if (this.model.mcaDocuments[i].documentName == event.name) {\r\n this.model.mcaDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n keyPressAlphaNumeric(event: any,source : any) {\r\n var inp = String.fromCharCode(event.keyCode);\r\n if((source == 'ESIC' || source == 'MSME') && inp == '-'){\r\n return true;\r\n }\r\n if(source == 'EPF'&& inp == '/'){\r\n return true;\r\n }\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n validateControls() : boolean {\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n // alert(\"servicesProvidedBy\");\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(this.model.entityName === undefined || this.model.entityName === null || this.model.entityName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Entity Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationNo === undefined || this.model.companyRegistrationNo === null || this.model.companyRegistrationNo.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.companyRegAddress === undefined || this.model.companyRegistrationAddress.companyRegAddress === null || this.model.companyRegistrationAddress.companyRegAddress.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registered Address to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.city === undefined || this.model.companyRegistrationAddress.city === null || this.model.companyRegistrationAddress.city.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide City to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.postCode === undefined || this.model.companyRegistrationAddress.postCode === null || this.model.companyRegistrationAddress.postCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Postcode to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.countryID === undefined || this.model.companyRegistrationAddress.countryID === null ){\r\n this.openAlertDialog(\"Please select Country to continue !\");\r\n return false;\r\n }\r\n if(this.model.phoneNumber === undefined || this.model.phoneNumber === null || this.model.phoneNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Phone Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.email === undefined || this.model.email === null || this.model.email.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Email Address to continue !\");\r\n return false;\r\n }\r\n if(!this.validateEmail()){\r\n this.openAlertDialog(\"Please provide valid Email Address to continue !\");\r\n return false;\r\n }\r\n if (!this.validatePaymentEmailID()) {\r\n return false; // Stop further processing if the email is invalid\r\n }\r\n\r\n if(this.VendorType == \"Individual\" || this.VendorType == \"Company\"){\r\n if(this.model.bankAccountName === undefined || this.model.bankAccountName === null || this.model.bankAccountName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Account Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.bankName === undefined || this.model.bankName === null || this.model.bankName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Name to continue !\");\r\n return false;\r\n }\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.sortCode = \"\";\r\n if(this.model.accountType === undefined || this.model.accountType === null || this.model.accountType.trim() === \"\"){\r\n this.openAlertDialog(\"Please select Account Type to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n if(this.model.sortCode === undefined || this.model.sortCode === null || this.model.sortCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Sort Code to continue !\");\r\n return false;\r\n }\r\n else{\r\n this.model.accountType == \"\";\r\n }\r\n }\r\n \r\n if(this.model.accountNumber === undefined || this.model.accountNumber === null || this.model.accountNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Account Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.iban === undefined || this.model.iban === null || this.model.iban.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide IBAN / IFSC to continue !\");\r\n return false;\r\n }\r\n if(this.model.swiftCode === undefined || this.model.swiftCode === null || this.model.swiftCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide SWIFT/BIC Code to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.bankName = \"\";\r\n this.model.sortCode = \"\";\r\n this.model.iban = \"\";\r\n this.model.accountNumber = \"\";\r\n this.model.accountType = \"\";\r\n this.model.swiftCode = \"\";\r\n }\r\n\r\n if (this.IsVATRequired && (this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\")){\r\n if(this.model.vatRegistrationNumber === undefined || this.model.vatRegistrationNumber === null || this.model.vatRegistrationNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide VAT Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n if (this.IsGSTRequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.gstNumber === undefined || this.model.gstNumber === null || this.model.gstNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide GST Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.gstNumber,\"GST Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n }\r\n\r\n if (this.IsEPFRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.epfNumber === undefined || this.model.epfNumber === null || this.model.epfNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.epfNumber.indexOf('/') <0){\r\n this.openAlertDialog(\"Please provide valid EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.epfNumber = \"\";\r\n }\r\n if (this.IsESICRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.esicNumber === undefined || this.model.esicNumber === null || this.model.esicNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.esicNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.esicNumber = \"\";\r\n }\r\n if (this.IsMSMERequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.msmeNumber === undefined || this.model.msmeNumber === null || this.model.msmeNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.msmeNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.msmeNumber = \"\";\r\n }\r\n\r\n\r\n if (this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.panNumber === undefined || this.model.panNumber === null || this.model.panNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide PAN Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.panNumber,\"PAN Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.panNumber = '';\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event : any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if(charCode == 46){\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateEmail() : boolean {\r\n if (this.model.email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(this.model.email).toLowerCase()))\r\n if (re.test(String(this.model.email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n // validatepaymentemailID() : boolean {\r\n // if (this.model.paymentNotificationEmailID != '') {\r\n // const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n // console.log(re.test(String(this.model.paymentNotificationEmailID).toLowerCase()))\r\n // if (re.test(String(this.model.paymentNotificationEmailID).toLowerCase()) != true) { \r\n // return false;\r\n // }\r\n // }\r\n // return true;\r\n // }\r\n\r\n validatePaymentEmailID(): boolean {\r\n if (this.model.paymentNotificationEmailID !== '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const email = String(this.model.paymentNotificationEmailID).toLowerCase();\r\n const isValid = re.test(email);\r\n \r\n console.log(isValid); // Log the validity of the email\r\n \r\n if (!isValid) {\r\n this.openAlertDialog(\"Please provide a valid Email Address to continue!\");\r\n return false;\r\n } else {\r\n // If valid, you can proceed with the logic you need\r\n console.log(\"Valid email:\", email);\r\n // You can send the valid email to another function or service here\r\n this.sendValidEmail(email);\r\n }\r\n } \r\n return true;\r\n}\r\n\r\nsendValidEmail(email: string) {\r\n // Logic to handle the valid email, e.g., send it to the server or store it\r\n console.log(\"Sending valid email:\", email);\r\n}\r\n\r\n}\r\n\r\n","
\r\n \r\n Entity Name/Supplier Name\r\n \r\n \r\n\r\n \r\n Company registration number\r\n \r\n \r\n
\r\n
\r\n \r\n First Name\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Company registered address \r\n \r\n \r\n\r\n \r\n City / Town\r\n \r\n \r\n
\r\n
\r\n \r\n Postcode/Zipcode \r\n \r\n \r\n\r\n \r\n Country \r\n \r\n \r\n {{value.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Phone number \r\n \r\n \r\n \r\n Company Email\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Payment notification email ID\r\n \r\n \r\n
\r\n \r\n Services Provided By\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Is GST Applicable ? \r\n \r\n
\r\n Please enter your GST number and upload GST Certificate : \r\n \r\n GST Number\r\n \r\n \r\n \r\n
\r\n
\r\n Please provide Certification or undertaking confirming overall turnover is no more than INR\r\n 40,00,000 : \r\n \r\n \r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Are you registered for EPF ? \r\n \r\n
\r\n Please enter your EPF Registration Number : \r\n \r\n EPF Number\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Are you registered for ESIC (Employee State\r\n Insurance)\r\n ? \r\n \r\n
\r\n Please enter your ESIC Registration Number : \r\n \r\n ESIC Number\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Are you registered with any Government organisation\r\n ?\r\n \r\n \r\n
\r\n Please provide MSME registration Number : \r\n \r\n MSME Number\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n Are you registered with the Ministry of Corporate\r\n Affairs (MCA) ? \r\n \r\n
\r\n Please provide certificate of incorporation : \r\n \r\n \r\n
\r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
GST Certificate : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
PAN Number :\r\n \r\n PAN Number\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
Bank Statement : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank Account Name\r\n \r\n \r\n \r\n \r\n \r\n Bank Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Type \r\n \r\n \r\n {{value.value}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n
\r\n \r\n IBAN / IFSC\r\n \r\n \r\n \r\n \r\n \r\n SWIFT/BIC Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit,EventEmitter,Output } from '@angular/core';\r\nimport { DBSSecurityChecks } from 'src/app/interfaces/dbssecurity-checks';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { AskHelpComponent } from 'src/app/guarded/ask-help/ask-help.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-disclosure-service',\r\n templateUrl: './disclosure-service.component.html',\r\n styleUrls: ['./disclosure-service.component.css']\r\n})\r\nexport class DisclosureServiceComponent implements OnInit {\r\n model = new DBSSecurityChecks();\r\n proformaStatus : any;\r\n disableField : any;\r\n proformaRegion : string;\r\n IsProformaARORegion:boolean;\r\n constructor(private api:CommonApiCallsProvider,private dialog: MatDialog) {\r\n this. getDisclosurebarringservice();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n this.IsProformaARORegion = false;\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n }\r\n @Output()\r\n SaveAndNextClicked: EventEmitter = new EventEmitter();\r\n @Output()\r\n BackClicked: EventEmitter = new EventEmitter();\r\n\r\n PreviousStep(){\r\n this.BackClicked.emit(\"5\");\r\n }\r\n\r\n async getDisclosurebarringservice() {\r\n await this.api.getDisclosurebarringservice06().toPromise().then(data => {\r\n this.model.populateDataJson(data);\r\n this.proformaRegion = this.model.proRegionName;\r\n if(this.proformaRegion == \"ARO\"){\r\n this.IsProformaARORegion = true;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n SaveAndNext(){\r\n this.model.populateDataJson(this.model);\r\n this.api.updateDisclosurebarringservice06(this.model,).subscribe(Response => {\r\n console.log(Response);\r\n });\r\n this.SaveAndNextClicked.emit(\"6\");\r\n }\r\n Next(){\r\n this.SaveAndNextClicked.emit(\"6\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openAskDialog(): void {\r\n let dialogRef = this.dialog.open(AskHelpComponent, {\r\n width: '560px',\r\n data: { }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => { \r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n

DBS checks help IPPF prevent unsuitable people from working with vulnerable groups such as children and adults receiving healthcare services.

\r\n \r\n Confirm a DBS check can be performed if requested \r\n \r\n

IPPF is required to conduct Accuity checks before the services commence.

\r\n\r\n
\r\n \r\n Confirm you consent to IPPF carrying out these security checks on the Contractor, its Individuals and its sub-contractors (if relevant) prior to the services commencing? \r\n\r\n

If these searches identify an adverse finding, IPPF will provide the Contractor with a reasonable opportunity to explain the result before making a decision regarding whether to proceed with the services.

\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
","import { Component, OnInit,Inject } from '@angular/core';\r\nimport { HelpDetails } from 'src/app/interfaces/help-details';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatDialogRef, MAT_DIALOG_DATA,MatDialog } from '@angular/material/dialog';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-ask-help',\r\n templateUrl: './ask-help.component.html',\r\n styleUrls: ['./ask-help.component.css']\r\n})\r\nexport class AskHelpComponent implements OnInit {\r\n model = new HelpDetails();\r\n constructor(private api:CommonApiCallsProvider,public dialogRef: MatDialogRef,private dialog: MatDialog,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { } \r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n Send(){\r\n if(this.model.queryRegarding === undefined || this.model.queryRegarding.length == 0){\r\n this.openAlertDialog(\"Please select your query !\");\r\n return;\r\n }\r\n if(this.model.query === undefined || this.model.query.length == 0){\r\n this.openAlertDialog(\"Please provide your query !\");\r\n return;\r\n }\r\n this.model.queryRegarding = this.getEquivalentQuery();\r\n this.api.saveContractorHelpInformation(this.model,).subscribe(Response => {\r\n this.openAlertDialog(\"Your Query has been received !\");\r\n this.dialogRef.close();\r\n });\r\n }\r\n\r\n onCancel(): void {\r\n this.dialogRef.close();\r\n}\r\n\r\nopenAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n}\r\n\r\n getEquivalentQuery() : any{\r\n switch(this.model.queryRegarding){\r\n case \"CONTRACTORINFORMATION\": return \"CONTRACTOR INFORMATION\";\r\n case \"DETAILSOFSERVICES\": return \"DETAILS OF SERVICES\";\r\n case \"FEESVATANDEXPENSES\": return \"FEES, VAT AND EXPENSES\";\r\n case \"INSURANCE\": return \"INSURANCE\";\r\n case \"IPPFSHEALTHSAFETYANDSECURITYPOLICIES\": return \"IPPF'S HEALTH, SAFETY AND SECURITY POLICIES\";\r\n case \"DISCLOSUREBARRINGSERVICEANDSECURITY\": return \"DISCLOSURE BARRING SERVICE AND SECURITY\";\r\n case \"REFERENCE\": return \"REFERENCE\";\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Query regarding :\r\n \r\n Query regarding\r\n \r\n \r\n
\r\n
\r\n Enter Query\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit, EventEmitter, Output, Inject } from '@angular/core';\r\nimport { ContractorReferenceDetails, ContractorReference } from 'src/app/interfaces/contractor-reference-details';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { SubmitterComponent } from 'src/app/guarded/submitter/submitter.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-reference',\r\n templateUrl: './reference.component.html',\r\n styleUrls: ['./reference.component.css']\r\n})\r\nexport class ReferenceComponent implements OnInit {\r\n model = new ContractorReferenceDetails();\r\n hideReference2 = true;\r\n hideReference3 = true;\r\n disableHidButton = false;\r\n hideRemoveButton2 =true;\r\n proformaStatus: any;\r\n disableField: any;\r\n constructor(private api: CommonApiCallsProvider, private dialog: MatDialog,private route : Router) {\r\n this.getReference();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.model.reference1 = new ContractorReference();\r\n this.model.reference2 = new ContractorReference();\r\n this.model.reference3 = new ContractorReference();\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n }\r\n @Output()\r\n SaveAndNextClicked: EventEmitter = new EventEmitter();\r\n @Output()\r\n BackClicked: EventEmitter = new EventEmitter();\r\n PreviousStep() {\r\n this.BackClicked.emit(\"6\");\r\n }\r\n\r\n populateDataJson(data: any) {\r\n if (data.reference1 != undefined) {\r\n this.model.reference1.name = data.reference1.name;\r\n this.model.reference1.relationship = data.reference1.relationship;\r\n this.model.reference1.phoneNumber = data.reference1.phoneNumber;\r\n this.model.reference1.email = data.reference1.email;\r\n }\r\n else {\r\n this.model.reference1 = new ContractorReference();\r\n }\r\n if (data.reference2 != undefined) {\r\n this.model.reference2.name = data.reference2.name;\r\n this.model.reference2.relationship = data.reference2.relationship;\r\n this.model.reference2.phoneNumber = data.reference2.phoneNumber;\r\n this.model.reference2.email = data.reference2.email;\r\n } else {\r\n this.model.reference2 = new ContractorReference();\r\n }\r\n if (data.reference3 != undefined) {\r\n this.model.reference3.name = data.reference3.name;\r\n this.model.reference3.relationship = data.reference3.relationship;\r\n this.model.reference3.phoneNumber = data.reference3.phoneNumber;\r\n this.model.reference3.email = data.reference3.email;\r\n }\r\n else {\r\n this.model.reference3 = new ContractorReference();\r\n }\r\n if (this.model.reference2.name === \"\") {\r\n this.hideReference2 = true;\r\n }\r\n else {\r\n this.hideReference2 = false;\r\n }\r\n if (this.model.reference3.name === \"\") {\r\n this.hideReference3 = true;\r\n }\r\n else {\r\n this.hideReference3 = false;\r\n }\r\n if (this.hideReference2 == false && this.hideReference3 == false) {\r\n this.disableHidButton = true;\r\n }\r\n }\r\n\r\n async getReference() {\r\n await this.api.getReference07().toPromise().then(data => {\r\n this.populateDataJson(data);\r\n\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async SaveDraft() {\r\n if (!this.ValidateControls()) {\r\n return;\r\n }\r\n this.populateDataJson(this.model);\r\n this.api.updateReference07(this.model).subscribe(Response => { \r\n });\r\n this.route.navigateByUrl('/');\r\n }\r\n\r\n async Submit() {\r\n if (!this.ValidateControls()) {\r\n return;\r\n }\r\n this.openSubmissionDialog();\r\n this.populateDataJson(this.model);\r\n // this.route.navigateByUrl('/');\r\n\r\n }\r\n\r\n AddReference() {\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n if (this.hideReference2 == true) {\r\n this.hideReference2 = false;\r\n this.hideRemoveButton2 = false;\r\n return;\r\n }\r\n if (this.hideReference3 == true) {\r\n this.hideReference3 = false;\r\n this.hideRemoveButton2 =true;\r\n }\r\n if (this.hideReference2 == false && this.hideReference3 == false) {\r\n this.disableHidButton = true;\r\n }\r\n }\r\n\r\n RemoveReference() {\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n \r\n if (this.hideReference3 == false) {\r\n this.hideReference3 = true;\r\n this.hideRemoveButton2 =false;\r\n this.disableHidButton = false;\r\n return;\r\n }\r\n if (this.hideReference2 == false) {\r\n this.hideReference2 = true;\r\n this.disableHidButton = false;\r\n }\r\n \r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openSubmissionDialog(): void {\r\n let dialogRef = this.dialog.open(SubmitterComponent, {\r\n width: '800px',\r\n data: this.model\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n this.ngOnInit();\r\n }\r\n })\r\n }\r\n\r\n ValidateControls(): boolean {\r\n if (!this.ValidateReferenceDetails(this.model.reference1.name, this.model.reference1.relationship,\r\n this.model.reference1.phoneNumber, this.model.reference1.email, \"Reference 1\")) {\r\n return false;\r\n }\r\n\r\n if (this.hideReference2 == false) {\r\n if (!this.ValidateReferenceDetails(this.model.reference2.name, this.model.reference2.relationship,\r\n this.model.reference2.phoneNumber, this.model.reference2.email, \"Reference 2\")) {\r\n return false;\r\n }\r\n }\r\n\r\n if (this.hideReference3 == false) {\r\n if (!this.ValidateReferenceDetails(this.model.reference3.name, this.model.reference3.relationship,\r\n this.model.reference3.phoneNumber, this.model.reference3.email, \"Reference 3\")) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n ValidateReferenceDetails(Name: string, Relationship: string, PhoneNumber: string, Email: string, refence: string): boolean {\r\n if (Name === undefined || Name === null || Name === \"\") {\r\n this.openAlertDialog(\"Please provide \" + refence + \" Name to continue !\");\r\n return false;\r\n }\r\n\r\n if (Relationship === undefined || Relationship === null || Relationship === \"\") {\r\n this.openAlertDialog(\"Please provide \" + refence + \" Relationship to continue !\");\r\n return false;\r\n }\r\n\r\n if (PhoneNumber === undefined || PhoneNumber === null || PhoneNumber === \"\") {\r\n this.openAlertDialog(\"Please provide \" + refence + \" Phone Number to continue !\");\r\n return false;\r\n }\r\n\r\n if (Email === undefined || Email === null || Email === \"\") {\r\n this.openAlertDialog(\"Please provide \" + refence + \" Email Address to continue !\");\r\n return false;\r\n }\r\n if(!this.validateEmail(Email)){\r\n this.openAlertDialog(\"Please provide valid \" + refence + \" Email Address to continue !\");\r\n return false;\r\n }\r\n return true;\r\n }\r\n \r\n preventSpace(event: KeyboardEvent): boolean {\r\n if (event.which === 32 || event.keyCode === 32) {\r\n console.log('Space Detected');\r\n event.preventDefault();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event: any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 46) {\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n validateEmail(email: any) : boolean {\r\n if (email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(email).toLowerCase()))\r\n if (re.test(String(email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","

Please list a recent professional reference that you consent to IPPF contacting directly:

\r\n\r\n
Reference 1:
\r\n\r\n Name (Contractor or Individual)\r\n \r\n \r\n\r\n\r\n Relationship\r\n \r\n \r\n\r\n\r\n Phone number\r\n \r\n \r\n\r\n\r\n Email\r\n \r\n \r\n\r\n\r\n\r\n
Reference 2:
\r\n
\r\n \r\n Name (Contractor or Individual)\r\n \r\n \r\n \r\n \r\n Relationship\r\n \r\n \r\n \r\n \r\n Phone number\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
Reference 3:
\r\n
\r\n \r\n Name (Contractor or Individual)\r\n \r\n \r\n \r\n \r\n Relationship\r\n \r\n \r\n \r\n \r\n Phone number\r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { AppConstants } from '../providers/app.contstants';\r\nimport { MsalBroadcastService, MsalGuardConfiguration, MsalService } from '@azure/msal-angular';\r\nimport { silentRequest } from '../../../auth-config';\r\nimport { AuthenticationResult } from '@azure/msal-browser';\r\nimport { HeaderComponent } from '../header/header.component';\r\n\r\n\r\n@Injectable()\r\nexport class CommonApiCallsProvider {\r\n httpOptions: any;\r\n // token: any = null;\r\n\r\n constructor(private http: HttpClient, private appConstants: AppConstants,\r\n private authService: MsalService, private Header: HeaderComponent) {\r\n\r\n this.updateToken();\r\n\r\n this.httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Authorization': 'Bearer ' + localStorage.getItem(this.appConstants.SESSION_NAME)\r\n })\r\n };\r\n }\r\n\r\n async updateToken() {\r\n var sessionName: any = localStorage.getItem(this.appConstants.SESSION_NAME);\r\n console.log(sessionName);\r\n await this.authService.instance.acquireTokenSilent(silentRequest).then((response: AuthenticationResult) => {\r\n \r\n console.log(\"Slient\");\r\n console.log(response.accessToken);\r\n console.log(response);\r\n localStorage.setItem(this.appConstants.SESSION_NAME, response.accessToken);\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n this.httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Authorization': 'Bearer ' + localStorage.getItem(this.appConstants.SESSION_NAME)\r\n\r\n })\r\n };\r\n // console.log(\"token : \" + this.token);\r\n }\r\n getToken() {\r\n console.log(\"token new : \" + localStorage.getItem(this.appConstants.SESSION_NAME));\r\n return localStorage.getItem(this.appConstants.SESSION_NAME);\r\n }\r\n //WebClient start\r\n\r\n getCountries() { \r\n return this.callGetApiWithoutID(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_COUNTRIES);\r\n }\r\n\r\n getCurrency() { \r\n return this.callGetApiWithoutID(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_CURRENCY);\r\n }\r\n\r\n getMaxNoOfMileStones() { \r\n return this.callGetApiWithoutID(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_MAX_NO_OF_MILESTONES);\r\n }\r\n\r\n // Contractor Information 01\r\n getContractorInformation01() { \r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_CONTRACTOR_INFORMATION01);\r\n }\r\n\r\n getRequitions() {\r\n return this.callGetApiWithoutID(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_REQUISITIONS);\r\n }\r\n\r\n getAllRequitions() {\r\n return this.callGetApiWithoutID(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_ALL_REQUISITIONS);\r\n }\r\n\r\n getVendorInformation() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_VENDOR_INFORMATION);\r\n }\r\n\r\n updateContractorinformation01(data: any) {\r\nconsole.log(\"data..............:>>>\"+ JSON.stringify(data));\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_UPDATE_CONTRACTOR_INFORMATION01, data);\r\n }\r\n\r\n // DETAILS OF SERVICE02\r\n getDetailsofservice02() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_DETAILS_OF_SERVICE02);\r\n }\r\n\r\n updateDetailsofservice02(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_UPDATE_DETAILS_OF_SERVICE02, data);\r\n }\r\n\r\n // FEES AND EXPENSES03\r\n getFeesAndExpenses03() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_FEES_AND_EXPENSES03);\r\n }\r\n\r\n updateFeesAndExpenses03(data: any,) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_UPDATE_FEES_AND_EXPENSES03, data);\r\n }\r\n\r\n // INSURANCE04\r\n getInsurance04() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_INSURANCE04);\r\n }\r\n\r\n updateInsurance04(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_UPDATE_INSURANCE04, data);\r\n }\r\n\r\n // IPPF HEALTH ANDPOLICIES05\r\n getIppfhealthandpolicies05() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_IPPF_HEALTH_AND_POLICIES05);\r\n }\r\n\r\n\r\n updateIppfhealthandpolicies05(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_UPDATE_IPPF_HEALTH_AND_POLICIES05, data);\r\n }\r\n\r\n // DISCLOSURE BARRING SERVICE06\r\n getDisclosurebarringservice06() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_DISCLOSURE_BARRING_SERVICE06);\r\n }\r\n\r\n updateDisclosurebarringservice06(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_UPDATE_DISCLOSURE_BARRING_SERVICE06, data);\r\n }\r\n\r\n // REFERENCE07\r\n getReference07() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_REFERENCE07);\r\n }\r\n\r\n\r\n updateReference07(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_UPDATE_REFERENCE07, data);\r\n }\r\n\r\n getDocuments(documentType: any) {\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n ProformaID = ProformaID.replace(/\\\"/g, \"\");\r\n return this.callGetDocumentApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_DOCUMENTS + \"?ProformaID=\"+ProformaID+\"&DocumentType=\" + documentType);\r\n }\r\n removeDocument(data: any) {\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n ProformaID = ProformaID.replace(/\\\"/g, \"\");\r\n return this.callGetDocumentApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_DELETE_DOCUMENT + \"?ProformaID=\"+ProformaID + \"&DocumentType=\" + data?.docType + \"&DocumentID=\" + data?.documentID + \"&DocumentName=\" + data?.documentName);\r\n }\r\n\r\n // PersistHelpInformation\r\n getContractorHelpInformation() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_HELP_INFORMATION);\r\n }\r\n\r\n getHSTOptions() {\r\n return this.callGetApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_GET_HST_OPTIONS);\r\n }\r\n\r\n downloadFile(data : any) {\r\n return this.downloadFileFromURL(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_DOWNLOAD_FILE,data);\r\n }\r\n\r\n\r\n saveContractorHelpInformation(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_PERSIST_HELP_INFORMATION, data);\r\n }\r\n\r\n saveSubmitterInformation(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_PERSIST_SUBMITTER_INFORMATION, data);\r\n }\r\n\r\n login(data: any) {\r\n return this.callPostApi(this.appConstants.API_ENDPOINT + this.appConstants.ENDPOINT_LOGIN, data);\r\n }\r\n private tokenExpired(token: string) {\r\n const expiry = (JSON.parse(atob(token.split('.')[1]))).exp;\r\n return (Math.floor((new Date).getTime() / 1000)) >= expiry;\r\n }\r\n //WebClient end\r\n callPostApi(url: any, data: any) {\r\n this.CheckAndRenewLicense();\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n data.ProformaID = ProformaID.replace(/\\\"/g, \"\");\r\n return this.http.post(url, data, this.httpOptions);\r\n }\r\n\r\n callGetApi(url: any) {\r\n this.CheckAndRenewLicense();\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n url = url+\"?ProformaID=\"+ProformaID.replace(/\\\"/g, \"\");\r\n return this.http.get(url , this.httpOptions);\r\n }\r\n\r\n callGetApiWithoutID(url: any) {\r\n this.CheckAndRenewLicense();\r\n return this.http.get(url , this.httpOptions);\r\n }\r\n\r\n \r\n downloadFileFromURL(url: any,data : any) {\r\n this.CheckAndRenewLicense();\r\n url = url+\"?url=\"+data;\r\n return this.http.get(url ,{responseType: 'arraybuffer' });\r\n }\r\n\r\n callGetDocumentApi(url: any) {\r\n this.CheckAndRenewLicense();\r\n return this.http.get(url, this.httpOptions);\r\n }\r\n deleteAnyData(url: any) {\r\n this.CheckAndRenewLicense();\r\n \r\n return this.callGetApi(this.appConstants.API_ENDPOINT + url );\r\n }\r\n CheckAndRenewLicense() {\r\n\r\n var sessionName: any = localStorage.getItem(this.appConstants.SESSION_NAME);\r\n\r\n if (sessionName == null || sessionName == '') {\r\n this.Header.login();\r\n }\r\n console.log(this.tokenExpired(sessionName));\r\n if (this.tokenExpired(sessionName)) {\r\n this.authService.instance.acquireTokenSilent(silentRequest).then((response: AuthenticationResult) => {\r\n \r\n console.log(\"Slient\");\r\n console.log(response.accessToken);\r\n console.log(response.account);\r\n localStorage.setItem(this.appConstants.SESSION_NAME, response.accessToken);\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n this.httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Authorization': 'Bearer ' + localStorage.getItem(this.appConstants.SESSION_NAME)\r\n\r\n })\r\n };\r\n }\r\n }\r\n}","import { Component, OnInit, Inject, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { EventMessage, EventType, InteractionType, InteractionStatus, PopupRequest, RedirectRequest, AuthenticationResult, AuthError } from '@azure/msal-browser';\r\n\r\nimport { b2cPolicies, silentRequest } from '../../auth-config';\r\nimport { AppConstants } from './providers/app.contstants';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n isIframe = false;\r\n loginDisplay = false;\r\n private readonly _destroying$ = new Subject();\r\n\r\n constructor(\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\r\n private authService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private appConstants : AppConstants\r\n ) {\r\n this.checkAndSetActiveAccount();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isIframe = window !== window.parent && !window.opener;\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_FAILURE || msg.eventType === EventType.ACQUIRE_TOKEN_FAILURE),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe((result: EventMessage) => {\r\n \r\n console.log(result);\r\n if (result.error instanceof AuthError) {\r\n // Check for forgot password error\r\n // Learn more about AAD error codes at https://docs.microsoft.com/azure/active-directory/develop/reference-aadsts-error-codes\r\n if (result.error.message.includes('AADB2C90118')) {\r\n\r\n // login request with reset authority\r\n let resetPasswordFlowRequest = {\r\n scopes: [\"openid\"],\r\n authority: b2cPolicies.authorities.resetPassword.authority,\r\n }\r\n this.login(resetPasswordFlowRequest);\r\n }\r\n }\r\n });\r\n /**\r\n * You can subscribe to MSAL events as shown below. For more info,\r\n * visit: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/events.md\r\n */\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAndSetActiveAccount();\r\n this.setLoginDisplay();\r\n });\r\n }\r\n setLoginDisplay() {\r\n console.log(this.authService.instance.getAllAccounts());\r\n this.loginDisplay = this.authService.instance.getAllAccounts().length > 0;\r\n \r\n }\r\n login(userFlowRequest?: RedirectRequest | PopupRequest) {\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n if (this.msalGuardConfig.authRequest) {\r\n this.authService.loginPopup({...this.msalGuardConfig.authRequest, ...userFlowRequest} as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n } else {\r\n this.authService.loginPopup(userFlowRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n }); \r\n }\r\n } else {\r\n if (this.msalGuardConfig.authRequest){\r\n \r\n this.authService.loginRedirect({...this.msalGuardConfig.authRequest, ...userFlowRequest} as RedirectRequest)\r\n } else {\r\n this.authService.loginRedirect(userFlowRequest);\r\n }\r\n }\r\n }\r\n checkAndSetActiveAccount() {\r\n /**\r\n * If no active account set but there are accounts signed in, sets first account to active account\r\n * To use active account set here, subscribe to inProgress$ first in your component\r\n * Note: Basic usage demonstrated. Your app may require more complicated account selection logic\r\n */\r\n \r\n let activeAccount = this.authService.instance.getActiveAccount();\r\n if (!activeAccount && this.authService.instance.getAllAccounts().length > 0) {\r\n let accounts = this.authService.instance.getAllAccounts();\r\n this.authService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n logout() {\r\n this.authService.logout();\r\n }\r\n\r\n resetPassword() {\r\n let b2c_1_resetpwFlowRequest = {\r\n scopes: [\"read\"],\r\n authority: b2cPolicies.authorities.resetPassword.authority,\r\n };\r\n this.login(b2c_1_resetpwFlowRequest);\r\n }\r\n\r\n editProfile() {\r\n let editProfileFlowRequest = {\r\n scopes: [\"read\"],\r\n authority: b2cPolicies.authorities.editProfile.authority,\r\n };\r\n this.login(editProfileFlowRequest);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroying$.next(undefined);\r\n this._destroying$.complete();\r\n }\r\n};","\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n","import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { AlertDialogComponent } from \"src/app/alert-dialog/alert-dialog.component\";\r\nimport { Document } from \"src/app/interfaces/document\";\r\nimport { CommonApiCallsProvider } from \"src/app/providers/common.api.calls\";\r\n\r\n@Component({\r\n selector: 'vo-mat-fileUpload',\r\n templateUrl: './fileupload.component.html',\r\n styleUrls: ['./fileupload.component.css']\r\n})\r\nexport class FileuploadComponent {\r\n\r\n @Output() FileSelected: EventEmitter = new EventEmitter();\r\n @Output() FileRemoved: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n mode: any\r\n @Input()\r\n names: any\r\n @Input()\r\n url: any\r\n @Input()\r\n method: any\r\n @Input()\r\n multiple: any\r\n @Input()\r\n disabled: any\r\n @Input()\r\n accept: any\r\n @Input()\r\n maxFileSize: any\r\n @Input()\r\n auto = true\r\n @Input()\r\n withCredentials: any\r\n @Input()\r\n invalidFileSizeMessageSummary: any\r\n @Input()\r\n invalidFileSizeMessageDetail: any\r\n @Input()\r\n invalidFileTypeMessageSummary: any\r\n @Input()\r\n invalidFileTypeMessageDetail: any\r\n @Input()\r\n previewWidth: any\r\n @Input()\r\n chooseLabel = 'Upload'\r\n @Input()\r\n uploadLabel = 'Upload'\r\n @Input()\r\n cancelLabel = 'Cancel'\r\n @Input()\r\n customUpload: any\r\n @Input()\r\n showUploadButton: any\r\n @Input()\r\n showCancelButton: any\r\n\r\n\r\n @Input()\r\n dataUriPrefix: any\r\n @Input()\r\n deleteButtonLabel: any\r\n @Input()\r\n deleteButtonIcon = 'close'\r\n @Input()\r\n showUploadInfo: any\r\n\r\n /**\r\n *\r\n */\r\n\r\n\r\n @ViewChild('fileUpload')\r\n fileUpload: ElementRef | any\r\n\r\n inputFileName: string = \"\";\r\n\r\n @Input()\r\n files: File[] = []\r\n\r\n @Input()\r\n documents: Document[] = [];\r\n\r\n @Input()\r\n disableField: any;\r\n proformaStatus: any;\r\n\r\n @Input()\r\n documentType:any;\r\n\r\n @Input()\r\n currentComplianceStatus: any;\r\n\r\n constructor(private sanitizer: DomSanitizer, private api: CommonApiCallsProvider, private dialog: MatDialog) {\r\n\r\n }\r\n\r\n onClick(event: Event) {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n \r\n if(this.currentComplianceStatus == \"Not Available\"){\r\n return;\r\n }\r\n\r\n if(this.documentType =='4'){\r\n if (this.documents != undefined && this.documents.length > 0) {\r\n this.openAlertDialog(\"Multiple documents are not allowed. Please remove selected document and try again !\")\r\n return;\r\n }\r\n }\r\n \r\n if (this.fileUpload)\r\n this.fileUpload.nativeElement.click()\r\n }\r\n\r\n onInput(event: any) {\r\n\r\n }\r\n\r\n onFileSelected(event: any) {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\r\n this.FileSelected.emit(files[0]);\r\n return;\r\n console.log('event::::::', event)\r\n for (let i = 0; i < files.length; i++) {\r\n let file = files[i];\r\n\r\n //if(!this.isFileSelected(file)){\r\n if (this.validate(file)) {\r\n // if(this.isImage(file)) {\r\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl((window.URL.createObjectURL(files[i])));\r\n // }\r\n if (!this.isMultiple()) {\r\n this.files = []\r\n }\r\n this.files.push(files[i]);\r\n // }\r\n }\r\n //}\r\n }\r\n }\r\n\r\n removeFile(event: any, file: any) {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n this.FileRemoved.emit(file);\r\n return;\r\n let ix\r\n if (this.files && -1 !== (ix = this.files.indexOf(file))) {\r\n this.files.splice(ix, 1)\r\n this.clearInputElement()\r\n }\r\n }\r\n\r\n removeDocument(event: any, file: any) {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n this.api.removeDocument(file).subscribe(Response => {\r\n let ix\r\n if (this.documents && -1 !== (ix = this.documents.indexOf(file))) {\r\n this.documents.splice(ix, 1)\r\n this.clearInputElement()\r\n }\r\n });\r\n this.FileRemoved.emit(file);\r\n // this.api.removeDocument(file).toPromise().then(data => {\r\n // if (data) {\r\n\r\n // this.FileRemoved.emit(file);\r\n // let ix\r\n // if (this.documents && -1 !== (ix = this.documents.indexOf(file))) {\r\n // this.documents.splice(ix, 1)\r\n // this.clearInputElement()\r\n // }\r\n // }\r\n // }).catch((e) => {\r\n // console.log(e);\r\n // this.openAlertDialog(e.message);\r\n // });\r\n\r\n\r\n }\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n removeAllFiles() {\r\n this.files = [];\r\n }\r\n\r\n validate(file: File) {\r\n for (const f of this.files) {\r\n if (f.name === file.name\r\n && f.lastModified === file.lastModified\r\n && f.size === f.size\r\n && f.type === f.type\r\n ) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n\r\n clearInputElement() {\r\n this.fileUpload.nativeElement.value = ''\r\n }\r\n\r\n\r\n isMultiple(): boolean {\r\n return this.multiple\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n {{f.name}}\r\n \r\n
\r\n
\r\n {{f.documentName}}\r\n \r\n
","import { Component, OnInit,EventEmitter,Output } from '@angular/core';\r\nimport { IPPFPolicyProcedures,HSTOptions } from 'src/app/interfaces/ppfpolicy-procedures';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Document } from \"src/app/interfaces/document\";\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-ippfhealth-and-safety',\r\n templateUrl: './ippfhealth-and-safety.component.html',\r\n styleUrls: ['./ippfhealth-and-safety.component.css']\r\n})\r\nexport class IPPFHealthAndSafetyComponent implements OnInit {\r\n model = new IPPFPolicyProcedures();\r\n types : string[] = [];\r\n hstCheckBoxOptions : HSTOptions[] = [];\r\n hstShowOption : HSTOptions[] = [];\r\n proformaStatus : any;\r\n disableField : any;\r\n constructor(private api:CommonApiCallsProvider, private dialog: MatDialog,private sanitizer: DomSanitizer,private appConstants: AppConstants,public authService: MsalService) { \r\n this.getHSTOptions();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n }\r\n @Output()\r\n SaveAndNextClicked: EventEmitter = new EventEmitter();\r\n @Output()\r\n BackClicked: EventEmitter = new EventEmitter();\r\n \r\n PreviousStep(){\r\n this.BackClicked.emit(\"3\");\r\n }\r\n\r\n\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n \r\n\r\n Next(){\r\n this.SaveAndNextClicked.emit(\"5\");\r\n }\r\n SaveAndNext(){\r\n this.model.values = \"\";\r\n //this.model.populateDataJson(this.model);\r\n for(let i=0;i {\r\n console.log(Response);\r\n });\r\n this.SaveAndNextClicked.emit(\"5\");\r\n }\r\n\r\n async getHSTOptions() {\r\n await this.api.getHSTOptions().toPromise().then(data => {\r\n this.populateHSTOptions(data); \r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0){\r\n // alert(\"6\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n }else{\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n async downloadFileFromURL(url : any) {\r\n await this.api.downloadFile(url).toPromise().then(data => {\r\n const a = document.createElement(\"a\");\r\n const blob = new Blob([data], { type: 'application/pdf' });\r\n const url1= window.URL.createObjectURL(blob);\r\n window.open(url1);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0){\r\n // alert(\"7\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"downloadFileFromURL::: Session timeout, Please logout and login back\");\r\n }else{\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateHSTOptions(data : any){\r\n let localtypes : string[] = [];;\r\n for(let i=0;i localtypes.indexOf(item) === index); \r\n }\r\n }\r\n\r\n onLinkClick(event : any){\r\n for(let i=0;i \r\n alert(data));\r\n }\r\n }\r\n }\r\n }\r\n\r\n NavigateUrl(url : any,isUrl : boolean){\r\n if(isUrl === true){\r\n window.open(url, \"_blank\");\r\n }\r\n else{\r\n this.downloadFileFromURL(url).then(data => \r\n alert(data));\r\n // this.api.downloadFile(url).subscribe(Response => {\r\n // this.openAlertDialog(\"File downloaded !\");\r\n // window.open(url, \"_blank\");\r\n // });\r\n } \r\n }\r\n\r\n \r\n}\r\n","
Please read all the policies and related documents before proceeding
\r\n
\r\n
{{type}}
\r\n
\r\n
\r\n
\r\n {{value.title}}\r\n
\r\n \r\n {{value.wording}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{value.title}}\r\n
\r\n
{{value.wording}}
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
","import { NumberInput } from \"@angular/cdk/coercion\";\r\n\r\nexport enum DocumentType {\r\n None,\r\n CertificateOfIncorporation,\r\n PersonalIdentification,\r\n CompanyBankStatement,\r\n Insurance,\r\n VATRegistrationDocument,\r\n AccuityReport,\r\n DBSChecks,\r\n IR35Assessment,\r\n TOR,\r\n CVs,\r\n Other,\r\n ESignedContracts,\r\n VendorProforma,\r\n CommissioningForm,\r\n SupportingDocumentMilestone,\r\n SupportingDocCompWaiver,\r\n DonorAuthCompWaiver,\r\n DonorAuthInsWaiver,\r\n InsuranceWaiver,\r\n CompetitiveProcessWaiver,\r\n SupportingDocumentPaymentMilestone,\r\n CompRegCertificate,\r\n BussPermit,\r\n TIN,\r\n GSTDocument,\r\n CertificateOfIncorporationMCA\r\n}\r\n\r\nexport class Document {\r\n proformaID: number;\r\n documentID: number;\r\n docType: DocumentType;\r\n documentName: string;\r\n fileExention: string;\r\n fileType: string;\r\n documentBase64: string;\r\n documentSection: string;\r\n}\r\n","export class HelpDetails {\r\n ProformaID: number;\r\n queryRegarding: string;\r\n query: string;\r\n createDate: string;\r\n}","export class DBSSecurityChecks {\r\n proformaID: number;\r\n dBSCertificateConfirmation: boolean;\r\n iPPFSecurityChecks: boolean;\r\n showDBSCheckBox : boolean;\r\n proRegionName : string;\r\n populateDataJson(data:any) {\r\n this.dBSCertificateConfirmation = data.dBSCertificateConfirmation;\r\n this.iPPFSecurityChecks = data.iPPFSecurityChecks;\r\n this.showDBSCheckBox = data.showDBSCheckBox;\r\n this.proRegionName = data.proRegionName;\r\n }\r\n}","export class ServiceDetails {\r\n proformaID: number;\r\n location: string;\r\n detailsOfService: string;\r\n commencementDate: string;\r\n anticipatedCompletionDate: string;\r\n daysRequiredToCompletework: number;\r\n ippfStaff: string;\r\n isOwnEquipmentUsed: string;\r\n isServicesProvidedToClients: string;\r\n isContractorAgreedForSDSAssessment: string;\r\n isSubstitutesRequired: string;\r\n isTravelRequired: string;\r\n travelDetails: string;\r\n populateDataJson(data:any) {\r\n this.location = data.location;\r\n this.commencementDate= data.commencementDate;\r\n this.anticipatedCompletionDate= data.anticipatedCompletionDate;\r\n this.daysRequiredToCompletework= data.daysRequiredToCompletework;\r\n this.ippfStaff= data.ippfStaff;\r\n this.isOwnEquipmentUsed= data.isOwnEquipmentUsed;\r\n this.isServicesProvidedToClients= data.isServicesProvidedToClients;\r\n this.isContractorAgreedForSDSAssessment= data.isContractorAgreedForSDSAssessment;\r\n this.isSubstitutesRequired= data.isSubstitutesRequired;\r\n this.isTravelRequired= data.isTravelRequired;\r\n this.travelDetails= data.travelDetails;\r\n this.detailsOfService = data.detailsOfService;\r\n\r\n }\r\n}","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { VendorDetails } from \"../interfaces/vendor-details\";\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute} from '@angular/router';\r\nimport { AskHelpComponent } from 'src/app/guarded/ask-help/ask-help.component';\r\nimport { ShowContractorProformaHeaderService } from '../show-contractor-proforma-header.service';\r\nimport { ThrowStmt } from '@angular/compiler';\r\n\r\n\r\n@Component({\r\n selector: 'app-contractorproforma',\r\n templateUrl: './contractorproforma.component.html',\r\n styleUrls: ['./contractorproforma.component.css']\r\n})\r\nexport class ContractorProformaComponent implements OnInit {\r\n currentStep = \"0\";\r\n currentHeightClass: string = 'height-86';\r\n ProgressBarvalue = 0;\r\n RunningStep = 1;\r\n isLinear = false;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n thirdFormGroup!: FormGroup;\r\n fourthFormGroup!: FormGroup;\r\n fiveFormGroup!: FormGroup;\r\n sixFormGroup!: FormGroup;\r\n sevenFormGroup!: FormGroup;\r\n eightFormGroup!: FormGroup;\r\n vendorDetails: VendorDetails;\r\n ProformaID: number;\r\n VendorType : string ;\r\n constructor(private route: ActivatedRoute,private _formBuilder: FormBuilder, private api: CommonApiCallsProvider,private dialog: MatDialog,public sph: ShowContractorProformaHeaderService) {\r\n console.log(localStorage.getItem(\"access_token\"));\r\n sph.UpdateValue(true);\r\n this.vendorDetails = new VendorDetails();\r\n this.vendorDetails.proVendorName = \"\";\r\n this.vendorDetails.proReqBy = \"\";\r\n this.vendorDetails.proStatus = \"\";\r\n }\r\n \r\n ngOnInit() {\r\n this.route.queryParams.subscribe(params => {\r\n this.ProformaID = params['ProformaID'];\r\n this.VendorType = params['VendorType'];\r\n localStorage.setItem(\"ProformaID\", JSON.stringify(this.ProformaID));\r\n localStorage.setItem(\"VendorType\", JSON.stringify(this.VendorType));\r\n });\r\n this.getVendornfo();\r\n this.firstFormGroup = this._formBuilder.group({\r\n firstCtrl: ['', Validators.required]\r\n });\r\n this.secondFormGroup = this._formBuilder.group({\r\n secondCtrl: ['', Validators.required]\r\n });\r\n this.thirdFormGroup = this._formBuilder.group({\r\n thirdCtrl: ['', Validators.required]\r\n });\r\n this.fourthFormGroup = this._formBuilder.group({\r\n fourthCtrl: ['', Validators.required]\r\n });\r\n this.fiveFormGroup = this._formBuilder.group({\r\n fiveCtrl: ['', Validators.required]\r\n });\r\n this.sixFormGroup = this._formBuilder.group({\r\n sixCtrl: ['', Validators.required]\r\n });\r\n this.sevenFormGroup = this._formBuilder.group({\r\n sevenCtrl: ['', Validators.required]\r\n });\r\n this.eightFormGroup = this._formBuilder.group({\r\n eightCtrl: ['', Validators.required]\r\n });\r\n }\r\n @ViewChild('stepper') private myStepper: MatStepper;\r\n goBack() {\r\n this.myStepper.previous();\r\n }\r\n goForward() {\r\n this.myStepper.next();\r\n }\r\n valueEmittedFromChildComponent: string = '';\r\n NextStepEventHandlerFunction(valueEmitted: any) {\r\n this.currentStep = valueEmitted;\r\n if (this.currentStep === \"1\" || this.currentStep === \"3\") {\r\n this.currentHeightClass = 'height-86';\r\n } else if (this.currentStep === \"2\") {\r\n this.currentHeightClass = 'height-102';\r\n }\r\n this.ProgressBarvalue = parseInt(this.currentStep) + 1;\r\n this.ProgressBarvalue = Math.round(this.ProgressBarvalue / 7 * 100);\r\n this.RunningStep = parseInt(this.currentStep) + 1;\r\n this.goForward();\r\n \r\n }\r\n PreviousStepEventHandlerFunction(valueEmitted: any) {\r\n this.currentStep = valueEmitted;\r\n if (this.currentStep === \"0\" || this.currentStep === \"4\") {\r\n this.currentHeightClass = 'height-96';\r\n } else {\r\n this.currentHeightClass = 'height-86';\r\n }\r\n this.ProgressBarvalue = parseInt(this.currentStep) - 1;\r\n this.ProgressBarvalue = Math.round(this.ProgressBarvalue / 7 * 100);\r\n this.RunningStep = parseInt(this.currentStep) + 1;\r\n this.goBack();\r\n }\r\n public onStepChange(event: any): void {\r\n console.log(this.currentStep);\r\n this.currentStep = event.selectedIndex.toString();\r\n this.ProgressBarvalue = event.selectedIndex + 1;\r\n this.ProgressBarvalue = Math.round(this.ProgressBarvalue / 7 * 100);\r\n this.RunningStep = parseInt(event.selectedIndex) + 1;\r\n console.log(this.currentStep);\r\n }\r\n populateVendorDataJson(data: any) {\r\n //this.HideToolTip = false;\r\n this.vendorDetails.proVendorName = data.proVendorName;\r\n this.vendorDetails.proVendorEmail = data.proVendorEmail;\r\n this.vendorDetails.proProjectCode = data.proProjectCode;\r\n this.vendorDetails.proReqBy = data.proReqBy;\r\n this.vendorDetails.proReqOn = data.proReqOn;\r\n this.vendorDetails.proCompletionBy = data.proCompletionBy;\r\n this.vendorDetails.proStatus = data.proStatus == 'Proforma requested' ? 'Proforma in progress' : data.proStatus;\r\n this.vendorDetails.proVendorType = data.proVendorType;\r\n this.vendorDetails.proDBSChecksRequired = data.proDBSChecksRequired;\r\n this.vendorDetails.proTravelRequired = data.proTravelRequired;\r\n this.vendorDetails.proNotesToVendor = data.proNotesToVendor;\r\n this.vendorDetails.completeNotesToVendor = data.completeNotesToVendor;\r\n this.vendorDetails.proRegionID = data.proRegionID;\r\n this.vendorDetails.proRegionName = data.proRegionName;\r\n }\r\n async getVendornfo() {\r\n // alert('getVendornfo');\r\n\r\n await this.api.getVendorInformation().toPromise().then(data => {\r\n this.vendorDetails = new VendorDetails(); \r\n this.populateVendorDataJson(data);\r\n localStorage.setItem(\"ProformaStatus\", JSON.stringify(this.vendorDetails.proStatus));\r\n console.log('ProformaStatus Local storage updated' + JSON.stringify(this.vendorDetails));\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openAskDialog(): void {\r\n let dialogRef = this.dialog.open(AskHelpComponent, {\r\n width: '560px',\r\n data: { }\r\n }); \r\n dialogRef.afterClosed().subscribe(result => { \r\n });\r\n }\r\n\r\n \r\n\r\n}\r\n","\r\n
\r\n \r\n

Status {{this.RunningStep}} /7

\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
{{vendorDetails.completeNotesToVendor}}
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n CONTRACTOR INFORMATION \r\n \r\n DETAILS OF SERVICES\r\n \r\n FEES, VAT AND EXPENSES\r\n \r\n INSURANCE\r\n \r\n IPPF'S HEALTH, SAFETY AND SECURITY POLICIES\r\n \r\n \r\n DISCLOSURE BARRING SERVICE AND SECURITY\r\n \r\n REFERENCE\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { HomeComponent } from './home/home.component';\r\n\r\nimport {HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { IPublicClientApplication, PublicClientApplication, InteractionType } from '@azure/msal-browser';\r\nimport { MsalGuard,MsalInterceptor, MsalBroadcastService, MsalModule, MsalService, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MsalGuardConfiguration, MsalRedirectComponent, MsalInterceptorConfiguration, MSAL_INTERCEPTOR_CONFIG } from '@azure/msal-angular';\r\n\r\nimport { msalConfig, loginRequest, protectedResources } from '../../auth-config';\r\nimport { ContractorProformaModule } from './guarded/ContractorProforma.module';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { CommonApiCallsProvider } from './providers/common.api.calls';\r\nimport { AppConstants } from './providers/app.contstants';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AlertDialogComponent } from './alert-dialog/alert-dialog.component';\r\nimport { ModelPopupComponent } from './model-popup/model-popup.component';\r\n// import { MatIconModule } from '@angular/material/icon';\r\n// import { MatInputModule } from '@angular/material/input';\r\n// import {MatAutocompleteModule} from '@angular/material/autocomplete';\r\n// import {MatBadgeModule} from '@angular/material/badge';\r\n// import {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\n// import {MatButtonToggleModule} from '@angular/material/button-toggle';\r\n// import {MatCheckboxModule} from '@angular/material/checkbox';\r\n// import {MatChipsModule} from '@angular/material/chips';\r\n// import {MatStepperModule} from '@angular/material/stepper';\r\n// import {MatDatepickerModule} from '@angular/material/datepicker';\r\n import {MatDialogModule} from '@angular/material/dialog';\r\nimport { SpinnerComponent } from './loader/spinner/spinner.component';\r\nimport { LoadingInterceptor } from './loader/loading.interceptor';\r\nimport { HelpComponent } from './help/help.component';\r\nimport { ErrorComponent } from './error/error.component';\r\n// import {MatDividerModule} from '@angular/material/divider';\r\n// import {MatExpansionModule} from '@angular/material/expansion';\r\n// import {MatGridListModule} from '@angular/material/grid-list';\r\n// import {MatMenuModule} from '@angular/material/menu';\r\n// import {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\r\n// import {MatPaginatorModule} from '@angular/material/paginator';\r\n// import {MatProgressBarModule} from '@angular/material/progress-bar';\r\n// import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\n// import {MatRadioModule} from '@angular/material/radio';\r\n// import {MatSelectModule} from '@angular/material/select';\r\n// import {MatSidenavModule} from '@angular/material/sidenav';\r\n// import {MatSliderModule} from '@angular/material/slider';\r\n// import {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\n// import {MatSnackBarModule} from '@angular/material/snack-bar';\r\n// import {MatSortModule} from '@angular/material/sort';\r\n// import {MatTabsModule} from '@angular/material/tabs';\r\n// import {MatTooltipModule} from '@angular/material/tooltip';\r\n// import {MatTreeModule} from '@angular/material/tree';\r\n\r\n/**\r\n * Here we pass the configuration parameters to create an MSAL instance.\r\n * For more info, visit: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/configuration.md\r\n */\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication(msalConfig);\r\n}\r\n\r\n/**\r\n* MSAL Angular will automatically retrieve tokens for resources \r\n* added to protectedResourceMap. For more info, visit: \r\n* https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/initialization.md#get-tokens-for-web-api-calls\r\n*/\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n\r\n protectedResourceMap.set(protectedResources.todoListApi.endpoint, protectedResources.todoListApi.scopes);\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\n/**\r\n* Set your default interaction type for MSALGuard here. If you have any\r\n* additional scopes you want the user to consent upon login, add them here as well.\r\n*/\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return { \r\n interactionType: InteractionType.Redirect,\r\n authRequest: loginRequest\r\n };\r\n}\r\n@NgModule({\r\n declarations: [\r\n AppComponent, \r\n HeaderComponent,\r\n AlertDialogComponent,\r\n SpinnerComponent,\r\n HelpComponent,\r\n ErrorComponent\r\n ],\r\n imports: [\r\n FormsModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n MatButtonModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatTableModule,\r\n MatCardModule,\r\n HttpClientModule,\r\n MsalModule,\r\n ContractorProformaModule,\r\n // MatAutocompleteModule,\r\n // MatBadgeModule,\r\n // MatBottomSheetModule,\r\n MatButtonModule,\r\n //MatButtonToggleModule,\r\n MatCardModule,\r\n // MatCheckboxModule,\r\n // MatChipsModule,\r\n // MatStepperModule,\r\n // MatDatepickerModule,\r\n MatDialogModule,\r\n // MatDividerModule,\r\n // MatExpansionModule,\r\n // MatGridListModule,\r\n // MatIconModule,\r\n // MatInputModule,\r\n // MatListModule,\r\n // MatMenuModule,\r\n // MatNativeDateModule,\r\n // MatPaginatorModule,\r\n // MatProgressBarModule,\r\n // MatProgressSpinnerModule,\r\n // MatRadioModule,\r\n // MatRippleModule,\r\n // MatSelectModule,\r\n // MatSidenavModule,\r\n // MatSliderModule,\r\n // MatSlideToggleModule,\r\n // MatSnackBarModule,\r\n // MatSortModule,\r\n MatTableModule,\r\n // MatTabsModule,\r\n MatToolbarModule,\r\n // MatTooltipModule,\r\n // MatTreeModule,\r\n CommonModule\r\n ],\r\n providers: [ \r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: LoadingInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n CommonApiCallsProvider,\r\n AppConstants,\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService,\r\n HeaderComponent\r\n ],\r\n exports: [ContractorProformaModule],\r\n bootstrap: [AppComponent, MsalRedirectComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit , Inject } from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n@Component({\r\n selector: 'app-alert-dialog',\r\n templateUrl: './alert-dialog.component.html',\r\n styleUrls: ['./alert-dialog.component.css']\r\n})\r\nexport class AlertDialogComponent implements OnInit {\r\n message: string = \"\"\r\n cancelButtonText = \"Cancel\"\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef) {\r\n if (data) {\r\n this.message = data.message || this.message;\r\n if (data.buttonText) {\r\n this.cancelButtonText = data.buttonText.cancel || this.cancelButtonText;\r\n }\r\n }\r\n this.dialogRef.updateSize('300vw','300vw')\r\n }\r\n\r\n onConfirmClick(): void {\r\n // this.dialogRef.close(true);\r\n this.dialogRef.close('OK');\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","\r\n {{message}}\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Inject, OnDestroy, Input } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { EventMessage, EventType, InteractionType, InteractionStatus, PopupRequest, RedirectRequest, AuthenticationResult, AuthError } from '@azure/msal-browser';\r\n\r\nimport { b2cPolicies } from '../../../auth-config';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ShowContractorProformaHeaderService } from '../show-contractor-proforma-header.service';\r\nimport { AppConstants } from '../providers/app.contstants';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.css']\r\n})\r\nexport class HeaderComponent implements OnInit, OnDestroy {\r\n IsItContentPage : boolean;\r\n\r\n isIframe = false;\r\n loginDisplay = false;\r\n private readonly _destroying$ = new Subject();\r\n loggedInUserName:any ;\r\n claims:any ;\r\n constructor(\r\n @Inject(MSAL_GUARD_CONFIG) public msalGuardConfig: MsalGuardConfiguration,\r\n public authService: MsalService,\r\n public msalBroadcastService: MsalBroadcastService ,public Router : ActivatedRoute ,public sph: ShowContractorProformaHeaderService,private appConstants : AppConstants\r\n ) {\r\n\r\n this.IsItContentPage = this.sph.showProformaHeader;\r\n // if (!this.loginDisplay){\r\n // this.login(); \r\n // }\r\n \r\n }\r\n ngOnInit(): void {\r\n this.isIframe = window !== window.parent && !window.opener;\r\n \r\n /**\r\n * You can subscribe to MSAL events as shown below. For more info,\r\n * visit: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/events.md\r\n */\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAndSetActiveAccount();\r\n this.setLoginDisplay();\r\n });\r\n\r\n this.claims = this.authService.instance.getActiveAccount()?.idTokenClaims;\r\n this.loggedInUserName = this.claims ? this.claims['name'] : null;\r\n }\r\n checkAndSetActiveAccount() {\r\n /**\r\n * If no active account set but there are accounts signed in, sets first account to active account\r\n * To use active account set here, subscribe to inProgress$ first in your component\r\n * Note: Basic usage demonstrated. Your app may require more complicated account selection logic\r\n */\r\n let activeAccount = this.authService.instance.getActiveAccount();\r\n if (!activeAccount && this.authService.instance.getAllAccounts().length > 0) {\r\n let accounts = this.authService.instance.getAllAccounts();\r\n this.authService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n setLoginDisplay() {\r\n this.claims = this.authService.instance.getActiveAccount()?.idTokenClaims;\r\n this.loggedInUserName = this.claims ? this.claims['name'] : null;\r\n this.loginDisplay = this.authService.instance.getAllAccounts().length > 0;\r\n }\r\n\r\n login(userFlowRequest?: RedirectRequest | PopupRequest) {\r\n debugger;\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n if (this.msalGuardConfig.authRequest) {\r\n this.authService.loginPopup({...this.msalGuardConfig.authRequest, ...userFlowRequest} as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n } else {\r\n this.authService.loginPopup(userFlowRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n }\r\n } else {\r\n if (this.msalGuardConfig.authRequest){\r\n \r\n const errorDescription = this.Router.snapshot.paramMap.get('error_description')\r\n\r\n if (errorDescription &&\r\n errorDescription.includes('AADB2C90118')){\r\n let b2c_1_resetpwFlowRequest = {\r\n scopes: [\"read\"],\r\n authority: b2cPolicies.authorities.resetPassword.authority,\r\n };\r\n \r\n this.login(b2c_1_resetpwFlowRequest);\r\n }\r\n \r\n this.authService.loginRedirect({...this.msalGuardConfig.authRequest, ...userFlowRequest} as RedirectRequest);\r\n \r\n } else {\r\n this.authService.loginRedirect(userFlowRequest);\r\n }\r\n }\r\n }\r\n refresh(): void {\r\n window.location.reload();\r\n}\r\n logout() {\r\n // alert(\"logout\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n }\r\n\r\n editProfile() {\r\n let editProfileFlowRequest = {\r\n scopes: [\"read\"],\r\n authority: b2cPolicies.authorities.editProfile.authority,\r\n };\r\n\r\n //this.login(editProfileFlowRequest);\r\n }\r\n // resetPassword() {\r\n // let b2c_1_resetpwFlowRequest = {\r\n // scopes: [\"read\"],\r\n // authority: b2cPolicies.authorities.resetPassword.authority,\r\n // };\r\n\r\n // this.login(b2c_1_resetpwFlowRequest);\r\n // }\r\n\r\n ngOnDestroy(): void {\r\n this._destroying$.next(undefined);\r\n this._destroying$.complete();\r\n }\r\n goToHelp(){\r\n window.open('/#/help', '');\r\n}\r\n}\r\n","\r\n \r\n \"Contact\r\n \r\n
\r\n

Contractor Proforma

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, OnInit , Inject } from '@angular/core';\r\nimport { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\n@Component({\r\n selector: 'model-popup-dialog',\r\n templateUrl: './model-popup.component.html',\r\n styleUrls: ['./model-popup.component.css']\r\n})\r\nexport class ModelPopupComponent implements OnInit {\r\n messages: ModelPopupClass[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) private data: any,\r\n private dialogRef: MatDialogRef,private dialog: MatDialog) {\r\n if (data) {\r\n debugger;\r\n this.messages = data.messages || this.messages;\r\n }\r\n this.dialogRef.updateSize('800vw','800vw')\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n save() {\r\n for (let i = 0; i < this.messages.length; i++) {\r\n if (this.messages[i].agreed == false) {\r\n this.openAlertDialog(\"Please confirm \"+this.messages[i].name);\r\n return;\r\n }\r\n } \r\n this.dialogRef.close(true);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport class ModelPopupClass{\r\n name : string;\r\n value : string;\r\n agreed : boolean;\r\n}\r\n\r\n\r\n\r\n","\r\n
\r\n \r\n \r\n {{value.value}}\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\r\nimport { InsuranceDetails } from 'src/app/interfaces/insurance-details';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { Document } from \"src/app/interfaces/document\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\n\r\n@Component({\r\n selector: 'app-insurance',\r\n templateUrl: './insurance.component.html',\r\n styleUrls: ['./insurance.component.css']\r\n})\r\nexport class InsuranceComponent implements OnInit {\r\n public DocumentsTypeAll: Document[] = [];\r\n public PublicDocuments: Document[] = [];\r\n public EmployerDocuments: Document[] = [];\r\n public CyberDocuments: Document[] = [];\r\n public ProfessionalDocuments: Document[] = [];\r\n showFileSizeErrorpublicliabilityInsurance: boolean = false;\r\n showFileSizeErrorliabilityInsurance: boolean = false;\r\n showFileSizeErrorcyberInsurance: boolean = false;\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024 * 1024;\r\n showFileSizeErrorprofessionalIndemnity: boolean = false;\r\n IsProInsuranceApplicable: boolean;\r\n model = new InsuranceDetails();\r\n proformaStatus: any;\r\n disableField: any;\r\n agreementType: any;\r\n vendorType: any;\r\n constructor(private api: CommonApiCallsProvider, private dialog: MatDialog) {\r\n this.getInsurance();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n this.agreementType = localStorage.getItem('AgreementType');\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.vendorType = VendorTy;\r\n this.agreementType = this.agreementType.replace(/\\\"/g, \"\");\r\n\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n //this.getDocumentType();\r\n }\r\n @Output()\r\n SaveAndNextClicked: EventEmitter = new EventEmitter();\r\n @Output()\r\n BackClicked: EventEmitter = new EventEmitter();\r\n PreviousStep() {\r\n this.BackClicked.emit(\"2\");\r\n }\r\n\r\n async getInsurance() {\r\n await this.api.getInsurance04().toPromise().then(data => {\r\n debugger;\r\n console.log(JSON.stringify(data));\r\n this.model.populateDataJson(data);\r\n this.IsProInsuranceApplicable = this.model.proInsuranceApplicable == \"True\" ? true : false;\r\n localStorage.setItem(\"professionalIndemnityComplianceStatus\", JSON.stringify(this.model.professionalIndemnityComplianceStatus));\r\n this.getDocumentType();\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n SaveAndNext() {\r\n console.log('professionalIndemnityComplianceStatus: ' + this.model.professionalIndemnityComplianceStatus);\r\n console.log('cyberSecurityComplianceStatus: ' + this.model.cyberSecurityComplianceStatus);\r\n console.log('employerLiabilityComplianceStatus: ' + this.model.employerLiabilityComplianceStatus);\r\n console.log('publicLiabilityComplianceStatus: ' + this.model.publicLiabilityComplianceStatus);\r\n\r\n if (this.model.professionalIndemnityComplianceStatus === undefined || this.model.professionalIndemnityComplianceStatus === \"\" || this.model.professionalIndemnityComplianceStatus === null) {\r\n this.openAlertDialog(\"Please select Compliance for Professional Indemnity Insurance !\");\r\n return;\r\n }\r\n if (this.model.professionalIndemnityDetails === undefined || this.model.professionalIndemnityDetails === \"\" || this.model.professionalIndemnityDetails === null) {\r\n this.openAlertDialog(\"Please provide Professional Indemnity Insurance Notes !\");\r\n return;\r\n }\r\n if (this.model.professionalIndemnityComplianceStatus === \"Not Available\") {\r\n this.model.professionalIndemnityDocument = new Document();\r\n }\r\n else {\r\n console.log(Object.keys(this.model.professionalIndemnityDocument).length);\r\n console.log(this.model.professionalIndemnityDocument.documentName);\r\n console.log(this.model.professionalIndemnityDocument.documentID);\r\n if (Object.keys(this.model.professionalIndemnityDocument).length === 0) {\r\n this.openAlertDialog(\"Please upload valid document for Professional Indemnity Insurance !\");\r\n return;\r\n }\r\n\r\n if (this.model.professionalIndemnityDocument.documentName === undefined || this.model.professionalIndemnityDocument.documentName === null) {\r\n if (this.model.professionalIndemnityDocument.documentID === undefined || this.model.professionalIndemnityDocument.documentID <= 0) {\r\n this.openAlertDialog(\"Please upload valid document for Professional Indemnity Insurance !\");\r\n return;\r\n }\r\n }\r\n }\r\n // else{ \r\n // if (this.model.professionalIndemnityDocument === null){\r\n // this.openAlertDialog(\"Please upload valid document for Professional Indemnity Insurance !\");\r\n // return;\r\n // }\r\n // if(this.model.professionalIndemnityDocument.documentName === undefined || this.model.professionalIndemnityDocument.documentName === null){\r\n // if(this.model.professionalIndemnityDocument.documentID <=0){\r\n // this.openAlertDialog(\"Please upload valid document for Professional Indemnity Insurance !\");\r\n // return;\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n\r\n\r\n if (this.model.cyberSecurityComplianceStatus === undefined || this.model.cyberSecurityComplianceStatus === \"\" || this.model.cyberSecurityComplianceStatus === null) {\r\n console.log(this.model.cyberSecurityComplianceStatus);\r\n this.openAlertDialog(\"Please select Compliance for Cyber Insurance !\");\r\n return;\r\n }\r\n if (this.model.cyberSecurityDetails === undefined || this.model.cyberSecurityDetails === \"\" || this.model.cyberSecurityDetails === null) {\r\n this.openAlertDialog(\"Please provide Cyber Insurance Notes !\");\r\n return;\r\n }\r\n if (this.model.cyberSecurityComplianceStatus === \"Not Available\") {\r\n this.model.cyberSecurityDocument = new Document();\r\n }\r\n else {\r\n console.log(Object.keys(this.model.cyberSecurityDocument).length);\r\n console.log(this.model.cyberSecurityDocument.documentName);\r\n console.log(this.model.cyberSecurityDocument.documentID);\r\n if (Object.keys(this.model.cyberSecurityDocument).length === 0) {\r\n this.openAlertDialog(\"Please upload a valid document for Cyber Insurance!\");\r\n return;\r\n }\r\n\r\n if (this.model.cyberSecurityDocument.documentName === undefined || this.model.cyberSecurityDocument.documentName === null) {\r\n if (this.model.cyberSecurityDocument.documentID === undefined || this.model.cyberSecurityDocument.documentID <= 0) {\r\n this.openAlertDialog(\"Please upload a valid document for Cyber Insurance!\");\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // if(this.agreementType != \"3\"){\r\n if (this.vendorType === \"Company\") {\r\n if (this.model.employerLiabilityComplianceStatus === undefined || this.model.employerLiabilityComplianceStatus === \"\" || this.model.employerLiabilityComplianceStatus === null) {\r\n this.openAlertDialog(\"Please select Compliance for Employer Liability Insurance !\");\r\n return;\r\n }\r\n if (this.model.employerLiabilityDetails === undefined || this.model.employerLiabilityDetails === \"\" || this.model.employerLiabilityDetails === null) {\r\n this.openAlertDialog(\"Please provide Employer Liability Insurance Notes !\");\r\n return;\r\n }\r\n if (this.model.employerLiabilityComplianceStatus === \"Not Available\") {\r\n this.model.employerLiabilityDocument = new Document();\r\n }\r\n else {\r\n console.log(Object.keys(this.model.employerLiabilityDocument).length);\r\n console.log(this.model.employerLiabilityDocument.documentName);\r\n console.log(this.model.employerLiabilityDocument.documentID);\r\n if (Object.keys(this.model.employerLiabilityDocument).length === 0) {\r\n this.openAlertDialog(\"Please upload valid document for Employer Liability Insurance !\");\r\n return;\r\n }\r\n\r\n if (this.model.employerLiabilityDocument.documentName === undefined || this.model.employerLiabilityDocument.documentName === null) {\r\n if (this.model.employerLiabilityDocument.documentID === undefined || this.model.employerLiabilityDocument.documentID <= 0) {\r\n this.openAlertDialog(\"Please upload valid document for Employer Liability Insurance !\");\r\n return;\r\n }\r\n }\r\n }\r\n // else{\r\n // if (this.model.employerLiabilityDocument === null){\r\n // this.openAlertDialog(\"Please upload valid document for Employer Liability Insurance !\");\r\n // return;\r\n // }\r\n // if(this.model.employerLiabilityDocument.documentName === undefined || this.model.employerLiabilityDocument.documentName === null){\r\n // if(this.model.employerLiabilityDocument.documentID <=0){\r\n // this.openAlertDialog(\"Please upload valid document for Employer Liability Insurance !\");\r\n // return;\r\n // }\r\n // }\r\n // } \r\n }\r\n else {\r\n this.model.employerLiabilityComplianceStatus = \"\";\r\n this.model.employerLiabilityDetails = \"\";\r\n this.model.employerLiabilityDocument = new Document();\r\n }\r\n\r\n if (this.model.publicLiabilityComplianceStatus === undefined || this.model.publicLiabilityComplianceStatus === \"\" || this.model.publicLiabilityComplianceStatus === null) {\r\n this.openAlertDialog(\"Please select Compliance for Public Liability Insurance !\");\r\n return;\r\n }\r\n if (this.model.publicLiabilityDetails === undefined || this.model.publicLiabilityDetails === \"\" || this.model.publicLiabilityDetails === null) {\r\n this.openAlertDialog(\"Please provide Public Liability Insurance Notes !\");\r\n return;\r\n }\r\n if (this.model.publicLiabilityComplianceStatus === \"Not Available\") {\r\n this.model.publicLiabilityDocument = new Document();\r\n }\r\n else if (this.model.publicLiabilityComplianceStatus != \"Not Available\") {\r\n console.log(Object.keys(this.model.publicLiabilityDocument).length);\r\n console.log(this.model.publicLiabilityDocument.documentName);\r\n console.log(this.model.publicLiabilityDocument.documentID);\r\n if (Object.keys(this.model.publicLiabilityDocument).length === 0) {\r\n this.openAlertDialog(\"Please upload valid document for Public Liability Insurance !\");\r\n return;\r\n }\r\n\r\n if (this.model.publicLiabilityDocument.documentName === undefined || this.model.publicLiabilityDocument.documentName === null) {\r\n if (this.model.publicLiabilityDocument.documentID === undefined || this.model.publicLiabilityDocument.documentID <= 0) {\r\n this.openAlertDialog(\"Please upload valid document for Public Liability Insurance !\");\r\n return;\r\n }\r\n }\r\n }\r\n // else{\r\n // if (this.model.publicLiabilityDocument === null){\r\n // this.openAlertDialog(\"Please upload valid document for Public Liability Insurance !\");\r\n // return;\r\n // }\r\n // if(this.model.publicLiabilityDocument.documentName === undefined || this.model.publicLiabilityDocument.documentName === null){\r\n // if(this.model.publicLiabilityDocument.documentID <=0){\r\n // this.openAlertDialog(\"Please upload valid document for Public Liability Insurance !\");\r\n // return;\r\n // }\r\n // }\r\n // } \r\n\r\n this.model.populateDataJson(this.model);\r\n this.api.updateInsurance04(this.model).subscribe(Response => {\r\n console.log(Response);\r\n });\r\n this.SaveAndNextClicked.emit(\"4\");\r\n }\r\n\r\n Next() {\r\n this.SaveAndNextClicked.emit(\"4\");\r\n }\r\n\r\n FileSelected(event: any, insType: string) {\r\n // console.log(insType);\r\n // console.log(file); // Inspect the event structure\r\n // const event = file; // Directly access the file from the event object\r\n // // Define an interface for error flags\r\n // interface ErrorFlags {\r\n // [key: string]: boolean;\r\n // }\r\n\r\n // // Check file size and set error flags dynamically\r\n // const checkFileSize = (insType: string, sizeErrorFlag: keyof ErrorFlags) => {\r\n // if (event.size > this.maxSizeInBytes) {\r\n // (this as any)[sizeErrorFlag] = true;\r\n // return true;\r\n // }\r\n // (this as any)[sizeErrorFlag] = false;\r\n // return false;\r\n // };\r\n\r\n // switch (insType) {\r\n // case 'ProfessionalIndemnity':\r\n // if (checkFileSize(insType, 'showFileSizeErrorprofessionalIndemnity')) return;\r\n // break;\r\n // case 'CyberSecurity':\r\n // if (checkFileSize(insType, 'showFileSizeErrorcyberInsurance')) return;\r\n // break;\r\n // case 'EmployerLiability':\r\n // if (checkFileSize(insType, 'showFileSizeErrorliabilityInsurance')) return;\r\n // break;\r\n // case 'PublicLiability':\r\n // if (checkFileSize(insType, 'showFileSizeErrorpublicliabilityInsurance')) return;\r\n // break;\r\n // }\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = 4;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n switch (insType) {\r\n case \"ProfessionalIndemnity\":\r\n if (this.model.professionalIndemnityDocument === undefined || this.model.professionalIndemnityDocument === null) {\r\n this.model.professionalIndemnityDocument = new Document();\r\n }\r\n this.model.professionalIndemnityDocument = document;\r\n this.ProfessionalDocuments.push(document);\r\n break;\r\n case \"CyberSecurity\":\r\n if (this.model.cyberSecurityDocument === undefined || this.model.cyberSecurityDocument === null) {\r\n this.model.cyberSecurityDocument = new Document();\r\n }\r\n this.model.cyberSecurityDocument = document;\r\n this.CyberDocuments.push(document);\r\n break;\r\n case \"EmployerLiability\":\r\n if (this.model.employerLiabilityDocument === undefined || this.model.employerLiabilityDocument === null) {\r\n this.model.employerLiabilityDocument = new Document();\r\n }\r\n this.model.employerLiabilityDocument = document;\r\n this.EmployerDocuments.push(document);\r\n break;\r\n case \"PublicLiability\":\r\n if (this.model.publicLiabilityDocument === undefined || this.model.publicLiabilityDocument === null) {\r\n this.model.publicLiabilityDocument = new Document();\r\n }\r\n this.model.publicLiabilityDocument = document;\r\n this.PublicDocuments.push(document);\r\n break;\r\n }\r\n };\r\n }\r\n\r\n FileRemoved(event: any, insType: string) {\r\n switch (insType) {\r\n case \"ProfessionalIndemnity\":\r\n if (this.model.professionalIndemnityDocument === undefined || this.model.professionalIndemnityDocument === null) {\r\n return;\r\n }\r\n this.model.professionalIndemnityDocument = new Document();\r\n this.ProfessionalDocuments = [];\r\n break;\r\n case \"CyberSecurity\":\r\n if (this.model.cyberSecurityDocument === undefined || this.model.cyberSecurityDocument === null) {\r\n return;\r\n }\r\n this.model.cyberSecurityDocument = new Document();\r\n this.CyberDocuments = [];\r\n break;\r\n case \"EmployerLiability\":\r\n if (this.model.employerLiabilityDocument === undefined || this.model.employerLiabilityDocument === null) {\r\n return;\r\n }\r\n this.model.employerLiabilityDocument = new Document();\r\n this.EmployerDocuments = [];\r\n break;\r\n case \"PublicLiability\":\r\n if (this.model.publicLiabilityDocument === undefined || this.model.publicLiabilityDocument === null) {\r\n return;\r\n }\r\n this.model.publicLiabilityDocument = new Document();\r\n this.PublicDocuments = [];\r\n break;\r\n }\r\n }\r\n\r\n getDocumentType() {\r\n\r\n // await this.api.getDocuments(\"4\").toPromise().then(data => {\r\n // console.log('getDocumentType>>>>>: ' + JSON.stringify(data));\r\n // const temp: any = data;\r\n // this.DocumentsTypeAll = temp;\r\n console.log(\"this.model.professionalIndemnityDocument: \" + JSON.stringify(this.model.professionalIndemnityDocument));\r\n console.log(\"this.model.cyberSecurityDocument: \" + JSON.stringify(this.model.cyberSecurityDocument));\r\n console.log(\"this.model.employerLiabilityDocument: \" + JSON.stringify(this.model.employerLiabilityDocument));\r\n console.log(\"this.model.publicLiabilityDocument: \" + JSON.stringify(this.model.publicLiabilityDocument));\r\n\r\n if (this.model.professionalIndemnityDocument != undefined && this.model.professionalIndemnityDocument != null) {\r\n const DocumentID = this.model.professionalIndemnityDocument.documentID;\r\n if (DocumentID > 0) {\r\n this.ProfessionalDocuments.push(this.model.professionalIndemnityDocument);\r\n // this.DocumentsTypeAll.forEach(document => {\r\n // if (document.documentID == DocumentID) {\r\n // this.ProfessionalDocuments.push(document);\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n if (this.model.cyberSecurityDocument != undefined && this.model.cyberSecurityDocument != null) {\r\n const DocumentID = this.model.cyberSecurityDocument.documentID;\r\n if (DocumentID > 0) {\r\n // this.DocumentsTypeAll.forEach(document => {\r\n // if (document.documentID == DocumentID) {\r\n this.CyberDocuments.push(this.model.cyberSecurityDocument);\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n\r\n if (this.model.employerLiabilityDocument != undefined && this.model.employerLiabilityDocument != null ) {\r\n const DocumentID = this.model.employerLiabilityDocument.documentID;\r\n if (DocumentID > 0) {\r\n // this.DocumentsTypeAll.forEach(document => {\r\n // if (document.documentID == DocumentID) {\r\n this.EmployerDocuments.push(this.model.employerLiabilityDocument);\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n if (this.model.publicLiabilityDocument != undefined && this.model.publicLiabilityDocument != null) {\r\n const DocumentID = this.model.publicLiabilityDocument.documentID;\r\n if (DocumentID > 0) {\r\n // this.DocumentsTypeAll.forEach(document => {\r\n // if (document.documentID == DocumentID) {\r\n this.PublicDocuments.push(this.model.publicLiabilityDocument);\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n // }).catch((e) => {\r\n // console.log(e);\r\n // this.openAlertDialog(e.message);\r\n // });\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
InsuranceCurrencyLevel/LimitComplianceNotes\r\n Document\r\n
\r\n Professional Indemnity\r\n \r\n {{model.professionalIndemnityCurrency}}\r\n \r\n {{model.professionalIndemnityLevelLimit}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Fully\r\n Compliant\r\n Not\r\n Available\r\n Partially\r\n Compliant\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n\r\n \r\n Details\r\n \r\n \r\n Upload Document : \r\n \r\n
\r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n Cyber Insurance\r\n \r\n {{model.cyberSecurityCurrency}}\r\n \r\n {{model.cyberSecurityLevelLimit}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Fully Compliant\r\n \r\n Not Available\r\n \r\n Partially\r\n Compliant\r\n \r\n
\r\n
\r\n
\r\n \r\n Details\r\n \r\n \r\n \r\n Upload Document : \r\n \r\n
\r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n Employer's Liability Insurance\r\n \r\n {{model.employerLiabilityCurrency}}\r\n \r\n {{model.employerLiabilityLevelLimit}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Fully Compliant\r\n \r\n Not Available\r\n \r\n Partially\r\n Compliant \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Details\r\n \r\n \r\n Upload Document : \r\n\r\n \r\n
\r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n Public Liability Insurance\r\n \r\n {{model.publicLiabilityCurrency}}\r\n \r\n {{model.publicLiabilityLevelLimit}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Fully Compliant\r\n \r\n Not Available\r\n \r\n Partially\r\n Compliant\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Details\r\n \r\n \r\n Upload Document : \r\n\r\n \r\n
\r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-help',\r\n templateUrl: './help.component.html',\r\n styleUrls: ['./help.component.css']\r\n})\r\nexport class HelpComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

help works!

\r\n","/**\r\n * This file contains authentication parameters. Contents of this file\r\n * is roughly the same across other MSAL.js libraries. These parameters\r\n * are used to initialize Angular and MSAL Angular configurations in\r\n * in app.module.ts file.\r\n */\r\n\r\nimport { LogLevel, Configuration, BrowserCacheLocation } from '@azure/msal-browser';\r\n\r\nconst isIE = window.navigator.userAgent.indexOf(\"MSIE \") > -1 || window.navigator.userAgent.indexOf(\"Trident/\") > -1;\r\n\r\n/**\r\n * Enter here the user flows and custom policies for your B2C application,\r\n * To learn more about user flows, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/user-flow-overview\r\n * To learn more about custom policies, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-overview\r\n */\r\nexport const b2cPolicies = {\r\n names: {\r\n signUpSignIn: \"b2c_1_signupsignin1\",\r\n editProfile: \"B2C_1_edit_profile\",\r\n resetPassword: \"B2C_1_resetpw\"\r\n },\r\n authorities: {\r\n signUpSignIn: {\r\n authority: \"https://ippfvendormgmtb2c.b2clogin.com/ippfvendormgmtb2c.onmicrosoft.com/B2C_1_signupsignin1\",\r\n },\r\n editProfile: {\r\n authority: \"https://ippfvendormgmtb2c.b2clogin.com/ippfvendormgmtb2c.onmicrosoft.com/B2C_1_edit_profile\"\r\n },\r\n resetPassword: {\r\n authority: \"https://ippfvendormgmtb2c.b2clogin.com/ippfvendormgmtb2c.onmicrosoft.com/B2C_1_resetpw\"\r\n }\r\n },\r\n authorityDomain: \"ippfvendormgmtb2c.b2clogin.com\"\r\n};\r\n\r\n/**\r\n * Configuration object to be passed to MSAL instance on creation. \r\n * For a full list of MSAL.js configuration parameters, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md \r\n */\r\n export const msalConfig: Configuration = {\r\n auth: {\r\n clientId: '2956d140-3e73-4e9a-a84c-dd762b1c059a', // This is the ONLY mandatory field that you need to supply.\r\n authority: b2cPolicies.authorities.signUpSignIn.authority, // Defaults to \"https://login.microsoftonline.com/common\"\r\n knownAuthorities: [b2cPolicies.authorityDomain], // Mark your B2C tenant's domain as trusted.\r\n redirectUri: '/', // Points to window.location.origin. You must register this URI on Azure portal/App Registration.\r\n postLogoutRedirectUri: '/', // Indicates the page to navigate after logout.\r\n navigateToLoginRequestUrl: true, // If \"true\", will navigate back to the original request location before processing the auth code response.\r\n \r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage, // Configures cache location. \"sessionStorage\" is more secure, but \"localStorage\" gives you SSO between tabs.\r\n storeAuthStateInCookie: isIE, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback(logLevel: LogLevel, message: string) {\r\n console.log(message);\r\n },\r\n logLevel: LogLevel.Verbose,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Add here the endpoints and scopes when obtaining an access token for protected web APIs. For more information, see:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\r\n */\r\n export const protectedResources = {\r\n todoListApi: {\r\n endpoint: \"https://localhost:44351/api/todolist\",\r\n scopes: [\"https://ippfvendormgmtb2c.onmicrosoft.com/8fc77975-84ca-401b-842c-012379f0ccac/read\"],\r\n },\r\n }\r\n \r\n /**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n * For more information about OIDC scopes, visit: \r\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\r\n \r\n export const loginRequest = {\r\n scopes: []\r\n }; */\r\n export const loginRequest = {\r\n scopes: []\r\n }; \r\n// export const protectedResources = {\r\n// todoListApi: {\r\n// endpoint: \"http://localhost:5000/api/todolist\",\r\n// scopes: [\"https://ContosoB2C2601.onmicrosoft.com/e9d65b70-6b83-46e2-ba29-b00922dbe44d/read\"],\r\n// },\r\n// }\r\n// export const loginRequest = {\r\n// scopes: [\"read\"]\r\n// };\r\n\r\n/**\r\n * An optional silentRequest object can be used to achieve silent SSO\r\n * between applications by providing a \"login_hint\" property.\r\n */\r\nexport const silentRequest = {\r\n scopes: [\"https://ippfvendormgmtb2c.onmicrosoft.com/8fc77975-84ca-401b-842c-012379f0ccac/read\"],\r\n loginHint: \"example@domain.net\"\r\n};","import { Component, OnInit ,Inject ,Output,EventEmitter} from '@angular/core';\r\nimport { SubmitterDetails } from 'src/app/interfaces/submitter-details';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatDialogRef, MAT_DIALOG_DATA,MatDialog } from '@angular/material/dialog';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { asLiteral } from '@angular/compiler/src/render3/view/util';\r\nimport { ContractorReferenceDetails } from 'src/app/interfaces/contractor-reference-details';\r\nimport { Router } from '@angular/router';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-submitter',\r\n templateUrl: './submitter.component.html',\r\n styleUrls: ['./submitter.component.css']\r\n})\r\nexport class SubmitterComponent implements OnInit {\r\n model = new SubmitterDetails();\r\n ReferenceModel = new ContractorReferenceDetails();\r\n dataSourcePending: any = [];\r\n dataSourceAll: any = [];\r\n dataSource: any = [];\r\n IsDataLoaded:boolean = false;\r\n constructor(private api:CommonApiCallsProvider,private http:HttpClient,private appConstants: AppConstants,public authService: MsalService,\r\n public dialogRef: MatDialogRef,private dialog: MatDialog,private route : Router,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { \r\n this.ReferenceModel = data;\r\n } \r\n\r\n ngOnInit(): void {\r\n this.getIPAddress();\r\n }\r\n \r\n getIPAddress()\r\n {\r\n this.http.get(\"http://api.ipify.org/?format=json\").subscribe((res:any)=>{\r\n this.model.ipAddress = res.ip;\r\n });\r\n }\r\n async getAllRequistions() {\r\n this.dataSourceAll = []; \r\n await this.api.getAllRequitions().toPromise().then(data => {\r\n this.dataSourceAll = data || [];\r\n // this.dataSource = data || [];\r\n this.IsDataLoaded = true;\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0){\r\n // alert(\"8\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n }else{\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n // Agree(){\r\n // if(this.model.name === undefined || this.model.name.length == 0){\r\n // this.openAlertDialog(\"Please provide your Name to continue !\");\r\n // return;\r\n // }\r\n // if(this.model.position === undefined || this.model.position.length == 0){\r\n // this.openAlertDialog(\"Please provide your position to continue !\");\r\n // return;\r\n // }\r\n // this.api.updateReference07(this.ReferenceModel).subscribe(Response => {\r\n // this.api.saveSubmitterInformation(this.model).subscribe(res=>{\r\n // localStorage.setItem(\"ProformaStatus\", JSON.stringify('Proforma Completed'));\r\n // this.openAlertDialog(\"Your application has been submitted successfully !\"); \r\n // }) \r\n // });\r\n // this.getRequistions();\r\n // this.getAllRequistions();\r\n // this.route.navigateByUrl('/');\r\n // this.dialogRef.close();\r\n \r\n // }\r\n\r\n async getRequistions() {\r\n this.dataSourcePending = []; \r\n await this.api.getRequitions().toPromise().then(data => {\r\n this.dataSourcePending = data || [];\r\n this.dataSource = data || [];\r\n this.IsDataLoaded = true;\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0){\r\n // alert(\"9\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getRequistions::: Session timeout, Please logout and login back\");\r\n }else{\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n Agree() {\r\n if (this.model.name === undefined || this.model.name.length == 0) {\r\n this.openAlertDialog(\"Please provide your Name to continue !\");\r\n return;\r\n }\r\n if (this.model.position === undefined || this.model.position.length == 0) {\r\n this.openAlertDialog(\"Please provide your position to continue !\");\r\n return;\r\n }\r\n this.api.updateReference07(this.ReferenceModel).subscribe(Response => {\r\n this.api.saveSubmitterInformation(this.model).subscribe(res => {\r\n localStorage.setItem(\"ProformaStatus\", JSON.stringify('Proforma Completed'));\r\n this.openAlertDialog(\"Your application has been submitted successfully !\");\r\n this.route.navigateByUrl('/');\r\n this.dialogRef.close();\r\n this.afterNavigationAndClose();\r\n });\r\n });\r\n \r\n}\r\n\r\nafterNavigationAndClose() {\r\n this.getRequistions();\r\n this.getAllRequistions();\r\n}\r\n onCancel(): void {\r\n this.dialogRef.close();\r\n return;\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n}\r\n","

DISCLAIMER

\r\n \r\n

\r\n

ACCEPTANCE

\r\n \r\n

\r\n \r\n

\r\n
\r\n \r\n Name\r\n \r\n \r\n \r\n \r\n Position\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-co-region',\r\n templateUrl: './co-region.component.html',\r\n styleUrls: ['./co-region.component.css']\r\n})\r\nexport class CoRegionComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n isHidden = true;\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaStatus: any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(\"Getting region ways Data:\"+ JSON.stringify(data));\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log('CertificateOfIncorporationFile Document:'+JSON.stringify(data));\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(\"PersonalIdentificationFile Document:\"+JSON.stringify(data));\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(\"CompanyBankStatementFile Document:\"+JSON.stringify(data));\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(\"VATRegistrationFile Document:\"+JSON.stringify(data));\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(\"CompRegCertificateFile Document:\"+JSON.stringify(data));\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(\"BusinessPermitFile Document:\"+data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(\"TINFile Document:\"+JSON.stringify(data));\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(\"GST Document:\"+JSON.stringify(data));\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(\"MCA Document: \"+JSON.stringify(data));\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n\r\n SaveAndNext() {\r\n this.modelPopupMessages = [];\r\n for (let i = 0; i < this.countries.length; i++) {\r\n if(this.modelAddress.countryID == this.countries[i].id)\r\n {\r\n this.modelAddress.countryName = this.countries[i].name;\r\n break;\r\n }\r\n }\r\n this.model.isCompRegCertificateProvided = \"False\";\r\n this.model.isBusinessPermitProvided = \"False\";\r\n this.model.isTINProvided=\"False\";\r\n\r\n this.model.populateAddress(this.modelAddress);\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(!this.validateControls()){\r\n return;\r\n }\r\n \r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n if (this.VendorType == \"Company\") {\r\n const docNo = this.model.certicateOfIncorporationDocuments == undefined ? 0 : this.model.certicateOfIncorporationDocuments.length;\r\n const saveddocNo = this.DocumentsType1 == undefined ? 0 : this.DocumentsType1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Certificate Of Incorporation\";\r\n message.value = \"Please confirm that there is no change in the 'Certificate Of Incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Certificate Of Incorporation Document\");\r\n return;\r\n } \r\n }\r\n }\r\n\r\n if (!this.IsVATRequired) {\r\n this.model.vatRegistrationNumber = \"\";\r\n this.model.vatRegistrationDocuments = [] \r\n }else{\r\n const docNo1 = this.model.vatRegistrationDocuments == undefined ? 0 : this.model.vatRegistrationDocuments.length;\r\n const saveddocNo1 = this.DocumentsType5 == undefined ? 0 : this.DocumentsType5.length;\r\n if (docNo1 == 0 && saveddocNo1 == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"VAT Registration\";\r\n message.value = \"Please confirm that there is no change in the 'VAT Registration'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide VAT Registration Document\");\r\n return;\r\n } \r\n }\r\n } \r\n \r\n if (this.VendorType == \"Sole Trader\") {\r\n const docNo = this.model.personalIdentificationDocuments == undefined ? 0 : this.model.personalIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType2 == undefined ? 0 : this.DocumentsType2.length;\r\n \r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Personal Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Personal Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Personal Identification Document\");\r\n return;\r\n } \r\n }\r\n }\r\n }\r\n \r\n\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n \r\n if(this.VendorType == 'Individual' || 'Company'){\r\n if(this.IsGSTRequired){\r\n const docNo = this.model.gstDocuments_1 == undefined ? 0 : this.model.gstDocuments_1.length;\r\n const saveddocNo = this.DocumentsType25_1 == undefined ? 0 : this.DocumentsType25_1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_1;\r\n this.DocumentsType25 = this.DocumentsType25_1;\r\n this.model.removableGSTDocuments = this.DocumentsType25_2;\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n const docNo = this.model.gstDocuments_2 == undefined ? 0 : this.model.gstDocuments_2.length;\r\n const saveddocNo = this.DocumentsType25_2 == undefined ? 0 : this.DocumentsType25_2.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate for confirming overall turnover is not more !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_2;\r\n this.DocumentsType25 = this.DocumentsType25_2;\r\n this.model.removableGSTDocuments = this.DocumentsType25_1;\r\n }\r\n }\r\n\r\n if(this.VendorType == \"Company\"){\r\n if(this.IsMCARequired){\r\n this.model.isMCARequired = this.IsMCARequired;\r\n const docNo = this.model.mcaDocuments == undefined ? 0 : this.model.mcaDocuments.length;\r\n const saveddocNo = this.DocumentsType26 == undefined ? 0 : this.DocumentsType26.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Corporate Affairs (MCA)\";\r\n message.value = \"Please confirm that there is no change in the 'Corporate Affairs (MCA) certificate of incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Ministry of Corporate Affairs (MCA) certificate of incorporation document !\");\r\n return;\r\n } \r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n const docNo = this.model.compRegCertificateDocuments == undefined ? 0 : this.model.compRegCertificateDocuments.length;\r\n const saveddocNo = this.DocumentsType22 == undefined ? 0 : this.DocumentsType22.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Company Registration Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'Company Registration Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Company Registration Certificate !\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isCompRegCertificateProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n const docNo = this.model.businessPermitDocuments == undefined ? 0 : this.model.businessPermitDocuments.length;\r\n const saveddocNo = this.DocumentsType23 == undefined ? 0 : this.DocumentsType23.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Business Permit\";\r\n message.value = \"Please confirm that there is no change in the 'Business Permit'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Business Permit Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isBusinessPermitProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n if(this.model.taxIdentificationNumber == undefined || this.model.taxIdentificationNumber == null || this.model.taxIdentificationNumber.trim() == \"\"){\r\n this.openAlertDialog(\"Please provide Tax Identification Number to continue !\");\r\n return;\r\n }\r\n const docNo = this.model.taxIdentificationDocuments == undefined ? 0 : this.model.taxIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType24 == undefined ? 0 : this.DocumentsType24.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Tax Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Tax Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Tax Identification Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isTINProvided = \"True\";\r\n }\r\n }\r\n\r\n\r\n const docNo = this.model.companyBankStatementDocuments == undefined ? 0 : this.model.companyBankStatementDocuments.length;\r\n const saveddocNo = this.DocumentsType3 == undefined ? 0 : this.DocumentsType3.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n this.openAlertDialog(\"Please provide Company Bank Statement Document\");\r\n return;\r\n }\r\n\r\n this.openModelPopup();\r\n }\r\n Next() {\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openModelPopup() { \r\n \r\n if(this.model.isExistingVendor == \"True\" && this.modelPopupMessages.length > 0){\r\n const dialogRef = this.dialog.open(ModelPopupComponent, {\r\n data:{\r\n messages: this.modelPopupMessages,\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n debugger;\r\n if (confirmed) {\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n });\r\n }\r\n else{\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n } \r\n } \r\n\r\n\r\n onCertificateOfIncorporationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorIncorporationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorIncorporationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporation;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n this.model.certicateOfIncorporationDocuments = [];\r\n }\r\n this.model.certicateOfIncorporationDocuments.push(document);\r\n this.DocumentsType1.push(document);\r\n };\r\n }\r\n\r\n onCertificateOfIncorporationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType1.length;i++){\r\n if(this.DocumentsType1[i].documentName == event.documentName){\r\n this.DocumentsType1.splice(i,1);\r\n }\r\n }\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.certicateOfIncorporationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.certicateOfIncorporationDocuments.length; i++) {\r\n if (this.model.certicateOfIncorporationDocuments[i].documentName == event.documentName) {\r\n this.model.certicateOfIncorporationDocuments.splice(i, 1);\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n\r\n onPersonalIdentificationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorPersonalIdentificationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorPersonalIdentificationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.PersonalIdentification;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = (e) => {\r\n document.documentBase64 = reader.result as string;\r\n\r\n };\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n this.model.personalIdentificationDocuments = [];\r\n }\r\n this.model.personalIdentificationDocuments.push(document);\r\n this.DocumentsType2.push(document);\r\n }\r\n\r\n onPersonalIdentificationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType2.length;i++){\r\n if(this.DocumentsType2[i].documentName == event.documentName){\r\n this.DocumentsType2.splice(i,1);\r\n }\r\n }\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.personalIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.personalIdentificationDocuments.length; i++) {\r\n if (this.model.personalIdentificationDocuments[i].documentName == event.name) {\r\n this.model.personalIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompanyBankStatementFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBankStatement = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBankStatement = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompanyBankStatement;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n this.model.companyBankStatementDocuments = [];\r\n }\r\n this.model.companyBankStatementDocuments.push(document);\r\n this.DocumentsType3.push(document);\r\n };\r\n }\r\n\r\n onCompanyBankStatementFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType3.length;i++){\r\n if(this.DocumentsType3[i].documentName == event.documentName){\r\n this.DocumentsType3.splice(i,1);\r\n }\r\n }\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n return;\r\n }\r\n if (this.model.companyBankStatementDocuments.length > 0) {\r\n for (let i = 0; i < this.model.companyBankStatementDocuments.length; i++) {\r\n if (this.model.companyBankStatementDocuments[i].documentName == event.name) {\r\n this.model.companyBankStatementDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onVATRegistrationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorVAT = true;\r\n return;\r\n }\r\n this.showFileSizeErrorVAT = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.VATRegistrationDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n this.model.vatRegistrationDocuments = [];\r\n }\r\n this.model.vatRegistrationDocuments.push(document);\r\n this.DocumentsType5.push(document);\r\n };\r\n }\r\n\r\n onVATRegistrationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType5.length;i++){\r\n if(this.DocumentsType5[i].documentName == event.documentName){\r\n this.DocumentsType5.splice(i,1);\r\n }\r\n }\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.vatRegistrationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.vatRegistrationDocuments.length; i++) {\r\n if (this.model.vatRegistrationDocuments[i].documentName == event.name) {\r\n this.model.vatRegistrationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTAccepted = true;\r\n return;\r\n }\r\n\r\n this.showFileSizeErrorGSTAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n this.model.gstDocuments_1 = [];\r\n }\r\n this.model.gstDocuments_1.push(document);\r\n this.DocumentsType25_1.push(document);\r\n };\r\n }\r\n\r\n onGSTAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_1.length;i++){\r\n if(this.DocumentsType25_1[i].documentName == event.documentName){\r\n this.DocumentsType25_1.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_1.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_1.length; i++) {\r\n if (this.model.gstDocuments_1[i].documentName == event.name) {\r\n this.model.gstDocuments_1.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTNotAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTNotAccepted = true;\r\n return;\r\n }\r\n this.showFileSizeErrorGSTNotAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n this.model.gstDocuments_2 = [];\r\n }\r\n this.model.gstDocuments_2.push(document);\r\n this.DocumentsType25_2.push(document);\r\n };\r\n }\r\n\r\n onGSTNotAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_2.length;i++){\r\n if(this.DocumentsType25_2[i].documentName == event.documentName){\r\n this.DocumentsType25_2.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_2.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_2.length; i++) {\r\n if (this.model.gstDocuments_2[i].documentName == event.name) {\r\n this.model.gstDocuments_2.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBusinessPermitFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBusinessPermitFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBusinessPermitFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.BussPermit;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n this.model.businessPermitDocuments = [];\r\n }\r\n this.model.businessPermitDocuments.push(document);\r\n this.DocumentsType23.push(document);\r\n };\r\n }\r\n\r\n onBusinessPermitFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType23.length;i++){\r\n if(this.DocumentsType23[i].documentName == event.documentName){\r\n this.DocumentsType23.splice(i,1);\r\n }\r\n }\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n return;\r\n }\r\n if (this.model.businessPermitDocuments.length > 0) {\r\n for (let i = 0; i < this.model.businessPermitDocuments.length; i++) {\r\n if (this.model.businessPermitDocuments[i].documentName == event.name) {\r\n this.model.businessPermitDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onTINFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorTINFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorTINFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.TIN;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n this.model.taxIdentificationDocuments = [];\r\n }\r\n this.model.taxIdentificationDocuments.push(document);\r\n this.DocumentsType24.push(document);\r\n };\r\n }\r\n\r\n onTINFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType24.length;i++){\r\n if(this.DocumentsType24[i].documentName == event.documentName){\r\n this.DocumentsType24.splice(i,1);\r\n }\r\n }\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.taxIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.taxIdentificationDocuments.length; i++) {\r\n if (this.model.taxIdentificationDocuments[i].documentName == event.name) {\r\n this.model.taxIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompRegCertificateFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorCertificate = true;\r\n return;\r\n }\r\n this.showFileSizeErrorCertificate = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompRegCertificate;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n this.model.compRegCertificateDocuments = [];\r\n }\r\n this.model.compRegCertificateDocuments.push(document);\r\n this.DocumentsType22.push(document);\r\n };\r\n }\r\n\r\n onCompRegCertificateFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType22.length;i++){\r\n if(this.DocumentsType22[i].documentName == event.documentName){\r\n this.DocumentsType22.splice(i,1);\r\n }\r\n }\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n return;\r\n }\r\n if (this.model.compRegCertificateDocuments.length > 0) {\r\n for (let i = 0; i < this.model.compRegCertificateDocuments.length; i++) {\r\n if (this.model.compRegCertificateDocuments[i].documentName == event.name) {\r\n this.model.compRegCertificateDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMCAFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorMCAFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorMCAFile = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporationMCA;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n this.model.mcaDocuments = [];\r\n }\r\n this.model.mcaDocuments.push(document);\r\n this.DocumentsType26.push(document);\r\n };\r\n }\r\n\r\n onMCAFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType26.length;i++){\r\n if(this.DocumentsType26[i].documentName == event.documentName){\r\n this.DocumentsType26.splice(i,1);\r\n }\r\n }\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n return;\r\n }\r\n if (this.model.mcaDocuments.length > 0) {\r\n for (let i = 0; i < this.model.mcaDocuments.length; i++) {\r\n if (this.model.mcaDocuments[i].documentName == event.name) {\r\n this.model.mcaDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n keyPressAlphaNumeric(event: any,source : any) {\r\n var inp = String.fromCharCode(event.keyCode);\r\n if((source == 'ESIC' || source == 'MSME') && inp == '-'){\r\n return true;\r\n }\r\n if(source == 'EPF'&& inp == '/'){\r\n return true;\r\n }\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n validateControls() : boolean {\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n // alert(\"servicesProvidedBy\");\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(this.model.entityName === undefined || this.model.entityName === null || this.model.entityName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Entity Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationNo === undefined || this.model.companyRegistrationNo === null || this.model.companyRegistrationNo.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.companyRegAddress === undefined || this.model.companyRegistrationAddress.companyRegAddress === null || this.model.companyRegistrationAddress.companyRegAddress.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registered Address to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.city === undefined || this.model.companyRegistrationAddress.city === null || this.model.companyRegistrationAddress.city.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide City to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.postCode === undefined || this.model.companyRegistrationAddress.postCode === null || this.model.companyRegistrationAddress.postCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Postcode to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.countryID === undefined || this.model.companyRegistrationAddress.countryID === null ){\r\n this.openAlertDialog(\"Please select Country to continue !\");\r\n return false;\r\n }\r\n if(this.model.phoneNumber === undefined || this.model.phoneNumber === null || this.model.phoneNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Phone Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.email === undefined || this.model.email === null || this.model.email.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Email Address to continue !\");\r\n return false;\r\n }\r\n if(!this.validateEmail()){\r\n this.openAlertDialog(\"Please provide valid Email Address to continue !\");\r\n return false;\r\n }\r\n\r\n if (!this.validatePaymentEmailID()) {\r\n return false; // Stop further processing if the email is invalid\r\n }\r\n if(this.VendorType == \"Individual\" || this.VendorType == \"Company\"){\r\n if(this.model.bankAccountName === undefined || this.model.bankAccountName === null || this.model.bankAccountName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Account Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.bankName === undefined || this.model.bankName === null || this.model.bankName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Name to continue !\");\r\n return false;\r\n }\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.sortCode = \"\";\r\n if(this.model.accountType === undefined || this.model.accountType === null || this.model.accountType.trim() === \"\"){\r\n this.openAlertDialog(\"Please select Account Type to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n if(this.model.sortCode === undefined || this.model.sortCode === null || this.model.sortCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Sort Code to continue !\");\r\n return false;\r\n }\r\n else{\r\n this.model.accountType == \"\";\r\n }\r\n }\r\n \r\n if(this.model.accountNumber === undefined || this.model.accountNumber === null || this.model.accountNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Account Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.iban === undefined || this.model.iban === null || this.model.iban.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide IBAN / IFSC to continue !\");\r\n return false;\r\n }\r\n if(this.model.swiftCode === undefined || this.model.swiftCode === null || this.model.swiftCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide SWIFT/BIC Code to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.bankName = \"\";\r\n this.model.sortCode = \"\";\r\n this.model.iban = \"\";\r\n this.model.accountNumber = \"\";\r\n this.model.accountType = \"\";\r\n this.model.swiftCode = \"\";\r\n }\r\n\r\n if (this.IsVATRequired && (this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\")){\r\n if(this.model.vatRegistrationNumber === undefined || this.model.vatRegistrationNumber === null || this.model.vatRegistrationNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide VAT Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n if (this.IsGSTRequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.gstNumber === undefined || this.model.gstNumber === null || this.model.gstNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide GST Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.gstNumber,\"GST Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n }\r\n\r\n if (this.IsEPFRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.epfNumber === undefined || this.model.epfNumber === null || this.model.epfNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.epfNumber.indexOf('/') <0){\r\n this.openAlertDialog(\"Please provide valid EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.epfNumber = \"\";\r\n }\r\n if (this.IsESICRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.esicNumber === undefined || this.model.esicNumber === null || this.model.esicNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.esicNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.esicNumber = \"\";\r\n }\r\n if (this.IsMSMERequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.msmeNumber === undefined || this.model.msmeNumber === null || this.model.msmeNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.msmeNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.msmeNumber = \"\";\r\n }\r\n\r\n\r\n if (this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.panNumber === undefined || this.model.panNumber === null || this.model.panNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide PAN Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.panNumber,\"PAN Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.panNumber = '';\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event : any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if(charCode == 46){\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateEmail() : boolean {\r\n if (this.model.email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(this.model.email).toLowerCase()))\r\n if (re.test(String(this.model.email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n validatePaymentEmailID(): boolean {\r\n if (this.model.paymentNotificationEmailID !== '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const email = String(this.model.paymentNotificationEmailID).toLowerCase();\r\n const isValid = re.test(email);\r\n \r\n console.log(isValid); // Log the validity of the email\r\n \r\n if (!isValid) {\r\n this.openAlertDialog(\"Please provide a valid Email Address to continue!\");\r\n return false;\r\n } else {\r\n // If valid, you can proceed with the logic you need\r\n console.log(\"Valid email:\", email);\r\n // You can send the valid email to another function or service here\r\n this.sendValidEmail(email);\r\n }\r\n } \r\n return true;\r\n}\r\n\r\nsendValidEmail(email: string) {\r\n // Logic to handle the valid email, e.g., send it to the server or store it\r\n console.log(\"Sending valid email:\", email);\r\n}\r\n\r\n}\r\n\r\n","
\r\n \r\n Entity Name/Supplier Name\r\n \r\n \r\n\r\n \r\n Company registration number\r\n \r\n \r\n
\r\n
\r\n \r\n First Name\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Company registered address \r\n \r\n \r\n\r\n \r\n City / Town\r\n \r\n \r\n
\r\n
\r\n \r\n Postcode/Zipcode \r\n \r\n \r\n\r\n \r\n Country \r\n \r\n \r\n {{value.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Phone number \r\n \r\n \r\n \r\n Company Email\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Payment notification email ID\r\n \r\n \r\n
\r\n \r\n Services Provided By\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Are you VAT registered?\r\n \r\n
\r\n Please enter your VAT number and upload evidence of your VAT registration : \r\n \r\n VAT Registration Number\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
Please attach a copy of personal identification and a proof of address e.g. passport, driving licence, utility\r\n bill : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}} MB. Please select a smaller file.\r\n
\r\n
\r\n Please attach a Certificate of Incorporation \r\n \r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
VAT Registration Document : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n \r\n \r\n \r\n
Bank Statement : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank Account Name\r\n \r\n \r\n \r\n \r\n \r\n Bank Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Sort Code\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Account Type \r\n \r\n \r\n {{value.value}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n
\r\n \r\n IBAN / IFSC\r\n \r\n \r\n \r\n \r\n \r\n SWIFT/BIC Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Component, OnInit,EventEmitter,Output } from '@angular/core';\r\nimport { ServiceDetails } from 'src/app/interfaces/service-details';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport {DateAdapter, MAT_DATE_FORMATS} from '@angular/material/core';\r\nimport { AppDateAdapter, APP_DATE_FORMATS } from './format-datepicker';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-details-of-service',\r\n templateUrl: './details-of-service.component.html',\r\n styleUrls: ['./details-of-service.component.css'],\r\n providers: [\r\n {provide: DateAdapter, useClass: AppDateAdapter},\r\n {provide: MAT_DATE_FORMATS, useValue: APP_DATE_FORMATS}\r\n ]\r\n})\r\nexport class DetailsOfServiceComponent implements OnInit {\r\n model = new ServiceDetails();\r\n proformaStatus : any;\r\n disableField : any;\r\n constructor(private dateAdapter: DateAdapter,private api:CommonApiCallsProvider,private dialog: MatDialog) {\r\n this.getDetailsofservice();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.proformaStatus = localStorage.getItem('ProformaStatus');\r\n this.proformaStatus = this.proformaStatus.replace(/\\\"/g, \"\");\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n // alert(this.proformaStatus);\r\n }\r\n @Output()\r\n SaveAndNextClicked: EventEmitter = new EventEmitter();\r\n @Output()\r\n BackClicked: EventEmitter = new EventEmitter();\r\n \r\n PreviousStep(){\r\n this.BackClicked.emit(\"0\");\r\n }\r\n\r\n async getDetailsofservice() {\r\n await this.api.getDetailsofservice02().toPromise().then(data => {\r\n this.model.populateDataJson(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n SaveAndNext(){\r\n if(!this.validateControls()){\r\n return;\r\n }\r\n this.model.populateDataJson(this.model);\r\n this.api.updateDetailsofservice02(this.model).subscribe(Response => {\r\n console.log(Response);\r\n });\r\n this.SaveAndNextClicked.emit(\"2\");\r\n }\r\n Next(){\r\n this.SaveAndNextClicked.emit(\"2\");\r\n }\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n validateControls() : boolean {\r\n if(this.model.location === undefined || this.model.location === null || this.model.location === \"\"){\r\n this.openAlertDialog(\"Please provide Location !\");\r\n return false;\r\n }\r\n if(this.model.commencementDate === undefined || this.model.commencementDate === null || this.model.commencementDate === \"\"){\r\n this.openAlertDialog(\"Please provide Commencement Date !\");\r\n return false;\r\n }\r\n if(this.model.anticipatedCompletionDate === undefined || this.model.anticipatedCompletionDate === null || this.model.anticipatedCompletionDate === \"\"){\r\n this.openAlertDialog(\"Please provide Anticipated Completion Date !\");\r\n return false;\r\n }\r\n let date1 = Date.parse(this.model.anticipatedCompletionDate);\r\n let date2 = Date.parse(this.model.commencementDate);\r\n if(date1 < date2){\r\n this.openAlertDialog(\"Anticipated date should not be less than Completion date !\");\r\n return false;\r\n }\r\n\r\n if(this.model.isTravelRequired === undefined || this.model.isTravelRequired === null || this.model.isTravelRequired === \"\"){\r\n this.openAlertDialog(\"Please select if Travel is Required !\");\r\n return false;\r\n }\r\n if(this.model.isTravelRequired === undefined || this.model.isTravelRequired === null || this.model.isTravelRequired === \"True\"){\r\n if(this.model.travelDetails === undefined || this.model.travelDetails === null || this.model.travelDetails === \"\"){\r\n this.openAlertDialog(\"Please provide Travel Details !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.travelDetails = \"\";\r\n }\r\n return true;\r\n }\r\n}\r\n","
\r\n \r\n Please provide a brief description of the service provided \r\n \r\n \r\n\r\n \r\n Location/s where services will be performed\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Commencement date\r\n \r\n\r\n \r\n keyboard_arrow_down\r\n \r\n \r\n \r\n \r\n \r\n Anticipated completion date\r\n \r\n\r\n \r\n keyboard_arrow_down\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n Travel Details\r\n \r\n \r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport {A11yModule} from '@angular/cdk/a11y';\r\nimport {ClipboardModule} from '@angular/cdk/clipboard';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {CdkStepperModule} from '@angular/cdk/stepper';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {CdkTreeModule} from '@angular/cdk/tree';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport {MatBadgeModule} from '@angular/material/badge';\r\nimport {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\nimport {MatCardModule} from '@angular/material/card';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport {MatStepperModule} from '@angular/material/stepper';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatDividerModule} from '@angular/material/divider';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatGridListModule} from '@angular/material/grid-list';\r\nimport {MatListModule} from '@angular/material/list';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\r\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\nimport {MatRadioModule} from '@angular/material/radio';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport {MatSidenavModule} from '@angular/material/sidenav';\r\nimport {MatSliderModule} from '@angular/material/slider';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\r\nimport {MatSortModule} from '@angular/material/sort';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport {MatToolbarModule} from '@angular/material/toolbar';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatTreeModule} from '@angular/material/tree';\r\n\r\nimport { ContractorProformaComponent } from './ContractorProforma.component';\r\nimport { DetailsOfServiceComponent } from './details-of-service/details-of-service.component';\r\nimport { FeeVatAndExpensesComponent } from './fee-vat-and-expenses/fee-vat-and-expenses.component';\r\nimport { InsuranceComponent } from './insurance/insurance.component';\r\nimport { IPPFHealthAndSafetyComponent } from './ippfhealth-and-safety/ippfhealth-and-safety.component';\r\nimport { DisclosureServiceComponent } from './disclosure-service/disclosure-service.component';\r\nimport { HomeComponent } from '../home/home.component';\r\nimport { ReferenceComponent } from './reference/reference.component';\r\nimport { ContractorInformationComponent } from './contractor-information/contractor-information.component';\r\nimport { FileuploadComponent } from './widgets/fileupload/fileupload.component';\r\nimport { InsuranceCompanyComponent } from './insurance/insurance-company/insurance-company.component';\r\nimport { AskHelpComponent } from './ask-help/ask-help.component';\r\nimport { SubmitterComponent } from './submitter/submitter.component';\r\nimport { ModelPopupComponent } from 'src/app/model-popup/model-popup.component';\r\nimport { SaroRegionComponent } from './contractor-infomationpage/saro-region/saro-region.component';\r\nimport { AroRegionComponent } from './contractor-infomationpage/aro-region/aro-region.component';\r\nimport { CoRegionComponent } from './contractor-infomationpage/co-region/co-region.component';\r\nimport { EseaorRegionComponent } from './contractor-infomationpage/eseaor-region/eseaor-region.component';\r\nimport { EnRegionComponent } from './contractor-infomationpage/en-region/en-region.component';\r\nimport { RegionContractorInfoComponent } from './contractor-infomationpage/region-contractor-info/region-contractor-info.component';\r\nimport { AcroRegionComponent } from './contractor-infomationpage/acro-region/acro-region.component';\r\n\r\nexport const routes = [\r\n { path: '', component: ContractorProformaComponent }\r\n];\r\n\r\nconst MY_DATE_FORMAT = {\r\n parse: {\r\n dateInput: 'DD/MM/YYYY', // this is how your date will be parsed from Input\r\n },\r\n display: {\r\n dateInput: 'DD/MM/YYYY', // this is how your date will get displayed on the Input\r\n monthYearLabel: 'MMMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n }\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n ContractorProformaComponent,\r\n DetailsOfServiceComponent,\r\n FeeVatAndExpensesComponent,\r\n InsuranceComponent,\r\n IPPFHealthAndSafetyComponent,\r\n DisclosureServiceComponent,\r\n HomeComponent,\r\n ReferenceComponent,\r\n ContractorInformationComponent,\r\n ModelPopupComponent,\r\n FileuploadComponent,\r\n InsuranceCompanyComponent,\r\n AskHelpComponent,\r\n SubmitterComponent,\r\n SaroRegionComponent,\r\n AroRegionComponent,\r\n CoRegionComponent,\r\n EseaorRegionComponent,\r\n EnRegionComponent,\r\n RegionContractorInfoComponent,\r\n AcroRegionComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n ReactiveFormsModule,\r\n A11yModule,\r\n ClipboardModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n PortalModule,\r\n ScrollingModule,\r\n FormsModule,\r\n RouterModule.forChild(routes)\r\n ]\r\n})\r\nexport class ContractorProformaModule { }\r\n\r\n\r\n\r\n","export class IPPFPolicyProcedures {\r\n proformaID: number;\r\n values: string;\r\n // iPPFPolicyConfrimation: boolean = false;\r\n // iPPFTravelConfirmation: boolean = false;\r\n populateDataJson(data:any) { \r\n // this.iPPFPolicyConfrimation = data.iPPFPolicyConfrimation;\r\n // this.iPPFTravelConfirmation = data.iPPFTravelConfirmation;\r\n }\r\n}\r\n\r\nexport class HSTOptions{\r\n order : number;\r\n title : string;\r\n type : string;\r\n wording : string;\r\n agreeRequired : string;\r\n doc : string;\r\n agreed : boolean = false;\r\n isURL : boolean = false;\r\n isLinkClicked : boolean = false;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from './loader.service';\r\nimport { finalize } from 'rxjs/internal/operators/finalize';\r\n\r\n@Injectable()\r\nexport class LoadingInterceptor implements HttpInterceptor {\r\n\r\n // constructor() {}\r\n\r\n // intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n // return next.handle(request);\r\n // }\r\n private totalRequests = 0;\r\n\r\n constructor(\r\n private loadingService: LoaderService\r\n ) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n console.log('caught')\r\n this.totalRequests++;\r\n this.loadingService.setLoading(true);\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n this.totalRequests--;\r\n if (this.totalRequests == 0) {\r\n this.loadingService.setLoading(false);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","export class ContractorReferenceDetails {\r\n proformaID: number;\r\n reference1 : ContractorReference;\r\n reference2 : ContractorReference;\r\n reference3 : ContractorReference;\r\n}\r\n\r\nexport class ContractorReference{\r\n name : string;\r\n relationship : string;\r\n phoneNumber : string;\r\n email : string;\r\n constructor(){\r\n this.name = \"\";\r\n this.relationship =\"\";\r\n this.phoneNumber=\"\";\r\n this.email=\"\";\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ShowContractorProformaHeaderService {\r\n public showProformaHeader : boolean;\r\n constructor() { }\r\n UpdateValue(val : boolean){\r\n this.showProformaHeader = val;\r\n }\r\n \r\n}\r\n","import { HttpResponse } from '@angular/common/http';\r\nimport { Component, OnInit, EventEmitter, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, NgForm } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AlertDialogComponent } from 'src/app/alert-dialog/alert-dialog.component';\r\nimport { Address, Country } from 'src/app/interfaces/address';\r\nimport { Document, DocumentType } from \"src/app/interfaces/document\";\r\nimport { BankAccountType, ContractorInformation } from 'src/app/interfaces/contractor-information';\r\nimport { CommonApiCallsProvider } from 'src/app/providers/common.api.calls';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { ModelPopupComponent,ModelPopupClass } from 'src/app/model-popup/model-popup.component';\r\nimport { AppConstants } from 'src/app/providers/app.contstants';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\n@Component({\r\n selector: 'app-en-region',\r\n templateUrl: './en-region.component.html',\r\n styleUrls: ['./en-region.component.css']\r\n})\r\nexport class EnRegionComponent implements OnInit {\r\n showFileSizeErrorMCAFile: boolean = false;\r\n showFileSizeErrorCertificate: boolean = false;\r\n showFileSizeErrorTINFile: boolean = false;\r\n showFileSizeErrorBusinessPermitFile: boolean = false;\r\n showFileSizeErrorBankStatement: boolean = false;\r\n showFileSizeErrorVAT: boolean = false;\r\n showFileSizeErrorPersonalIdentificationFile: boolean = false;\r\n showFileSizeErrorIncorporationFile: boolean = false;\r\n showFileSizeErrorGSTAccepted: boolean = false;\r\n showFileSizeErrorGSTNotAccepted: boolean = false;\r\n isHidden = true;\r\n maxSizeInKB: number = 10;\r\n maxSizeInBytes: number = this.maxSizeInKB * 1024*1024;\r\n paymentNotificationEmailID:any;\r\n servicesProvidedBy:any;\r\n proformaStatus: any;\r\n proformaRegion: any;\r\n VendorType: any;\r\n disableField: any;\r\n firstFormGroup!: FormGroup;\r\n secondFormGroup!: FormGroup;\r\n model = new ContractorInformation();\r\n countries: Country[] = [];\r\n hideBankSection:boolean;\r\n bankAccountTypes: BankAccountType[] = [];\r\n modelAddress = new Address();\r\n disableCertificateOfIncorporation: any;\r\n disablePersonalIdentification: any;\r\n disableCompanyBankStatement: any;\r\n IsVATRequired:boolean;\r\n IsGSTRequired:boolean;\r\n IsEPFRequired:boolean;\r\n IsESICRequired:boolean;\r\n IsMSMERequired:boolean;\r\n IsMCARequired:boolean;\r\n ControlAROSection:boolean;\r\n ControlSAROSection:boolean;\r\n ControlCOSection:boolean;\r\n ControlContractorName: boolean;\r\n public DocumentsType1: Document[] = [];\r\n public DocumentsType2: Document[] = [];\r\n public DocumentsType3: Document[] = [];\r\n public DocumentsType5: Document[] = [];\r\n public DocumentsType22: Document[] = [];\r\n public DocumentsType23: Document[] = [];\r\n public DocumentsType24: Document[] = [];\r\n public DocumentsType25: Document[] = [];\r\n public DocumentsType25_1: Document[] = [];\r\n public DocumentsType25_2: Document[] = [];\r\n public DocumentsType26: Document[] = [];\r\n public modelPopupMessages : ModelPopupClass[] = [];\r\n IsUserAgreedModelPopup:boolean;\r\n constructor(private _formBuilder: FormBuilder, private api: CommonApiCallsProvider, private changeDet: ChangeDetectorRef,\r\n private dialog: MatDialog, private activatedRoute: ActivatedRoute,private route : Router,private appConstants: AppConstants,public authService: MsalService) {\r\n console.log(\"Before\");\r\n console.log(this.model);\r\n this.ControlAROSection = true;\r\n this.getCountries();\r\n this.populateBankAccountTypes();\r\n this.getContractorInfo();\r\n this.getDocumentType1();\r\n this.getDocumentType2();\r\n this.getDocumentType3();\r\n this.getDocumentType5();\r\n this.getDocumentType22();\r\n this.getDocumentType23();\r\n this.getDocumentType24();\r\n }\r\n @Output()\r\n SaveNextClicked: EventEmitter = new EventEmitter();\r\n ngOnInit(): void {\r\n this.changeDet.detectChanges();\r\n const VendorTy = localStorage.getItem('VendorType')?.toString().replace(/\\\"/g, \"\");\r\n this.VendorType = VendorTy;\r\n \r\n if(this.VendorType ==\"Individual\" || this.VendorType == 'Company'){\r\n this.hideBankSection = false;\r\n }\r\n else{\r\n this.hideBankSection = true;\r\n }\r\n }\r\n\r\n async getCountries() {\r\n await this.api.getCountries().toPromise().then(data => {\r\n this.populateCountries(data);\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"3\");\r\n // this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n console.log(\"getCountries::: Session timeout, Please logout and login back\");\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n populateCountries(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n let item = new Country();\r\n item.id = data[i].id;\r\n item.name = data[i].name;\r\n this.countries.push(item);\r\n }\r\n }\r\n\r\n populateBankAccountTypes() {\r\n let item = new BankAccountType();\r\n item.name = \"Current\";\r\n item.value = \"Current\";\r\n this.bankAccountTypes.push(item);\r\n\r\n item = new BankAccountType();\r\n item.name = \"Savings\";\r\n item.value = \"Savings\";\r\n this.bankAccountTypes.push(item);\r\n }\r\n\r\n async getContractorInfo() {\r\n await this.api.getContractorInformation01().toPromise().then(data => {\r\n console.log(data);\r\n if (data == null){\r\n this.route.navigateByUrl('/error');\r\n return;\r\n }\r\n this.model.populateDataJson(data);\r\n debugger;\r\n console.log(data);\r\n this.getDocumentType25(); // get GST Dcouments for SARO region\r\n this.getDocumentType26(); // get MCA documents for SARO region\r\n this.proformaRegion = this.model.regionName;\r\n this.proformaStatus = this.model.proformaStatus;\r\n this.paymentNotificationEmailID = this.model.paymentNotificationEmailID;\r\n this.servicesProvidedBy = this.model.servicesProvidedBy;\r\n // alert(this.proformaStatus );\r\n this.disableField = (this.proformaStatus.toUpperCase() != \"PROFORMA IN PROGRESS\" && this.proformaStatus.toUpperCase() != \"PROFORMA REQUESTED\");\r\n this.ControlCOSection = true;\r\n this.ControlContractorName = true;\r\n this.ControlAROSection = true;\r\n this.ControlSAROSection = true;\r\n this.IsVATRequired = false;\r\n if(this.proformaRegion =='ARO'){\r\n this.ControlAROSection = false;\r\n }\r\n if(this.proformaRegion =='SARO'){\r\n if(this.model.gstNumber == \"\"){\r\n this.IsGSTRequired = false;\r\n }\r\n else{\r\n this.IsGSTRequired = true;\r\n }\r\n if(this.model.epfNumber ==\"\"){\r\n this.IsEPFRequired = false;\r\n }\r\n else{\r\n this.IsEPFRequired = true;\r\n }\r\n if(this.model.esicNumber ==\"\"){\r\n this.IsESICRequired = false;\r\n }\r\n else{\r\n this.IsESICRequired = true;\r\n }\r\n if(this.model.msmeNumber ==\"\"){\r\n this.IsMSMERequired = false;\r\n }\r\n else{\r\n this.IsMSMERequired = true;\r\n }\r\n this.ControlSAROSection = false;\r\n }\r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n this.ControlCOSection = false;\r\n this.IsVATRequired = true;\r\n }\r\n if(this.proformaRegion == \"EN\"){\r\n if(this.VendorType == 'Company'){\r\n this.isHidden = false;\r\n }else{\r\n this.isHidden = true;\r\n }\r\n }\r\n \r\n // alert(\"this.VendorType\"+this.VendorType);\r\n // alert(\"this.model.isExistingVendor:::::\"+this.model.isExistingVendor);\r\n if(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\"){\r\n // alert(this.VendorType ==\"Individual\" && this.model.isExistingVendor == \"False\");\r\n this.ControlContractorName = false;\r\n }\r\n this.modelAddress = this.model.companyRegistrationAddress;\r\n this.model.populateAddress(this.modelAddress);\r\n // alert(this.model.vatRegistrationNumber);\r\n if (this.model.vatRegistrationNumber != ''){\r\n this.IsVATRequired =true;\r\n }else if (this.model.vatRegistrationNumber == ''){\r\n this.IsVATRequired =false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n if (e.message.indexOf('401') > 0) {\r\n // alert(\"4\");\r\n this.openAlertDialog(\"Session timeout, Please logout and login back\");\r\n localStorage.setItem(this.appConstants.SESSION_NAME, '');\r\n this.authService.logout();\r\n } else {\r\n this.openAlertDialog(e.message);\r\n }\r\n });\r\n }\r\n\r\n\r\n async getDocumentType1() {\r\n\r\n await this.api.getDocuments(\"1\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType1 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType2() {\r\n await this.api.getDocuments(\"2\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType2 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n async getDocumentType3() {\r\n await this.api.getDocuments(\"3\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType3 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType5() {\r\n await this.api.getDocuments(\"5\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType5 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType22() {\r\n await this.api.getDocuments(\"22\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType22 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType23() {\r\n await this.api.getDocuments(\"23\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType23 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType24() {\r\n await this.api.getDocuments(\"24\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType24 = temp;\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType25() {\r\n await this.api.getDocuments(\"25\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n if(this.model.gstNumber == \"\"){\r\n this.DocumentsType25_2 = temp;\r\n }\r\n else{\r\n this.DocumentsType25_1 = temp;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n async getDocumentType26() {\r\n await this.api.getDocuments(\"26\").toPromise().then(data => {\r\n console.log(data);\r\n const temp: any = data;\r\n this.DocumentsType26 = temp;\r\n if(this.DocumentsType26.length > 0){\r\n this.IsMCARequired = true;\r\n this.model.isMCARequired = true;\r\n }\r\n else{\r\n this.IsMCARequired = false;\r\n this.model.isMCARequired = false;\r\n }\r\n }).catch((e) => {\r\n console.log(e);\r\n this.openAlertDialog(e.message);\r\n });\r\n }\r\n\r\n\r\n async IsVATRequiredHandler(event : any){\r\n if (this.proformaStatus.toUpperCase() === 'PROFORMA COMPLETED') {\r\n return;\r\n }\r\n console.log(this.IsVATRequired + \" \" + event );\r\n if (this.IsVATRequired == false){\r\n this.model.vatRegistrationNumber = \"\";\r\n if (this.DocumentsType5.length > 0){\r\n // alert('Please remove attached VAT Registration documents');\r\n // this.IsVATRequired = true;\r\n event.preventDefault();\r\n console.log( event );\r\n return;\r\n }\r\n\r\n this.model.vatRegistrationNumber = \"\";\r\n this.DocumentsType5 = [];\r\n this.IsVATRequired = false;\r\n \r\n }\r\n }\r\n\r\n\r\n SaveAndNext() {\r\n this.modelPopupMessages = [];\r\n for (let i = 0; i < this.countries.length; i++) {\r\n if(this.modelAddress.countryID == this.countries[i].id)\r\n {\r\n this.modelAddress.countryName = this.countries[i].name;\r\n break;\r\n }\r\n }\r\n this.model.isCompRegCertificateProvided = \"False\";\r\n this.model.isBusinessPermitProvided = \"False\";\r\n this.model.isTINProvided=\"False\";\r\n\r\n this.model.populateAddress(this.modelAddress);\r\n \r\n if(!this.validateControls()){\r\n return;\r\n }\r\n \r\n \r\n \r\n if(this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\"){\r\n if (this.VendorType == \"Company\") {\r\n const docNo = this.model.certicateOfIncorporationDocuments == undefined ? 0 : this.model.certicateOfIncorporationDocuments.length;\r\n const saveddocNo = this.DocumentsType1 == undefined ? 0 : this.DocumentsType1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Certificate Of Incorporation\";\r\n message.value = \"Please confirm that there is no change in the 'Certificate Of Incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Certificate Of Incorporation Document\");\r\n return;\r\n } \r\n }\r\n }\r\n\r\n if (!this.IsVATRequired) {\r\n this.model.vatRegistrationNumber = \"\";\r\n this.model.vatRegistrationDocuments = [] \r\n }else{\r\n const docNo1 = this.model.vatRegistrationDocuments == undefined ? 0 : this.model.vatRegistrationDocuments.length;\r\n const saveddocNo1 = this.DocumentsType5 == undefined ? 0 : this.DocumentsType5.length;\r\n if (docNo1 == 0 && saveddocNo1 == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"VAT Registration\";\r\n message.value = \"Please confirm that there is no change in the 'VAT Registration'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide VAT Registration Document\");\r\n return;\r\n } \r\n }\r\n } \r\n \r\n if (this.VendorType == \"Sole Trader\") {\r\n const docNo = this.model.personalIdentificationDocuments == undefined ? 0 : this.model.personalIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType2 == undefined ? 0 : this.DocumentsType2.length;\r\n \r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Personal Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Personal Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Personal Identification Document\");\r\n return;\r\n } \r\n }\r\n }\r\n }\r\n \r\n\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n \r\n if(this.VendorType == 'Individual' || 'Company'){\r\n if(this.IsGSTRequired){\r\n const docNo = this.model.gstDocuments_1 == undefined ? 0 : this.model.gstDocuments_1.length;\r\n const saveddocNo = this.DocumentsType25_1 == undefined ? 0 : this.DocumentsType25_1.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_1;\r\n this.DocumentsType25 = this.DocumentsType25_1;\r\n this.model.removableGSTDocuments = this.DocumentsType25_2;\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n const docNo = this.model.gstDocuments_2 == undefined ? 0 : this.model.gstDocuments_2.length;\r\n const saveddocNo = this.DocumentsType25_2 == undefined ? 0 : this.DocumentsType25_2.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"GST Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'GST Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide GST Certificate for confirming overall turnover is not more !\");\r\n return;\r\n } \r\n }\r\n this.model.origincalGSTDocuments = this.model.gstDocuments_2;\r\n this.DocumentsType25 = this.DocumentsType25_2;\r\n this.model.removableGSTDocuments = this.DocumentsType25_1;\r\n }\r\n }\r\n\r\n if(this.VendorType == \"Company\"){\r\n if(this.IsMCARequired){\r\n this.model.isMCARequired = this.IsMCARequired;\r\n const docNo = this.model.mcaDocuments == undefined ? 0 : this.model.mcaDocuments.length;\r\n const saveddocNo = this.DocumentsType26 == undefined ? 0 : this.DocumentsType26.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Corporate Affairs (MCA)\";\r\n message.value = \"Please confirm that there is no change in the 'Corporate Affairs (MCA) certificate of incorporation'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Ministry of Corporate Affairs (MCA) certificate of incorporation document !\");\r\n return;\r\n } \r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n }\r\n }\r\n else{\r\n this.DocumentsType26 = [];\r\n this.model.isMCARequired = false;\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n this.model.vatRegistrationNumber = \"\";\r\n const docNo = this.model.compRegCertificateDocuments == undefined ? 0 : this.model.compRegCertificateDocuments.length;\r\n const saveddocNo = this.DocumentsType22 == undefined ? 0 : this.DocumentsType22.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Company Registration Certificate\";\r\n message.value = \"Please confirm that there is no change in the 'Company Registration Certificate'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Company Registration Certificate !\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isCompRegCertificateProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n const docNo = this.model.businessPermitDocuments == undefined ? 0 : this.model.businessPermitDocuments.length;\r\n const saveddocNo = this.DocumentsType23 == undefined ? 0 : this.DocumentsType23.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Business Permit\";\r\n message.value = \"Please confirm that there is no change in the 'Business Permit'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Business Permit Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isBusinessPermitProvided = \"True\";\r\n }\r\n }\r\n\r\n if(this.proformaRegion == \"ARO\"){\r\n if(this.model.taxIdentificationNumber == undefined || this.model.taxIdentificationNumber == null || this.model.taxIdentificationNumber.trim() == \"\"){\r\n this.openAlertDialog(\"Please provide Tax Identification Number to continue !\");\r\n return;\r\n }\r\n const docNo = this.model.taxIdentificationDocuments == undefined ? 0 : this.model.taxIdentificationDocuments.length;\r\n const saveddocNo = this.DocumentsType24 == undefined ? 0 : this.DocumentsType24.length;\r\n\r\n if (docNo == 0 && saveddocNo == 0) {\r\n if(this.model.isExistingVendor == \"True\"){\r\n let message = new ModelPopupClass;\r\n message.agreed = false;\r\n message.name = \"Tax Identification\";\r\n message.value = \"Please confirm that there is no change in the 'Tax Identification'.\";\r\n this.modelPopupMessages.push(message);\r\n }\r\n else{\r\n this.openAlertDialog(\"Please provide Tax Identification Document\");\r\n return;\r\n } \r\n }\r\n else{\r\n this.model.isTINProvided = \"True\";\r\n }\r\n }\r\n\r\n\r\n const docNo = this.model.companyBankStatementDocuments == undefined ? 0 : this.model.companyBankStatementDocuments.length;\r\n const saveddocNo = this.DocumentsType3 == undefined ? 0 : this.DocumentsType3.length;\r\n if (docNo == 0 && saveddocNo == 0) {\r\n this.openAlertDialog(\"Please provide Company Bank Statement Document\");\r\n return;\r\n }\r\n\r\n this.openModelPopup();\r\n }\r\n Next() {\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n\r\n openAlertDialog(ErrorMsg: string) {\r\n const dialogRef = this.dialog.open(AlertDialogComponent, {\r\n data: {\r\n message: ErrorMsg,\r\n buttonText: {\r\n cancel: 'OK'\r\n }\r\n },\r\n });\r\n }\r\n\r\n openModelPopup() { \r\n \r\n if(this.model.isExistingVendor == \"True\" && this.modelPopupMessages.length > 0){\r\n const dialogRef = this.dialog.open(ModelPopupComponent, {\r\n data:{\r\n messages: this.modelPopupMessages,\r\n }\r\n });\r\n \r\n dialogRef.afterClosed().subscribe((confirmed: boolean) => {\r\n debugger;\r\n if (confirmed) {\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n }\r\n });\r\n }\r\n else{\r\n localStorage.setItem(\"Country\", this.model.companyRegistrationAddress.countryName.toString())\r\n this.model.populateData(this.model, this.modelAddress);\r\n this.api.updateContractorinformation01(this.model).subscribe(Response => {\r\n console.log(Response);\r\n },\r\n error => {\r\n console.log(error);\r\n this.openAlertDialog(error);\r\n });\r\n this.SaveNextClicked.emit(\"1\");\r\n } \r\n } \r\n\r\n\r\n onCertificateOfIncorporationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorIncorporationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorIncorporationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporation;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n this.model.certicateOfIncorporationDocuments = [];\r\n }\r\n this.model.certicateOfIncorporationDocuments.push(document);\r\n this.DocumentsType1.push(document);\r\n };\r\n }\r\n\r\n onCertificateOfIncorporationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType1.length;i++){\r\n if(this.DocumentsType1[i].documentName == event.documentName){\r\n this.DocumentsType1.splice(i,1);\r\n }\r\n }\r\n if (this.model.certicateOfIncorporationDocuments === undefined || this.model.certicateOfIncorporationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.certicateOfIncorporationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.certicateOfIncorporationDocuments.length; i++) {\r\n if (this.model.certicateOfIncorporationDocuments[i].documentName == event.documentName) {\r\n this.model.certicateOfIncorporationDocuments.splice(i, 1);\r\n break;\r\n }\r\n } \r\n }\r\n }\r\n\r\n onPersonalIdentificationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorPersonalIdentificationFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorPersonalIdentificationFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.PersonalIdentification;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = (e) => {\r\n document.documentBase64 = reader.result as string;\r\n\r\n };\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n this.model.personalIdentificationDocuments = [];\r\n }\r\n this.model.personalIdentificationDocuments.push(document);\r\n this.DocumentsType2.push(document);\r\n }\r\n\r\n onPersonalIdentificationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType2.length;i++){\r\n if(this.DocumentsType2[i].documentName == event.documentName){\r\n this.DocumentsType2.splice(i,1);\r\n }\r\n }\r\n if (this.model.personalIdentificationDocuments === undefined || this.model.personalIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.personalIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.personalIdentificationDocuments.length; i++) {\r\n if (this.model.personalIdentificationDocuments[i].documentName == event.name) {\r\n this.model.personalIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompanyBankStatementFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBankStatement = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBankStatement = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompanyBankStatement;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n this.model.companyBankStatementDocuments = [];\r\n }\r\n this.model.companyBankStatementDocuments.push(document);\r\n this.DocumentsType3.push(document);\r\n };\r\n }\r\n\r\n onCompanyBankStatementFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType3.length;i++){\r\n if(this.DocumentsType3[i].documentName == event.documentName){\r\n this.DocumentsType3.splice(i,1);\r\n }\r\n }\r\n if (this.model.companyBankStatementDocuments === undefined || this.model.companyBankStatementDocuments === null) {\r\n return;\r\n }\r\n if (this.model.companyBankStatementDocuments.length > 0) {\r\n for (let i = 0; i < this.model.companyBankStatementDocuments.length; i++) {\r\n if (this.model.companyBankStatementDocuments[i].documentName == event.name) {\r\n this.model.companyBankStatementDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onVATRegistrationFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorVAT = true;\r\n return;\r\n }\r\n this.showFileSizeErrorVAT = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.VATRegistrationDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n this.model.vatRegistrationDocuments = [];\r\n }\r\n this.model.vatRegistrationDocuments.push(document);\r\n this.DocumentsType5.push(document);\r\n };\r\n }\r\n\r\n onVATRegistrationFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType5.length;i++){\r\n if(this.DocumentsType5[i].documentName == event.documentName){\r\n this.DocumentsType5.splice(i,1);\r\n }\r\n }\r\n if (this.model.vatRegistrationDocuments === undefined || this.model.vatRegistrationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.vatRegistrationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.vatRegistrationDocuments.length; i++) {\r\n if (this.model.vatRegistrationDocuments[i].documentName == event.name) {\r\n this.model.vatRegistrationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTAccepted = true;\r\n return;\r\n }\r\n\r\n this.showFileSizeErrorGSTAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n this.model.gstDocuments_1 = [];\r\n }\r\n this.model.gstDocuments_1.push(document);\r\n this.DocumentsType25_1.push(document);\r\n };\r\n }\r\n\r\n onGSTAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_1.length;i++){\r\n if(this.DocumentsType25_1[i].documentName == event.documentName){\r\n this.DocumentsType25_1.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_1 === undefined || this.model.gstDocuments_1 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_1.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_1.length; i++) {\r\n if (this.model.gstDocuments_1[i].documentName == event.name) {\r\n this.model.gstDocuments_1.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onGSTNotAcceptedFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorGSTNotAccepted = true;\r\n return;\r\n }\r\n this.showFileSizeErrorGSTNotAccepted = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.GSTDocument;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n this.model.gstDocuments_2 = [];\r\n }\r\n this.model.gstDocuments_2.push(document);\r\n this.DocumentsType25_2.push(document);\r\n };\r\n }\r\n\r\n onGSTNotAcceptedFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType25_2.length;i++){\r\n if(this.DocumentsType25_2[i].documentName == event.documentName){\r\n this.DocumentsType25_2.splice(i,1);\r\n }\r\n }\r\n if (this.model.gstDocuments_2 === undefined || this.model.gstDocuments_2 === null) {\r\n return;\r\n }\r\n if (this.model.gstDocuments_2.length > 0) {\r\n for (let i = 0; i < this.model.gstDocuments_2.length; i++) {\r\n if (this.model.gstDocuments_2[i].documentName == event.name) {\r\n this.model.gstDocuments_2.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onBusinessPermitFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorBusinessPermitFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorBusinessPermitFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.BussPermit;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n this.model.businessPermitDocuments = [];\r\n }\r\n this.model.businessPermitDocuments.push(document);\r\n this.DocumentsType23.push(document);\r\n };\r\n }\r\n\r\n onBusinessPermitFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType23.length;i++){\r\n if(this.DocumentsType23[i].documentName == event.documentName){\r\n this.DocumentsType23.splice(i,1);\r\n }\r\n }\r\n if (this.model.businessPermitDocuments === undefined || this.model.businessPermitDocuments === null) {\r\n return;\r\n }\r\n if (this.model.businessPermitDocuments.length > 0) {\r\n for (let i = 0; i < this.model.businessPermitDocuments.length; i++) {\r\n if (this.model.businessPermitDocuments[i].documentName == event.name) {\r\n this.model.businessPermitDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onTINFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorTINFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorTINFile = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.TIN;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n this.model.taxIdentificationDocuments = [];\r\n }\r\n this.model.taxIdentificationDocuments.push(document);\r\n this.DocumentsType24.push(document);\r\n };\r\n }\r\n\r\n onTINFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType24.length;i++){\r\n if(this.DocumentsType24[i].documentName == event.documentName){\r\n this.DocumentsType24.splice(i,1);\r\n }\r\n }\r\n if (this.model.taxIdentificationDocuments === undefined || this.model.taxIdentificationDocuments === null) {\r\n return;\r\n }\r\n if (this.model.taxIdentificationDocuments.length > 0) {\r\n for (let i = 0; i < this.model.taxIdentificationDocuments.length; i++) {\r\n if (this.model.taxIdentificationDocuments[i].documentName == event.name) {\r\n this.model.taxIdentificationDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onCompRegCertificateFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorCertificate = true;\r\n return;\r\n }\r\n this.showFileSizeErrorCertificate = false;\r\n let document = new Document;\r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CompRegCertificate;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n this.model.compRegCertificateDocuments = [];\r\n }\r\n this.model.compRegCertificateDocuments.push(document);\r\n this.DocumentsType22.push(document);\r\n };\r\n }\r\n\r\n onCompRegCertificateFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType22.length;i++){\r\n if(this.DocumentsType22[i].documentName == event.documentName){\r\n this.DocumentsType22.splice(i,1);\r\n }\r\n }\r\n if (this.model.compRegCertificateDocuments === undefined || this.model.compRegCertificateDocuments === null) {\r\n return;\r\n }\r\n if (this.model.compRegCertificateDocuments.length > 0) {\r\n for (let i = 0; i < this.model.compRegCertificateDocuments.length; i++) {\r\n if (this.model.compRegCertificateDocuments[i].documentName == event.name) {\r\n this.model.compRegCertificateDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMCAFileSelected(file: any) {\r\n console.log(file); // Inspect the event structure\r\n const event = file; // Directly access the file from the event object\r\n \r\n if (event.size > this.maxSizeInBytes) {\r\n this.showFileSizeErrorMCAFile = true;\r\n return;\r\n }\r\n this.showFileSizeErrorMCAFile = false;\r\n let document = new Document; \r\n var ProformaID: any = localStorage.getItem('ProformaID');\r\n document.proformaID = ProformaID.replace(/\\\"/g, \"\");\r\n document.docType = DocumentType.CertificateOfIncorporationMCA;\r\n document.documentName = event.name;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(event);\r\n reader.onload = () => {\r\n document.documentBase64 = reader.result as string;\r\n console.log(reader.result);\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n this.model.mcaDocuments = [];\r\n }\r\n this.model.mcaDocuments.push(document);\r\n this.DocumentsType26.push(document);\r\n };\r\n }\r\n\r\n onMCAFileRemoved(event: any) {\r\n for(let i = 0;i < this.DocumentsType26.length;i++){\r\n if(this.DocumentsType26[i].documentName == event.documentName){\r\n this.DocumentsType26.splice(i,1);\r\n }\r\n }\r\n if (this.model.mcaDocuments === undefined || this.model.mcaDocuments === null) {\r\n return;\r\n }\r\n if (this.model.mcaDocuments.length > 0) {\r\n for (let i = 0; i < this.model.mcaDocuments.length; i++) {\r\n if (this.model.mcaDocuments[i].documentName == event.name) {\r\n this.model.mcaDocuments.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n validateAlphaNumberic(value : any,label : any){\r\n if (/[0-9]/.test(value) && !/[a-zA-Z]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Numbers . Please provide valid \"+ label);\r\n return false;\r\n }\r\n if (/[a-zA-Z]/.test(value) && !/[0-9]/.test(value)) {\r\n this.openAlertDialog(label +\" has only Alphabets . Please provide valid \"+ label);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n keyPressAlphaNumeric(event: any,source : any) {\r\n var inp = String.fromCharCode(event.keyCode);\r\n if((source == 'ESIC' || source == 'MSME') && inp == '-'){\r\n return true;\r\n }\r\n if(source == 'EPF'&& inp == '/'){\r\n return true;\r\n }\r\n if (/[a-zA-Z0-9]/.test(inp)) {\r\n return true;\r\n } else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n\r\n validateControls() : boolean {\r\n if(this.proformaRegion == \"EN\"){\r\n if( this.VendorType != \"Company\"){\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n }else{\r\n // alert(\"servicesProvidedBy\");\r\n this.model.servicesProvidedBy = \"\";\r\n }\r\n if(this.model.entityName === undefined || this.model.entityName === null || this.model.entityName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Entity Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationNo === undefined || this.model.companyRegistrationNo === null || this.model.companyRegistrationNo.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.companyRegAddress === undefined || this.model.companyRegistrationAddress.companyRegAddress === null || this.model.companyRegistrationAddress.companyRegAddress.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Company Registered Address to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.city === undefined || this.model.companyRegistrationAddress.city === null || this.model.companyRegistrationAddress.city.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide City to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.postCode === undefined || this.model.companyRegistrationAddress.postCode === null || this.model.companyRegistrationAddress.postCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Postcode to continue !\");\r\n return false;\r\n }\r\n if(this.model.companyRegistrationAddress.countryID === undefined || this.model.companyRegistrationAddress.countryID === null ){\r\n this.openAlertDialog(\"Please select Country to continue !\");\r\n return false;\r\n }\r\n if(this.model.phoneNumber === undefined || this.model.phoneNumber === null || this.model.phoneNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Phone Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.email === undefined || this.model.email === null || this.model.email.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Email Address to continue !\");\r\n return false;\r\n }\r\n if(!this.validateEmail()){\r\n this.openAlertDialog(\"Please provide valid Email Address to continue !\");\r\n return false;\r\n }\r\n if (!this.validatePaymentEmailID()) {\r\n return false; // Stop further processing if the email is invalid\r\n }\r\n if(this.VendorType == \"Individual\" || this.VendorType == \"Company\"){\r\n if(this.model.bankAccountName === undefined || this.model.bankAccountName === null || this.model.bankAccountName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Account Name to continue !\");\r\n return false;\r\n }\r\n if(this.model.bankName === undefined || this.model.bankName === null || this.model.bankName.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Bank Name to continue !\");\r\n return false;\r\n }\r\n if(this.proformaRegion == \"SARO\"){\r\n this.model.sortCode = \"\";\r\n if(this.model.accountType === undefined || this.model.accountType === null || this.model.accountType.trim() === \"\"){\r\n this.openAlertDialog(\"Please select Account Type to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n if(this.model.sortCode === undefined || this.model.sortCode === null || this.model.sortCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Sort Code to continue !\");\r\n return false;\r\n }\r\n else{\r\n this.model.accountType == \"\";\r\n }\r\n }\r\n \r\n if(this.model.accountNumber === undefined || this.model.accountNumber === null || this.model.accountNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide Account Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.iban === undefined || this.model.iban === null || this.model.iban.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide IBAN / IFSC to continue !\");\r\n return false;\r\n }\r\n if(this.model.swiftCode === undefined || this.model.swiftCode === null || this.model.swiftCode.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide SWIFT/BIC Code to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.bankName = \"\";\r\n this.model.sortCode = \"\";\r\n this.model.iban = \"\";\r\n this.model.accountNumber = \"\";\r\n this.model.accountType = \"\";\r\n this.model.swiftCode = \"\";\r\n }\r\n\r\n if (this.IsVATRequired && (this.proformaRegion == \"CO\" || this.proformaRegion == \"ESEAOR\" || this.proformaRegion == \"EN\"|| this.proformaRegion == \"ACRO\")){\r\n if(this.model.vatRegistrationNumber === undefined || this.model.vatRegistrationNumber === null || this.model.vatRegistrationNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide VAT Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n if (this.IsGSTRequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.gstNumber === undefined || this.model.gstNumber === null || this.model.gstNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide GST Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.gstNumber,\"GST Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.gstNumber = \"\";\r\n }\r\n\r\n if (this.IsEPFRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.epfNumber === undefined || this.model.epfNumber === null || this.model.epfNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.epfNumber.indexOf('/') <0){\r\n this.openAlertDialog(\"Please provide valid EPF Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.epfNumber = \"\";\r\n }\r\n if (this.IsESICRequired && this.proformaRegion == \"SARO\" && this.VendorType == \"Company\"){\r\n if(this.model.esicNumber === undefined || this.model.esicNumber === null || this.model.esicNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.esicNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid ESIC Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.esicNumber = \"\";\r\n }\r\n if (this.IsMSMERequired && this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.msmeNumber === undefined || this.model.msmeNumber === null || this.model.msmeNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n if(this.model.msmeNumber.indexOf('-') <0){\r\n this.openAlertDialog(\"Please provide valid MSME Registration Number to continue !\");\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.msmeNumber = \"\";\r\n }\r\n\r\n\r\n if (this.proformaRegion == \"SARO\" && (this.VendorType == 'Individual' || 'Company')){\r\n if(this.model.panNumber === undefined || this.model.panNumber === null || this.model.panNumber.trim() === \"\"){\r\n this.openAlertDialog(\"Please provide PAN Number to continue !\");\r\n return false;\r\n }\r\n else if(!this.validateAlphaNumberic(this.model.panNumber,\"PAN Number\")){\r\n return false;\r\n }\r\n }\r\n else{\r\n this.model.panNumber = '';\r\n }\r\n return true;\r\n }\r\n\r\n numberOnly(event : any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if(charCode == 46){\r\n return true;\r\n }\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateEmail() : boolean {\r\n if (this.model.email != '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n console.log(re.test(String(this.model.email).toLowerCase()))\r\n if (re.test(String(this.model.email).toLowerCase()) != true) { \r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n validatePaymentEmailID(): boolean {\r\n if (this.model.paymentNotificationEmailID !== '') {\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const email = String(this.model.paymentNotificationEmailID).toLowerCase();\r\n const isValid = re.test(email);\r\n \r\n console.log(isValid); // Log the validity of the email\r\n \r\n if (!isValid) {\r\n this.openAlertDialog(\"Please provide a valid Email Address to continue!\");\r\n return false;\r\n } else {\r\n // If valid, you can proceed with the logic you need\r\n console.log(\"Valid email:\", email);\r\n // You can send the valid email to another function or service here\r\n this.sendValidEmail(email);\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nsendValidEmail(email: string) {\r\n // Logic to handle the valid email, e.g., send it to the server or store it\r\n console.log(\"Sending valid email:\", email);\r\n}\r\n}\r\n\r\n","
\r\n \r\n Entity Name/Supplier Name\r\n \r\n \r\n\r\n \r\n Company registration number\r\n \r\n \r\n
\r\n
\r\n \r\n First Name\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n Company registered address \r\n \r\n \r\n\r\n \r\n City / Town\r\n \r\n \r\n
\r\n
\r\n \r\n Postcode/Zipcode \r\n \r\n \r\n\r\n \r\n Country \r\n \r\n \r\n {{value.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Phone number \r\n \r\n \r\n \r\n Company Email\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Payment notification email ID\r\n \r\n \r\n\r\n \r\n \r\n Services Provided By\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Are you VAT registered?\r\n \r\n
\r\n Please enter your VAT number and upload evidence of your VAT registration : \r\n \r\n VAT Registration Number\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Yes\r\n No\r\n \r\n
\r\n
Please attach a copy of personal identification and a proof of address e.g. passport, driving licence, utility\r\n bill : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}} MB. Please select a smaller file.\r\n
\r\n
\r\n Please attach a Certificate of Incorporation \r\n \r\n
\r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
VAT Registration Document : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n \r\n \r\n \r\n
Bank Statement : \r\n \r\n
\r\n File size exceeds {{maxSizeInKB}}MB. Please select a smaller file.\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Bank Account Name\r\n \r\n \r\n \r\n \r\n \r\n Bank Name\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Sort Code\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n
\r\n \r\n IBAN / IFSC\r\n \r\n \r\n \r\n \r\n \r\n SWIFT/BIC Code\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n private loading: boolean = false;\r\n\r\n constructor() { }\r\n\r\n setLoading(loading: boolean) {\r\n this.loading = loading;\r\n }\r\n\r\n getLoading(): boolean {\r\n return this.loading;\r\n }\r\n}","export class VendorDetails {\r\n ProformaID: number;\r\n proVendorName: string;\r\n proVendorEmail: string;\r\n proProjectCode: string;\r\n proReqBy: string;\r\n proReqOn: Date;\r\n proCompletionBy: Date;\r\n proStatus: string;\r\n proVendorType: string;\r\n proDBSChecksRequired: string;\r\n proTravelRequired: string;\r\n proNotesToVendor: string;\r\n completeNotesToVendor : string;\r\n proRegionID: number;\r\n proRegionName: string;\r\n}","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { ContractorProformaComponent } from './guarded/ContractorProforma.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { AppComponent } from './app.component';\r\nimport { HelpComponent } from './help/help.component';\r\nimport { ErrorComponent } from './error/error.component';\r\n\r\n/**\r\n * MSAL Angular can protect routes in your application\r\n * using MsalGuard. For more info, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/initialization.md#secure-the-routes-in-your-application\r\n */\r\nconst routes: Routes = [\r\n {\r\n path: 'ContractorProforma',\r\n component: ContractorProformaComponent,\r\n canActivate: [\r\n MsalGuard\r\n ]\r\n },\r\n {\r\n // Needed for hash routing\r\n path: 'error',\r\n component: ErrorComponent\r\n },\r\n {\r\n // Needed for hash routing\r\n path: 'state',\r\n component: HomeComponent\r\n },\r\n {\r\n // Needed for hash routing\r\n path: 'code',\r\n component: HomeComponent\r\n },\r\n {\r\n path: '',\r\n component: HomeComponent\r\n } ,\r\n {\r\n // Needed for hash routing\r\n path: 'help',\r\n component: HelpComponent\r\n }\r\n];\r\n\r\nconst isIframe = window !== window.parent && !window.opener;\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {\r\n useHash: true,\r\n // Don't perform initial navigation in iframes\r\n initialNavigation: !isIframe ? 'enabled' : 'disabled'\r\n })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { MatDateFormats } from '@angular/material/core';\r\nimport { NativeDateAdapter } from '@angular/material/core';\r\n\r\nexport class AppDateAdapter extends NativeDateAdapter {\r\n format(date: Date, displayFormat: Object): string {\r\n if (displayFormat === \"input\") {\r\n let day: string = date.getDate().toString();\r\n day = +day < 10 ? \"0\" + day : day;\r\n let month: string = (date.getMonth() + 1).toString();\r\n month = +month < 10 ? \"0\" + month : month;\r\n let year = date.getFullYear();\r\n return `${day}-${month}-${year}`;\r\n }\r\n return date.toDateString();\r\n }\r\n}\r\nexport const APP_DATE_FORMATS: MatDateFormats = {\r\n parse: {\r\n dateInput: 'DD-MM-YYYY',\r\n },\r\n display: {\r\n dateInput: 'DD-MM-YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY'\r\n },\r\n};","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}