Merge branch 'Fatima-Q2-June' into MOHEMM-Q2-DEV

MOE_DEV_NEW_TEMPORARY_DESIGN
umasoodch 5 years ago
commit d086e9ebff

@ -23,6 +23,7 @@ const routes: Routes = [
{ path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' },
{ path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' },
{ path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' },
{ path: 'mowadhafi', loadChildren: './mowadhafi/mowadhafi.module#MowadhafiPageModule' },
{ path: 'erm-channel', loadChildren: './erm-channel/erm-channel.module#ErmChannelPageModule' },
{ path: 'backend-integrations', loadChildren: './backend-integrations/backend-integrations.module#BackendIntegrationsPageModule' }

@ -131,6 +131,14 @@
{{ts.trPK('myTeam','myTeam-header')}}
</ion-label>
</ion-item>
<ion-item [hidden]="TeamFlag!='true'" (click)="openMyRequestPage()">
<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">
HR REQUEST
</ion-label>
</ion-item>
<ion-item (click)="openChangePassword()">
<ion-thumbnail slot="start" class="menu-thumb">
<img style= "height: 25px !important;" src="../assets/imgs/lock_icon.png" item-left>

@ -1119,11 +1119,15 @@ export class CommonService {
this.nav.navigateForward(['/my-team/details']);
}
public openMyRequestPage() {
this.nav.navigateForward(['/my-team/my-request']);
this.nav.navigateForward(['/mowadhafi/my-request']);
}
public openHRRequestPage() {
this.nav.navigateForward(['/my-team/hr-request']);
this.nav.navigateForward(['/mowadhafi/hr-request']);
}
public openRequestDetailsPage() {
this.nav.navigateForward(['/mowadhafi/request-details']);
}
public openPage(link: string) {

@ -5,7 +5,7 @@
<ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','HR-request')}}</ion-title>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','createHR-Request')}}</ion-title>
</ion-toolbar>
</ion-header>
@ -89,9 +89,11 @@
</ion-col>
</ion-row>
</div>
<div>
<ion-button class="sendCodeBtn" (click)="createRequest()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
<ion-footer class="footer">
<div class="Btn">
<ion-button class="CreateBtn" (click)="createRequest()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
</div>
</ion-footer>
</div>
<!-- ///////////////////////////////////////////////////////////////////next page -->
@ -128,7 +130,9 @@
<!-- ///////////////////////////////////////////////////////////////////next page -->
<div *ngIf="showRequestDetails" class="result-serviceType">
<div *ngIf="showRequestDetails" >
<ion-card class="result-serviceType">
<ion-card-content>
<div class="request-heading">
<span>{{ts.trPK('userProfile','ServiceType')}}</span>
</div>
@ -149,47 +153,64 @@
</ion-row>
</div>
<div class="request-heading">
<span>{{ts.trPK('userProfile','DeptName')}}</span>
</div>
<div class="filed">
<label class="selectLabel">Select Department</label>
</div>
<div class="request-heading">
<span>{{ts.trPK('userProfile','RelatedSection')}}</span>
</div>
<div class="filed">
<label class="selectLabel">Select Section</label>
</div>
<div class="request-heading">
<span>{{ts.trPK('userProfile','RelatedTopic')}}</span>
</div>
<div class="filed">
<label class="selectLabel">Select Topic</label>
</div>
<!-- /////////////////////////////////////////// -->
<div>
<div>
<ion-list>
<label class="labels">{{ts.trPK('userProfile','DeptName')}}</label>
<ion-item lines="none" class="filed-container">
<select class="filed" placeholder="Select Department" type="text">
<option value="1">1</option>
<option value="2">2</option>
</select>
</ion-item>
<label class="labels">{{ts.trPK('userProfile','RelatedSection')}}</label>
<ion-item lines="none" class="filed-container">
<select class="filed" placeholder="Select Sectiont" type="text">
<option value="1">1</option>
<option value="2">2</option>
</select>
</ion-item>
<label class="labels">{{ts.trPK('userProfile','RelatedTopic')}}</label>
<ion-item lines="none" class="filed-container" placeholder="Select Topic" type="text">
<select class="filed" placeholder="Select Topic" type="text">
<option value="1">1</option>
<option value="2">2</option>
</select>
</ion-item>
</ion-list>
</div>
<div class="request-heading">
<span>{{ts.trPK('userProfile','SupportingDocument')}}</span>
</div>
<div style="margin-left: 15px; margin-top: 12px;">
<img (click)="uploadDocument()" src="../assets/imgs/add-photo.svg">
<div>
<img slot="start" style=" height: 55px;" (click)="uploadDocument()" src="../assets/imgs/add-photo.svg">
</div>
<div class="request-heading">
<span>{{ts.trPK('userProfile','Description')}}</span>
</div>
<div class="filedDesc">
<label class="labelDesc">Description</label>
</div>
<!-- <div class="filedDesc">
<ion-input class="labelDesc" placeholder="{{ts.trPK('userProfile','Description')}}" type="text">
</ion-input>
</div> -->
<ion-col size="12">
<ion-item style="margin-left: -20px;margin-right: -13px;" lines="none">
<ion-input [ngClass]="direction == 'en' ? 'filedDesc':'filedDesc-ar' " placeholder="{{ts.trPK('userProfile','Description')}}" type="text"></ion-input>
</ion-item>
</ion-col>
<ion-row style="margin-left: 5px;">
<div class="cancelRequest">
<ion-button (click)="cancelRequest()">Cancel
</ion-button>
</div>
<div class="submitRequest">
<ion-button (click)="submitRequest()">Submit
</ion-button>
</ion-card-content>
</ion-card>
<ion-footer style=" padding:15px !important;" >
<div ng class="gridDiv" aria-disabled="true">
<button class="gridCancelBtn" ion-button (click)="cancelRequest()">{{ts.trPK('general','cancel')}}</button>
<button class="gridSubmitBtn" ion-button (click)="submitRequest()">{{ts.trPK('general','submit')}}</button>
</div>
</ion-row>
</ion-footer>
</div>
</ion-content>

@ -230,31 +230,29 @@ ion-input {
font-family: 'WorkSans-Bold';
}
.radio-list{
background: white;
margin-left: 18px;
/* margin-right: 10px; */
margin-top: 12px;
}
// .radio-list{
// background: white;
// margin-left: 18px;
// /* margin-right: 10px; */
// margin-top: 12px;
// }
.result-serviceType{
position: relative;
background: white;
padding-bottom: 20px;
border-radius: 20px;
z-index: 1;
border-radius: 20px;
border-radius: 25px;
border: 1px solid #ccc;
padding-top: 12px;
margin: 25px 22px 2px 22px;
padding-bottom: 241px;
margin: 15px;
}
.request-heading {
span {
display: block;
padding-top: 8px;
padding-left: 15px;
margin-bottom: 15px;
// padding-top: 8px;
// padding-left: 15px;
/* font-weight: bold; */
font-size: 14px;
font-family: 'WorkSans-Bold';
@ -269,15 +267,29 @@ ion-input {
padding-top: 6px !important;
color: #636161;
padding-bottom: 15px;
padding-right: 252px;
}
.filedDesc{
border-radius: 30px;
border: 1px solid #d3d5d5 !important;
margin: 10px;
padding-left: 11px !important;
// margin: 10px;
padding-left: 20px !important;
padding-top: 6px !important;
color: #636161;
--padding-bottom: 90px;
font-size: 13px;
text-align: start;
}
.filedDesc-ar{
border-radius: 30px;
border: 1px solid #d3d5d5 !important;
// margin: 10px;
padding-right: 20px !important;
padding-top: 6px !important;
color: #636161;
padding-bottom: 110px;
--padding-bottom: 90px;
font-size: 13px;
text-align: start;
}
.labelDesc{
@ -299,30 +311,120 @@ ion-input {
color: black;
}
.cancelRequest{
padding: 10px 0px 10px 10px;
ion-button{
border-radius: 7px;
padding: 12px 25px 12px 25px;
background: #d00a0a;
--background: transparent;
--box-shadow: none !important;
height: auto;
min-height: inherit;
font-size: 16px;
font-weight: bold;
}
}
.submitRequest{
padding: 10px 10px 10px 1px;
ion-button{
border-radius: 7px;
padding: 12px 25px 12px 25px;
// .cancelRequest{
// padding: 10px 7px 10px 0px;
// ion-button{
// border-radius: 7px;
// padding: 12px 30px 12px 30px;
// background: #d00a0a;
// --background: transparent;
// --box-shadow: none !important;
// height: auto;
// min-height: inherit;
// font-size: 16px;
// font-weight: bold;
// margin-top: -5px;
// }}
// .submitRequest{
// padding: 10px 7px 10px 0px;
// ion-button{
// border-radius: 7px;
// padding: 12px 30px 12px 30px;
// background: #19a163;
// --background: transparent;
// --box-shadow: none !important;
// height: auto;
// min-height: inherit;
// font-size: 16px;
// font-weight: bold;
// margin-top: -5px;
// }}
.gridDiv{
width: 100%;
height: 40px;
margin-top: 18px;
font-size: 14px;
}
.gridCancelBtn{
min-width: auto;
// margin: 0px;
padding: 10px;
border: 1px solid var(--cusgray);
box-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
width: 45%;
height: 100%;
border-radius: 8px;
background: #d00a0a;
color: white;
margin-left: 15px;
margin-right: 5px;
font-family: 'WorkSans-bold';
}
.gridSubmitBtn{
min-width: auto;
// margin: 0px;
padding: 10px;
border: 1px solid var(--cusgray);
box-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
width: 45%;
height: 100%;
border-radius: 8px;
background: #19a163;
--background: transparent;
--box-shadow: none !important;
height: auto;
min-height: inherit;
font-size: 16px;
font-weight: bold;
}}
color: white;
// margin-left: 15px;
// margin-right: 5px;
font-family: 'WorkSans-bold';}
.filed-container{
margin-right: -17px;
margin-left: -25px;
}
.labels{
display: block;
margin-top: 15px;
padding-top: 8px;
padding-left: 15px;
font-size: 14px;
font-family: 'WorkSans-Bold';
}
.CreateBtn{
--background: var(--newgreen) !important;
background: var(--newgreen) !important;
white-space: normal;
color: var(--light);
text-transform: capitalize;
min-height: 1.0cm;
--border-radius: 7px !important;
border-radius: 7px !important;
--min-height: 1.6cm !important;
width: 315px;
}
.footer{
padding: 15px 0px 0px 0px;
background-color: var(--light) !important;
border: 0px !important;
box-shadow: none !important;
-webkit-box-shadow: none;
}
.Btn{
margin: auto; text-align: center; display: block;
}
.footer2{
padding: 15px 0px 0px 24px;
background-color: var(--light) !important;
border: 0px !important;
box-shadow: none !important;
-webkit-box-shadow: none;
}

@ -3,7 +3,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { HRRequestComponent } from './hr-request.component';
describe('HRRequestComponent', () => {
describe('HrRequestComponent', () => {
let component: HRRequestComponent;
let fixture: ComponentFixture<HRRequestComponent>;

@ -5,7 +5,7 @@ import { TranslatorService } from 'src/app/hmg-common/services/translator/transl
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
import { MyTeamService } from '../service/my-team.service';
import { MowadhafiService } from '../mowadhafi.service';
import { Location } from '@angular/common';
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
import { LoginModel } from 'src/app/authentication/models/LoginModel';
@ -36,6 +36,7 @@ export class HRRequestComponent implements OnInit {
public searchKeySelect = 'Complaints';
myColor: string = 'secondary';
public showRequestDetails = false;
public proID= "CS"
public direction: string;
@ -45,16 +46,22 @@ export class HRRequestComponent implements OnInit {
public authService: AuthenticationService,
public sharedData: SharedDataService,
public events: Events,
public myTeamService: MyTeamService,
public MowadhafiService: MowadhafiService,
private location: Location,
private menu: MenuController,
) {
this.direction = TranslatorService.getCurrentDirection();
this.direction = TranslatorService.getCurrentLanguageName();
}
ngOnInit() {
this.getUserInformation();
this.getTicketTypes();
this.getProject();
this.getProjectDepartments();
this.getDepartmentSections();
this.getSectionTopics();
}
@ -65,13 +72,13 @@ export class HRRequestComponent implements OnInit {
getUserInformation(){
const request = {
P_SELECTED_EMPLOYEE_NUMBER:"121816",
// P_SELECTED_EMPLOYEE_NUMBER:"121816",
P_SELECTED_RESP_ID:-999,
P_PAGE_NUM:1,
P_PAGE_LIMIT:1
};
this.myTeamService.getUserInfo(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
this.MowadhafiService.getUserInfo(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handleUserInfoResult(result);
@ -96,17 +103,91 @@ export class HRRequestComponent implements OnInit {
// console.log("total no "+this.EmpTotal)
}
getTicketTypes(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817"
};
this.MowadhafiService.getTicketTypes(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketTypesResult(result);
}) }
handlegetTicketTypesResult(result){
}
getProject(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgProjectCode:"CS"
};
this.MowadhafiService.getProject(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetProjectResult(result);
}) }
handlegetProjectResult(result){
}
getProjectDepartments(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgProjectId:11,
};
this.MowadhafiService.getProjectDepartments(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetProjectDepartmentsResult(result);
}) }
handlegetProjectDepartmentsResult(result){
}
getDepartmentSections(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgProjectDepartmentId:1
};
this.MowadhafiService.getDepartmentSections(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetDepartmentSectionsResult(result);
}) }
handlegetDepartmentSectionsResult(result){
}
getSectionTopics(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgDepartmentSectionId:1
};
this.MowadhafiService.getSectionTopics(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetSectionTopicsResult(result);
}) }
handlegetSectionTopicsResult(result){
}
// public sendActivationCode() {
// }
// VerifyCode(){
// }
createRequest(){
if(this.showRequestDetails){
this.showRequestDetails = false

@ -0,0 +1,46 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';
import { IonicModule } from '@ionic/angular';
import { MowadhafiPage } from './mowadhafi.page';
import { HmgCommonModule } from '../hmg-common/hmg-common.module';
import {MyRequestComponent} from './my-request/my-request.component';
import {HRRequestComponent} from './hr-request/hr-request.component';
import {RequestDetailsComponent} from'./request-details/request-details.component';
const routes: Routes = [
{
path: '',
component: MowadhafiPage,
children:[{
path: 'my-request',
component: MyRequestComponent
},
{
path: 'hr-request',
component: HRRequestComponent
},
{
path: 'request-details',
component: RequestDetailsComponent
}
]
}
];
@NgModule({
imports: [
HmgCommonModule,
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [MowadhafiPage,MyRequestComponent,HRRequestComponent,RequestDetailsComponent]
})
export class MowadhafiPageModule {}

@ -0,0 +1,10 @@
<!-- <ion-header>
<ion-toolbar>
<ion-title>mowadhafi</ion-title>
</ion-toolbar>
</ion-header>
-->
<ion-content>
<ion-router-outlet></ion-router-outlet>
</ion-content>

@ -0,0 +1,27 @@
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { MowadhafiPage } from './mowadhafi.page';
describe('MowadhafiPage', () => {
let component: MowadhafiPage;
let fixture: ComponentFixture<MowadhafiPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MowadhafiPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MowadhafiPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-mowadhafi',
templateUrl: './mowadhafi.page.html',
styleUrls: ['./mowadhafi.page.scss'],
})
export class MowadhafiPage implements OnInit {
constructor() { }
ngOnInit() {
}
}

@ -0,0 +1,12 @@
import { TestBed } from '@angular/core/testing';
import { MowadhafiService } from './mowadhafi.service';
describe('MowadhafiService', () => {
beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => {
const service: MowadhafiService = TestBed.get(MowadhafiService);
expect(service).toBeTruthy();
});
});

@ -0,0 +1,92 @@
import { Injectable } from '@angular/core';
import { ConnectorService } from 'src/app/hmg-common/services/connector/connector.service';
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
@Injectable({
providedIn: 'root'
})
export class MowadhafiService {
public static EMPLOYEE_SHARED_DATA = 'employee';
public static getMyTeam = 'Services/ERP.svc/REST/GET_EMPLOYEE_SUBORDINATES';
public static getSuborinateStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS';
public static getUserInfo ='Services/ERP.svc/REST/Get_UserInformation';
public static getTicketTypes ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketTypes';
public static getProject ='Services/COCWS.svc/REST/Mohemm_ITG_GetProjects';
public static getProjectDepartments ='Services/COCWS.svc/REST/Mohemm_ITG_GetProjectDepartments';
public static getDepartmentSections ='Services/COCWS.svc/REST/Mohemm_ITG_GetDepartmentSections';
public static getSectionTopics ='Services/COCWS.svc/REST/Mohemm_ITG_GetSectionTopics';
public static getTicketsByEmployee ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketsByEmployee';
public static getTicketStatisticsByEmp ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketStatisticsByEmployee';
public static getTicketTransaction ='Services/COCWS.svc/REST/Mohemm_ITG_GetTicketTransaction';
public static getTicketDetails =' Services/COCWS.svc/REST/Mohemm_ITG_GetTicketDetails';
constructor(
public con: ConnectorService,
private authService: AuthenticationService
) { }
public getEmployeeSubordinates(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getMyTeam, request, onError, errorLabel);
}
public getSuborinatesAttStatus(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getSuborinateStatus, request, onError, errorLabel);
}
public getUserInfo(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getUserInfo, request, onError, errorLabel);
}
public getTicketTypes(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketTypes, request, onError, errorLabel);
}
public getProject(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getProject, request, onError, errorLabel);
}
public getProjectDepartments(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getProjectDepartments, request, onError, errorLabel);
}
public getDepartmentSections(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getDepartmentSections, request, onError, errorLabel);
}
public getSectionTopics(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getSectionTopics, request, onError, errorLabel);
}
public getTicketsByEmployee(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketsByEmployee, request, onError, errorLabel);
}
public getTicketStatisticsByEmp(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketStatisticsByEmp, request, onError, errorLabel);
}
public getTicketTransaction(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketTransaction, request, onError, errorLabel);
}
public getTicketDetails(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MowadhafiService.getTicketDetails, request, onError, errorLabel);
}
}

