ashwaq 6 years ago
commit 6407421ccd

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<widget id="com.cloudsolutions.mohemm" version="1.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <widget id="com.cloudsolutions.alhabibmohemm" version="1.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>MOHEMM</name> <name>MOHEMM</name>
<description>an app created by cloud Solutions</description> <description>an app created by cloud Solutions</description>
<author email="eservicescs@cloudsolution-sa.com" href="http://cloudsolution-sa.com">HMG</author> <author email="eservicescs@cloudsolution-sa.com" href="http://cloudsolution-sa.com">HMG</author>
@ -88,21 +88,46 @@
<plugin name="cordova-plugin-whitelist" spec="1.3.3" /> <plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.2" /> <plugin name="cordova-plugin-statusbar" spec="2.4.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" /> <plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="cordova-plugin-nativestorage" spec="^2.3.2" />
<plugin name="cordova-plugin-globalization" spec="^1.11.0" />
<plugin name="cordova-plugin-android-permissions" spec="^1.0.0" />
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<plugin name="mx.ferreyra.callnumber" spec="0.0.2" /> <plugin name="mx.ferreyra.callnumber" spec="0.0.2" />
<plugin name="cordova-plugin-badge" spec="^0.8.8" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.3" />
<plugin name="cordova-plugin-geolocation" spec="~4.0.1" /> <plugin name="cordova-plugin-geolocation" spec="~4.0.1" />
<plugin name="cordova-plugin-datepicker" spec="~0.9.3" /> <plugin name="cordova-plugin-datepicker" spec="~0.9.3" />
<plugin name="phonegap-plugin-barcodescanner" spec="8.1.0">
<variable name="ANDROID_SUPPORT_V4_VERSION" value="27.+" />
</plugin>
<plugin name="cordova-plugin-ionic-webview" spec="4.1.0"> <plugin name="cordova-plugin-ionic-webview" spec="4.1.0">
<variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" /> <variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" />
</plugin> </plugin>
<plugin name="cordova-android-support-gradle-release" spec="^3.0.1" />
<plugin name="phonegap-plugin-push" spec="^2.3.0">
<variable name="GOOGLE_PLAY_SERVICES_VERSION" value="16.0.0" />
<variable name="FCM_VERSION" value="15.0.0" />
</plugin>
<plugin name="cordova-sqlite-storage" spec="^3.4.0" />
<plugin name="cordova-plugin-nativestorage" spec="^2.3.2" />
<plugin name="cordova-plugin-ble-central" spec="^1.2.4" />
<plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" spec="^3.2.2" />
<plugin name="cordova-plugin-themeablebrowser" spec="^0.2.18" />
<plugin name="cordova-plugin-inappbrowser" spec="^3.1.0" />
<plugin name="cordova-plugin-globalization" spec="^1.11.0" />
<plugin name="cordova-plugin-android-permissions" spec="^1.0.2" />
<plugin name="cordova-plugin-sms-receive" spec="^1.0.2" />
<plugin name="cordova-plugin-device" spec="^2.0.3" />
<plugin name="cordova-plugin-local-notification" spec="^0.9.0-beta.2" />
<plugin name="call-number" spec="~0.0.2" />
<plugin name="cordova-plugin-badge" spec="^0.8.8" />
<plugin name="cordova.plugins.diagnostic" spec="^5.0.1" />
<plugin name="phonegap-plugin-barcodescanner" spec="^8.1.0">
<variable name="ANDROID_SUPPORT_V4_VERSION" value="27.+" />
</plugin>
<plugin name="cordova-plugin-camera" spec="^4.1.0" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.2.0" />
<plugin name="cordova-opentok-android-permissions" spec="^1.0.1" />
<plugin name="cordova-plugin-appavailability" spec="^0.4.2" />
<plugin name="cordova-plugin-apprate" spec="^1.4.0" />
<plugin name="cordova-plugin-file" spec="^6.0.2" />
<plugin name="cordova-plugin-filepath" spec="^1.5.6" />
<plugin name="com-badrit-base64" spec="^0.2.0" />
<plugin name="onesignal-cordova-plugin" spec="^2.7.0" />
<plugin name="cordova-plugin-fingerprint-aio" spec="^3.0.0">
<variable name="FACEID_USAGE_DESCRIPTION" value="User Authentication" />
</plugin>
<engine name="browser" spec="5.0.4" /> <engine name="browser" spec="5.0.4" />
<engine name="ios" spec="4.5.5" /> <engine name="ios" spec="4.5.5" />
</widget> </widget>

