Merge branch 'MOHEMM-Q3-DEV-LATEST' of https://gitlab.com/haroon6138/mohemmionic5 into sultan-q3
# Conflicts: # Mohem/src/app/hmg-common/services/connector/connector.service.tssultan-q3
commit
06edf6da79
@ -1,3 +1,26 @@
|
|||||||
<p>
|
<ion-content>
|
||||||
cei-homepage works!
|
<div class="head-title">
|
||||||
</p>
|
<app-generic-header showImage="false" showBack="true" [headerText]="'eit,cei' | translate">
|
||||||
|
</app-generic-header>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div padding>
|
||||||
|
<ion-list>
|
||||||
|
<ion-radio-group [(ngModel)]="selectedServiceType">
|
||||||
|
<ion-item *ngFor="let user of familyMemberData">
|
||||||
|
<ion-label>{{user.CONTACT_NAME}}</ion-label>
|
||||||
|
<ion-radio mode="md" slot="start" [value]="user"></ion-radio>
|
||||||
|
</ion-item>
|
||||||
|
</ion-radio-group>
|
||||||
|
</ion-list>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</ion-content>
|
||||||
|
|
||||||
|
<ion-footer>
|
||||||
|
<div class="centerDiv" (click)="gotoTransactionsPage()">
|
||||||
|
<ion-button class="addEitOkButton" color="customnavy" ion-button>
|
||||||
|
{{'vacation-rule, next-label' | translate}}</ion-button>
|
||||||
|
</div>
|
||||||
|
</ion-footer>
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
<app-generic-header
|
||||||
|
showBack="true"
|
||||||
|
[headerText]="headerTitle">
|
||||||
|
</app-generic-header>
|
||||||
|
|
||||||
|
<ion-content>
|
||||||
|
<div>
|
||||||
|
<div class="no-dataDiv"
|
||||||
|
*ngIf="!getResCEITransactionList || getResCEITransactionList[0]?.Collection_Transaction.length <= 0">
|
||||||
|
<ion-row>
|
||||||
|
<img class="empty-data" src="../assets/imgs/box.png" />
|
||||||
|
</ion-row>
|
||||||
|
<h4> {{'general, noData' | translate}}</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="getResCEITransactionList && getResCEITransactionList[0]?.Collection_Transaction.length > 0 ">
|
||||||
|
<div *ngFor="let EITTransactionList of getResCEITransactionList; let i=index ">
|
||||||
|
<ion-grid>
|
||||||
|
<div>
|
||||||
|
</div>
|
||||||
|
<ion-grid class="grids">
|
||||||
|
<div *ngFor="let item of EITTransactionList.Collection_Transaction">
|
||||||
|
<ion-row *ngIf="item.DISPLAY_FLAG != 'N' " class="">
|
||||||
|
<ion-col class="" *ngIf="item.SEGMENT_PROMPT!=''">
|
||||||
|
<label style="color:#269DB8;font-weight: bold;" class="label" for="">{{item.SEGMENT_PROMPT}} </label>
|
||||||
|
<br>
|
||||||
|
<label class="label" style="color:black;" for="">{{item.SEGMENT_VALUE_DSP}} </label>
|
||||||
|
<br>
|
||||||
|
<hr style="background-color: grey;height: 1px">
|
||||||
|
</ion-col>
|
||||||
|
</ion-row>
|
||||||
|
</div>
|
||||||
|
</ion-grid>
|
||||||
|
</ion-grid>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ion-content>
|
||||||
|
<ion-icon class="addClass" name="add" (click)="addEITRrq()"></ion-icon>
|
||||||
@ -0,0 +1,319 @@
|
|||||||
|
.footer-button {
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 0 1.1em;
|
||||||
|
min-height: 45px;
|
||||||
|
min-width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.datetime{
|
||||||
|
text-align: center;
|
||||||
|
font-family: WorkSans-Bold;
|
||||||
|
margin-left: 47px;
|
||||||
|
margin-top: -19px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.iconCalendar{
|
||||||
|
margin-left: 30px !important;
|
||||||
|
width: 22% !important;
|
||||||
|
height: 26px !important;
|
||||||
|
margin-top: -69px !important;
|
||||||
|
margin-bottom: 20px !important;
|
||||||
|
}
|
||||||
|
h4 {
|
||||||
|
font-size: 2.2rem;
|
||||||
|
text-align: center;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
.grids{
|
||||||
|
border-radius: 20px !important;
|
||||||
|
background: white;
|
||||||
|
padding-left: 1px;
|
||||||
|
padding-right: 1px;
|
||||||
|
margin: 13px;
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
padding-left: 13px;
|
||||||
|
padding-right: 13px;
|
||||||
|
border: 1px solid #cac8c8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bgcolor {
|
||||||
|
|
||||||
|
color: white;
|
||||||
|
border-top-right-radius: 19px;
|
||||||
|
border-top-left-radius: 15px;
|
||||||
|
padding-top: 1;
|
||||||
|
padding-bottom: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
/* border-radius: 12px !important; */
|
||||||
|
background: #269DB8;
|
||||||
|
border-bottom: 1px solid #a7a4a4;
|
||||||
|
border-top: 1px solid #cac8c8;
|
||||||
|
margin-left: -13px;
|
||||||
|
margin-right: -13px;
|
||||||
|
}
|
||||||
|
.colEit{
|
||||||
|
border-right: 1px solid #cac8c8;
|
||||||
|
border-bottom-left-radius: -10px !important;
|
||||||
|
padding-top: 8px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
margin-left: 18px;
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-div {
|
||||||
|
|
||||||
|
background-color: #269DB8;
|
||||||
|
text-transform: capitalize;
|
||||||
|
height: 160px;
|
||||||
|
// position: relative;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: -28px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-toolbar-new{
|
||||||
|
--background: #269DB8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.addClass{
|
||||||
|
background-color: #269DB8;
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
right: 8%;
|
||||||
|
position: fixed;
|
||||||
|
color: white;
|
||||||
|
bottom: 5%;
|
||||||
|
border-radius: 50%;
|
||||||
|
z-index: 999;
|
||||||
|
-webkit-box-shadow: 2px -1px 13px 0px rgba(0,0,0,0.59);
|
||||||
|
-moz-box-shadow: 2px -1px 13px 0px rgba(0,0,0,0.59);
|
||||||
|
box-shadow: 2px -1px 13px 0px rgba(0,0,0,0.59);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contentEit:before {
|
||||||
|
position: absolute;
|
||||||
|
content: "";
|
||||||
|
// background: #269DB8;
|
||||||
|
height: 140px;
|
||||||
|
width: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hrClass{
|
||||||
|
border-width: 0;
|
||||||
|
box-sizing: content-box;
|
||||||
|
border-bottom: 1px solid #e6e6e6;
|
||||||
|
background: #fff !important;
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////
|
||||||
|
.content:before {
|
||||||
|
position: absolute;
|
||||||
|
content: "";
|
||||||
|
background: #269DB8;
|
||||||
|
height: 140px;
|
||||||
|
width: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.colorBG{
|
||||||
|
--background: #f0efef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.Title{
|
||||||
|
text-align: center;
|
||||||
|
color: white;
|
||||||
|
margin-top: -33px;
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
.title{
|
||||||
|
text-align: center;
|
||||||
|
color: black;
|
||||||
|
margin-top: 5px;
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
.today-graph{
|
||||||
|
display: block !important;
|
||||||
|
height: 196px;
|
||||||
|
width: 365px;
|
||||||
|
/* padding-left: 51px; */
|
||||||
|
margin-left: 28px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headerGrid{
|
||||||
|
background-color: white !important;
|
||||||
|
border: 1px solid #cac8c8 !important;
|
||||||
|
padding-bottom: 53px;
|
||||||
|
padding-top: -30px;
|
||||||
|
margin-left: 13px;
|
||||||
|
margin-right: 13px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
border-radius: 20px;
|
||||||
|
margin-top: 17px;
|
||||||
|
}
|
||||||
|
.result-graph{
|
||||||
|
font-size: 14px;
|
||||||
|
margin-left: -48px;
|
||||||
|
margin-right: 3px;
|
||||||
|
margin-bottom: -30px;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.green-label{
|
||||||
|
font-size: 15px !important;
|
||||||
|
margin-left: 7px !important;
|
||||||
|
margin-right: 42px;
|
||||||
|
}
|
||||||
|
.green-label-ar{
|
||||||
|
font-size: 15px !important;
|
||||||
|
margin-left: 7px !important;
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
.blue-label{
|
||||||
|
font-size: 15px !important;
|
||||||
|
margin-left: 7px !important;
|
||||||
|
margin-right: 13px;
|
||||||
|
}
|
||||||
|
.light-label{
|
||||||
|
font-size: 15px !important;
|
||||||
|
margin-left: 7px !important;
|
||||||
|
margin-right: -26px;
|
||||||
|
}
|
||||||
|
.light-label-ar{
|
||||||
|
font-size: 15px !important;
|
||||||
|
margin-right: 7px !important;
|
||||||
|
margin-left: -26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.light-dote{
|
||||||
|
background-color: #3CB9D5;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.blue-dote{
|
||||||
|
|
||||||
|
background-color: #269DB8;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.green-dote{
|
||||||
|
background-color: #1FA269;
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: -1px;
|
||||||
|
}
|
||||||
|
.col{
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gridService{
|
||||||
|
|
||||||
|
/* margin-top: 87px; */
|
||||||
|
border-radius: 10px;
|
||||||
|
/* margin-bottom: -49px; */
|
||||||
|
margin-left: 14px;
|
||||||
|
margin-right: 14px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.columns{
|
||||||
|
margin: 3px;
|
||||||
|
margin-bottom: 13px;
|
||||||
|
background: white;
|
||||||
|
border-radius: 27px;
|
||||||
|
padding-left: 30px;
|
||||||
|
padding-right: 6px;
|
||||||
|
padding-top: 19px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
border: 1px solid #cac8c8 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.service{
|
||||||
|
font-size: 22px;
|
||||||
|
color: black;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.services{
|
||||||
|
|
||||||
|
font-size: 12px;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.adult-dote{
|
||||||
|
background-color: #3CB9D5;
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: -17px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.adult-dote-ar{
|
||||||
|
background-color: #3CB9D5;
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.child-dote{
|
||||||
|
|
||||||
|
background-color: #269DB8;
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: -17px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
.child-dote-ar{
|
||||||
|
background-color: #269DB8;
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 1px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
.infants-dote{
|
||||||
|
background-color: #1FA269;
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: -17px;
|
||||||
|
margin-right: 5px;
|
||||||
|
// margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.infants-dote-ar{
|
||||||
|
background-color: #1FA269;
|
||||||
|
width: 15px;
|
||||||
|
height: 15px;
|
||||||
|
border-radius: 50% !important;
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 1px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { CeiListComponent } from './cei-list.component';
|
||||||
|
|
||||||
|
describe('CeiListComponent', () => {
|
||||||
|
let component: CeiListComponent;
|
||||||
|
let fixture: ComponentFixture<CeiListComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ CeiListComponent ],
|
||||||
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(CeiListComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,127 @@
|
|||||||
|
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||||
|
import { EITTransactionsRequest } from './../models/EITTransactionsReq';
|
||||||
|
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
|
||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { EitService } from '../services/eit.service';
|
||||||
|
import { EIT_ACTION } from '../models/submit.eit.action';
|
||||||
|
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||||
|
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-cei-list',
|
||||||
|
templateUrl: './cei-list.component.html',
|
||||||
|
styleUrls: ['./cei-list.component.scss'],
|
||||||
|
})
|
||||||
|
export class CeiListComponent implements OnInit {
|
||||||
|
Sdate: any;
|
||||||
|
emp_no: any;
|
||||||
|
balance:any;
|
||||||
|
P_PAGE_NUM: number;
|
||||||
|
P_PAGE_LIMIT: number;
|
||||||
|
IsReachEnd = false;
|
||||||
|
userName: any;
|
||||||
|
isDelete = false;
|
||||||
|
getResCEITransactionList: any = [];
|
||||||
|
eitAddedList: any = [];
|
||||||
|
getPassMnuEntryObj: any;
|
||||||
|
selMenu: MenuResponse = new MenuResponse();
|
||||||
|
CEITransactionsListObj: EITTransactionsRequest = new EITTransactionsRequest();
|
||||||
|
selEmp: string;
|
||||||
|
respID: number;
|
||||||
|
transactionNo = 0;
|
||||||
|
menuType = '';
|
||||||
|
public functionName = '';
|
||||||
|
private pAction = 0;
|
||||||
|
public headerTitle = '';
|
||||||
|
data: any;
|
||||||
|
accrualNetInfants: any;
|
||||||
|
accrualUNetChild: any;
|
||||||
|
accrualNetAdult: any;
|
||||||
|
|
||||||
|
public options = {
|
||||||
|
cutoutPercentage: 80,
|
||||||
|
tooltips: { enabled: false },
|
||||||
|
legend: { display: false }};
|
||||||
|
gaugeType = 'full';
|
||||||
|
accrualBalancesList: any;
|
||||||
|
common: any;
|
||||||
|
direction: string;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private cs: CommonService,
|
||||||
|
private EITService: EitService,
|
||||||
|
public ts: TranslatorService,
|
||||||
|
public authService:AuthenticationService,) {
|
||||||
|
this.direction = TranslatorService.getCurrentLanguageName();
|
||||||
|
this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, false);
|
||||||
|
this.selEmp = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_EMP, false);
|
||||||
|
this.respID = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_RESP_ID, false);
|
||||||
|
this.getPassMnuEntryObj = this.selMenu.GetMenuEntriesList;
|
||||||
|
this.menuType = this.selMenu.List_Menu.MENU_TYPE;
|
||||||
|
this.transactionNo = 0;
|
||||||
|
this.functionName = this.getPassMnuEntryObj.FUNCTION_NAME;
|
||||||
|
this.headerTitle = this.selMenu.GetMenuEntriesList.PROMPT;
|
||||||
|
this.P_PAGE_NUM = 1;
|
||||||
|
this.P_PAGE_LIMIT = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.getCEITransactions();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public getCEITransactions() {
|
||||||
|
this.IsReachEnd = false;
|
||||||
|
this.CEITransactionsListObj.P_PAGE_LIMIT = this.P_PAGE_LIMIT;
|
||||||
|
this.CEITransactionsListObj.P_PAGE_NUM = this.P_PAGE_NUM;
|
||||||
|
this.CEITransactionsListObj.P_SELECTED_EMPLOYEE_NUMBER = this.selEmp;
|
||||||
|
this.CEITransactionsListObj.P_SELECTED_RESP_ID = this.respID;
|
||||||
|
this.CEITransactionsListObj.P_MENU_TYPE = this.selMenu.List_Menu.MENU_TYPE;
|
||||||
|
this.CEITransactionsListObj.P_FUNCTION_NAME = this.getPassMnuEntryObj.FUNCTION_NAME;
|
||||||
|
this.EITService.getCEITransactionsList(this.CEITransactionsListObj).
|
||||||
|
subscribe((result: any) => {
|
||||||
|
this.handleCEITransactionsResult(result);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public handleCEITransactionsResult(result) {
|
||||||
|
if (this.cs.validResponse(result)) {
|
||||||
|
if (this.cs.hasData(result.GetEITTransactionList)) {
|
||||||
|
this.getResCEITransactionList = result.GetEITTransactionList;
|
||||||
|
this.P_PAGE_NUM++;
|
||||||
|
this.CEITransactionsListObj.P_PAGE_NUM = this.P_PAGE_NUM;
|
||||||
|
const lastItemIndex = this.getResCEITransactionList.length - 1;
|
||||||
|
if (result.GetEITTransactionList[lastItemIndex] && result.GetEITTransactionList[lastItemIndex].Collection_Transaction[0]) {
|
||||||
|
const lastitem = result.GetEITTransactionList[lastItemIndex].Collection_Transaction[0];
|
||||||
|
// tslint:disable-next-line: triple-equals
|
||||||
|
if (lastitem.NO_OF_ROWS == lastitem.ROW_NUM) {
|
||||||
|
this.IsReachEnd = true;
|
||||||
|
} else {
|
||||||
|
this.IsReachEnd = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addEITRrq(i?) {
|
||||||
|
this.pAction = EIT_ACTION.ADD;
|
||||||
|
this.cs.sharedService.setSharedData(this.pAction, EITTransactionsRequest.SUBMIT_EIT_ACTION);
|
||||||
|
this.openEitNew(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
openEitNew(index) {
|
||||||
|
let item: any = [];
|
||||||
|
if (this.pAction == EIT_ACTION.UPDATE) {
|
||||||
|
item = this.getResCEITransactionList[index].Collection_Transaction;
|
||||||
|
}
|
||||||
|
this.transactionNo++;
|
||||||
|
// tslint:disable-next-line: max-line-length
|
||||||
|
this.cs.sharedService.setSharedData({ dirfromNotificationPage: false, submitEITObjList: item, transNo: this.transactionNo }, 'AddEITData');
|
||||||
|
this.cs.openAddEitPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
<app-generic-header
|
||||||
|
showBack="true"
|
||||||
|
[headerText]="'myTeam, subordinate-leave' | translate">
|
||||||
|
</app-generic-header>
|
||||||
|
|
||||||
|
|
||||||
|
<ion-content padding style="--background: #f5f5f5">
|
||||||
|
<div class="team-member-container">
|
||||||
|
<ion-label>
|
||||||
|
<ion-item lines='none'>
|
||||||
|
<p style="font-size: 18px; font-weight: bold;">{{ts.trPK('myTeam','select-duration')}}</p>
|
||||||
|
</ion-item>
|
||||||
|
</ion-label>
|
||||||
|
<ion-grid>
|
||||||
|
<ion-row>
|
||||||
|
<ion-col size='6'>
|
||||||
|
<ion-label position='floating' style="margin-left: 15px;" class="colBold">{{ts.trPK('general','from')}} </ion-label>
|
||||||
|
|
||||||
|
<ion-item class='dynamicField' lines='none'>
|
||||||
|
<ion-datetime style="padding: 0px" [(ngModel)]="startDate" min="1900" max="2100" displayFormat="MMM/DD/YYYY" placeholder="MM/DD/YYYY" required
|
||||||
|
cancelText="{{ts.trPK('general','cancel')}}" doneText="{{ts.trPK('general','done')}}"></ion-datetime>
|
||||||
|
|
||||||
|
<ion-icon style="width: 20px;" name="calendar"></ion-icon>
|
||||||
|
</ion-item>
|
||||||
|
</ion-col>
|
||||||
|
<ion-col size='6'>
|
||||||
|
<ion-label position='floating' style="margin-left: 15px;" class="colBold">{{ts.trPK('general','to')}} </ion-label>
|
||||||
|
<ion-item class='dynamicField' lines='none'>
|
||||||
|
<ion-datetime style="padding: 0px" [(ngModel)]="endDate" min="1900" max="2100" displayFormat="MMM/DD/YYYY" placeholder="MM/DD/YYYY" required
|
||||||
|
cancelText="{{ts.trPK('general','cancel')}}"
|
||||||
|
doneText="{{ts.trPK('general','done')}}"></ion-datetime>
|
||||||
|
|
||||||
|
<ion-icon style="width: 20px;" name="calendar"></ion-icon>
|
||||||
|
</ion-item>
|
||||||
|
</ion-col>
|
||||||
|
</ion-row>
|
||||||
|
</ion-grid>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf='noData'></div>
|
||||||
|
|
||||||
|
<div *ngIf='!noData'>
|
||||||
|
<div *ngIf='list.length === 0'>
|
||||||
|
<div class="team-member-container" style="text-align: center;">
|
||||||
|
<h2 style="margin-top: 5px !important; font-size: 20px;" class="name">
|
||||||
|
{{ts.trPK('general','empty')}}
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div *ngIf='list.length > 0'>
|
||||||
|
<div class="team-member-container" *ngFor='let user of list'>
|
||||||
|
<ion-row>
|
||||||
|
<ion-col [size]="3">
|
||||||
|
<div class="user-image-container">
|
||||||
|
<div class="user-image">
|
||||||
|
<img *ngIf='user.image' [src]="user.image"/>
|
||||||
|
<img *ngIf='!user.image' src="../assets/imgs/profile.png"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ion-col>
|
||||||
|
<ion-col [size]="9">
|
||||||
|
<div>
|
||||||
|
<span>
|
||||||
|
<h2 style="margin-top: 0px !important; font-size: 20px;" class="name">{{user.EMPLOYEE_NAME}}</h2>
|
||||||
|
<span class="title"><ion-label>{{ts.trPK('general','from')}}: </ion-label><b style="font-size: 12px;">{{getDate(user.DATE_START)}} </b></span>
|
||||||
|
<span class="title"><ion-label>{{ts.trPK('general','to')}}: </ion-label><b style="font-size: 12px;">{{getDate(user.DATE_END)}}</b></span>
|
||||||
|
<br>
|
||||||
|
<span class="title"><ion-label>{{ts.trPK('myTeam','no-of-days')}}: </ion-label><b style="font-size: 12px;">{{diffDays(user)}}</b></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</ion-col>
|
||||||
|
</ion-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</ion-content>
|
||||||
|
|
||||||
|
<ion-footer>
|
||||||
|
<div class="centerDiv">
|
||||||
|
<ion-button class="confirmEitOkButton" [disabled]='checkDate()' (click)="subordinateLeaveList()">{{ts.trPK('general','submit')}}</ion-button>
|
||||||
|
</div>
|
||||||
|
</ion-footer>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,199 @@
|
|||||||
|
.confirmEitOkButton{
|
||||||
|
white-space: normal !important;
|
||||||
|
text-transform: capitalize !important;
|
||||||
|
min-height: 45px !important;
|
||||||
|
min-width: 5px !important;
|
||||||
|
margin: 8px !important;
|
||||||
|
--background: #269DB8;
|
||||||
|
width: 80% !important;
|
||||||
|
color: white!important;
|
||||||
|
border-radius: 16px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-container{
|
||||||
|
// background: white;
|
||||||
|
// border-radius: 100px 20px 20px 100px;
|
||||||
|
// margin-top: 15px;
|
||||||
|
// font-family: WorkSans-Regular;
|
||||||
|
// border: 1px solid #ccc;
|
||||||
|
// border-radius: 15px;
|
||||||
|
// padding-bottom: 8px;
|
||||||
|
background: white;
|
||||||
|
/* margin-top: 2px; */
|
||||||
|
font-family: WorkSans-Regular;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 15px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
padding-top: 9px;
|
||||||
|
margin-bottom: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// .user-image-container{
|
||||||
|
// position: relative;
|
||||||
|
// width: 70px;
|
||||||
|
// height: 70px;
|
||||||
|
// display: block;
|
||||||
|
// margin: 0 auto;
|
||||||
|
// &:before{
|
||||||
|
// position: absolute;
|
||||||
|
// content: "";
|
||||||
|
// width: 20px;
|
||||||
|
// height: 20px;
|
||||||
|
// border-radius: 20px;
|
||||||
|
// border: 1px solid white;
|
||||||
|
// top: 0;
|
||||||
|
// right: 0;
|
||||||
|
// background-color: red;
|
||||||
|
// z-index: 9;
|
||||||
|
// }
|
||||||
|
// &.present:before{
|
||||||
|
// background-color: green !important;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
.user-image{
|
||||||
|
// overflow: hidden;
|
||||||
|
// position: relative;
|
||||||
|
// display: block;
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
// border-radius: 80px;
|
||||||
|
// border: 1px solid #ccc;
|
||||||
|
// margin: 0px auto 6px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
// width: 100%;
|
||||||
|
// max-height: 100%;
|
||||||
|
width: 74%;
|
||||||
|
max-height: 74%;
|
||||||
|
margin-top: 7px;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.employee-name{
|
||||||
|
display: inline-block;
|
||||||
|
width: 80%;
|
||||||
|
.name{
|
||||||
|
// font-size: 16px;
|
||||||
|
// color: black;
|
||||||
|
// // margin: 0;
|
||||||
|
// width: 100%;
|
||||||
|
// text-overflow: ellipsis;
|
||||||
|
// white-space: nowrap;
|
||||||
|
// overflow: hidden;
|
||||||
|
// margin-left: -10px;
|
||||||
|
// margin-top: -5px;
|
||||||
|
// font-family: 'WorkSans-Bold';
|
||||||
|
font-size: 16px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-left: -10px;
|
||||||
|
margin-top: -5px;
|
||||||
|
text-align: left;
|
||||||
|
font-family: var(--fontFamilyPoppins-SemiBold, inherit);
|
||||||
|
line-height: 25px;
|
||||||
|
letter-spacing: -0.64px;
|
||||||
|
color: #2B353E;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title{
|
||||||
|
// font-size: 13px;
|
||||||
|
// color: #888;
|
||||||
|
// width: 100%;
|
||||||
|
// text-overflow: ellipsis;
|
||||||
|
// white-space: nowrap;
|
||||||
|
// overflow: hidden;
|
||||||
|
// display: block;
|
||||||
|
// margin-left: -10px;
|
||||||
|
// margin-top: -6px;
|
||||||
|
// color: black;
|
||||||
|
font-family: var(--fontFamilyPoppins-SemiBold, inherit);
|
||||||
|
line-height: 12px;
|
||||||
|
letter-spacing: -0.56px;
|
||||||
|
color: #575757;
|
||||||
|
opacity: 1;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 100%;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
display: block;
|
||||||
|
margin-left: -10px;
|
||||||
|
margin-top: -10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.employee-name-ar{
|
||||||
|
display: inline-block;
|
||||||
|
width: 80%;
|
||||||
|
.name{
|
||||||
|
// font-size: 16px;
|
||||||
|
// color: black;
|
||||||
|
// // margin: 0;
|
||||||
|
// width: 100%;
|
||||||
|
// text-overflow: ellipsis;
|
||||||
|
// white-space: nowrap;
|
||||||
|
// overflow: hidden;
|
||||||
|
// margin-left: -10px;
|
||||||
|
// margin-top: -5px;
|
||||||
|
// font-family: 'WorkSans-Bold';
|
||||||
|
font-size: 16px;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
margin-left: -10px;
|
||||||
|
margin-top: -5px;
|
||||||
|
text-align: right;
|
||||||
|
font-family: var(--fontFamilyPoppins-SemiBold, inherit);
|
||||||
|
line-height: 25px;
|
||||||
|
letter-spacing: -0.64px;
|
||||||
|
color: #2B353E;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title{
|
||||||
|
// font-size: 13px;
|
||||||
|
// color: #888;
|
||||||
|
// width: 100%;
|
||||||
|
// text-overflow: ellipsis;
|
||||||
|
// white-space: nowrap;
|
||||||
|
// overflow: hidden;
|
||||||
|
// display: block;
|
||||||
|
// margin-left: -10px;
|
||||||
|
// margin-top: -6px;
|
||||||
|
// color: black;
|
||||||
|
font-family: var(--fontFamilyPoppins-SemiBold, inherit);
|
||||||
|
line-height: 12px;
|
||||||
|
letter-spacing: -0.56px;
|
||||||
|
color: #575757;
|
||||||
|
opacity: 1;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 100%;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
display: block;
|
||||||
|
margin-left: -10px;
|
||||||
|
margin-top: -10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.image-container{
|
||||||
|
width: 20%;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
.swipe-information{
|
||||||
|
color: #888;
|
||||||
|
font-size: 12px;
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
padding-top: 6px;
|
||||||
|
margin-top: 6px;
|
||||||
|
.check-in {
|
||||||
|
font-size: 12px;
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { SubordinateLeaveComponent } from './subordinate-leave.component';
|
||||||
|
|
||||||
|
describe('SubordinateLeaveComponent', () => {
|
||||||
|
let component: SubordinateLeaveComponent;
|
||||||
|
let fixture: ComponentFixture<SubordinateLeaveComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ SubordinateLeaveComponent ],
|
||||||
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(SubordinateLeaveComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||||
|
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||||
|
import { MyTeamService } from '../service/my-team.service';
|
||||||
|
import * as moment from 'moment';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-subordinate-leave',
|
||||||
|
templateUrl: './subordinate-leave.component.html',
|
||||||
|
styleUrls: ['./subordinate-leave.component.scss'],
|
||||||
|
})
|
||||||
|
export class SubordinateLeaveComponent implements OnInit {
|
||||||
|
public startDate: any;
|
||||||
|
public endDate: any;
|
||||||
|
public list = [];
|
||||||
|
public noData = true;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
public ts: TranslatorService,
|
||||||
|
public common: CommonService,
|
||||||
|
public myTeamService: MyTeamService,
|
||||||
|
) { }
|
||||||
|
|
||||||
|
ngOnInit() {}
|
||||||
|
|
||||||
|
subordinateLeaveList() {
|
||||||
|
const Sdata = this.common.convertDateToJsonDateUpdated(this.startDate);
|
||||||
|
const Edata = this.common.convertDateToJsonDateUpdated(this.endDate);
|
||||||
|
this.myTeamService.getEmployeeSubordinatesLeave({
|
||||||
|
P_DATE_FROM: Sdata,
|
||||||
|
P_DATE_TO: Edata
|
||||||
|
}, () => { }, this.ts.trPK('general', 'retry')).subscribe((result) => {
|
||||||
|
if (this.common.validResponse(result)) {
|
||||||
|
this.list = result.GetSubordinatesLeavesTotalVacationsList;
|
||||||
|
this.noData = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getDate(date) {
|
||||||
|
const newDate = this.common.localizeDate(new Date(this.common.getDateTimeISOFromStringUpdated(date).split(' ')[0]));
|
||||||
|
return newDate;
|
||||||
|
}
|
||||||
|
diffDays(date) {
|
||||||
|
const date1 = new Date(this.common.getDateTimeISOFromStringUpdated(date.DATE_START).split(' ')[0]);
|
||||||
|
const date2 = new Date(this.common.getDateTimeISOFromStringUpdated(date.DATE_END).split(' ')[0]);
|
||||||
|
const diff = Math.abs(date1.getTime() - date2.getTime());
|
||||||
|
const diffDays = Math.ceil(diff / (1000 * 3600 * 24));
|
||||||
|
return diffDays;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkDate() {
|
||||||
|
if (this.startDate && this.endDate) {
|
||||||
|
return false;
|
||||||
|
} else { return true; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bar Chart</title><path d="M32 32v432a16 16 0 0016 16h432" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><rect x="96" y="224" width="80" height="192" rx="20" ry="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><rect x="240" y="176" width="80" height="240" rx="20" ry="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/><rect x="383.64" y="112" width="80" height="304" rx="20" ry="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32"/></svg>
|
||||||
|
After Width: | Height: | Size: 737 B |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bar Chart</title><path d="M480 496H48a32 32 0 01-32-32V32a16 16 0 0132 0v432h432a16 16 0 010 32z"/><path d="M156 432h-40a36 36 0 01-36-36V244a36 36 0 0136-36h40a36 36 0 0136 36v152a36 36 0 01-36 36zM300 432h-40a36 36 0 01-36-36V196a36 36 0 0136-36h40a36 36 0 0136 36v200a36 36 0 01-36 36zM443.64 432h-40a36 36 0 01-36-36V132a36 36 0 0136-36h40a36 36 0 0136 36v264a36 36 0 01-36 36z"/></svg>
|
||||||
|
After Width: | Height: | Size: 475 B |
Loading…
Reference in New Issue