@ -0,0 +1,34 @@
<ion-header>
<ion-toolbar class="header-toolbar-new" >
<ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','MyHR-request')}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<!-- <div>
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
</div> -->
<div>
<ion-card class="result-container" (click)="openRequestDetailsPage()">
<ion-card-content>
<ion-row style="margin-left: -3px; margin-right: -9px;">
<ion-col class="text">Complaints</ion-col>
<ion-col class="date">{{ts.trPK('userProfile','postedDate')}} May2,2021</ion-col>
</ion-row>
<ion-row>There is some Complaints</ion-row>
<ion-row style="margin-top: 5px;">Pending</ion-row>
</ion-card-content>
</ion-card>
</div>
</ion-content>
<ion-footer class="footer">
<div class="Btn">
<ion-button class="CreateBtn" (click)="openHRRequestPage()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
</div>
</ion-footer>

@ -0,0 +1,63 @@
.empty-en{
color: black;
text-align: center;
font-size: 15px;
font-family: WorkSans-Bold;
margin: 50px 0px 0px 100px;
}
.empty-ar{
color: black;
text-align: center;
font-size: 15px;
font-family: WorkSans-Bold;
margin: 50px 100px 0px 0px;
}
.result-container{
position: relative;
background: white;
/* padding-bottom: 3px; */
border-radius: 20px;
z-index: 1;
margin: 15px;
border-radius: 10px;
border: 1px solid #ccc;
}
.text{
font-size: 15px;
margin-top: -9px;
font-family: 'WorkSans-bold';
}
.date{
margin-top: -9px;
margin-right: -49px;
color: gray;
font-size: 12px;
}
.CreateBtn{
--background: var(--newgreen) !important;
background: var(--newgreen) !important;
white-space: normal;
color: var(--light);
text-transform: capitalize;
min-height: 1.0cm;
--border-radius: 7px !important;
border-radius: 7px !important;
--min-height: 1.6cm !important;
width: 315px;
}
.footer{
padding: 15px 0px;
background-color: var(--light) !important;
border: 0px !important;
box-shadow: none !important;
-webkit-box-shadow: none;
}
.Btn{
margin: auto; text-align: center; display: block;
}

