import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { Component, OnInit, ViewChild, ElementRef } from "@angular/core"; import { MenuEntry } from "src/app/hmg-common/services/menu/models/menu.entry"; import { MenuResponse } from "src/app/hmg-common/services/menu/models/menu-response"; import { BasicRequest } from "../models/basic.request"; import { ModalController } from "@ionic/angular"; import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { EITTransactionsRequest } from "../models/EITTransactionsReq"; import { ProfileService } from "../service/profile.service"; import { TextAreaInput } from "src/app/uI-elements/text-area.input"; import { NumberInput } from "src/app/uI-elements/number.input"; import { TextInput } from "src/app/uI-elements/text.input"; import { SelectInput } from "src/app/uI-elements/select.input"; import { DateInput } from "src/app/uI-elements/date.input"; import { TimeInput } from "src/app/uI-elements/time.input"; import { DateTimeInput } from "src/app/uI-elements/date-time.input"; import { ButtonInput } from "src/app/uI-elements/button.input"; import { HiddenInput } from "src/app/uI-elements/hidden.input"; import * as moment from "moment"; import { DatePicker } from "@ionic-native/date-picker/ngx"; import { EIT_ACTION } from "../models/submit.eit.action"; import { AddEitResponse } from "../models/add.eit.response"; import { element } from '@angular/core/src/render3'; import { EITNotificatonBodyResponse } from "../models/EITNotificationBodyRes"; @Component({ selector: 'app-add-basic-details', templateUrl: './add-basic-details.component.html', styleUrls: ['./add-basic-details.component.scss'], }) export class AddBasicDetailsComponent implements OnInit { @ViewChild("containerDiv") containerDiv: ElementRef; ////*new add*///// getPassNotificationDetails: any; getPassdirfromNotifiPage: boolean = false; functionName: string = ""; menuType: any; ///////////////// private textArea: TextAreaInput; private numberInput: NumberInput; private textInput: TextInput; private selectInput: SelectInput; private dateInput: DateInput; private timeInput: TimeInput; private datetimeInput: DateTimeInput; private buttonInput: ButtonInput; private hiddenInput: HiddenInput; private eitResponse: any; private eitVALSettoCall: any = []; private comtransNo: number = 0; getPassMnuEntryObj: MenuEntry; selMenu: MenuResponse; eitSubmitAction: number = 0; //not submit private basicRequest: BasicRequest; private validateEitObj: any = []; private ExtraObj: any = {}; private arrValues: any = []; selEmp: string; respID: number; headerTitle: string = ""; isResubmit: boolean = false; private updatedValues: any = []; addEITData: any; direction:string; constructor( public modalController: ModalController, public cs: CommonService, private ts: TranslatorService, private profileService: ProfileService, public datePicker: DatePicker ) { this.direction = TranslatorService.getCurrentLanguageName(); this.selEmp = this.cs.sharedService.getSharedData( MenuResponse.SHARED_SEL_EMP, false ); this.respID = this.cs.sharedService.getSharedData( MenuResponse.SHARED_SEL_RESP_ID, false ); this.selMenu = new MenuResponse(); this.selMenu = this.cs.sharedService.getSharedData( MenuResponse.SHARED_DATA, false ); this.addEITData = this.cs.sharedService.getSharedData("AddEITData", false); console.log("addEITData: " + this.addEITData); // console.log("dirfromNotificationPage: " + this.addEITData.dirfromNotificationPage); this.basicRequest = new BasicRequest(); ////*new add*///// /**********resubmit************ */ this.getPassNotificationDetails = this.cs.sharedService.getSharedData(EITNotificatonBodyResponse.NOT_WORKLIST, false);//WARINING this.getPassdirfromNotifiPage = this.addEITData.dirfromNotificationPage; if (this.getPassdirfromNotifiPage) { this.functionName = this.getPassNotificationDetails.FUNCTION_NAME; //;this.getPassNotificationDetails.NOTIFICATION_NAME; this.menuType = "E"; this.selEmp = this.getPassNotificationDetails.SELECTED_EMPLOYEE_NUMBER; this.respID = -999; this.validateEitObj = this.addEITData.submitEITObjList; let msg: string = ""; msg = this.ts.trPK("eit", "update-title"); this.headerTitle = msg; } else { this.getPassMnuEntryObj = this.selMenu.GetMenuEntriesList; this.comtransNo = this.addEITData.transNo; this.functionName = this.getPassMnuEntryObj.FUNCTION_NAME; this.menuType = this.selMenu.List_Menu.MENU_TYPE; this.validateEitObj = this.addEITData.submitEITObjList; this.headerTitle = this.selMenu.GetMenuEntriesList.PROMPT; this.eitSubmitAction = this.cs.sharedService.getSharedData( EITTransactionsRequest.SUBMIT_EIT_ACTION ); } } ngOnInit() {} ngAfterViewInit() { // this.getEitDffStructure(); this.getColumnStructure(); } public getColumnStructure() { const body = { P_FUNCTION_NAME: this.functionName, P_SELECTED_EMPLOYEE_NUMBER: this.selEmp }; this.profileService.getColumnStructure(body).subscribe((result: any) => { this.handleBasicColStructureResult(result); }); } private getEitDffStructure() { const body = { P_FUNCTION_NAME: this.functionName, P_SELECTED_EMPLOYEE_NUMBER: this.selEmp, P_MENU_TYPE: this.menuType, P_SELECTED_RESP_ID: this.respID, P_REQUEST_TYPE: this.getPassMnuEntryObj.REQUEST_TYPE }; this.profileService.getBasicDFFStrutre(body).subscribe((result: any) => { this.handleBasicDffStructureResult(result); }); } public handleBasicColStructureResult(result) { if (result.GetBasicDetColsStructureList != null) { this.eitResponse = result.GetBasicDetColsStructureList; this.drawEitFields(result.GetBasicDetColsStructureList); } } public handleBasicDffStructureResult(result) { if (result.GetBasicDetDffStructureList != null) { this.eitResponse = result.GetBasicDetDffStructureList; this.drawEitFields(result.GetBasicDetDffStructureList); } } private drawEitFields(feildsList) { const containerId = "containerDiv"; this.eitVALSettoCall = []; for (let i = 0; i < feildsList.length; i++) { let defaultVal: string = ""; let defaultValText: string = ""; // defaultVal = feildsList[i].E_SERVICES_DV.P_ID_COLUMN_NAME // ? feildsList[i].E_SERVICES_DV.P_ID_COLUMN_NAME // : ""; // defaultValText = feildsList[i].E_SERVICES_DV.P_VALUE_COLUMN_NAME // ? feildsList[i].E_SERVICES_DV.P_VALUE_COLUMN_NAME // : ""; 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") { 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(); } } addFieldToDOM( fieldObject: any, fieldId: any, clickListenerEvent: any, hasClickListener: boolean ) { console.log("AddFieldToDOM"); const elemDiv = document.createElement("div"); elemDiv.className = ""; elemDiv.innerHTML = fieldObject.getTemplate(); console.log(this.containerDiv.nativeElement); this.containerDiv.nativeElement.appendChild(elemDiv); // document.getElementById('containerDiv').appendChild(elemDiv); if (hasClickListener) { let elem = document.getElementById(fieldId); elem.addEventListener("click", e => { clickListenerEvent(e); e.stopImmediatePropagation(); }); } } closeModal() { console.log("closeModal"); this.updatedValues = []; this.modalController.dismiss(); } public showDateTimePicker(elemID, maxSize) { let elem = document.getElementById(elemID) as HTMLDivElement; let date: any; let value = elem.innerHTML; if (value) date = moment(value, "YYYY/MM/DD HH:mm:ss").toDate(); else date = new Date(); this.datePicker .show({ date: date, is24Hour: true, mode: "datetime" }) .then( date => { let dateString: string = moment(date).format("YYYY/MM/DD HH:mm:ss"); //remove seconds if the maximum size is 17 if (maxSize == 17) { elem.innerHTML = dateString.substring(0, 16); elem.dataset.dtvalue = dateString.substring(0, 16); } else { elem.innerHTML = dateString; elem.dataset.dtvalue = dateString; } }, err => console.log("Error occurred while getting date: ", err) ); } public showTimePicker(elemID, maxSize) { let elem = document.getElementById(elemID) as HTMLDivElement; let date: any; let value = elem.innerHTML; if (value) { let nowDate = moment().format("YYYY/MM/DD") + " " + value; date = moment(nowDate, "YYYY/MM/DD HH:mm:ss").toDate(); } else { date = new Date(); } this.datePicker .show({ date: date, is24Hour: true, mode: "time" }) .then( date => { let dateString: string = moment(date).format("HH:mm:ss"); //remove seconds if the maximum size is 5 if (maxSize == 5) { elem.innerHTML = dateString.substring(0, 5); elem.dataset.dtvalue = dateString.substring(0, 5); } else { elem.innerHTML = dateString; elem.dataset.dtvalue = dateString; } }, err => console.log("Error occurred while getting date: ", err) ); } fillDropdownList(segmentName, optionList: any = [], DV: any = "") { let elemID: any = ""; let eitObj: any; if (optionList.length > 0) { for (let i = 0; i < this.eitResponse.length; i++) { if (this.eitResponse[i].SEGMENT_NAME == segmentName) { eitObj = this.eitResponse[i]; if ( this.eitResponse[i].READ_ONLY == "Y" || this.eitResponse[i].DISPLAY_FLAG == "N" ) { return false; } elemID = this.eitResponse[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.eitResponse.length; i++) { if (this.eitResponse[i].SEGMENT_NAME == element) { this.getDefaultValue( this.eitResponse[i], this.eitResponse[i].DESC_FLEX_NAME, this.eitResponse[i].DESC_FLEX_CONTEXT_CODE, this.eitResponse[i].SEGMENT_NAME, this.eitResponse[i].PARENT_SEGMENTS_VS_SplitedVS, this.eitResponse[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.profileService.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; } callValueSet() { for (var i = 0; i < this.eitVALSettoCall.length; i++) { this.getValueSet(this.eitVALSettoCall[i].SEGMENT_NAME); } } getParentValue(parentValue) { if (parentValue.length == 0) { for (let i = 0; i < this.eitResponse.length; i++) { if (this.eitResponse[i].SEGMENT_NAME == parentValue[0].Name) { if (this.eitResponse[i].VALIDATION_TYPE == "N") { let val = (document.getElementById( this.eitResponse[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement).value; return val; } else { let x = document.getElementById( this.eitResponse[i].APPLICATION_COLUMN_NAME ) as HTMLSelectElement; if (x.options.length > 0) { let val = x.options[x.selectedIndex] ? x.options[x.selectedIndex].value : null; return val; } else { return ""; } } } } } else { return ""; } } 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.eitResponse.length; i++) { if (this.eitResponse[i].SEGMENT_NAME == segmentName) { descFlexName = this.eitResponse[i].DESC_FLEX_NAME; descFlexContextCode = this.eitResponse[i].DESC_FLEX_CONTEXT_CODE; parentValue = this.eitResponse[i].PARENT_SEGMENTS_VS_SplitedVS; ParentsList = this.eitResponse[i].PARENT_SEGMENTS_VS_SplitedVS; validationType = this.eitResponse[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.profileService.getSetValue(body).subscribe((result: any) => { if (result.GetValueSetValuesList != null) { this.fillDropdownList(segmentName, result.GetValueSetValuesList); } }); let arr: any = []; return arr; } getDependenciesParams(parentsList) { let parentArr: any = []; for (let i = 0; i < parentsList.length; i++) { for (let j = 0; j < this.eitResponse.length; j++) { if (this.eitResponse[j].SEGMENT_NAME == parentsList[i].Name) { if (this.eitResponse[j].DISPLAY_FLAG != "N") { if (this.eitResponse[j].VALIDATION_TYPE == "N") { let idColName: string; let val: any; if ( this.eitResponse[j].FORMAT_TYPE == "Y" || this.eitResponse[j].FORMAT_TYPE == "I" ) { //standard date time or //time let elem = document.getElementById( this.eitResponse[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.eitResponse[j].FORMAT_TYPE == "Y") idColName = this.cs.formatStandardDate(val); } else { val = (document.getElementById( this.eitResponse[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.eitResponse[j].FORMAT_TYPE == "X") { //date // idColName = this.cs.formatDate(val); idColName = this.cs.formatDateNew(val); } } parentArr.push({ SEGMENT_NAME: this.eitResponse[j].SEGMENT_NAME, VALUE_COLUMN_NAME: val, DESCRIPTION: "", ID_COLUMN_NAME: idColName, FLEX_VALUE_SET_NAME: this.eitResponse[j].FLEX_VALUE_SET_NAME }); break; } else { if (this.eitResponse[j].READ_ONLY != "Y") { let x = document.getElementById( this.eitResponse[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.eitResponse[j].SEGMENT_NAME, VALUE_COLUMN_NAME: text, DESCRIPTION: "", ID_COLUMN_NAME: val, FLEX_VALUE_SET_NAME: this.eitResponse[j].FLEX_VALUE_SET_NAME }); break; } else { let x = document.getElementById( this.eitResponse[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.eitResponse[j].SEGMENT_NAME, VALUE_COLUMN_NAME: text, DESCRIPTION: "", ID_COLUMN_NAME: val, FLEX_VALUE_SET_NAME: this.eitResponse[j].FLEX_VALUE_SET_NAME }); break; } } } else { let x = document.getElementById( this.eitResponse[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.eitResponse[j].SEGMENT_NAME, VALUE_COLUMN_NAME: text, DESCRIPTION: "", ID_COLUMN_NAME: val, FLEX_VALUE_SET_NAME: this.eitResponse[j].FLEX_VALUE_SET_NAME }); break; } } } } return parentArr; } 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"); } getRequiredFilds() { for (let i = 0; i < this.eitResponse.length; i++) { if (this.eitResponse[i].REQUIRED_FLAG == "Y") { let elemVal = (document.getElementById( this.eitResponse[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement).value; if (elemVal == "") { //alert(this.eitResponse[i].SEGMENT_NAME+" is required"); break; } } } } getElementByName(segmentName) { let elemID: any = ""; for (let i = 0; i < this.eitResponse.length; i++) { if (this.eitResponse[i].SEGMENT_NAME == segmentName) { elemID = this.eitResponse[i].APPLICATION_COLUMN_NAME; break; } } return document.getElementById(elemID) as HTMLInputElement; } getSelectElementByName(segmentName) { let elemID: any = ""; for (let i = 0; i < this.eitResponse.length; i++) { if (this.eitResponse[i].SEGMENT_NAME == segmentName) { elemID = this.eitResponse[i].APPLICATION_COLUMN_NAME; break; } } return elemID; } 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; } 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; } isStandardDateVal(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; } 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; } 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; } 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.eitResponse.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 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 = this.comtransNo; let textValue : any; // if(this.ExtraObj.transactionNo) // transNo=this.ExtraObj.transactionNo; for (let i = 0; i < this.eitResponse.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.eitResponse[i].APPLICATION_COLUMN_NAME ); let y = updatedObj; transNo = y.TRANSACTION_NUMBER; // set the transaction number for all items in the updated loop } if (this.eitResponse[i].DISPLAY_FLAG != "N") { if (this.eitResponse[i].VALIDATION_TYPE == "N") { let elem = document.getElementById( this.eitResponse[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement; let elemVal = (document.getElementById( this.eitResponse[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement).value; textValue = elemVal; //let elemVal= (document.getElementById(this.eitResponse[i].APPLICATION_COLUMN_NAME)).value; if ( this.eitResponse[i].FORMAT_TYPE == "X" && this.eitResponse[i].DISPLAY_FLAG != "N" ) { //date elemVal = this.cs.formatDate(elemVal); } else if ( this.eitResponse[i].FORMAT_TYPE == "Y" && this.eitResponse[i].DISPLAY_FLAG != "N" ) { //standard date time // elemVal = elem.dataset.dtvalue; // elemVal = this.cs.formatStandardDate(elemVal); elemVal = this.cs.formatDate(elemVal); } else if ( this.eitResponse[i].FORMAT_TYPE == "I" && this.eitResponse[i].DISPLAY_FLAG != "N" ) { //time if(elemVal.length>5){ elemVal = elemVal.substring(11, 16); }else{ elemVal = elemVal; } } if (this.eitResponse[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.eitResponse[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } else { let x = document.getElementById( this.eitResponse[i].APPLICATION_COLUMN_NAME ) as HTMLSelectElement; if (this.eitResponse[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.eitResponse[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.eitResponse[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } //end else } else { let x = document.getElementById( this.eitResponse[i].APPLICATION_COLUMN_NAME ) as HTMLSelectElement; let val = x.dataset.colmText; textValue = x.value; if (this.eitResponse[i].REQUIRED_FLAG == "Y" && !val) { x.classList.add("requiredClassElm"); //this.common.showRequiredMsg(); return false; } else { x.classList.remove("requiredClassElm"); } if (val) varcharValue = val; valuseArr.push({ TRANSACTION_NUMBER: transNo, NAME: this.eitResponse[i].APPLICATION_COLUMN_NAME, VARCHAR2_VALUE: varcharValue, NUMBER_VALUE: numbervalue, DATE_VALUE: dateValue }); } if (this.getPassdirfromNotifiPage) { let updatedObj = this.validateEitObj.find( x => x.APPLICATION_COLUMN_NAME == this.eitResponse[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.eitResponse[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.eitResponse[i] .APPLICATION_COLUMN_NAME, DATATYPE: this.eitResponse[i].DATATYPE, DESC_FLEX_CONTEXT_CODE: this.eitResponse[i].DESC_FLEX_CONTEXT_CODE, DESC_FLEX_NAME: this.eitResponse[i].DESC_FLEX_NAME, DISPLAY_FLAG: this.eitResponse[i].DISPLAY_FLAG, SEGMENT_NAME: this.eitResponse[i].SEGMENT_NAME, SEGMENT_PROMPT: this.eitResponse[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; } submitEit() { let list = this.basicRequest.EITTransactionTBL; this.basicRequest.EITTransactionTBL = this.fixTransactionNo(list); this.profileService .submitEit(this.basicRequest) .subscribe((result: AddEitResponse) => { this.handleSubmitEitResult(result); }); } 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; } handleSubmitEitResult(result) { if (this.cs.validResponse(result)) { this.cs.sharedService.setSharedData( this.basicRequest, BasicRequest.SHARED_DATA ); this.cs.sharedService.setSharedData(result, AddEitResponse.SHARED_DATA); //this.addrespList=result.SubmitEITTransactionList; // this.itemKey=this.addrespList.P_ITEM_KEY; // this.P_TransactionID=result.SubmitEITTransactionList.P_TRANSACTION_ID; // this.sharedData.setSharedData(result,AddEitResponse.SHARED_DATA); // // this.sharedData.setSharedData(result.SubmitEITTransactionList.P_TRANSACTION_ID,"TransactionIDResubmit"); // // this.sharedData.setSharedData(this.eitRequest,EitRequest.SHARED_DATA); this.cs.sharedService.setSharedData( { isResubmit: false }, "confirmAddEITData" ); this.cs.openConfirmEitPage(); // this.navCtrl.push("ConfirmAddEitPage", { isResubmit: false }); } } // validateEITTransaction() { // // let EITTransactionValues:any= []; // this.arrValues = this.getElementsValues(); // if (this.arrValues) { // this.basicRequest = { // P_SELECTED_EMPLOYEE_NUMBER: this.selEmp, // P_MENU_TYPE: this.menuType, // P_SELECTED_RESP_ID: this.respID, //this.selMenu.List_Menu.RESP_ID,//-999, // P_FUNCTION_NAME: this.functionName, // P_DESC_FLEX_CONTEXT_CODE: this.eitResponse[0].DESC_FLEX_CONTEXT_CODE, // EITTransactionTBL: this.arrValues // }; // this.eitService // .validateEITTransaction(this.eitRequest) // .subscribe((result: any) => { // this.handleEITValidateTr(result); // }); // } // } // private handleEITValidateTr(result) { // let data: any = { eitRequest: {}, updated: [] }; // if (this.cs.validResponse(result)) { // // public static SHARED_DATA = 'login-request'; // this.cs.sharedService.setSharedData( // this.eitRequest, // EitRequest.SHARED_DATA // ); // if (this.getPassdirfromNotifiPage) { // let data: any = { eitRequest: {}, updated: [] }; // data.eitRequest = this.eitRequest; // data.updated = this.updatedValues; // // this.viewCtrl.dismiss(data); // this.modalController.dismiss(data); // // this.closemodal(); // } else { // this.submitEit(); // // this.navCtrl.push("ConfirmAddEitPage"); // // data = { eitRequest: {}, updated: [] }; // // data.eitRequest = this.eitRequest; // // data.updated = this.updatedValues; // // this.viewCtrl.dismiss(data); // } // } else { // this.updatedValues = []; // data = { eitRequest: {}, updated: [] }; // } // } }