3415
Mohem/package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -21,47 +21,48 @@
"@angular/platform-browser": "^7.2.2", "@angular/platform-browser": "^7.2.2",
"@angular/platform-browser-dynamic": "^7.2.2", "@angular/platform-browser-dynamic": "^7.2.2",
"@angular/router": "^7.2.2", "@angular/router": "^7.2.2",
"@ionic-native/android-permissions": "^5.16.0", "@ionic-native/android-permissions": "^5.17.0",
"@ionic-native/app-availability": "^5.16.0", "@ionic-native/app-availability": "^5.17.0",
"@ionic-native/app-rate": "^5.16.0", "@ionic-native/app-rate": "^5.17.0",
"@ionic-native/background-geolocation": "^5.16.0", "@ionic-native/background-geolocation": "^5.4.0",
"@ionic-native/badge": "^5.16.0", "@ionic-native/badge": "^5.17.0",
"@ionic-native/barcode-scanner": "^5.16.0", "@ionic-native/barcode-scanner": "^5.17.0",
"@ionic-native/base64": "^5.15.1", "@ionic-native/base64": "^5.17.0",
"@ionic-native/ble": "^5.16.0", "@ionic-native/ble": "^5.17.0",
"@ionic-native/call-number": "^5.16.0", "@ionic-native/call-number": "^5.17.0",
"@ionic-native/camera": "^5.16.0", "@ionic-native/camera": "^5.17.0",
"@ionic-native/core": "^5.8.0", "@ionic-native/core": "^5.8.0",
"@ionic-native/date-picker": "^5.10.0", "@ionic-native/date-picker": "^5.10.0",
"@ionic-native/device": "^5.16.0", "@ionic-native/device": "^5.17.0",
"@ionic-native/diagnostic": "^5.16.0", "@ionic-native/diagnostic": "^5.17.0",
"@ionic-native/file": "^5.15.1", "@ionic-native/file": "^5.17.0",
"@ionic-native/file-path": "^5.15.1", "@ionic-native/file-path": "^5.17.0",
"@ionic-native/fingerprint-aio": "^5.16.0", "@ionic-native/fingerprint-aio": "^5.16.0",
"@ionic-native/geolocation": "^5.10.0", "@ionic-native/geolocation": "^5.10.0",
"@ionic-native/globalization": "^5.16.0", "@ionic-native/globalization": "^5.17.0",
"@ionic-native/health": "^5.16.0", "@ionic-native/health": "^5.4.0",
"@ionic-native/in-app-browser": "^5.16.0", "@ionic-native/in-app-browser": "^5.17.0",
"@ionic-native/keyboard": "^5.16.0", "@ionic-native/keyboard": "^5.17.0",
"@ionic-native/launch-navigator": "^5.16.0", "@ionic-native/launch-navigator": "^5.17.0",
"@ionic-native/local-notifications": "^5.16.0", "@ionic-native/local-notifications": "^5.17.0",
"@ionic-native/native-storage": "^5.16.0", "@ionic-native/native-storage": "^5.17.0",
"@ionic-native/onesignal": "^5.17.0", "@ionic-native/onesignal": "^5.17.0",
"@ionic-native/open-native-settings": "^5.14.0", "@ionic-native/open-native-settings": "^5.14.0",
"@ionic-native/push": "^5.16.0", "@ionic-native/push": "^5.17.0",
"@ionic-native/splash-screen": "^5.0.0", "@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/sqlite": "^5.16.0", "@ionic-native/sqlite": "^5.17.0",
"@ionic-native/status-bar": "^5.0.0", "@ionic-native/status-bar": "^5.0.0",
"@ionic-native/themeable-browser": "^5.16.0", "@ionic-native/themeable-browser": "^5.17.0",
"@ionic-native/zbar": "^5.10.0", "@ionic-native/zbar": "^5.10.0",
"@ionic/angular": "^4.1.0", "@ionic/angular": "^4.1.0",
"@ng-bootstrap/ng-bootstrap": "^4.2.2", "@ng-bootstrap/ng-bootstrap": "^4.2.2",
"@swimlane/ngx-charts": "^10.1.0", "@swimlane/ngx-charts": "^10.1.0",
"angular-calendar": "^0.26.11", "angular-calendar": "^0.26.11",
"app": "0.1.0", "app": "0.1.0",
"chart.js": "^2.9.2", "call-number": "~0.0.2",
"chart.js": "^2.9.3",
"com-badrit-base64": "^0.2.0", "com-badrit-base64": "^0.2.0",
"cordova-android": "^8.1.0", "cordova-android": "8.1.0",
"cordova-android-support-gradle-release": "^3.0.1", "cordova-android-support-gradle-release": "^3.0.1",
"cordova-browser": "5.0.4", "cordova-browser": "5.0.4",
"cordova-ios": "4.5.5", "cordova-ios": "4.5.5",
@ -69,7 +70,7 @@
"cordova-opentok-android-permissions": "^1.0.1", "cordova-opentok-android-permissions": "^1.0.1",
"cordova-plugin-actionsheet": "^2.3.3", "cordova-plugin-actionsheet": "^2.3.3",
"cordova-plugin-add-swift-support": "^2.0.2", "cordova-plugin-add-swift-support": "^2.0.2",
"cordova-plugin-android-permissions": "^1.0.0", "cordova-plugin-android-permissions": "^1.0.2",
"cordova-plugin-appavailability": "^0.4.2", "cordova-plugin-appavailability": "^0.4.2",
"cordova-plugin-apprate": "^1.4.0", "cordova-plugin-apprate": "^1.4.0",
"cordova-plugin-badge": "^0.8.8", "cordova-plugin-badge": "^0.8.8",
@ -80,15 +81,13 @@
"cordova-plugin-dialogs": "^2.0.2", "cordova-plugin-dialogs": "^2.0.2",
"cordova-plugin-file": "^6.0.2", "cordova-plugin-file": "^6.0.2",
"cordova-plugin-filepath": "^1.5.6", "cordova-plugin-filepath": "^1.5.6",
"cordova-plugin-fingerprint-aio": "^2.0.0", "cordova-plugin-fingerprint-aio": "^3.0.0",
"cordova-plugin-geolocation": "^4.0.2", "cordova-plugin-geolocation": "^4.0.2",
"cordova-plugin-globalization": "^1.11.0", "cordova-plugin-globalization": "^1.11.0",
"cordova-plugin-health": "^1.1.3",
"cordova-plugin-inappbrowser": "^3.1.0", "cordova-plugin-inappbrowser": "^3.1.0",
"cordova-plugin-ionic-keyboard": "^2.1.3", "cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "4.1.0", "cordova-plugin-ionic-webview": "^4.1.0",
"cordova-plugin-local-notification": "^0.9.0-beta.2", "cordova-plugin-local-notification": "^0.9.0-beta.2",
"cordova-plugin-mauron85-background-geolocation": "^3.0.0-alpha.50",
"cordova-plugin-nativestorage": "^2.3.2", "cordova-plugin-nativestorage": "^2.3.2",
"cordova-plugin-sms-receive": "^1.0.2", "cordova-plugin-sms-receive": "^1.0.2",
"cordova-plugin-splashscreen": "^5.0.3", "cordova-plugin-splashscreen": "^5.0.3",
@ -103,8 +102,9 @@
"mx.ferreyra.callnumber": "0.0.2", "mx.ferreyra.callnumber": "0.0.2",
"ng2-file-upload": "^1.3.0", "ng2-file-upload": "^1.3.0",
"ng2-pdf-viewer": "^5.3.2", "ng2-pdf-viewer": "^5.3.2",
"npm": "^6.13.1",
"onesignal-cordova-plugin": "^2.7.0", "onesignal-cordova-plugin": "^2.7.0",
"phonegap-plugin-barcodescanner": "8.1.0", "phonegap-plugin-barcodescanner": "^8.1.0",
"phonegap-plugin-multidex": "^1.0.0", "phonegap-plugin-multidex": "^1.0.0",
"phonegap-plugin-push": "^2.3.0", "phonegap-plugin-push": "^2.3.0",
"primeicons": "^1.0.0", "primeicons": "^1.0.0",
@ -169,11 +169,9 @@
"cordova-plugin-file": {}, "cordova-plugin-file": {},
"cordova-plugin-filepath": {}, "cordova-plugin-filepath": {},
"com-badrit-base64": {}, "com-badrit-base64": {},
"call-number": {},
"phonegap-plugin-push": { "phonegap-plugin-push": {
"GOOGLE_PLAY_SERVICES_VERSION": "16.0.0", "GOOGLE_PLAY_SERVICES_VERSION": "16.0.0",
"FCM_VERSION": "15.0.0", "FCM_VERSION": "15.0.0"
"ANDROID_SUPPORT_V13_VERSION": "27.+"
}, },
"cordova-sqlite-storage": {}, "cordova-sqlite-storage": {},
"cordova-plugin-ble-central": {}, "cordova-plugin-ble-central": {},
@ -182,28 +180,14 @@
"cordova-plugin-inappbrowser": {}, "cordova-plugin-inappbrowser": {},
"cordova-plugin-sms-receive": {}, "cordova-plugin-sms-receive": {},
"cordova-plugin-local-notification": {}, "cordova-plugin-local-notification": {},
"cordova-plugin-fingerprint-aio": { "call-number": {},
"FACEID_USAGE_DESCRIPTION": "User Authentication"
},
"cordova-plugin-mauron85-background-geolocation": {
"GOOGLE_PLAY_SERVICES_VERSION": "16.0.0",
"ANDROID_SUPPORT_LIBRARY_VERSION": "26+",
"ICON": "@mipmap/icon",
"SMALL_ICON": "@mipmap/icon",
"ACCOUNT_NAME": "@string/app_name",
"ACCOUNT_LABEL": "@string/app_name",
"ACCOUNT_TYPE": "$PACKAGE_NAME.account",
"CONTENT_AUTHORITY": "$PACKAGE_NAME"
},
"cordova-opentok-android-permissions": {}, "cordova-opentok-android-permissions": {},
"cordova-plugin-health": {
"HEALTH_READ_PERMISSION": "App needs read access to read heart rate",
"HEALTH_WRITE_PERMISSION": "App needs write access for heart rate",
"GMS_VERSION": "16.0.1"
},
"cordova-plugin-appavailability": {}, "cordova-plugin-appavailability": {},
"cordova-plugin-apprate": {}, "cordova-plugin-apprate": {},
"onesignal-cordova-plugin": {} "onesignal-cordova-plugin": {},
"cordova-plugin-fingerprint-aio": {
"FACEID_USAGE_DESCRIPTION": "User Authentication"
}
}, },
"platforms": [ "platforms": [
"browser", "browser",
@ -211,4 +195,4 @@
"android" "android"
] ]
} }
} }