@ -5,7 +5,7 @@ import { TranslatorService } from 'src/app/hmg-common/services/translator/transl
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
import { MyTeamService } from '../service/my-team.service';
import { MowadhafiService } from '../mowadhafi.service';
import { Location } from '@angular/common';
@Component({
@ -23,7 +23,7 @@ public direction : String;
public authService: AuthenticationService,
public sharedData: SharedDataService,
public events: Events,
public myTeamService: MyTeamService,
public MowadhafiService: MowadhafiService,
private location: Location,
private menu: MenuController,
@ -31,7 +31,9 @@ public direction : String;
this.direction = TranslatorService.getCurrentLanguageName();
}
ngOnInit() {}
ngOnInit() {
this.getTicketsByEmployee();
}
goback() {
this.location.back();
@ -43,4 +45,27 @@ public direction : String;
this.menu.toggle();
}
public openRequestDetailsPage() {
this.cs.openRequestDetailsPage();
this.menu.toggle();
}
getTicketsByEmployee(){
const request = {
// TokenID:"xxx",
// EmployeeNumber:"191817",
ItgPageSize:10,
ItgPageNo:1
};
this.MowadhafiService.getTicketsByEmployee(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketsByEmployeeResult(result);
}) }
handlegetTicketsByEmployeeResult(result){
}
}

