You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mohemmionic5/Mohem/src/app/eit/eit-list/eit-list.component.ts

609 lines
22 KiB
TypeScript

import { AddEitComponent } from './../add-eit/add-eit.component';
import { ModalController } from '@ionic/angular';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { EitRequest } from './../models/eit.request';
import { EITTransactionsRequest } from './../models/EITTransactionsReq';
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
import { Component, OnInit } from '@angular/core';
import { EitService } from '../services/eit.service';
import { EIT_ACTION } from '../models/submit.eit.action';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { AddEitResponse } from '../models/add.eit.response';
import { AccrualService } from 'src/app/accrual-balances/services/accrual.service';
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
@Component({
selector: 'app-eit-list',
templateUrl: './eit-list.component.html',
styleUrls: ['./eit-list.component.scss'],
})
export class EitListComponent implements OnInit {
Sdate: any;
emp_no: any;
balance:any;
//////////////up
P_PAGE_NUM: number;
P_PAGE_LIMIT: number;
IsReachEnd = false;
userName: any;
isDelete = false;
getResEITTransactionList: any = [];
eitAddedList: any = [];
getPassMnuEntryObj: any;
selMenu: MenuResponse = new MenuResponse();
EITTransactionsListObj: EITTransactionsRequest = new EITTransactionsRequest();
selEmp: string;
respID: number;
transactionNo = 0;
menuType = '';
public functionName = '';
private eitRequest: EitRequest;
private eitTransactionTbl: any = [];
private validEitTransactionTbl: any = [];
private desxFlexCode = '';
private selectedIndex: number;
private pAction = 0;
public headerTitle = '';
data: any;
accrualNetInfants: any;
accrualUNetChild: any;
accrualNetAdult: any;
public options = {
cutoutPercentage: 80,
tooltips: { enabled: false },
legend: { display: false }};
gaugeType = 'full';
accrualBalancesList: any;
common: any;
direction: string;
// gaugeValue = 11.200;
// gaugeLabel = "";
// tslint:disable-next-line: max-line-length
constructor(private cs: CommonService, private EITService: EitService, public ts: TranslatorService,
private modalCtrl: ModalController, public accrualService: AccrualService, public authService:AuthenticationService,) {
this.direction = TranslatorService.getCurrentLanguageName();
this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, false);
this.selEmp = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_EMP, false);
this.respID = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_RESP_ID, false);
this.getPassMnuEntryObj = this.selMenu.GetMenuEntriesList;
this.menuType = this.selMenu.List_Menu.MENU_TYPE;
this.transactionNo = 0;
this.functionName = this.getPassMnuEntryObj.FUNCTION_NAME;
this.headerTitle = this.selMenu.GetMenuEntriesList.PROMPT;
this.validEitTransactionTbl = [];
this.P_PAGE_NUM = 1;
this.P_PAGE_LIMIT = 50;
}
ngOnInit() {
/////////////
this.Sdate = new Date().toISOString();
this.getUserDetails();
////////////////up
this.getEITTransactions();
this.accrualBalancesList = this.cs.sharedService.getSharedData('tickitsbalance', false);
// accrualNetInfants
// accrualUNetChild
// accrualNetAdult
this.accrualNetAdult = this.accrualBalancesList[1].ACCRUAL_NET_ENTITLEMENT;
this.accrualUNetChild = this.accrualBalancesList[2].ACCRUAL_NET_ENTITLEMENT;
this. accrualNetInfants = this.accrualBalancesList[3].ACCRUAL_NET_ENTITLEMENT;
this.data = {
// labels: ['earingTotal', 'deductionTotal'],
datasets: [
{ data: [this.accrualNetInfants, this.accrualUNetChild, this.accrualNetAdult],
backgroundColor: [
'#1FA269',
'#22C6B3',
'#3CB9D5', ],
borderWidth: 2
}
]
};
}
getUserDetails(){
this.authService.loadAuthenticatedUser().subscribe((user: AuthenticatedUser) => {
if (user) {
this.emp_no=user.EMPLOYEE_NUMBER;
}
});
}
public getAccrualBalance() {
if (this.Sdate) {
let today = new Date(this.Sdate);
let day = today.getDate();
let month = today.getMonth() + 1;
let year = today.getFullYear();
let todayDate = month + '/' + day + '/' + year;
let effectiveDate = todayDate;
const request = {
P_SELECTED_EMPLOYEE_NUMBER: this.emp_no,
P_EFFECTIVE_DATE: effectiveDate
};
this.accrualService
.getAccrualBalances(request)
.subscribe((result: any) => {
this.handleAccrualResult(result);
});
}
}
handleAccrualResult(result) {
if (this.cs.validResponse(result)) {
this.balance=result.GetAccrualBalancesList;
this.accrualNetAdult = this.balance[1].ACCRUAL_NET_ENTITLEMENT;
this.accrualUNetChild = this.balance[2].ACCRUAL_NET_ENTITLEMENT;
this. accrualNetInfants = this.balance[3].ACCRUAL_NET_ENTITLEMENT;
}
}
///////////////////////////////////
getEITTransactions() {
this.IsReachEnd = false;
this.EITTransactionsListObj.P_PAGE_LIMIT = this.P_PAGE_LIMIT;
this.EITTransactionsListObj.P_PAGE_NUM = this.P_PAGE_NUM;
this.EITTransactionsListObj.P_SELECTED_EMPLOYEE_NUMBER = this.selEmp;
this.EITTransactionsListObj.P_SELECTED_RESP_ID = this.respID;
this.EITTransactionsListObj.P_MENU_TYPE = this.selMenu.List_Menu.MENU_TYPE;
this.EITTransactionsListObj.P_FUNCTION_NAME = this.getPassMnuEntryObj.FUNCTION_NAME;
this.EITService.getEITTransactionsList(this.EITTransactionsListObj).
subscribe((result: any) => {
this.handleEITTransactionsResult(result);
});
}
handleEITTransactionsResult(result) {
if (this.cs.validResponse(result)) {
if (this.cs.hasData(result.GetEITTransactionList)) {
this.getResEITTransactionList = result.GetEITTransactionList;
this.P_PAGE_NUM++;
this.EITTransactionsListObj.P_PAGE_NUM = this.P_PAGE_NUM;
const lastItemIndex = this.getResEITTransactionList.length - 1;
if (result.GetEITTransactionList[lastItemIndex] && result.GetEITTransactionList[lastItemIndex].Collection_Transaction[0]) {
const lastitem = result.GetEITTransactionList[lastItemIndex].Collection_Transaction[0];
// tslint:disable-next-line: triple-equals
if (lastitem.NO_OF_ROWS == lastitem.ROW_NUM) {
this.IsReachEnd = true;
} else {
this.IsReachEnd = false;
}
}
}
}
}
doInfinite(infiniteScroll) {
if (!this.IsReachEnd) {
this.EITService.getEITTransactionsList(this.EITTransactionsListObj).
subscribe((result: any) => {
if (this.cs.validResponse(result)) {
if (this.cs.hasData(result.GetEITTransactionList)) {
this.P_PAGE_NUM++;
this.EITTransactionsListObj.P_PAGE_NUM = this.P_PAGE_NUM;
result.GetEITTransactionList.forEach(vr => {
console.log(vr.length);
if(vr.length && vr.length != 0){
if (vr.Collection_Transaction[0].ROW_NUM == vr.Collection_Transaction[0].NO_OF_ROWS) {
this.IsReachEnd = true;
} else {
this.IsReachEnd = false;
}
this.getResEITTransactionList.push(vr);
}
});
} else {
this.IsReachEnd = true;
}
}
// this.P_PAGE_NUM++;
if (infiniteScroll) {
infiniteScroll.target.complete();
}
}, (Error) => console.log(Error), () => infiniteScroll.target.complete());
} else {
if (infiniteScroll) {
infiniteScroll.target.complete();
}
}
}
addEITRrq(i?) {
this.pAction = EIT_ACTION.ADD;
// this.sharedData.setSharedData(this.getResEITTransactionList[i].Collection_Transaction,EITTransactionsRequest.SHARED_DATA);
this.cs.sharedService.setSharedData(this.pAction, EITTransactionsRequest.SUBMIT_EIT_ACTION);
// this.navCtrl.push("AddEitPage");
// this.openEit(i);
this.openEitNew(i);
}
updateEITRrq(i) {
this.pAction = EIT_ACTION.UPDATE;
this.cs.sharedService.setSharedData(this.getResEITTransactionList[i].Collection_Transaction, EITTransactionsRequest.SHARED_DATA);
this.cs.sharedService.setSharedData(this.pAction, EITTransactionsRequest.SUBMIT_EIT_ACTION);
// this.fillEitTransactionTable(i);
// this.navCtrl.push("AddEitPage");
// this.openEit(i);
this.openEitNew(i);
}
deleteEIT(i) {
this.deleteEITRrq(i);
// let alert=this.common.showConfirmMsg(this.translate.translate('requestEit.deleteReq'));
// alert.onDidDismiss((data) => {
// if(data==true){
// this.deleteEITRrq(i);
// }
// });
}
deleteEITRrq(i) {
const list: any = this.getResEITTransactionList[i];
// tslint:disable-next-line: triple-equals
if (list.statusID != 2) {
this.selectedIndex = i;
// if(this.transactionNo==0)
this.transactionNo++;
this.pAction = EIT_ACTION.DELETE;
// this.sharedData.setSharedData(this.getResEITTransactionList[i].Collection_Transaction,EITTransactionsRequest.SHARED_DATA);
// this.sharedData.setSharedData(EIT_ACTION.DELETE,EITTransactionsRequest.SUBMIT_EIT_ACTION);
this.fillEitTransactionTable(i);
this.validateEITTransaction();
// this.submitEit();
// this.navCtrl.push("AddEitPage");
} else {
let msg = '';
msg = this.ts.trPK('general', 'attemptDel');
this.cs.presentAlert(msg);
// alert("You are attempting to delete a row that has already been deleted.");
}
}
openEitNew(index) {
let item: any = [];
if (this.pAction == EIT_ACTION.UPDATE) {
item = this.getResEITTransactionList[index].Collection_Transaction;
}
this.transactionNo++;
// tslint:disable-next-line: max-line-length
this.cs.sharedService.setSharedData({ dirfromNotificationPage: false, submitEITObjList: item, transNo: this.transactionNo }, 'AddEITData');
this.cs.openAddEitPage();
// this.navCtrl.push('AddEitPage', { dirfromNotificationPage: false, submitEITObjList: item, transNo: this.transactionNo });
}
async openEit(index) {
let item: any = [];
// tslint:disable-next-line: triple-equals
if (this.pAction == EIT_ACTION.UPDATE) {
item = this.getResEITTransactionList[index].Collection_Transaction;
}
this.transactionNo++;
// tslint:disable-next-line: max-line-length
this.cs.sharedService.setSharedData({ dirfromNotificationPage: false, submitEITObjList: item, transNo: this.transactionNo }, 'AddEITData');
const modalPage = await this.modalCtrl.create({
component: AddEitComponent
});
// modalPage.present();
modalPage.onDidDismiss()
.then((data: any) => {
if (data) {
// this.transactionNo++;
// this.updatedData=this.updatedData?this.updatedData.concat(data.updated):data.updated;
// this.notificationBodyRes[index].Collection_Transaction=data.updated;
this.selectedIndex = index;
this.desxFlexCode = data.eitRequest.P_DESC_FLEX_CONTEXT_CODE;
// tslint:disable-next-line: triple-equals
if (this.pAction == EIT_ACTION.ADD) {
index = this.eitAddedList.length + 1;
const status = this.ts.trPK('eit', '.added');
const statusID = EIT_ACTION.ADD;
const obj = { status, statusID, Collection_Transaction: data.updated };
this.eitAddedList.push(obj);
} else {
const status = this.ts.trPK('eit', '.updated');
const statusID = EIT_ACTION.UPDATE;
this.getResEITTransactionList[this.selectedIndex].status = status;
this.getResEITTransactionList[this.selectedIndex].statusID = statusID;
}
this.updateTransactionList(data.eitRequest.EITTransactionTBL, false);
} else {
// tslint:disable-next-line: triple-equals
if (this.transactionNo != 0) {
this.transactionNo--;
}
}
});
modalPage.present();
// modalPage.onDidDismiss(data => {
// if (data) {
// // this.transactionNo++;
// //this.updatedData=this.updatedData?this.updatedData.concat(data.updated):data.updated;
// // this.notificationBodyRes[index].Collection_Transaction=data.updated;
// this.selectedIndex = index;
// this.desxFlexCode = data.eitRequest.P_DESC_FLEX_CONTEXT_CODE;
// if (this.pAction == EIT_ACTION.ADD) {
// index = this.eitAddedList.length + 1;
// let status = this.ts.trPK("eit", ".added");
// let statusID = EIT_ACTION.ADD;
// let obj = { status: status, statusID: statusID, Collection_Transaction: data.updated };
// this.eitAddedList.push(obj);
// } else {
// let status = this.ts.trPK("eit", ".updated");
// let statusID = EIT_ACTION.UPDATE;
// this.getResEITTransactionList[this.selectedIndex].status = status;
// this.getResEITTransactionList[this.selectedIndex].statusID = statusID;
// }
// this.updateTransactionList(data.eitRequest.EITTransactionTBL, false);
// } else {
// if (this.transactionNo != 0)
// this.transactionNo--;
// }
// });
}
fillEitTransactionTable(index) {
let obj = { peiObjVer: null, peiExtraInfoID: null };
const list: any = this.getResEITTransactionList[index].Collection_Transaction;
let valuseArr: any = [];
// tslint:disable-next-line: prefer-for-of
for (let i = 0; i < list.length; i++) {
const item = list[i];
// tslint:disable-next-line: triple-equals
// tslint:disable-next-line: max-line-length
if (item.APPLICATION_COLUMN_NAME != 'PEI_ACTION' && item.APPLICATION_COLUMN_NAME != 'PEI_EXTRA_INFO_ID' && item.APPLICATION_COLUMN_NAME != 'PEI_OBJECT_VERSION_NUMBER') {
this.desxFlexCode = item.DESC_FLEX_CONTEXT_CODE;
// tslint:disable-next-line: triple-equals
if (item.DATE_VALUE == '') {
item.DATE_VALUE = null;
}
valuseArr.push(
{
TRANSACTION_NUMBER: this.transactionNo,
NAME: item.APPLICATION_COLUMN_NAME,
VARCHAR2_VALUE: item.VARCHAR2_VALUE,
NUMBER_VALUE: item.NUMBER_VALUE,
DATE_VALUE: item.DATE_VALUE,
}
);
} else {
if (item.APPLICATION_COLUMN_NAME == 'PEI_OBJECT_VERSION_NUMBER') {
obj.peiObjVer = item.NUMBER_VALUE;
}
else if (item.APPLICATION_COLUMN_NAME == 'PEI_EXTRA_INFO_ID') {
obj.peiExtraInfoID = item.NUMBER_VALUE;
}
}
}// end for
// }
valuseArr = this.fillExtraInformation(valuseArr, 'DELETE_ROW', obj.peiExtraInfoID, obj.peiObjVer, this.transactionNo);
this.eitTransactionTbl = valuseArr;
}
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() {
this.eitRequest = new EitRequest();
const list: any = this.fixTransactionNo();
this.eitRequest.EITTransactionTBL = list;
this.eitRequest.P_SELECTED_EMPLOYEE_NUMBER = this.selEmp;
this.eitRequest.P_MENU_TYPE = this.menuType;
this.eitRequest.P_SELECTED_RESP_ID = this.respID; // this.selMenu.List_Menu.RESP_ID,//-999,
this.eitRequest.P_FUNCTION_NAME = this.functionName;
this.eitRequest.P_DESC_FLEX_CONTEXT_CODE = this.desxFlexCode;
this.EITService.submitEit(this.eitRequest).subscribe((result: AddEitResponse) => {
this.handleSubmitEitResult(result);
});
}
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.cs.sharedService.setSharedData(result.SubmitEITTransactionList.P_TRANSACTION_ID,"TransactionIDResubmit");
// // this.sharedData.setSharedData(this.eitRequest,EitRequest.SHARED_DATA);
this.cs.sharedService.setSharedData({ isResubmit: false, isDelete: this.isDelete }, 'confirmAddEITData');
this.cs.openConfirmEitPage();
// this.navCtrl.push("ConfirmAddEitPage", { isResubmit: false, isDelete: this.isDelete });
}
}
validateEITTransaction() {
this.isDelete = false;
this.eitRequest = {
P_SELECTED_EMPLOYEE_NUMBER: this.selEmp,
P_MENU_TYPE: this.menuType,
P_SELECTED_RESP_ID: this.respID,
P_FUNCTION_NAME: this.functionName,
P_DESC_FLEX_CONTEXT_CODE: this.desxFlexCode,
EITTransactionTBL: this.eitTransactionTbl
};
this.EITService.validateEITTransaction(this.eitRequest).subscribe((result: any) => {
this.handleEITValidateTr(result);
});
}
private handleEITValidateTr(result) {
if (this.cs.validResponse(result)) {
// public static SHARED_DATA = 'login-request';
// this.sharedData.setSharedData(this.eitRequest, EitRequest.SHARED_DATA);
const status = this.ts.trPK('eit', '.deleted');
const statusID = EIT_ACTION.DELETE;
this.isDelete = true;
this.getResEITTransactionList[this.selectedIndex].status = status;
this.getResEITTransactionList[this.selectedIndex].statusID = statusID;
this.updateTransactionList(this.eitTransactionTbl, false);
this.submitEit();
} else {
if (this.transactionNo != 0) {
this.transactionNo--;
}
}
}
updateTransactionList(list, isRemove) {
// let newlist = this.validEitTransactionTbl.map(a => a.NAME='PEI_EXTRA_INFO_ID');
let isAnewRow = false;
let updateDelTransNo: number;
if (this.cs.hasData(this.validEitTransactionTbl)) {
this.validEitTransactionTbl.forEach(element => {
if (element.NAME == 'PEI_EXTRA_INFO_ID') {
if (element.NUMBER_VALUE == -1) {
isAnewRow = true;
return;
}
}
});
}
list.forEach(element => {
// NAME=PEI_EXTRA_INFO_ID
// const index = this.validEitTransactionTbl.findIndex(x => x.TRANSACTION_NUMBER === element.TRANSACTION_NUMBER);
// let newlist = this.validEitTransactionTbl.map(a => a.NAME==='PEI_EXTRA_INFO_ID');
if (isAnewRow == true) {
const index: number = this.validEitTransactionTbl.findIndex(x => x.TRANSACTION_NUMBER === element.TRANSACTION_NUMBER);
// if(index!=-1)
// this.validEitTransactionTbl.splice(index, 1);
} else {
const index: number = this.validEitTransactionTbl.findIndex(x => x.NAME === 'PEI_EXTRA_INFO_ID' && x.NUMBER_VALUE === element.NUMBER_VALUE);
if (index != -1) {
// this.validEitTransactionTbl.splice(index, 1);
if (!updateDelTransNo) {
updateDelTransNo = this.validEitTransactionTbl[index].TRANSACTION_NUMBER;
}
}
}
});
if (updateDelTransNo) {
this.removeItems(updateDelTransNo);
}
if (isRemove == false) {
this.validEitTransactionTbl = this.validEitTransactionTbl ? this.validEitTransactionTbl.concat(list) : list;
}
}
fixTransactionNo(): any[] {
const list: any = [];
let newIndex = 1;
const length: number = this.validEitTransactionTbl.length;
for (let i = 0; i < length; i++) {
// let item :any={};
const item = Object.assign({}, this.validEitTransactionTbl[i]);
const transNo: number = item.TRANSACTION_NUMBER;
const obj: any = item;
if (i == 0) {
obj.TRANSACTION_NUMBER = newIndex;
list.push(obj);
} else {
const prevEl: any = this.validEitTransactionTbl[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;
}
removeItems(transNo) {
const list = [];
for (let i = 0; i < this.validEitTransactionTbl.length; i++) {
if (this.validEitTransactionTbl[i].TRANSACTION_NUMBER != transNo) {
list.push(this.validEitTransactionTbl[i]);
}
}
this.validEitTransactionTbl = list;
}
removeAddedItem(index) {
const list = [];
let item: any = [];
for (let i = 0; i < this.eitAddedList.length; i++) {
if (i != index) {
list.push(this.eitAddedList[i]);
}
}
item = this.eitAddedList[index];
this.eitAddedList = list;
this.removeItems(item.Collection_Transaction[0].TRANSACTION_NUMBER);
}
//////////////////////////
// getUserDetails(){
// this.authService.loadAuthenticatedUser().subscribe((user: AuthenticatedUser) => {
// if (user) {
// this.emp_no=user.EMPLOYEE_NUMBER;
// }
// });
// }
// public getAccrualBalance() {
// if (this.Sdate) {
// let today = new Date(this.Sdate);
// let day = today.getDate();
// let month = today.getMonth() + 1;
// let year = today.getFullYear();
// let todayDate = month + '/' + day + '/' + year;
// let effectiveDate = todayDate;
// const request = {
// P_SELECTED_EMPLOYEE_NUMBER: this.emp_no,
// P_EFFECTIVE_DATE: effectiveDate
// };
// this.accrualService
// .getAccrualBalances(request)
// .subscribe((result: any) => {
// this.handleAccrualResult(result);
// });
// }
// }
// handleAccrualResult(result) {
// if (this.cs.validResponse(result)) {
// this.balance=result.GetAccrualBalancesList;
// }
// }
}
////////////////////////////////up