fixed issues in mowdafi HR

zohaib-huawei-q2
Fatimah Alshammari 5 years ago
parent ad151091d0
commit ab0f37ca12

@ -22,50 +22,68 @@
<!-- colorBG --> <!-- colorBG -->
<div class="contentEit" style="background: #f3f1f1;"> <div class="contentEit" style="background: #f3f1f1;">
<div class="header-div"> <div class="header-div">
<!-- <ion-buttons slot="end">
<button class="headerBtn" (click)="AccrualBalances()">
<img class="headerImg" src="../assets/imgs/accubalance.png">
</button>
</ion-buttons> -->
<!-- <ion-buttons slot="start">
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
</ion-buttons>
<p class="Title">{{ts.trPK('absenceList','absenceList')}}</p> -->
</div> </div>
<div class="">
<div > <div>
<ion-grid class="headerGrid">
<div >
<ion-datetime [(ngModel)]="Sdate" class="datetime" displayFormat="DD MMMM YYYY"
placeholder="DD MMMM YYYY" cancelText="{{ts.trPK('general','cancel')}}"
doneText="{{ts.trPK('general','done')}}" (ionChange)="getAccrualBalance()"></ion-datetime>
<ion-icon class="iconCalendar" ios="ios-calendar" md="md-calendar"></ion-icon>
</div>
<div style="position: relative;">
<!-- <div [ngClass]=" direction == 'ltr' ? 'subTitle' : 'subTitle-ar'" >{{ts.trPK('absenceList','AccrualUsed')}} </div> -->
<div class="label-container">
<ion-row [ngClass]=" direction == 'ltr' ? 'green-label-container' : 'green-label-container-ar'" >
<label class="current-label"> </label>
<span [ngClass]=" direction == 'ltr' ? 'span-one' : 'span-one-ar'" >{{ts.trPK('absenceList','currentBalance')}}</span>
<span class="span-two">{{accrualNet}}</span>
</ion-row>
<!-- <div [ngClass]=" direction == 'ltr' ? 'yearLabel' : 'yearLabel-ar'">2021</div> -->
</div>
<!-- <div class="label-container">
<ion-row [ngClass]=" direction == 'ltr' ? 'black-label-container' : 'black-label-container-ar'" >
<label class="current-label-container"> </label>
<span [ngClass]=" direction == 'ltr' ? 'black-span1' : 'black-span1-ar'" >{{ts.trPK('absenceList','currentBalance')}}</span>
<span class="black-span2">{{accrualNet}}</span>
</ion-row>
<div [ngClass]=" direction == 'ltr' ? 'yearLabel' : 'yearLabel-ar'" > {{ts.trPK('absenceList','PreviousYears')}}</div>
</div> -->
<div class="label-container">
<ion-row [ngClass]=" direction == 'ltr' ? 'black-label-container' : 'black-label-container-ar'" >
<label class="used-label-container"> </label>
<span [ngClass]=" direction == 'ltr' ? 'red-span1' : 'red-span1-ar'" >{{ts.trPK('absenceList','usedBalance')}}</span>
<span class="red-span2">{{accrualUsed}}</span>
</ion-row>
</div>
<div class="graph-container">
<p-chart [ngClass]=" direction == 'ltr' ? 'today-graph' : 'today-graph-ar'" type="doughnut" [data]="data" [options]="options" ></p-chart>
</div>
</div>
</ion-grid>
<ion-grid class="headerGrid"> <!-- <ion-grid class="headerGrid">
<div style="color: black;"> <div style="color: black;">
<div class="result-graph"> <div class="result-graph">
<div > <div >
<!-- <ion-item> -->
<!-- <ion-label class="datelabel">{{request.P_EFFECTIVE_DATE}}</ion-label> -->
<ion-datetime [(ngModel)]="Sdate" class="datetime" displayFormat="DD MMMM YYYY" <ion-datetime [(ngModel)]="Sdate" class="datetime" displayFormat="DD MMMM YYYY"
placeholder="DD MMMM YYYY" cancelText="{{ts.trPK('general','cancel')}}" placeholder="DD MMMM YYYY" cancelText="{{ts.trPK('general','cancel')}}"
doneText="{{ts.trPK('general','done')}}" (ionChange)="getAccrualBalance()"></ion-datetime> doneText="{{ts.trPK('general','done')}}" (ionChange)="getAccrualBalance()"></ion-datetime>
<!-- <ion-datetime [(ngModel)]="Sdate" class="datetime" displayFormat="DD MMMM YYYY"
placeholder="DD MMMM YYYY" (ionChange)="getAccrualBalance()"></ion-datetime> -->
<ion-icon class="iconCalendar" ios="ios-calendar" md="md-calendar"></ion-icon> <ion-icon class="iconCalendar" ios="ios-calendar" md="md-calendar"></ion-icon>
<!-- </ion-item> -->
</div> </div>
<div style=" border-bottom: 1px solid #a7a4a4; margin-bottom: 12px; <div style=" border-bottom: 1px solid #a7a4a4; margin-bottom: 12px;
margin-top: -10px; margin-right: -9px;"></div> margin-top: -10px; margin-right: -9px;"></div>
<div class="result-text-container"> <div class="result-text-container">
<!-- <h2>{{totalnumber}}</h2> -->
<!-- <h2>{{accrualNet + accrualUsed + accrualYearly}}</h2> -->
<!-- <span>{{ts.trPK('absenceList','totalNumber')}}</span> -->
</div> </div>
@ -94,38 +112,10 @@
</ion-row> </ion-row>
</ion-col> </ion-col>
</div> </div>
<!-- <div [ngClass]=" direction == 'ltr' ? 'div-orng' : 'div-orng-ar'">
<ion-col>
<ion-row>
<label class="orng-label">{{ts.trPK('absenceList','annualBalance')}}</label>
</ion-row>
<ion-row>
<label class="orng-amount" for="">{{accrualYearly}}</label>
</ion-row>
</ion-col>
</div> -->
<!-- <div style="position: relative;
left: 59%;
bottom: 73px;
color: black;
background-color: #269DB8;
width: 16%;
height: 6px;">
<ion-col>
<ion-row>
<label class="blue-label">text</label>
</ion-row>
<ion-row> -->
<!-- <label class="blue-amount" for="">{{getleaveAccrualBalance.ACCRUAL_YEARLY_ENTITLEMENT}}</label> -->
<!-- </ion-row>
</ion-col>
</div> -->
</div> </div>
</ion-grid> </ion-grid> -->
</div>
</div> </div>