@ -0,0 +1,66 @@
<ion-header>
<ion-toolbar class="header-toolbar-new">
<ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','MyHR-request')}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<!-- <div>
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
</div> -->
<div>
<ion-card class="result-container" >
<ion-card-content>
<ion-row style="margin-left: -3px; margin-right: -9px;">
<ion-col >Pending</ion-col>
<ion-col class="date">{{ts.trPK('userProfile','postedDate')}} May2,2021</ion-col>
</ion-row>
<ion-col [size]="12">
<h2 class="labels">{{ts.trPK('userProfile','refrence')}}</h2>
<p class="text">453388</p>
</ion-col>
<ion-col [size]="12">
<h2 class="labels"> {{ts.trPK('userProfile','section')}}</h2>
<p class="text">Employee</p>
</ion-col>
<ion-col [size]="12">
<h2 class="labels"> {{ts.trPK('userProfile','topic')}}</h2>
<p class="text">Change Tiket</p>
</ion-col>
<ion-col [size]="12">
<h2 class="labels">{{ts.trPK('userProfile','Description')}}</h2>
<p class="DescrText">descriptions</p>
</ion-col>
</ion-card-content>
</ion-card>
</div>
<div>
<ion-card class="result-containerList" >
<ion-card-content>
<div style="position: relative;">
<div [ngClass]=" direction == 'en'? 'request-list-container' : 'request-list-container-ar'" >
<div>
<!-- <div *ngFor="let formattedAction of showFormattedAction; let i = index"> -->
<span [ngClass]="direction == 'en'? 'text-span':'text-span-ar'">Action By</span>
<div class="action-data">
<p >descriptions</p>
<span [ngClass]="direction == 'en'? 'date-span':'date-span-ar'">May 16,2021</span>
</div>
</div>
</div>
</div>
</ion-card-content>
</ion-card>
</div>
</ion-content>

