diff --git a/Mohem/config.xml b/Mohem/config.xml index 55d5ce3c..a4ed058e 100644 --- a/Mohem/config.xml +++ b/Mohem/config.xml @@ -15,11 +15,15 @@ - + + + + + diff --git a/Mohem/src/app/absence/home/home.component.html b/Mohem/src/app/absence/home/home.component.html index 86fd1dcc..07feaeaf 100644 --- a/Mohem/src/app/absence/home/home.component.html +++ b/Mohem/src/app/absence/home/home.component.html @@ -13,7 +13,7 @@ - +
@@ -148,7 +148,7 @@
- + diff --git a/Mohem/src/app/app.component.ts b/Mohem/src/app/app.component.ts index 9cdfc021..0a08df19 100644 --- a/Mohem/src/app/app.component.ts +++ b/Mohem/src/app/app.component.ts @@ -10,6 +10,9 @@ import { SMSCheckResponse } from "src/app/hmg-common/services/authentication/mod import { PushService } from '../../src/app/hmg-common/services/push/push.service'; import { LazyLoadingService } from "./hmg-common/services/lazy-loading/lazy-loading.service"; import { DomSanitizer } from '@angular/platform-browser'; +// import { SplashScreen } from '@ionic-native/splash-screen'; +import { SplashScreen } from '@ionic-native/splash-screen/ngx'; + @Component({ selector: "app-root", @@ -29,10 +32,12 @@ export class AppComponent implements OnInit, AfterViewInit { companyDesc: string = "Powered By Cloud Solutions"; public direction = "ltr"; User_Job_name: string; + public logoutFlage: any =false; requestGetLoginInfo: { DeviceType: string; DeviceToken: string; //this.deviceToken }; user: boolean; + deviceToken: string; TeamFlag :string = "false"; constructor( public ts: TranslatorService, @@ -44,7 +49,9 @@ export class AppComponent implements OnInit, AfterViewInit { private menu: MenuController, private authService: AuthenticationService, private sanitizer: DomSanitizer, - public pushService: PushService + public pushService: PushService, + private splashScreen: SplashScreen + ) { this.events.subscribe("img-change", displayImg => { console.log("app compont: "+displayImg); @@ -57,6 +64,7 @@ export class AppComponent implements OnInit, AfterViewInit { ngOnInit() { this.initializeApp(); + } ngAfterViewInit() {} initializeApp() { @@ -79,6 +87,11 @@ export class AppComponent implements OnInit, AfterViewInit { private startReceivingPushService() { console.log("platform.ready") this.pushService.startReceiving(); + setTimeout(() => { + console.log(" in setTimeout startReceiving"); + this.getLastLoginInfo(); + },4000); + } subscribeEvents() { this.events.subscribe("setMenu", () => { @@ -94,9 +107,13 @@ export class AppComponent implements OnInit, AfterViewInit { ? user.CompanyImageDescription : "Powered By Cloud Solutions"; this.User_name_Emp = user.EMPLOYEE_DISPLAY_NAME; + if(this.cs.getUpdateImage().status){ + this.user_image =this.sanitizer.bypassSecurityTrustUrl("data:image/png;base64,"+this.cs.getUpdateImage().img); + }else{ this.user_image = user.EMPLOYEE_IMAGE ? "data:image/png;base64," + user.EMPLOYEE_IMAGE : "../assets/imgs/profile.png"; + } this.User_Job_name=user.JOB_NAME; console.log(user); @@ -134,8 +151,14 @@ export class AppComponent implements OnInit, AfterViewInit { } logout() { this.cs.sharedService.clearAll(); - this.menu.toggle(); - this.cs.openLogin(); + //this.menu.toggle(); + this.menu.enable(false); + this.logoutFlage=true; + this.events.publish('logoutFlage', this.logoutFlage); + + this.getLastLoginInfo(); + // this.cs.openLogin(); + } @@ -178,6 +201,86 @@ export class AppComponent implements OnInit, AfterViewInit { this.menu.toggle(); } + getLastLoginInfo(){ + + + console.log(" getLastLoginInfo"); + console.log("get method :"+this.cs.getDeviceToken()); + this.deviceToken= this.cs.getDeviceToken(); + //this.cs.sharedService.getSharedData("new-device-token",false);// localStorage.getItem('devicyeToken'); + console.log("let deviceToken app" + this.cs.sharedService.getSharedData("new-device-token",false)); + console.log("localStorage.getItem app" + localStorage.getItem('devicyeToken')); + console.log("sheard DEVICE_TOKEN" + this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false)); + + + + + if (this.deviceToken) { + console.log('login enabled first time: ' + this.deviceToken); + } else { + console.log("no deviceToken" ); + + this.pushService.startReceiving(); + setTimeout(() => { + this.deviceToken= localStorage.getItem('deviceToken'); + console.log('login enabled second time: ' + this.deviceToken); + + }, 1000); + } + + + this.requestGetLoginInfo= { + DeviceType:this.cs.getDeviceType(),//'Android', + DeviceToken:this.deviceToken//"5ca8a69cf1804db55264c349edffb99b9d63acd9fa9b6b18956bcb2ad3f2ba36"//this.deviceToken + } + this.authService.getLoginInfo(this.requestGetLoginInfo,() => {}, this.ts.trPK('general', 'ok')).subscribe(res => { + + if (this.cs.validResponse(res)) { + + if(res.Mohemm_GetMobileLoginInfoList.length > 0){ + + this.cs.sharedService.setSharedData( + // res.Patient_SELECTDeviceIMEIbyIMEIList[0], + res.Mohemm_GetMobileLoginInfoList[0], + AuthenticationService.IMEI_USER_DATA + ); + this.user = true; + this.events.publish('user', this.user); + setTimeout(() => { + this.splashScreen.hide(); + },3000); + + if(this.logoutFlage){ + this.cs.openLogin(); + + } + + } + else{ + this.user = false; + this.events.publish('user', this.user); + + setTimeout(() => { + this.splashScreen.hide(); + },3000); + + if(this.logoutFlage){ + this.cs.openLogin(); + + } + + } + + }else{ + // this.user = false; + // this.splashScreen.hide(); + // if(this.logoutFlage){ + // this.cs.openLogin(); + + // } + } + }); + } } diff --git a/Mohem/src/app/attendance-tracking/home/home.component.html b/Mohem/src/app/attendance-tracking/home/home.component.html index 48d2c99c..1a4ae913 100644 --- a/Mohem/src/app/attendance-tracking/home/home.component.html +++ b/Mohem/src/app/attendance-tracking/home/home.component.html @@ -67,19 +67,19 @@ {{ts.trPK('attendance-tracking','check-in')}} - 08:00 + {{attendanceTrackingList.P_SWIPE_IN | slice:0:-3}} - + {{ts.trPK('attendance-tracking','check-out')}} - 08:00 + {{attendanceTrackingList.P_SWIPE_OUT | slice:0:-3}} {{ts.trPK('attendance-tracking','late-in')}} - 08:00 + {{attendanceTrackingList.P_LATE_IN_HOURS | slice:0:-3}} - + {{ts.trPK('attendance-tracking','regular')}} {{attendanceTrackingList.P_SCHEDULED_HOURS | slice:0:-3}} diff --git a/Mohem/src/app/authentication/confirm-login/confirm-login.component.html b/Mohem/src/app/authentication/confirm-login/confirm-login.component.html index 931f7349..5ab6a2b0 100644 --- a/Mohem/src/app/authentication/confirm-login/confirm-login.component.html +++ b/Mohem/src/app/authentication/confirm-login/confirm-login.component.html @@ -13,11 +13,11 @@ [ngClass]="{'content-class':accessFromOutSide, 'ion-padding': !accessFromOutSide}" has-bouncing="false" forceOverscroll="false" scrollY="false" class="ion-no-padding"> - + + - + --> diff --git a/Mohem/src/app/authentication/login/login.component.ts b/Mohem/src/app/authentication/login/login.component.ts index 7442330d..aa8ad0a2 100644 --- a/Mohem/src/app/authentication/login/login.component.ts +++ b/Mohem/src/app/authentication/login/login.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit, NgZone, OnDestroy } from "@angular/core"; import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service"; import { Router } from "@angular/router"; -import { AlertController, Platform } from "@ionic/angular"; +import { AlertController, Platform, Events } from "@ionic/angular"; import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { CheckUserAuthenticationResponse } from "src/app/hmg-common/services/authentication/models/check-user-auth.response"; import { SmsReaderService } from "src/app/hmg-common/services/sms/sms-reader.service"; @@ -49,6 +49,8 @@ export class LoginComponent implements OnInit, OnDestroy { user: boolean =false; DeviceType: string; requestGetLoginInfo:any; + logoutFlage: boolean ; + getuser:any=""; constructor( public cs: CommonService, @@ -58,40 +60,89 @@ export class LoginComponent implements OnInit, OnDestroy { public ts: TranslatorService, public smsService: SmsReaderService, private faio: FingerprintAIO, + public events:Events, public ngZone: NgZone, public device: Device, public splash: SplashScreen, public sharedData: SharedDataService, public plt: Platform, public pushService: PushService - ) { } + ) { + this.events.subscribe("logoutFlage", logoutFlage => { + console.log("login compont logoutFlage: "+logoutFlage); + if(logoutFlage == true){ + console.log(" subscribe check logoutFlage: "+logoutFlage); + this.logoutFlage = logoutFlage; + localStorage.setItem('logoutFlage',logoutFlage); + } + }); + + this.getuser = this.cs.sharedService.getSharedData( + AuthenticationService.IMEI_USER_DATA, + false + ); + // alert(" this.getuser "+this.getuser); + if(this.getuser){ + this.user = true; + + } + else{ + this.user = false; + + } + } ngOnInit() { // this.deviceToken= this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false); // console.log("get deviceToken login"+ this.deviceToken) + + + // this.getuser = this.cs.sharedService.getSharedData( + // AuthenticationService.IMEI_USER_DATA, + // false + // ); + + // if(this.getuser){ + // console.log("this.getuser"+this.getuser); + // this.logoutFlage = true; + + // } + + this.events.subscribe("user", user => { + console.log("login compont: "+user); + this.user = user; + + }); + + + this.deviceToken= localStorage.getItem('devicyeToken'); - console.log("let deviceToken" + this.deviceToken); + console.log("let deviceToken" + this.deviceToken); if (this.deviceToken) { - console.log('login enabled first time: ' + this.deviceToken); + console.log('login enabled first time: ' + this.deviceToken); } else { console.log("no deviceToken" ); this.pushService.startReceiving(); setTimeout(() => { - this.deviceToken= localStorage.getItem('deviceToken'); - console.log('login enabled second time: ' + this.deviceToken); + // alert('login enabled second time: ' + this.deviceToken); }, 1000); } - setTimeout(() => { + // setTimeout(() => { + // alert("this.logoutFlage in setTime" +localStorage.getItem('logoutFlage')); + // alert("this.this.user in setTime" + this.user); + + // if(localStorage.getItem('logoutFlage')== "true"){ + // this.getLastLoginInfo(); - this.getLastLoginInfo(); - },5000); + // } + // },1000); @@ -355,12 +406,14 @@ export class LoginComponent implements OnInit, OnDestroy { getLastLoginInfo(){ this.requestGetLoginInfo= { - DeviceType:this.cs.getDeviceType(), + DeviceType:this.cs.getDeviceType(),//"Android",//this.cs.getDeviceType(), DeviceToken:this.deviceToken//"5ca8a69cf1804db55264c349edffb99b9d63acd9fa9b6b18956bcb2ad3f2ba36"//this.deviceToken } this.authService.getLoginInfo(this.requestGetLoginInfo,() => {}, this.ts.trPK('general', 'ok')).subscribe(res => { if (this.cs.validResponse(res)) { + if(res.Mohemm_GetMobileLoginInfoList.length > 0){ + this.cs.sharedService.setSharedData( // res.Patient_SELECTDeviceIMEIbyIMEIList[0], res.Mohemm_GetMobileLoginInfoList[0], diff --git a/Mohem/src/app/authentication/sms-page/sms-page.page.html b/Mohem/src/app/authentication/sms-page/sms-page.page.html index 725130e9..f2811d6a 100644 --- a/Mohem/src/app/authentication/sms-page/sms-page.page.html +++ b/Mohem/src/app/authentication/sms-page/sms-page.page.html @@ -9,13 +9,13 @@ - + + - + -->

diff --git a/Mohem/src/app/eit/eit-list/eit-list.component.html b/Mohem/src/app/eit/eit-list/eit-list.component.html index b442044d..36b2b14c 100644 --- a/Mohem/src/app/eit/eit-list/eit-list.component.html +++ b/Mohem/src/app/eit/eit-list/eit-list.component.html @@ -5,7 +5,7 @@ - +
@@ -157,7 +157,7 @@ *ngIf="!getResEITTransactionList || getResEITTransactionList[0]?.Collection_Transaction.length <= 0"> - +

{{'general, noData' | translate}}

@@ -228,12 +228,12 @@
- -
+ -
+ \ No newline at end of file diff --git a/Mohem/src/app/hmg-common/services/common/common.service.ts b/Mohem/src/app/hmg-common/services/common/common.service.ts index 660e0b80..08163c91 100644 --- a/Mohem/src/app/hmg-common/services/common/common.service.ts +++ b/Mohem/src/app/hmg-common/services/common/common.service.ts @@ -80,6 +80,7 @@ export class CommonService { private loadingProgress: any; public updateImage:boolean=false; public setUpdateImg:any; + DT: any; constructor( public nav: NavController, public router: Router, @@ -1412,6 +1413,13 @@ public getMonthNameAr(value: number): string { return objImg; } - + setDeviceToken(deviceToken){ + this.DT=deviceToken; + } + + getDeviceToken(){ + return this.DT; + } + } diff --git a/Mohem/src/app/hmg-common/services/push/push.service.ts b/Mohem/src/app/hmg-common/services/push/push.service.ts index 95d50785..c1b5ed3f 100644 --- a/Mohem/src/app/hmg-common/services/push/push.service.ts +++ b/Mohem/src/app/hmg-common/services/push/push.service.ts @@ -222,7 +222,12 @@ export class PushService { this.firebasex.getToken().then(token => { // alert("token: "+ token); + this.cs.sharedService.setSharedData(token, "new-device-token"); + localStorage.setItem('deviceToken', token); + this.cs.setDeviceToken(token); //last way to set the device Token to get it through getDeviceToken + this.registerInBackend(token); + }).catch(error => console.error('Error getting token', error)); diff --git a/Mohem/src/app/hmg-common/ui/card-filter/card-filter.component.html b/Mohem/src/app/hmg-common/ui/card-filter/card-filter.component.html index fb3f1a49..3865efe3 100644 --- a/Mohem/src/app/hmg-common/ui/card-filter/card-filter.component.html +++ b/Mohem/src/app/hmg-common/ui/card-filter/card-filter.component.html @@ -1,5 +1,5 @@
- {{value}} + {{value}} {{text}}
diff --git a/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.scss b/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.scss index f265cb6e..67a8ab9d 100644 --- a/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.scss +++ b/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.scss @@ -1,11 +1,3 @@ - - - -// .modalCss .modal-Wrapper { -// width: 600px; -// height: 300px; -// } - .chart-modal .modal-Wrapper { --background: rgb(116, 108, 108) !important; --border-color:white!important ; @@ -18,12 +10,9 @@ font-size: 10px !important; --background: #22C6B3 !important; color: aliceblue !important; -// margin-top: 10px !important; - } - .menu{ - // margin-left:330px !important; + .menu { margin-top: 0px !important; font-size: 35px !important; background: #22C6B3; @@ -33,7 +22,6 @@ } .person{ - margin-left:100px !important; margin-top: 0px !important; font-size: 23px !important; @@ -43,20 +31,19 @@ } .grid{ -margin-bottom: 550px !important; -margin-top: 20px !important; -margin-left: 15px !important; -margin-right: 15px !important; -background-color:white !important; -border-radius: 20px !important; -height: 250px !important; + margin-bottom: 550px !important; + margin-top: 20px !important; + margin-left: 15px !important; + margin-right: 15px !important; + background-color:white !important; + border-radius: 20px !important; + height: 250px !important; } -.ionSliders{ - margin: 0px !important; - padding: 0px !important; - -} + .ionSliders{ + margin: 0px !important; + padding: 0px !important; + } .ionSlide{ diff --git a/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.ts b/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.ts index c664d3dc..842cbd83 100644 --- a/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.ts +++ b/Mohem/src/app/hmg-common/ui/circle-calendar/circle-calendar.component.ts @@ -17,11 +17,6 @@ import { GetSwipesRequest } from 'src/app/time-card/service/models/get-swipes-re styleUrls: ['./circle-calendar.component.scss'] }) export class CircleCalendarComponent implements OnInit { - - @Input() eventsdateDayOff: any = []; - @Input() eventsdateAttend: any = []; - @Input() eventsdateAbsent: any = []; - @Input() normalDays: any = []; @Input() dayHoursTypeDetailsList: any = []; @Input() currentDateParent: string; @Output() monthTitle = new EventEmitter(); @@ -86,10 +81,7 @@ export class CircleCalendarComponent implements OnInit { } reRenderCalendar() { - this.renderDate(this.eventsdateAbsent, 'absent'); - this.renderDate(this.eventsdateAttend, 'present'); - this.renderDate(this.eventsdateDayOff, 'dayoff'); - this.renderDate(this.normalDays, 'scheduleDay'); + this.renderDate(this.dayHoursTypeDetailsList); } public async dateModal(shiftDetails) { @@ -106,14 +98,23 @@ export class CircleCalendarComponent implements OnInit { await modal.present(); } - public renderDate(arrayDays, cssClass) { + public renderDate(arrayDays) { const td = document.querySelectorAll('.swiper-slide-active .monthview-datetable td:not(.text-muted)'); arrayDays.forEach(dateObj => { - const date = dateObj.startTime; + const date = dateObj.customScheduleDate; td.forEach(element => { // tslint:disable-next-line: triple-equals - if (date.getDate() == element.textContent.trim()) { - element.classList.add(cssClass); + if (date.getDate() == element.textContent.trim() && dateObj.customPresent === true) { + element.classList.add('present'); + // tslint:disable-next-line: triple-equals + } else if (date.getDate() == element.textContent.trim() && dateObj.customAbsent === true) { + element.classList.add('absent'); + // tslint:disable-next-line: triple-equals + } else if (date.getDate() == element.textContent.trim() && dateObj.customDaysOff === true) { + element.classList.add('dayoff'); + // tslint:disable-next-line: triple-equals + } else if (date.getDate() == element.textContent.trim() && dateObj.customSchedule === true) { + element.classList.add('scheduleDay'); } }); }); @@ -124,7 +125,7 @@ export class CircleCalendarComponent implements OnInit { console.log(event.selectedTime.getDate()); const selectedIndex = event.selectedTime.getDate(); this.selectedIndexData = this.dayHoursTypeDetailsList[selectedIndex - 1]; - if (this.selectedIndexData.present) { + if (this.selectedIndexData.customPresent) { const rtpID = this.selectedIndexData.RTP_ID; this.getScheduleShiftDetails(rtpID); } diff --git a/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.html b/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.html index 5c57f654..1715fb1c 100644 --- a/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.html +++ b/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.html @@ -1,104 +1,100 @@ - - - - - - -
-
-
-

{{percentage}}

- Completed



+ + + + + + +
+
+
+

{{percentage}}

+ Completed



+
+
- -
-
- - -
+
+
+ +
+ +

{{nameDay}}

+
+ +

{{day}}

+
-

{{nameDay}}

-
+

{{nameMonth}}

+ -

{{day}}

-
- -

{{nameMonth}}

-
- -

{{year}}

-
- -

{{ts.trPK('attendance','present')}}

-
-
-
- - - -
- +

{{year}}

+ + +

{{ts.trPK('attendance','present')}}

+
+
+ + - +

{{shiftTime}}

{{ts.trPK('attendance-tracking','shift-time')}}

- + +

{{scheduled}}

{{ts.trPK('attendance-tracking','regular')}}

-
- - + + +

{{startDate}}

{{ts.trPK('attendance-tracking','check-in')}}

- + + +

{{endDate}}

{{ts.trPK('attendance-tracking','check-out')}}

-
- - + +

{{lateIn}}

{{ts.trPK('attendance-tracking','late-in')}}

- + +

{{excess}}

{{ts.trPK('attendance-tracking','excess')}}

-
- - + +

{{shortage}}

{{ts.trPK('attendance-tracking','shortage')}}

- + +

{{earlyOut}}

{{ts.trPK('attendance-tracking','early-out')}}

- -
- - - + + + + diff --git a/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.scss b/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.scss index 53ea08a2..7f648459 100644 --- a/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.scss +++ b/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.scss @@ -1,54 +1,23 @@ .result-text-container { - - // padding: 0; - - // margin: 0; - - // position: absolute; - - // left: 50%; - - // top: 50%; - - // display: block; - - // text-align: center; - - // transform: translate(-50%, -50%); -//////////////////////////here padding: 0; margin: 0; position: absolute; - left: 58%; - top: 67%; + left: 42%; + top: 60%; display: block; text-align: center; - -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); - h2 { - font-size: 25px; - - // font-family: WorkSans-Bold; font-weight: bold; - margin: 0 auto; - line-height: 36px; - } - span { - width: 125px; - display: block; - margin: 0 auto; - font-size: 12px; - font-family: workSans-Regular; color: rgb(163, 163, 163) !important; } @@ -57,20 +26,26 @@ .today-graph{ display: block; height: 127px; - width: 288px; + width: 270px; + margin-left: -60px; } .amountlabel{ - color: black !important; - font-weight: bold !important; - font-size: 13px !important; -// border-top: 1px solid rgb(163, 163, 163) !important; - margin-left: 0px !important; - margin-bottom: -29px !important; + color: black !important; + font-weight: bold !important; + font-size: 13px !important; + margin-bottom: -29px !important; + width: 100%; + display: block; + text-align: center; } .rowlabel{ -color: rgb(163, 163, 163) !important; -font-size: 13px !important; -font-family: WorkSans-Bold; + color: #a3a3a3 !important; + font-size: 13px !important; + font-family: WorkSans-Bold; + display: block; + width: 100%; + text-align: center; + padding: 1px; } .grid{ padding-bottom: -20px !important; @@ -95,24 +70,15 @@ height: 360px !important; } .div{ - // border: 1px solid #a3a3a3 !important; - // text-align: center; - // width: 274%; - // border-radius: 8%; - // height: 40%; - // margin-right: -11px; border: 1px solid #a3a3a3 !important; - border-radius: 9px; - width: 241%; - margin-right: -226px; - - + border-radius: 10px; + margin-bottom:10px; } .p0{ margin-bottom: -13px !important; color: black !important; font-weight: bold !important; - font-size: 15px !important; + font-size: 14px !important; margin-top: 8px; text-align: center; display: block; @@ -128,22 +94,28 @@ height: 360px !important; display: block; width: 100%; } - .p2{ font-weight: bold !important; + .p2{ + font-weight: bold !important; font-size: 17px !important; margin-bottom: 43px !important; margin-top: 0px !important; color: black !important; font-weight: bold !important; - margin-left: 33px; - } - .p3{ /* margin-bottom: -72px !important; */ + text-align: center; + display: block; + width: 100%; + } + .p3{ color: black !important; font-weight: bold !important; font-size: 19px; margin-top: -43px; - margin-left: 27px; + text-align: center; + display: block; + width: 100%; } - .p4{ margin-bottom: 56px !important; + .p4{ + margin-bottom: 56px !important; margin-top: -26px !important; color: black !important; } @@ -158,23 +130,7 @@ height: 360px !important; height: 21px; width: 110px; padding-top: 7px; - /* font-family: WorkSans-Bold !important; */ padding-bottom: 21px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; - } - // .less{ background-color: #22C6B3; - // background-color: #22C6B3; - // border: none; - // color: white; - // text-align: center; - // text-decoration: none; - // display: inline-block; - // font-size: 12px; - // border-radius: 30px; - // height: 26px; - // padding: 6px 24px; - // margin-left: 123px; - // /* margin-top: -19px; */ - // margin-bottom: 17px; - // } \ No newline at end of file + } \ No newline at end of file diff --git a/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.ts b/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.ts index 001b4b25..1cc15754 100644 --- a/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.ts +++ b/Mohem/src/app/hmg-common/ui/circle-calendar/date-info-modal/date-info-modal.component.ts @@ -98,7 +98,7 @@ export class DateInfoModalComponent implements OnInit { slideChanged(ev) { this.slides.getActiveIndex().then(index => { - const shiftDetails = this.SHIFTDETAILS[index]; + const shiftDetails = this.SHIFTDETAILS.GetScheduleShiftsDetailsList[index]; this.assignData(shiftDetails); }); } diff --git a/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.html b/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.html index f3099eaa..a90e4704 100644 --- a/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.html +++ b/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.html @@ -1,6 +1,6 @@
- +
Team Member Image @@ -9,11 +9,11 @@
- +

{{name}}

{{title}}
- +
diff --git a/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.ts b/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.ts index 47d44bb7..47fe4440 100644 --- a/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.ts +++ b/Mohem/src/app/hmg-common/ui/employee-information/employee-information.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Input } from '@angular/core'; +import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core'; @Component({ selector: 'app-employee-information', @@ -12,10 +12,15 @@ export class EmployeeInformationComponent implements OnInit { @Input() title: string; @Input() employeeImage: string; @Input() employeePhoneNumber: string; - + // tslint:disable-next-line: no-output-on-prefix + @Output() onGetDetails = new EventEmitter(); constructor() { } ngOnInit() {} + getDetails() { + this.onGetDetails.emit(); + } + } diff --git a/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts index 31d50324..aa5abdec 100644 --- a/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts +++ b/Mohem/src/app/hmg-common/ui/welcome-login/welcome.component.ts @@ -87,7 +87,7 @@ export class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy { false ); - console.log( this.user); + console.log( "this.user in welcome login"+ this.user); this.userName = localStorage.getItem("user"); this.password = localStorage.getItem("password"); diff --git a/Mohem/src/app/home/home.page.ts b/Mohem/src/app/home/home.page.ts index 02bde739..a817b1f6 100644 --- a/Mohem/src/app/home/home.page.ts +++ b/Mohem/src/app/home/home.page.ts @@ -320,9 +320,13 @@ export class HomePage implements OnInit { this.userData, AuthenticatedUser.SHARED_DATA ); + if(this.common.getUpdateImage().status){ + this.userImage =this.sanitizer.bypassSecurityTrustUrl("data:image/png;base64,"+this.common.getUpdateImage().img); + }else{ this.userImage = user.EMPLOYEE_IMAGE ? 'data:image/png;base64,' + user.EMPLOYEE_IMAGE : this.userImage; + } this.callDashboardServices(); } else { console.log(user); @@ -542,7 +546,7 @@ export class HomePage implements OnInit { (result: OpenMissingSwipesResponse) => { if (this.common.validResponse(result)) { const key = "GetOpenMissingSwipesList"; - this.statsButtons[1].statsValue = result[key].P_OPEN_MISSING_SWIPES; + this.statsButtons[1].statsValue = Math.floor(result[key].P_OPEN_MISSING_SWIPES); } } ); @@ -613,7 +617,7 @@ openPeriodDateDashbored() { ITGCountAllNotification() { this.workListService.getITGDetails().subscribe((result: any) => { this.statsButtons[0].statsValue = - this.countAllNotification + result.TotalCount; + Math.floor(this.countAllNotification + result.TotalCount); }); } @@ -693,7 +697,7 @@ getSubordinatesAttStatus() { "HMG Annual Vacation Accrual Plan" ) { this.statsButtons[2].statsValue = - accrualBalance.ACCRUAL_NET_ENTITLEMENT; + Math.floor(accrualBalance.ACCRUAL_NET_ENTITLEMENT); this.common.sharedService.setSharedData( accrualBalance, "leaveAccrualBalance" @@ -711,7 +715,7 @@ getSubordinatesAttStatus() { totalTicketsLeft + accrualBalance.ACCRUAL_NET_ENTITLEMENT; } } - this.statsButtons[3].statsValue = totalTicketsLeft; + this.statsButtons[3].statsValue = Math.floor(totalTicketsLeft); } }); } diff --git a/Mohem/src/app/my-team/details/details.component.html b/Mohem/src/app/my-team/details/details.component.html index 3e0c7759..af154d2f 100644 --- a/Mohem/src/app/my-team/details/details.component.html +++ b/Mohem/src/app/my-team/details/details.component.html @@ -23,7 +23,7 @@
- + Call @@ -174,12 +174,8 @@
{{ts.trPK('attendance','monthly-attendance-calendar')}} @@ -223,7 +219,7 @@ [title]="subordinate.POSITION_NAME" [employeeImage]="subordinate.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+subordinate.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" [employeePhoneNumber]="subordinate.EMPLOYEE_MOBILE_NUMBER" - (click)="getDetails(i)"> + (onGetDetails)="getDetails(i)"> diff --git a/Mohem/src/app/my-team/details/details.component.ts b/Mohem/src/app/my-team/details/details.component.ts index bf839752..a5e58229 100644 --- a/Mohem/src/app/my-team/details/details.component.ts +++ b/Mohem/src/app/my-team/details/details.component.ts @@ -54,10 +54,6 @@ export class DetailsComponent implements OnInit { public attendedDays: number; public futrueDays = 0; public totalAttendancePrecentage = 0; - public arrDaysAttendance: any = []; - public arrDaysAbsent: any = []; - public arrDaysOff: any = []; - public normalDays: any = []; public monthTitle: string = moment().format('MMMM'); public yearTitle: string; public activeMonth: any; @@ -120,7 +116,6 @@ export class DetailsComponent implements OnInit { public segmentChanged(event: any) { this.activeSegment = event.detail.value; if (this.activeSegment === 'Attendance') { - this.normalDays = []; this.initAttendance(); } } @@ -132,19 +127,11 @@ export class DetailsComponent implements OnInit { this.currentDate = new Date(); this.showData = false; this.nextMonth = new Date().getMonth() + 2; - this.preMonth = new Date().getMonth() - 2; - if (this.preMonth < 0) { - this.preMonth = this.preMonth * - 1; - } else { - this.preMonth = this.preMonth * - 1; - } + this.preMonth = new Date().getMonth(); this.calendarConfig(this.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear()); } calendarConfig(month?, year?) { - this.arrDaysOff = []; - this.arrDaysAttendance = []; - this.arrDaysAbsent = []; this.month = month; this.year = year; this.getTimeCardSummaryDetails(month, year); @@ -174,14 +161,12 @@ export class DetailsComponent implements OnInit { console.log(result.GetDayHoursTypeDetailsList); this.common.sharedService.setSharedData(result.GetDayHoursTypeDetailsList, 'RTP_IDs'); this.countAllAttendDays(result.GetDayHoursTypeDetailsList); - this.dayHoursTypeDetailsList = result.GetDayHoursTypeDetailsList; } }); } nextSlide() { - this.normalDays = []; if (this.currentMonthName !== this.month) { this.showData = false; if (this.nextMonth > 12) { @@ -196,7 +181,6 @@ export class DetailsComponent implements OnInit { } previousSlide() { - this.normalDays = []; this.showData = false; if (this.preMonth === 0) { this.currentYear = this.currentYear - 1; @@ -210,6 +194,7 @@ export class DetailsComponent implements OnInit { } + changeMonthTitle(title) { this.monthTitle = title; this.getTimeCardSummaryDetails(); @@ -223,48 +208,35 @@ export class DetailsComponent implements OnInit { for (let i = 0; i < allDays.length; i++) { // tslint:disable-next-line: triple-equals if (allDays[i].ATTENDED_FLAG == 'Y') { - allDays[i].present = true; - allDays[i].absent = false; - allDays[i].daysOff = false; - allDays[i].schedule = false; - this.arrDaysAttendance.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE) - }); + allDays[i].customPresent = true; + allDays[i].customAbsent = false; + allDays[i].customDaysOff = false; + allDays[i].customSchedule = false; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); // tslint:disable-next-line: triple-equals } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].ABSENT_FLAG == 'Y') { - allDays[i].present = false; - allDays[i].absent = true; - allDays[i].daysOff = false; - allDays[i].schedule = false; - this.arrDaysAbsent.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE), - isoTime: '09:00:00', - allDay: false - }); + allDays[i].customPresent = false; + allDays[i].customAbsent = true; + allDays[i].customDaysOff = false; + allDays[i].customSchedule = false; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); // tslint:disable-next-line: triple-equals } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].DAY_TYPE === 'OFF') { - allDays[i].present = false; - allDays[i].absent = false; - allDays[i].daysOff = true; - allDays[i].schedule = false; - this.arrDaysOff.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE) - }); + allDays[i].customPresent = false; + allDays[i].customAbsent = false; + allDays[i].customDaysOff = true; + allDays[i].customSchedule = false; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); } else { - allDays[i].present = false; - allDays[i].absent = false; - allDays[i].daysOff = false; - allDays[i].schedule = true; - this.normalDays.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE) - }); + allDays[i].customPresent = false; + allDays[i].customAbsent = false; + allDays[i].customDaysOff = false; + allDays[i].customSchedule = true; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); } } this.showData = true; + this.dayHoursTypeDetailsList = allDays; } public getTimeCardSummaryDetails(month?, year?) { diff --git a/Mohem/src/app/my-team/home/home.component.html b/Mohem/src/app/my-team/home/home.component.html index 1a297ab0..76a56be7 100644 --- a/Mohem/src/app/my-team/home/home.component.html +++ b/Mohem/src/app/my-team/home/home.component.html @@ -69,7 +69,7 @@ [title]="subordinate.POSITION_NAME" [employeeImage]="subordinate.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+subordinate.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" [employeePhoneNumber]="subordinate.EMPLOYEE_MOBILE_NUMBER" - (click)="getDetails(i)"> + (onGetDetails)="getDetails(i)"> diff --git a/Mohem/src/app/notification/home/home.component.html b/Mohem/src/app/notification/home/home.component.html index 3a4e61fb..546dc045 100644 --- a/Mohem/src/app/notification/home/home.component.html +++ b/Mohem/src/app/notification/home/home.component.html @@ -14,11 +14,16 @@
Open Request Analysis
-
-

{{totalRequestCount}}

+
+ {{newWorkListResponse.length + ITGCount}} of + {{newWorkListResponse.length}} of +

{{totalRequestCount}}

+

{{newWorkListResponse[0].NO_OF_ROWS + ITGCount}}

+

{{newWorkListResponse[0].NO_OF_ROWS}}

TOTAL
OPEN REQUEST
- + +
@@ -61,32 +66,35 @@ -
-
- {{data.key}} -
-

{{workList.SUBJECT}}

+
+
+
+ {{formattedData.date}} +
+

{{workList.SUBJECT}}

-
- +
-
-
- {{segmentInfo.ModifiedDate |date}} -
-

{{segmentInfo.Title}}

+
+
+ {{segmentInfo.ModifiedDate |date}} +
+

{{segmentInfo.Title}}

+
-
+
+ +
+ No Data Available +
+ -
- No Data Available -
- + diff --git a/Mohem/src/app/notification/home/home.component.scss b/Mohem/src/app/notification/home/home.component.scss index 19ac087d..9c0e235d 100644 --- a/Mohem/src/app/notification/home/home.component.scss +++ b/Mohem/src/app/notification/home/home.component.scss @@ -333,6 +333,8 @@ ion-content { margin-top: 15px; display: block; padding: 0 20px; + position: relative; + z-index: 99; ion-col{ background: white; border-radius: 12px; @@ -382,9 +384,8 @@ ion-content { font-family: WorkSans-Regular; padding: 30px; position: absolute; - left: 50%; - margin-left: -100px; - margin-top: 100px; + left: 85px; + top: 50px; } .disable-filter { pointer-events: none; diff --git a/Mohem/src/app/notification/home/home.component.ts b/Mohem/src/app/notification/home/home.component.ts index 7b9e3d72..790b2ac3 100644 --- a/Mohem/src/app/notification/home/home.component.ts +++ b/Mohem/src/app/notification/home/home.component.ts @@ -9,6 +9,8 @@ import { IonInfiniteScroll } from '@ionic/angular'; import { WorklistMainService } from '../service/work-list.main.service'; import { WorklistAdvancedSearchComponent } from '../worklist-advanced-search/worklist-advanced-search.component'; import { DatePipe } from '@angular/common'; +import { GetOpenNotificationsResponse } from 'src/app/hmg-common/services/dashbored/models/GetOpenNotificationsResponse'; +import { DashboredService } from 'src/app/hmg-common/services/dashbored/dashbored.service'; @Component({ selector: 'app-home', @@ -58,10 +60,18 @@ export class HomeComponent implements OnInit { public worklistNotifications: any; public totalRequestCount = 0; public newWorkListResponse = []; - public showFormattedData = {}; + public showFormattedData = []; + public allFormattedData = []; public selectedFilter = 'ALL'; public showSearchButton = false; public itemType = ''; + + public totalHR = 0; + public totalPO = 0; + public totalPR = 0; + public totalMR = 0; + + public showChart = false; public options = { cutoutPercentage: 80, tooltips: { enabled: false }, @@ -138,9 +148,11 @@ export class HomeComponent implements OnInit { constructor( public common: CommonService, public ts: TranslatorService, + // tslint:disable-next-line: no-shadowed-variable public WorklistService: WorklistService, public workListService: WorklistMainService, - public modalController: ModalController + public modalController: ModalController, + public DS: DashboredService ) { this.WorkListObj = new WorkListRequest(); this.WorkListObj.P_NOTIFICATION_TYPE = '1'; @@ -153,54 +165,61 @@ export class HomeComponent implements OnInit { } ngOnInit() { - // this.direction = TranslatorService.getCurrentDirection(); - this.worklistNotifications = this.common.sharedService.getSharedData('worklistNotifications', false); + this.openNotificationsDashboard(); + } + + callWorkListServices() { this.Details(); this.Count(); - this.assignDataToFilters(); this.getAllPushNotificationFun(); - this.totalRequestCount = this.worklistNotifications.P_OPEN_NTF_NUMBER; + } + + openNotificationsDashboard() { + this.DS.getOpenNotifications().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'); + this.callWorkListServices(); + } + }); } assignDataToFilters() { this.filters[0].value = this.worklistNotifications.P_OPEN_NTF_NUMBER; const openNotificationsArray = this.worklistNotifications.GetOpenNotificationsList; + for (const notification of openNotificationsArray) { if (notification.ITEM_TYPE === 'HRSSA') { - this.filters[1].value = notification.OPEN_NTF_NUMBER; + this.filters[1].value = this.totalHR; this.data.datasets[0].data[0] = notification.OPEN_NTF_NUMBER; } else if (notification.ITEM_TYPE === 'POAPPRV') { - this.filters[2].value = notification.OPEN_NTF_NUMBER; + this.filters[2].value = this.totalPO; this.data.datasets[0].data[1] = notification.OPEN_NTF_NUMBER; } else if (notification.ITEM_TYPE === 'REQAPPRV') { - this.filters[3].value = notification.OPEN_NTF_NUMBER; + this.filters[3].value = this.totalPR; this.data.datasets[0].data[2] = notification.OPEN_NTF_NUMBER; } else if (notification.ITEM_TYPE === 'INVMOA') { - this.filters[4].value = notification.OPEN_NTF_NUMBER; + this.filters[4].value = this.totalMR; 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.showChart = true; } - - activeFilter(index: number) { if (this.currentActiveIndex !== index) { - this.showFormattedData = {}; this.previousActiveIndex = this.currentActiveIndex; this.currentActiveIndex = index; this.filters[this.previousActiveIndex].active = false; this.filters[this.currentActiveIndex].active = true; - if (this.filters[this.currentActiveIndex].value !== 0) { - const selectedKey = this.filters[this.currentActiveIndex].key; - this.resetData(); - this.itemType = (selectedKey !== 'ITG' && selectedKey !== 'ALL') ? this.filters[this.currentActiveIndex].key : ''; - this.getAllPushNotificationFun(); - } this.selectedFilter = this.filters[this.currentActiveIndex].key; + if (this.selectedFilter !== 'ITG') { + this.getFilteredData(this.selectedFilter); + } } } @@ -230,13 +249,13 @@ export class HomeComponent implements OnInit { async openSearchModal() { const modal = await this.modalController.create({ component: WorklistAdvancedSearchComponent, - cssClass: 'advanced-search-modal', + cssClass: 'advanced-search-modal-custom', backdropDismiss: false, componentProps: {} }); modal.onDidDismiss().then(result => { if (result.data) { - if (result.data.notificationType !== '' || result.data.selectedValue !== '' || result.data.itemType !== '') { + if (result.data.notificationType !== '' || result.data.selectedValue !== '' || result.data.itemType !== '') { this.showSearchButton = true; this.itemType = result.data.itemType; this.notificationType = result.data.notificationType; @@ -245,7 +264,7 @@ export class HomeComponent implements OnInit { this.inputSearch = result.data.inputSearch; this.WorkListObj.P_PAGE_NUM = 1; this.newWorkListResponse = []; - this.showFormattedData = {}; + this.showFormattedData = []; this.selectedFilter = 'ALL'; this.filters[this.currentActiveIndex].active = false; this.currentActiveIndex = 0; @@ -268,7 +287,7 @@ export class HomeComponent implements OnInit { this.WorkListObj.P_SEARCH_SUBJECT = this.selectedValue === '2' ? this.inputSearch : ''; this.WorkListObj.P_SEARCH_SENT_DATE = (this.inputDate && this.selectedValue === '3') ? moment(this.inputDate).format('DD-MMM-YYYY') : ''; - this.WorkListObj.P_SEARCH_ITEM_TYPE_DSP_NAME = this.selectedValue === '4' ? this.inputSearch : ''; ; + this.WorkListObj.P_SEARCH_ITEM_TYPE_DSP_NAME = this.selectedValue === '4' ? this.inputSearch : ''; this.WorkListObj.P_ITEM_TYPE = this.itemType !== '' ? this.itemType : ''; this.WorkListObj.P_NOTIFICATION_TYPE = this.notificationType !== '' ? this.notificationType : '1'; if (this.selectedValue === '5') { @@ -277,7 +296,6 @@ export class HomeComponent implements OnInit { this.WorkListObj.P_SEARCH_SENT_DATE = ''; this.WorkListObj.P_SEARCH_SUBJECT = ''; } - this.WorklistService.getWorkList(this.WorkListObj).subscribe((result) => { if (this.common.validResponse(result)) { this.handleWorkListResult(result.GetWorkList); @@ -286,24 +304,83 @@ export class HomeComponent implements OnInit { ); } - categorizeData(arrayToCategorize: any) { - const datePipe = new DatePipe('en-US'); - const formattedData = {}; - for (const workList of arrayToCategorize) { - workList.FORMATTED_DATE = datePipe.transform(new Date(workList.BEGIN_DATE), 'MMMM dd, y'); - if (!(workList.FORMATTED_DATE in formattedData)) { - formattedData[workList.FORMATTED_DATE] = new Array(); - formattedData[workList.FORMATTED_DATE].push(workList); - } else { - formattedData[workList.FORMATTED_DATE].push(workList); + getFilteredData(filter: string) { + if (filter === 'ALL') { + this.showFormattedData = this.allFormattedData; + } else { + let arrayToFilter; + arrayToFilter = this.newWorkListResponse.filter((workList) => { + return workList.ITEM_TYPE === filter; + }); + const sortData = this.sortArray(arrayToFilter); + this.showFormattedData = this.categorizeData(sortData); + } + } + + checkDateExistance(currentDate: any, formattedData: any) { + let existsBefore = false; + let index = 0; + for (let i = 0; i < formattedData.length; i++) { + if (formattedData[i].date === currentDate) { + existsBefore = true; + index = i; + break; } + } + return { + exists: existsBefore, + indexNumber: index + }; + } + + addCountInFilters(workList: any) { + if (workList.ITEM_TYPE === 'HRSSA') { + this.totalHR = this.totalHR + 1; + } else if (workList.ITEM_TYPE === 'POAPPRV') { + this.totalPO = this.totalPO + 1; + } else if (workList.ITEM_TYPE === 'REQAPPRV') { + this.totalPR = this.totalPR + 1; + } else if (workList.ITEM_TYPE === 'INVMOA') { + this.totalMR = this.totalMR + 1; + } + } + + categorizeData(arrayToCategorize: any) { + this.totalHR = 0; + this.totalPO = 0; + this.totalPR = 0; + this.totalMR = 0; + + const datePipe = new DatePipe('en-US'); + const formattedData = []; + for (const workList of arrayToCategorize) { + this.addCountInFilters(workList); + const currentDate = datePipe.transform(new Date(workList.BEGIN_DATE), 'MMMM dd, y'); + const currentObject = { + date: '', + data: [] + }; + if (formattedData.length === 0) { + currentObject.date = currentDate; + currentObject.data.push(workList); + formattedData.push(currentObject); + } else { + const existsBefore = this.checkDateExistance(currentDate, formattedData); + if (existsBefore.exists) { + formattedData[existsBefore.indexNumber].data.push(workList); + } else { + currentObject.date = currentDate; + currentObject.data.push(workList); + formattedData.push(currentObject); + } + } } - return formattedData; + return formattedData; } sortArray(arrayToSort: any) { return arrayToSort.sort((a: any, b: any) => - new Date(b.BEGIN_DATE).getTime() - new Date(a.BEGIN_DATE).getTime() + new Date(b.date).getTime() - new Date(a.date).getTime() ); } @@ -330,9 +407,10 @@ export class HomeComponent implements OnInit { } else { this.newWorkListResponse = this.newWorkListResponse.concat(result); } - this.newWorkListResponse = this.sortArray(this.newWorkListResponse); - console.log(this.newWorkListResponse); - this.showFormattedData = this.categorizeData(this.newWorkListResponse); + const categorizedWorkListResponse = this.categorizeData(this.newWorkListResponse); + this.assignDataToFilters(); + this.showFormattedData = this.sortArray(categorizedWorkListResponse); + this.allFormattedData = this.showFormattedData; this.common.sharedService.setSharedData(this.newWorkListResponse, HomeComponent.NOTIFICATION_ARR); } else { this.newWorkListResponse = []; @@ -340,22 +418,18 @@ export class HomeComponent implements OnInit { } openNotificationDetail(obj) { - this.common.sharedService.setSharedData(obj[0], HomeComponent.NOTIFICATION_DATA); + this.common.sharedService.setSharedData(obj, HomeComponent.NOTIFICATION_DATA); if (obj.REQUEST_TYPE === 'PR') { this.common.openWorklistMainPRPage(); - } else if (obj[0].REQUEST_TYPE === 'PO') { + } else if (obj.REQUEST_TYPE === 'PO') { this.common.openWorklistMainPOPage(); - } else if (obj[0].REQUEST_TYPE === 'MO') { + } else if (obj.REQUEST_TYPE === 'MO') { this.common.openWorklistMainMRPage(); } else { this.common.openWorklistMainPage(); } } - isEmptyObject() { - return (this.showFormattedData && (Object.keys(this.showFormattedData).length > 0) || this.ITGItem.length > 0); - } - resetData() { if (this.infiniteScroll) { this.infiniteScroll.complete(); @@ -366,7 +440,8 @@ export class HomeComponent implements OnInit { this.inputDate = ''; this.inputSearch = ''; this.newWorkListResponse = []; - this.showFormattedData = {}; + this.showFormattedData = []; + this.allFormattedData = []; this.WorkListObj.P_SEARCH_FROM_USER = ''; this.WorkListObj.P_SEARCH_ITEM_TYPE_DSP_NAME = ''; this.WorkListObj.P_SEARCH_SENT_DATE = ''; @@ -413,13 +488,13 @@ export class HomeComponent implements OnInit { Details() { this.workListService.getITGDetails() .subscribe((result: any) => { + this.ITGCount = result.TotalCount; this.totalRequestCount = this.totalRequestCount + result.TotalCount; this.filters[5].value = result.TotalCount; }); } ITGNotification() { - // this.Details(); this.isAll = false; this.isPR = false; this.isPO = false; diff --git a/Mohem/src/app/payslip/home/home.component.html b/Mohem/src/app/payslip/home/home.component.html index 142a36a5..cb9a57a0 100644 --- a/Mohem/src/app/payslip/home/home.component.html +++ b/Mohem/src/app/payslip/home/home.component.html @@ -257,6 +257,7 @@
{{ts.trPK('payslip','payment-information')}}
+
@@ -265,7 +266,7 @@ - + @@ -276,7 +277,7 @@ - + @@ -285,7 +286,7 @@ - + @@ -297,7 +298,7 @@ - + @@ -306,10 +307,11 @@ - +
+
\ No newline at end of file diff --git a/Mohem/src/app/payslip/home/home.component.ts b/Mohem/src/app/payslip/home/home.component.ts index 7fd9b363..8f826d99 100644 --- a/Mohem/src/app/payslip/home/home.component.ts +++ b/Mohem/src/app/payslip/home/home.component.ts @@ -257,7 +257,7 @@ getPaymentInfo(ActionContextID){ handleGetPaymentInfoResult(result){ if (result.GetPaymentInformationList != null) { - this.GetPaymentInformationList = result.GetPaymentInformationList[0]; + this.GetPaymentInformationList = result.GetPaymentInformationList; } } diff --git a/Mohem/src/app/pipes/pipes.module.ts b/Mohem/src/app/pipes/pipes.module.ts index c754645c..3a3a580a 100644 --- a/Mohem/src/app/pipes/pipes.module.ts +++ b/Mohem/src/app/pipes/pipes.module.ts @@ -2,12 +2,13 @@ import { NgModule } from '@angular/core'; import { DateStringPipe } from './date-string/date-string'; import { FilterLangPipe } from './filter-lang/filter-lang'; import { TurncatePipe } from './turncate/turncate.pipe'; +import{ JsonDatePipe} from './json-date/json-date' @NgModule({ - declarations: [DateStringPipe, + declarations: [DateStringPipe,JsonDatePipe, FilterLangPipe, TurncatePipe], imports: [], exports: [DateStringPipe, - FilterLangPipe,TurncatePipe] + FilterLangPipe,TurncatePipe,JsonDatePipe] }) export class PipesModule {} diff --git a/Mohem/src/app/profile/edit-profile/edit-profile.component.ts b/Mohem/src/app/profile/edit-profile/edit-profile.component.ts index 58c888f3..61b0d210 100644 --- a/Mohem/src/app/profile/edit-profile/edit-profile.component.ts +++ b/Mohem/src/app/profile/edit-profile/edit-profile.component.ts @@ -7,6 +7,7 @@ import { AuthenticatedUser } from "src/app/hmg-common/services/authentication/mo import { PerformanceAppraisalResponse } from 'src/app/hmg-common/services/dashbored/performance-appraisal.response'; import { DashboredService } from 'src/app/hmg-common/services/dashbored/dashbored.service'; import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service'; +import { DomSanitizer } from '@angular/platform-browser'; // import { DomSanitizer } from '@angular/platform-browser'; @@ -35,17 +36,19 @@ export class EditProfileComponent implements OnInit { public cs: CommonService, public authService: AuthenticationService, public DS :DashboredService, - public sharedData: SharedDataService + public sharedData: SharedDataService, + public events: Events, + private sanitizer: DomSanitizer, // private events: Events, // private sanitizer: DomSanitizer, ) { - // this.events.subscribe("img-change", displayImg => { - // console.log("app compont: "+displayImg); - // this.user_image = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+displayImg); + this.events.subscribe("img-change", displayImg => { + console.log("app compont: "+displayImg); + this.user_image = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+displayImg); - // }); + }); } @@ -63,9 +66,13 @@ export class EditProfileComponent implements OnInit { this.personalInfo = user; this.User_name_Emp=this.personalInfo.EMPLOYEE_NAME; this.User_Job_name=this.personalInfo.JOB_NAME; + if(this.cs.getUpdateImage().status){ + this.user_image =this.sanitizer.bypassSecurityTrustUrl("data:image/png;base64,"+this.cs.getUpdateImage().img); + }else{ this.user_image = user.EMPLOYEE_IMAGE ? "data:image/png;base64," + user.EMPLOYEE_IMAGE : "../assets/imgs/profile.png"; + } console.log("name: "+ this.personalInfo.EMPLOYEE_NAME); console.log("user name: "+ user.EMPLOYEE_NAME); console.log("name: "+ this.personalInfo.JOB_NAME); diff --git a/Mohem/src/app/profile/home/home.component.ts b/Mohem/src/app/profile/home/home.component.ts index 2e192b1f..25192f94 100644 --- a/Mohem/src/app/profile/home/home.component.ts +++ b/Mohem/src/app/profile/home/home.component.ts @@ -51,8 +51,7 @@ export class HomeComponent implements OnInit { if(this.cs.getUpdateImage().status){ // this.imageSrc = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+this.cs.getUpdateImage().img); - this.imageSrc = "data:image/png;base64,"+this.cs.getUpdateImage().img; - // alert("this.imageSrc"+ this.imageSrc); + this.imageSrc =this.sanitizer.bypassSecurityTrustUrl("data:image/png;base64,"+this.cs.getUpdateImage().img); }else{ this.imageSrc = user.EMPLOYEE_IMAGE ? "data:image/png;base64," + user.EMPLOYEE_IMAGE diff --git a/Mohem/src/app/time-card/time-card-details/time-card-details.component.html b/Mohem/src/app/time-card/time-card-details/time-card-details.component.html index d2f9d80d..9eb7fe15 100644 --- a/Mohem/src/app/time-card/time-card-details/time-card-details.component.html +++ b/Mohem/src/app/time-card/time-card-details/time-card-details.component.html @@ -84,12 +84,8 @@
{{ts.trPK('attendance','monthly-attendance-calendar')}} diff --git a/Mohem/src/app/time-card/time-card-details/time-card-details.component.ts b/Mohem/src/app/time-card/time-card-details/time-card-details.component.ts index 8383911a..377dfbd3 100644 --- a/Mohem/src/app/time-card/time-card-details/time-card-details.component.ts +++ b/Mohem/src/app/time-card/time-card-details/time-card-details.component.ts @@ -53,9 +53,6 @@ export class TimeCardDetailsComponent implements OnInit { public attendedDays: number; public futrueDays = 0; public totalAttendancePrecentage = 0; - public arrDaysAttendance: any = []; - public arrDaysAbsent: any = []; - public arrDaysOff: any = []; public monthTitle: string = moment().format('MMMM'); public yearTitle: string; public isChange = false; @@ -64,7 +61,6 @@ export class TimeCardDetailsComponent implements OnInit { public showData = false; public currentYear = new Date().getFullYear(); public dayHoursTypeDetailsList = []; - public normalDays: any = []; public currentDate = new Date(); public options = { cutoutPercentage: 80, @@ -76,19 +72,11 @@ export class TimeCardDetailsComponent implements OnInit { ngOnInit() { this.showData = false; this.nextMonth = new Date().getMonth() + 2; - this.preMonth = new Date().getMonth() - 2; - if (this.preMonth < 0) { - this.preMonth = this.preMonth * - 1; - } else { - this.preMonth = this.preMonth * - 1; - } + this.preMonth = new Date().getMonth(); this.calendarConfig(this.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear()); } calendarConfig(month?, year?) { - this.arrDaysOff = []; - this.arrDaysAttendance = []; - this.arrDaysAbsent = []; this.month = month; this.year = year; this.getTimeCardSummaryDetails(month, year); @@ -118,7 +106,6 @@ export class TimeCardDetailsComponent implements OnInit { console.log(result.GetDayHoursTypeDetailsList); this.common.sharedService.setSharedData(result.GetDayHoursTypeDetailsList, 'RTP_IDs'); this.countAllAttendDays(result.GetDayHoursTypeDetailsList); - this.dayHoursTypeDetailsList = result.GetDayHoursTypeDetailsList; } }); @@ -129,48 +116,35 @@ export class TimeCardDetailsComponent implements OnInit { for (let i = 0; i < allDays.length; i++) { // tslint:disable-next-line: triple-equals if (allDays[i].ATTENDED_FLAG == 'Y') { - allDays[i].present = true; - allDays[i].absent = false; - allDays[i].daysOff = false; - allDays[i].schedule = false; - this.arrDaysAttendance.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE) - }); + allDays[i].customPresent = true; + allDays[i].customAbsent = false; + allDays[i].customDaysOff = false; + allDays[i].customSchedule = false; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); // tslint:disable-next-line: triple-equals } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].ABSENT_FLAG == 'Y') { - allDays[i].present = false; - allDays[i].absent = true; - allDays[i].daysOff = false; - allDays[i].schedule = false; - this.arrDaysAbsent.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE), - isoTime: '09:00:00', - allDay: false - }); + allDays[i].customPresent = false; + allDays[i].customAbsent = true; + allDays[i].customDaysOff = false; + allDays[i].customSchedule = false; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); // tslint:disable-next-line: triple-equals } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].DAY_TYPE === 'OFF') { - allDays[i].present = false; - allDays[i].absent = false; - allDays[i].daysOff = true; - allDays[i].schedule = false; - this.arrDaysOff.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE) - }); + allDays[i].customPresent = false; + allDays[i].customAbsent = false; + allDays[i].customDaysOff = true; + allDays[i].customSchedule = false; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); } else { - allDays[i].present = false; - allDays[i].absent = false; - allDays[i].daysOff = false; - allDays[i].schedule = true; - this.normalDays.push({ - startTime: new Date(allDays[i].SCHEDULE_DATE), - endTime: new Date(allDays[i].SCHEDULE_DATE) - }); + allDays[i].customPresent = false; + allDays[i].customAbsent = false; + allDays[i].customDaysOff = false; + allDays[i].customSchedule = true; + allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE); } } this.showData = true; + this.dayHoursTypeDetailsList = allDays; } public getTimeCardSummaryDetails(month?, year?) { @@ -218,9 +192,7 @@ export class TimeCardDetailsComponent implements OnInit { }); } - nextSlide() { - this.normalDays = []; if (this.currentMonthName !== this.month) { this.showData = false; if (this.nextMonth > 12) { @@ -235,7 +207,6 @@ export class TimeCardDetailsComponent implements OnInit { } previousSlide() { - this.normalDays = []; this.showData = false; if (this.preMonth === 0) { this.currentYear = this.currentYear - 1; diff --git a/Mohem/src/assets/imgs/box.png b/Mohem/src/assets/imgs/box.png new file mode 100644 index 00000000..a34ee59d Binary files /dev/null and b/Mohem/src/assets/imgs/box.png differ diff --git a/Mohem/src/assets/localization/i18n.json b/Mohem/src/assets/localization/i18n.json index 532df045..33d6dac0 100644 --- a/Mohem/src/assets/localization/i18n.json +++ b/Mohem/src/assets/localization/i18n.json @@ -767,7 +767,7 @@ "ar": "أنت تحاول حذف صف تم حذفه بالفعل." }, "noData": { - "en": "There are no requests", + "en": "No request found", "ar": "لا توجد طلبات" }, "noFileSelect": { diff --git a/Mohem/src/imgs/box.png b/Mohem/src/imgs/box.png new file mode 100644 index 00000000..a34ee59d Binary files /dev/null and b/Mohem/src/imgs/box.png differ diff --git a/Mohem/src/theme/styles.scss b/Mohem/src/theme/styles.scss index c3380444..47dcda26 100644 --- a/Mohem/src/theme/styles.scss +++ b/Mohem/src/theme/styles.scss @@ -868,9 +868,9 @@ div.no-dataDiv{ border-color:var(--cusgray); } h4 { -font-size: 2.2rem; +font-size: 140%; text-align: center; -color: var(--dark); +color: #888888; } .empty-data { @@ -1191,7 +1191,7 @@ border:0px // } .advanced-search-modal { - --height: 9cm !important; + --height: 12cm !important; --width: 88% !important; --border-radius: 0.6cm; } @@ -1277,19 +1277,16 @@ border:0px } -.advanced-search-modal { - --height: 12cm !important; +.advanced-search-modal-custom { + --height: 9cm !important; --width: 80% !important; --border-radius: 0.4cm; } .calendar-modal { - --height: 15cm !important; + --height: 13.5cm !important; --width: 88% !important; --border-radius: 0.4cm; - - // height: 544px !important; - // width: 332px !important; } @@ -1412,6 +1409,11 @@ table.monthview-datetable th small { border-radius: 20px !important; } +.disable-phone { + pointer-events: none; + opacity: .3; +} + // .replaceRoll-modal { // padding: 30% 1% !important;