@ -56,13 +56,9 @@
.header-div { .header-div {
background-color: #269DB8; background-color: #269DB8;
text-transform: capitalize; text-transform: capitalize;
height: 160px; height: 100px;
/* position: relative; */
/* display: block; */
margin-bottom: -28px;
} }
.header-toolbar-new{ .header-toolbar-new{
@ -107,7 +103,7 @@
// margin-left: 111px; // margin-left: 111px;
text-align: center; text-align: center;
font-family: WorkSans-Bold; font-family: WorkSans-Bold;
margin-left: 47px; margin-left: -142px;
margin-top: -19px; margin-top: -19px;
} }
@ -119,52 +115,40 @@
.iconCalendar{ .iconCalendar{
// margin-left: -241px; // margin-left: -241px;
// margin-top: 5px; // margin-top: 5px;
margin-left: 30px !important; margin-left: -12px !important;
width: 22% !important; width: 22% !important;
height: 26px !important; height: 26px !important;
margin-top: -69px !important; margin-top: -50px !important;
margin-bottom: 20px !important; margin-bottom: 23px !important;
} }
.today-graph{ // .today-graph{
// display:block !important;
// height: 150px !important; // display: block !important;
// width: 300 !important; // height: 196px;
// margin-left: -70px !important; // width: 385px;
display: block !important; // padding-left: 51px;
height: 196px; // // padding-top: 29px;
width: 385px; // margin-left: -70px !important;
padding-left: 51px; // }
// padding-top: 29px; // .today-graph-ar{
margin-left: -70px !important; // display: block !important;
} // height: 175px;
.today-graph-ar{ // width: 320px;
// display: block !important; // padding-left: 51px;
// height: 196px; // font-size: 14px;
// width: 385px; // margin-right: 75px;
// padding-left: 51px; // margin-bottom: -30px;
/* margin-left: -70px !important; */ // }
// font-size: 14px;
// margin-left: -48px;
// margin-right: 63px;
// margin-bottom: -30px;
display: block !important;
height: 175px;
width: 320px;
padding-left: 51px;
font-size: 14px;
margin-right: 75px;
margin-bottom: -30px;
}
.headerGrid{ .headerGrid{
background-color: white !important; background-color: white !important;
border: 1px solid #cac8c8 !important; border: 1px solid #cac8c8 !important;
border-radius: 20px !important; border-radius: 20px !important;
padding-top: 28px; padding-top: 28px;
padding-bottom: 14px; padding-bottom: 26px;
margin-left: 13px; margin-left: 13px;
margin-right: 13px; margin-right: 13px;
margin-top: -136px; margin-top: -93px;
margin-bottom: 10px; margin-bottom: 10px;
} }
@ -310,3 +294,214 @@ margin-top: -13px;
height: 6px; height: 6px;
right: 16px; right: 16px;
} }
.subTitle{
margin-top: -10px;
margin-left: 10px;
font-family: WorkSans-Bold;
font-size: 16px;
}
.subTitle-ar{
margin-top: -10px;
margin-right: 10px;
font-family: WorkSans-Bold;
font-size: 16px;
}
.today-graph {
max-height: 4cm;
display: block;
height: 124px;
width: 249px;
margin-left: -39px;
}
.today-graph-ar {
max-height: 4cm;
display: block;
height: 132px;
width: 264px;
margin-right: 105px;
}
.graph-container{
margin-left: 160px;
position: relative;
margin-top: -98px;
}
// .label-container{
// position: absolute;
// // width: 20%;
// // right: 30px;
// top: 50%;
// margin-top: -27px;
// left: 20px;
// }
.green-label-container{
margin-top: 20px; margin-left: 12px;
}
.green-label-container-ar{
margin-top: 20px; margin-right: 12px;
}
.black-label-container{
margin-left: 12px;
}
.black-label-container-ar{
margin-right: 12px;
}
.used-label-container{
// border-top: 5px solid #292F42;
// padding: 1px 0px;
// margin: 15px 0px
width: 12px;
height: 12px;
padding-right: -10px;
border-radius: 100%;
background-color: #b60c0c;
margin-top: 30px;
}
.current-label-container{
width: 12px;
height: 12px;
padding-right: -10px;
border-radius: 100%;
background-color: black;
margin-top: 21px;
}
.current-label{
width: 12px;
height: 12px;
padding-right: -10px;
border-radius: 100%;
background-color: #269DB8;
// margin-top: 30px;
}
.span-one{
// display: block;
// font-size: 12px;
// color: black;
display: block;
font-size: 12px;
color: #269DB8;
margin-left: 6px;
margin-top: -2px;
font-weight: bold;
}
.span-one-ar{
display: block;
font-size: 12px;
color: #269DB8;
margin-right: 6px;
margin-top: -2px;
font-weight: bold;
}
.span-two{
// display: block;
// font-size: 22px;
display: block;
font-size: 12px;
color: #269DB8;
margin-left: 6px;
margin-top: -2px;
font-weight: bold;
font-family: WorkSans-Bold;
}
.black-span1{
// display: block;
// font-size: 12px;
// color: black;
display: block;
font-size: 12px;
color: black;
margin-left: 6px;
margin-top: 20px;
font-weight: bold;
}
.black-span1-ar{
// display: block;
// font-size: 12px;
// color: black;
display: block;
font-size: 12px;
color: black;
margin-right: 6px;
margin-top: 20px;
font-weight: bold;
}
.black-span2{
// display: block;
// font-size: 22px;
display: block;
font-size: 12px;
color: black;
margin-left: 6px;
margin-top: 20px;
font-weight: bold;
font-family: WorkSans-Bold;
}
.red-span1{
// display: block;
// font-size: 12px;
// color: black;
display: block;
font-size: 12px;
color: #b60c0c;
margin-left: 6px;
margin-top: 28px;
font-weight: bold;
}
.red-span1-ar{
// display: block;
// font-size: 12px;
// color: black;
display: block;
font-size: 12px;
color: #b60c0c;
margin-right: 6px;
margin-top: 28px;
font-weight: bold;
}
.red-span2{
// display: block;
// font-size: 22px;
display: block;
font-size: 12px;
color: #b60c0c;
margin-left: 6px;
margin-top: 28px;
font-weight: bold;
font-family: WorkSans-Bold;
}
.yearLabel{
font-size: 13px;
color: gray;
font-family: WorkSans-Bold;
margin-left: 29px;
margin-top: 5px;
}
.yearLabel-ar{
font-size: 13px;
color: gray;
font-family: WorkSans-Bold;
margin-right: 29px;
margin-top: 5px;
}

@ -66,6 +66,7 @@ export class HomeComponent implements OnInit {
this.Sdate = new Date().toISOString(); this.Sdate = new Date().toISOString();
this.getUserDetails(); this.getUserDetails();
this.getAccrualBalance();
} }
private getUserDetails(){ private getUserDetails(){
this.authService.loadAuthenticatedUser().subscribe((user: AuthenticatedUser) => { this.authService.loadAuthenticatedUser().subscribe((user: AuthenticatedUser) => {
@ -113,9 +114,11 @@ export class HomeComponent implements OnInit {
{ {
data: [this.accrualNet,this.accrualUsed], data: [this.accrualNet,this.accrualUsed],
backgroundColor: [ backgroundColor: [
'#1FA269', // '#1FA269',
'#CB3232',], // '#CB3232',],
borderWidth: 2 '#269DB8',
'#b60c0c',],
borderWidth: 1
} }
] ]
}; };
@ -270,9 +273,9 @@ createAbsence() {
// { data: [this.accrualNet,this.accrualYearly,this.accrualUsed], // { data: [this.accrualNet,this.accrualYearly,this.accrualUsed],
{ data: [this.accrualNet,this.accrualUsed], { data: [this.accrualNet,this.accrualUsed],
backgroundColor: [ backgroundColor: [
'#1FA269', '#269DB8',
'#CB3232',], '#b60c0c',],
borderWidth: 2 borderWidth: 1
} }
] ]
}; };

@ -50,7 +50,7 @@
<img style= "height: 14px !important;" src="../assets/imgs/my_team_icon.png" item-left> <img style= "height: 14px !important;" src="../assets/imgs/my_team_icon.png" item-left>
</ion-thumbnail> </ion-thumbnail>
<ion-label class="profile"> <ion-label class="profile">
HR REQUEST {{ts.trPK('userProfile','HR-Request')}}
</ion-label> </ion-label>
</ion-item> </ion-item>