@ -0,0 +1,174 @@
.sendCodeBtn{
--background: #269DB8;
color: white;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin-left: 23px !important;
margin-top: 15px !important;
margin-bottom: 20px !important;
/* border-radius: 4px; */
height: 26px;
/* padding: 6px 24px; */
font-size: 15px;
width: 322px;
}
.empty-en{
color: black;
text-align: center;
font-size: 15px;
font-family: WorkSans-Bold;
margin: 50px 0px 0px 100px;
}
.empty-ar{
color: black;
text-align: center;
font-size: 15px;
font-family: WorkSans-Bold;
margin: 50px 100px 0px 0px;
}
.result-container{
position: relative;
background: white;
/* padding-bottom: 3px; */
border-radius: 20px;
z-index: 1;
margin: 15px;
border-radius: 10px;
border: 1px solid #ccc;
}
.result-containerList{
position: relative;
background: white;
/* padding-bottom: 3px; */
border-radius: 20px;
z-index: 1;
margin: 15px;
border-radius: 10px;
border: 1px solid #ccc;
}
.text{
font-size: 15px;
// margin-top: -9px;
font-family: 'WorkSans-bold';
}
.date{
// margin-top: -9px;
margin-right: -49px;
color: gray;
font-size: 12px;
}
.labels{
font-size: 13px;
margin-bottom: 0px;
margin-top: -10px;
color: gray;
}
.request-list-container {
position: relative;
padding-left: 37px;
clear: both;
min-height: 200px;
margin-bottom: 80px;
padding-top: 15px;
}
.request-list-container:before{
content: "";
position: absolute;
height: 100%;
width: 4px;
left: 7px;
top: 15px;
background-color: #f5f4f4;
}
.request-list-container-ar {
position: relative;
padding-left: 60px;
clear: both;
min-height: 200px;
margin-bottom: 80px;
padding-top: 15px;
}
.request-list-container-ar:before{
content: "";
position: absolute;
height: 100%;
width: 4px;
left: 30px;
top: 15px;
right: 6px;
background-color: #dddddd;
}
.text-span {
position: relative;
display: block;
// margin-bottom: 10px;
font-family: 'WorkSans-bold';
}
.text-span:before{
content: "";
position: absolute;
left: -35px;
border-radius: 50%;
width: 15px;
height: 15px;
background-color: #269db8;
top: 1px;
}
.text-span-ar{
position: relative;
display: block;
// margin-bottom: 10px;
/* margin-top: 10px; */
margin-right: 30px;
}
.text-span-ar:before{
content: "";
position: absolute;
right: -29px;
border-radius: 50%;
width: 15px;
height: 15px;
background-color: #269db8;
top: 1px;
}
.action-data{
background-color: white;
padding: 1px;
border-radius: 20px;
font-family: WorkSans-Regular;
// padding-left: 15px;
margin-right: 20px;
margin-bottom: 15px;
p{
font-size: 14px;
}
}
.date-span{
font-size: 13px;
margin-bottom: 0px;
margin-top: -10px;
color: gray;
margin-left: 178px;
}
.date-span-ar{
font-size: 13px;
margin-bottom: 0px;
margin-top: -10px;
color: gray;
margin-right: 155px;
}

