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 { EitRequest } from "../models/eit.request" ;
import { ModalController } from "@ionic/angular" ;
import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service" ;
import { EITTransactionsRequest } from "../models/EITTransactionsReq" ;
import { EitService } from "../services/eit.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 'src/app/notification/models/EITNotificationBodyRes';
import { EITNotificatonBodyResponse } from "../models/EITNotificationBodyRes" ;
@Component ( {
selector : "app-add-eit" ,
templateUrl : "./add-eit.component.html" ,
styleUrls : [ "./add-eit.component.scss" ]
} )
export class AddEitComponent 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 ;
// private parentChilds: any[];
getPassMnuEntryObj : MenuEntry ;
selMenu : MenuResponse ;
eitSubmitAction : number = 0 ; //not submit
private eitRequest : EitRequest ;
private validateEitObj : any = [ ] ;
private ExtraObj : any = { } ;
private arrValues : any = [ ] ;
selEmp : string ;
respID : number ;
headerTitle : string = "" ;
isResubmit : boolean = false ;
//private updatedNotObject:any=[];
private updatedValues : any = [ ] ;
addEITData : any ;
direction :string ;
constructor (
public modalController : ModalController ,
public cs : CommonService ,
private ts : TranslatorService ,
private eitService : EitService ,
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 . eitRequest = new EitRequest ( ) ;
// this.buttonInput = new ButtonInput('btnSubmit', 'Submit', 'containerDiv', 'Y');
////*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 ;
// this.eitSubmitAction=this.getPassNotificationDetails.EIT_ACTION;
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
) ;
}
// window.addEventListener('keyboardDidShow', () => {
// document.activeElement.scrollIntoView(false);
// });
}
ngOnInit() { }
ngAfterViewInit() {
console . log ( "ngAfterViewInit" ) ;
// console.log(this.containerDiv.nativeElement);
this . getEitDffStructure ( ) ;
// this.addFieldToDOM(this.buttonInput, 'btnSubmit', this.cs.presentAlert('Clicked!'), true)
}
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_USER_NAME:this.userName
} ;
this . eitService . getEITDFFStrutre ( body ) . subscribe ( ( result : any ) = > {
this . handleEitDffStructureResult ( result ) ;
} ) ;
}
handleEitDffStructureResult ( result ) {
if ( result . GetEITDFFStructureList != null ) {
this . eitResponse = result . GetEITDFFStructureList ;
this . drawEitFields ( result . GetEITDFFStructureList ) ;
}
}
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
// if(feildsList[i].DEFAULT_TYPE=="C"||feildsList[i].DEFAULT_TYPE==""){// default type constant
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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
// }else if(feildsList[i].DEFAULT_TYPE=="P"||feildsList[i].DEFAULT_TYPE=="S"){// profile/ sql
// this.textInput = new TextInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,this.getDefaultValue(feildsList[i].DESC_FLEX_NAME,feildsList[i].DESC_FLEX_CONTEXT_CODE,feildsList[i].SEGMENT_NAME,feildsList[i].PARENT_SEGMENTS_VS_SplitedVS,feildsList[i].PARENT_SEGMENTS_DV_Splited),containerId,feildsList[i].MOBILE_ENABLED);
// }
} else if ( feildsList [ i ] . FORMAT_TYPE == "N" ) {
// number
// if(feildsList[i].DEFAULT_TYPE=="C"||feildsList[i].DEFAULT_TYPE==""){
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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
// }else if(feildsList[i].DEFAULT_TYPE=="P"||feildsList[i].DEFAULT_TYPE=="S"){
// this.numberInput = new NumberInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,this.getDefaultValue(feildsList[i].DESC_FLEX_NAME,feildsList[i].DESC_FLEX_CONTEXT_CODE,feildsList[i].SEGMENT_NAME,feildsList[i].PARENT_SEGMENTS_VS_SplitedVS,feildsList[i].PARENT_SEGMENTS_DV_Splited),containerId,feildsList[i].MOBILE_ENABLED);
// }
} 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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
} 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 ,
feildsList [ i ] . REQ_COL_TIP ,
) ;
}
// else if(feildsList[i].DEFAULT_TYPE=="D"){//current date
// // this.dateInput = new DateInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,"currentDate",containerId,feildsList[i].MOBILE_ENABLED);
// this.dateInput = new DateInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,defaultVal,containerId,feildsList[i].MOBILE_ENABLED);
// }else if(feildsList[i].DEFAULT_TYPE=="P"||feildsList[i].DEFAULT_TYPE=="S"){// sql and profile
// this.dateInput = new DateInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,this.getDefaultValue(feildsList[i].DESC_FLEX_NAME,feildsList[i].DESC_FLEX_CONTEXT_CODE,feildsList[i].SEGMENT_NAME,feildsList[i].PARENT_SEGMENTS_VS_SplitedVS,feildsList[i].PARENT_SEGMENTS_DV_Splited),containerId,feildsList[i].MOBILE_ENABLED);
// }
} 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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
} 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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
}
const elem = document . getElementById (
feildsList [ i ] . APPLICATION_COLUMN_NAME
) ;
// elem.addEventListener("click", e => {
// if (feildsList[i].MOBILE_ENABLED != "Y") return false;
// this.showDateTimePicker(
// feildsList[i].APPLICATION_COLUMN_NAME,
// feildsList[i].MAXIMUM_SIZE
// );
// e.stopImmediatePropagation();
// });
// else if(feildsList[i].DEFAULT_TYPE=="D"){
// this.datetimeInput = new DateTimeInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,"currentDateTime",containerId,feildsList[i].MOBILE_ENABLED);
// }else if(feildsList[i].DEFAULT_TYPE=="P"||feildsList[i].DEFAULT_TYPE=="S"){
// this.datetimeInput = new DateTimeInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,this.getDefaultValue(feildsList[i].DESC_FLEX_NAME,feildsList[i].DESC_FLEX_CONTEXT_CODE,feildsList[i].SEGMENT_NAME,feildsList[i].PARENT_SEGMENTS_VS_SplitedVS,feildsList[i].PARENT_SEGMENTS_DV_Splited),containerId,feildsList[i].MOBILE_ENABLED);
// }
} 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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
} 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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
}
}
} 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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
} else {
// dropdown list missing open in differnt page
//check this validation since he doesnt check the other default_type
//if(feildsList[i].DEFAULT_TYPE=="P" || feildsList[i].DEFAULT_TYPE=="S"){
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 ,
feildsList [ i ] . REQ_COL_TIP
) ;
// }else{
// this.selectInput = new SelectInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,"",containerId,feildsList[i].MOBILE_ENABLED);
// }
// this.getValueSet(feildsList[i].SEGMENT_NAME);
this . fillDropdownList (
feildsList [ i ] . SEGMENT_NAME ,
feildsList [ i ] . E_SERVICES_VS ,
feildsList [ i ] . E_SERVICES_DV
) ;
// this.eitVALSettoCall.push(feildsList[i]);
}
}
//const elem = document.getElementById(feildsList[i].APPLICATION_COLUMN_NAME);
//elem.addEventListener("click", (e) => {
// this.getValueSet(feildsList[i].SEGMENT_NAME);
// e.stopImmediatePropagation();
// });
this . bindHtmlElemEvents (
feildsList [ i ] . APPLICATION_COLUMN_NAME ,
feildsList [ i ]
) ;
} else {
// if(feildsList[i].VALIDATION_TYPE=="N"){
this . hiddenInput = new HiddenInput (
defaultVal ,
feildsList [ i ] . APPLICATION_COLUMN_NAME ,
defaultValText ,
containerId
) ;
// }else{
// this.selectInput = new SelectInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,defaultVal,containerId,feildsList[i].MOBILE_ENABLED,feildsList[i].DISPLAY_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 ]
) ;
}
}
// this.callValueSet();
// let msg:string="";
// msg=this.translate.translate("confirmAddEit.start");
// this.buttonInput = new ButtonInput("EIT_Btn_Submit", this.translate.translate('general.submit'), containerId, "");
// const elem = document.getElementById("EIT_Btn_Submit");
// elem.addEventListener("click", (e) => {
// this.validateEITTransaction();
// });
if ( this . validateEitObj && this . validateEitObj . length > 0 ) {
this . fillEITStructure ( ) ;
}
this . bindToolTip ( ) ;
}
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 ;
}
//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 = "" ;
// for(let i = select.options.length - 1 ; i >= 0 ; i--)
// {
// select.remove(i);
// }
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 ;
//select.dataset.hiddenval="";
} else {
select . value = DV . P_ID_COLUMN_NAME ;
}
select . disabled = false ;
}
}
bindToolTip ( ) {
const toolTips = Array . from ( document . getElementsByClassName ( 'toolTip' ) ) ;
toolTips . forEach ( toolTip = > {
toolTip . addEventListener ( 'click' , e = > {
const toolTipData = toolTip . getAttribute ( "data-tooltip" ) ;
this . cs . yellowToast ( toolTipData ) ;
} ) ;
} ) ;
}
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("change", (e) => {
elem . addEventListener ( changeEvent , e = > {
//console.log("elem change "+elem.id);
//let x=e.currentTarget as HTMLInputElement;
//let isEmpty:boolean=false;
// if(!x.value)
// isEmpty=true;
//emptyChildElement
if ( obj . FORMAT_TYPE == "N" ) {
const maxSize = obj . MAXIMUM_SIZE ;
const value = ( document . getElementById ( obj . APPLICATION_COLUMN_NAME ) as HTMLInputElement ) . value ;
( document . getElementById ( obj . APPLICATION_COLUMN_NAME ) as HTMLInputElement ) . value = value . length > maxSize ? value . substring ( 0 , maxSize ) : value ;
}
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 = > {
//if(isEmpty)
this . emptyChildElement ( element ) ;
// else
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 = > {
// if(isEmpty){
this . emptyChildElement ( element ) ;
// }else{
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 ;
// e.stopImmediatePropagation();
} ) ;
} 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!=""){ parentVal= this.getDependenciesParams(parentValue)[0].ID_COLUMN_NAME;}
//if(ParentsList!=""){dependenciesList =this.getDependenciesParams(ParentsList); }
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 ;
}
}
//if (dependenciesList==false){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 ) ;
// console.log(elem);
// if(elem.dataset.hiddenval){
// elem.dataset.hiddenval="";
// return false;
// }
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 ) ,
//alert(elem.length);
// var firstoption = document.createElement("option");
// firstoption.text = text;
// firstoption.value = val;
// elem.add(firstoption);
elem . value = val ;
//elem.text=text;
} else {
// console.log("else - " + elem.value);
elem . value = val ;
// elem.innerText = text;
elem . setAttribute ( "value" , val ) ;
// console.log("else - " + elem.value);
}
}
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 . eitService . 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 ? 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 ? 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 ? 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 ? 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= (<HTMLInputElement>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 . cs . redToastPK ( "eit" , "required-text" ) ;
//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 . cs . redToastPK ( "eit" , "required-text" ) ;
//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 ;
// below code is to handle fields which are hidden and required and has to have default value.
// So if colmText is empty then get value from value attribute which is already been set initially
if ( this . eitResponse [ i ] . DISPLAY_FLAG == "N" && this . eitResponse [ i ] . REQUIRED_FLAG == "Y" && ! val ) {
const attributeValue = x . getAttribute ( 'value' ) ;
val = attributeValue ? attributeValue : '' ;
textValue = val ;
}
if ( this . eitResponse [ i ] . REQUIRED_FLAG == "Y" && ! val ) {
x . classList . add ( "requiredClassElm" ) ;
this . cs . redToastPK ( "eit" , "required-text" ) ;
//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 . eitRequest . EITTransactionTBL ;
this . eitRequest . EITTransactionTBL = this . fixTransactionNo ( list ) ;
this . eitService
. submitEit ( this . eitRequest )
. 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 . eitRequest ,
EitRequest . 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 . eitRequest = {
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 : [ ] } ;
}
}
}