@ -230,8 +230,8 @@ export class AppComponent implements OnInit {
} }
public openMyRequestPage() { public openMyRequestPage() {
this.cs.openMyRequestPage();
this.menu.toggle(); this.menu.toggle();
this.cs.openMyRequestPage();
} }
public profile() { public profile() {

@ -206,6 +206,7 @@ export class SmsPageComponent implements OnInit {
if (this.platform.is('cordova')) { if (this.platform.is('cordova')) {
this.insertMobileLogin(); this.insertMobileLogin();
} }
this.common.sharedService.setSharedData(result.MemberInformationList[0].PAYROLL_CODE, "projcet-code");
this.activeType =this.common.setActiveTypeLogin(0); this.activeType =this.common.setActiveTypeLogin(0);
this.common.openHome(); this.common.openHome();
}); });

@ -1124,6 +1124,9 @@ export class CommonService {
public openHRRequestPage() { public openHRRequestPage() {
this.nav.navigateForward(['/mowadhafi/hr-request']); this.nav.navigateForward(['/mowadhafi/hr-request']);
} }
public openHRRequestFormPage() {
this.nav.navigateForward(['/mowadhafi/hr-request-form']);
}
public openRequestDetailsPage() { public openRequestDetailsPage() {
this.nav.navigateForward(['/mowadhafi/request-details']); this.nav.navigateForward(['/mowadhafi/request-details']);
} }

@ -11,7 +11,7 @@
<ion-content> <ion-content>
<div *ngIf="!showRequestDetails" class="contentBg"> <div class="contentBg">
<div class="result-graph" > <div class="result-graph" >
<div class="user-info"> <div class="user-info">
<div class="user-image-container"> <div class="user-image-container">
@ -130,106 +130,13 @@
<!-- ///////////////////////////////////////////////////////////////////next page --> <!-- ///////////////////////////////////////////////////////////////////next page -->
<div *ngIf="showRequestDetails" >
<ion-card class="result-serviceType">
<ion-card-content>
<div class="request-heading">
<span>{{ts.trPK('userProfile','ServiceType')}}</span>
</div>
<div>
<ion-row class="custom-radio">
<ion-radio-group (ionChange)="showSelectedField($event)" class="radio-list">
<ion-radio value="HR Services" [color]="myColor">{{HR}}</ion-radio>
<ion-label class="text-label" >{{HR}}</ion-label>
<ion-radio value="Complaints" [color]="myColor" >{{complaints}}</ion-radio>
<ion-label class="text-label">{{complaints}}</ion-label>
<ion-radio value="Inquiry" [color]="myColor" >{{inquiry}}</ion-radio>
<ion-label class="text-label">{{inquiry}}</ion-label>
</ion-radio-group>
</ion-row>
</div>
<!-- /////////////////////////////////////////// -->
<div>
<div>
<ion-list>
<label class="labels">{{ts.trPK('userProfile','DeptName')}}</label>
<ion-item lines="none" class="filed-container">
<select class="filed1" placeholder="Select Department" type="text" [(ngModel)]="index">
<option [selected]="x.departmentName" value="{{i}}"
*ngFor="let x of departTypeList; let i=index;">
{{x.departmentName}} </option>
</select>
<!-- <select class="filed1" placeholder="Select Department" type="text">
<option >{{EmpRelations}}</option>
<option >{{Hr}}</option>
<option >{{Payroll}}</option>
<option >{{GovRelation}}</option>
</select> -->
</ion-item>
<label class="labels">{{ts.trPK('userProfile','RelatedSection')}}</label>
<ion-item lines="none" class="filed-container">
<select [(ngModel)]="index" class="filed2" placeholder="Select Sectiont" type="text">
<!-- <option [selected]="projName" >{{projName}}</option> -->
<option [selected]="x.projectName" value="{{i}}"
*ngFor="let x of sectionTypeList; let i=index;">
{{x.projectName}} </option>
</select>
</ion-item>
<label class="labels">{{ts.trPK('userProfile','RelatedTopic')}}</label>
<ion-item lines="none" class="filed-container">
<select [(ngModel)]="index" class="filed3" placeholder="Select Topic" type="text">
<!-- <option value="1">{{topicName}}</option> -->
<option [selected]="x.topicName" value="{{i}}"
*ngFor="let x of topicTypeList; let i=index;">
{{x.topicName}} </option>
</select>
</ion-item>
</ion-list>
</div>
<div class="request-heading">
<span>{{ts.trPK('userProfile','SupportingDocument')}}</span>
</div>
<div>
<!-- <input type="file" ng2FileSelect [uploader]="uploader"
(change)="onFileSelected($event)" (click)="onFileSelectedclick($event)" />
<label end for="file">
<img slot="start" style=" height: 55px;"src="../assets/imgs/add-photo.svg">
</label> -->
<div class="fileUpload btn btn-primary">
<img slot="start" style=" height: 55px;"src="../assets/imgs/add-photo.svg">
<input type="file" class="upload" ng2FileSelect [uploader]="uploader"
(change)="onFileSelected($event)" (click)="onFileSelectedclick($event)" />
</div>
</div>
<div class="request-heading">
<span>{{ts.trPK('userProfile','Description')}}</span>
</div>
<ion-col size="12">
<ion-item style="margin-left: -20px;margin-right: -13px;margin-top: -24px;" lines="none">
<ion-input [ngClass]="direction == 'en' ? 'filedDesc':'filedDesc-ar' " placeholder="{{ts.trPK('userProfile','Description')}}" type="text"></ion-input>
</ion-item>
</ion-col>
</div>
</ion-card-content>
</ion-card>
</div>
</ion-content> </ion-content>
<ion-footer *ngIf="showRequestDetails" > <!-- <ion-footer *ngIf="showRequestDetails" >
<div class="centerDiv"> <div class="centerDiv">
<button class="gridCancelBtn" ion-button (click)="cancelRequest()">{{ts.trPK('general','cancel')}}</button> <button class="gridCancelBtn" ion-button (click)="cancelRequest()">{{ts.trPK('general','cancel')}}</button>
<button class="gridSubmitBtn" ion-button (click)="submitRequest()">{{ts.trPK('general','submit')}}</button> <button class="gridSubmitBtn" ion-button (click)="submitRequest()">{{ts.trPK('general','submit')}}</button>
</div> </div>
</ion-footer> </ion-footer> -->

@ -52,7 +52,9 @@ export class HRRequestComponent implements OnInit {
public topicTypeList:any; public topicTypeList:any;
public sectionTypeList:any; public sectionTypeList:any;
filterAllowedType: any = ['application/pdf', 'image/jpeg', 'image/png', 'text/plain', 'image/jpg', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']; filterAllowedType: any = ['application/pdf', 'image/jpeg', 'image/png', 'text/plain', 'image/jpg', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
public projectDetial:any;
public projectDep:any;
public sectionDep:any;
public direction: string; public direction: string;
@ -72,11 +74,7 @@ export class HRRequestComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.getUserInformation(); this.getUserInformation();
this.getTicketTypes();
this.getProject();
this.getProjectDepartments();
this.getDepartmentSections();
this.getSectionTopics();
} }
@ -119,190 +117,10 @@ export class HRRequestComponent implements OnInit {
// console.log("total no "+this.EmpTotal) // console.log("total no "+this.EmpTotal)
} }
getTicketTypes(){
const request = {
// TokenID:"xxx",
EmployeeNumber:"121816",
};
this.MowadhafiService.getTicketTypes(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketTypesResult(result);
}) }
handlegetTicketTypesResult(result){
this.HR = result.Mohemm_Itg_TicketTypesList[0].typeName;
this.complaints = result.Mohemm_Itg_TicketTypesList[1].typeName;
this.inquiry = result.Mohemm_Itg_TicketTypesList[2].typeName;
}
getProject(){
const request = {
// TokenID:"xxx",
EmployeeNumber:"121816",
ItgProjectCode:"CS"
};
this.MowadhafiService.getProject(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetProjectResult(result);
}) }
handlegetProjectResult(result){
this.Projectresult=result.Mohemm_Itg_ProjectsList[0];
}
getProjectDepartments(){
const request = {
// TokenID:"xxx",
EmployeeNumber:"121816",
ItgProjectId:11,
};
this.MowadhafiService.getProjectDepartments(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetProjectDepartmentsResult(result);
}) }
handlegetProjectDepartmentsResult(result){
this.departTypeList= result.Mohemm_ITG_ProjectDepartmentsList;
// this.EmpRelations= result .Mohemm_ITG_ProjectDepartmentsList[0].departmentName;
// this.Hr = result .Mohemm_ITG_ProjectDepartmentsList[1].departmentName;
// this.Payroll = result .Mohemm_ITG_ProjectDepartmentsList[2].departmentName;
// this.GovRelation = result .Mohemm_ITG_ProjectDepartmentsList[3].departmentName;
}
getDepartmentSections(){
const request = {
// TokenID:"xxx",
EmployeeNumber:"121816",
ItgProjectDepartmentId:1
};
this.MowadhafiService.getDepartmentSections(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetDepartmentSectionsResult(result);
}) }
handlegetDepartmentSectionsResult(result){
// this.projName=result.Mohemm_ITG_DepartmentSectionsList[0].projectName;
this.sectionTypeList= result.Mohemm_ITG_DepartmentSectionsList;
}
getSectionTopics(){
const request = {
// TokenID:"xxx",
EmployeeNumber:"121816",
ItgDepartmentSectionId:1
};
this.MowadhafiService.getSectionTopics(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetSectionTopicsResult(result);
}) }
handlegetSectionTopicsResult(result){
// this.topicName=result.Mohemm_ITG_SectionTopicsList[0].topicName
this.topicTypeList= result.Mohemm_ITG_SectionTopicsList;
}
createRequest(){
if(this.showRequestDetails){
this.showRequestDetails = false
}else{
this.showRequestDetails = true
}}
public cancelRequest() {
this.cs.openMyRequestPage();
this.menu.toggle();
}
public createRequest() {
/*******************Add attchement Functions*************/ this.cs.openHRRequestFormPage();
public uploader: FileUploader = new FileUploader({ // this.menu.toggle();
allowedMimeType: ['application/pdf', 'image/jpeg', 'image/png', 'text/plain', 'image/jpg', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'], }
maxFileSize: 10 * 1024 * 1024,
formatDataFunctionIsAsync: true,
formatDataFunction: async (item) => {
return new Promise((resolve, reject) => {
resolve({
name: item._file.name,
length: item._file.size,
contentType: item._file.type,
date: new Date()
});
});
}
});
onFileSelectedclick(event){
event.target.value = '';
}
onFileSelected(input) {
// this.uploader.onWhenAddingFileFailed = function (item: any, filter: any, options: any){
if (!(this.filterAllowedType.indexOf(input.target.files[0].type) > -1)) {
let msg: string = "";
msg = this.ts.trPK("general", "notSupport");
this.cs.presentAlert(msg);
return
} // todo: show alert that you tried uploading wrong files
else {
const file = input.target.files[0];
this.getBase64(file).then(
data => this.pushObject(data, file.name, file.type)
);
}
}
getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
pushObject(fileData, name, type) {
// console.log('before push: '+ this.index);
// try {
// let array = name.split('.');
// let attachType: string = array[array.length - 1];
// this.attachListOver.push(
// AttachmentID: this.attachListOver.length,
// P_FILE_CONTENT_TYPE: attachType,//type.split('/')[1],
// P_FILE_DATA: fileData.split(',')[1],
// P_FILE_NAME: name,//.split('.')[0],
// P_TRANSACTION_ID: this.P_TransactionID
// {
// })
// } catch (e) {
// }
}
submitRequest(){}
} }

