Merge branch 'master-newdesign' into enad-issues

mekawy-issues
enadhilal 6 years ago
commit d5226e169d

@ -88,9 +88,9 @@ button.item-button.button.button-md.button-clear.button-clear-md {
// padding-left: 10px !important; // padding-left: 10px !important;
border: solid var(--gray) 1px; border: solid var(--gray) 1px;
border-radius: 21px; border-radius: 21px;
padding-left: 145px !important; // padding-left: 145px !important;
margin-left: 86px; margin-left: 86px;
padding-right: 129px; // padding-right: 129px;
margin-right: -143px; margin-right: -143px;
} }
// {padding-left: unset; // {padding-left: unset;

@ -61,10 +61,7 @@
<div class="result-text-container"> <div class="result-text-container">
<!-- <h2>{{totalnumber}}</h2> --> <!-- <h2>{{totalnumber}}</h2> -->
<!-- <h2>{{accrualNet + accrualUsed + accrualYearly}}</h2> --> <!-- <h2>{{accrualNet + accrualUsed + accrualYearly}}</h2> -->
<!-- <span>{{ts.trPK('absenceList','totalNumber')}}</span> --> <!-- <span>{{ts.trPK('absenceList','totalNumber')}}</span> -->
</div> </div>
@ -76,7 +73,7 @@
<div [ngClass]=" direction == 'ltr' ? 'div-green' : 'div-green-ar'"> <div [ngClass]=" direction == 'ltr' ? 'div-green' : 'div-green-ar'">
<ion-col> <ion-col>
<ion-row> <ion-row>
<label class="green-label">{{ts.trPK('absenceList','accrualNet')}}</label> <label class="green-label">{{ts.trPK('absenceList','currentBalance')}}</label>
</ion-row> </ion-row>
<ion-row> <ion-row>
<label class="green-amount">{{accrualNet}}</label> <label class="green-amount">{{accrualNet}}</label>
@ -86,7 +83,7 @@
<div [ngClass]=" direction == 'ltr' ? 'div-red' : 'div-red-ar'"> <div [ngClass]=" direction == 'ltr' ? 'div-red' : 'div-red-ar'">
<ion-col> <ion-col>
<ion-row> <ion-row>
<label class="red-label">{{ts.trPK('absenceList','accrualUsed')}}</label> <label class="red-label">{{ts.trPK('absenceList','usedBalance')}}</label>
</ion-row> </ion-row>
<ion-row> <ion-row>
@ -94,17 +91,17 @@
</ion-row> </ion-row>
</ion-col> </ion-col>
</div> </div>
<div [ngClass]=" direction == 'ltr' ? 'div-orng' : 'div-orng-ar'"> <!-- <div [ngClass]=" direction == 'ltr' ? 'div-orng' : 'div-orng-ar'">
<ion-col> <ion-col>
<ion-row> <ion-row>
<label class="orng-label">{{ts.trPK('absenceList','accrualYearly')}}</label> <label class="orng-label">{{ts.trPK('absenceList','annualBalance')}}</label>
</ion-row> </ion-row>
<ion-row> <ion-row>
<label class="orng-amount" for="">{{accrualYearly}}</label> <label class="orng-amount" for="">{{accrualYearly}}</label>
</ion-row> </ion-row>
</ion-col> </ion-col>
</div> </div> -->
<!-- <div style="position: relative; <!-- <div style="position: relative;
left: 59%; left: 59%;

