all conflicting issues are resolved

arabic-version^2
Fatimah.Alshammari 6 years ago
commit 0871a67480

@ -58,6 +58,7 @@ export class HomeComponent implements OnInit {
public authService: AuthenticationService public authService: AuthenticationService
) { ) {
this.direction = TranslatorService.getCurrentDirection(); this.direction = TranslatorService.getCurrentDirection();
// this.userData =this.common.sharedService.getSharedData(AuthenticatedUser.SHARED_DATA,false);
} }
ngOnInit() { ngOnInit() {
@ -69,8 +70,8 @@ export class HomeComponent implements OnInit {
private getUserDetails(){ private getUserDetails(){
this.authService.loadAuthenticatedUser().subscribe((user: AuthenticatedUser) => { this.authService.loadAuthenticatedUser().subscribe((user: AuthenticatedUser) => {
if (user) { if (user) {
this.emp_no=user.EMPLOYEE_NUMBER; // this.emp_no=user.EMPLOYEE_NUMBER;
this.getAccrualBalance(); // this.getAccrualBalance();
} }
}); });
@ -239,7 +240,7 @@ createAbsence() {
let todayDate = month + '/' + day + '/' + year; let todayDate = month + '/' + day + '/' + year;
let effectiveDate = todayDate; let effectiveDate = todayDate;
const request = { const request = {
P_SELECTED_EMPLOYEE_NUMBER: this.emp_no, P_SELECTED_EMPLOYEE_NUMBER: this.selEmp,
P_EFFECTIVE_DATE: effectiveDate P_EFFECTIVE_DATE: effectiveDate
}; };

@ -118,6 +118,15 @@
</button> --> </button> -->
</ion-item> </ion-item>
<ion-item [hidden]="TeamFlag!='true'" (click)="openMyTeamPage()">
<ion-thumbnail slot="start" class="menu-thumb">
<img style= "height: 14px !important;" src="../assets/imgs/my_team_icon.png" item-left>
</ion-thumbnail>
<ion-label class="profile">
{{ts.trPK('myTeam','myTeam-header')}}
</ion-label>
</ion-item>
<!-- <ion-item (click)="profile()"> <!-- <ion-item (click)="profile()">
<ion-thumbnail slot="start" class="menu-thumb"> <ion-thumbnail slot="start" class="menu-thumb">
<img width="30" src="../assets/imgs/profile_icon.png" item-left> <img width="30" src="../assets/imgs/profile_icon.png" item-left>

@ -33,6 +33,7 @@ export class AppComponent implements OnInit, AfterViewInit {
DeviceType: string; DeviceToken: string; //this.deviceToken DeviceType: string; DeviceToken: string; //this.deviceToken
}; };
user: boolean; user: boolean;
TeamFlag :string = "false";
constructor( constructor(
public ts: TranslatorService, public ts: TranslatorService,
private cs: CommonService, private cs: CommonService,
@ -55,11 +56,13 @@ export class AppComponent implements OnInit, AfterViewInit {
} }
ngOnInit() { ngOnInit() {
this.initializeApp(); this.initializeApp();
} }
ngAfterViewInit() {} ngAfterViewInit() {}
initializeApp() { initializeApp() {
this.start = false; this.start = false;
this.menu.enable(false)
this.lazyLoadingService.monitorLazyLoading(15, true); this.lazyLoadingService.monitorLazyLoading(15, true);
this.platform.ready().then(() => { this.platform.ready().then(() => {
this.ts.loadResources(() => { this.ts.loadResources(() => {
@ -92,9 +95,13 @@ export class AppComponent implements OnInit, AfterViewInit {
? user.CompanyImageDescription ? user.CompanyImageDescription
: "Powered By Cloud Solutions"; : "Powered By Cloud Solutions";
this.User_name_Emp = user.EMPLOYEE_DISPLAY_NAME; 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 this.user_image = user.EMPLOYEE_IMAGE
? "data:image/png;base64," + user.EMPLOYEE_IMAGE ? "data:image/png;base64," + user.EMPLOYEE_IMAGE
: "../assets/imgs/profile.png"; : "../assets/imgs/profile.png";
}
this.User_Job_name=user.JOB_NAME; this.User_Job_name=user.JOB_NAME;
console.log(user); console.log(user);
@ -106,6 +113,11 @@ export class AppComponent implements OnInit, AfterViewInit {
this.events.subscribe("getNotCount", badge => { this.events.subscribe("getNotCount", badge => {
this.notBadge = badge; this.notBadge = badge;
}); });
this.events.subscribe('myTeamFlag', myTeamFlag => {
this.TeamFlag = myTeamFlag;
});
console.log("this.TeamFlag>>>>>>>>>"+ this.TeamFlag);
} }
private initializeDirection() { private initializeDirection() {
this.direction = TranslatorService.getCurrentDirection(); this.direction = TranslatorService.getCurrentDirection();
@ -130,6 +142,12 @@ export class AppComponent implements OnInit, AfterViewInit {
this.menu.toggle(); this.menu.toggle();
this.cs.openLogin(); this.cs.openLogin();
}
openMyTeamPage() {
this.menu.toggle();
this.cs.openMyTeamPage();
} }
// profile() { // profile() {
// this.cs.openProfile(); // this.cs.openProfile();

@ -13,11 +13,11 @@
[ngClass]="{'content-class':accessFromOutSide, 'ion-padding': !accessFromOutSide}" has-bouncing="false" forceOverscroll="false" scrollY="false" class="ion-no-padding"> [ngClass]="{'content-class':accessFromOutSide, 'ion-padding': !accessFromOutSide}" has-bouncing="false" forceOverscroll="false" scrollY="false" class="ion-no-padding">
<ion-grid class="ion-justify-content-center"> <ion-grid class="ion-justify-content-center">
<ion-row *ngIf="!accessFromOutSide"> <!-- <ion-row *ngIf="!accessFromOutSide">
<ion-col [size]="4"> <ion-col [size]="4">
<img [src]="logo" class="logo" /> <img [src]="logo" class="logo" />
</ion-col> </ion-col>
</ion-row> </ion-row> -->
<ion-row class="description" *ngIf="!accessFromOutSide"> <ion-row class="description" *ngIf="!accessFromOutSide">
<ion-col size="12"> <ion-col size="12">
<!-- <type-writer *ngIf="onlySMSBox" [text]="'login,verify-login-with' | translate" class="description" <!-- <type-writer *ngIf="onlySMSBox" [text]="'login,verify-login-with' | translate" class="description"

@ -634,23 +634,26 @@ export class ConfirmLoginComponent implements OnInit {
// this.deviceToken= this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false); // this.deviceToken= this.cs.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false);
let request = new GetLoginInfoRequest(); let request ={
DeviceType: this.cs.getDeviceType(),
this.authService.setPublicFields(request); DeviceToken:this.deviceToken
request.MobileNumber = this.loginData.MobileNumber; } ;
request.P_USER_NAME=this.loginData.P_USER_NAME; // this.authService.setPublicFields(request);
request.UserName=this.loginData.P_USER_NAME; // request.MobileNumber = this.loginData.MobileNumber;
request.LogInTokenID =this.loginData.LogInTokenID; // request.P_USER_NAME=this.loginData.P_USER_NAME;
request.CompanyID =1;//cs=1 , HMG=2 // request.UserName=this.loginData.P_USER_NAME;
request.DeviceType= this.cs.getDeviceType(); // request.LogInTokenID =this.loginData.LogInTokenID;
request.DeviceToken=this.deviceToken; // request.CompanyID =1;//cs=1 , HMG=2
@ -668,7 +671,7 @@ export class ConfirmLoginComponent implements OnInit {
private getMobileInfo(request: GetLoginInfoRequest) { private getMobileInfo(request: any) {
console.log("2"); console.log("2");
@ -790,7 +793,7 @@ export class ConfirmLoginComponent implements OnInit {
request.DeviceType= this.cs.getDeviceType(); request.DeviceType= this.cs.getDeviceType();
request.DeviceToken="5ca8a69cf1804db55264c349edffb99b9d63acd9fa9b6b18956bcb2ad3f2ba36";//this.deviceToken; request.DeviceToken=this.deviceToken;//"5ca8a69cf1804db55264c349edffb99b9d63acd9fa9b6b18956bcb2ad3f2ba36";//this.deviceToken;
//request.TokenID= //request.TokenID=

@ -19,13 +19,13 @@
</div> </div>
</ion-row> </ion-row>
<ion-row *ngIf="user "> <!-- <ion-row *ngIf="user ">
<ion-col [size]="4"> <ion-col [size]="4">
<img [src]="logo" class="logo" /> <img [src]="logo" class="logo" />
<!-- <ion-img class="centerDiv" src="../assets/imgs/CS.png"></ion-img> --> <ion-img class="centerDiv" src="../assets/imgs/CS.png"></ion-img>
</ion-col> </ion-col>
</ion-row> </ion-row> -->

@ -237,12 +237,12 @@ export class LoginComponent implements OnInit, OnDestroy {
console.log("success"); console.log("success");
this.cs.stopLoading(); this.cs.stopLoading();
if (this.cs.validResponse(result)) { if (this.cs.validResponse(result)) {
// alert("result.MemberLoginList.EMPLOYEE_NAME :" + result.MemberLoginList.EMPLOYEE_NAME); // alert("result.MemberLoginList.EMPLOYEE_NAME :" + result.MemberLoginList[0].EMPLOYEE_NAME);
this.loginData.LogInTokenID = result.LogInTokenID; this.loginData.LogInTokenID = result.LogInTokenID;
this.loginData.MobileNumber = result.MemberLoginList.P_MOBILE_NUMBER; this.loginData.MobileNumber = result.MemberLoginList.P_MOBILE_NUMBER;
this.loginData.P_USER_NAME = this.username; this.loginData.P_USER_NAME = this.username;
// this.loginData.EMPLOYEE_NAME =result.MemberLoginList[0].EMPLOYEE_NAME; // this.loginData.EMPLOYEE_NAME =result.MemberLoginList[0].EMPLOYEE_NAME;
this.sharedData.setSharedData(this.loginData, AuthenticationService.LOGIN_DATA); this.sharedData.setSharedData(this.loginData, AuthenticationService.LOGIN_DATA);
this.cs.sharedService.setSharedData(this.loginData.P_USER_NAME, LoginRequest.SHARED_DATA); this.cs.sharedService.setSharedData(this.loginData.P_USER_NAME, LoginRequest.SHARED_DATA);
this.remeberMyInfo(); this.remeberMyInfo();
@ -325,7 +325,7 @@ export class LoginComponent implements OnInit, OnDestroy {
console.log(result); console.log(result);
this.loginData.LogInTokenID = result.LogInTokenID; this.loginData.LogInTokenID = result.LogInTokenID;
this.loginData.P_USER_NAME = this.username; this.loginData.P_USER_NAME = this.username;
this.loginData.EmployeeName =result.MemberLoginList[0].EMPLOYEE_NAME; // this.loginData.EmployeeName =result.MemberLoginList[0].EMPLOYEE_NAME;
this.cs.sharedService.setSharedData(this.loginData.P_USER_NAME, LoginRequest.SHARED_DATA); this.cs.sharedService.setSharedData(this.loginData.P_USER_NAME, LoginRequest.SHARED_DATA);
this.sharedData.setSharedData(this.loginData, AuthenticationService.LOGIN_DATA); this.sharedData.setSharedData(this.loginData, AuthenticationService.LOGIN_DATA);

@ -9,13 +9,13 @@
<ion-content padding> <ion-content padding>
<ion-grid> <ion-grid>
<ion-row> <!-- <ion-row>
<ion-col [size]="4"> <ion-col [size]="4">
<img [src]="logo" class="logo" /> <img [src]="logo" class="logo" />
<!-- <ion-img class="centerDiv" src="../assets/imgs/CS.png"></ion-img> --> <ion-img class="centerDiv" src="../assets/imgs/CS.png"></ion-img>
</ion-col> </ion-col>
</ion-row> </ion-row> -->
<br/> <br/>
<br/> <br/>
<ion-row> <ion-row>

@ -496,9 +496,13 @@ console.log("successful insertMobileLogin" );
const key = e.which; const key = e.which;
const t = e.target; const t = e.target;
let sib = t.nextElementSibling; let sib = t.nextElementSibling;
let sibPre =t.previousElementSibling;
if (key !== 9 && (key < 48 || key > 57)) { if (key !== 9 && (key < 48 || key > 57)) {
if (key === 8 || key === 46) { if (key === 8 || key === 46) {
return true; return true;
} else { } else {
e.preventDefault(); e.preventDefault();
@ -509,11 +513,13 @@ console.log("successful insertMobileLogin" );
if (key === 9) { if (key === 9) {
return true; return true;
} }
if (sib) { if (sib) {
//sib = document.querySelector('input'); //sib = document.querySelector('input');
if (e.target.value) { if (e.target.value ==="") {
sibPre.setFocus()}
else{
sib.setFocus(); sib.setFocus();
}
} }
} }
// } else { // } else {
@ -523,6 +529,6 @@ console.log("successful insertMobileLogin" );
}
} }

@ -1,11 +1,3 @@
// .modalCss .modal-Wrapper {
// width: 600px;
// height: 300px;
// }
.chart-modal .modal-Wrapper { .chart-modal .modal-Wrapper {
--background: rgb(116, 108, 108) !important; --background: rgb(116, 108, 108) !important;
--border-color:white!important ; --border-color:white!important ;
@ -18,12 +10,9 @@
font-size: 10px !important; font-size: 10px !important;
--background: #22C6B3 !important; --background: #22C6B3 !important;
color: aliceblue !important; color: aliceblue !important;
// margin-top: 10px !important;
} }
.menu{ .menu {
// margin-left:330px !important;
margin-top: 0px !important; margin-top: 0px !important;
font-size: 35px !important; font-size: 35px !important;
background: #22C6B3; background: #22C6B3;
@ -33,7 +22,6 @@
} }
.person{ .person{
margin-left:100px !important; margin-left:100px !important;
margin-top: 0px !important; margin-top: 0px !important;
font-size: 23px !important; font-size: 23px !important;
@ -43,20 +31,19 @@
} }
.grid{ .grid{
margin-bottom: 550px !important; margin-bottom: 550px !important;
margin-top: 20px !important; margin-top: 20px !important;
margin-left: 15px !important; margin-left: 15px !important;
margin-right: 15px !important; margin-right: 15px !important;
background-color:white !important; background-color:white !important;
border-radius: 20px !important; border-radius: 20px !important;
height: 250px !important; height: 250px !important;
} }
.ionSliders{ .ionSliders{
margin: 0px !important; margin: 0px !important;
padding: 0px !important; padding: 0px !important;
}
}
.ionSlide{ .ionSlide{

@ -17,11 +17,6 @@ import { GetSwipesRequest } from 'src/app/time-card/service/models/get-swipes-re
styleUrls: ['./circle-calendar.component.scss'] styleUrls: ['./circle-calendar.component.scss']
}) })
export class CircleCalendarComponent implements OnInit { export class CircleCalendarComponent implements OnInit {
@Input() eventsdateDayOff: any = [];
@Input() eventsdateAttend: any = [];
@Input() eventsdateAbsent: any = [];
@Input() normalDays: any = [];
@Input() dayHoursTypeDetailsList: any = []; @Input() dayHoursTypeDetailsList: any = [];
@Input() currentDateParent: string; @Input() currentDateParent: string;
@Output() monthTitle = new EventEmitter(); @Output() monthTitle = new EventEmitter();
@ -86,10 +81,7 @@ export class CircleCalendarComponent implements OnInit {
} }
reRenderCalendar() { reRenderCalendar() {
this.renderDate(this.eventsdateAbsent, 'absent'); this.renderDate(this.dayHoursTypeDetailsList);
this.renderDate(this.eventsdateAttend, 'present');
this.renderDate(this.eventsdateDayOff, 'dayoff');
this.renderDate(this.normalDays, 'scheduleDay');
} }
public async dateModal(shiftDetails) { public async dateModal(shiftDetails) {
@ -106,14 +98,23 @@ export class CircleCalendarComponent implements OnInit {
await modal.present(); await modal.present();
} }
public renderDate(arrayDays, cssClass) { public renderDate(arrayDays) {
const td = document.querySelectorAll('.swiper-slide-active .monthview-datetable td:not(.text-muted)'); const td = document.querySelectorAll('.swiper-slide-active .monthview-datetable td:not(.text-muted)');
arrayDays.forEach(dateObj => { arrayDays.forEach(dateObj => {
const date = dateObj.startTime; const date = dateObj.customScheduleDate;
td.forEach(element => { td.forEach(element => {
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
if (date.getDate() == element.textContent.trim()) { if (date.getDate() == element.textContent.trim() && dateObj.customPresent === true) {
element.classList.add(cssClass); 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()); console.log(event.selectedTime.getDate());
const selectedIndex = event.selectedTime.getDate(); const selectedIndex = event.selectedTime.getDate();
this.selectedIndexData = this.dayHoursTypeDetailsList[selectedIndex - 1]; this.selectedIndexData = this.dayHoursTypeDetailsList[selectedIndex - 1];
if (this.selectedIndexData.present) { if (this.selectedIndexData.customPresent) {
const rtpID = this.selectedIndexData.RTP_ID; const rtpID = this.selectedIndexData.RTP_ID;
this.getScheduleShiftDetails(rtpID); this.getScheduleShiftDetails(rtpID);
} }

@ -1,104 +1,100 @@
<ion-content>
<!-- <ion-slides [options]="slideOptsOne" (ionSlideDidChange)="slideChanged($event)"> <ion-slides [options]="slideOptsOne" (ionSlideDidChange)="slideChanged($event)" #slides>
<ion-slide *ngFor="let shift of SHIFTDETAILS.GetScheduleShiftsDetailsList; let i=index"> --> <ion-slide *ngFor="let shift of SHIFTDETAILS.GetScheduleShiftsDetailsList; let i=index">
<!-- <div> --> <ion-grid class="headerGrid">
<ion-grid class="headerGrid"> <ion-row style="padding: 5px 10px;">
<ion-row style="margin-left: -130px; margin-top: 27px;"> <ion-col size="8">
<ion-col size="10"> <div style="width: 100%;">
<div style="width: 100%;"> <div class="result-graph">
<div class="result-graph"> <div class="result-text-container">
<div [ngClass]=" direction == 'ltr' ? 'result-text-container' : 'result-text-container-ar'"> <h2 class="percentage">{{percentage}}</h2>
<h2 class="percentage">{{percentage}}</h2> <span>Completed <br><br><br><br></span>
<span>Completed <br><br><br><br></span> </div>
<p-chart class="today-graph" type="doughnut" [data]="data" [options]="options"></p-chart>
</div> </div>
<p-chart [ngClass]=" direction == 'ltr' ? 'today-graph' : 'today-graph-ar'" type="doughnut" [data]="data" [options]="options"></p-chart> </div>
</div> </ion-col>
</div> <ion-col size="4">
</ion-col> <div class="div" >
<ion-col size="2"> <ion-row >
<div [ngClass]=" direction == 'ltr' ? 'div' : 'div-ar'"> <p class="p0">{{nameDay}}</p>
</ion-row>
<ion-row >
<p class="p1">{{day}}</p>
</ion-row>
<ion-row > <ion-row >
<p class="p0">{{nameDay}}</p> <p class="p2">{{nameMonth}}</p>
</ion-row> </ion-row>
<ion-row > <ion-row >
<p class="p1">{{day}}</p> <p class="p3">{{year}}</p>
</ion-row> </ion-row>
<ion-row > <ion-row>
<p [ngClass]="direction == 'ltr' ? 'p2':'p2-ar' ">{{nameMonth}}</p> <p class="p5">{{ts.trPK('attendance','present')}}</p>
</ion-row> </ion-row>
<ion-row > </div>
<p [ngClass]="direction == 'ltr' ? 'p3':'p3-ar' "class="p3">{{year}}</p> </ion-col>
</ion-row> </ion-row>
<ion-row>
<p class="p5">{{ts.trPK('attendance','present')}}</p>
</ion-row>
</div>
</ion-col>
</ion-row>
</ion-grid>
<div>
<ion-grid class="grid">
<ion-row class="gridrow"> <ion-row class="gridrow">
<ion-col [ngClass]=" direction == 'ltr' ? 'liftcol' : 'liftcol-ar'"> <ion-col [size]="6" style="border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">
<ion-row class="amountlabel"> <p>{{shiftTime}}</p> </ion-row> <ion-row class="amountlabel"> <p>{{shiftTime}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p >{{ts.trPK('attendance-tracking','shift-time')}}</p> <p >{{ts.trPK('attendance-tracking','shift-time')}}</p>
</ion-row> </ion-row>
</ion-col> </ion-col>
<ion-col class="rightcol">
<ion-col [size]="6" style="border-bottom: 1px solid #ccc;">
<ion-row class="amountlabel"><p >{{scheduled}}</p> </ion-row> <ion-row class="amountlabel"><p >{{scheduled}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p >{{ts.trPK('attendance-tracking','regular')}}</p> <p >{{ts.trPK('attendance-tracking','regular')}}</p>
</ion-row> </ion-row>
</ion-col> </ion-col>
</ion-row>
<ion-row class="gridrow" >
<ion-col [ngClass]=" direction == 'ltr' ? 'liftcol' : 'liftcol-ar'"> <ion-col [size]="6" style="border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">
<ion-row class="amountlabel"><p >{{startDate}}</p> </ion-row> <ion-row class="amountlabel"><p >{{startDate}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p >{{ts.trPK('attendance-tracking','check-in')}}</p> <p >{{ts.trPK('attendance-tracking','check-in')}}</p>
</ion-row> </ion-row>
</ion-col> </ion-col>
<ion-col class="rightcol">
<ion-col [size]="6" style="border-bottom: 1px solid #ccc;">
<ion-row class="amountlabel"> <p >{{endDate}}</p> </ion-row> <ion-row class="amountlabel"> <p >{{endDate}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p >{{ts.trPK('attendance-tracking','check-out')}} </p> <p >{{ts.trPK('attendance-tracking','check-out')}} </p>
</ion-row> </ion-row>
</ion-col> </ion-col>
</ion-row >
<ion-row class="gridrow"> <ion-col [size]="6" style="border-bottom: 1px solid #ccc; border-right: 1px solid #ccc;">
<ion-col [ngClass]=" direction == 'ltr' ? 'liftcol' : 'liftcol-ar'">
<ion-row class="amountlabel"> <p >{{lateIn}}</p> </ion-row> <ion-row class="amountlabel"> <p >{{lateIn}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p >{{ts.trPK('attendance-tracking','late-in')}}</p> <p >{{ts.trPK('attendance-tracking','late-in')}}</p>
</ion-row> </ion-row>
</ion-col> </ion-col>
<ion-col class="rightcol">
<ion-col [size]="6" style="border-bottom: 1px solid #ccc;">
<ion-row class="amountlabel"> <p >{{excess}}</p> </ion-row> <ion-row class="amountlabel"> <p >{{excess}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p >{{ts.trPK('attendance-tracking','excess')}}</p> <p >{{ts.trPK('attendance-tracking','excess')}}</p>
</ion-row> </ion-row>
</ion-col> </ion-col>
</ion-row>
<ion-row class="gridrow"> <ion-col [size]="6" style="border-right: 1px solid #ccc;">
<ion-col [ngClass]=" direction == 'ltr' ? 'liftcol' : 'liftcol-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>
</ion-row> </ion-row>
</ion-col> </ion-col>
<ion-col class="rightcol">
<ion-col [size]="6">
<ion-row class="amountlabel"> <p >{{earlyOut}}</p> </ion-row> <ion-row class="amountlabel"> <p >{{earlyOut}}</p> </ion-row>
<ion-row class="rowlabel"> <ion-row class="rowlabel">
<p >{{ts.trPK('attendance-tracking','early-out')}}</p> <p >{{ts.trPK('attendance-tracking','early-out')}}</p>
</ion-row> </ion-row>
</ion-col> </ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>
</div> </ion-slide>
<!-- </div> --> </ion-slides>
</ion-content>
<!-- </ion-slide>
</ion-slides> -->

@ -1,54 +1,23 @@
.result-text-container { .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; padding: 0;
margin: 0; margin: 0;
position: absolute; position: absolute;
left: 58%; left: 42%;
top: 67%; top: 60%;
display: block; display: block;
text-align: center; text-align: center;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
h2 { h2 {
font-size: 25px; font-size: 25px;
// font-family: WorkSans-Bold;
font-weight: bold; font-weight: bold;
margin: 0 auto; margin: 0 auto;
line-height: 36px; line-height: 36px;
} }
span { span {
width: 125px; width: 125px;
display: block; display: block;
margin: 0 auto; margin: 0 auto;
font-size: 12px; font-size: 12px;
font-family: workSans-Regular; font-family: workSans-Regular;
color: rgb(163, 163, 163) !important; color: rgb(163, 163, 163) !important;
} }
@ -95,7 +64,8 @@
.today-graph{ .today-graph{
display: block; display: block;
height: 127px; height: 127px;
width: 288px; width: 270px;
margin-left: -60px;
} }
.today-graph-ar{ .today-graph-ar{
@ -105,17 +75,22 @@
margin-left: -18px; margin-left: -18px;
} }
.amountlabel{ .amountlabel{
color: black !important; color: black !important;
font-weight: bold !important; font-weight: bold !important;
font-size: 13px !important; font-size: 13px !important;
// border-top: 1px solid rgb(163, 163, 163) !important; margin-bottom: -29px !important;
margin-left: 0px !important; width: 100%;
margin-bottom: -29px !important; display: block;
text-align: center;
} }
.rowlabel{ .rowlabel{
color: rgb(163, 163, 163) !important; color: #a3a3a3 !important;
font-size: 13px !important; font-size: 13px !important;
font-family: WorkSans-Bold; font-family: WorkSans-Bold;
display: block;
width: 100%;
text-align: center;
padding: 1px;
} }
.grid{ .grid{
padding-bottom: -20px !important; padding-bottom: -20px !important;
@ -143,18 +118,9 @@ height: 360px !important;
} }
.div{ .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: 1px solid #a3a3a3 !important;
border-radius: 9px; border-radius: 10px;
width: 241%; margin-bottom:10px;
margin-right: -226px;
} }
.div-ar{ .div-ar{
border: 1px solid #a3a3a3 !important; border: 1px solid #a3a3a3 !important;
@ -166,7 +132,7 @@ height: 360px !important;
margin-bottom: -13px !important; margin-bottom: -13px !important;
color: black !important; color: black !important;
font-weight: bold !important; font-weight: bold !important;
font-size: 15px !important; font-size: 14px !important;
margin-top: 8px; margin-top: 8px;
text-align: center; text-align: center;
display: block; display: block;
@ -182,20 +148,25 @@ height: 360px !important;
display: block; display: block;
width: 100%; width: 100%;
} }
.p2{ font-weight: bold !important; .p2{
font-weight: bold !important;
font-size: 17px !important; font-size: 17px !important;
margin-bottom: 43px !important; margin-bottom: 43px !important;
margin-top: 0px !important; margin-top: 0px !important;
color: black !important; color: black !important;
font-weight: bold !important; font-weight: bold !important;
margin-left: 33px; text-align: center;
} display: block;
.p3{ /* margin-bottom: -72px !important; */ width: 100%;
}
.p3{
color: black !important; color: black !important;
font-weight: bold !important; font-weight: bold !important;
font-size: 19px; font-size: 19px;
margin-top: -43px; margin-top: -43px;
margin-left: 27px; text-align: center;
display: block;
width: 100%;
} }
.p2-ar{ font-weight: bold !important; .p2-ar{ font-weight: bold !important;
@ -228,23 +199,7 @@ height: 360px !important;
height: 21px; height: 21px;
width: 110px; width: 110px;
padding-top: 7px; padding-top: 7px;
/* font-family: WorkSans-Bold !important; */
padding-bottom: 21px; padding-bottom: 21px;
border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;
border-bottom-right-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;
// }

@ -100,7 +100,7 @@ export class DateInfoModalComponent implements OnInit {
slideChanged(ev) { slideChanged(ev) {
this.slides.getActiveIndex().then(index => { this.slides.getActiveIndex().then(index => {
const shiftDetails = this.SHIFTDETAILS[index]; const shiftDetails = this.SHIFTDETAILS.GetScheduleShiftsDetailsList[index];
this.assignData(shiftDetails); this.assignData(shiftDetails);
}); });
} }

@ -1,6 +1,6 @@
<div class="team-member-container"> <div class="team-member-container">
<ion-row> <ion-row>
<ion-col [size]="3"> <ion-col [size]="3" (click)="getDetails()">
<div class="user-image-container"> <div class="user-image-container">
<div class="user-image"> <div class="user-image">
<img [src]="employeeImage" alt="Team Member Image"/> <img [src]="employeeImage" alt="Team Member Image"/>
@ -9,11 +9,11 @@
</ion-col> </ion-col>
<ion-col [size]="9" style="padding: 8px 5px 0px;margin-top: 14px;"> <ion-col [size]="9" style="padding: 8px 5px 0px;margin-top: 14px;">
<div> <div>
<span class="employee-name"> <span class="employee-name" (click)="getDetails()">
<h2 class="name">{{name}}</h2> <h2 class="name">{{name}}</h2>
<span class="title">{{title}}</span> <span class="title">{{title}}</span>
</span> </span>
<a class="image-container" href="tel:{{employeePhoneNumber}}"> <a [ngClass]="employeePhoneNumber == '' ? 'disable-phone image-container' : 'image-container'" href="tel:{{employeePhoneNumber}}">
<img src="../assets/imgs/green_call_icon.png" > <img src="../assets/imgs/green_call_icon.png" >
</a> </a>
</div> </div>

@ -1,4 +1,4 @@
import { Component, OnInit, Input } from '@angular/core'; import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';
@Component({ @Component({
selector: 'app-employee-information', selector: 'app-employee-information',
@ -12,10 +12,15 @@ export class EmployeeInformationComponent implements OnInit {
@Input() title: string; @Input() title: string;
@Input() employeeImage: string; @Input() employeeImage: string;
@Input() employeePhoneNumber: string; @Input() employeePhoneNumber: string;
// tslint:disable-next-line: no-output-on-prefix
@Output() onGetDetails = new EventEmitter();
constructor() { } constructor() { }
ngOnInit() {} ngOnInit() {}
getDetails() {
this.onGetDetails.emit();
}
} }

@ -87,7 +87,7 @@ export class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy {
false false
); );
console.log( this.user);
this.userName = localStorage.getItem("user"); this.userName = localStorage.getItem("user");
this.password = localStorage.getItem("password"); this.password = localStorage.getItem("password");
@ -96,6 +96,8 @@ export class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy {
this.logintype= localStorage.getItem("login-type"); this.logintype= localStorage.getItem("login-type");
this.lastLoginDate= localStorage.getItem("login-at"); this.lastLoginDate= localStorage.getItem("login-at");
// this.lastLoginDate= new Date(this.lastLoginDate).toISOString() // this.lastLoginDate= new Date(this.lastLoginDate).toISOString()
@ -185,7 +187,7 @@ export class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy {
console.log(this.confimLogin.buttons[0]); console.log(this.confimLogin.buttons[0]);
this.confimLogin.buttons[0].forEach(element => { this.confimLogin.buttons[0].forEach(element => {
if (this.logintype === element.value) { if (this.user.LoginType === element.value) {
console.log(this.logintype ); console.log(this.logintype );
console.log(element.value); console.log(element.value);
console.log("this.logintype === element.value"); console.log("this.logintype === element.value");
@ -199,7 +201,7 @@ export class WelcomeComponent implements OnInit, AfterViewInit, OnDestroy {
}); });
} }
}, 200); }, 100);
} }
public moreLoginOptions() {} public moreLoginOptions() {}

@ -64,13 +64,6 @@
[icon]="subMenu.ICON"> [icon]="subMenu.ICON">
</app-services-button> </app-services-button>
</ion-slide> </ion-slide>
<ion-slide *ngIf="i == 0">
<app-services-button
(click)="openMyTeamPage()"
[title]="myTeamTitle"
>
</app-services-button>
</ion-slide>
<ion-slide *ngIf="i == 2"> <ion-slide *ngIf="i == 2">
<app-services-button <app-services-button
(click)="Vacation_Rule()" (click)="Vacation_Rule()"

@ -189,6 +189,13 @@ export class HomePage implements OnInit {
// this.vacationRuleIcon="assets/icon/new-design/vacation_rules_icon.png" // this.vacationRuleIcon="assets/icon/new-design/vacation_rules_icon.png"
this.menu.enable(true)
// this.getUserDetails();
// this.getCount();
this.events.subscribe('getNotCount', badge => {
this.notBadge = badge;
});
} }
ionViewWillEnter() { ionViewWillEnter() {
@ -330,9 +337,13 @@ export class HomePage implements OnInit {
this.userData, this.userData,
AuthenticatedUser.SHARED_DATA 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 this.userImage = user.EMPLOYEE_IMAGE
? 'data:image/png;base64,' + user.EMPLOYEE_IMAGE ? 'data:image/png;base64,' + user.EMPLOYEE_IMAGE
: this.userImage; : this.userImage;
}
this.callDashboardServices(); this.callDashboardServices();
} else { } else {
console.log(user); console.log(user);
@ -385,6 +396,12 @@ export class HomePage implements OnInit {
console.log("menu: " + selMenu.List_Menu); console.log("menu: " + selMenu.List_Menu);
this.common.sharedService.setSharedData(selMenu, MenuResponse.SHARED_DATA); this.common.sharedService.setSharedData(selMenu, MenuResponse.SHARED_DATA);
this.getMenuEntries(item); this.getMenuEntries(item);
for(let i=0;i<this.menuList.length;i++){
if(this.menuList[i].MENU_TYPE=="M"){
this.events.publish("myTeamFlag","true");
}
}
// if (item.MENU_TYPE === 'M') { // if (item.MENU_TYPE === 'M') {
// this.common.openMyTeamPage(); // this.common.openMyTeamPage();
// // this.navCtrl.push("MySubordinatePage"); // // this.navCtrl.push("MySubordinatePage");

@ -23,7 +23,7 @@
<ion-row class="ion-justify-content-center"> <ion-row class="ion-justify-content-center">
<ion-col [size]="4"> <ion-col [size]="4">
<div class="action-button col-button"> <div class="action-button col-button">
<a class="action-button-icon" href="tel:{{employee.EMPLOYEE_MOBILE_NUMBER}}"> <a [ngClass]="employee.EMPLOYEE_MOBILE_NUMBER == '' ? 'disable-phone action-button-icon' : 'action-button-icon'" href="tel:{{employee.EMPLOYEE_MOBILE_NUMBER}}">
<img src="../assets/imgs/call_icon.png"> <img src="../assets/imgs/call_icon.png">
</a> </a>
<span>Call</span> <span>Call</span>
@ -174,12 +174,8 @@
<div *ngIf="showData" class="calendar-container"> <div *ngIf="showData" class="calendar-container">
<span> {{ts.trPK('attendance','monthly-attendance-calendar')}}</span> <span> {{ts.trPK('attendance','monthly-attendance-calendar')}}</span>
<app-circle-calendar <app-circle-calendar
[eventsdateAttend]='arrDaysAttendance'
[eventsdateAbsent]='arrDaysAbsent'
[eventsdateDayOff]='arrDaysOff'
[currentDateParent]="currentDate" [currentDateParent]="currentDate"
[dayHoursTypeDetailsList]="dayHoursTypeDetailsList" [dayHoursTypeDetailsList]="dayHoursTypeDetailsList"
[normalDays]="normalDays"
(monthTitle)='changeMonthTitle($event)' (monthTitle)='changeMonthTitle($event)'
(currentYear)=changeYear($event)> (currentYear)=changeYear($event)>
</app-circle-calendar> </app-circle-calendar>
@ -223,7 +219,7 @@
[title]="subordinate.POSITION_NAME" [title]="subordinate.POSITION_NAME"
[employeeImage]="subordinate.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+subordinate.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" [employeeImage]="subordinate.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+subordinate.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'"
[employeePhoneNumber]="subordinate.EMPLOYEE_MOBILE_NUMBER" [employeePhoneNumber]="subordinate.EMPLOYEE_MOBILE_NUMBER"
(click)="getDetails(i)"> (onGetDetails)="getDetails(i)">
</app-employee-information> </app-employee-information>
</ng-container> </ng-container>

@ -54,10 +54,6 @@ export class DetailsComponent implements OnInit {
public attendedDays: number; public attendedDays: number;
public futrueDays = 0; public futrueDays = 0;
public totalAttendancePrecentage = 0; public totalAttendancePrecentage = 0;
public arrDaysAttendance: any = [];
public arrDaysAbsent: any = [];
public arrDaysOff: any = [];
public normalDays: any = [];
public monthTitle: string = moment().format('MMMM'); public monthTitle: string = moment().format('MMMM');
public yearTitle: string; public yearTitle: string;
public activeMonth: any; public activeMonth: any;
@ -120,7 +116,6 @@ export class DetailsComponent implements OnInit {
public segmentChanged(event: any) { public segmentChanged(event: any) {
this.activeSegment = event.detail.value; this.activeSegment = event.detail.value;
if (this.activeSegment === 'Attendance') { if (this.activeSegment === 'Attendance') {
this.normalDays = [];
this.initAttendance(); this.initAttendance();
} }
} }
@ -132,19 +127,11 @@ export class DetailsComponent implements OnInit {
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() - 2; this.preMonth = new Date().getMonth();
if (this.preMonth < 0) {
this.preMonth = this.preMonth * - 1;
} else {
this.preMonth = this.preMonth * - 1;
}
this.calendarConfig(this.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear()); this.calendarConfig(this.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear());
} }
calendarConfig(month?, year?) { calendarConfig(month?, year?) {
this.arrDaysOff = [];
this.arrDaysAttendance = [];
this.arrDaysAbsent = [];
this.month = month; this.month = month;
this.year = year; this.year = year;
this.getTimeCardSummaryDetails(month, year); this.getTimeCardSummaryDetails(month, year);
@ -174,14 +161,12 @@ export class DetailsComponent implements OnInit {
console.log(result.GetDayHoursTypeDetailsList); 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);
this.dayHoursTypeDetailsList = result.GetDayHoursTypeDetailsList;
} }
}); });
} }
nextSlide() { nextSlide() {
this.normalDays = [];
if (this.currentMonthName !== this.month) { if (this.currentMonthName !== this.month) {
this.showData = false; this.showData = false;
if (this.nextMonth > 12) { if (this.nextMonth > 12) {
@ -196,7 +181,6 @@ export class DetailsComponent implements OnInit {
} }
previousSlide() { previousSlide() {
this.normalDays = [];
this.showData = false; this.showData = false;
if (this.preMonth === 0) { if (this.preMonth === 0) {
this.currentYear = this.currentYear - 1; this.currentYear = this.currentYear - 1;
@ -210,6 +194,7 @@ export class DetailsComponent implements OnInit {
} }
changeMonthTitle(title) { changeMonthTitle(title) {
this.monthTitle = title; this.monthTitle = title;
this.getTimeCardSummaryDetails(); this.getTimeCardSummaryDetails();
@ -223,48 +208,35 @@ export class DetailsComponent implements OnInit {
for (let i = 0; i < allDays.length; i++) { for (let i = 0; i < allDays.length; i++) {
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
if (allDays[i].ATTENDED_FLAG == 'Y') { if (allDays[i].ATTENDED_FLAG == 'Y') {
allDays[i].present = true; allDays[i].customPresent = true;
allDays[i].absent = false; allDays[i].customAbsent = false;
allDays[i].daysOff = false; allDays[i].customDaysOff = false;
allDays[i].schedule = false; allDays[i].customSchedule = false;
this.arrDaysAttendance.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE)
});
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
} else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].ABSENT_FLAG == 'Y') { } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].ABSENT_FLAG == 'Y') {
allDays[i].present = false; allDays[i].customPresent = false;
allDays[i].absent = true; allDays[i].customAbsent = true;
allDays[i].daysOff = false; allDays[i].customDaysOff = false;
allDays[i].schedule = false; allDays[i].customSchedule = false;
this.arrDaysAbsent.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE),
isoTime: '09:00:00',
allDay: false
});
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
} else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].DAY_TYPE === 'OFF') { } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].DAY_TYPE === 'OFF') {
allDays[i].present = false; allDays[i].customPresent = false;
allDays[i].absent = false; allDays[i].customAbsent = false;
allDays[i].daysOff = true; allDays[i].customDaysOff = true;
allDays[i].schedule = false; allDays[i].customSchedule = false;
this.arrDaysOff.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE)
});
} else { } else {
allDays[i].present = false; allDays[i].customPresent = false;
allDays[i].absent = false; allDays[i].customAbsent = false;
allDays[i].daysOff = false; allDays[i].customDaysOff = false;
allDays[i].schedule = true; allDays[i].customSchedule = true;
this.normalDays.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE)
});
} }
} }
this.showData = true; this.showData = true;
this.dayHoursTypeDetailsList = allDays;
} }
public getTimeCardSummaryDetails(month?, year?) { public getTimeCardSummaryDetails(month?, year?) {

@ -70,7 +70,7 @@
[title]="subordinate.POSITION_NAME" [title]="subordinate.POSITION_NAME"
[employeeImage]="subordinate.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+subordinate.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" [employeeImage]="subordinate.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+subordinate.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'"
[employeePhoneNumber]="subordinate.EMPLOYEE_MOBILE_NUMBER" [employeePhoneNumber]="subordinate.EMPLOYEE_MOBILE_NUMBER"
(click)="getDetails(i)"> (onGetDetails)="getDetails(i)">
</app-employee-information> </app-employee-information>
</ng-container> </ng-container>

@ -260,6 +260,8 @@
<div *ngIf="GetPaymentInformationList !=''"> <div *ngIf="GetPaymentInformationList !=''">
<div class="hrTitle"> {{ts.trPK('payslip','payment-information')}} </div> <div class="hrTitle"> {{ts.trPK('payslip','payment-information')}} </div>
<div *ngIf="GetPaymentInformationList !=''">
<div *ngFor="let paymentInfo of GetPaymentInformationList">
<ion-grid class="grids" > <ion-grid class="grids" >
<ion-row class="rowtables"> <ion-row class="rowtables">
<ion-col class="colPayslips"> <ion-col class="colPayslips">
@ -268,7 +270,7 @@
</ion-row> </ion-row>
<ion-row> <ion-row>
<label class="label" for="">{{GetPaymentInformationList.PAYMENT_METHOD_NAME}}</label> <label class="label" for="">{{paymentInfo.PAYMENT_METHOD_NAME}}</label>
</ion-row> </ion-row>
</ion-col> </ion-col>
@ -279,7 +281,7 @@
<label class="label" for="">{{ts.trPK('payslip','bank-name')}} </label> <label class="label" for="">{{ts.trPK('payslip','bank-name')}} </label>
</ion-row> </ion-row>
<ion-row > <ion-row >
<label class="label" for="">{{GetPaymentInformationList.BANK_NAME}}</label> <label class="label" for="">{{paymentInfo.BANK_NAME}}</label>
</ion-row> </ion-row>
</ion-col> </ion-col>
<ion-col class="colPayslips"> <ion-col class="colPayslips">
@ -288,7 +290,7 @@
</label> </label>
</ion-row> </ion-row>
<ion-row > <ion-row >
<label class="label" for="">{{GetPaymentInformationList.BRANCH_NAME}}</label> <label class="label" for="">{{paymentInfo.BRANCH_NAME}}</label>
</ion-row> </ion-row>
</ion-col> </ion-col>
</ion-row> </ion-row>
@ -300,7 +302,7 @@
</label> </label>
</ion-row> </ion-row>
<ion-row > <ion-row >
<label class="label" for="">{{GetPaymentInformationList.ACCOUNT_NUMBER}}</label> <label class="label" for="">{{paymentInfo.ACCOUNT_NUMBER}}</label>
</ion-row> </ion-row>
</ion-col> </ion-col>
<ion-col class="colPayslips"> <ion-col class="colPayslips">
@ -309,10 +311,11 @@
</label> </label>
</ion-row> </ion-row>
<ion-row > <ion-row >
<label class="label" for="">{{GetPaymentInformationList.AMOUNT}}</label> <label class="label" for="">{{paymentInfo.AMOUNT}}</label>
</ion-row> </ion-row>
</ion-col> </ion-col>
</ion-row> </ion-row>
</ion-grid> </ion-grid>
</div> </div>
</div>
</ion-content> </ion-content>

@ -262,7 +262,7 @@ getPaymentInfo(ActionContextID){
handleGetPaymentInfoResult(result){ handleGetPaymentInfoResult(result){
if (result.GetPaymentInformationList != null) { if (result.GetPaymentInformationList != null) {
this.GetPaymentInformationList = result.GetPaymentInformationList[0]; this.GetPaymentInformationList = result.GetPaymentInformationList;
} }
} }

@ -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 { PerformanceAppraisalResponse } from 'src/app/hmg-common/services/dashbored/performance-appraisal.response';
import { DashboredService } from 'src/app/hmg-common/services/dashbored/dashbored.service'; 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 { 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'; // import { DomSanitizer } from '@angular/platform-browser';
@ -35,18 +36,20 @@ export class EditProfileComponent implements OnInit {
public cs: CommonService, public cs: CommonService,
public authService: AuthenticationService, public authService: AuthenticationService,
public DS :DashboredService, public DS :DashboredService,
public sharedData: SharedDataService public sharedData: SharedDataService,
public events: Events,
private sanitizer: DomSanitizer,
// private events: Events, // private events: Events,
// private sanitizer: DomSanitizer, // private sanitizer: DomSanitizer,
) )
{ {
this.direction = TranslatorService.getCurrentDirection(); this.direction = TranslatorService.getCurrentDirection();
// this.events.subscribe("img-change", displayImg => { this.events.subscribe("img-change", displayImg => {
// console.log("app compont: "+displayImg); console.log("app compont: "+displayImg);
// this.user_image = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+displayImg); this.user_image = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+displayImg);
// }); });
} }
@ -64,9 +67,13 @@ export class EditProfileComponent implements OnInit {
this.personalInfo = user; this.personalInfo = user;
this.User_name_Emp=this.personalInfo.EMPLOYEE_NAME; this.User_name_Emp=this.personalInfo.EMPLOYEE_NAME;
this.User_Job_name=this.personalInfo.JOB_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 this.user_image = user.EMPLOYEE_IMAGE
? "data:image/png;base64," + user.EMPLOYEE_IMAGE ? "data:image/png;base64," + user.EMPLOYEE_IMAGE
: "../assets/imgs/profile.png"; : "../assets/imgs/profile.png";
}
console.log("name: "+ this.personalInfo.EMPLOYEE_NAME); console.log("name: "+ this.personalInfo.EMPLOYEE_NAME);
console.log("user name: "+ user.EMPLOYEE_NAME); console.log("user name: "+ user.EMPLOYEE_NAME);
console.log("name: "+ this.personalInfo.JOB_NAME); console.log("name: "+ this.personalInfo.JOB_NAME);

@ -52,8 +52,7 @@ export class HomeComponent implements OnInit {
if(this.cs.getUpdateImage().status){ if(this.cs.getUpdateImage().status){
// this.imageSrc = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+this.cs.getUpdateImage().img); // this.imageSrc = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+this.cs.getUpdateImage().img);
this.imageSrc = "data:image/png;base64,"+this.cs.getUpdateImage().img; this.imageSrc =this.sanitizer.bypassSecurityTrustUrl("data:image/png;base64,"+this.cs.getUpdateImage().img);
// alert("this.imageSrc"+ this.imageSrc);
}else{ }else{
this.imageSrc = user.EMPLOYEE_IMAGE this.imageSrc = user.EMPLOYEE_IMAGE
? "data:image/png;base64," + user.EMPLOYEE_IMAGE ? "data:image/png;base64," + user.EMPLOYEE_IMAGE

@ -98,12 +98,8 @@
<div *ngIf="showData" [ngClass]="direction == 'ltr' ? 'calendar-container':'calendar-container-ar' "> <div *ngIf="showData" [ngClass]="direction == 'ltr' ? '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
[eventsdateAttend]='arrDaysAttendance'
[eventsdateAbsent]='arrDaysAbsent'
[eventsdateDayOff]='arrDaysOff'
[currentDateParent]="currentDate" [currentDateParent]="currentDate"
[dayHoursTypeDetailsList]="dayHoursTypeDetailsList" [dayHoursTypeDetailsList]="dayHoursTypeDetailsList"
[normalDays]="normalDays"
(monthTitle)='changeMonthTitle($event)' (monthTitle)='changeMonthTitle($event)'
(currentYear)=changeYear($event)> (currentYear)=changeYear($event)>
</app-circle-calendar> </app-circle-calendar>

@ -57,9 +57,6 @@ export class TimeCardDetailsComponent implements OnInit {
public attendedDays: number; public attendedDays: number;
public futrueDays = 0; public futrueDays = 0;
public totalAttendancePrecentage = 0; public totalAttendancePrecentage = 0;
public arrDaysAttendance: any = [];
public arrDaysAbsent: any = [];
public arrDaysOff: any = [];
public monthTitle: string = moment().format('MMMM'); public monthTitle: string = moment().format('MMMM');
public yearTitle: string; public yearTitle: string;
public isChange = false; public isChange = false;
@ -68,7 +65,6 @@ export class TimeCardDetailsComponent implements OnInit {
public showData = false; public showData = false;
public currentYear = new Date().getFullYear(); public currentYear = new Date().getFullYear();
public dayHoursTypeDetailsList = []; public dayHoursTypeDetailsList = [];
public normalDays: any = [];
public currentDate = new Date(); public currentDate = new Date();
public options = { public options = {
@ -81,19 +77,11 @@ export class TimeCardDetailsComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.showData = false; this.showData = false;
this.nextMonth = new Date().getMonth() + 2; this.nextMonth = new Date().getMonth() + 2;
this.preMonth = new Date().getMonth() - 2; this.preMonth = new Date().getMonth();
if (this.preMonth < 0) {
this.preMonth = this.preMonth * - 1;
} else {
this.preMonth = this.preMonth * - 1;
}
this.calendarConfig(this.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear()); this.calendarConfig(this.getMonthName(new Date().getMonth() + 1) , new Date().getFullYear());
} }
calendarConfig(month?, year?) { calendarConfig(month?, year?) {
this.arrDaysOff = [];
this.arrDaysAttendance = [];
this.arrDaysAbsent = [];
this.month = month; this.month = month;
this.year = year; this.year = year;
this.getTimeCardSummaryDetails(month, year); this.getTimeCardSummaryDetails(month, year);
@ -123,7 +111,6 @@ export class TimeCardDetailsComponent implements OnInit {
console.log(result.GetDayHoursTypeDetailsList); 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);
this.dayHoursTypeDetailsList = result.GetDayHoursTypeDetailsList;
} }
}); });
@ -134,48 +121,35 @@ export class TimeCardDetailsComponent implements OnInit {
for (let i = 0; i < allDays.length; i++) { for (let i = 0; i < allDays.length; i++) {
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
if (allDays[i].ATTENDED_FLAG == 'Y') { if (allDays[i].ATTENDED_FLAG == 'Y') {
allDays[i].present = true; allDays[i].customPresent = true;
allDays[i].absent = false; allDays[i].customAbsent = false;
allDays[i].daysOff = false; allDays[i].customDaysOff = false;
allDays[i].schedule = false; allDays[i].customSchedule = false;
this.arrDaysAttendance.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE)
});
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
} else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].ABSENT_FLAG == 'Y') { } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].ABSENT_FLAG == 'Y') {
allDays[i].present = false; allDays[i].customPresent = false;
allDays[i].absent = true; allDays[i].customAbsent = true;
allDays[i].daysOff = false; allDays[i].customDaysOff = false;
allDays[i].schedule = false; allDays[i].customSchedule = false;
this.arrDaysAbsent.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE),
isoTime: '09:00:00',
allDay: false
});
// tslint:disable-next-line: triple-equals // tslint:disable-next-line: triple-equals
} else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].DAY_TYPE === 'OFF') { } else if (allDays[i].ATTENDED_FLAG == 'N' && allDays[i].DAY_TYPE === 'OFF') {
allDays[i].present = false; allDays[i].customPresent = false;
allDays[i].absent = false; allDays[i].customAbsent = false;
allDays[i].daysOff = true; allDays[i].customDaysOff = true;
allDays[i].schedule = false; allDays[i].customSchedule = false;
this.arrDaysOff.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE)
});
} else { } else {
allDays[i].present = false; allDays[i].customPresent = false;
allDays[i].absent = false; allDays[i].customAbsent = false;
allDays[i].daysOff = false; allDays[i].customDaysOff = false;
allDays[i].schedule = true; allDays[i].customSchedule = true;
this.normalDays.push({ allDays[i].customScheduleDate = new Date(allDays[i].SCHEDULE_DATE);
startTime: new Date(allDays[i].SCHEDULE_DATE),
endTime: new Date(allDays[i].SCHEDULE_DATE)
});
} }
} }
this.showData = true; this.showData = true;
this.dayHoursTypeDetailsList = allDays;
} }
public getTimeCardSummaryDetails(month?, year?) { public getTimeCardSummaryDetails(month?, year?) {
@ -223,9 +197,7 @@ export class TimeCardDetailsComponent implements OnInit {
}); });
} }
nextSlide() { nextSlide() {
this.normalDays = [];
if (this.currentMonthName !== this.month) { if (this.currentMonthName !== this.month) {
this.showData = false; this.showData = false;
if (this.nextMonth > 12) { if (this.nextMonth > 12) {
@ -240,7 +212,6 @@ export class TimeCardDetailsComponent implements OnInit {
} }
previousSlide() { previousSlide() {
this.normalDays = [];
this.showData = false; this.showData = false;
if (this.preMonth === 0) { if (this.preMonth === 0) {
this.currentYear = this.currentYear - 1; this.currentYear = this.currentYear - 1;

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

@ -1445,7 +1445,7 @@
}, },
"myTeam-header": { "myTeam-header": {
"en": "My Team", "en": "My Team",
"ar": "فريقي" "ar": "فريقى"
}, },
"total": { "total": {
"en": "TOTAL", "en": "TOTAL",

@ -1106,10 +1106,10 @@ color: var(--dark);
} }
.checkOutOkBtn{ .checkOutOkBtn{
/* margin-left: 50px !important; */ margin-left: 50px !important;
/* margin-right: 55px !important; */ margin-right: 55px !important;
margin-top: 10px !important; margin-top: 10px !important;
/* margin-bottom: 10px !important; */ margin-bottom: 10px !important;
border-radius: 5px !important; border-radius: 5px !important;
height: 40px !important; height: 40px !important;
min-height: 40px !important; min-height: 40px !important;
@ -1126,10 +1126,10 @@ color: var(--dark);
} }
.checkOutCancelBtn{ .checkOutCancelBtn{
/* margin-left: 55px !important; */ margin-left: 50px !important;
/* margin-right: 55px !important; */ margin-right: 55px !important;
/* margin-top: 10px !important; */ margin-top: 10px !important;
/* margin-bottom: 10px !important; */ margin-bottom: 10px !important;
border-radius: 5px !important; border-radius: 5px !important;
height: 40px !important; height: 40px !important;
min-height: 40px !important; min-height: 40px !important;
@ -1368,12 +1368,9 @@ border:0px
} }
.calendar-modal { .calendar-modal {
--height: 15cm !important; --height: 13.5cm !important;
--width: 88% !important; --width: 88% !important;
--border-radius: 0.4cm; --border-radius: 0.4cm;
// height: 544px !important;
// width: 332px !important;
} }
@ -1496,6 +1493,11 @@ table.monthview-datetable th small {
border-radius: 20px !important; border-radius: 20px !important;
} }
.disable-phone {
pointer-events: none;
opacity: .3;
}
// .replaceRoll-modal { // .replaceRoll-modal {
// padding: 30% 1% !important; // padding: 30% 1% !important;

Loading…
Cancel
Save