@ -10,6 +10,7 @@ import { HmgCommonModule } from '../hmg-common/hmg-common.module';
import {MyRequestComponent} from './my-request/my-request.component'; import {MyRequestComponent} from './my-request/my-request.component';
import {HRRequestComponent} from './hr-request/hr-request.component'; import {HRRequestComponent} from './hr-request/hr-request.component';
import {RequestDetailsComponent} from'./request-details/request-details.component'; import {RequestDetailsComponent} from'./request-details/request-details.component';
import {HrRequestFormComponent} from './hr-request-form/hr-request-form.component';
const routes: Routes = [ const routes: Routes = [
{ {
@ -26,7 +27,11 @@ const routes: Routes = [
{ {
path: 'request-details', path: 'request-details',
component: RequestDetailsComponent component: RequestDetailsComponent
} },
{
path: 'hr-request-form',
component: HrRequestFormComponent
}
] ]
@ -41,6 +46,7 @@ const routes: Routes = [
IonicModule, IonicModule,
RouterModule.forChild(routes) RouterModule.forChild(routes)
], ],
declarations: [MowadhafiPage,MyRequestComponent,HRRequestComponent,RequestDetailsComponent] declarations: [MowadhafiPage,MyRequestComponent,HRRequestComponent
,RequestDetailsComponent,HrRequestFormComponent]
}) })
export class MowadhafiPageModule {} export class MowadhafiPageModule {}