@ -213,6 +213,7 @@ margin-top: -13px;
margin-top: 0px; margin-top: 0px;
} }
.red-label{ .red-label{
font-size: 12px; font-size: 12px;
margin-top: -13px; margin-top: -13px;
@ -224,16 +225,20 @@ margin-top: -13px;
margin-top: 0px; margin-top: 0px;
} }
.orng-label{ .orng-label{
font-size: 12px; font-size: 12px;
margin-top: -13px; margin-top: -13px;
} }
.orng-amount{ .orng-amount{
font-size: 15px; font-size: 15px;
font-family: WorkSans-Bold; font-family: WorkSans-Bold;
margin-top: 0px; margin-top: 0px;
} }
.contentEit:before { .contentEit:before {
position: absolute; position: absolute;
content: ""; content: "";
@ -247,17 +252,18 @@ margin-top: -13px;
.div-green{ .div-green{
position: relative; position: relative;
left: 82%; left: 82%;
bottom: 128px; bottom: 141px;
color: black; color: black;
background-color: #1FA269; background-color: #1FA269;
width: 11%; width: 11%;
height: 6px; height: 6px;
} }
.div-green-ar{ .div-orng-ar{
position: relative; position: relative;
bottom: 59px; bottom: 59px;
color: black; color: black;
background-color: #1FA269; background-color: #DDB017;
// background-color: #1FA269;
width: 11%; width: 11%;
height: 6px; height: 6px;
right: 9px; right: 9px;
@ -270,12 +276,12 @@ margin-top: -13px;
background-color: #CB3232; background-color: #CB3232;
width: 11%; width: 11%;
height: 6px; height: 6px;
right: 102px; right: 92px;
} }
.div-red{ .div-red{
position: relative; position: relative;
left: 59%; left: 59%;
bottom: 131px; bottom: 146px;
color: black; color: black;
background-color: #CB3232; background-color: #CB3232;
// background-color: #094875; // background-color: #094875;
@ -293,12 +299,12 @@ margin-top: -13px;
width: 11%; width: 11%;
height: 6px; height: 6px;
} }
.div-orng-ar{ .div-green-ar{
position: relative; position: relative;
bottom: 139px; bottom: 124px;
color: black; color: black;
// background-color: #CB3232; // background-color: #DDB017;
background-color: #DDB017; background-color: #1FA269;
width: 11%; width: 11%;
height: 6px; height: 6px;
right: 10px; right: 10px;

@ -109,7 +109,9 @@ export class HomeComponent implements OnInit {
this.data = { this.data = {
// labels: ['earingTotal', 'deductionTotal'], // labels: ['earingTotal', 'deductionTotal'],
datasets: [ datasets: [
{ data: [this.accrualNet,this.accrualYearly,this.accrualUsed], // { data: [this.accrualNet,this.accrualYearly,this.accrualUsed],
{
data: [this.accrualNet,this.accrualUsed],
backgroundColor: [ backgroundColor: [
'#1FA269', '#1FA269',
'#DDB017', '#DDB017',
@ -251,6 +253,7 @@ createAbsence() {
}); });
} }
} }
handleAccrualResult(result) { handleAccrualResult(result) {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
this.balance = result.GetAccrualBalancesList; this.balance = result.GetAccrualBalancesList;
@ -258,13 +261,15 @@ createAbsence() {
if(this.balance){ if(this.balance){
this.accrualNet = this.balance[0].ACCRUAL_NET_ENTITLEMENT; this.accrualNet = this.balance[0].ACCRUAL_NET_ENTITLEMENT;
this.accrualUsed = this.balance[0].ACCRUAL_USED_ENTITLEMENT; this.accrualUsed = this.balance[0].ACCRUAL_USED_ENTITLEMENT;
this.accrualYearly = this.balance[0].ACCRUAL_YEARLY_ENTITLEMENT; // this.accrualYearly = this.balance[0].ACCRUAL_YEARLY_ENTITLEMENT;
this.totalnumber= this.accrualNet + this.accrualUsed + this.accrualYearly; // this.totalnumber= this.accrualNet + this.accrualUsed + this.accrualYearly;
this.totalnumber= this.accrualNet + this.accrualUsed;
this.totalnumber= this.totalnumber.toFixed(3); this.totalnumber= this.totalnumber.toFixed(3);
this.data = { this.data = {
// labels: ['earingTotal', 'deductionTotal'], // labels: ['earingTotal', 'deductionTotal'],
datasets: [ datasets: [
{ data: [this.accrualNet,this.accrualYearly,this.accrualUsed], // { data: [this.accrualNet,this.accrualYearly,this.accrualUsed],
{ data: [this.accrualNet,this.accrualUsed],
backgroundColor: [ backgroundColor: [
'#1FA269', '#1FA269',
'#DDB017', '#DDB017',

@ -15,20 +15,20 @@
<ion-item class='dynamicField'> <ion-item class='dynamicField'>
<ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','startDate')}} </ion-label> <ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','startDate')}} </ion-label>
<ion-datetime (ionChange)="calcDay()" [(ngModel)]="startDate" min="1900" max="2100" displayFormat="MMM/DD/YYYY" placeholder="MM/DD/YYYY" required></ion-datetime> <ion-datetime doneText="{{doneText}}" cancelText="{{cancelText}}" (ionChange)="calcDay()" [(ngModel)]="startDate" min="1900" max="2100" displayFormat="MMM/DD/YYYY" placeholder="MM/DD/YYYY" required></ion-datetime>
</ion-item> </ion-item>
<ion-item *ngIf="hoursOrDay!='D'" class='dynamicField'> <ion-item *ngIf="hoursOrDay!='D'" class='dynamicField'>
<ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','startTime')}} </ion-label> <ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','startTime')}} </ion-label>
<ion-datetime displayFormat="HH:mm" [(ngModel)]="startTime" required></ion-datetime> <ion-datetime doneText="{{doneText}}" cancelText="{{cancelText}}" displayFormat="HH:mm" [(ngModel)]="startTime" required></ion-datetime>
</ion-item> </ion-item>
<ion-item class='dynamicField'> <ion-item class='dynamicField'>
<ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','endDate')}}</ion-label> <ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','endDate')}}</ion-label>
<ion-datetime (ionChange)="calcDay()" [(ngModel)]="endDate" min="1900" max="2100" displayFormat="MMM/DD/YYYY" placeholder="MM/DD/YYYY" required ></ion-datetime> <ion-datetime doneText="{{doneText}}" cancelText="{{cancelText}}" (ionChange)="calcDay()" [(ngModel)]="endDate" min="1900" max="2100" displayFormat="MMM/DD/YYYY" placeholder="MM/DD/YYYY" required ></ion-datetime>
</ion-item> </ion-item>
<ion-item *ngIf="hoursOrDay!='D'" class='dynamicField'> <ion-item *ngIf="hoursOrDay!='D'" class='dynamicField'>
<ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','endTime')}}</ion-label> <ion-label position='floating' class="colBold requiredClass">{{ts.trPK('submitAbsence','endTime')}}</ion-label>
<ion-datetime displayFormat="HH:mm" [(ngModel)]="endTime" required></ion-datetime> <ion-datetime doneText="{{doneText}}" cancelText="{{cancelText}}" displayFormat="HH:mm" [(ngModel)]="endTime" required></ion-datetime>
</ion-item> </ion-item>
<ion-item class='dynamicField'> <ion-item class='dynamicField'>
<ion-label class="colBold" >{{ts.trPK('submitAbsence','totalDays')}} </ion-label> <ion-label class="colBold" >{{ts.trPK('submitAbsence','totalDays')}} </ion-label>

@ -77,6 +77,9 @@ export class SubmitAbsenceComponent implements OnInit {
/*****for resubmit******* */ /*****for resubmit******* */
getPassNotificationDetails: any; getPassNotificationDetails: any;
getPassdirfromNotifiPage: boolean = false; getPassdirfromNotifiPage: boolean = false;
direction: string;
doneText: string;
cancelText: string;
functionName: string = ""; functionName: string = "";
private submitAbsObjList: any = []; private submitAbsObjList: any = [];
@ViewChild(IonSelect) select: IonSelect; @ViewChild(IonSelect) select: IonSelect;
@ -93,6 +96,7 @@ export class SubmitAbsenceComponent implements OnInit {
private changeDetectorRef: ChangeDetectorRef private changeDetectorRef: ChangeDetectorRef
) { ) {
this.direction = TranslatorService.getCurrentLanguageName();
////*new add*///// ////*new add*/////
/**********resubmit************ */ /**********resubmit************ */
this.getPassNotificationDetails = this.common.sharedService.getSharedData(AbsenceNotificatonBodyResponse.NOT_WORKLIST, true); this.getPassNotificationDetails = this.common.sharedService.getSharedData(AbsenceNotificatonBodyResponse.NOT_WORKLIST, true);
@ -133,6 +137,8 @@ export class SubmitAbsenceComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.getAbsenceTypes(); this.getAbsenceTypes();
this.doneText = this.direction === 'en' ? 'Done' : 'تم';
this.cancelText = this.direction === 'en' ? 'Cancel' : 'إلغاء';
} }
private getAbsenceDffStructure() { private getAbsenceDffStructure() {
const body = { const body = {
@ -344,7 +350,8 @@ export class SubmitAbsenceComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} else { } else {
this.dateInput = new DateInput( this.dateInput = new DateInput(
@ -354,7 +361,8 @@ export class SubmitAbsenceComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} }
} else if (feildsList[i].FORMAT_TYPE == "Y") { } else if (feildsList[i].FORMAT_TYPE == "Y") {
@ -372,7 +380,8 @@ export class SubmitAbsenceComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} else { } else {
this.datetimeInput = new DateTimeInput( this.datetimeInput = new DateTimeInput(
@ -382,7 +391,8 @@ export class SubmitAbsenceComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} }
const elem = document.getElementById( const elem = document.getElementById(
@ -411,7 +421,8 @@ export class SubmitAbsenceComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} else { } else {
this.timeInput = new TimeInput( this.timeInput = new TimeInput(
@ -421,20 +432,10 @@ export class SubmitAbsenceComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} }
const elem = document.getElementById(
feildsList[i].APPLICATION_COLUMN_NAME
);
elem.addEventListener("click", e => {
if (feildsList[i].MOBILE_ENABLED != "Y") return false;
this.showTimePicker(
feildsList[i].APPLICATION_COLUMN_NAME,
feildsList[i].MAXIMUM_SIZE
);
e.stopImmediatePropagation();
});
} }
} else { } else {
if (feildsList[i].READ_ONLY == "Y") { if (feildsList[i].READ_ONLY == "Y") {
@ -1058,7 +1059,7 @@ export class SubmitAbsenceComponent implements OnInit {
this.absenceDffresponse[i].DISPLAY_FLAG != "N" this.absenceDffresponse[i].DISPLAY_FLAG != "N"
) { ) {
//date //date
// elemVal = this.common.formatDate(elemVal); elemVal = this.common.formatDate(elemVal);
} else if ( } else if (
this.absenceDffresponse[i].FORMAT_TYPE == "Y" && this.absenceDffresponse[i].FORMAT_TYPE == "Y" &&
this.absenceDffresponse[i].DISPLAY_FLAG != "N" this.absenceDffresponse[i].DISPLAY_FLAG != "N"

@ -12,7 +12,7 @@
<ion-label>{{ts.trPK('accrualBalances','selectDate')}}</ion-label> <ion-label>{{ts.trPK('accrualBalances','selectDate')}}</ion-label>
<ion-datetime [(ngModel)]="Sdate" min="1900" max="2100" displayFormat="MMM/DD/YYYY " placeholder="MM/DD/YYYY" <ion-datetime [(ngModel)]="Sdate" min="1900" max="2100" displayFormat="MMM/DD/YYYY " placeholder="MM/DD/YYYY"
(ionChange)="getAccrualBalance()"></ion-datetime> (ionChange)="getAccrualBalance()"></ion-datetime>
</ion-item> </ion-item>
<ul> <ul>

@ -9,6 +9,7 @@ import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/mo
templateUrl: './home.component.html', templateUrl: './home.component.html',
styleUrls: ['./home.component.scss'] styleUrls: ['./home.component.scss']
}) })
export class HomeComponent implements OnInit { export class HomeComponent implements OnInit {
Sdate: any; Sdate: any;
emp_no: any; emp_no: any;
@ -57,4 +58,5 @@ export class HomeComponent implements OnInit {
this.balance=result.GetAccrualBalancesList; this.balance=result.GetAccrualBalancesList;
} }
} }
} }

@ -61,9 +61,10 @@
<div class="" style="text-align:center"> <div class="" style="text-align:center">
<img src="{{companyUrl}}" class="CompanyImg logoImg"> <img src="{{companyUrl}}" class="CompanyImg logoImg">
<p class="companyTxt">{{companyDesc}}</p> <!-- <p class="companyTxt">{{companyDesc}}</p> -->
</div> </div>
<div class="menuFooter"> <div class="menuFooter">
<div> <img src="../assets/imgs/CS.png" class="CompanyImg"></div>
<p class="companyTxt">{{companyDesc}}</p> <p class="companyTxt">{{companyDesc}}</p>
</div> </div>
</ion-content> </ion-content>
@ -112,25 +113,53 @@
</ion-label> </ion-label>
</ion-item> </ion-item>
<ion-item (click)="openChangePassword()"> <ion-item (click)="openChangePassword()">
<ion-thumbnail slot="start" class="menu-thumb"> <ion-thumbnail slot="start" class="menu-thumb">
<img style= "height: 25px !important;" src="../assets/imgs/lock_icon.png" item-left> <img style= "height: 25px !important;" src="../assets/imgs/lock_icon.png" item-left>
</ion-thumbnail> </ion-thumbnail>
<ion-label class="changepassword" > <ion-label class="changepassword" >
{{ts.trPK('login','changepassword')}} {{ts.trPK('login','changepassword')}}
<ion-badge class="end-badge main-badge" slot="end" color="danger">{{notBadge}}</ion-badge>
</ion-label>
</ion-item>
</ion-list>
<div class="" style="text-align:center"> <ion-badge [ngClass]=" direction === 'rtl' ? 'end-badge' : 'start-badge'" slot="end" color="danger" class="main-badge">{{notBadge}}</ion-badge>
<img src="{{companyUrl}}" class="CompanyImg logoImg"> </ion-label>
<p class="companyTxt">{{companyDesc}}</p> <!-- <button class="menu-item" ion-item menuClose ion-item (click)="goToWorkListPage()" >
</div>
<div class="menuFooter">
<p class="companyTxt">{{companyDesc}}</p>
</div> </button> -->
</ion-content> </ion-item>
</ion-menu>
<!-- <ion-item (click)="profile()">
<ion-thumbnail slot="start" class="menu-thumb">
<img width="30" src="../assets/imgs/profile_icon.png" item-left>
</ion-thumbnail>
<ion-label>
{{ts.trPK('userProfile','title')}}
</ion-label>
</ion-item> -->
<!-- <ion-item (click)="logout();">
<ion-thumbnail slot="start" class="menu-thumb">
<img width="30" src="../assets/imgs/signout.png" item-left>
</ion-thumbnail>
<ion-label>
{{ts.trPK('home','logout')}}
</ion-label>
</ion-item> -->
</ion-list>
<div class="" style="text-align:center">
<img src="{{companyUrl}}" class="CompanyImg logoImg">
<!-- <p class="companyTxt">{{companyDesc}}</p> -->
</div>
<div class="menuFooter">
<div> <img src="../assets/imgs/CS.png" class="CompanyImg"></div>
<p class="companyTxt">{{companyDesc}}</p>
</div>
</ion-content>
</ion-menu>
<ion-router-outlet main></ion-router-outlet> <ion-router-outlet main></ion-router-outlet>
</ion-split-pane> </ion-split-pane>

@ -7,12 +7,12 @@
.alert-radio-label.sc-ion-alert-md, .alert-radio-label.sc-ion-alert-md,
.alert-radio-label.sc-ion-alert-ios { .alert-radio-label.sc-ion-alert-ios {
white-space: normal; white-space: normal;
} }
.alert-tappable.sc-ion-alert-md, .alert-tappable.sc-ion-alert-md,
.alert-tappable.sc-ion-alert-ios { .alert-tappable.sc-ion-alert-ios {
height: 50px; height: 70px;
} }
.main-badge{ .main-badge{
position: absolute; position: absolute;

@ -34,7 +34,9 @@
<!-- <type-writer *ngIf="!onlySMSBox" [text]="'login, verify-fingerprint' | translate" class="description" <!-- <type-writer *ngIf="!onlySMSBox" [text]="'login, verify-fingerprint' | translate" class="description"
color="primary" fontSize="0.55cm" lineHeight="1cm" fontSize="0.55cm"></type-writer> color="primary" fontSize="0.55cm" lineHeight="1cm" fontSize="0.55cm"></type-writer>
--> -->
<div *ngIf="!onlySMSBox"><p>{{ts.trPK('login','verify-fingerprint')}}</p></div>
<div *ngIf="!onlySMSBox && FFloginType == 2"><p>{{ts.trPK('login','verify-fingerprint')}}</p></div>
<div *ngIf="!onlySMSBox && FFloginType == 3"><p>{{ts.trPK('login','verify-faceId')}}</p></div>
</ion-col> </ion-col>

@ -73,6 +73,7 @@ export class ConfirmLoginComponent implements OnInit {
empname: string; empname: string;
lastLoginDate: string; lastLoginDate: string;
user_name: string; user_name: string;
FFloginType: any;
constructor( constructor(
@ -515,8 +516,8 @@ export class ConfirmLoginComponent implements OnInit {
loginWithFingurePrint(el: any) { loginWithFingurePrint(el: any) {
if (!el.disabled) { if (!el.disabled) {
this.FFloginType=el.value;
this.startBiometricLoginIfAvailable(); this.startBiometricLoginIfAvailable();
@ -527,7 +528,7 @@ export class ConfirmLoginComponent implements OnInit {
faceReconization(el: any) { faceReconization(el: any) {
if (!el.disabled) { if (!el.disabled) {
this.FFloginType=el.value;
this.startBiometricLoginIfAvailable(); this.startBiometricLoginIfAvailable();
} }
@ -700,7 +701,6 @@ export class ConfirmLoginComponent implements OnInit {
} }
}else { }else {
this.onlySMSBox = false; this.onlySMSBox = false;
this.button(); this.button();

@ -23,7 +23,6 @@ import { AddEitResponse } from "../models/add.eit.response";
import { element } from '@angular/core/src/render3'; import { element } from '@angular/core/src/render3';
// import { EITNotificatonBodyResponse } from 'src/app/notification/models/EITNotificationBodyRes'; // import { EITNotificatonBodyResponse } from 'src/app/notification/models/EITNotificationBodyRes';
import { EITNotificatonBodyResponse } from "../models/EITNotificationBodyRes"; import { EITNotificatonBodyResponse } from "../models/EITNotificationBodyRes";
@Component({ @Component({
selector: "app-add-eit", selector: "app-add-eit",
templateUrl: "./add-eit.component.html", templateUrl: "./add-eit.component.html",
@ -67,6 +66,7 @@ export class AddEitComponent implements OnInit {
//private updatedNotObject:any=[]; //private updatedNotObject:any=[];
private updatedValues: any = []; private updatedValues: any = [];
addEITData: any; addEITData: any;
direction:string;
constructor( constructor(
public modalController: ModalController, public modalController: ModalController,
@ -75,6 +75,7 @@ export class AddEitComponent implements OnInit {
private eitService: EitService, private eitService: EitService,
public datePicker: DatePicker public datePicker: DatePicker
) { ) {
this.direction = TranslatorService.getCurrentLanguageName();
this.selEmp = this.cs.sharedService.getSharedData( this.selEmp = this.cs.sharedService.getSharedData(
MenuResponse.SHARED_SEL_EMP, MenuResponse.SHARED_SEL_EMP,
false false
@ -216,7 +217,8 @@ export class AddEitComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} else { } else {
this.dateInput = new DateInput( this.dateInput = new DateInput(
@ -226,7 +228,8 @@ export class AddEitComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} }
// else if(feildsList[i].DEFAULT_TYPE=="D"){//current date // else if(feildsList[i].DEFAULT_TYPE=="D"){//current date
@ -251,7 +254,8 @@ export class AddEitComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} else { } else {
this.datetimeInput = new DateTimeInput( this.datetimeInput = new DateTimeInput(
@ -261,20 +265,21 @@ export class AddEitComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} }
const elem = document.getElementById( const elem = document.getElementById(
feildsList[i].APPLICATION_COLUMN_NAME feildsList[i].APPLICATION_COLUMN_NAME
); );
elem.addEventListener("click", e => { // elem.addEventListener("click", e => {
if (feildsList[i].MOBILE_ENABLED != "Y") return false; // if (feildsList[i].MOBILE_ENABLED != "Y") return false;
this.showDateTimePicker( // this.showDateTimePicker(
feildsList[i].APPLICATION_COLUMN_NAME, // feildsList[i].APPLICATION_COLUMN_NAME,
feildsList[i].MAXIMUM_SIZE // feildsList[i].MAXIMUM_SIZE
); // );
e.stopImmediatePropagation(); // e.stopImmediatePropagation();
}); // });
// else if(feildsList[i].DEFAULT_TYPE=="D"){ // 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); // 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"){ // }else if(feildsList[i].DEFAULT_TYPE=="P"||feildsList[i].DEFAULT_TYPE=="S"){
@ -291,11 +296,12 @@ export class AddEitComponent implements OnInit {
this.timeInput = new TimeInput( this.timeInput = new TimeInput(
feildsList[i].SEGMENT_PROMPT, feildsList[i].SEGMENT_PROMPT,
feildsList[i].APPLICATION_COLUMN_NAME, feildsList[i].APPLICATION_COLUMN_NAME,
defaultVal, "",
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} else { } else {
this.timeInput = new TimeInput( this.timeInput = new TimeInput(
@ -305,25 +311,10 @@ export class AddEitComponent implements OnInit {
containerId, containerId,
feildsList[i].MOBILE_ENABLED, feildsList[i].MOBILE_ENABLED,
feildsList[i].DISPLAY_FLAG, feildsList[i].DISPLAY_FLAG,
feildsList[i].REQUIRED_FLAG feildsList[i].REQUIRED_FLAG,
this.direction
); );
} }
const elem = document.getElementById(
feildsList[i].APPLICATION_COLUMN_NAME
);
elem.addEventListener("click", e => {
if (feildsList[i].MOBILE_ENABLED != "Y") return false;
this.showTimePicker(
feildsList[i].APPLICATION_COLUMN_NAME,
feildsList[i].MAXIMUM_SIZE
);
e.stopImmediatePropagation();
});
// else if(feildsList[i].DEFAULT_TYPE=="T"){
// this.timeInput = new TimeInput(feildsList[i].SEGMENT_PROMPT,feildsList[i].APPLICATION_COLUMN_NAME,"currentTime",containerId,feildsList[i].MOBILE_ENABLED);
// }else if(feildsList[i].DEFAULT_TYPE=="P"||feildsList[i].DEFAULT_TYPE=="S"){
// this.timeInput = new TimeInput(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 { } else {
if (feildsList[i].READ_ONLY == "Y") { if (feildsList[i].READ_ONLY == "Y") {
@ -532,7 +523,7 @@ export class AddEitComponent implements OnInit {
select.value = select.dataset.hiddenval; select.value = select.dataset.hiddenval;
//select.dataset.hiddenval=""; //select.dataset.hiddenval="";
} else { } else {
select.value = DV.P_VALUE_COLUMN_NAME; select.value = DV.P_ID_COLUMN_NAME;
} }
select.disabled = false; select.disabled = false;
} }
@ -1225,7 +1216,7 @@ export class AddEitComponent implements OnInit {
this.eitResponse[i].DISPLAY_FLAG != "N" this.eitResponse[i].DISPLAY_FLAG != "N"
) { ) {
//time //time
elemVal = elem.dataset.dtvalue; elemVal = elemVal.substring(11, 16);
} }
if (this.eitResponse[i].REQUIRED_FLAG == "Y" && !elemVal) { if (this.eitResponse[i].REQUIRED_FLAG == "Y" && !elemVal) {
elem.classList.add("requiredClassElm"); elem.classList.add("requiredClassElm");

@ -3,8 +3,6 @@
[headerText]="headerTitle"> [headerText]="headerTitle">
</app-generic-header> </app-generic-header>
<ion-content> <ion-content>
<div class=""> <div class="">
<!-- class="colorBG" --> <!-- class="colorBG" -->
@ -16,6 +14,17 @@
<div style="color: black;"> <div style="color: black;">
<div class="result-graph"> <div class="result-graph">
<div >
<ion-datetime [(ngModel)]="Sdate" class="datetime" displayFormat="DD MMMM YYYY" placeholder="DD MMMM YYYY"
(ionChange)="getAccrualBalance()"></ion-datetime>
<ion-icon class="iconCalendar" ios="ios-calendar" md="md-calendar"></ion-icon>
</div>
<div style=" border-bottom: 1px solid #a7a4a4; margin-bottom: 12px;
margin-top: -10px; margin-right: -9px;"></div>
<!-- <div class="result-text-container">
</div> -->
<p-chart #chart class="today-graph" type="doughnut" [data]="data" [options]="options"></p-chart> <p-chart #chart class="today-graph" type="doughnut" [data]="data" [options]="options"></p-chart>

@ -4,6 +4,26 @@
min-height: 45px; min-height: 45px;
min-width: 200px; min-width: 200px;
} }
.datetime{
// text-align: center;
// font-family: WorkSans-Bold;
// margin-left: 111px;
text-align: center;
font-family: WorkSans-Bold;
margin-left: 47px;
margin-top: -19px;
}
.iconCalendar{
// margin-left: -241px;
// margin-top: 5px;
margin-left: 30px !important;
width: 22% !important;
height: 26px !important;
margin-top: -69px !important;
margin-bottom: 20px !important;
}
h4 { h4 {
font-size: 2.2rem; font-size: 2.2rem;
text-align: center; text-align: center;

@ -9,6 +9,9 @@ import { EitService } from '../services/eit.service';
import { EIT_ACTION } from '../models/submit.eit.action'; import { EIT_ACTION } from '../models/submit.eit.action';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service'; import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { AddEitResponse } from '../models/add.eit.response'; 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({ @Component({
selector: 'app-eit-list', selector: 'app-eit-list',
@ -16,7 +19,10 @@ import { AddEitResponse } from '../models/add.eit.response';
styleUrls: ['./eit-list.component.scss'], styleUrls: ['./eit-list.component.scss'],
}) })
export class EitListComponent implements OnInit { export class EitListComponent implements OnInit {
Sdate: any;
emp_no: any;
balance:any;
//////////////up
P_PAGE_NUM: number; P_PAGE_NUM: number;
P_PAGE_LIMIT: number; P_PAGE_LIMIT: number;
IsReachEnd = false; IsReachEnd = false;
@ -56,7 +62,8 @@ export class EitListComponent implements OnInit {
// gaugeLabel = ""; // gaugeLabel = "";
// tslint:disable-next-line: max-line-length // tslint:disable-next-line: max-line-length
constructor(private cs: CommonService, private EITService: EitService, public ts: TranslatorService, private modalCtrl: ModalController) { constructor(private cs: CommonService, private EITService: EitService, public ts: TranslatorService,
private modalCtrl: ModalController, public accrualService: AccrualService, public authService:AuthenticationService,) {
this.direction = TranslatorService.getCurrentLanguageName(); this.direction = TranslatorService.getCurrentLanguageName();
this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, false); this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, false);
this.selEmp = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_EMP, false); this.selEmp = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_EMP, false);
@ -72,6 +79,10 @@ export class EitListComponent implements OnInit {
} }
ngOnInit() { ngOnInit() {
/////////////
this.Sdate = new Date().toISOString();
this.getUserDetails();
////////////////up
this.getEITTransactions(); this.getEITTransactions();
this.accrualBalancesList = this.cs.sharedService.getSharedData('tickitsbalance', false); this.accrualBalancesList = this.cs.sharedService.getSharedData('tickitsbalance', false);
@ -96,8 +107,44 @@ export class EitListComponent implements OnInit {
}; };
} }
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.selEmp,
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() { getEITTransactions() {
console.log('jkfdjkdfsffjhfsdahffg');
this.IsReachEnd = false; this.IsReachEnd = false;
this.EITTransactionsListObj.P_PAGE_LIMIT = this.P_PAGE_LIMIT; this.EITTransactionsListObj.P_PAGE_LIMIT = this.P_PAGE_LIMIT;
this.EITTransactionsListObj.P_PAGE_NUM = this.P_PAGE_NUM; this.EITTransactionsListObj.P_PAGE_NUM = this.P_PAGE_NUM;
@ -520,5 +567,42 @@ export class EitListComponent implements OnInit {
this.removeItems(item.Collection_Transaction[0].TRANSACTION_NUMBER); 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

@ -116,58 +116,58 @@ export class CommonService {
public getMonthName(value: number): string { public getMonthName(value: number): string {
switch (value) { switch (value) {
case 1: case 1:
return "January"; return 'January';
case 2: case 2:
return "February"; return 'February';
case 3: case 3:
return "March"; return 'March';
case 4: case 4:
return "April"; return 'April';
case 5: case 5:
return "May"; return 'May';
case 6: case 6:
return "June"; return 'June';
case 7: case 7:
return "July"; return 'July';
case 8: case 8:
return "August"; return 'August';
case 9: case 9:
return "September"; return 'September';
case 10: case 10:
return "October"; return 'October';
case 11: case 11:
return "November"; return 'November';
case 12: case 12:
return "December"; return 'December';
} }
} }
public getMonthNameAr(value: number): string { public getMonthNameAr(value: number): string {
switch (value) { switch (value) {
case 1: case 1:
return "يناير"; return 'يناير';
case 2: case 2:
return " فبراير"; return ' فبراير';
case 3: case 3:
return "مارس"; return 'مارس';
case 4: case 4:
return "أبريل"; return 'أبريل';
case 5: case 5:
return "مايو"; return 'مايو';
case 6: case 6:
return "يونيو"; return 'يونيو';
case 7: case 7:
return "يوليو"; return 'يوليو';
case 8: case 8:
return "أغسطس"; return 'أغسطس';
case 9: case 9:
return "سبتمبر"; return 'سبتمبر';
case 10: case 10:
return " اكتوبر"; return ' اكتوبر';
case 11: case 11:
return " نوفمبر"; return ' نوفمبر';
case 12: case 12:
return "ديسمبر"; return 'ديسمبر';
} }
} }
@ -482,8 +482,8 @@ public getMonthNameAr(value: number): string {
buttons: [ buttons: [
{ {
text: cancelLabel, text: cancelLabel,
role: "cancel", role: 'cancel',
cssClass: "checkOutCancelBtn", cssClass: 'checkOutCancelBtn',
handler: () => { handler: () => {
if (onCancel) { if (onCancel) {
onCancel(); onCancel();
@ -495,7 +495,7 @@ public getMonthNameAr(value: number): string {
text: acceptLabel, text: acceptLabel,
role: 'Confirm', role: 'Confirm',
cssClass: "checkOutOkBtn", cssClass: 'checkOutOkBtn',
handler: () => { handler: () => {
@ -522,13 +522,13 @@ public getMonthNameAr(value: number): string {
) { ) {
this.clearAllAlerts(); this.clearAllAlerts();
const alert = await this.alertControllerIonic.create({ const alert = await this.alertControllerIonic.create({
header: this.ts.trPK("general", "confirm"), header: this.ts.trPK('general', 'confirm'),
message: message, message: message,
buttons: [ buttons: [
{ {
text: cancelLabel, text: cancelLabel,
role: "cancel", role: 'cancel',
cssClass: "checkOutCancelBtn", cssClass: 'checkOutCancelBtn',
handler: () => { handler: () => {
if (onCancel) { if (onCancel) {
onCancel(); onCancel();
@ -538,9 +538,9 @@ public getMonthNameAr(value: number): string {
}, },
{ {
text: acceptLabel, text: acceptLabel,
role: "Confirm", role: 'Confirm',
cssClass: "checkOutOkBtn", cssClass: 'checkOutOkBtn',
handler: () => { handler: () => {
@ -1074,7 +1074,7 @@ public getMonthNameAr(value: number): string {
open calls open calls
*/ */
public openAttenTrackingpage(){ public openAttenTrackingpage(){
this.nav.navigateForward(["/attendance-tracking/home"]); this.nav.navigateForward(['/attendance-tracking/home']);
} }
public openEitListPage() { public openEitListPage() {
@ -1099,7 +1099,7 @@ public getMonthNameAr(value: number): string {
this.nav.navigateForward(['/profile/home']); this.nav.navigateForward(['/profile/home']);
} }
public openEditProfile() { public openEditProfile() {
this.nav.navigateForward(["/profile/editprofile"]); this.nav.navigateForward(['/profile/editprofile']);
} }
public openAccuralPage() { public openAccuralPage() {
this.nav.navigateForward(['/accrual-balances/home']); this.nav.navigateForward(['/accrual-balances/home']);
@ -1173,7 +1173,7 @@ public getMonthNameAr(value: number): string {
} }
public openMOItemHistoryPage(){ public openMOItemHistoryPage(){
this.nav.navigateForward(["/notification/item-history-MO"]); this.nav.navigateForward(['/notification/item-history-MO']);
} }
public openQutationAnalysisPage() { public openQutationAnalysisPage() {
@ -1199,7 +1199,7 @@ public getMonthNameAr(value: number): string {
this.nav.navigateForward(['/payslip/home']); this.nav.navigateForward(['/payslip/home']);
} }
public openTimeCardPage() { public openTimeCardPage() {
this.nav.navigateForward(["/time-card/time-card-details"]); this.nav.navigateForward(['/time-card/time-card-details']);
} }
public openEarningsPage() { public openEarningsPage() {
this.nav.navigateForward(['/payslip/Earnings']); this.nav.navigateForward(['/payslip/Earnings']);
@ -1211,13 +1211,13 @@ public getMonthNameAr(value: number): string {
this.nav.navigateForward(['/authentication/confirmLogin']); this.nav.navigateForward(['/authentication/confirmLogin']);
} }
public openEditprofile() { public openEditprofile() {
this.nav.navigateForward(["/profile/editProfile"]); this.nav.navigateForward(['/profile/editProfile']);
} }
public openPerformanceevaluation() { public openPerformanceevaluation() {
this.nav.navigateForward(["/profile/performanceevaluation"]); this.nav.navigateForward(['/profile/performanceevaluation']);
} }
public eitUpdate() { public eitUpdate() {
this.nav.navigateForward(["/eit/eit-update-list"]); this.nav.navigateForward(['/eit/eit-update-list']);
} }

@ -4,6 +4,7 @@
[calendarMode]="calendar.mode" [calendarMode]="calendar.mode"
[currentDate]="currentDateParent" [currentDate]="currentDateParent"
[lockSwipes]="true" [lockSwipes]="true"
[dateFormatter]="calendar.dateFormatter"
(onTimeSelected)="onDayClicked($event)"> (onTimeSelected)="onDayClicked($event)">
</calendar> </calendar>

@ -4,12 +4,10 @@ import { SharedDataService } from '../../services/shared-data-service/shared-dat
import { ModalController } from '@ionic/angular'; import { ModalController } from '@ionic/angular';
import { DateInfoModalComponent } from './date-info-modal/date-info-modal.component'; import { DateInfoModalComponent } from './date-info-modal/date-info-modal.component';
import { MenuResponse } from '../../services/menu/models/menu-response'; import { MenuResponse } from '../../services/menu/models/menu-response';
import * as moment from 'moment';
import { CommonService } from '../../services/common/common.service'; import { CommonService } from '../../services/common/common.service';
import { GetDayAndHoursDetailsRequest } from 'src/app/time-card/service/models/get-day-hours-type-details.request';
import { TimeCardService } from 'src/app/time-card/service/time-card.service'; import { TimeCardService } from 'src/app/time-card/service/time-card.service';
import { GetShiftDetailRequest } from 'src/app/time-card/service/models/get-shift-detail.request'; import { GetShiftDetailRequest } from 'src/app/time-card/service/models/get-shift-detail.request';
import { GetSwipesRequest } from 'src/app/time-card/service/models/get-swipes-request'; import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
@Component({ @Component({
selector: 'app-circle-calendar', selector: 'app-circle-calendar',
@ -41,7 +39,13 @@ export class CircleCalendarComponent implements OnInit {
eventsdata: any = []; eventsdata: any = [];
public calendar = { public calendar = {
mode: 'month' mode: 'month',
dateFormatter: {
formatMonthViewDayHeader: (date: Date) => {
return this.getHeaderDay(date);
}
}
}; };
public currentAvailableAppoDate: any; public currentAvailableAppoDate: any;
@ -51,6 +55,7 @@ export class CircleCalendarComponent implements OnInit {
public selectedDate: string; public selectedDate: string;
public weekDaysEn = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; public weekDaysEn = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
public weekDaysEnSort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; public weekDaysEnSort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
public weekDaysAr = ['الاحد', 'الاثنين', 'الثلاثاء', 'الاربعاء', 'الخميس', 'الجمعه', 'السبت'];
public lockSwipeToPrev: any = true; public lockSwipeToPrev: any = true;
public currentDate: any; public currentDate: any;
public selectedDateObject: any; public selectedDateObject: any;
@ -61,15 +66,18 @@ export class CircleCalendarComponent implements OnInit {
arrFutrueDays: any; arrFutrueDays: any;
eventsdateFutrue: any; eventsdateFutrue: any;
detailData: any; detailData: any;
direction: string;
constructor( constructor(
public sharedData: SharedDataService, public sharedData: SharedDataService,
public mod: ModalController, public mod: ModalController,
public common: CommonService, public common: CommonService,
public timeCardService: TimeCardService) { } public timeCardService: TimeCardService,
public ts: TranslatorService) { }
@ViewChild('slider') slides: ElementRef; @ViewChild('slider') slides: ElementRef;
ngOnInit() { ngOnInit() {
// this.reRenderCalendar(); // this.reRenderCalendar();
this.direction = TranslatorService.getCurrentLanguageName();
} }
// tslint:disable-next-line: use-life-cycle-interface // tslint:disable-next-line: use-life-cycle-interface
@ -79,6 +87,14 @@ export class CircleCalendarComponent implements OnInit {
}, 1000); }, 1000);
} }
getHeaderDay(date: any) {
if (this.direction === 'en') {
return this.weekDaysEnSort[date.getDay()];
} else {
return this.weekDaysAr[date.getDay()];
}
}
reRenderCalendar() { reRenderCalendar() {
this.renderDate(this.dayHoursTypeDetailsList); this.renderDate(this.dayHoursTypeDetailsList);
} }

@ -6,7 +6,7 @@
<ion-col size="8"> <ion-col size="8">
<div style="width: 100%;"> <div style="width: 100%;">
<div class="result-graph"> <div class="result-graph">
<div class="result-text-container"> <div class="result-text-container" [ngStyle]="direction === 'rtl' ? {'left': '65%'} : {}">
<h2 class="percentage">{{percentage}}</h2> <h2 class="percentage">{{percentage}}</h2>
<span>{{ts.trPK('attendance','completed')}}<br><br><br><br></span> <span>{{ts.trPK('attendance','completed')}}<br><br><br><br></span>
</div> </div>
@ -80,7 +80,7 @@
</ion-row> </ion-row>
</ion-col> </ion-col>
<ion-col [size]="6" [ngClass]="direction == 'ltr'? 'col':'col-ar'"> <ion-col [size]="6" style="border-bottom: none;" [ngClass]="direction == 'ltr'? 'col':'col-ar'">
<ion-row class="amountlabel"> <p >{{shortage}}</p> </ion-row> <ion-row class="amountlabel"> <p >{{shortage}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p>{{ts.trPK('attendance-tracking','shortage')}}</p> <p>{{ts.trPK('attendance-tracking','shortage')}}</p>

@ -71,8 +71,7 @@
display: block; display: block;
height: 127px; height: 127px;
width: 270px; width: 270px;
/* margin-left: -61px; */ margin-right: -70px;
margin-right: -18px;
} }
.amountlabel{ .amountlabel{
color: black !important; color: black !important;
@ -210,15 +209,9 @@ height: 360px !important;
.col{ .col{
border-bottom: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204);
border-right: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);
flex: 0 0 calc(calc(6 / var(--ion-grid-columns, 12)) * 100%);
width: calc(calc(6 / var(--ion-grid-columns, 12)) * 100%);
max-width: calc(calc(6 / var(--ion-grid-columns, 12)) * 100%);
} }
.col-ar{ .col-ar{
border-bottom: 1px solid rgb(204, 204, 204); border-bottom: 1px solid rgb(204, 204, 204);
border-left: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);
flex: 0 0 calc(calc(6 / var(--ion-grid-columns, 12)) * 100%);
width: calc(calc(6 / var(--ion-grid-columns, 12)) * 100%);
max-width: calc(calc(6 / var(--ion-grid-columns, 12)) * 100%);
} }

@ -2,6 +2,7 @@ import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { ModalController, NavParams, IonInfiniteScroll } from '@ionic/angular'; import { ModalController, NavParams, IonInfiniteScroll } from '@ionic/angular';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service'; import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { IonSlides } from '@ionic/angular'; import { IonSlides } from '@ionic/angular';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
@Component({ @Component({
selector: 'app-date-info-modal', selector: 'app-date-info-modal',
@ -31,11 +32,11 @@ export class DateInfoModalComponent implements OnInit {
percentage: any; percentage: any;
data: any; data: any;
scheduleDate: any; scheduleDate: any;
tests: any;
year: any; year: any;
nameMonth: any; nameMonth: any;
nameDay: any; nameDay: any;
public weekDaysEn = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; public weekDaysEn = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
public weekDaysAr = ['الاحد', 'الاثنين', 'الثلاثاء', 'الاربعاء', 'الخميس', 'الجمعه', 'السبت'];
public direction: string; public direction: string;
public options = { public options = {
cutoutPercentage: 85, cutoutPercentage: 85,
@ -51,7 +52,8 @@ export class DateInfoModalComponent implements OnInit {
constructor( constructor(
public modalController: ModalController, public modalController: ModalController,
public navParams: NavParams, public navParams: NavParams,
public ts: TranslatorService public ts: TranslatorService,
public common: CommonService
) { ) {
this.direction = TranslatorService.getCurrentDirection(); this.direction = TranslatorService.getCurrentDirection();
} }
@ -73,16 +75,15 @@ export class DateInfoModalComponent implements OnInit {
this.endDate = shiftDetails.SHT_ACTUAL_END_TIME; this.endDate = shiftDetails.SHT_ACTUAL_END_TIME;
this.percentage = shiftDetails.PERCENTAGE; this.percentage = shiftDetails.PERCENTAGE;
this.percChart = this.percentage.substring(0, this.percentage.indexOf('%')); this.percChart = this.percentage.substring(0, this.percentage.indexOf('%'));
const test = this.scheduleDate; // const test = this.scheduleDate;
const splitdate = test.split(' '); const splitdate = this.scheduleDate.split(' ');
const date = splitdate[0]; const date = splitdate[0];
const test1 = date.split('/'); const localDate = date.split('/');
this.day = test1[1]; this.day = localDate[1];
this.year = test1[2]; this.year = localDate[2];
this.month = test1[0];
// tslint:disable-next-line: radix // tslint:disable-next-line: radix
this.nameMonth = this.getMonthName(parseInt(this.month)); this.month = parseInt(localDate[0]) + 1;
this.nameMonth = this.direction === 'ltr' ? this.common.getMonthName(this.month) : this.common.getMonthNameAr(this.month);
this.nameDay = this.getHeaderDay(new Date(date)); this.nameDay = this.getHeaderDay(new Date(date));
const d = new Date(date); const d = new Date(date);
this.data = { this.data = {
@ -105,36 +106,11 @@ slideChanged(ev) {
}); });
} }
public getMonthName(value: number): string {
switch (value) {
case 1:
return 'Jan';
case 2:
return 'Feb';
case 3:
return 'Mar';
case 4:
return 'Apr';
case 5:
return 'May';
case 6:
return 'Jun';
case 7:
return 'Jul';
case 8:
return 'Aug';
case 9:
return 'Sep';
case 10:
return 'Oct';
case 11:
return 'Nov';
case 12:
return 'Dec';
}
}
getHeaderDay(date: any) { getHeaderDay(date: any) {
return this.weekDaysEn[date.getDay()]; if (this.direction === 'ltr') {
return this.weekDaysEn[date.getDay()];
} else {
return this.weekDaysAr[date.getDay()];
}
} }
} }

@ -2,7 +2,6 @@
<div class="circle pulse"></div> <div class="circle pulse"></div>
<div class="circle"> <div class="circle">
<ion-fab class="fab-i "> <ion-fab class="fab-i ">
<ion-fab-button [ngClass]="type === 'add' ? 'addnon' : 'cbookApointmentBtn' " (click)="onClick()" > <ion-fab-button [ngClass]="type === 'add' ? 'addnon' : 'cbookApointmentBtn' " (click)="onClick()" >
<!-- <img style="width: 39%; margin-top: -29%;" src="assets/icon/booking.png" /> --> <!-- <img style="width: 39%; margin-top: -29%;" src="assets/icon/booking.png" /> -->
<div *ngIf="type != 'add' "> <div *ngIf="type != 'add' ">
@ -14,7 +13,6 @@
<!-- <ion-icon name="add-outline"></ion-icon> --> <!-- <ion-icon name="add-outline"></ion-icon> -->
</div> </div>
</ion-fab-button> </ion-fab-button>
</ion-fab> </ion-fab>
</div> </div>
</div> </div>

@ -109,7 +109,9 @@ export class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy {
// let todayDate = month + '/' + day + '/' + year; // let todayDate = month + '/' + day + '/' + year;
// this.lastLoginTime = moment(this.cs.evaluteDateAsObject(this.lastLoginDate)).format("HH:mm"); // this.lastLoginTime = moment(this.cs.evaluteDateAsObject(this.lastLoginDate)).format("HH:mm");
this.logintype = parseInt(this.logintype) // this.logintype = parseInt(this.user.LoginType)
this.logintype = this.user.LoginType;
console.log(" this.lastLoginTime" + this.lastLoginTime); console.log(" this.lastLoginTime" + this.lastLoginTime);
console.log(" this.lastLoginDate" + this.lastLoginDate); console.log(" this.lastLoginDate" + this.lastLoginDate);

@ -22,7 +22,6 @@
</ion-row> </ion-row>
<ion-row *ngFor="let menuItem of menuEntries; let i=index"> <ion-row *ngFor="let menuItem of menuEntries; let i=index">
<ion-row class="attendance-module" *ngIf="i == 1"> <ion-row class="attendance-module" *ngIf="i == 1">
<ion-col [size]="8"> <ion-col [size]="8">
<h3>{{'home,monthly-attendance' | translate}}</h3> <h3>{{'home,monthly-attendance' | translate}}</h3>

@ -60,7 +60,7 @@
</ion-segment-button> </ion-segment-button>
<ion-segment-button <ion-segment-button
value="Team Members" value="Team Members"
[ngClass]="activeSegment == 'Team Members' ? 'active-Segment' : 'normal-Segment'"> [ngClass]="[activeSegment == 'Team Members' ? 'active-Segment' : 'normal-Segment', empSubordinate.length === 0 ? 'disable-phone': '']">
<ion-label>{{ts.trPK('myTeam','team-members')}}</ion-label> <ion-label>{{ts.trPK('myTeam','team-members')}}</ion-label>
</ion-segment-button> </ion-segment-button>
<ion-segment-button <ion-segment-button
@ -102,10 +102,9 @@
<div class="header"> <div class="header">
<div> <div>
<ion-row> <ion-row *ngIf="direction == 'en'">
<ion-col [size]="2" style="text-align: left;"> <ion-col [size]="2" style="text-align: left;">
<ion-icon [ngClass]="direction == 'en'? 'activeArrow':'activeArrow-ar'" ios="ios-arrow-dropleft-circle" md="md-arrow-dropleft-circle" (click)="previousSlide()"></ion-icon> <ion-icon class="activeArrow" ios="ios-arrow-dropleft-circle" md="md-arrow-dropleft-circle" (click)="previousSlide()"></ion-icon>
</ion-col> </ion-col>
<ion-col [size]="8" style="text-align: center;"> <ion-col [size]="8" style="text-align: center;">
<span class="month-year-span">{{month}} {{year}}</span> <span class="month-year-span">{{month}} {{year}}</span>
@ -114,12 +113,24 @@
<ion-icon *ngIf="currentMonthName !== month" [ngClass]=" currentMonthName === month ? 'disabledArrow' : 'activeArrow'" ios="ios-arrow-dropright-circle" md="md-arrow-dropright-circle" (click)="nextSlide()"></ion-icon> <ion-icon *ngIf="currentMonthName !== month" [ngClass]=" currentMonthName === month ? 'disabledArrow' : 'activeArrow'" ios="ios-arrow-dropright-circle" md="md-arrow-dropright-circle" (click)="nextSlide()"></ion-icon>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row *ngIf="direction == 'ar'">
<ion-col [size]="2" style="text-align: right;">
<ion-icon class="activeArrow" ios="ios-arrow-dropright-circle" md="md-arrow-dropright-circle" (click)="previousSlide()"></ion-icon>
</ion-col>
<ion-col [size]="8" style="text-align: center;">
<span class="month-year-span">{{year}} {{month}}</span>
</ion-col>
<ion-col [size]="2" style="text-align: left;">
<ion-icon *ngIf="currentMonthName !== month" [ngClass]=" currentMonthName === month ? 'disabledArrow' : 'activeArrow'" ios="ios-arrow-dropleft-circle" md="md-arrow-dropleft-circle" (click)="nextSlide()"></ion-icon>
</ion-col>
</ion-row>
</div> </div>
</div> </div>
<div class="result-graph"> <div class="result-graph">
<div class="request-heading"> <div>
<span>{{ts.trPK('myTeam','attendance-statistics')}}</span> <span [ngClass]="direction == 'en' ? 'request-heading':'request-heading-ar'">{{ts.trPK('myTeam','attendance-statistics')}}</span>
</div> </div>
<div style="position: relative;"> <div style="position: relative;">
<div class="label-container"> <div class="label-container">
@ -172,7 +183,7 @@
</ion-col> </ion-col>
</ion-row> </ion-row>
<div *ngIf="showData" class="calendar-container"> <div *ngIf="showData" [ngClass]="direction == 'en' ? 'calendar-container':'calendar-container-ar' ">
<span> {{ts.trPK('attendance','monthly-attendance-calendar')}}</span> <span> {{ts.trPK('attendance','monthly-attendance-calendar')}}</span>
<app-circle-calendar <app-circle-calendar
[currentDateParent]="currentDate" [currentDateParent]="currentDate"
@ -231,7 +242,7 @@
<div class="employee-information-indetail" *ngIf="activeSegment === 'About'"> <div class="employee-information-indetail" *ngIf="activeSegment === 'About'">
<ion-row> <ion-row>
<ion-col [size]="6" style="border-right: 1px solid #ccc;"> <ion-col [size]="6" [ngStyle]="direction == 'en' ? {'border-right': '1px solid #ccc'} : {'border-left': '1px solid #ccc'}">
<h2>{{ts.trPK('userProfile','empNo')}}</h2> <h2>{{ts.trPK('userProfile','empNo')}}</h2>
<p>{{employee.EMPLOYEE_NUMBER}}</p> <p>{{employee.EMPLOYEE_NUMBER}}</p>
</ion-col> </ion-col>
@ -240,7 +251,7 @@
<p>{{employee.EMPLOYMENT_CATEGORY_MEANING}}</p> <p>{{employee.EMPLOYMENT_CATEGORY_MEANING}}</p>
</ion-col> </ion-col>
<ion-col [size]="12"> <ion-col [size]="12">
<h2>{{ts.trPK('userProfile','Address')}}</h2> <h2>{{ts.trPK('userProfile','address')}}</h2>
<p>{{employee.LOCATION_NAME}}</p> <p>{{employee.LOCATION_NAME}}</p>
</ion-col> </ion-col>
<ion-col [size]="12"> <ion-col [size]="12">

@ -112,6 +112,7 @@ ion-title{
font-size: 13px; font-size: 13px;
font-family: WorkSans-Bold; font-family: WorkSans-Bold;
margin: 0; margin: 0;
font-weight: bold;
} }
p{ p{
font-size: 13px; font-size: 13px;
@ -252,15 +253,22 @@ ion-title{
z-index: 1; z-index: 1;
margin-bottom: 10px; margin-bottom: 10px;
} }
.request-heading { .request-heading {
span { text-align: left;
text-align: left; display: block;
display: block; padding-top: 8px;
padding-top: 8px; margin-bottom: 10px;
margin-bottom: 10px; margin-left: 10px;
margin-left: 10px; }
} .request-heading-ar{
text-align: right;
display: block;
padding-top: 8px;
margin-bottom: 10px;
margin-right: 12px;
} }
.result-text-container { .result-text-container {
padding: 0; padding: 0;
margin: 0; margin: 0;
@ -347,6 +355,7 @@ ion-title{
height: 321px !important; height: 321px !important;
border: 1px solid #d6d4d4 !important; border: 1px solid #d6d4d4 !important;
} }
.attendance-information{ .attendance-information{
background: white; background: white;
border-radius: 20px; border-radius: 20px;
@ -354,12 +363,12 @@ ion-title{
h2{ h2{
padding: 0; padding: 0;
margin: 0; margin: 0;
font-size: 22px; font-size: 18px;
} }
span{ span{
font-size: 11px; font-size: 11px;
} }
} }
.month-year-span{ .month-year-span{
font-size: 20px; font-size: 20px;
@ -411,6 +420,7 @@ ion-title{
} }
} }
.calendar-container{ .calendar-container{
background: white; background: white;
margin-bottom: 100px; margin-bottom: 100px;
@ -423,7 +433,20 @@ ion-title{
margin-bottom: 10px; margin-bottom: 10px;
margin-left: 10px; margin-left: 10px;
} }
} }
.calendar-container-ar{
background: white;
margin-bottom: 100px;
margin-top: 20px;
border-radius: 20px;
span{
text-align: right;
display: block;
padding-top: 8px;
margin-bottom: 6px;
margin-right: 12px;
}
}

@ -1,5 +1,4 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { Location } from '@angular/common';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service'; import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { CommonService } from 'src/app/hmg-common/services/common/common.service'; import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service'; import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
@ -57,7 +56,7 @@ export class DetailsComponent implements OnInit {
public monthTitle: string = moment().format('MMMM'); public monthTitle: string = moment().format('MMMM');
public yearTitle: string; public yearTitle: string;
public activeMonth: any; public activeMonth: any;
public currentMonthName = this.getMonthName(new Date().getMonth() + 1); public currentMonthName = '';
public showData = false; public showData = false;
public currentYear = new Date().getFullYear(); public currentYear = new Date().getFullYear();
@ -83,6 +82,9 @@ export class DetailsComponent implements OnInit {
public searchEmail = ''; public searchEmail = '';
public showEmailInput = false; public showEmailInput = false;
public showUserNameOrNameInput = true; public showUserNameOrNameInput = true;
// tslint:disable-next-line: max-line-length
public monthsNameArray = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
public monthIndex = new Date().getMonth() + 1;
constructor( constructor(
@ -92,7 +94,6 @@ export class DetailsComponent implements OnInit {
public myTeamService: MyTeamService, public myTeamService: MyTeamService,
public ts: TranslatorService, public ts: TranslatorService,
public modalController: ModalController, public modalController: ModalController,
private location: Location,
public authService: AuthenticationService, public authService: AuthenticationService,
public dashboardService: DashboredService, public dashboardService: DashboredService,
) { ) {
@ -103,6 +104,8 @@ export class DetailsComponent implements OnInit {
this.common.startLoading(); this.common.startLoading();
this.intializeMemberDetail(); this.intializeMemberDetail();
this.showAttendanceTracking(); this.showAttendanceTracking();
// tslint:disable-next-line: max-line-length
this.currentMonthName = this.direction === 'en' ? this.common.getMonthName(this.monthIndex) : this.common.getMonthNameAr(this.monthIndex);
} }
showAttendanceTracking() { showAttendanceTracking() {
@ -129,22 +132,19 @@ export class DetailsComponent implements OnInit {
initAttendance() { initAttendance() {
this.data = {}; this.data = {};
this.currentMonthName = this.getMonthName(new Date().getMonth() + 1); // tslint:disable-next-line: max-line-length
this.currentMonthName = this.direction === 'en' ? this.common.getMonthName(this.monthIndex) : this.common.getMonthNameAr(this.monthIndex);
this.currentYear = new Date().getFullYear(); this.currentYear = new Date().getFullYear();
this.currentDate = new Date(); this.currentDate = new Date();
this.showData = false; this.showData = false;
this.nextMonth = new Date().getMonth() + 2; this.nextMonth = new Date().getMonth() + 2;
this.preMonth = new Date().getMonth(); this.preMonth = new Date().getMonth();
if (this.direction === 'en') { this.calendarConfig(this.common.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear());
this.currentMonthName = this.getMonthName(new Date().getMonth() + 1);
} else {
this.currentMonthName = this.getMonthNameAr(new Date().getMonth() + 1);
}
this.calendarConfig(this.currentMonthName, new Date().getFullYear());
} }
calendarConfig(month?, year?) { calendarConfig(month?, year?) {
this.month = month; const index = this.monthsNameArray.indexOf(month);
this.month = this.direction === 'en' ? month : this.common.getMonthNameAr(index + 1);
this.year = year; this.year = year;
this.getTimeCardSummaryDetails(month, year); this.getTimeCardSummaryDetails(month, year);
this.getDayHoursTypeDetails(month, year); this.getDayHoursTypeDetails(month, year);
@ -178,8 +178,8 @@ export class DetailsComponent implements OnInit {
nextSlide() { nextSlide() {
this.common.startLoading();
if (this.currentMonthName !== this.month) { if (this.currentMonthName !== this.month) {
this.common.startLoading();
this.showData = false; this.showData = false;
if (this.nextMonth > 12) { if (this.nextMonth > 12) {
this.currentYear = this.currentYear + 1; this.currentYear = this.currentYear + 1;

@ -27,6 +27,7 @@ export class HomeComponent implements OnInit {
public selMenu: any; public selMenu: any;
public selEmpNo: any; public selEmpNo: any;
public totalEmployees = 0; public totalEmployees = 0;
public pageFirstVisit = false;
public options = { public options = {
cutoutPercentage: 80, cutoutPercentage: 80,
@ -146,7 +147,10 @@ export class HomeComponent implements OnInit {
this.getEmployeeSubordinatesRequestObject = body; this.getEmployeeSubordinatesRequestObject = body;
this.myTeamService.getEmployeeSubordinates(body).subscribe((result: any) => { this.myTeamService.getEmployeeSubordinates(body).subscribe((result: any) => {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
this.totalEmployees = result.P_NUM_OF_SUBORDINATES; if (!this.pageFirstVisit) {
this.pageFirstVisit = true;
this.totalEmployees = result.P_NUM_OF_SUBORDINATES;
}
this.handleEmpResult(result.GetEmployeeSubordinatesList); this.handleEmpResult(result.GetEmployeeSubordinatesList);
} }
}); });

@ -12,7 +12,7 @@
</div> </div>
<div class="result-text-container" [ngStyle]="showChart === false ? {'visibility': 'hidden'} : {}"> <div class="result-text-container" [ngStyle]="showChart === false ? {'visibility': 'hidden'} : {}">
<span *ngIf="selectedFilter === 'ALL'">{{newWorkListResponse.length + ITGCount}} {{ts.trPK('work-list','of')}} </span> <span *ngIf="selectedFilter === 'ALL'">{{newWorkListResponse.length + ITGCount}} {{ts.trPK('work-list','of')}} </span>
<span *ngIf="showSearchButton && newWorkListResponse.length > 0 && selectedFilter !== 'ALL' && itemType !== ''">{{newWorkListResponse.length}} of </span> <span *ngIf="showSearchButton && newWorkListResponse.length > 0 && selectedFilter !== 'ALL' && itemType !== ''">{{newWorkListResponse.length}} {{ts.trPK('work-list','of')}} </span>
<h2 *ngIf="!showSearchButton">{{totalRequestCount}}</h2> <h2 *ngIf="!showSearchButton">{{totalRequestCount}}</h2>
<h2 *ngIf="showSearchButton && newWorkListResponse.length > 0 && itemType === ''">{{newWorkListResponse[0].NO_OF_ROWS + ITGCount}}</h2> <h2 *ngIf="showSearchButton && newWorkListResponse.length > 0 && itemType === ''">{{newWorkListResponse[0].NO_OF_ROWS + ITGCount}}</h2>
<h2 *ngIf="showSearchButton && newWorkListResponse.length > 0 && selectedFilter !== 'ALL' && itemType !== ''">{{newWorkListResponse[0].NO_OF_ROWS}}</h2> <h2 *ngIf="showSearchButton && newWorkListResponse.length > 0 && selectedFilter !== 'ALL' && itemType !== ''">{{newWorkListResponse[0].NO_OF_ROWS}}</h2>
@ -69,7 +69,7 @@
</div> </div>
</div> </div>
</div> </div>
<div [ngClass]="showFormattedData.length > 0 ? 'work-list-container' : ''" *ngIf="selectedFilter == 'ITG'" > <div [ngClass]="ITGItem.length > 0 ? 'work-list-container' : ''" *ngIf="selectedFilter == 'ITG'" >
<!-- <div *ngFor='let segmentInfo of ITGItem[0]; let i= index' (click)='openITG(segmentInfo)'> --> <!-- <div *ngFor='let segmentInfo of ITGItem[0]; let i= index' (click)='openITG(segmentInfo)'> -->
<div *ngFor='let segmentInfo of ITGItem[0]; let i= index' > <div *ngFor='let segmentInfo of ITGItem[0]; let i= index' >
@ -90,7 +90,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="no-data-available" *ngIf="showFormattedData.length === 0"> <div class="no-data-available" *ngIf="showFormattedData.length === 0 && selectedFilter != 'ITG'">
<span>{{ts.trPK('work-list','No-data-available')}}</span>
</div>
<div class="no-data-available" *ngIf="ITGItem.length === 0 && selectedFilter == 'ITG'">
<span>{{ts.trPK('work-list','No-data-available')}}</span> <span>{{ts.trPK('work-list','No-data-available')}}</span>
</div> </div>
</div> </div>

@ -214,10 +214,8 @@ export class HomeComponent implements OnInit {
} else if (notification.ITEM_TYPE === 'INVMOA') { } else if (notification.ITEM_TYPE === 'INVMOA') {
this.filters[4].value = this.totalMR; this.filters[4].value = this.totalMR;
this.data.datasets[0].data[3] = notification.OPEN_NTF_NUMBER; this.data.datasets[0].data[3] = notification.OPEN_NTF_NUMBER;
} else if (notification.ITEM_TYPE === 'ITG') {
this.filters[5].value = notification.OPEN_NTF_NUMBER;
this.data.datasets[0].data[4] = notification.OPEN_NTF_NUMBER;
} }
this.data.datasets[0].data[4] = this.ITGCount;
} }
this.showChart = true; this.showChart = true;
this.common.stopLoading(); this.common.stopLoading();
@ -433,6 +431,9 @@ export class HomeComponent implements OnInit {
} }
} else { } else {
this.newWorkListResponse = []; this.newWorkListResponse = [];
this.data.datasets[0].data[4] = this.ITGCount;
this.showChart = true;
this.common.stopLoading();
} }
} }
@ -530,21 +531,12 @@ export class HomeComponent implements OnInit {
Details() { Details() {
this.workListService.getITGDetails('', '', this.isPostNoLoad) this.workListService.getITGDetails('', '', this.isPostNoLoad)
.subscribe((result: any) => { .subscribe((result: any) => {
this.ITGCount = result.TotalCount;
this.totalRequestCount = this.totalRequestCount + result.TotalCount; this.totalRequestCount = this.totalRequestCount + result.TotalCount;
this.filters[5].value = result.TotalCount; this.filters[5].value = result.TotalCount;
}); });
} }
ITGNotification() {
// this.Details();
this.isAll = false;
this.isPR = false;
this.isPO = false;
this.isMR = false;
this.isHR = false;
this.isITG = true;
}
searchBtn() { searchBtn() {
this.isSearch = !this.isSearch; this.isSearch = !this.isSearch;
} }

@ -87,7 +87,7 @@ button.item-button.button.button-md.button-clear.button-clear-md {
// padding-left: 10px !important; // padding-left: 10px !important;
border: solid var(--gray) 1px; border: solid var(--gray) 1px;
border-radius: 21px; border-radius: 21px;
padding-left: 145px !important; // padding-left: 145px !important;
margin-left: 86px; margin-left: 86px;
padding-right: 129px; padding-right: 129px;
margin-right: -143px; margin-right: -143px;

@ -42,16 +42,21 @@ export class WorkListReplacementRollComponent implements OnInit {
searchKeyEnter: boolean = false; searchKeyEnter: boolean = false;
messageSuccess: boolean =false; messageSuccess: boolean =false;
public direction: string; public direction: string;
P_RESPOND_ATTRIBUTES_TBL: any[];
constructor(public worklistService: WorklistService, private cs: CommonService, private ts: TranslatorService, public workListMainService: WorklistMainService, public modalCtrl: ModalController) { constructor(public worklistService: WorklistService, private cs: CommonService, private ts: TranslatorService, public workListMainService: WorklistMainService, public modalCtrl: ModalController) {
this.P_PAGE_NUM = 1; this.P_PAGE_NUM = 1;
this.P_PAGE_LIMIT = 50; this.P_PAGE_LIMIT = 50;
this.getPassActionMode = this.cs.sharedService.getSharedData('passActionMode', false); this.getPassActionMode = this.cs.sharedService.getSharedData('passActionMode', false);
console.log(this.getPassActionMode);
this.getPassNotificationDetails = this.cs.sharedService.getSharedData('passNotificationInfo', false); this.getPassNotificationDetails = this.cs.sharedService.getSharedData('passNotificationInfo', false);
this.getpassResAttr = this.cs.sharedService.getSharedData('passResAttr', false); this.getpassResAttr = this.cs.sharedService.getSharedData('passResAttr', false);
console.log(this.getpassResAttr);
this.pQuestion = this.cs.sharedService.getSharedData('pQuestion', false); this.pQuestion = this.cs.sharedService.getSharedData('pQuestion', false);
if (this.getPassActionMode == "ANSWER_INFO") { if (this.getPassActionMode == "ANSWER_INFO") {
this.isAnswer = true; this.isAnswer = true;
} }
this.WorkListReplacmentEmployeeObj.P_PAGE_NUM = this.P_PAGE_NUM; this.WorkListReplacmentEmployeeObj.P_PAGE_NUM = this.P_PAGE_NUM;
this.WorkListReplacmentEmployeeObj.P_PAGE_LIMIT = this.P_PAGE_LIMIT; this.WorkListReplacmentEmployeeObj.P_PAGE_LIMIT = this.P_PAGE_LIMIT;
@ -210,17 +215,42 @@ export class WorkListReplacementRollComponent implements OnInit {
console.log("selEmp "+ this.selEmp.USER_NAME); console.log("selEmp "+ this.selEmp.USER_NAME);
if (this.selectedUserInf && this.selectedUserInf.USER_NAME) { if (this.selectedUserInf && this.selectedUserInf.USER_NAME) {
console.log("userInfo "+this.selectedUserInf.USER_NAME); console.log("userInfo "+this.selectedUserInf.USER_NAME);
if (this.userNote) { if (this.userNote) {
if(this.getPassActionMode == "APPROVE_AND_FORWARD" || this.getPassActionMode == "FORWARD"){
let index_FORWARD = this.getpassResAttr.findIndex(x => x.ATTRIBUTE_NAME === "FORWARD_TO_USERNAME_RESPONSE");
this.getpassResAttr[index_FORWARD].ATTRIBUTE_TEXT_VALUE = this.selectedUserInf.USER_NAME;
// this.userNote;
let index_Note = this.getpassResAttr.findIndex(x => x.ATTRIBUTE_NAME === "NOTE");
this.getpassResAttr[index_Note].ATTRIBUTE_TEXT_VALUE = this.userNote;
this.P_RESPOND_ATTRIBUTES_TBL= this.getpassResAttr;
console.log(this.P_RESPOND_ATTRIBUTES_TBL);
this.WorkListActionObj.P_FORWARD_TO_USER_NAME = this.selectedUserInf.USER_NAME;
this.WorkListActionObj.P_ACTION_MODE = this.getPassActionMode;
this.WorkListActionObj.P_COMMENTS =""// response Attr
this.WorkListActionObj.RespondAttributeList = this.P_RESPOND_ATTRIBUTES_TBL;
}else{
this.WorkListActionObj.P_FORWARD_TO_USER_NAME = this.selectedUserInf.USER_NAME; this.WorkListActionObj.P_FORWARD_TO_USER_NAME = this.selectedUserInf.USER_NAME;
this.WorkListActionObj.P_ACTION_MODE = this.getPassActionMode; this.WorkListActionObj.P_ACTION_MODE = this.getPassActionMode;
this.WorkListActionObj.P_COMMENTS = this.userNote;// response Attr this.WorkListActionObj.P_COMMENTS = this.userNote;// response Attr
// this.modalCtrl.dismiss(); // this.modalCtrl.dismiss();
}
this.workListMainService.actionButton(this.WorkListActionObj). this.workListMainService.actionButton(this.WorkListActionObj).
subscribe((result: any) => { subscribe((result: any) => {
this.handleApplayActionResult(result); this.handleApplayActionResult(result);
}); });
} else { } else {
let msg: string = this.ts.trPK("replacementRoll", "enterNote"); let msg: string = this.ts.trPK("replacementRoll", "enterNote");
this.cs.showErrorMessageDialog(() => { this.cs.showErrorMessageDialog(() => {
@ -237,12 +267,13 @@ export class WorkListReplacementRollComponent implements OnInit {
this.WorkListActionObj.P_FORWARD_TO_USER_NAME = null; this.WorkListActionObj.P_FORWARD_TO_USER_NAME = null;
this.WorkListActionObj.P_ACTION_MODE = this.getPassActionMode; this.WorkListActionObj.P_ACTION_MODE = this.getPassActionMode;
this.WorkListActionObj.P_COMMENTS = this.userNote;// response Attr this.WorkListActionObj.P_COMMENTS = this.userNote;// response Attr
// here must send response attr
// this.modalCtrl.dismiss(); // this.modalCtrl.dismiss();
this.workListMainService.actionButton(this.WorkListActionObj). // this.workListMainService.actionButton(this.WorkListActionObj).
subscribe((result: any) => { // subscribe((result: any) => {
this.handleApplayActionResult(result); // this.handleApplayActionResult(result);
}); // });
} else { } else {
let msg: string = this.ts.trPK("replacementRoll", "enterNote"); let msg: string = this.ts.trPK("replacementRoll", "enterNote");
this.cs.showErrorMessageDialog(() => { this.cs.showErrorMessageDialog(() => {
@ -275,7 +306,7 @@ export class WorkListReplacementRollComponent implements OnInit {
}); });
}, 5000); }, 5000);
this.cs.openNotificationPage();
} }
} // not valid it } // not valid it

@ -141,6 +141,7 @@ export class WorkListRfcComponent implements OnInit {
}); });
}, 5000); }, 5000);
this.cs.openNotificationPage();
} }
} // valid it } // valid it

@ -185,24 +185,7 @@
</ion-card-content> </ion-card-content>
<ion-card-content>
<div>
<div id="notificationDynamicFields1">
</div>
</div>
<!-- <ion-item *ngIf="notificationButtonRes?.length >0" class="requiredItem">
<ion-label class="boldTxtNav">{{'actionHis, action' | translate}} </ion-label>
<ion-select okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}"
[(ngModel)]="actionType" required>
<ion-select-option value="{{notificationButtons.BUTTON_ACTION}}"
*ngFor="let notificationButtons of notificationButtonRes; let i=index;">
{{notificationButtons.BUTTON_LABEL}}</ion-select-option>
</ion-select>
</ion-item> -->
</ion-card-content>
</ion-card> </ion-card>
</ng-container> </ng-container>
<!-- </ion-slide> --> <!-- </ion-slide> -->
@ -509,8 +492,8 @@
<!-- [ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submitted' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Rejected','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" --> <!-- [ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submitted' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Rejected','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" -->
<ion-label <ion-label
[ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submite' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Reject','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Reject' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" [ngClass]="{'bg-blue-txt' : actionHistory.ACTION_CODE === 'SUBMIT' ,'bg-orange-txt' : actionHistory.ACTION_CODE === 'PENDING' ,'bg-red-txt' : actionHistory.ACTION_CODE === 'REJECT','bg-green-txt' : actionHistory.ACTION_CODE != 'PENDING' && actionHistory.ACTION_CODE != 'REJECT' && actionHistory.ACTION_CODE != 'SUBMIT'}"
class=""> {{actionHistory.ACTION}}</ion-label> class=""> {{actionHistory.ACTION}}</ion-label>
<ion-label *ngIf="actionHistory.NOTIFICATION_DATE != ''" class="dateActionHistory"> <ion-label *ngIf="actionHistory.NOTIFICATION_DATE != ''" class="dateActionHistory">
@ -530,14 +513,15 @@
</ng-container> </ng-container>
<!-- <ion-slide> --> <!-- <ion-slide> -->
<ng-container *ngIf="activeSegment === 'attach'"> <ng-container *ngIf="activeSegment === 'attach'">
<ion-card class="cardContent">
<ion-card-content>
<div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0"> <div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0">
<p>{{ 'general, notAttch' | translate}}</p> <p>{{ 'general, notAttch' | translate}}</p>
</div> </div>
<div *ngIf="attachmentRes && attachmentRes.length > 0 "> <div *ngIf="attachmentRes && attachmentRes.length > 0 ">
<ion-grid> <ion-grid>
<ion-item class="itemAttch" *ngFor="let attachList of attachmentRes"> <ion-item class="itemAttch" *ngFor="let attachList of attachmentRes ;let i=index;">
<!-- <div *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'"> <!-- <div *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'">
<img float-start class="attachImg" src="../assets/imgs/pdf.png"> <img float-start class="attachImg" src="../assets/imgs/pdf.png">
</div> </div>
@ -552,8 +536,8 @@
*ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'"> *ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'">
<img float-start class="attachImg" src="../assets/imgs/img.png"> <img float-start class="attachImg" src="../assets/imgs/img.png">
</div> --> </div> -->
<ion-label> <ion-label style="color: black !important">
{{attachList.SEQ_NUM }}. {{attachList.FILE_NAME}} </ion-label> {{i+1 }}. {{attachList.FILE_NAME}} </ion-label>
<button float-end class="attachImgBtn" <button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)"> (click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)">
@ -566,19 +550,20 @@
</div> </div>
</ion-card-content>
</ion-card>
</ng-container> </ng-container>
<!-- </ion-slide> <!-- </ion-slide>
</ion-slides> --> </ion-slides> -->
<!-- <div id="notificationDynamicFields">
</div> -->
<ion-row> <ion-row>
<ion-col col-12> <ion-col col-12>
<div id="notificationDynamicFields"> <div id="notificationDynamicFieldsMR">
</div> </div>
</ion-col> </ion-col>
</ion-row> </ion-row>
@ -590,19 +575,14 @@
<ion-icon class="succssfullIcon" name="checkmark"></ion-icon> <ion-icon class="succssfullIcon" name="checkmark"></ion-icon>
<!--filled--> <!--filled-->
</ion-col> </ion-col>
<ion-col size="12"> <div style="font-size: 30px !important"> Transaction Successful </div> </ion-col> <ion-col size="12"> <div style="font-size: 30px !important"> {{'worklistMain, Tran_Succ' | translate}} </div> </ion-col>
</div> </div>
</ion-content> </ion-content>
<ion-footer *ngIf="!messageSuccess" class="footerSearchBtn"> <ion-footer *ngIf="!messageSuccess" class="footerSearchBtn">
<!-- <ion-row>
<ion-col col-12>
<div id="notificationDynamicFields">
</div>
</ion-col>
</ion-row> -->
<!-- <ion-row> <!-- <ion-row>
<ion-col col-2> <ion-col col-2>

@ -33,6 +33,8 @@ import { WorkListReplacementRollComponent } from '../work-list-replacement-roll/
import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component'; import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component';
import { MOItemHistoryRes } from '../models/MOItemHistoryRes'; import { MOItemHistoryRes } from '../models/MOItemHistoryRes';
import { MOItemHistoryReq } from '../models/MOItemHistoryReq'; import { MOItemHistoryReq } from '../models/MOItemHistoryReq';
import { GetOpenNotificationsResponse } from 'src/app/hmg-common/services/dashbored/models/GetOpenNotificationsResponse';
import { DashboredService } from 'src/app/hmg-common/services/dashbored/dashbored.service';
@Component({ @Component({
selector: 'app-worklist-main-mr', selector: 'app-worklist-main-mr',
@ -105,9 +107,12 @@ export class WorklistMainMRComponent implements OnInit {
moreDisabled: boolean = true; moreDisabled: boolean = true;
direction: string; direction: string;
defaultSegment = ''; defaultSegment = '';
public isPostNoLoad = true;
public worklistNotifications: any;
public totalRequestCount = 0;
constructor( constructor(
public common: CommonService, public common: CommonService,
public ts: TranslatorService, public ts: TranslatorService,
public worklistMainService: WorklistMainService, public worklistMainService: WorklistMainService,
@ -116,7 +121,8 @@ export class WorklistMainMRComponent implements OnInit {
public events: Events, public events: Events,
public worklistAttachService: WorklistAttachService, public worklistAttachService: WorklistAttachService,
private modalCtrl: ModalController, private modalCtrl: ModalController,
public worklistService: WorklistService public worklistService: WorklistService,
public dashboredService: DashboredService,
) { ) {
this.direction = TranslatorService.getCurrentLanguageName() this.direction = TranslatorService.getCurrentLanguageName()
//this.getPassNotificationDetails = this.common.sharedService.getSharedData('passNotificationInfo'); //this.getPassNotificationDetails = this.common.sharedService.getSharedData('passNotificationInfo');
@ -142,7 +148,7 @@ export class WorklistMainMRComponent implements OnInit {
intializeNotificationDetail() { intializeNotificationDetail() {
if (this.messageSuccess) { if (this.messageSuccess) {
document.getElementById('notificationDynamicFields').innerHTML = ''; document.getElementById('notificationDynamicFieldsMR').innerHTML = '';
} }
console.log('intializeNotificationDetail'); console.log('intializeNotificationDetail');
this.getPassNotificationDetails = this.common.sharedService.getSharedData( this.getPassNotificationDetails = this.common.sharedService.getSharedData(
@ -307,7 +313,7 @@ export class WorklistMainMRComponent implements OnInit {
setTimeout(() => { setTimeout(() => {
this.messageSuccess = false; this.messageSuccess = false;
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
}, 5000); }, 5000);
@ -315,26 +321,63 @@ export class WorklistMainMRComponent implements OnInit {
} // valid it } // valid it
} }
// public nextNotfification() {
// //let itemExist = false;
// let itemNo = this.getPassNotificationDetails.ROW_NUM;
// itemNo += 1;
// if (itemNo > this.notificationArray.length) {
// this.common.openNotificationPage();
// } else {
// for (let i = 0; i < this.notificationArray.length; i++) {
// if (this.notificationArray[i].ROW_NUM == itemNo) {
// this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA);
// // itemExist = true;
// this.intializeNotificationDetail();
// // this.common.openNotificationPage();
// break;
// }
// }
// // if(itemExist==false){
// // this.nextNotfification();
// // }
// }
// }
public nextNotfification() { public nextNotfification() {
//let itemExist = false; //let itemExist = false;
if( document.getElementById("notificationDynamicFieldsMR") != null){
document.getElementById("notificationDynamicFieldsMR").innerHTML = "";
}
let itemNo = this.getPassNotificationDetails.ROW_NUM; let itemNo = this.getPassNotificationDetails.ROW_NUM;
itemNo += 1; console.log(itemNo);
if (itemNo > this.notificationArray.length) { let index = this.notificationArray.findIndex(x => x.ROW_NUM === itemNo);
this.common.openNotificationPage(); console.log(index);
} else { console.log(this.notificationArray);
for (let i = 0; i < this.notificationArray.length; i++) { index += 1;
if (this.notificationArray[i].ROW_NUM == itemNo) {
this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA); if (index < this.notificationArray.length) {
// itemExist = true; this.common.sharedService.setSharedData(this.notificationArray[index], HomeComponent.NOTIFICATION_DATA);
this.intializeNotificationDetail(); if(this.notificationArray[index].REQUEST_TYPE == "PO" ){
// this.common.openNotificationPage(); this.common.openWorklistMainPOPage();
}else
break; if(this.notificationArray[index].REQUEST_TYPE == "PR" ){
} this.common.openWorklistMainPRPage();
}
else
if(this.notificationArray[index].REQUEST_TYPE == "MR" ){
this.intializeNotificationDetail();
}else{
this.common.openWorklistMainPage();
} }
// if(itemExist==false){
// this.nextNotfification(); }
// } else{
this.common.openNotificationPage();
} }
} }
@ -567,6 +610,8 @@ export class WorklistMainMRComponent implements OnInit {
} }
getNotificationResAttr(notificationButtonsObj) { getNotificationResAttr(notificationButtonsObj) {
console.log("getNotificationResAttr");
this.worklistMainService this.worklistMainService
.notificationResponseAttr(notificationButtonsObj) .notificationResponseAttr(notificationButtonsObj)
.subscribe((result: NotificatonButtonResponse) => { .subscribe((result: NotificatonButtonResponse) => {
@ -601,10 +646,12 @@ export class WorklistMainMRComponent implements OnInit {
} // End handleWorkListButtonsResult } // End handleWorkListButtonsResult
notificationDynamicFields(notificationAttr) { notificationDynamicFields(notificationAttr) {
const containerId = 'notificationDynamicFields'; const containerId = 'notificationDynamicFieldsMR';
for (let i = 0; i < notificationAttr.length; i++) { for (let i = 0; i < notificationAttr.length; i++) {
if (notificationAttr[i].ATTRIBUTE_TYPE == 'VARCHAR2') { if (notificationAttr[i].ATTRIBUTE_TYPE == 'VARCHAR2') {
this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, '', containerId, '', '', ''); this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, '', containerId, '', '', '');
console.log(this.textArea );
} else if (notificationAttr[i].ATTRIBUTE_TYPE == 'ROLE') { } else if (notificationAttr[i].ATTRIBUTE_TYPE == 'ROLE') {
} else if (notificationAttr[i].ATTRIBUTE_TYPE == 'DATE') { } else if (notificationAttr[i].ATTRIBUTE_TYPE == 'DATE') {
@ -643,19 +690,19 @@ export class WorklistMainMRComponent implements OnInit {
} }
} }
getNotificationCountAfterSubmit() { // getNotificationCountAfterSubmit() {
const req: any = {}; // const req: any = {};
this.menuService.getNotificationCount(req).subscribe((result: any) => { // this.menuService.getNotificationCount(req).subscribe((result: any) => {
if (this.common.validResponse(result)) { // if (this.common.validResponse(result)) {
this.notificationCount = // this.notificationCount =
result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM; // result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM;
if (this.notificationCount <= 0) { // if (this.notificationCount <= 0) {
this.notificationCount = null; // this.notificationCount = null;
} // }
this.events.publish('getNotCount', this.notificationCount); // this.events.publish('getNotCount', this.notificationCount);
} // }
}); // });
} // }
@ -1000,7 +1047,7 @@ export class WorklistMainMRComponent implements OnInit {
if (data.data == 'cancel' || data.data == undefined) { if (data.data == 'cancel' || data.data == undefined) {
return; return;
} else if (data.data == 'Success') { } else if (data.data == 'Success') {
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
} }
@ -1032,7 +1079,7 @@ export class WorklistMainMRComponent implements OnInit {
if (data.data == 'cancel' || data.data == undefined) { if (data.data == 'cancel' || data.data == undefined) {
return; return;
} else if (data.data == 'Success') { } else if (data.data == 'Success') {
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
} }
@ -1089,7 +1136,15 @@ export class WorklistMainMRComponent implements OnInit {
} }
openNotificationsDashboard() {
this.dashboredService.getOpenNotifications('', '', this.isPostNoLoad).subscribe((result: GetOpenNotificationsResponse) => {
if (this.common.validResponse(result)) {
this.worklistNotifications = result;
this.totalRequestCount = this.worklistNotifications.P_OPEN_NTF_NUMBER;
this.common.sharedService.setSharedData(result, 'worklistNotifications');
}
});
}
} }

@ -341,15 +341,7 @@
</ion-card-content> </ion-card-content>
<ion-card-content>
<div>
<div id="notificationDynamicFields1">
</div>
</div>
</ion-card-content>
</ion-card> </ion-card>
</ng-container> </ng-container>
@ -625,8 +617,8 @@
<ion-label <ion-label
[ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submite' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Reject','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Reject' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" [ngClass]="{'bg-blue-txt' : actionHistory.ACTION_CODE === 'SUBMIT' ,'bg-orange-txt' : actionHistory.ACTION_CODE === 'PENDING' ,'bg-red-txt' : actionHistory.ACTION_CODE === 'REJECT','bg-green-txt' : actionHistory.ACTION_CODE != 'PENDING' && actionHistory.ACTION_CODE != 'REJECT' && actionHistory.ACTION_CODE != 'SUBMIT'}"
class=""> {{actionHistory.ACTION}}</ion-label> class=""> {{actionHistory.ACTION}}</ion-label>
<ion-label *ngIf="actionHistory.NOTIFICATION_DATE != ''" class="dateActionHistory"> {{actionHistory.NOTIFICATION_DATE| dateString }} </ion-label> <ion-label *ngIf="actionHistory.NOTIFICATION_DATE != ''" class="dateActionHistory"> {{actionHistory.NOTIFICATION_DATE| dateString }} </ion-label>
@ -644,14 +636,15 @@
</ion-card> </ion-card>
</ng-container> </ng-container>
<ng-container *ngIf="activeSegment === 'attach'"> <ng-container *ngIf="activeSegment === 'attach'">
<ion-card class="cardContent">
<ion-card-content>
<div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0"> <div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0">
<p>{{ 'general, notAttch' | translate}}</p> <p>{{ 'general, notAttch' | translate}}</p>
</div> </div>
<div *ngIf="attachmentRes && attachmentRes.length > 0 "> <div *ngIf="attachmentRes && attachmentRes.length > 0 ">
<ion-grid> <ion-grid>
<ion-item class="itemAttch" *ngFor="let attachList of attachmentRes" > <ion-item class="itemAttch" *ngFor="let attachList of attachmentRes ; let i=index;" >
<!-- <div <!-- <div
*ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'"> *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'">
<img float-start class="attachImg" src="../assets/imgs/pdf.png"> <img float-start class="attachImg" src="../assets/imgs/pdf.png">
@ -667,8 +660,8 @@
*ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'"> *ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'">
<img float-start class="attachImg" src="../assets/imgs/img.png"> <img float-start class="attachImg" src="../assets/imgs/img.png">
</div> --> </div> -->
<ion-label> <ion-label style="color: black !important" >
{{attachList.SEQ_NUM }}. {{attachList.FILE_NAME}} </ion-label> {{i+1}}. {{attachList.FILE_NAME}} </ion-label>
<button float-end class="attachImgBtn" <button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)"> (click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)">
@ -681,14 +674,15 @@
</div> </div>
</ion-card-content>
</ion-card>
</ng-container> </ng-container>
<!-- </ion-slides> --> <!-- </ion-slides> -->
<ion-row> <ion-row>
<ion-col col-12> <ion-col col-12>
<div id="notificationDynamicFields"> <div id="notificationDynamicFieldsPO">
</div> </div>
</ion-col> </ion-col>
</ion-row> </ion-row>
@ -698,7 +692,7 @@
<ion-icon class="succssfullIcon" name="checkmark"></ion-icon> <ion-icon class="succssfullIcon" name="checkmark"></ion-icon>
<!--filled--> <!--filled-->
</ion-col> </ion-col>
<ion-col size="12"> <div style="font-size: 30px !important"> Transaction Successful </div> </ion-col> <ion-col size="12"> <div style="font-size: 30px !important"> {{'worklistMain, Tran_Succ' | translate}}</div> </ion-col>
</div> </div>
</ion-content> </ion-content>

@ -35,6 +35,8 @@ import { QuotationAnalysisRequest } from '../models/quotationAnalysisReq';
import { MoreActionModalComponent } from '../more-action-modal/more-action-modal.component' import { MoreActionModalComponent } from '../more-action-modal/more-action-modal.component'
import { WorkListReplacementRollComponent } from '../work-list-replacement-roll/work-list-replacement-roll.component'; import { WorkListReplacementRollComponent } from '../work-list-replacement-roll/work-list-replacement-roll.component';
import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component'; import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component';
import { DashboredService } from 'src/app/hmg-common/services/dashbored/dashbored.service';
import { GetOpenNotificationsResponse } from 'src/app/hmg-common/services/dashbored/models/GetOpenNotificationsResponse';
@Component({ @Component({
selector: 'app-worklist-main-po', selector: 'app-worklist-main-po',
@ -54,7 +56,9 @@ export class WorklistMainPoComponent implements OnInit {
public static PASS_PO_HEADER_ID = "passPOHeader"; public static PASS_PO_HEADER_ID = "passPOHeader";
public static PASS_ACTION_MODE = "passActionMode"; public static PASS_ACTION_MODE = "passActionMode";
public static PASS_ACTION_MORE = "passActioMore"; public static PASS_ACTION_MORE = "passActioMore";
public isPostNoLoad = true;
public worklistNotifications: any;
public totalRequestCount = 0;
getPassNotificationDetails: any; getPassNotificationDetails: any;
public static PASS_RES_ATTR = "passResAttr"; public static PASS_RES_ATTR = "passResAttr";
TransactionID: number = -999; TransactionID: number = -999;
@ -129,6 +133,8 @@ export class WorklistMainPoComponent implements OnInit {
public worklistAttachService: WorklistAttachService, public worklistAttachService: WorklistAttachService,
private modalCtrl: ModalController, private modalCtrl: ModalController,
public worklistService: WorklistService, public worklistService: WorklistService,
public dashboredService: DashboredService,
) { ) {
this.direction = TranslatorService.getCurrentLanguageName() this.direction = TranslatorService.getCurrentLanguageName()
this.WorkListActionHistoryObj = new WorkListActionHistoryRequest(); this.WorkListActionHistoryObj = new WorkListActionHistoryRequest();
@ -147,7 +153,7 @@ export class WorklistMainPoComponent implements OnInit {
}//ngOn }//ngOn
intializeNotificationDetail() { intializeNotificationDetail() {
if (this.messageSuccess) { if (this.messageSuccess) {
document.getElementById("notificationDynamicFields").innerHTML = ""; document.getElementById("notificationDynamicFieldsPO").innerHTML = "";
} }
console.log("intializeNotificationDetail"); console.log("intializeNotificationDetail");
this.getPassNotificationDetails = this.common.sharedService.getSharedData( this.getPassNotificationDetails = this.common.sharedService.getSharedData(
@ -340,7 +346,7 @@ export class WorklistMainPoComponent implements OnInit {
setTimeout(() => { setTimeout(() => {
this.messageSuccess = false; this.messageSuccess = false;
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
}, 5000); }, 5000);
@ -349,24 +355,59 @@ export class WorklistMainPoComponent implements OnInit {
} // valid it } // valid it
} }
// public nextNotfification() {
// //let itemExist = false;
// let itemNo = this.getPassNotificationDetails.ROW_NUM;
// itemNo += 1;
// if (itemNo > this.notificationArray.length) {
// this.common.openNotificationPage();
// } else {
// for (let i = 0; i < this.notificationArray.length; i++) {
// if (this.notificationArray[i].ROW_NUM == itemNo) {
// this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA);
// // itemExist = true;
// this.intializeNotificationDetail();
// break;
// }
// }
// // if(itemExist==false){
// // this.nextNotfification();
// // }
// }
// }
public nextNotfification() { public nextNotfification() {
//let itemExist = false; //let itemExist = false;
if( document.getElementById("notificationDynamicFieldsPO") != null){
document.getElementById("notificationDynamicFieldsPO").innerHTML = "";
}
let itemNo = this.getPassNotificationDetails.ROW_NUM; let itemNo = this.getPassNotificationDetails.ROW_NUM;
itemNo += 1; console.log(itemNo);
if (itemNo > this.notificationArray.length) { let index = this.notificationArray.findIndex(x => x.ROW_NUM === itemNo);
this.common.openNotificationPage(); console.log(index);
} else { console.log(this.notificationArray);
for (let i = 0; i < this.notificationArray.length; i++) { index += 1;
if (this.notificationArray[i].ROW_NUM == itemNo) {
this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA); if (index < this.notificationArray.length) {
// itemExist = true; this.common.sharedService.setSharedData(this.notificationArray[index], HomeComponent.NOTIFICATION_DATA);
this.intializeNotificationDetail(); if(this.notificationArray[index].REQUEST_TYPE == "PO" ){
break; this.intializeNotificationDetail();
} }else
if(this.notificationArray[index].REQUEST_TYPE == "PR" ){
this.common.openWorklistMainPRPage()
}
else
if(this.notificationArray[index].REQUEST_TYPE == "MR" ){
this.common.openWorklistMainMRPage()
}else{
this.common.openWorklistMainPage();
} }
// if(itemExist==false){
// this.nextNotfification(); }
// } else{
this.common.openNotificationPage();
} }
} }
@ -393,14 +434,17 @@ export class WorklistMainPoComponent implements OnInit {
} }
this.P_RESPOND_ATTRIBUTES_TBL.push(obj); this.P_RESPOND_ATTRIBUTES_TBL.push(obj);
} }
console.log("a"+ this.P_RESPOND_ATTRIBUTES_TBL);
let repUserName = this.selEmployeeID; let repUserName = this.selEmployeeID;
if (this.hideForwordEmployee && this.hideForwordEmployee.ATTRIBUTE_NAME) { // if (this.hideForwordEmployee && this.hideForwordEmployee.ATTRIBUTE_NAME) {
let obj: any = {}; // let obj: any = {};
repUserName = ""; // repUserName = "";
obj.ATTRIBUTE_NAME = this.hideForwordEmployee.ATTRIBUTE_NAME; // obj.ATTRIBUTE_NAME = this.hideForwordEmployee.ATTRIBUTE_NAME;
obj.ATTRIBUTE_TEXT_VALUE = this.selEmployeeID; // obj.ATTRIBUTE_TEXT_VALUE = this.selEmployeeID;
this.P_RESPOND_ATTRIBUTES_TBL.push(obj); // this.P_RESPOND_ATTRIBUTES_TBL.push(obj);
} // }
if ( if (
ButtonAction == "APPROVE" || ButtonAction == "APPROVE" ||
ButtonAction == "REJECT" || ButtonAction == "REJECT" ||
@ -411,6 +455,7 @@ export class WorklistMainPoComponent implements OnInit {
this.WorkListActionObj.P_ACTION_MODE = ButtonAction; this.WorkListActionObj.P_ACTION_MODE = ButtonAction;
this.WorkListActionObj.P_COMMENTS = ""; this.WorkListActionObj.P_COMMENTS = "";
this.WorkListActionObj.RespondAttributeList = this.P_RESPOND_ATTRIBUTES_TBL; this.WorkListActionObj.RespondAttributeList = this.P_RESPOND_ATTRIBUTES_TBL;
//sheardData //sheardData
// this.common.sharedService.setSharedData( // this.common.sharedService.setSharedData(
@ -435,7 +480,7 @@ export class WorklistMainPoComponent implements OnInit {
this.common.confirmAlertDialogAction( this.common.confirmAlertDialogAction(
() => { () => {
this.applyAction(this.WorkListActionObj); // this.applyAction(this.WorkListActionObj);
}, this.ts.trPK('general', 'ok'), }, this.ts.trPK('general', 'ok'),
() => { }, this.ts.trPK('general', 'cancel'), () => { }, this.ts.trPK('general', 'cancel'),
this.ts.trPK('vacation-rule', 'confirmation'), this.ts.trPK('vacation-rule', 'confirmation'),
@ -500,6 +545,8 @@ export class WorklistMainPoComponent implements OnInit {
this.P_RESPOND_ATTRIBUTES_TBL, this.P_RESPOND_ATTRIBUTES_TBL,
WorklistMainPoComponent.PASS_RES_ATTR WorklistMainPoComponent.PASS_RES_ATTR
); );
console.log("c"+ this.P_RESPOND_ATTRIBUTES_TBL);
// this.common.openWorklistRollReplacement(); // this.common.openWorklistRollReplacement();
this.openRepRolModal(); this.openRepRolModal();
} else if ( } else if (
@ -603,6 +650,8 @@ export class WorklistMainPoComponent implements OnInit {
} }
getNotificationResAttr(notificationButtonsObj) { getNotificationResAttr(notificationButtonsObj) {
console.log("getNotificationResAttr");
this.worklistMainService this.worklistMainService
.notificationResponseAttr(notificationButtonsObj) .notificationResponseAttr(notificationButtonsObj)
.subscribe((result: NotificatonButtonResponse) => { .subscribe((result: NotificatonButtonResponse) => {
@ -637,10 +686,12 @@ export class WorklistMainPoComponent implements OnInit {
} // End handleWorkListButtonsResult } // End handleWorkListButtonsResult
notificationDynamicFields(notificationAttr) { notificationDynamicFields(notificationAttr) {
const containerId = 'notificationDynamicFields'; const containerId = 'notificationDynamicFieldsPO';
for (let i = 0; i < notificationAttr.length; i++) { for (let i = 0; i < notificationAttr.length; i++) {
if (notificationAttr[i].ATTRIBUTE_TYPE == "VARCHAR2") { if (notificationAttr[i].ATTRIBUTE_TYPE == "VARCHAR2") {
this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, "", containerId, "", "", ""); this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, "", containerId, "", "", "");
console.log(this.textArea );
} else if (notificationAttr[i].ATTRIBUTE_TYPE == "ROLE") { } else if (notificationAttr[i].ATTRIBUTE_TYPE == "ROLE") {
} else if (notificationAttr[i].ATTRIBUTE_TYPE == "DATE") { } else if (notificationAttr[i].ATTRIBUTE_TYPE == "DATE") {
@ -679,19 +730,19 @@ export class WorklistMainPoComponent implements OnInit {
} }
} }
getNotificationCountAfterSubmit() { // getNotificationCountAfterSubmit() {
const req: any = {}; // const req: any = {};
this.menuService.getNotificationCount(req).subscribe((result: any) => { // this.menuService.getNotificationCount(req).subscribe((result: any) => {
if (this.common.validResponse(result)) { // if (this.common.validResponse(result)) {
this.notificationCount = // this.notificationCount =
result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM; // result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM;
if (this.notificationCount <= 0) { // if (this.notificationCount <= 0) {
this.notificationCount = null; // this.notificationCount = null;
} // }
this.events.publish("getNotCount", this.notificationCount); // this.events.publish("getNotCount", this.notificationCount);
} // }
}); // });
} // }
@ -1068,7 +1119,7 @@ export class WorklistMainPoComponent implements OnInit {
if (data.data == "cancel" || data.data == undefined) { if (data.data == "cancel" || data.data == undefined) {
return; return;
} else if (data.data == "Success") { } else if (data.data == "Success") {
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
} }
@ -1112,4 +1163,15 @@ export class WorklistMainPoComponent implements OnInit {
} }
openNotificationsDashboard() {
this.dashboredService.getOpenNotifications('', '', this.isPostNoLoad).subscribe((result: GetOpenNotificationsResponse) => {
if (this.common.validResponse(result)) {
this.worklistNotifications = result;
this.totalRequestCount = this.worklistNotifications.P_OPEN_NTF_NUMBER;
this.common.sharedService.setSharedData(result, 'worklistNotifications');
}
});
}
} }

@ -171,23 +171,7 @@
</ion-card-content> </ion-card-content>
<ion-card-content>
<div>
<div id="notificationDynamicFields1">
</div>
</div>
<!-- <ion-item *ngIf="notificationButtonRes?.length >0" class="requiredItem">
<ion-label class="boldTxtNav">{{'actionHis, action' | translate}} </ion-label>
<ion-select okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}"
[(ngModel)]="actionType" required>
<ion-select-option value="{{notificationButtons.BUTTON_ACTION}}"
*ngFor="let notificationButtons of notificationButtonRes; let i=index;">
{{notificationButtons.BUTTON_LABEL}}</ion-select-option>
</ion-select>
</ion-item> -->
</ion-card-content>
</ion-card> </ion-card>
@ -359,7 +343,7 @@
<!-- [ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submitted' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Rejected','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" --> <!-- [ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submitted' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Rejected','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" -->
<ion-label <ion-label
[ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submite' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Reject','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Reject' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" [ngClass]="{'bg-blue-txt' : actionHistory.ACTION_CODE === 'SUBMIT' ,'bg-orange-txt' : actionHistory.ACTION_CODE === 'PENDING' ,'bg-red-txt' : actionHistory.ACTION_CODE === 'REJECT','bg-green-txt' : actionHistory.ACTION_CODE != 'PENDING' && actionHistory.ACTION_CODE != 'REJECT' && actionHistory.ACTION_CODE != 'SUBMIT'}"
class=""> {{actionHistory.ACTION}}</ion-label> class=""> {{actionHistory.ACTION}}</ion-label>
@ -378,8 +362,8 @@
</ion-card> </ion-card>
</ng-container> </ng-container>
<ng-container *ngIf="activeSegment === 'attach'"> <ng-container *ngIf="activeSegment === 'attach'">
<!-- <ion-card class="cardContent"> <ion-card class="cardContent">
<ion-card-content> --> <ion-card-content>
<div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0"> <div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0">
<p>{{ 'general, notAttch' | translate}}</p> <p>{{ 'general, notAttch' | translate}}</p>
</div> </div>
@ -387,7 +371,7 @@
<div *ngIf="attachmentRes && attachmentRes.length > 0 "> <div *ngIf="attachmentRes && attachmentRes.length > 0 ">
<ion-grid> <ion-grid>
<ion-item class="itemAttch" *ngFor="let attachList of attachmentRes"> <ion-item class="itemAttch" *ngFor="let attachList of attachmentRes ; let i=index;">
<!-- <div *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'"> <!-- <div *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'">
<img float-start class="attachImg" src="../assets/imgs/pdf.png"> <img float-start class="attachImg" src="../assets/imgs/pdf.png">
</div> </div>
@ -402,8 +386,8 @@
*ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'"> *ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'">
<img float-start class="attachImg" src="../assets/imgs/img.png"> <img float-start class="attachImg" src="../assets/imgs/img.png">
</div> --> </div> -->
<ion-label> <ion-label style="color: black !important">
{{attachList.SEQ_NUM }}. {{attachList.FILE_NAME}} </ion-label> {{i+1}}. {{attachList.FILE_NAME}} </ion-label>
<button float-end class="attachImgBtn" <button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)"> (click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)">
@ -416,12 +400,12 @@
</div> </div>
<!-- </ion-card-content> </ion-card-content>
</ion-card> --> </ion-card>
</ng-container> </ng-container>
<ion-row> <ion-row>
<ion-col col-12> <ion-col col-12>
<div id="notificationDynamicFields"> <div id="notificationDynamicFieldsPR">
</div> </div>
</ion-col> </ion-col>
</ion-row> </ion-row>
@ -431,7 +415,7 @@
<ion-icon class="succssfullIcon" name="checkmark"></ion-icon> <ion-icon class="succssfullIcon" name="checkmark"></ion-icon>
<!--filled--> <!--filled-->
</ion-col> </ion-col>
<ion-col size="12"> <div style="font-size: 30px !important"> Transaction Successful </div> </ion-col> <ion-col size="12"> <div style="font-size: 30px !important"> {{'worklistMain, Tran_Succ' | translate}} </div> </ion-col>
</div> </div>
</ion-content> </ion-content>

@ -31,6 +31,8 @@ import { ApplyActionModalComponent } from '../apply-action-modal/apply-action-mo
import { MoreActionModalComponent } from '../more-action-modal/more-action-modal.component'; import { MoreActionModalComponent } from '../more-action-modal/more-action-modal.component';
import { WorkListReplacementRollComponent } from '../work-list-replacement-roll/work-list-replacement-roll.component'; import { WorkListReplacementRollComponent } from '../work-list-replacement-roll/work-list-replacement-roll.component';
import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component'; import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component';
import { DashboredService } from 'src/app/hmg-common/services/dashbored/dashbored.service';
import { GetOpenNotificationsResponse } from 'src/app/hmg-common/services/dashbored/models/GetOpenNotificationsResponse';
@Component({ @Component({
selector: 'app-worklist-main-pr', selector: 'app-worklist-main-pr',
@ -38,7 +40,9 @@ import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component';
styleUrls: ['./worklist-main-pr.component.scss'], styleUrls: ['./worklist-main-pr.component.scss'],
}) })
export class WorklistMainPRComponent implements OnInit { export class WorklistMainPRComponent implements OnInit {
public isPostNoLoad = true;
public worklistNotifications: any;
public totalRequestCount = 0;
private WorkListBodyObj: WorkListBodyRequest; private WorkListBodyObj: WorkListBodyRequest;
private WorkListButtonsObj: WorkListButtonRequest; private WorkListButtonsObj: WorkListButtonRequest;
private WorkListActionObj: WorkListActionRequest; private WorkListActionObj: WorkListActionRequest;
@ -106,6 +110,7 @@ export class WorklistMainPRComponent implements OnInit {
constructor( constructor(
public dashboredService: DashboredService,
public common: CommonService, public common: CommonService,
public ts: TranslatorService, public ts: TranslatorService,
public worklistMainService: WorklistMainService, public worklistMainService: WorklistMainService,
@ -139,7 +144,7 @@ export class WorklistMainPRComponent implements OnInit {
intializeNotificationDetail() { intializeNotificationDetail() {
if (this.messageSuccess) { if (this.messageSuccess) {
document.getElementById('notificationDynamicFields').innerHTML = ''; document.getElementById('notificationDynamicFieldsPR').innerHTML = '';
} }
console.log('intializeNotificationDetail'); console.log('intializeNotificationDetail');
@ -340,30 +345,66 @@ export class WorklistMainPRComponent implements OnInit {
this.messageSuccess = false; this.messageSuccess = false;
}, 5000); }, 5000);
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
} }
} // valid it } // valid it
} }
// public nextNotfification() {
// //let itemExist = false;
// let itemNo = this.getPassNotificationDetails.ROW_NUM;
// itemNo += 1;
// if (itemNo > this.notificationArray.length) {
// this.common.openNotificationPage();
// } else {
// for (let i = 0; i <= this.notificationArray.length; i++) {
// if (this.notificationArray[i].ROW_NUM == itemNo) {
// this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA);
// // itemExist = true;
// this.intializeNotificationDetail();
// break;
// }
// }
// // if(itemExist==false){
// // this.nextNotfification();
// // }
// }
// }
public nextNotfification() { public nextNotfification() {
//let itemExist = false; //let itemExist = false;
if( document.getElementById("notificationDynamicFieldsPR") != null){
document.getElementById("notificationDynamicFieldsPR").innerHTML = "";
}
let itemNo = this.getPassNotificationDetails.ROW_NUM; let itemNo = this.getPassNotificationDetails.ROW_NUM;
itemNo += 1; console.log(itemNo);
if (itemNo > this.notificationArray.length) { let index = this.notificationArray.findIndex(x => x.ROW_NUM === itemNo);
this.common.openNotificationPage(); console.log(index);
} else { console.log(this.notificationArray);
for (let i = 0; i <= this.notificationArray.length; i++) { index += 1;
if (this.notificationArray[i].ROW_NUM == itemNo) {
this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA); if (index < this.notificationArray.length) {
// itemExist = true; this.common.sharedService.setSharedData(this.notificationArray[index], HomeComponent.NOTIFICATION_DATA);
this.intializeNotificationDetail(); if(this.notificationArray[index].REQUEST_TYPE == "PO" ){
break; this.common.openWorklistMainPOPage()
} }else
if(this.notificationArray[index].REQUEST_TYPE == "PR" ){
this.intializeNotificationDetail();
}
else
if(this.notificationArray[index].REQUEST_TYPE == "MR" ){
this.common.openWorklistMainMRPage()
}else{
this.common.openWorklistMainPage();
} }
// if(itemExist==false){
// this.nextNotfification(); }
// } else{
this.common.openNotificationPage();
} }
} }
@ -601,6 +642,8 @@ export class WorklistMainPRComponent implements OnInit {
} }
getNotificationResAttr(notificationButtonsObj) { getNotificationResAttr(notificationButtonsObj) {
console.log("getNotificationResAttr");
this.worklistMainService this.worklistMainService
.notificationResponseAttr(notificationButtonsObj) .notificationResponseAttr(notificationButtonsObj)
.subscribe((result: NotificatonButtonResponse) => { .subscribe((result: NotificatonButtonResponse) => {
@ -635,10 +678,12 @@ export class WorklistMainPRComponent implements OnInit {
} // End handleWorkListButtonsResult } // End handleWorkListButtonsResult
notificationDynamicFields(notificationAttr) { notificationDynamicFields(notificationAttr) {
const containerId = 'notificationDynamicFields'; const containerId = 'notificationDynamicFieldsPR';
for (let i = 0; i < notificationAttr.length; i++) { for (let i = 0; i < notificationAttr.length; i++) {
if (notificationAttr[i].ATTRIBUTE_TYPE == 'VARCHAR2') { if (notificationAttr[i].ATTRIBUTE_TYPE == 'VARCHAR2') {
this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, '', containerId, '', '', ''); this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, '', containerId, '', '', '');
console.log(this.textArea );
} else if (notificationAttr[i].ATTRIBUTE_TYPE == 'ROLE') { } else if (notificationAttr[i].ATTRIBUTE_TYPE == 'ROLE') {
} else if (notificationAttr[i].ATTRIBUTE_TYPE == 'DATE') { } else if (notificationAttr[i].ATTRIBUTE_TYPE == 'DATE') {
@ -677,19 +722,19 @@ export class WorklistMainPRComponent implements OnInit {
} }
} }
getNotificationCountAfterSubmit() { // getNotificationCountAfterSubmit() {
const req: any = {}; // const req: any = {};
this.menuService.getNotificationCount(req).subscribe((result: any) => { // this.menuService.getNotificationCount(req).subscribe((result: any) => {
if (this.common.validResponse(result)) { // if (this.common.validResponse(result)) {
this.notificationCount = // this.notificationCount =
result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM; // result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM;
if (this.notificationCount <= 0) { // if (this.notificationCount <= 0) {
this.notificationCount = null; // this.notificationCount = null;
} // }
this.events.publish('getNotCount', this.notificationCount); // this.events.publish('getNotCount', this.notificationCount);
} // }
}); // });
} // }
@ -1000,7 +1045,7 @@ export class WorklistMainPRComponent implements OnInit {
if (data.data == 'cancel' || data.data == undefined) { if (data.data == 'cancel' || data.data == undefined) {
return; return;
} else if (data.data == 'Success') { } else if (data.data == 'Success') {
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
} }
@ -1043,4 +1088,14 @@ export class WorklistMainPRComponent implements OnInit {
} }
openNotificationsDashboard() {
this.dashboredService.getOpenNotifications('', '', this.isPostNoLoad).subscribe((result: GetOpenNotificationsResponse) => {
if (this.common.validResponse(result)) {
this.worklistNotifications = result;
this.totalRequestCount = this.worklistNotifications.P_OPEN_NTF_NUMBER;
this.common.sharedService.setSharedData(result, 'worklistNotifications');
}
});
}
} }

@ -40,7 +40,7 @@
<ng-container *ngIf="activeSegment === 'info'"> <ng-container *ngIf="activeSegment === 'info'">
<div *ngIf="notificationBodyRes?.length > 0 "> <div *ngIf="notificationBodyRes?.length > 0 ">
<ion-card *ngFor="let item of notificationBodyRes; let i=index "> <ion-card *ngFor="let item of notificationBodyRes;let i=index; ">
<!-- <ion-card-header class="boxHdr"> <!-- <ion-card-header class="boxHdr">
<div class="hrTitle"> {{'worklistMain, notfDetails' | translate}}</div> <div class="hrTitle"> {{'worklistMain, notfDetails' | translate}}</div>
@ -86,7 +86,7 @@
<ion-col size="9"> <ion-col size="9">
<label style="font-weight: bold; " class="label" for="">{{List.EMPLOYEE_NAME}} </label> <label style="font-weight: bold; " class="label" for="">{{List.EMPLOYEE_NAME}} </label>
<br /> <br />
<label class="label" for="">JOB TITLE DEMO </label><br /> <label class="label" for="">{{List.POSITION_TITLE}} </label><br />
</ion-col> </ion-col>
<ion-col class="status" size="3"> <ion-col class="status" size="3">
@ -109,6 +109,7 @@
</ion-grid> </ion-grid>
<!-- </ion-col> --> <!-- </ion-col> -->
</ion-item> </ion-item>
<!-- </ion-card-content> <!-- </ion-card-content>
</ion-card> --> </ion-card> -->
</ng-container> </ng-container>
@ -368,7 +369,7 @@
</div> </div>
</div> </div>
<ion-label <ion-label
[ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submite' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Reject','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Reject' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" [ngClass]="{'bg-blue-txt' : actionHistory.ACTION_CODE === 'SUBMIT' ,'bg-orange-txt' : actionHistory.ACTION_CODE === 'PENDING' ,'bg-red-txt' : actionHistory.ACTION_CODE === 'REJECT','bg-green-txt' : actionHistory.ACTION_CODE != 'PENDING' && actionHistory.ACTION_CODE != 'REJECT' && actionHistory.ACTION_CODE != 'SUBMIT'}"
class=""> {{actionHistory.ACTION}}</ion-label> class=""> {{actionHistory.ACTION}}</ion-label>
@ -390,14 +391,19 @@
</ng-container> </ng-container>
<ng-container *ngIf="activeSegment === 'attach'"> <ng-container *ngIf="activeSegment === 'attach'">
<ion-card class="cardContent">
<ion-card-content>
<div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0"> <div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0">
<p>{{ 'general, notAttch' | translate}}</p> <p>{{ 'general, notAttch' | translate}}</p>
</div> </div>
<div *ngIf="attachmentRes && attachmentRes.length > 0 "> <div *ngIf="attachmentRes && attachmentRes.length > 0 ">
<ion-grid> <ion-grid>
<ion-item class="itemAttch" *ngFor="let attachList of attachmentRes"> <ion-item class="itemAttch" *ngFor="let attachList of attachmentRes ;let i=index;">
<!-- <div *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'"> <!-- <div *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'">
<img float-start class="attachImg" src="../assets/imgs/pdf.png"> <img float-start class="attachImg" src="../assets/imgs/pdf.png">
</div> </div>
@ -412,8 +418,8 @@
*ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'"> *ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'">
<img float-start class="attachImg" src="../assets/imgs/img.png"> <img float-start class="attachImg" src="../assets/imgs/img.png">
</div> --> </div> -->
<ion-label> <ion-label style="color: black !important">
{{attachList.SEQ_NUM }}. {{attachList.FILE_NAME}} </ion-label> {{i+1 }}. {{attachList.FILE_NAME}} </ion-label>
<button float-end class="attachImgBtn" <button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)"> (click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)">
@ -426,29 +432,12 @@
</div> </div>
</ion-card-content>
</ion-card>
</ng-container> </ng-container>
<div>
<!-- ATTRIBUTE_DISPLAY_NAME: "Note"
ATTRIBUTE_FORMAT: "4000"
ATTRIBUTE_NAME: "WF_NOTE"
ATTRIBUTE_TYPE: "VARCHAR2" -->
<div id="notificationDynamicFields1">
</div>
<!-- <json-schema-form *ngIf="schemaNotific" [form]="schemaNotific" [(ngModel)]="notExampleJsonObject">
</json-schema-form> -->
</div>
<!-- <ion-item *ngIf="notificationButtonRes?.length >0" class="requiredItem">
<ion-label class="boldTxtNav">{{'actionHis, action' | translate}} </ion-label>
<ion-select okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}"
[(ngModel)]="actionType" required>
<ion-select-option value="{{notificationButtons.BUTTON_ACTION}}"
*ngFor="let notificationButtons of notificationButtonRes; let i=index;">
{{notificationButtons.BUTTON_LABEL}}</ion-select-option>
</ion-select>
</ion-item> -->
<ion-row> <ion-row>
<ion-col col-12> <ion-col col-12>
@ -457,12 +446,13 @@
</ion-col> </ion-col>
</ion-row> </ion-row>
</div> </div>
<div *ngIf="messageSuccess" class="succssfullMSG"> <div *ngIf="messageSuccess" class="succssfullMSG">
<ion-col size="12"> <ion-col size="12">
<ion-icon class="succssfullIcon" name="checkmark"></ion-icon> <ion-icon class="succssfullIcon" name="checkmark"></ion-icon>
<!--filled-->
</ion-col> </ion-col>
<ion-col size="12"> <div style="font-size: 30px !important"> Transaction Successful </div> </ion-col> <ion-col size="12"> <div style="font-size: 30px !important"> {{'worklistMain, Tran_Succ' | translate}} </div> </ion-col>
</div> </div>
</ion-content> </ion-content>

@ -35,6 +35,7 @@ import { WorkListSubmitterInfoRequest } from '../models/WorklistsubmitterInfoReq
import { WorkListReplacementRollComponent } from '../work-list-replacement-roll/work-list-replacement-roll.component'; import { WorkListReplacementRollComponent } from '../work-list-replacement-roll/work-list-replacement-roll.component';
import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component'; import { WorkListRfcComponent } from '../work-list-rfc/work-list-rfc.component';
import { ApplyActionModalComponent } from '../apply-action-modal/apply-action-modal.component'; import { ApplyActionModalComponent } from '../apply-action-modal/apply-action-modal.component';
import { GetOpenNotificationsResponse } from 'src/app/hmg-common/services/dashbored/models/GetOpenNotificationsResponse';
@ -97,6 +98,9 @@ export class WorklistMainComponent implements OnInit {
dirfromNotificationPage: boolean = false; dirfromNotificationPage: boolean = false;
direction: string; direction: string;
defaultSegment = ''; defaultSegment = '';
public isPostNoLoad = true;
public worklistNotifications: any;
public totalRequestCount = 0;
constructor( constructor(
public worklistService: WorklistService, public worklistService: WorklistService,
@ -134,6 +138,14 @@ export class WorklistMainComponent implements OnInit {
}); });
} }
//name=document.getElementById('notificationDynamicFields').value;
//removeElement('parentDiv', name);"
//var navbar = document.getElementById("notificationDynamicFields").value;
// document.querySelector('svg .gauge.chart > text').remove();
// var inputValue = (<HTMLInputElement>document.getElementById("notificationDynamicFields")).value;
console.log(" this.selEmp" + this.selEmp); console.log(" this.selEmp" + this.selEmp);
this.intializeNotificationDetail(); this.intializeNotificationDetail();
@ -145,15 +157,17 @@ export class WorklistMainComponent implements OnInit {
} }
intializeNotificationDetail() { intializeNotificationDetail() {
if (this.messageSuccess) { if (this.messageSuccess) {
document.getElementById("notificationDynamicFields").innerHTML = ""; document.getElementById("notificationDynamicFields").innerHTML = "";
} }
this.getPassNotificationDetails = this.common.sharedService.getSharedData( this.getPassNotificationDetails = this.common.sharedService.getSharedData(
HomeComponent.NOTIFICATION_DATA, HomeComponent.NOTIFICATION_DATA,
false false
); );
console.log(this.getPassNotificationDetails.ROW_NUM); console.log("for next()"+ this.getPassNotificationDetails.ROW_NUM);
this.notificationArray = this.common.sharedService.getSharedData( this.notificationArray = this.common.sharedService.getSharedData(
HomeComponent.NOTIFICATION_ARR, HomeComponent.NOTIFICATION_ARR,
false false
@ -350,7 +364,8 @@ export class WorklistMainComponent implements OnInit {
setTimeout(() => { setTimeout(() => {
this.messageSuccess = false; this.messageSuccess = false;
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
}, 5000); }, 5000);
@ -359,27 +374,74 @@ export class WorklistMainComponent implements OnInit {
} // valid it } // valid it
} }
// public nextNotfification() {
// //let itemExist = false;
// let itemNo = this.getPassNotificationDetails.ROW_NUM;
// itemNo += 1;
// if (itemNo > this.notificationArray.length) {
// this.common.openNotificationPage();
// } else {
// for (let i = 0; i < this.notificationArray.length; i++) {
// if (this.notificationArray[i].ROW_NUM == itemNo) {
// this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA);
// // itemExist = true;
// this.intializeNotificationDetail();
// break;
// }
// }
// // if(itemExist==false){
// // this.nextNotfification();
// // }
// }
// }
public nextNotfification() { public nextNotfification() {
//let itemExist = false; //let itemExist = false;
if( document.getElementById("notificationDynamicFields") != null){
document.getElementById("notificationDynamicFields").innerHTML = "";
}
let itemNo = this.getPassNotificationDetails.ROW_NUM; let itemNo = this.getPassNotificationDetails.ROW_NUM;
itemNo += 1; console.log(itemNo);
if (itemNo > this.notificationArray.length) { let index = this.notificationArray.findIndex(x => x.ROW_NUM === itemNo);
this.common.openNotificationPage(); console.log(index);
} else { console.log(this.notificationArray);
for (let i = 0; i < this.notificationArray.length; i++) { index += 1;
if (this.notificationArray[i].ROW_NUM == itemNo) {
this.common.sharedService.setSharedData(this.notificationArray[i], HomeComponent.NOTIFICATION_DATA); if (index < this.notificationArray.length) {
// itemExist = true; this.common.sharedService.setSharedData(this.notificationArray[index], HomeComponent.NOTIFICATION_DATA);
this.intializeNotificationDetail(); if(this.notificationArray[index].REQUEST_TYPE == "PO" ){
break; this.common.openWorklistMainPOPage()
} }else
if(this.notificationArray[index].REQUEST_TYPE == "PR" ){
this.common.openWorklistMainPRPage()
}
else
if(this.notificationArray[index].REQUEST_TYPE == "MR" ){
this.common.openWorklistMainMRPage()
}else{
this.intializeNotificationDetail();
} }
// if(itemExist==false){
// this.nextNotfification(); }
// } else{
this.common.openNotificationPage();
} }
} }
sortArray(arrayToSort: any) {
return arrayToSort.sort((a: any, b: any) =>
new Date(b.BEGIN_DATE).getTime() - new Date(a.BEGIN_DATE).getTime()
);
}
actionButton(action) { actionButton(action) {
//let ButtonAction: string = this.actionType; //let ButtonAction: string = this.actionType;
let ButtonAction: string = action; let ButtonAction: string = action;
@ -399,6 +461,8 @@ export class WorklistMainComponent implements OnInit {
} }
this.P_RESPOND_ATTRIBUTES_TBL.push(obj); this.P_RESPOND_ATTRIBUTES_TBL.push(obj);
} }
console.log("a"+ this.P_RESPOND_ATTRIBUTES_TBL);
let repUserName = this.selEmployeeID; let repUserName = this.selEmployeeID;
if (this.hideForwordEmployee && this.hideForwordEmployee.ATTRIBUTE_NAME) { if (this.hideForwordEmployee && this.hideForwordEmployee.ATTRIBUTE_NAME) {
let obj: any = {}; let obj: any = {};
@ -407,6 +471,8 @@ export class WorklistMainComponent implements OnInit {
obj.ATTRIBUTE_TEXT_VALUE = this.selEmployeeID; obj.ATTRIBUTE_TEXT_VALUE = this.selEmployeeID;
this.P_RESPOND_ATTRIBUTES_TBL.push(obj); this.P_RESPOND_ATTRIBUTES_TBL.push(obj);
} }
console.log( "b"+ this.P_RESPOND_ATTRIBUTES_TBL);
if ( if (
ButtonAction == "APPROVED" || ButtonAction == "APPROVED" ||
@ -531,6 +597,8 @@ export class WorklistMainComponent implements OnInit {
this.P_RESPOND_ATTRIBUTES_TBL, this.P_RESPOND_ATTRIBUTES_TBL,
WorklistMainComponent.PASS_RES_ATTR WorklistMainComponent.PASS_RES_ATTR
); );
console.log("c"+ this.P_RESPOND_ATTRIBUTES_TBL);
// this.common.openWorklistRollReplacement(); // this.common.openWorklistRollReplacement();
this.openRepRolModal(); this.openRepRolModal();
} else if ( } else if (
@ -615,6 +683,7 @@ export class WorklistMainComponent implements OnInit {
} }
getNotificationResAttr(notificationButtonsObj) { getNotificationResAttr(notificationButtonsObj) {
console.log("getNotificationResAttr");
this.worklistMainService this.worklistMainService
.notificationResponseAttr(notificationButtonsObj) .notificationResponseAttr(notificationButtonsObj)
.subscribe((result: NotificatonButtonResponse) => { .subscribe((result: NotificatonButtonResponse) => {
@ -625,7 +694,8 @@ export class WorklistMainComponent implements OnInit {
handleNotificationResAttrResult(result) { handleNotificationResAttrResult(result) {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
// this.sharedData.setSharedData(result, WorKListResponse.SHARED_DATA); // this.sharedData.setSharedData(result, WorKListResponse.SHARED_DATA);
this.NotRespondAttributeList =
this.NotRespondAttributeList = [];
result.NotificationGetRespondAttributesList; result.NotificationGetRespondAttributesList;
if ( if (
result.NotificationRespondRolesList != "" && result.NotificationRespondRolesList != "" &&
@ -650,6 +720,7 @@ export class WorklistMainComponent implements OnInit {
for (let i = 0; i < notificationAttr.length; i++) { for (let i = 0; i < notificationAttr.length; i++) {
if (notificationAttr[i].ATTRIBUTE_TYPE == "VARCHAR2") { if (notificationAttr[i].ATTRIBUTE_TYPE == "VARCHAR2") {
this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, "", containerId, "", "", ""); this.textArea = new TextAreaInput(notificationAttr[i].ATTRIBUTE_DISPLAY_NAME, notificationAttr[i].ATTRIBUTE_NAME, "", containerId, "", "", "");
console.log(this.textArea );
} else if (notificationAttr[i].ATTRIBUTE_TYPE == "ROLE") { } else if (notificationAttr[i].ATTRIBUTE_TYPE == "ROLE") {
} else if (notificationAttr[i].ATTRIBUTE_TYPE == "DATE") { } else if (notificationAttr[i].ATTRIBUTE_TYPE == "DATE") {
@ -687,19 +758,19 @@ export class WorklistMainComponent implements OnInit {
} }
} }
getNotificationCountAfterSubmit() { // getNotificationCountAfterSubmit() {
const req: any = {}; // const req: any = {};
this.menuService.getNotificationCount(req).subscribe((result: any) => { // this.menuService.getNotificationCount(req).subscribe((result: any) => {
if (this.common.validResponse(result)) { // if (this.common.validResponse(result)) {
this.notificationCount = // this.notificationCount =
result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM; // result.GetOpenNotificationsNumList.P_OPEN_NOTIFICATIONS_NUM;
if (this.notificationCount <= 0) { // if (this.notificationCount <= 0) {
this.notificationCount = null; // this.notificationCount = null;
} // }
this.events.publish("getNotCount", this.notificationCount); // this.events.publish("getNotCount", this.notificationCount);
} // }
}); // });
} // }
getAttachmentNotification(WorkListAttachObj) { getAttachmentNotification(WorkListAttachObj) {
@ -904,7 +975,7 @@ export class WorklistMainComponent implements OnInit {
if (data.data == "cancel" || data.data == undefined) { if (data.data == "cancel" || data.data == undefined) {
return; return;
} else if (data.data == "Success") { } else if (data.data == "Success") {
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
} }
@ -936,7 +1007,7 @@ export class WorklistMainComponent implements OnInit {
if (data.data == "cancel" || data.data == undefined) { if (data.data == "cancel" || data.data == undefined) {
return; return;
} else if (data.data == "Success") { } else if (data.data == "Success") {
this.getNotificationCountAfterSubmit(); this.openNotificationsDashboard();
this.nextNotfification(); this.nextNotfification();
} }
@ -1017,4 +1088,15 @@ export class WorklistMainComponent implements OnInit {
} }
}//end infiniteScroll }//end infiniteScroll
openNotificationsDashboard() {
this.dashboredService.getOpenNotifications('', '', this.isPostNoLoad).subscribe((result: GetOpenNotificationsResponse) => {
if (this.common.validResponse(result)) {
this.worklistNotifications = result;
this.totalRequestCount = this.worklistNotifications.P_OPEN_NTF_NUMBER;
this.common.sharedService.setSharedData(result, 'worklistNotifications');
}
});
}
} }

@ -48,7 +48,8 @@
</button> </button>
</ion-col> </ion-col>
<ion-col> <ion-col>
<p class="label"><b style="font-family: WorkSans-Bold;">{{ (showPaySlip.PAYSLIP_CHOICE)?.substring(15,23) }}</b></p> <p class="label" *ngIf="direction==='en'"><b style="font-family: WorkSans-Bold;">{{ (showPaySlip.PAYSLIP_CHOICE)?.substring(15,23) }}</b></p>
<p class="label" *ngIf="direction==='ar'"><b style="font-family: WorkSans-Bold;">{{ (showPaySlip.PAYSLIP_CHOICE)?.substring(23,17) }}</b></p>
</ion-col> </ion-col>
<ion-col> <ion-col>
<button ion-button icon-end class="slidbtn" (click)="slideNext(sliderOne,slideWithNav)"> <button ion-button icon-end class="slidbtn" (click)="slideNext(sliderOne,slideWithNav)">
@ -65,7 +66,7 @@
</ion-icon> </ion-icon>
<!-- <ion-icon [ngClass]="{'disabledArrow' : payslipIndex === 0 , 'activeArrow' : payslipIndex != 0 , 'disabledArrow-ar' : direction != 'en' ,'disabledArrow' : direction == 'en'}" ios="ios-arrow-dropright-circle" md="md-arrow-dropright-circle"> <!-- <ion-icon [ngClass]="{'disabledArrow' : payslipIndex === 0 , 'activeArrow' : payslipIndex != 0 , 'disabledArrow-ar' : direction != 'en' ,'disabledArrow' : direction == 'en'}" ios="ios-arrow-dropright-circle" md="md-arrow-dropright-circle">
</ion-icon> --> </ion-icon> -->
</button> </button>
</ion-col> </ion-col>
@ -120,7 +121,7 @@
<!-- <span>TOTAL <br> OPEN REQUEST</span> --> <!-- <span>TOTAL <br> OPEN REQUEST</span> -->
<span>{{ts.trPK('payslip','total')}} <br> {{ts.trPK('payslip','salary')}}</span> <span>{{ts.trPK('payslip','total')}} <br> {{ts.trPK('payslip','salary')}}</span>
</div> </div>
<p-chart #chart class="today-graph" type="doughnut" [data]="data" [options]="options"></p-chart> <p-chart #chart [ngClass]="direction == 'en'? 'today-graph':'today-graph-ar'" type="doughnut" [data]="data" [options]="options"></p-chart>
</div> </div>
<div [ngClass]=" direction == 'en' ? 'div-green':'div-green-ar'"> <div [ngClass]=" direction == 'en' ? 'div-green':'div-green-ar'">

@ -159,6 +159,21 @@
-o-transform: scaleX(-1); -o-transform: scaleX(-1);
transform: scaleX(-1); transform: scaleX(-1);
} }
.today-graph{
display: block !important;
height: 162px;
width: 335px;
/* padding-left: 51px; */
margin-left: 3px !important;
}
.today-graph-ar{
display: block !important;
height: 162px;
width: 335px;
margin-right: 45px;
margin-left: -25px !important;
}
.result-graph{ .result-graph{
font-size: 14px; font-size: 14px;
@ -191,7 +206,8 @@
padding: 0; padding: 0;
margin: 0; margin: 0;
position: absolute; position: absolute;
left: 54%; // left: 54%;
left: 45%;
top: 50%; top: 50%;
display: block; display: block;
text-align: center; text-align: center;
@ -199,7 +215,7 @@
h2 { h2 {
font-size: 25px; font-size: 23px;
font-family: WorkSans-Bold; font-family: WorkSans-Bold;
margin: 0 auto; margin: 0 auto;
line-height: 36px; line-height: 36px;
@ -211,7 +227,7 @@
width: 125px; width: 125px;
display: block; display: block;
margin: 0 auto; margin: 0 auto;
font-size: 15px; font-size: 14px;
font-family: workSans-Regular; font-family: workSans-Regular;
} }
} }
@ -221,7 +237,7 @@
padding: 0; padding: 0;
margin: 0; margin: 0;
position: absolute; position: absolute;
left: 42%; left: 40%;
top: 50%; top: 50%;
display: block; display: block;
text-align: center; text-align: center;
@ -251,7 +267,7 @@
} }
.green-amount{ .green-amount{
font-size: 14px; font-size: 13px;
font-family: WorkSans-Bold; font-family: WorkSans-Bold;
margin-top: -3px; margin-top: -3px;
} }
@ -262,7 +278,7 @@
} }
.blue-amount{ .blue-amount{
font-size: 14px; font-size: 13px;
font-family: WorkSans-Bold; font-family: WorkSans-Bold;
margin-top: -4px; margin-top: -4px;
} }

@ -54,7 +54,7 @@ export class HomeComponent implements OnInit {
@ViewChild(IonInfiniteScroll) infiniteScroll: IonInfiniteScroll; @ViewChild(IonInfiniteScroll) infiniteScroll: IonInfiniteScroll;
public options = { public options = {
cutoutPercentage: 80, cutoutPercentage: 85,
tooltips: { enabled: false }, tooltips: { enabled: false },
legend: { display: false }}; legend: { display: false }};
gaugeType = "full"; gaugeType = "full";

@ -147,11 +147,10 @@
} }
.labelvalue-ar{ .labelvalue-ar{
// margin-right: 19px !important;
font-size: 24px !important; font-size: 24px !important;
font-weight: bold !important; font-weight: bold !important;
/* margin-top: 7px !important; */ margin-right: 25px !important;
margin-right: 19px !important;
} }
@ -162,8 +161,9 @@
} }
.percentage-ar{ .percentage-ar{
// margin-right: -54px;
font-size: 19px !important; font-size: 19px !important;
margin-right: -54px; margin-right: -51px;
} }
.gauge{ .gauge{

@ -21,13 +21,13 @@
</ion-row> </ion-row>
<ion-row *ngIf="direction == 'rtl'"> <ion-row *ngIf="direction == 'rtl'">
<ion-col [size]="2" style="text-align: left;"> <ion-col [size]="2" style="text-align: right;">
<ion-icon class="activeArrow" ios="ios-arrow-dropright-circle" md="md-arrow-dropright-circle" (click)="previousSlide()"></ion-icon> <ion-icon class="activeArrow" ios="ios-arrow-dropright-circle" md="md-arrow-dropright-circle" (click)="previousSlide()"></ion-icon>
</ion-col> </ion-col>
<ion-col [size]="8" style="text-align: center;"> <ion-col [size]="8" style="text-align: center;">
<span class="month-year-span">{{month}} {{year}}</span> <span class="month-year-span">{{year}} {{month}}</span>
</ion-col> </ion-col>
<ion-col [size]="2" style="text-align: right;"> <ion-col [size]="2" style="text-align: left;">
<ion-icon *ngIf="currentMonthName !== month" [ngClass]=" currentMonthName === month ? 'disabledArrow' : 'activeArrow'" ios="ios-arrow-dropleft-circle" md="md-arrow-dropleft-circle" (click)="nextSlide()"></ion-icon> <ion-icon *ngIf="currentMonthName !== month" [ngClass]=" currentMonthName === month ? 'disabledArrow' : 'activeArrow'" ios="ios-arrow-dropleft-circle" md="md-arrow-dropleft-circle" (click)="nextSlide()"></ion-icon>
</ion-col> </ion-col>
</ion-row> </ion-row>
@ -36,7 +36,7 @@
<div class="result-graph"> <div class="result-graph">
<div > <div >
<span [ngClass]="direction == 'ltr' ? 'request-heading':'request-heading-ar' ">{{ts.trPK('myTeam','attendance-statistics')}}</span> <span [ngClass]="direction == 'ltr' ? 'request-heading':'request-heading-ar'">{{ts.trPK('myTeam','attendance-statistics')}}</span>
</div> </div>
<div style="position: relative;"> <div style="position: relative;">
<div class="label-container"> <div class="label-container">

@ -730,20 +730,18 @@ $actionBtnSize : 36px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.request-heading { .request-heading {
// span {
text-align: left; text-align: left;
display: block; display: block;
padding-top: 8px; padding-top: 8px;
margin-bottom: 10px; margin-bottom: 10px;
margin-left: 10px; margin-left: 10px;
// }
} }
.request-heading-ar{ .request-heading-ar{
text-align: left; text-align: right;
display: block; display: block;
padding-top: 8px; padding-top: 8px;
margin-bottom: 10px; margin-bottom: 10px;
margin-left: 215px; margin-right: 12px;
} }
.result-text-container { .result-text-container {
@ -839,7 +837,7 @@ $actionBtnSize : 36px;
h2{ h2{
padding: 0; padding: 0;
margin: 0; margin: 0;
font-size: 22px; font-size: 18px;
} }
span{ span{
font-size: 11px; font-size: 11px;
@ -916,11 +914,11 @@ $actionBtnSize : 36px;
margin-top: 20px; margin-top: 20px;
border-radius: 20px; border-radius: 20px;
span{ span{
text-align: left; text-align: right;
display: block; display: block;
padding-top: 8px; padding-top: 8px;
margin-bottom: 10px; margin-bottom: 6px;
margin-left: 196px; margin-right: 12px;
} }
} }

@ -30,7 +30,6 @@ export class TimeCardDetailsComponent implements OnInit {
public ts: TranslatorService public ts: TranslatorService
) { ) {
this.direction = TranslatorService.getCurrentDirection(); this.direction = TranslatorService.getCurrentDirection();
console.log(this.direction);
} }
public showMore: any = true; public showMore: any = true;
@ -60,7 +59,7 @@ export class TimeCardDetailsComponent implements OnInit {
public yearTitle: string; public yearTitle: string;
public isChange = false; public isChange = false;
public activeMonth: any; public activeMonth: any;
public currentMonthName = this.getMonthName(new Date().getMonth() + 1); public currentMonthName = '';
public showData = false; public showData = false;
public currentYear = new Date().getFullYear(); public currentYear = new Date().getFullYear();
public dayHoursTypeDetailsList = []; public dayHoursTypeDetailsList = [];
@ -72,24 +71,29 @@ export class TimeCardDetailsComponent implements OnInit {
legend: { display: false } legend: { display: false }
}; };
public data = {}; public data = {};
// tslint:disable-next-line: max-line-length
public monthsNameArray = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
ngOnInit() { ngOnInit() {
this.common.startLoading(); this.common.startLoading();
this.showData = false; this.showData = false;
this.nextMonth = new Date().getMonth() + 2; this.nextMonth = new Date().getMonth() + 2;
this.preMonth = new Date().getMonth(); this.preMonth = new Date().getMonth();
this.calendarConfig(this.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear()); const monthIndex = new Date().getMonth() + 1;
this.currentMonthName = this.direction === 'ltr' ? this.common.getMonthName(monthIndex) : this.common.getMonthNameAr(monthIndex);
this.calendarConfig(this.common.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear());
} }
calendarConfig(month?, year?) { calendarConfig(month?, year?) {
this.month = month; const index = this.monthsNameArray.indexOf(month);
this.month = this.direction === 'ltr' ? month : this.common.getMonthNameAr(index + 1);
this.year = year; this.year = year;
this.getTimeCardSummaryDetails(month, year); this.getTimeCardSummaryDetails(month, year);
this.getDayHoursTypeDetails(month, year); this.getDayHoursTypeDetails(month, year);
} }
public getDayHoursTypeDetails(month?, year?) { public getDayHoursTypeDetails(month?, year?) {
console.log('getDayHoursTypeDetails');
const dayAndHoursReqObj = new GetDayAndHoursDetailsRequest(); const dayAndHoursReqObj = new GetDayAndHoursDetailsRequest();
this.monthName = month; this.monthName = month;
this.yearDate = year; this.yearDate = year;
@ -108,7 +112,6 @@ export class TimeCardDetailsComponent implements OnInit {
this.timeCardService.getDayHoursTypeDetails(dayAndHoursReqObj, '', '', this.isPostNoLoad).subscribe((result) => { this.timeCardService.getDayHoursTypeDetails(dayAndHoursReqObj, '', '', this.isPostNoLoad).subscribe((result) => {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
console.log(result.GetDayHoursTypeDetailsList);
this.common.sharedService.setSharedData(result.GetDayHoursTypeDetailsList, 'RTP_IDs'); this.common.sharedService.setSharedData(result.GetDayHoursTypeDetailsList, 'RTP_IDs');
this.countAllAttendDays(result.GetDayHoursTypeDetailsList); this.countAllAttendDays(result.GetDayHoursTypeDetailsList);
} }
@ -192,15 +195,15 @@ export class TimeCardDetailsComponent implements OnInit {
} }
nextSlide() { nextSlide() {
this.common.startLoading();
if (this.currentMonthName !== this.month) { if (this.currentMonthName !== this.month) {
this.common.startLoading();
this.showData = false; this.showData = false;
if (this.nextMonth > 12) { if (this.nextMonth > 12) {
this.currentYear = this.currentYear + 1; this.currentYear = this.currentYear + 1;
this.nextMonth = 1; this.nextMonth = 1;
} }
this.currentDate = new Date(this.currentYear, (this.nextMonth - 1), 1); this.currentDate = new Date(this.currentYear, (this.nextMonth - 1), 1);
this.calendarConfig(this.getMonthName(this.nextMonth) , this.currentYear); this.calendarConfig(this.common.getMonthName(this.nextMonth) , this.currentYear);
this.nextMonth = this.nextMonth + 1; this.nextMonth = this.nextMonth + 1;
this.preMonth = this.nextMonth - 2; this.preMonth = this.nextMonth - 2;
} }
@ -214,8 +217,7 @@ export class TimeCardDetailsComponent implements OnInit {
this.preMonth = 12; this.preMonth = 12;
} }
this.currentDate = new Date(this.currentYear, (this.preMonth - 1), 1); this.currentDate = new Date(this.currentYear, (this.preMonth - 1), 1);
console.log(this.currentDate); this.calendarConfig(this.common.getMonthName(this.preMonth) , this.currentYear);
this.calendarConfig(this.getMonthName(this.preMonth) , this.currentYear);
this.preMonth = this.preMonth - 1; this.preMonth = this.preMonth - 1;
this.nextMonth = this.preMonth + 2; this.nextMonth = this.preMonth + 2;
} }
@ -228,34 +230,4 @@ export class TimeCardDetailsComponent implements OnInit {
changeYear(year) { changeYear(year) {
this.yearTitle = year; this.yearTitle = year;
} }
public getMonthName(value: any): any {
switch (value) {
case 1:
return 'January';
case 2:
return 'February';
case 3:
return 'March';
case 4:
return 'April';
case 5:
return 'May';
case 6:
return 'June';
case 7:
return 'July';
case 8:
return 'August';
case 9 :
return 'September';
case 10:
return 'October';
case 11:
return 'November';
case 12:
return 'December';
}
}
} }

@ -8,7 +8,8 @@ export class DateTimeInput extends UiElement {
private containerId: string, private containerId: string,
private disabled: string, private disabled: string,
private hidden: string, private hidden: string,
private required: string) { private required: string,
private language: string = 'en') {
super(elementId, containerId, ''); super(elementId, containerId, '');
this.createElement(this.getTemplate()); this.createElement(this.getTemplate());
@ -20,6 +21,8 @@ export class DateTimeInput extends UiElement {
} }
public getTemplate() { public getTemplate() {
let requiredClass: string = ""; let requiredClass: string = "";
const doneText = this.language === 'en' ? 'Done' : 'تم';
const cancelText = this.language === 'en' ? 'Cancel' : 'إلغاء';
let disaledClass = ""; let disaledClass = "";
//let timeValue=null; //let timeValue=null;
//let dateValue=null; //let dateValue=null;
@ -45,7 +48,7 @@ export class DateTimeInput extends UiElement {
"<ion-item class='dynamicField'>" + "<ion-item class='dynamicField'>" +
" <ion-label position='floating' style='font-size: medium !important;' class='daynamicForm-Label " + requiredClass + "' id='title' >" + this.label + "</ion-label>" + " <ion-label position='floating' style='font-size: medium !important;' class='daynamicForm-Label " + requiredClass + "' id='title' >" + this.label + "</ion-label>" +
// " <div class='daynamicForm-DateTime " + disaledClass + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + ">" + this.value + "</div>" + // " <div class='daynamicForm-DateTime " + disaledClass + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + ">" + this.value + "</div>" +
"<ion-datetime min='1900' max='2100' displayFormat='DD/MM/YYYY' value='" + this.value + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + "></ion-datetime>" + "<ion-datetime min='1900' max='2100' displayFormat='DD/MM/YYYY' value='" + this.value + "' done-text='" + doneText + "' cancel-text='" + cancelText + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + "></ion-datetime>" +
// " <input class='daynamicForm-DateTime' type='text' id='" + this.elementId + "' value='" + this.value + "' "+this.disabled+" (click)='showDateTimePicker()'/>"+ // " <input class='daynamicForm-DateTime' type='text' id='" + this.elementId + "' value='" + this.value + "' "+this.disabled+" (click)='showDateTimePicker()'/>"+
// " <input class='daynamicForm-DateTime' type='date' id='" + this.elementId + "' value='" + dateValue+ "' "+this.disabled+" />"+ // " <input class='daynamicForm-DateTime' type='date' id='" + this.elementId + "' value='" + dateValue+ "' "+this.disabled+" />"+
// " <input class='daynamicForm-DateTime' type='time' id='" + this.elementId + "Time' value='" + timeValue + "' "+this.disabled+" />"+ // " <input class='daynamicForm-DateTime' type='time' id='" + this.elementId + "Time' value='" + timeValue + "' "+this.disabled+" />"+

@ -1,7 +1,6 @@
import { UiElement } from "./ui-element"; import { UiElement } from './ui-element';
export class DateInput extends UiElement { export class DateInput extends UiElement {
private currentDate: any = "" private currentDate: any = '';
constructor( constructor(
private label: string, private label: string,
private elementId: string, private elementId: string,
@ -9,10 +8,10 @@ export class DateInput extends UiElement {
private containerId: string, private containerId: string,
private disabled: string, private disabled: string,
private hidden: string, private hidden: string,
private required: string) { private required: string,
private language: string = 'en') {
super(elementId, containerId, ''); super(elementId, containerId, '');
this.createElement(this.getTemplate()); this.createElement(this.getTemplate());
} }
formatDate() { formatDate() {
@ -24,6 +23,8 @@ export class DateInput extends UiElement {
} }
public getTemplate() { public getTemplate() {
let requiredClass: string = ""; let requiredClass: string = "";
const doneText = this.language === 'en' ? 'Done' : 'تم';
const cancelText = this.language === 'en' ? 'Cancel' : 'إلغاء';
if (this.disabled == "N") { this.disabled = "disabled" } else { this.disabled = "" } if (this.disabled == "N") { this.disabled = "disabled" } else { this.disabled = "" }
if (this.hidden == "N") { this.hidden = "display:none;" } else { this.hidden = "" } if (this.hidden == "N") { this.hidden = "display:none;" } else { this.hidden = "" }
if (this.value == "currentDate") { if (this.value == "currentDate") {
@ -44,7 +45,7 @@ export class DateInput extends UiElement {
"<ion-item class='dynamicField'>" + "<ion-item class='dynamicField'>" +
" <ion-label position='floating' style='font-size: medium !important;' class='dynamiclable-float " + requiredClass + "' id='title' >" + this.label + "</ion-label>" + " <ion-label position='floating' style='font-size: medium !important;' class='dynamiclable-float " + requiredClass + "' id='title' >" + this.label + "</ion-label>" +
// " <div class='daynamicForm-DateTime " + disaledClass + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + ">" + this.value + "</div>" + // " <div class='daynamicForm-DateTime " + disaledClass + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + ">" + this.value + "</div>" +
"<ion-datetime min='1900' max='2100' class='onic-date' (ionChange)='setDate()' displayFormat='MMM/DD/YYYY' value='" + this.value + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + " ></ion-datetime>" + "<ion-datetime min='1900' max='2100' class='onic-date' (ionChange)='setDate()' displayFormat='MMM/DD/YYYY' value='" + this.value + "' done-text='" + doneText + "' cancel-text='" + cancelText + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + " ></ion-datetime>" +
// " <input class='daynamicForm-DateTime' type='text' id='" + this.elementId + "' value='" + this.value + "' "+this.disabled+" (click)='showDateTimePicker()'/>"+ // " <input class='daynamicForm-DateTime' type='text' id='" + this.elementId + "' value='" + this.value + "' "+this.disabled+" (click)='showDateTimePicker()'/>"+
// " <input class='daynamicForm-DateTime' type='date' id='" + this.elementId + "' value='" + dateValue+ "' "+this.disabled+" />"+ // " <input class='daynamicForm-DateTime' type='date' id='" + this.elementId + "' value='" + dateValue+ "' "+this.disabled+" />"+
// " <input class='daynamicForm-DateTime' type='time' id='" + this.elementId + "Time' value='" + timeValue + "' "+this.disabled+" />"+ // " <input class='daynamicForm-DateTime' type='time' id='" + this.elementId + "Time' value='" + timeValue + "' "+this.disabled+" />"+

@ -15,6 +15,7 @@ export class TextAreaInput extends UiElement {
} }
public getTemplate() { public getTemplate() {
console.log("getTemplate");
let requiredClass: string = ""; let requiredClass: string = "";
if (this.required == 'Y') if (this.required == 'Y')
requiredClass = "requiredClass" requiredClass = "requiredClass"
@ -30,6 +31,7 @@ export class TextAreaInput extends UiElement {
"<ion-label class='dynamiclable-float' position='floating' style='font-size: medium !important;' id='title' >" + this.label + "</ion-label>" + "<ion-label class='dynamiclable-float' position='floating' style='font-size: medium !important;' id='title' >" + this.label + "</ion-label>" +
"<ion-textarea id='" + this.elementId + "' " + this.disabled + " >" + this.value + "</ion-textarea>" + "<ion-textarea id='" + this.elementId + "' " + this.disabled + " >" + this.value + "</ion-textarea>" +
"</ion-item>"; "</ion-item>";
console.log("template"+ template);
return template; return template;
} }

@ -1,5 +1,4 @@
import { UiElement } from './ui-element'; import { UiElement } from './ui-element';
// import { TranslatorService } from '../hmg-common/services/translator/translator.service';
export class TimeInput extends UiElement { export class TimeInput extends UiElement {
// public direction: string; // public direction: string;
@ -10,9 +9,9 @@ export class TimeInput extends UiElement {
private containerId: string, private containerId: string,
private disabled: string, private disabled: string,
private hidden: string, private hidden: string,
private required: string) { private required: string,
private language: string = 'en') {
super(elementId, containerId, ''); super(elementId, containerId, '');
// this.direction = TranslatorService.getCurrentLanguageName();
this.createElement(this.getTemplate()); this.createElement(this.getTemplate());
} }
@ -22,11 +21,16 @@ export class TimeInput extends UiElement {
this.value = date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds(); this.value = date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
} }
setDate() {
console.log('umar');
}
public getTemplate() { public getTemplate() {
let requiredClass = ''; let requiredClass = '';
let disaledClass = ''; let disaledClass = '';
const doneText = this.language === 'en' ? 'Done' : 'تم';
const cancelText = this.language === 'en' ? 'Cancel' : 'إلغاء';
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
if (this.required == 'Y') { if (this.required == 'Y') {
requiredClass = 'requiredClass'; requiredClass = 'requiredClass';
@ -37,29 +41,12 @@ export class TimeInput extends UiElement {
if (this.value === 'currentTime') { if (this.value === 'currentTime') {
this.formatDate(); this.formatDate();
} }
const template =
'<div class=\'custom-text-area-element\' style=\'' + this.hidden + '\'>' +
' <label class=\'daynamicForm-Label ' + requiredClass + '\' id=\'title\' >' + this.label + '</label>' +
// tslint:disable-next-line: max-line-length
// " <input class='daynamicForm-DateTime' type='time' id='" + this.elementId + "' value='" + this.value + "' "+this.disabled+" />"+
// tslint:disable-next-line: max-line-length
' <div class=\'daynamicForm-DateTime ' + disaledClass + '\' id=\'' + this.elementId + '\' data-dtvalue=\'' + this.value + '\' ' + this.disabled + '>' + this.value + '</div>' +
'</div>';
// "<ion-item>" + const template =
// " <ion-label style='font-size: medium !important;' id='title' >" + this.label + "</ion-label>" + "<ion-item class='dynamicField' style='" + this.hidden + "'>" +
// tslint:disable-next-line: max-line-length " <ion-label position='floating' style='font-size: medium !important;' class='dynamiclable-float " + requiredClass + "' id='title' >" + this.label + "</ion-label>" +
// // " <div class='daynamicForm-DateTime " + disaledClass + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + ">" + this.value + "</div>" + "<ion-datetime display-format='h:mm' picker-format='h:mm' class='onic-date' value='" + this.value + "' done-text='" + doneText + "' cancel-text='" + cancelText + "' id='" + this.elementId + "' data-dtvalue='" + this.value + "' " + this.disabled + " ></ion-datetime>" +
// tslint:disable-next-line: max-line-length "</ion-item>"
// "<ion-datetime displayFormat='hh:mm' value='" + this.value + "' id='" + this.elementId + "' " + this.disabled + "></ion-datetime>" +
// tslint:disable-next-line: max-line-length
// // " <input class='daynamicForm-DateTime' type='text' id='" + this.elementId + "' value='" + this.value + "' "+this.disabled+" (click)='showDateTimePicker()'/>"+
// // " <input class='daynamicForm-DateTime' type='date' id='" + this.elementId + "' value='" + dateValue+ "' "+this.disabled+" />"+
// tslint:disable-next-line: max-line-length
// // " <input class='daynamicForm-DateTime' type='time' id='" + this.elementId + "Time' value='" + timeValue + "' "+this.disabled+" />"+
// "</ion-item>"
return template; return template;
} }
} }

@ -60,10 +60,12 @@ export class CreateVacationRuleComponent implements OnInit {
private textInput: TextInput; private textInput: TextInput;
private selectInput: SelectInput; private selectInput: SelectInput;
private dateInput: DateInput; private dateInput: DateInput;
direction:string;
constructor(public vacationRuleService: VacationRuleServiceService, public ts: TranslatorService, public cs: CommonService, constructor(public vacationRuleService: VacationRuleServiceService, public ts: TranslatorService, public cs: CommonService,
private elementRef: ElementRef, public navCtrl: NavController, public router: Router, public modalController: ModalController, private elementRef: ElementRef, public navCtrl: NavController, public router: Router, public modalController: ModalController,
private route: ActivatedRoute) { private route: ActivatedRoute) {
this.direction = TranslatorService.getCurrentLanguageName();
this.Sdate = moment().format('YYYY-MM-DDTHH:mm:ssZ'); this.Sdate = moment().format('YYYY-MM-DDTHH:mm:ssZ');
this.isUpdate = this.cs.sharedService.getSharedData('isUpdate'); this.isUpdate = this.cs.sharedService.getSharedData('isUpdate');
@ -512,7 +514,7 @@ export class CreateVacationRuleComponent implements OnInit {
} else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "DATE") { } else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "DATE") {
console.log("3"); console.log("3");
this.dateInput = new DateInput(RespondAttributesList[i].ATTRIBUTE_DISPLAY_NAME, RespondAttributesList[i].ATTRIBUTE_NAME, "", containerId, "", "", ""); this.dateInput = new DateInput(RespondAttributesList[i].ATTRIBUTE_DISPLAY_NAME, RespondAttributesList[i].ATTRIBUTE_NAME, "", containerId, "", "", "", this.direction);
} else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "NUMBER") { } else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "NUMBER") {
console.log("4"); console.log("4");

@ -79,7 +79,7 @@
<ion-label> <ion-label>
<ion-badge [ngClass]=" direction === 'rtl' ? 'end-badge' : 'start-badge'" slot="end" color="danger" class="main-badge">{{notBadge}}</ion-badge> <ion-badge [ngClass]=" direction === 'rtl' ? 'end-badge' : 'start-badge'" slot="end" color="danger" class="main-badge">{{notBadge}}</ion-badge>
<p [ngClass]="item.RULE_STATUS === 'Inactive' ? 'red-status' : 'green-status' ">{{item.RULE_STATUS}}</p><br/> <p [ngClass]="item.RULE_STATUS === 'Inactive' || item.RULE_STATUS === 'غير ساري' ? 'red-status' : 'green-status' ">{{item.RULE_STATUS}}</p><br/>
<p class="textBold" > {{item.RULE_NAME}} | {{item.ITEM_TYPE_DISPLAY_NAME}}</p><br/> <p class="textBold" > {{item.RULE_NAME}} | {{item.ITEM_TYPE_DISPLAY_NAME}}</p><br/>
<p class="label">{{item.BEGIN_DATE | dateString }} - {{item.END_DATE | dateString}}</p> <p class="label">{{item.BEGIN_DATE | dateString }} - {{item.END_DATE | dateString}}</p>
<!-- <br/> <!-- <br/>

@ -111,9 +111,9 @@ button.item-button.button.button-md.button-clear.button-clear-md {
.filterInput-ar{ .filterInput-ar{
border: solid var(--gray) 1px; border: solid var(--gray) 1px;
border-radius: 21px; border-radius: 21px;
padding-left: 100px !important; // padding-left: 100px !important;
margin-left: 86px; margin-left: 86px;
padding-right: 129px; // padding-right: 129px;
margin-right: -139px; margin-right: -139px;
} }

@ -72,12 +72,12 @@
</ion-row> </ion-row>
<ion-row> <ion-row>
<!-- style="max-width: 100% !important;; width: 100% !important;" mode="ios" -->
<ion-item class="selectItem " *ngIf="notifTypeSelP2=='sel_opt'" > <ion-item class="selectItem " *ngIf="notifTypeSelP2=='sel_opt'" >
<ion-label>{{'vacation-rule, notification' | translate}}</ion-label> <ion-label>{{'vacation-rule, notification' | translate}}</ion-label>
<ion-select mode="ios" class="notifiSelect" okText='{{"general, ok" | translate }}' cancelText='{{"general, cancel" | translate }}' <ion-select mode="ios" class="notifiSelect" okText='{{"general, ok" | translate }}' cancelText='{{"general, cancel" | translate }}'
[(ngModel)]="var_notification" (ionChange)="notificationSel($event)" > [(ngModel)]="var_notification" (ionChange)="notificationSel($event)" >
<ion-select-option value="{{i}}" *ngFor="let x of notification_list; let i=index"> <ion-select-option style="min-height: 100% !important; height: 100% !important;" value="{{i}}" *ngFor="let x of notification_list; let i=index">
{{x.NOTIFICATION_DISPLAY_NAME}} {{x.NOTIFICATION_DISPLAY_NAME}}
</ion-select-option> </ion-select-option>
</ion-select> </ion-select>

@ -91,6 +91,7 @@ color: black !important;
.stepHeaderLebal{ .stepHeaderLebal{
margin:0; margin:0;
} }
// .progcontainer { // .progcontainer {
// margin: auto; // margin: auto;
// text-align: center; // text-align: center;

@ -66,15 +66,14 @@ export class VacationTypeComponent implements OnInit {
P_RESPOND_ATTRIBUTES_TBL: any=[]; P_RESPOND_ATTRIBUTES_TBL: any=[];
vacationRuleRequest: createVacationRequest; vacationRuleRequest: createVacationRequest;
confirmMsg: string; confirmMsg: string;
direction: string;
constructor(public vacationRuleService: VacationRuleServiceService, constructor(public vacationRuleService: VacationRuleServiceService,
public ts: TranslatorService, public ts: TranslatorService,
public cs: CommonService, public cs: CommonService,
public modalController: ModalController, public modalController: ModalController,
private elementRef: ElementRef) { private elementRef: ElementRef) {
this.direction = TranslatorService.getCurrentLanguageName();
} }
ngOnInit() { ngOnInit() {
@ -433,7 +432,7 @@ createVacationDynamicFields(RespondAttributesList) {
} else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "DATE") { } else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "DATE") {
console.log("3"); console.log("3");
this.dateInput = new DateInput(RespondAttributesList[i].ATTRIBUTE_DISPLAY_NAME, RespondAttributesList[i].ATTRIBUTE_NAME, "", containerId, "", "", ""); this.dateInput = new DateInput(RespondAttributesList[i].ATTRIBUTE_DISPLAY_NAME, RespondAttributesList[i].ATTRIBUTE_NAME, "", containerId, "", "", "", this.direction);
} else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "NUMBER") { } else if (RespondAttributesList[i].ATTRIBUTE_TYPE == "NUMBER") {
console.log("4"); console.log("4");

@ -154,6 +154,10 @@
"en": "To activate fingerprint login service, please verify by using one of the following options. ", "en": "To activate fingerprint login service, please verify by using one of the following options. ",
"ar": "لتفعيل خدمة الدخول بالبصمة، يرجى التحقق من خلال احدى الخيارات التالية" "ar": "لتفعيل خدمة الدخول بالبصمة، يرجى التحقق من خلال احدى الخيارات التالية"
}, },
"verify-faceId": {
"en": "To activate face ID login service, please verify by using one of the following options. ",
"ar": "لتفعيل خدمة الدخول ببصمة الوجه، يرجى التحقق من خلال احدى الخيارات التالية"
},
"Verify-text":{ "Verify-text":{
"en":"Verify its you", "en":"Verify its you",
"ar":"Verify its you" "ar":"Verify its you"
@ -1381,17 +1385,17 @@
"en": "Accrual Balances", "en": "Accrual Balances",
"ar": "رصيد حساب المستحقات" "ar": "رصيد حساب المستحقات"
}, },
"accrualNet": { "currentBalance": {
"en": "Accrual Net", "en": "Current Balance",
"ar": "صافي الاستحقاق" "ar": " الرصيد الحالي"
}, },
"accrualUsed": { "usedBalance": {
"en": "Accrual Used", "en": "Used Balance",
"ar": "الاستحقاق المستخدم" "ar": "الرصيد المستخدم"
}, },
"accrualYearly": { "annualBalance": {
"en": "Accrual Yearly", "en": "Annual Balance",
"ar": "الاستحقاق السنوي" "ar": "الرصيد السنوي"
}, },
"totalNumber": { "totalNumber": {
"en": "TOTAL NUMBERS", "en": "TOTAL NUMBERS",
@ -1557,6 +1561,14 @@
} }
}, },
"eit": { "eit": {
"done-text": {
"en": "Done",
"ar": "تم"
},
"cancel-text": {
"en": "Cancel",
"ar": "إلغاء"
},
"my-requests": { "my-requests": {
"en": "My Requests", "en": "My Requests",
"ar": "طلباتي" "ar": "طلباتي"
@ -2368,10 +2380,11 @@
"en": "Request Number", "en": "Request Number",
"ar":"Request Number" "ar":"Request Number"
}, },
"ITEM_AMU":{ "Tran_Succ":{
"en": "AMU (Last 3 months)", "en": "Transaction Successful",
"ar":"AMU (Last 3 months)" "ar":"عملية ناجحه"
} }
}, },
"payslip": { "payslip": {
"title":{ "title":{
@ -2444,7 +2457,7 @@
}, },
"earnings":{ "earnings":{
"en": "Earnings", "en": "Earnings",
"ar":"أرباح " "ar":"مستحقات "
}, },
"deductions":{ "deductions":{
"en": "Deductions", "en": "Deductions",

@ -1376,7 +1376,7 @@ border:0px
.monthview-datetable { .monthview-datetable {
*{ *{
font-size: 12px !important; font-size: 11px !important;
font-weight: normal !important; font-weight: normal !important;
} }
@ -1514,3 +1514,7 @@ table.monthview-datetable th small {
background: #094875; background: #094875;
} }
} }
.alert-wrapper {
min-width: 80% !important;//what ever you like
}

Loading…
Cancel
Save