|
|
|
|
import { Component, OnInit, ViewChild, Input } from '@angular/core';
|
|
|
|
|
import { TimeCardService } from 'src/app/time-card/service/time-card.service';
|
|
|
|
|
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
|
|
|
|
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
|
|
|
|
|
import { ModalController, IonSlides } from '@ionic/angular';
|
|
|
|
|
import { SelectPeriodComponent } from '../select-period/select-period.component';
|
|
|
|
|
import { GetDayAndHoursDetailsRequest } from 'src/app/time-card/service/models/get-day-hours-type-details.request';
|
|
|
|
|
import { GetTimeCardSummaryRequest } from 'src/app/time-card/service/models/get-time-card-summary.request';
|
|
|
|
|
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
|
|
|
|
|
import * as moment from 'moment';
|
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
selector: 'app-time-card-details',
|
|
|
|
|
templateUrl: './time-card-details.component.html',
|
|
|
|
|
styleUrls: ['./time-card-details.component.scss'],
|
|
|
|
|
})
|
|
|
|
|
export class TimeCardDetailsComponent implements OnInit {
|
|
|
|
|
@ViewChild('sliderRef') protected sliderRef: IonSlides;
|
|
|
|
|
public activeSegment: any = 'time-card-summary';
|
|
|
|
|
public showMore: any = true;
|
|
|
|
|
public menuType: any;
|
|
|
|
|
public selEmp: string;
|
|
|
|
|
public dateFrom: any = new Date();
|
|
|
|
|
public dateTo: any = new Date();
|
|
|
|
|
public selMenu: MenuResponse = new MenuResponse();
|
|
|
|
|
public respID: number;
|
|
|
|
|
public timeCardSummaryData: any;
|
|
|
|
|
public dayHoursData: any;
|
|
|
|
|
public selectedShift: any;
|
|
|
|
|
constructor(
|
|
|
|
|
public timeCardService: TimeCardService,
|
|
|
|
|
public common: CommonService,
|
|
|
|
|
public modalController: ModalController,
|
|
|
|
|
public sharedData: SharedDataService,
|
|
|
|
|
) { }
|
|
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
|
this.getTimeCardSummaryDetails();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public segmentChanged(event: any) {
|
|
|
|
|
this.activeSegment = event.detail.value;
|
|
|
|
|
if (this.activeSegment === 'time-card-details' && !this.dayHoursData) {
|
|
|
|
|
this.getDayHoursTypeDetails();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public toggleButton() {
|
|
|
|
|
this.showMore = !this.showMore;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public getDayHoursTypeDetails() {
|
|
|
|
|
const dayAndHoursReqObj = new GetDayAndHoursDetailsRequest();
|
|
|
|
|
this.dateFrom = moment(this.dateFrom).format('YYYY-MM-DDTHH:mm:ssZ');
|
|
|
|
|
this.dateTo = moment(this.dateTo).format('YYYY-MM-DDTHH:mm:ssZ');
|
|
|
|
|
this.selEmp = this.common.sharedService.getSharedData(MenuResponse.SHARED_SEL_EMP, false);
|
|
|
|
|
this.respID = this.common.sharedService.getSharedData(MenuResponse.SHARED_SEL_RESP_ID, false);
|
|
|
|
|
this.selMenu = this.common.sharedService.getSharedData(MenuResponse.SHARED_DATA, false);
|
|
|
|
|
this.menuType = this.selMenu.List_Menu.MENU_TYPE;
|
|
|
|
|
|
|
|
|
|
dayAndHoursReqObj.P_SELECTED_EMPLOYEE_NUMBER = this.selEmp;
|
|
|
|
|
dayAndHoursReqObj.P_MENU_TYPE = this.menuType;
|
|
|
|
|
dayAndHoursReqObj.P_SELECTED_RESP_ID = this.respID;
|
|
|
|
|
dayAndHoursReqObj.P_SCHEDULE_DATE_FROM = this.common.convertISODateToJsonDate(this.dateFrom);
|
|
|
|
|
dayAndHoursReqObj.P_SCHEDULE_DATE_TO = this.common.convertISODateToJsonDate(this.dateTo);
|
|
|
|
|
dayAndHoursReqObj.P_PAGE_NUM = 1;
|
|
|
|
|
dayAndHoursReqObj.P_PAGE_LIMIT = 10;
|
|
|
|
|
|
|
|
|
|
this.timeCardService.getDayHoursTypeDetails(dayAndHoursReqObj).subscribe((result) => {
|
|
|
|
|
if (this.common.validResponse(result)) {
|
|
|
|
|
this.dayHoursData = result.GetDayHoursTypeDetailsList;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public getTimeCardSummaryDetails() {
|
|
|
|
|
const timeCardSummaryReqObj = new GetTimeCardSummaryRequest();
|
|
|
|
|
this.dateFrom = moment(this.dateFrom).format('YYYY-MM-DDTHH:mm:ssZ');
|
|
|
|
|
this.dateTo = moment(this.dateTo).format('YYYY-MM-DDTHH:mm:ssZ');
|
|
|
|
|
this.selEmp = this.common.sharedService.getSharedData(MenuResponse.SHARED_SEL_EMP, false);
|
|
|
|
|
this.respID = this.common.sharedService.getSharedData(MenuResponse.SHARED_SEL_RESP_ID, false);
|
|
|
|
|
this.selMenu = this.common.sharedService.getSharedData(MenuResponse.SHARED_DATA, false);
|
|
|
|
|
this.menuType = this.selMenu.List_Menu.MENU_TYPE;
|
|
|
|
|
|
|
|
|
|
timeCardSummaryReqObj.P_SELECTED_EMPLOYEE_NUMBER = this.selEmp;
|
|
|
|
|
timeCardSummaryReqObj.P_MENU_TYPE = this.menuType;
|
|
|
|
|
timeCardSummaryReqObj.P_SELECTED_RESP_ID = this.respID;
|
|
|
|
|
timeCardSummaryReqObj.P_SCHEDULE_DATE_FROM = this.common.convertISODateToJsonDate(this.dateFrom);
|
|
|
|
|
timeCardSummaryReqObj.P_SCHEDULE_DATE_TO = this.common.convertISODateToJsonDate(this.dateTo);
|
|
|
|
|
|
|
|
|
|
this.timeCardService.getTimeCardSummary(timeCardSummaryReqObj).subscribe((result) => {
|
|
|
|
|
if (this.common.validResponse(result)) {
|
|
|
|
|
this.timeCardSummaryData = result.GetTimeCardSummaryList[0];
|
|
|
|
|
console.log(this.timeCardSummaryData);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async openSelectPeriodModal() {
|
|
|
|
|
const modal = await this.modalController.create({
|
|
|
|
|
component: SelectPeriodComponent,
|
|
|
|
|
cssClass: 'select-period-custom-modal'
|
|
|
|
|
});
|
|
|
|
|
modal.onDidDismiss().then(result => {
|
|
|
|
|
console.log(result);
|
|
|
|
|
this.dateFrom = result.data.selectFromDate;
|
|
|
|
|
this.dateTo = result.data.selectToDate;
|
|
|
|
|
if (this.dateFrom && this.dateTo) {
|
|
|
|
|
this.getDayHoursTypeDetails();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
return await modal.present();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
slideChanged(ev: any) {}
|
|
|
|
|
|
|
|
|
|
showShiftDetails(origin: string) {
|
|
|
|
|
this.sliderRef.getActiveIndex().then((index: number) => {
|
|
|
|
|
console.log(index);
|
|
|
|
|
this.selectedShift = this.dayHoursData[index];
|
|
|
|
|
this.selectedShift.origin = origin;
|
|
|
|
|
console.log(this.selectedShift);
|
|
|
|
|
this.sharedData.setSharedData(this.selectedShift, 'selectedShift');
|
|
|
|
|
this.common.navigatePage('/time-card/shift-details');
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|