@ -19,6 +19,7 @@ export class MowadhafiService {
public static getTicketStatisticsByEmp ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketStatisticsByEmployee'; public static getTicketStatisticsByEmp ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketStatisticsByEmployee';
public static getTicketTransaction ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketTransaction'; public static getTicketTransaction ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketTransaction';
public static getTicketDetails ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketDetails'; public static getTicketDetails ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketDetails';
public static getCreateTicket = 'Services/COCWS.svc/REST/Mohemm_ITG_CreateTicket';
constructor( constructor(
public con: ConnectorService, public con: ConnectorService,
@ -44,31 +45,39 @@ export class MowadhafiService {
public getTicketTypes(absence: any, onError?: any, errorLabel?: string){ public getTicketTypes(absence: any, onError?: any, errorLabel?: string){
const request = absence; const request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
console.log(request);
return this.con.post(MowadhafiService.getTicketTypes, request, onError, errorLabel); return this.con.post(MowadhafiService.getTicketTypes, request, onError, errorLabel);
} }
public getProject(absence: any, onError?: any, errorLabel?: string){ public getProject(absence: any, onError?: any, errorLabel?: string){
const request = absence; const request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
// request.ItgProjectCode = request.projectCode;
return this.con.post(MowadhafiService.getProject, request, onError, errorLabel); return this.con.post(MowadhafiService.getProject, request, onError, errorLabel);
} }
public getProjectDepartments(absence: any, onError?: any, errorLabel?: string){ public getProjectDepartments(absence: any, onError?: any, errorLabel?: string){
const request = absence; const request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
return this.con.post(MowadhafiService.getProjectDepartments, request, onError, errorLabel); return this.con.post(MowadhafiService.getProjectDepartments, request, onError, errorLabel);
} }
public getDepartmentSections(absence: any, onError?: any, errorLabel?: string){ public getDepartmentSections(absence: any, onError?: any, errorLabel?: string){
const request = absence; const request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
return this.con.post(MowadhafiService.getDepartmentSections, request, onError, errorLabel); return this.con.post(MowadhafiService.getDepartmentSections, request, onError, errorLabel);
} }
public getSectionTopics(absence: any, onError?: any, errorLabel?: string){ public getSectionTopics(absence: any, onError?: any, errorLabel?: string){
const request = absence; const request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
return this.con.post(MowadhafiService.getSectionTopics, request, onError, errorLabel); return this.con.post(MowadhafiService.getSectionTopics, request, onError, errorLabel);
} }
public getTicketsByEmployee(absence: any, onError?: any, errorLabel?: string){ public getTicketsByEmployee(absence: any, onError?: any, errorLabel?: string){
const request = absence; let request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
return this.con.post(MowadhafiService.getTicketsByEmployee, request, onError, errorLabel); return this.con.post(MowadhafiService.getTicketsByEmployee, request, onError, errorLabel);
} }
@ -81,12 +90,21 @@ export class MowadhafiService {
public getTicketTransaction(absence: any, onError?: any, errorLabel?: string){ public getTicketTransaction(absence: any, onError?: any, errorLabel?: string){
const request = absence; const request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
return this.con.post(MowadhafiService.getTicketTransaction, request, onError, errorLabel); return this.con.post(MowadhafiService.getTicketTransaction, request, onError, errorLabel);
} }
public getTicketDetails(absence: any, onError?: any, errorLabel?: string){ public getTicketDetails(absence: any, onError?: any, errorLabel?: string){
const request = absence; const request = absence;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
return this.con.post(MowadhafiService.getTicketDetails, request, onError, errorLabel); return this.con.post(MowadhafiService.getTicketDetails, request, onError, errorLabel);
} }
}
public getCreateTicket(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
request.EmployeeNumber = request.P_USER_NAME;
return this.con.post(MowadhafiService.getCreateTicket, request, onError, errorLabel);
}
}

@ -14,14 +14,14 @@
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row> <ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
</div> --> </div> -->
<div> <div>
<ion-card class="result-container" (click)="openRequestDetailsPage()"> <ion-card *ngFor="let ticket of ticketsInfo ;let i = index" class="result-container" (click)="openRequestDetailsPage(ticket)">
<ion-card-content> <ion-card-content>
<ion-row style="margin-left: -3px; margin-right: -9px;"> <ion-row style="margin-left: -3px; margin-right: -9px;">
<ion-col class="text">Complaints</ion-col> <ion-col class="text">{{ticket.ticketTypeName}}</ion-col>
<ion-col class="date">{{ts.trPK('userProfile','postedDate')}} May2,2021</ion-col> <ion-col class="date">{{ts.trPK('userProfile','postedDate')}} {{(ticket.created)?.substring(0,10)}}</ion-col>
</ion-row> </ion-row>
<ion-row>There is some Complaints</ion-row> <ion-row>{{ticket.description}}</ion-row>
<ion-row style="margin-top: 5px;">Pending</ion-row> <ion-row style="margin-top: 5px;color: #e69f44; font-family:'WorkSans-bold';">{{ticket.ticketStatusName}}</ion-row>
</ion-card-content> </ion-card-content>
</ion-card> </ion-card>
</div> </div>

@ -30,6 +30,7 @@
font-size: 15px; font-size: 15px;
margin-top: -9px; margin-top: -9px;
font-family: 'WorkSans-bold'; font-family: 'WorkSans-bold';
} }
.date{ .date{
margin-top: -9px; margin-top: -9px;

@ -14,7 +14,8 @@ import { Location } from '@angular/common';
styleUrls: ['./my-request.component.scss'], styleUrls: ['./my-request.component.scss'],
}) })
export class MyRequestComponent implements OnInit { export class MyRequestComponent implements OnInit {
public direction : String; public direction: String;
public ticketsInfo : any = [];
constructor( constructor(
@ -26,10 +27,10 @@ public direction : String;
public MowadhafiService: MowadhafiService, public MowadhafiService: MowadhafiService,
private location: Location, private location: Location,
private menu: MenuController, private menu: MenuController,
) { ) {
this.direction = TranslatorService.getCurrentLanguageName(); this.direction = TranslatorService.getCurrentLanguageName();
} }
ngOnInit() { ngOnInit() {
this.getTicketsByEmployee(); this.getTicketsByEmployee();
@ -37,35 +38,48 @@ public direction : String;
goback() { goback() {
this.location.back(); this.location.back();
}
public openHRRequestPage() { }
this.cs.openHRRequestPage();
this.menu.toggle();
}
public openRequestDetailsPage() { public openHRRequestPage() {
this.cs.openRequestDetailsPage(); this.cs.openHRRequestPage();
this.menu.toggle(); // this.menu.toggle();
} }
public openRequestDetailsPage(item) {
this.cs.sharedService.setSharedData(item,'ticket-info')
this.cs.openRequestDetailsPage();
// this.menu.toggle();
}
getTicketsByEmployee(){ getTicketsByEmployee() {
const request = { const request = {
// TokenID:"xxx", // TokenID:"xxx",
EmployeeNumber:"121816", EmployeeNumber: "",
ItgPageSize:10, ItgPageSize: 10,
ItgPageNo:1 ItgPageNo: 1
}; };
this.MowadhafiService.getTicketsByEmployee(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> this.MowadhafiService.getTicketsByEmployee(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
{ this.handlegetTicketsByEmployeeResult(result);
this.handlegetTicketsByEmployeeResult(result);
})
}) } }
handlegetTicketsByEmployeeResult(result){
handlegetTicketsByEmployeeResult(result){
} let x;
if(this.cs.validResponse(result)){
x = JSON.parse(result.Mohemm_ITG_ResponseItem);
console.log(x);
this.ticketsInfo=x.result.data;
for (let i = 0; i < this.ticketsInfo.length; i++) {
// console.log(i + ' : ' + this.ticketsInfo[i].ticketTypeName)
}
console.log(this.ticketsInfo);
}
}
} }

@ -19,40 +19,40 @@
<ion-card class="result-container" > <ion-card class="result-container" >
<ion-card-content> <ion-card-content>
<ion-row style="margin-left: -3px; margin-right: -9px;"> <ion-row style="margin-left: -3px; margin-right: -9px;">
<ion-col >Pending</ion-col> <ion-col style="color: #e69f44;" > {{status}}</ion-col>
<ion-col class="date">{{ts.trPK('userProfile','postedDate')}} May2,2021</ion-col> <ion-col class="date">{{ts.trPK('userProfile','postedDate')}}{{date}}</ion-col>
</ion-row> </ion-row>
<ion-col [size]="12"> <ion-col [size]="12">
<h2 class="labels">{{ts.trPK('userProfile','refrence')}}</h2> <h2 class="labels">{{ts.trPK('userProfile','refrence')}}</h2>
<p class="text">453388</p> <p class="text">{{ticketRefre}}</p>
</ion-col> </ion-col>
<ion-col [size]="12"> <ion-col [size]="12">
<h2 class="labels"> {{ts.trPK('userProfile','section')}}</h2> <h2 class="labels"> {{ts.trPK('userProfile','section')}}</h2>
<p class="text">Employee</p> <p class="text">{{section}}</p>
</ion-col> </ion-col>
<ion-col [size]="12"> <ion-col [size]="12">
<h2 class="labels"> {{ts.trPK('userProfile','topic')}}</h2> <h2 class="labels"> {{ts.trPK('userProfile','topic')}}</h2>
<p class="text">Change Tiket</p> <p class="text">{{topic}}</p>
</ion-col> </ion-col>
<ion-col [size]="12"> <ion-col [size]="12">
<h2 class="labels">{{ts.trPK('userProfile','Description')}}</h2> <h2 class="labels">{{ts.trPK('userProfile','Description')}}</h2>
<p class="DescrText">descriptions</p> <p class="DescrText">{{description}}</p>
</ion-col> </ion-col>
</ion-card-content> </ion-card-content>
</ion-card> </ion-card>
</div> </div>
<div> <div>
<ion-card class="result-containerList" > <ion-card class="result-containerList" >
<ion-card-content> <ion-card-content>
<div style="position: relative;"> <div *ngFor="let action of actionInfo ;let i = index" style="position: relative;">
<div [ngClass]=" direction == 'en'? 'request-list-container' : 'request-list-container-ar'" > <div [ngClass]=" direction == 'en'? 'request-list-container' : 'request-list-container-ar'" >
<div> <div>
<!-- <div *ngFor="let formattedAction of showFormattedAction; let i = index"> --> <!-- <div *ngFor="let formattedAction of showFormattedAction; let i = index"> -->
<span [ngClass]="direction == 'en'? 'text-span':'text-span-ar'">Action By</span> <span [ngClass]="direction == 'en'? 'text-span':'text-span-ar'">{{ts.trPK('userProfile','actionBy')}}{{action.actionBy}}</span>
<div class="action-data"> <div class="action-data">
<p >descriptions</p> <p >{{action.comments}}</p>
<span [ngClass]="direction == 'en'? 'date-span':'date-span-ar'">May 16,2021</span> <span [ngClass]="direction == 'en'? 'date-span':'date-span-ar'">{{(action.actionDate)?.substring(0,10)}}</span>
</div> </div>
</div> </div>
</div> </div>

@ -70,7 +70,8 @@
font-size: 13px; font-size: 13px;
margin-bottom: 0px; margin-bottom: 0px;
margin-top: -10px; margin-top: -10px;
color: gray; color: #a9a5a5;
font-family: 'WorkSans-bold';
} }
.request-list-container { .request-list-container {
@ -78,7 +79,6 @@
padding-left: 37px; padding-left: 37px;
clear: both; clear: both;
min-height: 200px; min-height: 200px;
margin-bottom: 80px;
padding-top: 15px; padding-top: 15px;
} }
.request-list-container:before{ .request-list-container:before{
@ -162,7 +162,7 @@
margin-bottom: 0px; margin-bottom: 0px;
margin-top: -10px; margin-top: -10px;
color: gray; color: gray;
margin-left: 178px; margin-left: 172px;
} }
.date-span-ar{ .date-span-ar{

@ -15,6 +15,16 @@ import { Location } from '@angular/common';
}) })
export class RequestDetailsComponent implements OnInit { export class RequestDetailsComponent implements OnInit {
public direction : String; public direction : String;
public actionInfo:any = [];
public teckitInfo:any;
public description:any;
public section:any;
public topic:any;
public ticketRefre:any;
public date:any;
public status:any;
public teckitDetial:any;
constructor( constructor(
public ts: TranslatorService, public ts: TranslatorService,
@ -31,8 +41,9 @@ export class RequestDetailsComponent implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.teckitDetial = this.cs.sharedService.getSharedData('ticket-info', true)
this.getTicketDetails();
this.getTicketTransaction(); this.getTicketTransaction();
this.getTicketDetails()
} }
goback() { goback() {
@ -44,8 +55,8 @@ export class RequestDetailsComponent implements OnInit {
getTicketTransaction(){ getTicketTransaction(){
const request = { const request = {
EmployeeNumber:"121816", EmployeeNumber:'',
ItgTicketId:"5a10de61-c4db-4c77-e464-08d8a1beaaac", ItgTicketId:this.teckitDetial.ticketId,
}; };
this.MowadhafiService.getTicketTransaction(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> this.MowadhafiService.getTicketTransaction(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
@ -54,14 +65,23 @@ export class RequestDetailsComponent implements OnInit {
}) } }) }
handlegetTicketTransactionResult(result){ handlegetTicketTransactionResult(result){
let x;
if(this.cs.validResponse(result)){
x = JSON.parse(result.Mohemm_ITG_ResponseItem);
console.log(x);
this.actionInfo=x.result.data;
for (let i = 0; i < this.actionInfo.length; i++) {
console.log(i + ' : ' + this.actionInfo[i].ticketTypeName)
}
}
} }
getTicketDetails(){ getTicketDetails(){
const request = { const request = {
EmployeeNumber:"121816", EmployeeNumber:'',
TokenID:"@dm!n", ItgTicketId:this.teckitDetial.ticketId,
ItgTicketId:"5a10de61-c4db-4c77-e464-08d8a1beaaac",
}; };
this.MowadhafiService.getTicketDetails(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> this.MowadhafiService.getTicketDetails(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
@ -70,6 +90,19 @@ export class RequestDetailsComponent implements OnInit {
}) } }) }
handlegetTicketDetailsResult(result){ handlegetTicketDetailsResult(result){
let res;
if(this.cs.validResponse(result)){
res = JSON.parse(result.Mohemm_ITG_ResponseItem);
console.log(res);
this.teckitInfo = res.result.data;
this.status =this.teckitInfo.ticketStatusName;
this.date =this.teckitInfo.created.substring(0, 10);
this.ticketRefre =this.teckitInfo.ticketReferenceNo;
this.section = this.teckitInfo.sectionName;
this.topic =this.teckitInfo.topicName;
this.description =this.teckitInfo.description;
}
} }

@ -400,7 +400,7 @@
<div style="margin-top: -23px;"> <div style="margin-top: -23px;">
<ion-row> <ion-row>
<ion-col><p class="text">{{ts.trPK('myTeam','my-team-members')}}</p></ion-col> <ion-col><p class="text">{{ts.trPK('myTeam','my-team-members')}}</p></ion-col>
<ion-col> <div class="number"><p class="numberEmp">{{EmpTotal}}</p></div></ion-col> <ion-col> <div class="number"><p class="numberEmp">{{EmployeeTotal}}</p></div></ion-col>
</ion-row> </ion-row>
</div> </div>

@ -92,7 +92,10 @@ export class DetailsComponent implements OnInit {
public selectedFilter = ''; public selectedFilter = '';
public itemType = ''; public itemType = '';
public monthNo: any; public monthNo: any;
isFavorite: boolean = false; isFavorite = false;
public EmpNumer:any;
public isFavor:any;
public EmployeeTotal:any;
@ -231,7 +234,9 @@ export class DetailsComponent implements OnInit {
this.showAttendanceTracking(); this.showAttendanceTracking();
// tslint:disable-next-line: max-line-length // tslint:disable-next-line: max-line-length
this.currentMonthName = this.direction === 'en' ? this.common.getMonthName(this.monthIndex) : this.common.getMonthNameAr(this.monthIndex); this.currentMonthName = this.direction === 'en' ? this.common.getMonthName(this.monthIndex) : this.common.getMonthNameAr(this.monthIndex);
this.getSuborinatesAttStatus(); // this.getSuborinatesAttStatus();
// this.getFavorit();
} }
@ -300,7 +305,6 @@ export class DetailsComponent implements OnInit {
this.timeCardService.getDayHoursTypeDetails(dayAndHoursReqObj, '', '', this.isPostNoLoad).subscribe((result) => { this.timeCardService.getDayHoursTypeDetails(dayAndHoursReqObj, '', '', this.isPostNoLoad).subscribe((result) => {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
console.log(result.GetDayHoursTypeDetailsList);
this.common.sharedService.setSharedData(result.GetDayHoursTypeDetailsList, 'RTP_IDs'); this.common.sharedService.setSharedData(result.GetDayHoursTypeDetailsList, 'RTP_IDs');
this.countAllAttendDays(result.GetDayHoursTypeDetailsList); this.countAllAttendDays(result.GetDayHoursTypeDetailsList);
} }
@ -308,7 +312,7 @@ export class DetailsComponent implements OnInit {
} }
monthCardSliders(monthNo) { monthCardSliders(monthNo) {
console.log(monthNo + "__________________")
/* change /* change
*/ */
@ -321,8 +325,7 @@ export class DetailsComponent implements OnInit {
//end //end
this.calendarConfig(this.getMonthName(monthNo), this.currentYear); this.calendarConfig(this.getMonthName(monthNo), this.currentYear);
console.log("next month =" + this.nextMonth);
console.log(" Month Name =" + this.currentMonthName);
} }
@ -350,7 +353,7 @@ export class DetailsComponent implements OnInit {
this.preMonth = 12; this.preMonth = 12;
} }
this.currentDate = new Date(this.currentYear, (this.preMonth - 1), 1); this.currentDate = new Date(this.currentYear, (this.preMonth - 1), 1);
console.log(this.currentDate);
this.calendarConfig(this.getMonthName(this.preMonth), this.currentYear); this.calendarConfig(this.getMonthName(this.preMonth), this.currentYear);
this.preMonth = this.preMonth - 1; this.preMonth = this.preMonth - 1;
this.nextMonth = this.preMonth + 2; this.nextMonth = this.preMonth + 2;
@ -525,6 +528,8 @@ export class DetailsComponent implements OnInit {
this.isSpecialist = this.common.sharedService.getSharedData('isSpecialist', false) ? true : false; this.isSpecialist = this.common.sharedService.getSharedData('isSpecialist', false) ? true : false;
if (this.employee) { if (this.employee) {
this.getEmpSubordinate(userID); this.getEmpSubordinate(userID);
this.isFavorite = false;
this.getFavorit();
} }
} }
@ -587,7 +592,7 @@ export class DetailsComponent implements OnInit {
}; };
this.getEmployeeSubordinatesRequestObject = body; this.getEmployeeSubordinatesRequestObject = body;
this.myTeamService.getEmployeeSubordinates(body).subscribe((result: any) => { this.myTeamService.getEmployeeSubordinates(body).subscribe((result: any) => {
console.log('one');
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
this.handleEmpResult(result.GetEmployeeSubordinatesList); this.handleEmpResult(result.GetEmployeeSubordinatesList);
} }
@ -595,6 +600,7 @@ export class DetailsComponent implements OnInit {
} }
handleEmpResult(result) { handleEmpResult(result) {
this.EmployeeTotal = result.length;
const lastItemIndex = result.length - 1; const lastItemIndex = result.length - 1;
const lastItem = result[lastItemIndex]; const lastItem = result[lastItemIndex];
if (lastItem) { if (lastItem) {
@ -625,7 +631,7 @@ export class DetailsComponent implements OnInit {
doInfinite(infiniteScroll) { doInfinite(infiniteScroll) {
if (!this.isReachEnd) { if (!this.isReachEnd) {
this.myTeamService.getEmployeeSubordinates(this.getEmployeeSubordinatesRequestObject).subscribe((result: any) => { this.myTeamService.getEmployeeSubordinates(this.getEmployeeSubordinatesRequestObject).subscribe((result: any) => {
console.log('two');
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
this.handleEmpResult(result.GetEmployeeSubordinatesList); this.handleEmpResult(result.GetEmployeeSubordinatesList);
} }
@ -715,37 +721,29 @@ export class DetailsComponent implements OnInit {
} }
} }
getSuborinatesAttStatus() { // getSuborinatesAttStatus() {
const request = { // const request = {
// VersionID:2.8, // // SearchMonth: "January",
// Channel:37, // // SearchYear: 2021
// LanguageID:2, // SearchMonth: "",
// MobileType:"android", // SearchYear: Number
// P_SESSION_ID:1142449920,
// MobileNumber:"0508079569",
// TokenID:"VHR_Token",
// P_USER_NAME:"111209",
// UserName:"111209",
// P_EMAIL_ADDRESS:"Faisal.AlQurashi@cloudsolutions.com.sa",
SearchMonth: "January",
SearchYear: 2021
}; // };
// this.myTeamService.getSuborinatesAttStatus().subscribe((result: any) => // // this.myTeamService.getSuborinatesAttStatus().subscribe((result: any) =>
this.myTeamService.getSuborinatesAttStatus(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => { // this.myTeamService.getSuborinatesAttStatus(request, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
this.handleRespondSuborinatesAttStatusResult(result); // this.handleRespondSuborinatesAttStatusResult(result);
}) // })
} // }
handleRespondSuborinatesAttStatusResult(result) { // handleRespondSuborinatesAttStatusResult(result) {
// this.EmpTotal = result.GetSubordinatesAttdStatusList.length; // // this.EmpTotal = result.GetSubordinatesAttdStatusList.length;
this.EmpTotal = result.GetSubordinatesAttdStatusList[0].NUMBER_OF_EMPLOYEES; // this.EmpTotal = result.GetSubordinatesAttdStatusList[0].NUMBER_OF_EMPLOYEES;
console.log("total no " + this.EmpTotal)
} // }
activeFilter(index: number) { activeFilter(index: number) {
console.log(this.filters);
if (this.currentActiveIndex !== index) { if (this.currentActiveIndex !== index) {
this.previousActiveIndex = this.currentActiveIndex; this.previousActiveIndex = this.currentActiveIndex;
this.currentActiveIndex = index; this.currentActiveIndex = index;
@ -804,8 +802,9 @@ export class DetailsComponent implements OnInit {
this.common.presentConfirmDialog( this.common.presentConfirmDialog(
confirmBoxhtml confirmBoxhtml
, () => { , () => {
var request = var request =
{ "USER_NAME": selEmp['USER_NAME'], "EMPLOYEE_DISPLAY_NAME": selEmp['EMPLOYEE_DISPLAY_NAME'], "EMAIL_ADDRESS": selEmp.EMAIL_ADDRESS, "EMPLOYEE_IMAGE": selEmp.EMPLOYEE_IMAGE, "IsFavorite": true }; [ { "USER_NAME": this.employee.EMPLOYEE_NUMBER, "EMPLOYEE_DISPLAY_NAME": this.employee.EMPLOYEE_DISPLAY_NAME, "EMAIL_ADDRESS": this.employee.EMAIL_ADDRESS, "EMPLOYEE_IMAGE": this.employee.EMPLOYEE_IMAGE, "IsFavorite": !this.isFavorite}];
this.saveUserFavruiteList(request); this.saveUserFavruiteList(request);
// this.isFavorite = false; // this.isFavorite = false;
@ -813,7 +812,7 @@ export class DetailsComponent implements OnInit {
}, () => { }, () => {
}) })
this.isFavorite = false;
// if (selectValue == "1" || selectValue == "2" || selectValue == "3") { // if (selectValue == "1" || selectValue == "2" || selectValue == "3") {
// this.isSelect = true; // this.isSelect = true;
// } // }
@ -832,6 +831,7 @@ export class DetailsComponent implements OnInit {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
this.common.stopLoading(); this.common.stopLoading();
this.favoriteUserList = result['Mohemm_GetFavoriteReplacementsList']; this.favoriteUserList = result['Mohemm_GetFavoriteReplacementsList'];
} }
@ -842,10 +842,27 @@ export class DetailsComponent implements OnInit {
}).subscribe((result) => { }).subscribe((result) => {
if (this.common.validResponse(result)) { if (this.common.validResponse(result)) {
this.common.toastPK("replacementRoll", "favorite-saved"); this.common.toastPK("replacementRoll", "favorite-saved");
this.isFavorite = true; this.isFavorite = !this.isFavorite;
} }
}) })
} }
getFavorit(){
this.worklistService.getFavoriteMyTeam({}, () => {
}).subscribe((result) => {
this.EmpNumer = result.Mohemm_GetFavoriteReplacementsList;
this.EmpNumer.forEach(element => {
if(element.USER_NAME === this.employee.EMPLOYEE_NUMBER){
this.isFavorite = true;
}
});
});
}
} }

@ -47,7 +47,7 @@
<div> <div>
<ion-row> <ion-row>
<ion-col><p class="text">{{ts.trPK('myTeam','my-team-members')}}</p></ion-col> <ion-col><p class="text">{{ts.trPK('myTeam','my-team-members')}}</p></ion-col>
<ion-col> <div class="number"><p class="numberEmp">{{EmpTotal}}</p></div></ion-col> <ion-col> <div class="number"><p class="numberEmp">{{EmployeeTotal}}</p></div></ion-col>
</ion-row> </ion-row>
</div> </div>

@ -31,6 +31,7 @@ export class HomeComponent implements OnInit {
public pageFirstVisit = false; public pageFirstVisit = false;
myColor: string = 'secondary'; myColor: string = 'secondary';
public EmpTotal = []; public EmpTotal = [];
public EmployeeTotal: any;
public options = { public options = {
cutoutPercentage: 80, cutoutPercentage: 80,
@ -99,7 +100,7 @@ export class HomeComponent implements OnInit {
this.common.sharedService.setSharedData( [], DetailsComponent.opendEmployeesARR); this.common.sharedService.setSharedData( [], DetailsComponent.opendEmployeesARR);
this.setIntitial(); this.setIntitial();
this.getSuborinatesAttStatus(); // this.getSuborinatesAttStatus();
} }
toggleColor() { toggleColor() {
this.myColor = 'secondary'; this.myColor = 'secondary';
@ -166,6 +167,7 @@ export class HomeComponent implements OnInit {
} }
handleEmpResult(result) { handleEmpResult(result) {
this.EmployeeTotal = result.length;
const lastItemIndex = result.length - 1; const lastItemIndex = result.length - 1;
const lastItem = result[lastItemIndex]; const lastItem = result[lastItemIndex];
if (lastItem) { if (lastItem) {
@ -240,33 +242,23 @@ export class HomeComponent implements OnInit {
getSuborinatesAttStatus(){ // getSuborinatesAttStatus(){
const request = { // const request = {
// VersionID:2.8, // // SearchMonth:"January",
// Channel:37, // SearchYear:Number,
// LanguageID:2,
// MobileType:"android",
// P_SESSION_ID:1142449920,
// MobileNumber:"0508079569",
// TokenID:"VHR_Token",
// P_USER_NAME:"111209",
// UserName:"111209",
// P_EMAIL_ADDRESS:"Faisal.AlQurashi@cloudsolutions.com.sa",
SearchMonth:"January",
SearchYear:2021
}; // };
// this.myTeamService.getSuborinatesAttStatus().subscribe((result: any) => // // this.myTeamService.getSuborinatesAttStatus().subscribe((result: any) =>
this.myTeamService.getSuborinatesAttStatus(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=> // this.myTeamService.getSuborinatesAttStatus(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{ // {
this.handleRespondSuborinatesAttStatusResult(result); // this.handleRespondSuborinatesAttStatusResult(result);
}) // })
} // }
handleRespondSuborinatesAttStatusResult(result){ // handleRespondSuborinatesAttStatusResult(result){
// this.EmpTotal = result.GetSubordinatesAttdStatusList.length; // // this.EmpTotal = result.GetSubordinatesAttdStatusList.length;
this.EmpTotal = result.GetSubordinatesAttdStatusList[0].NUMBER_OF_EMPLOYEES; // this.EmpTotal = result.GetSubordinatesAttdStatusList[0].NUMBER_OF_EMPLOYEES;
console.log("total no "+this.EmpTotal) // console.log("total no "+this.EmpTotal)
} // }
} }

@ -7,7 +7,7 @@ import { AuthenticationService } from "src/app/hmg-common/services/authenticatio
export class MyTeamService { export class MyTeamService {
public static EMPLOYEE_SHARED_DATA = 'employee'; public static EMPLOYEE_SHARED_DATA = 'employee';
public static getMyTeam = 'Services/ERP.svc/REST/GET_EMPLOYEE_SUBORDINATES'; public static getMyTeam = 'Services/ERP.svc/REST/GET_EMPLOYEE_SUBORDINATES';
public static getSuborinateStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS'; // public static getSuborinateStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS';
constructor( constructor(
@ -20,11 +20,13 @@ export class MyTeamService {
return this.con.post(MyTeamService.getMyTeam, request, onError, errorLabel); return this.con.post(MyTeamService.getMyTeam, request, onError, errorLabel);
} }
public getSuborinatesAttStatus(absence: any, onError?: any, errorLabel?: string){ // public getSuborinatesAttStatus(absence: any, onError?: any, errorLabel?: string){
const request = absence; // const request = absence;
this.authService.authenticateRequest(request); // this.authService.authenticateRequest(request);
return this.con.post(MyTeamService.getSuborinateStatus, request, onError, errorLabel); // console.log("________________________________");
} // console.log(request);
// return this.con.post(MyTeamService.getSuborinateStatus, request, onError, errorLabel);
// }

@ -59,7 +59,13 @@ export class WorklistService {
var req: any = {}; var req: any = {};
req['Mohemm_ChangeReplacementsInputList'] = request; req['Mohemm_ChangeReplacementsInputList'] = request;
this.authService.authenticateRequest(req); this.authService.authenticateRequest(req);
console.log(req);
return this.api.post(WorklistService.saveFavorite, req, onError, errorLabel); return this.api.post(WorklistService.saveFavorite, req, onError, errorLabel);
} }
}
public getFavoriteMyTeam(req: any, onError?: any, errorLabel?: string): Observable<any> {
this.authService.authenticateRequest(req);
return this.api.post(WorklistService.getFavorite, req, onError, errorLabel);
}
}

@ -1175,6 +1175,10 @@
"en": "Topic", "en": "Topic",
"ar": "العنوان" "ar": "العنوان"
}, },
"actionBy": {
"en": "Action By :",
"ar": " : بواسطة"
},
"postedDate": { "postedDate": {
"en": "Posted on", "en": "Posted on",
"ar": "نشر في" "ar": "نشر في"
@ -1205,7 +1209,7 @@
}, },
"HR-Request": { "HR-Request": {
"en": "HR Request", "en": "HR Request",
"ar": "HR طلبات ال " "ar": "HR طلبات"
}, },
"performance-evaluation": { "performance-evaluation": {
"en": "Performance Evaluation", "en": "Performance Evaluation",
@ -1635,6 +1639,14 @@
"en": "Absence list", "en": "Absence list",
"ar": "قائمة الإجازات" "ar": "قائمة الإجازات"
}, },
"AccrualUsed": {
"en": "Accrual Used",
"ar": "الأستحقاق المستخدم"
},
"PreviousYears": {
"en": "Previous Years",
"ar": "السنوات السابقه"
},
"accrualBalances": { "accrualBalances": {
"en": "Accrual Balances", "en": "Accrual Balances",
"ar": "رصيد حساب المستحقات" "ar": "رصيد حساب المستحقات"

Loading…
Cancel
Save