@ -0,0 +1,27 @@
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RequestDetailsComponent } from './request-details.component';
describe('RequestDetailsComponent', () => {
let component: RequestDetailsComponent;
let fixture: ComponentFixture<RequestDetailsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ RequestDetailsComponent ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(RequestDetailsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,75 @@
import { Component, OnInit } from '@angular/core';
import { Platform, Events, MenuController } from '@ionic/angular';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
import { MowadhafiService } from '../mowadhafi.service';
import { Location } from '@angular/common';
@Component({
selector: 'app-request-details',
templateUrl: './request-details.component.html',
styleUrls: ['./request-details.component.scss'],
})
export class RequestDetailsComponent implements OnInit {
public direction : String;
constructor(
public ts: TranslatorService,
public cs: CommonService,
public authService: AuthenticationService,
public sharedData: SharedDataService,
public events: Events,
public MowadhafiService: MowadhafiService,
private location: Location,
private menu: MenuController,
) {
this.direction = TranslatorService.getCurrentLanguageName();
}
ngOnInit() {
this.getTicketTransaction();
this.getTicketDetails()
}
goback() {
this.location.back();
}
getTicketTransaction(){
const request = {
// EmployeeNumber:"191817",
ItgTicketId:"5a10de61-c4db-4c77-e464-08d8a1beaaac",
};
this.MowadhafiService.getTicketTransaction(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketTransactionResult(result);
}) }
handlegetTicketTransactionResult(result){
}
getTicketDetails(){
const request = {
// EmployeeNumber:"191817",
ItgTicketId:"5a10de61-c4db-4c77-e464-08d8a1beaaac",
};
this.MowadhafiService.getTicketDetails(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handlegetTicketDetailsResult(result);
}) }
handlegetTicketDetailsResult(result){
}
}

@ -17,7 +17,7 @@
<!-- <ion-col><img src="../assets/imgs/fav filled.svg"></ion-col> -->
</div>
<div class="user-image">
<img [src]="employee.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+employee.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" alt="Team Member Image"/>
<img class="img" [src]="employee.EMPLOYEE_IMAGE ? 'data:image/png;base64,'+employee.EMPLOYEE_IMAGE : '../assets/imgs/profile.png'" alt="Team Member Image"/>
</div>
<div style="margin-right: 16px;" slot="end" >
<a [ngClass]="employee.EMPLOYEE_MOBILE_NUMBER == '' ? 'disable-phone action-button-icon' : 'action-button-icon'" href="tel:{{employee.EMPLOYEE_MOBILE_NUMBER}}"></a>

@ -232,7 +232,17 @@ ion-title{
padding: 15px;
border-bottom: 1px solid #ccc;
}
.img{
width: 100px;
height: 100px;
display: inline-flex;
overflow: hidden;
border-radius: 78% !important;
position: relative;
/* top: 34px; */
background: transparent;
margin-left: -3px;
}
///////////////////////// Team Members css //////////////////////@extend
.filters-row {

@ -1,22 +0,0 @@
<ion-header>
<ion-toolbar class="header-toolbar-new">
<ion-buttons slot="start">
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
</ion-buttons>
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','MyHR-request')}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div>
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
</div>
</ion-content>
<ion-footer>
<div>
<ion-button class="sendCodeBtn" (click)="openHRRequestPage()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
</div>
</ion-footer>

@ -1,33 +0,0 @@
.sendCodeBtn{
--background: #269DB8;
color: white;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin-left: 23px !important;
margin-top: 15px !important;
margin-bottom: 20px !important;
/* border-radius: 4px; */
height: 26px;
/* padding: 6px 24px; */
font-size: 15px;
width: 322px;
}
.empty-en{
color: black;
text-align: center;
font-size: 15px;
font-family: WorkSans-Bold;
margin: 50px 0px 0px 100px;
}
.empty-ar{
color: black;
text-align: center;
font-size: 15px;
font-family: WorkSans-Bold;
margin: 50px 100px 0px 0px;
}

@ -8,8 +8,7 @@ import { IonicModule } from '@ionic/angular';
import { MyTeamPage } from './my-team.page';
import { HmgCommonModule } from '../hmg-common/hmg-common.module';
import {MyRequestComponent} from './my-request/my-request.component';
import {HRRequestComponent} from './/hr-request/hr-request.component';
import { from } from 'rxjs';
const routes: Routes = [
@ -28,14 +27,7 @@ const routes: Routes = [
path: 'details-2',
component: DetailsComponent
},
{
path: 'my-request',
component: MyRequestComponent
},
{
path: 'hr-request',
component: HRRequestComponent
}
]
}
@ -49,6 +41,7 @@ const routes: Routes = [
IonicModule,
RouterModule.forChild(routes)
],
declarations: [MyTeamPage,HomeComponent,DetailsComponent,MyRequestComponent,HRRequestComponent]
declarations: [MyTeamPage,HomeComponent,DetailsComponent,
]
})
export class MyTeamPageModule {}

