import { Component, ElementRef, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import * as moment from 'moment'; import { EITTransactionsRequest } from 'src/app/eit/models/EITTransactionsReq'; import { EIT_ACTION } from 'src/app/eit/models/submit.eit.action'; import { EitService } from 'src/app/eit/services/eit.service'; import { CommonService } from 'src/app/hmg-common/services/common/common.service'; import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response'; import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service'; import { DateTimeInput } from 'src/app/uI-elements/date-time.input'; import { DateInput } from 'src/app/uI-elements/date.input'; import { HiddenInput } from 'src/app/uI-elements/hidden.input'; import { NumberInput } from 'src/app/uI-elements/number.input'; import { SelectInput } from 'src/app/uI-elements/select.input'; import { TextInput } from 'src/app/uI-elements/text.input'; import { TimeInput } from 'src/app/uI-elements/time.input'; import { TerminationServiceService } from '../service/termination-service.service'; @Component({ selector: 'app-termination-form', templateUrl: './termination-form.component.html', styleUrls: ['./termination-form.component.scss'], }) export class TerminationFormComponent implements OnInit { public selectedMenu; public diffStructure = []; public termColStructure = []; public isUpdate: boolean; private eitVALSettoCall: any = []; private textInput; private numberInput; private dateInput; public direction: string; private datetimeInput; private timeInput; private selectInput; private hiddenInput; private validateEitObj: any = []; public menuType: any; public respID; public selEmp; public eitRequest; private ExtraObj: any = {}; private arrValues: any = []; selMenu: MenuResponse; private country; private updatedValues; private effectiveDate; private comtransNo; private reportSubmitRequest = {}; getPassdirfromNotifiPage: boolean = false; private startDate; private endDate; private targetValue; public eitSubmitAction; constructor(public cs: CommonService, private elementRef: ElementRef, public terminationFormService: TerminationServiceService, public ts: TranslatorService, public eitService: EitService, public router: ActivatedRoute) { this.router.queryParams.subscribe(params => { this.targetValue = params.targetValue; console.log(this.targetValue); }); } ngOnInit() { this.getPassdirfromNotifiPage = this.cs.sharedService.getSharedData('dirfromNotificationPage'); this.selectedMenu = this.cs.sharedService.getSharedData(TerminationServiceService.TERMINATION_PAGE, false); this.getTerminationCol(); this.direction = TranslatorService.getCurrentLanguageName(); this.effectiveDate = new Date(); this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, false); this.eitSubmitAction = this.cs.sharedService.getSharedData( EITTransactionsRequest.SUBMIT_EIT_ACTION ); } getTerminationCol() { this.cs.startLoading(); this.terminationFormService.getTerminationColStructure({ P_FUNCTION_NAME: this.selectedMenu.P_FUNCTION_NAME }, () => { }, this.ts.trPK('general', 'retry')).subscribe((response) => { this.termColStructure = response['GetTermColsStructureList']; this.drawEitFieldsStatic(this.termColStructure); this.getTermDiffStructure(); }) } getTermDiffStructure() { this.terminationFormService.getTermDiffStructure({ P_DESC_FLEX_CONTEXT_CODE: null, P_FUNCTION_NAME: this.selectedMenu.FUNCTION_NAME }, () => { }, this.ts.trPK('general', 'retry')).subscribe((response) => { this.cs.stopLoading(); this.handleDiffStructure(response); }) } handleDiffStructure(result) { if (result.GetTermDffStructureList != null) { this.diffStructure = result.GetTermDffStructureList; this.drawEitFields(result.GetTermDffStructureList); if (this.isUpdate) { //this.submitAbsObjList = this.cs.sharedService.getSharedData(ProfileService.EMP_ADDRESS); //this.fillAbsStructure(); } } } private drawEitFields(feildsList) { const containerId = "containerDiv"; this.eitVALSettoCall = []; for (let i = 0; i < feildsList.length; i++) { let defaultVal: string = ""; let defaultValText: string = ""; if (feildsList[i].DISPLAY_FLAG != "N") { //check if the field should be displayed if (feildsList[i].VALIDATION_TYPE == "N") { //text , date , time if (feildsList[i].FORMAT_TYPE == "C") { // character this.textInput = new TextInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, defaultVal, containerId, defaultValText, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG ); } else if (feildsList[i].FORMAT_TYPE == "N") { // number this.numberInput = new NumberInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, defaultVal, containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG ); } else if (feildsList[i].FORMAT_TYPE == "X") { // standard date if ( feildsList[i].DEFAULT_TYPE == "C" || feildsList[i].DEFAULT_TYPE == "D" || feildsList[i].DEFAULT_TYPE == "P" || feildsList[i].DEFAULT_TYPE == "S" ) { //constant this.dateInput = new DateInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, this.cs.reverseFormatDate(defaultVal), containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG, this.direction ); } else { this.dateInput = new DateInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, "", containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG, this.direction ); } } else if (feildsList[i].FORMAT_TYPE == "Y") { // standard date time if ( feildsList[i].DEFAULT_TYPE == "C" || feildsList[i].DEFAULT_TYPE == "D" || feildsList[i].DEFAULT_TYPE == "P" || feildsList[i].DEFAULT_TYPE == "S" ) { this.datetimeInput = new DateTimeInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, this.cs.reverseFormatStandardDate(defaultVal), containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG, this.direction ); } else { this.datetimeInput = new DateTimeInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, "", containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG, this.direction ); } const elem = document.getElementById( feildsList[i].APPLICATION_COLUMN_NAME ); } else if (feildsList[i].FORMAT_TYPE == "I") { //time if ( feildsList[i].DEFAULT_TYPE == "C" || feildsList[i].DEFAULT_TYPE == "D" || feildsList[i].DEFAULT_TYPE == "P" || feildsList[i].DEFAULT_TYPE == "S" ) { this.timeInput = new TimeInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, "", containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG, this.direction ); } else { this.timeInput = new TimeInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, "", containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG, this.direction ); } } } else { if (feildsList[i].READ_ONLY == "Y") { this.textInput = new TextInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, defaultVal, containerId, defaultValText, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG ); } else { this.selectInput = new SelectInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, defaultVal, containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG ); this.fillDropdownList( feildsList[i].SEGMENT_NAME, feildsList[i].E_SERVICES_VS, feildsList[i].E_SERVICES_DV ); } } this.bindHtmlElemEvents( feildsList[i].APPLICATION_COLUMN_NAME, feildsList[i] ); } else { this.hiddenInput = new HiddenInput( defaultVal, feildsList[i].APPLICATION_COLUMN_NAME, defaultValText, containerId ); this.bindHtmlElemEvents( feildsList[i].APPLICATION_COLUMN_NAME, feildsList[i] ); } } if (this.validateEitObj && this.validateEitObj.length > 0) { this.fillEITStructure(); } } fillDropdownList(segmentName, optionList: any = [], DV: any = "") { let elemID: any = ""; let eitObj: any; if (optionList.length > 0) { for (let i = 0; i < this.diffStructure.length; i++) { if (this.diffStructure[i].SEGMENT_NAME == segmentName) { eitObj = this.diffStructure[i]; if ( this.diffStructure[i].READ_ONLY == "Y" || this.diffStructure[i].DISPLAY_FLAG == "N" ) { return false; } elemID = this.diffStructure[i].APPLICATION_COLUMN_NAME; break; } } let select = document.getElementById(elemID) as HTMLSelectElement; document.getElementById(elemID).innerHTML = ""; if (eitObj.IsEmptyOption && eitObj.REQUIRED_FLAG == "N") { var firstoption = document.createElement("option"); firstoption.text = this.ts.trPK("general", "choose"); firstoption.value = ""; select.add(firstoption); } for (let i = 0; i < optionList.length; i++) { var option = document.createElement("option"); option.text = optionList[i].VALUE_COLUMN_NAME; option.value = optionList[i].ID_COLUMN_NAME; select.add(option); } if (select.dataset.hiddenval) { select.value = select.dataset.hiddenval; } else { select.value = DV.P_ID_COLUMN_NAME; } select.disabled = false; } } bindHtmlElemEvents(id, obj) { const elem = document.getElementById(id); console.log(elem); console.log(obj); const elemType = elem.tagName; let changeEvent = "ionChange"; if (elemType == "SELECT") changeEvent = "change"; try { elem.addEventListener(changeEvent, e => { elem.classList.remove("requiredClassElm"); if ( obj.CHILD_SEGMENTS_VS_Splited && obj.CHILD_SEGMENTS_VS_Splited.length > 0 ) { let listArray: any = obj.CHILD_SEGMENTS_VS_Splited; listArray.forEach(element => { this.emptyChildElement(element); this.getValueSet(element); }); } if ( obj.CHILD_SEGMENTS_DV_Splited && obj.CHILD_SEGMENTS_DV_Splited.length > 0 ) { let listArray: any = obj.CHILD_SEGMENTS_DV_Splited; listArray.forEach(element => { this.emptyChildElement(element); for (let i = 0; i < this.diffStructure.length; i++) { if (this.diffStructure[i].SEGMENT_NAME == element) { this.getDefaultValue( this.diffStructure[i], this.diffStructure[i].DESC_FLEX_NAME, this.diffStructure[i].DESC_FLEX_CONTEXT_CODE, this.diffStructure[i].SEGMENT_NAME, this.diffStructure[i].PARENT_SEGMENTS_VS_SplitedVS, this.diffStructure[i].PARENT_SEGMENTS_DV_Splited ); } } }); } return false; }); } catch (e) { console.log(e.status); } } public getDefaultValue( obj, descFlexName, descFlexContextCode, segmentName, parentValue, ParentsList ) { let dependenciesList: any = []; let parentVal: any = null; let isStandardDate: boolean = false; let isStandardTimeDate: boolean = false; let isStandardTime: boolean = false; let isHidden: boolean = false; let isReadOnlyList: boolean = false; let isSelectElement: boolean = false; isStandardDate = this.isStandardDate(obj); isStandardTimeDate = this.isStandardDateTime(obj); isStandardTime = this.isStandardTime(obj); if (obj.DISPLAY_FLAG == "N") isHidden = true; if (obj.VALIDATION_TYPE != "N" && obj.READ_ONLY == "Y") { isReadOnlyList = true; } if (obj.VALIDATION_TYPE != "N" && obj.READ_ONLY == "N") { isSelectElement = true; } if ( parentValue != "" && (obj.VALIDATION_TYPE == "D" || obj.VALIDATION_TYPE == "Y") ) { let parvalue = this.getDependenciesParams(parentValue); if (parvalue && parvalue[0]) parentVal = parvalue[0].ID_COLUMN_NAME; else { parentVal = null; } if (!parentVal) { return false; } } if (ParentsList != "") { if (parentValue) ParentsList.concat(parentValue); dependenciesList = this.getDependenciesParams(ParentsList); if (!dependenciesList) { return false; } } const body = { P_SELECTED_EMPLOYEE_NUMBER: this.selEmp, P_MENU_TYPE: this.menuType, P_SELECTED_RESP_ID: this.respID, //-999, P_DESC_FLEX_NAME: descFlexName, P_DESC_FLEX_CONTEXT_CODE: descFlexContextCode, P_SEGMENT_NAME: segmentName, P_PARENT_VALUE: parentVal, GetValueSetValuesTBL: dependenciesList }; this.eitService.getDefaultValue(body).subscribe((result: any) => { let elem = this.getElementByName(segmentName); let obj = this.handleDefaultValueResult(result); let val = obj.value; let text = obj.text; if (val == null) { val = ""; } if (text == null) { text = ""; } if (isStandardDate) { console.log("isStandardDate"); elem.value = this.cs.reverseFormatDate(val); } else if (isStandardTimeDate) { console.log("isStandardTimeDate"); if (val) { elem.dataset.dtvalue = this.cs.reverseFormatStandardDate(val); elem.innerHTML = this.cs.reverseFormatStandardDate(val); } else { elem.dataset.dtvalue = ""; elem.innerHTML = ""; } } else if (isStandardTime) { console.log("isStandardTime"); if (val) { elem.dataset.dtvalue = val; elem.innerHTML = val; elem.value = val; } else { elem.dataset.dtvalue = ""; elem.innerHTML = ""; } } else { if (isSelectElement) { let elem = this.getSelectElementByName(segmentName); elem = document.getElementById(elem), elem.value = val; } else { elem.value = val; elem.innerText = text; elem.setAttribute("value", val); } } if (isHidden || isReadOnlyList) { if (val) elem.dataset.colmText = val; else elem.dataset.colmText = ""; elem.value = text; } var event = new Event("ionChange"); elem.dispatchEvent(event); }); } handleDefaultValueResult(result) { let data = { text: result.GetDefaultValueList.P_VALUE_COLUMN_NAME, value: result.GetDefaultValueList.P_ID_COLUMN_NAME }; return data; } getSelectElementByName(segmentName) { let elemID: any = ""; for (let i = 0; i < this.diffStructure.length; i++) { if (this.diffStructure[i].SEGMENT_NAME == segmentName) { elemID = this.diffStructure[i].APPLICATION_COLUMN_NAME; break; } } return elemID; } getElementByName(segmentName) { let elemID: any = ""; for (let i = 0; i < this.diffStructure.length; i++) { if (this.diffStructure[i].SEGMENT_NAME == segmentName) { elemID = this.diffStructure[i].APPLICATION_COLUMN_NAME; break; } } return document.getElementById(elemID) as HTMLInputElement; } fillEITStructure() { var obj = { peiObjVer: null, peiExtraInfoID: null }; for (let i = 0; i < this.validateEitObj.length; i++) { let val: any; if (this.validateEitObj[i].VARCHAR2_VALUE) val = this.validateEitObj[i].VARCHAR2_VALUE; else if (this.validateEitObj[i].DATE_VALUE) val = this.validateEitObj[i].DATE_VALUE; else if (this.validateEitObj[i].NUMBER_VALUE) val = this.validateEitObj[i].NUMBER_VALUE; const elem = document.getElementById( this.validateEitObj[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement; //obj.transactionNo=this.validateEitObj[i].TRANSACTION_NUMBER; if (elem) { if (val) { let feldDetails = this.diffStructure.find( x => x.APPLICATION_COLUMN_NAME == this.validateEitObj[i].APPLICATION_COLUMN_NAME ); if (feldDetails) { let isStandardDate = this.isStandardDateVal(feldDetails); let isStandardDateTime = this.isStandardDateTimeVal(feldDetails); let isStandardTime = this.isStandardTimeVal(feldDetails); if (isStandardDate) { elem.value = this.cs.reverseFormatDate(val); } else if (isStandardDateTime) { elem.innerHTML = this.cs.reverseFormatStandardDate(val); elem.dataset.dtvalue = this.cs.reverseFormatStandardDate(val); } else if (isStandardTime) { elem.innerHTML = val; elem.dataset.dtvalue = val; } else { elem.value = val; elem.setAttribute("value", elem.value); } if ( feldDetails.DISPLAY_FLAG == "N" || (feldDetails.VALIDATION_TYPE != "N" && feldDetails.READ_ONLY == "Y") ) { elem.dataset.colmText = val; elem.value = this.validateEitObj[i].SEGMENT_VALUE_DSP; elem.setAttribute("value", elem.value); } } elem.dataset.hiddenval = val; //hide the value to set it after calling get value set if ( feldDetails.CHILD_SEGMENTS_VS_Splited && feldDetails.CHILD_SEGMENTS_VS_Splited.length > 0 ) { let listArray: any = feldDetails.CHILD_SEGMENTS_VS_Splited; listArray.forEach(element => { this.getValueSet(element); }); } // var event = new Event('change'); // elem.dispatchEvent(event); } } else { if ( this.validateEitObj[i].APPLICATION_COLUMN_NAME == "PEI_OBJECT_VERSION_NUMBER" ) obj.peiObjVer = this.validateEitObj[i].NUMBER_VALUE; else if ( this.validateEitObj[i].APPLICATION_COLUMN_NAME == "PEI_EXTRA_INFO_ID" ) obj.peiExtraInfoID = this.validateEitObj[i].NUMBER_VALUE; } } this.ExtraObj = obj; } public getValueSet(segmentName) { let descFlexName: any = ""; let descFlexContextCode: any = ""; let parentValue: any = []; let ParentsList: any = []; let parentVal: any = null; let dependenciesList: any = []; let validationType: string = ""; for (let i = 0; i < this.diffStructure.length; i++) { if (this.diffStructure[i].SEGMENT_NAME == segmentName) { descFlexName = this.diffStructure[i].DESC_FLEX_NAME; descFlexContextCode = this.diffStructure[i].DESC_FLEX_CONTEXT_CODE; parentValue = this.diffStructure[i].PARENT_SEGMENTS_VS_SplitedVS; ParentsList = this.diffStructure[i].PARENT_SEGMENTS_VS_SplitedVS; validationType = this.diffStructure[i].VALIDATION_TYPE; break; } } if (parentValue != "" && (validationType == "D" || validationType == "Y")) { let parvalue = this.getDependenciesParams(parentValue); if (parvalue && parvalue[0]) parentVal = parvalue[0].ID_COLUMN_NAME; else { parentVal = null; } if (!parentVal) { return false; } } if (ParentsList != "") { dependenciesList = this.getDependenciesParams(ParentsList); if (!dependenciesList) { return false; } } const body = { P_SELECTED_EMPLOYEE_NUMBER: this.selEmp, P_MENU_TYPE: this.menuType, P_SELECTED_RESP_ID: this.respID, //-999, P_DESC_FLEX_NAME: descFlexName, P_DESC_FLEX_CONTEXT_CODE: descFlexContextCode, P_SEGMENT_NAME: segmentName, P_PARENT_VALUE: parentVal, GetValueSetValuesTBL: dependenciesList, P_PAGE_NUM: 1, P_PAGE_LIMIT: 1000 }; this.eitService.getSetValue(body).subscribe((result: any) => { if (result.GetValueSetValuesList != null) { this.fillDropdownList(segmentName, result.GetValueSetValuesList); } }); let arr: any = []; return arr; } isStandardDateVal(obj: any): boolean { let isSt: boolean = false; if (obj.FORMAT_TYPE == "X") { isSt = true; } return isSt; } emptyChildElement(segmentName) { let elem = this.getElementByName(segmentName); elem.value = null; elem.innerHTML = ""; if ("dtvalue" in elem.dataset) { elem.dataset.dtvalue = ""; } if ("colmText" in elem.dataset) { elem.dataset.colmText = ""; } var event = new Event("change"); elem.dispatchEvent(event); elem.classList.remove("requiredClassElm"); } getDependenciesParams(parentsList) { let parentArr: any = []; for (let i = 0; i < parentsList.length; i++) { for (let j = 0; j < this.diffStructure.length; j++) { if (this.diffStructure[j].SEGMENT_NAME == parentsList[i].Name) { if (this.diffStructure[j].DISPLAY_FLAG != "N") { if (this.diffStructure[j].VALIDATION_TYPE == "N") { let idColName: string; let val: any; if ( this.diffStructure[j].FORMAT_TYPE == "Y" || this.diffStructure[j].FORMAT_TYPE == "I" ) { //standard date time or //time let elem = document.getElementById( this.diffStructure[j].APPLICATION_COLUMN_NAME ) as HTMLDivElement; val = elem.dataset.dtvalue; if ( (val == undefined || val == "") && parentsList[i].IsRequired == "REQUIRED" ) { //alert(parentsList[i].Name +" Is required"); return false; } idColName = val; if (this.diffStructure[j].FORMAT_TYPE == "Y") idColName = this.cs.formatStandardDate(val); } else { val = (document.getElementById( this.diffStructure[j].APPLICATION_COLUMN_NAME ) as HTMLInputElement).value; if ( (val == undefined || val == "") && parentsList[i].IsRequired == "REQUIRED" ) { //alert(parentsList[i].Name +" Is required"); return false; } idColName = val; if (this.diffStructure[j].FORMAT_TYPE == "X") { //date // idColName = this.cs.formatDate(val); idColName = this.cs.formatDateNew(val); } } parentArr.push({ SEGMENT_NAME: this.diffStructure[j].SEGMENT_NAME, VALUE_COLUMN_NAME: val, DESCRIPTION: "", ID_COLUMN_NAME: idColName, FLEX_VALUE_SET_NAME: this.diffStructure[j].FLEX_VALUE_SET_NAME }); break; } else { if (this.diffStructure[j].READ_ONLY != "Y") { let x = document.getElementById( this.diffStructure[j].APPLICATION_COLUMN_NAME ) as HTMLSelectElement; let text = x.options[x.selectedIndex] ? x.options[x.selectedIndex].text : ""; let val = x.options[x.selectedIndex] ? x.options[x.selectedIndex].value : undefined; if ( (val == undefined || val == "") && parentsList[i].IsRequired == "REQUIRED" ) { //alert(parentsList[i].Name +" Is required"); return false; } else { } if (text == undefined) { text = ""; } parentArr.push({ SEGMENT_NAME: this.diffStructure[j].SEGMENT_NAME, VALUE_COLUMN_NAME: text, DESCRIPTION: "", ID_COLUMN_NAME: val, FLEX_VALUE_SET_NAME: this.diffStructure[j].FLEX_VALUE_SET_NAME }); break; } else { let x = document.getElementById( this.diffStructure[j].APPLICATION_COLUMN_NAME ) as HTMLInputElement; let text = x.value; let val = x.dataset.colmText; if ( (val == undefined || val == "") && parentsList[i].IsRequired == "REQUIRED" ) { //alert(parentsList[i].Name +" Is required"); return false; } else { } if (text == undefined) { text = ""; } parentArr.push({ SEGMENT_NAME: this.diffStructure[j].SEGMENT_NAME, VALUE_COLUMN_NAME: text, DESCRIPTION: "", ID_COLUMN_NAME: val, FLEX_VALUE_SET_NAME: this.diffStructure[j].FLEX_VALUE_SET_NAME }); break; } } } else { let x = document.getElementById( this.diffStructure[j].APPLICATION_COLUMN_NAME ) as HTMLInputElement; let text = x.value; let val = x.dataset.colmText; if ( (val == undefined || val == "") && parentsList[i].IsRequired == "REQUIRED" ) { //alert(parentsList[i].Name +" Is required"); return false; } else { } if (text == undefined) { text = ""; } parentArr.push({ SEGMENT_NAME: this.diffStructure[j].SEGMENT_NAME, VALUE_COLUMN_NAME: text, DESCRIPTION: "", ID_COLUMN_NAME: val, FLEX_VALUE_SET_NAME: this.diffStructure[j].FLEX_VALUE_SET_NAME }); break; } } } } return parentArr; } isStandardTimeVal(obj: any): boolean { let isSt: boolean = false; if (obj.FORMAT_TYPE == "I") { // standard time //if(obj.DEFAULT_TYPE=="C" || obj.DEFAULT_TYPE=="D" || obj.DEFAULT_TYPE=="P"||obj.DEFAULT_TYPE=="S"){//constant isSt = true; //} } return isSt; } isStandardDateTimeVal(obj: any): boolean { let isSt: boolean = false; if (obj.FORMAT_TYPE == "Y") { // standard date time //if(obj.DEFAULT_TYPE=="C" || obj.DEFAULT_TYPE=="D" || obj.DEFAULT_TYPE=="P"||obj.DEFAULT_TYPE=="S"){//constant isSt = true; //} } return isSt; } isStandardDateTime(obj: any): boolean { let isSt: boolean = false; if (obj.FORMAT_TYPE == "Y") { // standard date time if ( obj.DEFAULT_TYPE == "C" || obj.DEFAULT_TYPE == "D" || obj.DEFAULT_TYPE == "P" || obj.DEFAULT_TYPE == "S" ) { //constant isSt = true; } } return isSt; } isStandardTime(obj: any): boolean { let isSt: boolean = false; if (obj.FORMAT_TYPE == "I") { // standard date time if ( obj.DEFAULT_TYPE == "C" || obj.DEFAULT_TYPE == "D" || obj.DEFAULT_TYPE == "P" || obj.DEFAULT_TYPE == "S" ) { //constant isSt = true; } } return isSt; } isStandardDate(obj: any): boolean { let isSt: boolean = false; if (obj.FORMAT_TYPE == "X") { // standard date if ( obj.DEFAULT_TYPE == "C" || obj.DEFAULT_TYPE == "D" || obj.DEFAULT_TYPE == "P" || obj.DEFAULT_TYPE == "S" ) { //constant isSt = true; } } return isSt; } validateTransaction() { (this.elementRef.nativeElement.querySelectorAll( "ion-item" ) as HTMLElement[]).forEach(x => { x.classList.add("ng-touched"); x.classList.remove("ng-untouched"); }); var arrValues = this.getElementsValues(); let staticValues = this.getElementsStaticValues(); let allStatisDynamicValues = arrValues.concat(staticValues); if (arrValues) { this.reportSubmitRequest = { P_MENU_TYPE: this.selMenu.List_Menu.MENU_TYPE, P_SELECTED_RESP_ID: -999, P_FUNCTION_NAME: this.selMenu.GetMenuEntriesList.FUNCTION_NAME, EITTransactionTBL: allStatisDynamicValues, }; this.cs.startLoading(); this.terminationFormService .submitTransation(this.reportSubmitRequest, {}, this.ts.trPK('general', 'retry')) .subscribe((result: any) => { this.handleSubmit(result); }); } } private handleSubmit(result) { if (this.cs.validResponse(result)) { this.cs.sharedService.setSharedData(result['SubmitTermTransactionList'], TerminationServiceService.SHARED_DATA); this.cs.stopLoading(); this.cs.confirmTermination(); } } public getElementsValues(): any { this.updatedValues = []; //fill updated list let valuseArr: any = []; let varcharValue: any = null; let numbervalue: any = 0; let dateValue: any = null; let transNo: number = 1; let textValue: any; // if(this.ExtraObj.transactionNo) // transNo=this.ExtraObj.transactionNo; for (let i = 0; i < this.diffStructure.length; i++) { varcharValue = null; numbervalue = null; dateValue = null; /*********set transaction No of the updated object ********/ if (this.getPassdirfromNotifiPage) { let updatedObj = this.validateEitObj.find( x => x.APPLICATION_COLUMN_NAME == this.diffStructure[i].APPLICATION_COLUMN_NAME ); let y = updatedObj; transNo = y.TRANSACTION_NUMBER; // set the transaction number for all items in the updated loop } if (this.diffStructure[i].DISPLAY_FLAG != "N") { if (this.diffStructure[i].VALIDATION_TYPE == "N") { let elem = document.getElementById( this.diffStructure[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement; let elemVal = (document.getElementById( this.diffStructure[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement).value; textValue = elemVal; //let elemVal= (document.getElementById(this.eitResponse[i].APPLICATION_COLUMN_NAME)).value; if ( this.diffStructure[i].FORMAT_TYPE == "X" && this.diffStructure[i].DISPLAY_FLAG != "N" ) { //date elemVal = this.cs.formatDate(elemVal); } else if ( this.diffStructure[i].FORMAT_TYPE == "Y" && this.diffStructure[i].DISPLAY_FLAG != "N" ) { //standard date time // elemVal = elem.dataset.dtvalue; // elemVal = this.cs.formatStandardDate(elemVal); elemVal = this.cs.formatDate(elemVal); } else if ( this.diffStructure[i].FORMAT_TYPE == "I" && this.diffStructure[i].DISPLAY_FLAG != "N" ) { //time if (elemVal.length > 5) { elemVal = elemVal.substring(11, 16); } else { elemVal = elemVal; } } if (this.diffStructure[i].REQUIRED_FLAG == "Y" && !elemVal) { elem.classList.add("requiredClassElm"); //this.common.showRequiredMsg(); return false; } else { elem.classList.remove("requiredClassElm"); } // if (elemVal != 'null'){ varcharValue = elemVal; //} else{ // elemVal = null; // } valuseArr.push({ TRANSACTION_NUMBER: transNo, NAME: this.diffStructure[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } else { let x = document.getElementById( this.diffStructure[i].APPLICATION_COLUMN_NAME ) as HTMLSelectElement; if (this.diffStructure[i].READ_ONLY == "Y") { let text = x.value; let val = x.dataset.colmText; varcharValue = val; textValue = text; } else { let val = x.options[x.selectedIndex] ? x.options[x.selectedIndex].value : null; let txt = x.options[x.selectedIndex] ? x.options[x.selectedIndex].text : null; varcharValue = val; textValue = txt; } if (this.diffStructure[i].REQUIRED_FLAG == "Y" && !varcharValue) { x.classList.add("requiredClassElm"); //this.common.showRequiredMsg(); return false; } else { x.classList.remove("requiredClassElm"); } valuseArr.push({ TRANSACTION_NUMBER: transNo, NAME: this.diffStructure[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } //end else } else { let x = document.getElementById( this.diffStructure[i].APPLICATION_COLUMN_NAME ) as HTMLSelectElement; let val = x.dataset.colmText; textValue = x.value; if (this.diffStructure[i].REQUIRED_FLAG == "Y" && !val) { x.classList.add("requiredClassElm"); //this.common.showRequiredMsg(); return false; } else { x.classList.remove("requiredClassElm"); } } if (this.getPassdirfromNotifiPage) { let updatedObj = this.validateEitObj.find( x => x.APPLICATION_COLUMN_NAME == this.diffStructure[i].APPLICATION_COLUMN_NAME ); let y = updatedObj; y.VARCHAR2_VALUE = varcharValue; y.NUMBER_VALUE = numbervalue; y.DATE_VALUE = dateValue; y.SEGMENT_VALUE_DSP = textValue; transNo = y.TRANSACTION_NUMBER; // set the transaction number for all items in the updated loop this.updatedValues.push(y); } else { if (this.validateEitObj && this.eitSubmitAction == EIT_ACTION.UPDATE) { let updatedObj = this.validateEitObj.find( x => x.APPLICATION_COLUMN_NAME == this.diffStructure[i].APPLICATION_COLUMN_NAME ); let y = updatedObj; y.VARCHAR2_VALUE = varcharValue; y.NUMBER_VALUE = numbervalue; y.DATE_VALUE = dateValue; y.SEGMENT_VALUE_DSP = textValue; transNo = transNo; // set the transaction number for all items in the updated loop this.updatedValues.push(y); } else { let y = { TRANSACTION_NUMBER: transNo, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue, SEGMENT_VALUE_DSP: textValue, APPLICATION_COLUMN_NAME: this.diffStructure[i] .APPLICATION_COLUMN_NAME, DATATYPE: this.diffStructure[i].DATATYPE, DESC_FLEX_CONTEXT_CODE: this.diffStructure[i].DESC_FLEX_CONTEXT_CODE, DESC_FLEX_NAME: this.diffStructure[i].DESC_FLEX_NAME, DISPLAY_FLAG: this.diffStructure[i].DISPLAY_FLAG, SEGMENT_NAME: this.diffStructure[i].SEGMENT_NAME, SEGMENT_PROMPT: this.diffStructure[i].SEGMENT_PROMPT }; transNo = transNo; // set the transaction number for all items in the updated loop this.updatedValues.push(y); } } } // end for if (this.getPassdirfromNotifiPage) { let updatedObj1 = this.validateEitObj.find( x => x.APPLICATION_COLUMN_NAME === "PEI_ACTION" ); let updatedObj2 = this.validateEitObj.find( x => x.APPLICATION_COLUMN_NAME === "PEI_EXTRA_INFO_ID" ); let updatedObj3 = this.validateEitObj.find( x => x.APPLICATION_COLUMN_NAME === "PEI_OBJECT_VERSION_NUMBER" ); this.updatedValues.push(updatedObj1); this.updatedValues.push(updatedObj2); this.updatedValues.push(updatedObj3); valuseArr = this.fillExtraInformation( valuseArr, updatedObj1.VARCHAR2_VALUE, updatedObj2.NUMBER_VALUE, updatedObj3.NUMBER_VALUE, transNo ); } else { if (this.eitSubmitAction == EIT_ACTION.ADD) { this.updatedValues = this.fillExtraValuesUpdated( this.updatedValues, "NEW_ROW", -1, 0, transNo ); valuseArr = this.fillExtraInformation( valuseArr, "NEW_ROW", -1, 0, transNo ); } else if (this.eitSubmitAction == EIT_ACTION.UPDATE) { valuseArr = this.fillExtraInformation( valuseArr, "UPDATE_ROW", this.ExtraObj.peiExtraInfoID, this.ExtraObj.peiObjVer, transNo ); } else if (this.eitSubmitAction == EIT_ACTION.DELETE) { valuseArr = this.fillExtraInformation( valuseArr, "DELETE_ROW", this.ExtraObj.peiExtraInfoID, this.ExtraObj.peiObjVer, transNo ); } } return valuseArr; } // end getElementsValues fillExtraValuesUpdated( values: any, peiAction: string, peiExtraInfoID: number, peiObjVer: number, transNo: number ): any { let obj1 = { TRANSACTION_NUMBER: transNo, VARCHAR2_VALUE: peiAction, NUMBER_VALUE: null, DATE_VALUE: null, SEGMENT_VALUE_DSP: "", APPLICATION_COLUMN_NAME: "PEI_ACTION", DATATYPE: "VARCHAR2", DESC_FLEX_CONTEXT_CODE: "", DESC_FLEX_NAME: "", DISPLAY_FLAG: "N", SEGMENT_NAME: "", SEGMENT_PROMPT: "" }; let obj2 = { TRANSACTION_NUMBER: 1, APPLICATION_COLUMN_NAME: "PEI_OBJECT_VERSION_NUMBER", VARCHAR2_VALUE: null, NUMBER_VALUE: peiObjVer, DATATYPE: "NUMBER", SEGMENT_VALUE_DSP: "", DATE_VALUE: null, DESC_FLEX_CONTEXT_CODE: "", DESC_FLEX_NAME: "", DISPLAY_FLAG: "N", SEGMENT_NAME: "", SEGMENT_PROMPT: "" }; let obj3 = { APPLICATION_COLUMN_NAME: "PEI_EXTRA_INFO_ID", DATATYPE: "NUMBER", DATE_VALUE: null, DESC_FLEX_CONTEXT_CODE: "", DESC_FLEX_NAME: "", DISPLAY_FLAG: "N", NUMBER_VALUE: peiExtraInfoID, SEGMENT_NAME: "", SEGMENT_PROMPT: "", SEGMENT_VALUE_DSP: "", TRANSACTION_NUMBER: transNo, VARCHAR2_VALUE: null }; values.push(obj1); values.push(obj2); values.push(obj3); return values; } fillExtraInformation( values: any, peiAction: string, peiExtraInfoID: number, peiObjVer: number, transNo: number ): any { values.push({ TRANSACTION_NUMBER: transNo, NAME: "PEI_ACTION", VARCHAR2_VALUE: peiAction, NUMBER_VALUE: null, DATE_VALUE: null }); values.push({ TRANSACTION_NUMBER: transNo, NAME: "PEI_EXTRA_INFO_ID", VARCHAR2_VALUE: null, NUMBER_VALUE: peiExtraInfoID, DATE_VALUE: null }); values.push({ TRANSACTION_NUMBER: transNo, NAME: "PEI_OBJECT_VERSION_NUMBER", VARCHAR2_VALUE: null, NUMBER_VALUE: peiObjVer, DATE_VALUE: null }); return values; } fixTransactionNo(transactionTBL: any): any[] { let list: any = []; let newIndex: number = 1; let length: number = transactionTBL.length; if (length > 0) { for (let i = 0; i < length; i++) { // let item :any={}; const item = Object.assign({}, transactionTBL[i]); let transNo: number = item.TRANSACTION_NUMBER; let obj: any = item; if (i == 0) { obj.TRANSACTION_NUMBER = newIndex; list.push(obj); } else { let prevEl: any = transactionTBL[i - 1].TRANSACTION_NUMBER; if (transNo == prevEl) { obj.TRANSACTION_NUMBER = newIndex; list.push(obj); } else { newIndex++; obj.TRANSACTION_NUMBER = newIndex; list.push(obj); } } } } return list; } private drawEitFieldsStatic(feildsList) { const containerId = "containerDivTwo"; this.eitVALSettoCall = []; for (let i = 0; i < feildsList.length; i++) { let defaultVal: string = ""; let defaultValText: string = ""; if (feildsList[i].DISPLAY_FLAG != "N") { //text , date , time if (feildsList[i].DATATYPE == "VARCHAR2" && feildsList[i].ObjectValuesList === null) { // character this.textInput = new TextInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, defaultVal, containerId, defaultValText, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG ); } else if (feildsList[i].DATATYPE == "VARCHAR2" && feildsList[i].ObjectValuesList !== null) { this.selectInput = new SelectInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, defaultVal, containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG ); this.fillStaticDropdownList( feildsList[i].SEGMENT_NAME, feildsList[i].ObjectValuesList, feildsList[i].APPLICATION_COLUMN_NAME ); } else if (feildsList[i].DATATYPE == "NUMBER") { this.numberInput = new NumberInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, defaultVal, containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG ); } else if (feildsList[i].DATATYPE == "DATE") { this.dateInput = new DateInput( feildsList[i].SEGMENT_PROMPT, feildsList[i].APPLICATION_COLUMN_NAME, "", containerId, feildsList[i].MOBILE_ENABLED, feildsList[i].DISPLAY_FLAG, feildsList[i].REQUIRED_FLAG, this.direction ); } } } } public fillStaticDropdownList(segmentName, optionList: any = [], elemID: string) { let eitObj: any; if (optionList.length > 0) { let select = document.getElementById(elemID) as HTMLSelectElement; document.getElementById(elemID).innerHTML = ""; for (let i = 0; i < optionList.length; i++) { var option = document.createElement("option"); option.text = optionList[i].MEANING; option.value = optionList[i].CODE; select.add(option); } } } public getElementsStaticValues(): any { this.updatedValues = []; //fill updated list let valuseArr: any = []; let varcharValue: any = null; let numbervalue: any = 0; let dateValue: any = null; let transNo: number = 1; let textValue: any; for (let i = 0; i < this.termColStructure.length; i++) { varcharValue = null; numbervalue = null; dateValue = null; if (this.termColStructure[i].DISPLAY_FLAG != "N") { if (this.termColStructure[i].ObjectValuesList === null) { let elem = document.getElementById(this.termColStructure[i].APPLICATION_COLUMN_NAME) as HTMLInputElement; let elemVal = elem !== null ? (document.getElementById(this.termColStructure[i].APPLICATION_COLUMN_NAME) as HTMLInputElement).value : ''; textValue = elemVal; if (this.termColStructure[i].DATATYPE == "VARCHAR2" || this.termColStructure[i].DATATYPE == "NUMBER") { elemVal = elemVal; } else if (this.termColStructure[i].DATATYPE == "DATE") { // date elemVal = this.cs.formatDate(elemVal); } if (this.targetValue === 'new') { if (this.termColStructure[i].REQUIRED_FLAG == "Y" && !elemVal) { elem.classList.add("requiredClassElm"); return false; } else { elem.classList.remove("requiredClassElm"); } } if (this.termColStructure[i].DATATYPE == "DATE") { dateValue = elemVal; } else if (this.termColStructure[i].DATATYPE == "NUMBER") { numbervalue = elemVal; } else { varcharValue = elemVal; } valuseArr.push({ TRANSACTION_NUMBER: transNo, NAME: this.termColStructure[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } else { let x = document.getElementById(this.termColStructure[i].APPLICATION_COLUMN_NAME) as HTMLSelectElement; let val = x.options && x.options[x.selectedIndex] ? x.options[x.selectedIndex].value : null; let txt = x.options && x.options[x.selectedIndex] ? x.options[x.selectedIndex].text : null; varcharValue = val; textValue = txt; if (x !== null) { if (this.termColStructure[i].REQUIRED_FLAG == "Y" && !varcharValue) { x.classList.add("requiredClassElm"); return false; } else { x.classList.remove("requiredClassElm"); } } valuseArr.push({ TRANSACTION_NUMBER: transNo, NAME: this.termColStructure[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } } else { let x = document.getElementById(this.termColStructure[i].APPLICATION_COLUMN_NAME) as HTMLSelectElement; let val = x !== null ? x.dataset.colmText : ''; textValue = x !== null ? x.value : ''; if (x !== null) { if (this.termColStructure[i].REQUIRED_FLAG == "Y" && !val) { x.classList.add("requiredClassElm"); return false; } else { x.classList.remove("requiredClassElm"); } } varcharValue = val; valuseArr.push({ TRANSACTION_NUMBER: transNo, NAME: this.termColStructure[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } } return valuseArr; } public customiseDate(date: any) { let formatedDate = date.slice(0, 9); let newDate = formatedDate.split("/").reverse(); const tmp = newDate[2]; newDate[2] = newDate[1]; newDate[1] = tmp; newDate = newDate.join("/"); newDate = newDate + ' 00:00:00'; return newDate; } }