@ -17,9 +17,9 @@ const routes: Routes = [
{ path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' }, { path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' },
{ path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' }, { path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' },
{ path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' }, { path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' },
{ path: 'time-card', loadChildren: './time-card/time-card.module#TimeCardPageModule' },
{ path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' } { path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' }
]; ];
@NgModule({ @NgModule({

@ -14,15 +14,13 @@
<ion-item> <ion-item>
<img class="item-icon" src="assets/imgs/username.png" item-start /> <img class="item-icon" src="assets/imgs/username.png" item-start />
<ion-label>{{ts.trPK('login','username')}}</ion-label> <ion-input required type="text" [(ngModel)]="username" placeholder="{{ts.trPK('login','username')}}">
<ion-input required type="text" [(ngModel)]="username">
</ion-input> </ion-input>
</ion-item> </ion-item>
<ion-item> <ion-item>
<img class="item-icon" src="assets/imgs/password.png" item-start /> <img class="item-icon" src="assets/imgs/password.png" item-start />
<ion-label>{{ts.trPK('login','password')}}</ion-label> <ion-input required type="password" [(ngModel)]="password" placeholder="{{ts.trPK('login','password')}}">
<ion-input required type="password" [(ngModel)]="password">
</ion-input> </ion-input>
</ion-item> </ion-item>

File diff suppressed because it is too large Load Diff

@ -54,7 +54,7 @@ import { GuidService } from './services/guid/guid.service';
import { TabsBarComponent } from './ui/tabs-bar/tabs-bar.component'; import { TabsBarComponent } from './ui/tabs-bar/tabs-bar.component';
import { PageTrailerComponent } from './ui/spacer/page-trailer/page-trailer.component'; import { PageTrailerComponent } from './ui/spacer/page-trailer/page-trailer.component';
//import { GeofencingService } from './services/geofencing/geofencing.service'; //import { GeofencingService } from './services/geofencing/geofencing.service';
import { BackgroundGeolocation } from '@ionic-native/background-geolocation/ngx'; // import { BackgroundGeolocation } from '@ionic-native/background-geolocation/ngx';
import { ButtonComponent } from './ui/button/button.component'; import { ButtonComponent } from './ui/button/button.component';
import { ToolbarButtonComponent } from './ui/toolbar-button/toolbar-button.component'; import { ToolbarButtonComponent } from './ui/toolbar-button/toolbar-button.component';
import { ListboxModule } from 'primeng/listbox'; import { ListboxModule } from 'primeng/listbox';
@ -235,7 +235,7 @@ import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx';
LifeCycleService, LifeCycleService,
HmgBrowserService, HmgBrowserService,
GuidService, GuidService,
BackgroundGeolocation, // BackgroundGeolocation,
//GeofencingService, //GeofencingService,
Keyboard, Keyboard,
KeyboardService, KeyboardService,

@ -16,6 +16,7 @@ import { PRNotificatonBodyResponse } from "../models/PRNotificationBodyRes";
import { StaticInjector } from "@angular/core/src/di/injector"; import { StaticInjector } from "@angular/core/src/di/injector";
import { POItemHistoryRes } from "../models/POItemHistoryRes"; import { POItemHistoryRes } from "../models/POItemHistoryRes";
import { MOItemHistoryRes } from "../models/MOItemHistoryRes"; import { MOItemHistoryRes } from "../models/MOItemHistoryRes";
import { QuotationAnalysisResponse } from '../models/quotationAnalysisRes';
import { Request } from 'src/app/hmg-common/services/models/request'; import { Request } from 'src/app/hmg-common/services/models/request';
import { LoginModel } from '../../authentication/models/LoginModel'; import { LoginModel } from '../../authentication/models/LoginModel';
@ -40,6 +41,8 @@ export class WorklistMainService {
"Services/ERP.svc/REST/NOTIFICATION_ACTIONS"; "Services/ERP.svc/REST/NOTIFICATION_ACTIONS";
public static getNotificationRespondAtt = public static getNotificationRespondAtt =
"Services/ERP.svc/REST/NOTIFICATION_GET_RESPOND_ATTRIBUTES"; "Services/ERP.svc/REST/NOTIFICATION_GET_RESPOND_ATTRIBUTES";
public static getQutationAnalysisUrl =
"Services/ERP.svc/REST/GET_QUOTATION_ANALYSIS";
public static getITGFormTaskCount = public static getITGFormTaskCount =
'http://10.80.100.124:7086/Services/COCWS.svc/REST/ITGGetTaskCountRequestType'; 'http://10.80.100.124:7086/Services/COCWS.svc/REST/ITGGetTaskCountRequestType';
public static getITGFormTaskDetails = public static getITGFormTaskDetails =
@ -157,6 +160,21 @@ export class WorklistMainService {
); );
} }
public getQutationAnalysis(
qutationAnalysis: any,
onError?: any,
errorLabel?: string
): Observable<QuotationAnalysisResponse> {
const request = qutationAnalysis;
this.authService.authenticateRequest(request);
return this.api.post(
WorklistMainService.getQutationAnalysisUrl,
request,
onError,
errorLabel
);
}
public getNotificationButtons( public getNotificationButtons(
WorkListButtonRequest: any, WorkListButtonRequest: any,
onError?: any, onError?: any,

@ -0,0 +1,42 @@
export class DayHoursTypeDetailsList {
public RTP_ID: number;
public ASSIGNMENT_ID: number;
public SCHEDULE_DATE: Date;
public SCHEDULED_HRS: string;
public SCHEDULED_PLANNED_OT_HRS: string;
public SCHEDULED_ON_CALL_HRS: string;
public ACTUAL_HRS: string;
public PLANNED_OT_HRS: string;
public ON_CALL_HRS: string;
public EXCESS_HRS: string;
public COMP_OFF_HRS: string;
public COMP_OFF_H_HRS: string;
public COMP_OFF_N_HRS: string;
public COMP_OFF_W_HRS: string;
public TIMEBACK_HRS: string;
public SHORTAGE_HRS: string;
public LATE_IN_HRS: string;
public EARLY_OUT_HRS: string;
public APPROVED_TIMEBACK_HRS: string;
public REMARKS: string;
public ABSENCE_ATTENDANCE_TYPE_ID: number;
public PERSON_EXTRA_INFO_ID: number;
public DAY_TYPE: string;
public MISSING_SWIPE_FLAG: string;
public EXCESS_FLAG: string;
public COMP_OFF_FLAG: string;
public TIMEBACK_FLAG: string;
public SHORTAGE_FLAG: string;
public LATE_IN_FLAG: string;
public EARLY_OUT_FLA: string;
public APPR_TIMEBACK_FLAG: string;
public PLANNED_OT_HRS_FLAG: string;
public ANALAYZED_FLAG: string;
public NON_SCHEDULED_FLAG: string;
public ROW_NUM: number;
public NO_OF_ROWS: number;
public FROM_ROW_NUM: number;
public TO_ROW_NUM: number;
public CALENDAR_ENTRY_ID: number;
public ABSENCE_ATTENDANCE_ID: number;
}

@ -0,0 +1,24 @@
import { Request } from "src/app/hmg-common/services/models/request";
import { DateTimeInput } from "src/app/uI-elements/date-time.input";
export class GetDayAndHoursDetailsRequest extends Request {
public P_SELECTED_EMPLOYEE_NUMBER: string;
public P_MENU_TYPE: string;
public P_SELECTED_RESP_ID: number;
public P_SCHEDULE_DATE_FROM: DateTimeInput;
public P_SCHEDULE_DATE_TO: DateTimeInput;
public P_EXCESS_FLAG: string;
public P_TIMEBACK_FLAG: string;
public P_COMP_OFF_FLAG: string;
public P_NON_SCHEDULED_FLAG: string;
public P_LATE_IN_FLAG: string;
public P_EARLY_OUT_FLAG: string;
public P_SHORTAGE_FLAG: string;
public P_MISSING_SWIPE_FLAG: string;
public P_ANALAYZED_FLAG: string;
public P_APPR_TIMEBACK_FLAG: string;
public P_SHT_TYPE: string;
public P_ACTUAL_WOB_SEC: string;
public P_PAGE_NUM: number;
public P_PAGE_LIMIT: number;
}

@ -0,0 +1,6 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { DayHoursTypeDetailsList } from './DayHoursTypeDetailsList';
export class GetDayAndHoursDetailsResponse extends Response {
public GetDayHoursTypeDetailsList: DayHoursTypeDetailsList[];
}

@ -0,0 +1,7 @@
import { Request } from "src/app/hmg-common/services/models/request";
export class GetShiftDetailRequest extends Request {
public P_RTP_ID: number;
public P_PAGE_NUM: number;
public P_PAGE_LIMIT: number;
}

@ -0,0 +1,6 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { ScheduleShiftsDetailsList } from "./scheduleShiftsDetailsList";
export class GetShiftDetailResponse extends Response {
public GetScheduleShiftsDetailsList: ScheduleShiftsDetailsList[];
}

@ -0,0 +1,5 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { ShiftTypeList } from "./shiftTypeList";
export class GetShiftTypeResponse extends Response {
public GetShiftTypesList: ShiftTypeList[];
}

@ -0,0 +1,9 @@
import { Request } from "src/app/hmg-common/services/models/request";
import { DateTimeInput } from "src/app/uI-elements/date-time.input";
export class GetSwipesRequest extends Request {
public P_SELECTED_EMPLOYEE_NUMBER: string;
public P_SCHEDULE_DATE: DateTimeInput;
public P_PAGE_NUM: number;
public P_PAGE_LIMIT: number;
}

@ -0,0 +1,6 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { SwipesList } from './swipesList';
export class GetSwipesResponse extends Response {
public GetSwipesList: SwipesList[];
}

@ -0,0 +1,22 @@
import { Request } from "src/app/hmg-common/services/models/request";
import { DateTimeInput } from "src/app/uI-elements/date-time.input";
export class GetTimeCardSummaryRequest extends Request {
public P_SELECTED_EMPLOYEE_NUMBER: string;
public P_MENU_TYPE: string;
public P_SELECTED_RESP_ID: number;
public P_SCHEDULE_DATE_FROM: DateTimeInput;
public P_SCHEDULE_DATE_TO: DateTimeInput;
public P_EXCESS_FLAG: string;
public P_TIMEBACK_FLAG: string;
public P_COMP_OFF_FLAG: string;
public P_NON_SCHEDULED_FLAG: string;
public P_LATE_IN_FLAG: string;
public P_EARLY_OUT_FLAG: string;
public P_SHORTAGE_FLAG: string;
public P_MISSING_SWIPE_FLAG: string;
public P_ANALAYZED_FLAG: string;
public P_APPR_TIMEBACK_FLAG: string;
public P_SHT_TYPE: string;
public P_ACTUAL_WOB_SEC: string;
}

@ -0,0 +1,6 @@
import { Response } from "src/app/hmg-common/services/models/response";
import { TimeCardSummaryList } from './timeCardSummaryList';
export class GetTimeCardSummaryResponse extends Response {
public GetTimeCardSummaryList: TimeCardSummaryList[];
}

@ -0,0 +1,32 @@
export class ScheduleShiftsDetailsList {
public st: string;
public RTP_ID: number;
public ASSIGNMENT_ID: number;
public RTP_SCHEDULE_ID: number;
public SCHEDULE_DATE: Date;
public SEQ_NO: number;
public SHT_NAME: string;
public SHT_CODE: string;
public SHT_TYPE: string;
public SHT_TYPE_DESC: string;
public BREAK_NAME: string;
public ACTUAL_WOB_HRS: string;
public SHT_ACTUAL_START_DATETIME: string;
public SHT_ACTUAL_START_TIME: string;
public SHT_ACTUAL_END_DATETIME: string;
public SHT_ACTUAL_END_TIME: string;
public APPROVED_START_DATETIME: string;
public APPROVED_START_TIME: string;
public APPROVED_START_REASON: string;
public APPROVED_START_REASON_DESC: string;
public APPROVED_END_DATETIME: string;
public APPROVED_END_TIME: string;
public APPROVED_END_REASON: string;
public APPROVED_END_REASON_DESC: string;
public SHT_ACTUAL_HRS: string;
public ROW_NUM: number;
public NO_OF_ROWS: number;
public FROM_ROW_NUM: number;
public TO_ROW_NUM: number;
}

@ -0,0 +1,4 @@
export class ShiftTypeList {
public SHT_TYPE: string;
public SHT_TYPE_DESC: string;
}

@ -0,0 +1,15 @@
export class SwipesList {
public SWIPE_DATE: number;
public SWIPE_TIME: number;
public SWIPE_STATUS: string;
public MACHINE_LOCATION: string;
public UNIT_NAME: string;
public UNIT_NUMBER: string;
public EXCLUDE_FLAG: string;
public RETURN_MESSAGE: string;
public RETURN_STATUS: string;
public NO_OF_ROWS: number;
public ROW_NUM: number;
public FROM_ROW_NUM: number;
public TO_ROW_NUM: number;
}

@ -0,0 +1,37 @@
export class TimeCardSummaryList {
public ASSIGNMENT_ID: number;
public COMP_OFF_W_HRS: number;
public ATTENDED_DAYS: number;
public COMP_OFF_N_HRS: number;
public COMP_OFF_H_HRS: number;
public EXCESS_HRS: number;
public ON_CALL_HRS: number;
public LATE_IN_HRS: number;
public EARLY_OUT_HRS: number;
public UNCOVERD_SHORTAGE_HRS: number;
public DESIRED_SCHEDULED_HRS: number;
public PERIOD_DAYS: number;
public SHORTAGE_HRS: number;
public OFF_DAYS: number;
public APPROVED_TIMEBACK_HRS: number;
public TIMEBACK_HRS: number;
public PLANNED_OTHRS: number;
public ACTUAL_HRS: number;
public SCHEDULED_ON_CALL_HRS: number;
public SCHEDULED_PLANNED_OT_HRS: number;
public SCHEDULED_HRS: number;
public NOT_ANALYZED_DAYS: number;
public LEAVES_HOLIDAYS_HRS: number;
public HALF_DAY_LEAVE: number;
public UNPAID_LEAVE: number;
public PAID_LEAVE: number;
public BUSINESS_TRIP: number;
public SHORTAGE_SCHEDULE_HRS: number;
public SCHEDULE_DAYS: number;
public NON_SCHEDULE_DAYS: number;
public ABSENT_DAYS: number;
public SICK_LEAVE: number;
public UNAUTHORIZED_LEAVE: number;
public PUBLIC_HOLIDAY: number;
public TIME_BACK_BALANCE: number;
}

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

@ -0,0 +1,104 @@
import { Injectable } from "@angular/core";
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
import { ConnectorService } from "src/app/hmg-common/services/connector/connector.service";
import { Request } from "src/app/hmg-common/services/models/request";
import { Observable } from "rxjs";
import { GetShiftTypeResponse } from "./models/get-shift-type.response";
import { GetDayAndHoursDetailsResponse } from "./models/get-day-hours-type-details.response";
import { GetTimeCardSummaryResponse } from "./models/get-time-card-summary.response";
import { GetShiftDetailResponse } from "./models/get-shift-detail.response";
import { GetSwipesResponse } from "./models/get-swipes-response";
@Injectable({
providedIn: "root"
})
export class TimeCardService {
public static getShiftTypeUrl = "Services/ERP.svc/REST/GET_SHIFT_TYPES";
public static getTimeCardSummaryUrl =
"Services/ERP.svc/REST/GET_TIME_CARD_SUMMARY";
public static getDayHourDetailsUrl =
"Services/ERP.svc/REST/GET_DAY_HOURS_TYPE_DETAILS";
public static getShiftDetailUrl =
"Services/ERP.svc/REST/GET_SCHEDULE_SHIFTS_DETAILS";
public static getSwipeUrl = "Services/ERP.svc/REST/GET_SWIPES";
constructor(
public con: ConnectorService,
private authService: AuthenticationService
) {}
public getShiftType(
onError?: any,
errorLabel?: string
): Observable<GetShiftTypeResponse> {
const request = new Request();
this.authService.authenticateRequest(request);
return this.con.post(
TimeCardService.getShiftTypeUrl,
request,
onError,
errorLabel
);
}
public getTimeCardSummary(
timeCardSummaryReq,
onError?: any,
errorLabel?: string
): Observable<GetTimeCardSummaryResponse> {
const request = timeCardSummaryReq;
this.authService.authenticateRequest(request);
return this.con.post(
TimeCardService.getTimeCardSummaryUrl,
request,
onError,
errorLabel
);
}
public getDayHoursTypeDetails(
dayHoursDetailsReq,
onError?: any,
errorLabel?: string
): Observable<GetDayAndHoursDetailsResponse> {
const request = dayHoursDetailsReq;
this.authService.authenticateRequest(request);
return this.con.post(
TimeCardService.getDayHourDetailsUrl,
request,
onError,
errorLabel
);
}
public getShiftDetail(
shiftDetailReq,
onError?: any,
errorLabel?: string
): Observable<GetShiftDetailResponse> {
const request = shiftDetailReq;
this.authService.authenticateRequest(request);
return this.con.post(
TimeCardService.getShiftDetailUrl,
request,
onError,
errorLabel
);
}
public getSwipes(
getSwipeReq,
onError?: any,
errorLabel?: string
): Observable<GetSwipesResponse> {
const request = getSwipeReq;
this.authService.authenticateRequest(request);
return this.con.post(
TimeCardService.getSwipeUrl,
request,
onError,
errorLabel
);
}
}

@ -0,0 +1,26 @@
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 { TimeCardPage } from './time-card.page';
const routes: Routes = [
{
path: '',
component: TimeCardPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [TimeCardPage]
})
export class TimeCardPageModule {}

@ -0,0 +1,9 @@
<ion-header>
<ion-toolbar>
<ion-title>time-card</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>

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

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

@ -0,0 +1 @@
Subproject commit 2d03ed75f3f34aac5e80668b6a2b75849b18de51
Loading…
Cancel
Save