@ -8,7 +8,8 @@ export class MyTeamService {
public static EMPLOYEE_SHARED_DATA = 'employee';
public static getMyTeam = 'Services/ERP.svc/REST/GET_EMPLOYEE_SUBORDINATES';
public static getSuborinateStatus = 'Services/ERP.svc/REST/GET_SUBORDINATES_ATTD_STATUS';
public static getUserInfo ='Services/ERP.svc/REST/Get_UserInformation';
constructor(
public con: ConnectorService,
private authService: AuthenticationService
@ -25,11 +26,7 @@ export class MyTeamService {
return this.con.post(MyTeamService.getSuborinateStatus, request, onError, errorLabel);
}
public getUserInfo(absence: any, onError?: any, errorLabel?: string){
const request = absence;
this.authService.authenticateRequest(request);
return this.con.post(MyTeamService.getUserInfo, request, onError, errorLabel);
}
}

@ -38,8 +38,8 @@
"ar": "هل أنت متأكد من إغلاق الحساب"
},
"forgot-id": {
"en": "Forgot Patient ID",
"ar": "نسيت رقم الملف"
"en": "Forgot Employee ID",
"ar": "نسيت رقم الموظف"
},
"forgot-password": {
"en": "Forgot Password",
@ -62,12 +62,12 @@
"ar": "كشف بالراتب"
},
"forgot-your-id": {
"en": "Forgot Your Patient ID",
"ar": "هل نسيت رقم ملف المريض"
"en": "Forgot Your Employee ID",
"ar": "هل نسيت رقمك الوظيفي"
},
"forgot-desc": {
"en": "Enter your mobile number to receive your patient file number via SMS",
"ar": "أدخل رقم جوالك لاستلام رقم الملف الخاص بك عن طريق الرسائل النصية"
"en": "Enter your mobile number to receive your ID number via SMS",
"ar": "أدخل رقم جوالك لاستلام الرقم الوظيفي الخاص بك عن طريق الرسائل النصية"
},
"enter-email": {
"en": "Please you need to enter your email",
@ -98,8 +98,8 @@
"ar": "دخول / تسجيل"
},
"id-or-file": {
"en": "ID or File No",
"ar": "هوية أو رقم الملف"
"en": "Employee ID ",
"ar": "الرقم الوظيفي"
},
"national-id-or-iqama": {
"en": "National ID or Iqama",
@ -122,12 +122,12 @@
"ar": "الرجاء التحقق من تسجيل الدخول باستخدام أحد هذه الخيارات"
},
"verify-with-fingerprint": {
"en": "Verify with fingerprint",
"ar": "تحقق باستخدام بصمة"
"en": "Verify with fingerprint",
"ar": "تحقق باستخدام بصمة الإصبع"
},
"verify-with-faceid": {
"en": "Verify with face ID",
"ar": "تحقق باستخدام معرف الوجه"
"en": "Verify with face ID",
"ar": "تحقق باستخدام بصمة الوجه"
},
"verify-with-sms": {
"en": "Verify with SMS",
@ -142,12 +142,12 @@
"ar": ":آخر تسجيل دخول"
},
"last-login-with": {
"en": "Last login using:",
"ar": "آخر تسجيل دخول مع"
"en": "Last login using:",
"ar": "آخر تسجيل دخول بإستخدام"
},
"biometric-support": {
"en": "It seems that your phone is supporting biometric feature, do you want login with with biometric?",
"ar": "يبدو أن هاتفك يدعم ميزة البيومترية ، هل تريد تسجيل الدخول باستخدام البيومترية؟"
"en": "It seems that your phone is supporting biometric feature, do you want login with biometric?",
"ar": "يبدو أن هاتفك يدعم ميزة البصمة ، هل تريد تسجيل الدخول باستخدام البصمة؟"
},
"verify-fingerprint": {
"en": "To activate fingerprint login service, please verify by using one of the following options. ",
@ -666,8 +666,8 @@
"ar": "إستخدم الرقم التعريفي"
},
"auth-please": {
"en": "Please Authenticated",
"ar": "عرف نفسك"
"en": "Please Authenticated",
"ar": "عرف نفسك"
},
"dial-code": {
"en": "Dial Code",
@ -727,7 +727,7 @@
},
"send-email-short": {
"en": "Email",
"ar": "بريد"
"ar": "بريد إلكتروني"
},
"hi": {
"en": "HI",
@ -742,8 +742,8 @@
"ar": "تمت مزامنة البيانات بنجاح"
},
"already-synced": {
"en": "Latest data already synced",
"ar": "أحدث البيانات المتزامنة بالفعل"
"en": "Latest data has already been synced",
"ar": "تمت مزامنة أحدث البيانات مسبقاً"
},
"weekly": {
"en": "Weekly",
@ -774,8 +774,8 @@
"ar": "الخطوات المغطاة"
},
"hours-asleep": {
"en": "Time asleep in hours",
"ar": "الوقت نائم في ساعات"
"en": "Time asleep in hours",
"ar": "وقت النوم بالساعات"
},
"bad": {
"en": "Bad",
@ -910,8 +910,8 @@
"ar": "فشل التحقق ، يرجى زيارة أقرب مكتب استقبال في الفرع"
},
"forget-wifi-connection-text": {
"en": "Invalid Wi-Fi configuration exists with 'HMG-MOHEMM', please forget the Wi-Fi from settings.",
"ar": "فشل الاتصال بشبكة 'HMG-MOHEMM' الرجاء اختيار نسيت الاتصال من اعدادت الشبكة"
"en": "Invalid Wi-Fi configuration exists with 'HMG-MOHEMM', please forget the network from settings.",
"ar": "الرجاء اختيار نسيان الشبكه من اعدادت الشبكة 'HMG-MOHEMM'فشل الاتصال بشبكة "
},
"qr-text": {
"en": "QR Code",
@ -943,7 +943,7 @@
},
"wifi-connect-message": {
"en": "Connecting",
"ar": "توصيل"
"ar": "جاري الإتصال"
},
"success-attendance": {
"en": "Your attendance is marked successfully.",
@ -988,8 +988,8 @@
"ar": "طلبات قيد الانتظار"
},
"missing-swipes": {
"en": "Missing Swipes",
"ar": "فقدان البصمة"
"en": "Missing Swipes",
"ar": "تسجيل بصمة حضور سابقة "
},
"leave-balance": {
"en": "Leave Balance",
@ -1054,8 +1054,8 @@
},
"work-list": {
"open-analysis": {
"en": "Open Request Analysis",
"ar": "فتح تحليل الطلب"
"en": "Open Request Analysis",
"ar": "تحليل الطلبات المفتوحة"
},
"total": {
"en": "Total",
@ -1078,8 +1078,8 @@
"ar": "بحث متقدم"
},
"No-data-available": {
"en": "No History Available",
"ar": "لا يوجد محفوظات متاحة"
"en": "No History Available",
"ar": "لايوجد سجل بيانات سابقة "
}
},
"userProfile": {
@ -1095,6 +1095,54 @@
"en": "Edit Profile",
"ar": "تعديل المعلومات"
},
"ServiceType": {
"en": "Service Type",
"ar": "نوع الخدمة"
},
"DeptName": {
"en": "Department Name",
"ar": "اسم القسم"
},
"refrence": {
"en": "Tiket Reference",
"ar": "مرجع التذكره"
},
"section": {
"en": "Section",
"ar": " القسم"
},
"topic": {
"en": "Topic",
"ar": "العنوان"
},
"postedDate": {
"en": "Posted on",
"ar": "نشر في"
},
"RelatedSection": {
"en": "Related Section",
"ar": "قسم ذو صله"
},
"RelatedTopic": {
"en": "Related Topic",
"ar": "عنوان ذو صله"
},
"SupportingDocument": {
"en": "Supporting Document",
"ar": "ارفاق ملف"
},
"Description": {
"en": "Description",
"ar": "الوصف"
},
"MyHR-request": {
"en": "MY HR REQUEST",
"ar": "طلباتي"
},
"createHR-Request": {
"en": "CREATE HR REQUEST",
"ar": "انشاء طلب"
},
"performance-evaluation": {
"en": "Performance Evaluation",
"ar": "تقييم الاداء"
@ -1149,7 +1197,7 @@
},
"payrol": {
"en": "Payroll",
"ar": "المشروع"
"ar": "سجل الرواتب"
},
"orgEmail": {
"en": "Organization Email Address",
@ -1263,7 +1311,7 @@
"vacation-rule": {
"vacationRule": {
"en": "Vacation Rule",
"ar": "الإنابة بالإجازات"
"ar": "الإنابة بالإجازات"
},
"apply-for-vacation-rule": {
"en": "Apply for vacation Rule",
@ -1342,8 +1390,8 @@
"ar": "التالى"
},
"notification-type": {
"en": "Notification Type",
"ar": "نوع إعلام"
"en": "Notification Type",
"ar": "نوع الإشعار"
},
"notification-tip": {
"en": "Indicate the <span class=\"boldTxtNav\">notification format </span>that will activate this rule",
@ -1439,7 +1487,7 @@
},
"confirmation": {
"en": "Confirmation",
"ar": "البريد الإلكتروني"
"ar": "تأكيد"
},
"rule-success": {
"en": "Rule created successfully",
@ -1455,11 +1503,11 @@
},
"confirm-msg-success": {
"en": "Are you sure, you want to Apply for Vacation Rule?",
"ar": " تريد التقديم على قواعد الاجازات ؟, هل انت متأكد"
"ar": " هل أنت متأكد من رغبتك في التقديم على قواعد الإجازات ؟"
},
"update-msg-success": {
"en": "Are you sure, you want to Update this Vacation Rule?",
"ar": "تريد تحديث قواعد الاجازات ؟, هل انت متأكد"
"ar": "هل أنت متأكد من رغبتك في تحديث قاعدة الإجازات هذه ؟"
}
},
"absenceList": {
@ -2338,23 +2386,23 @@
"ar": "رمز"
},
"itemReq": {
"en": "Items Requsted",
"en": "Requsted Items",
"ar": "العناصر المطلوبة"
},
"approveMsg": {
"en": "<p class=\"boldP\"> Are you sure to <span class=\"boldText\"> Approve </span>this request ?</p>",
"en": "Requsted Items",
"ar": "العناصر المطلوبة"
},
"rejectMsg": {
"en": "<p class=\"boldP\">Are you sure to <span class=\"boldText\"> Reject </span> this request ?</p>",
"en": "Requsted Items",
"ar": "العناصر المطلوبة"
},
"delMsg": {
"en": "<p class=\"boldP\">Are you sure to <span class=\"boldText\"> Delete </span> this request ?</p>",
"en": "Requsted Items",
"ar": "العناصر المطلوبة"
},
"closeMsg": {
"en": "<p class=\"boldP\">Are you sure to <span class=\"boldText\"> Close </span>this request ?</p>",
"en": "Requsted Items",
"ar": "العناصر المطلوبة"
},
"Supplier": {
@ -2917,7 +2965,7 @@
},
"shift-time": {
"en": "Shift Time",
"ar": "وقت التناوب"
"ar": "وقت المناوبة "
},
"shift-type": {
"en": "Shift Type",

Loading…
Cancel
Save