prduction version

production
Mohamed Mekawy 6 years ago
parent ee7ac90c18
commit 15108e4554

@ -1,8 +1,8 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<widget id="com.cloudsolutions.alhabibmohemm" version="1.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <widget id="hmg.cloudSolutions.mohem" version="1.5.0" 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@cloudsolutios-sa.com" href="http://cloudsolutions-sa.com">cloud solution</author>
<content src="index.html" /> <content src="index.html" />
<content src="index.html" /> <content src="index.html" />
<access origin="*" /> <access origin="*" />

@ -52,7 +52,6 @@
<div class="" style="text-align:center"> <div class="" style="text-align:center">
<img src="{{companyUrl}}" class="CompanyImg logoImg"> <img src="{{companyUrl}}" class="CompanyImg logoImg">
<p class="companyTxt">{{CompanyImageDescription}}</p>
</div> </div>
<div class="menuFooter"> <div class="menuFooter">
<div> <img src="../assets/imgs/CS.png" class="CompanyImg"></div> <div> <img src="../assets/imgs/CS.png" class="CompanyImg"></div>

@ -568,31 +568,31 @@ export class ConfirmLoginComponent implements OnInit {
// title: 'Biometric Authetnciation', // (Android Only) | optional | Default: "<APP_NAME> Biometric Sign On" title: 'Biometric Authetnciation', // (Android Only) | optional | Default: "<APP_NAME> Biometric Sign On"
// subtitle: 'Coolest Plugin ever' ,// (Android Only) | optional | Default: null subtitle: 'Coolest Plugin ever' ,// (Android Only) | optional | Default: null
// description: this.ts.trPK("general", "auth-please"),// optional | Default: null description: this.ts.trPK("general", "auth-please"),// optional | Default: null
// fallbackButtonTitle: this.ts.trPK("general", "use-pin"), // optional | When disableBackup is false defaults to "Use Pin". fallbackButtonTitle: this.ts.trPK("general", "use-pin"), // optional | When disableBackup is false defaults to "Use Pin".
// // When disableBackup is true defaults to "Cancel" // When disableBackup is true defaults to "Cancel"
// disableBackup:true, // optional | default: false disableBackup:true, // optional | default: false
clientId: "Fingerprint Authetnciation", // clientId: "Fingerprint Authetnciation",
clientSecret: "Ate343_9347lajF", // Only necessary for Android // clientSecret: "Ate343_9347lajF", // Only necessary for Android
disableBackup: true, // Only for Android(optional) // disableBackup: true, // Only for Android(optional)
localizedFallbackTitle: this.ts.trPK("general", "use-pin"), // Only for iOS // localizedFallbackTitle: this.ts.trPK("general", "use-pin"), // Only for iOS
localizedReason: this.ts.trPK("general", "auth-please") // Only for iOS // localizedReason: this.ts.trPK("general", "auth-please") // Only for iOS
}) })
@ -711,7 +711,6 @@ export class ConfirmLoginComponent implements OnInit {
AuthenticationService.servicePrivilage=result.Privilege_List; AuthenticationService.servicePrivilage=result.Privilege_List;
this.authService.setAuthenticatedUser(result).subscribe(() => { this.authService.setAuthenticatedUser(result).subscribe(() => {
console.log("insert");
if (this.platform.is("cordova")) { if (this.platform.is("cordova")) {

@ -98,8 +98,7 @@ import {Camera,CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx'
import {File} from '@ionic-native/file/ngx'; import {File} from '@ionic-native/file/ngx';
import {FileUploderProfileComponent} from './ui/file-uploder-profile/file-uploder-profile.component' import {FileUploderProfileComponent} from './ui/file-uploder-profile/file-uploder-profile.component'
import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx'; import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx';
import { AccordinCustomComponent } from './ui/accordin-custom/accordin-custom.component';
import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component'
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule, CommonModule,
@ -163,9 +162,7 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus
ReplacementListComponent, ReplacementListComponent,
FileSelectDirective, FileSelectDirective,
WorkListAttachViewComponent, WorkListAttachViewComponent,
FileUploderProfileComponent, FileUploderProfileComponent
AccordinTabCustomComponent,
AccordinCustomComponent
], ],
exports: [ exports: [
NumberRangeComponent, NumberRangeComponent,
@ -216,9 +213,7 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus
ReplacementListComponent, ReplacementListComponent,
FileSelectDirective, FileSelectDirective,
WorkListAttachViewComponent, WorkListAttachViewComponent,
FileUploderProfileComponent, FileUploderProfileComponent
AccordinTabCustomComponent,
AccordinCustomComponent
], ],
providers: [ providers: [
ConnectorService, ConnectorService,

@ -125,7 +125,7 @@ export class AuthenticationService {
} }
public setPublicFields(request: Request): Request { public setPublicFields(request: Request): Request {
request.VersionID = 2.0;//2.0,1.4 request.VersionID = 1.5;//2.0,1.4
request.Channel = 31; request.Channel = 31;
request.LanguageID = TranslatorService.getCurrentLanguageCode(); request.LanguageID = TranslatorService.getCurrentLanguageCode();
//request.IPAdress = '10.10.10.10'; //request.IPAdress = '10.10.10.10';

@ -408,50 +408,6 @@ export class CommonService {
// this.alerts.push(alert); // this.alerts.push(alert);
await alert.present(); await alert.present();
} }
async confirmAlertDialogAction(
onAccept: any,
acceptLabel: string,
onCancel: any,
cancelLabel: string,
title: string,
message: string
) {
this.clearAllAlerts();
const alert = await this.alertControllerIonic.create({
header: this.ts.trPK("general", "confirm"),
message: message,
buttons: [
{
text: cancelLabel,
role: "cancel",
cssClass: "cancelBtn",
handler: () => {
if (onCancel) {
onCancel();
}
this.alertControllerIonic.dismiss();
}
},
{
text: acceptLabel,
role: "Confirm",
cssClass: "confirmBtn",
handler: () => {
if (onAccept) {
onAccept();
}
this.alertControllerIonic.dismiss();
}
}
]
});
// this.alerts.push(alert);
await alert.present();
}
public clearAllAlerts() { public clearAllAlerts() {
// custom solutions because of async issue // custom solutions because of async issue
@ -1028,9 +984,6 @@ export class CommonService {
public openWorklistMainPRPage() { public openWorklistMainPRPage() {
this.nav.navigateForward(["/notification/worklist-main-PR"]); this.nav.navigateForward(["/notification/worklist-main-PR"]);
} }
public openWorklistMainPOPage() {
this.nav.navigateForward(["/notification/worklist-main-PO"]);
}
public openWorklistReplacementRollPage() { public openWorklistReplacementRollPage() {
this.nav.navigateForward(["/notification/work-list-replacement-roll"]); this.nav.navigateForward(["/notification/work-list-replacement-roll"]);
} }
@ -1049,15 +1002,6 @@ export class CommonService {
public openWorklistRollReplacement() { public openWorklistRollReplacement() {
this.nav.navigateForward(["/notification/work-list-replacement-roll"]); this.nav.navigateForward(["/notification/work-list-replacement-roll"]);
} }
public openItemHistoryPage() {
this.nav.navigateForward(["/notification/item-history-PO"]);
}
public openQutationAnalysisPage() {
this.nav.navigateForward(["/notification/qutation-analysis-PO"]);
}
public openWorklistMainMRPage() {
this.nav.navigateForward(["/notification/worklist-main-MR"]);
}
public openMySpecialistPage() { public openMySpecialistPage() {
this.nav.navigateForward(["/my-specialist/home"]); this.nav.navigateForward(["/my-specialist/home"]);
} }

@ -24,9 +24,9 @@ export class ConnectorService {
public static timeOut = 30 * 1000; public static timeOut = 30 * 1000;
// public static host = 'http://10.50.100.113:6060/'; // development service // public static host = 'http://10.50.100.113:6060/'; // development service
public static host = "https://uat.hmgwebservices.com/"; //public static host = "https://uat.hmgwebservices.com/";
//public static host = 'https://hmgwebservices.com/'; public static host = 'https://hmgwebservices.com/';
// public static host = 'http://10.50.100.198:6060/'; //public static host = 'http://10.50.100.198:6060/';
// public static host = 'http://10.50.100.113:6060/'; // development service // public static host = 'http://10.50.100.113:6060/'; // development service
/* public static host = 'http://10.50.100.198:6060/'; /* public static host = 'http://10.50.100.198:6060/';
public static host = 'http://10.50.100.198:6060/'; // development service public static host = 'http://10.50.100.198:6060/'; // development service

@ -11,9 +11,9 @@
<img class="menuImg" src="../assets/imgs/home/burgerMenu.png"/> <img class="menuImg" src="../assets/imgs/home/burgerMenu.png"/>
<ion-badge id="homeBadgeBtn" slot="end" color="danger">{{notBadge}}</ion-badge> <ion-badge id="homeBadgeBtn" slot="end" color="danger">{{notBadge}}</ion-badge>
</button> </button>
<button ion-button icon-only menuToggle class="menubuttonTrans" (click)="openMenu()"> <!-- <button ion-button icon-only menuToggle class="menubuttonTrans" (click)="openMenu()">
<img class="transImg" src="../assets/imgs/home/arabicSwitch.png"/> <img class="transImg" src="../assets/imgs/home/arabicSwitch.png"/>
</button> </button> -->
<div class="centerDiv homeBox" (click)="openPersonalInfo()"> <div class="centerDiv homeBox" (click)="openPersonalInfo()">
<p class="TxtPlace">{{ts.trPK('home','hello')}}, {{userData.EMPLOYEE_DISPLAY_NAME}}</p> <p class="TxtPlace">{{ts.trPK('home','hello')}}, {{userData.EMPLOYEE_DISPLAY_NAME}}</p>
<div class="profileDiv"> <div class="profileDiv">
@ -24,10 +24,11 @@
</div> </div>
<div class="changeImgBtn"> <!-- <div class="changeImgBtn">
<button ion-button icon-only menuToggle class="menubutton" (click)="changeImage()"> <button ion-button icon-only menuToggle class="menubutton" (click)="changeImage()">
<ion-icon class="changeIcon" name="camera"></ion-icon></button> <ion-icon class="changeIcon" name="camera"></ion-icon></button>
</div> -->
<!-- <app-file-uploder-profile > <!-- <app-file-uploder-profile >
</app-file-uploder-profile> </app-file-uploder-profile>
@ -35,7 +36,6 @@
<!-- <file-uploader (fileSelected)="attachmentSelected($event)" [maxFileSize]="maxFileSize" [multiupload]="false"></file-uploader> --> <!-- <file-uploader (fileSelected)="attachmentSelected($event)" [maxFileSize]="maxFileSize" [multiupload]="false"></file-uploader> -->
</div>
</div> </div>
<div> <div>
@ -77,7 +77,7 @@
</button> </button>
</ion-col> </ion-col>
<ion-col size="6" class="col-grid"> <!-- <ion-col size="6" class="col-grid">
<button ion-button block class="serviceItem" (click)="openPayslip()"> <button ion-button block class="serviceItem" (click)="openPayslip()">
<ion-img class="serviceItemImg" src="../assets/imgs/home/paySlip.png"></ion-img> <ion-img class="serviceItemImg" src="../assets/imgs/home/paySlip.png"></ion-img>
<p>{{ts.trPK('login','payslip')}}</p> <p>{{ts.trPK('login','payslip')}}</p>
@ -95,7 +95,7 @@
<ion-img class="serviceItemImg" src="../assets/imgs/home/timeAttendance.png"></ion-img> <ion-img class="serviceItemImg" src="../assets/imgs/home/timeAttendance.png"></ion-img>
<p>{{ts.trPK('home','timeAndAttendance')}}</p> <p>{{ts.trPK('home','timeAndAttendance')}}</p>
</button> </button>
</ion-col> </ion-col> -->
<!-- <ion-col size="6" class="col-grid"> <!-- <ion-col size="6" class="col-grid">
<button ion-button block class="serviceItem" (click)="openPayslip()"> <button ion-button block class="serviceItem" (click)="openPayslip()">

@ -1,14 +1,14 @@
<ion-header> <ion-header >
<ion-toolbar class="header-toolbar"> <ion-toolbar class="header-toolbar">
<ion-title color="light"> {{ts.trPK('home','worklist')}}</ion-title> <ion-title color="light"> {{ts.trPK('home','worklist')}}</ion-title>
<ion-buttons slot="start"> <ion-buttons slot="start">
<nav-buttons backLink="/home"></nav-buttons> <nav-buttons backLink="/home"></nav-buttons>
</ion-buttons> </ion-buttons>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>
<ion-content [ngClass]=" direction == 'ltr' ? 'left' : 'right'"> <ion-content [ngClass]=" direction == 'ltr' ? 'left' : 'right'">
<!-- first select type view --> <!-- first select type view -->
<!-- <ion-item> <ion-item>
<ion-label>{{ts.trPK('worklist','view')}}</ion-label> <ion-label>{{ts.trPK('worklist','view')}}</ion-label>
<ion-select okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}" [(ngModel)]="notificationType" <ion-select okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}" [(ngModel)]="notificationType"
(ionChange)=onChangeView($event)> (ionChange)=onChangeView($event)>
@ -32,121 +32,41 @@
<ion-select-option value="5">{{ts.trPK('worklist','none')}}</ion-select-option> <ion-select-option value="5">{{ts.trPK('worklist','none')}}</ion-select-option>
</ion-select> </ion-select>
</ion-item> --> </ion-item>
<ion-grid>
<ion-row>
<ion-col size='3' class="ion-no-padding , menuListCol">
<ion-list class="menuList">
<ion-item class="menuListItem" lines="none">
<ion-button class="menuListBtn" (click)="AllNotification()">
<img *ngIf="!isAll" src="../assets/imgs/menuTabs/All1.png" />
<img *ngIf="isAll" src="../assets/imgs/menuTabs/All2.png" />
</ion-button>
</ion-item>
<ion-item class="menuListItem" lines="none">
<!-- <ion-item lines="none" class="activeTabMenu"*ngIf="isPR"></ion-item> -->
<!-- <ion-button class="menuListBtn" (click)="PRNotification()"><p style="color: black;">PR</p></ion-button> -->
<ion-button ion-button class="menuListBtn" (click)="PRNotification()">
<img *ngIf="!isPR" src="../assets/imgs/menuTabs/PR1.png" />
<img *ngIf="isPR" src="../assets/imgs/menuTabs/PR2.png" />
</ion-button>
</ion-item>
<ion-item class="menuListItem" lines="none">
<ion-button class="menuListBtn" (click)="PONotification()">
<img *ngIf="!isPO" src="../assets/imgs/menuTabs/PO1.png" />
<img *ngIf="isPO" src="../assets/imgs/menuTabs/PO2.png" />
</ion-button>
</ion-item>
<ion-item class="menuListItem" lines="none">
<ion-button class="menuListBtn" (click)="MRNotification()">
<img *ngIf="!isMR" src="../assets/imgs/menuTabs/MR1.png" />
<img *ngIf="isMR" src="../assets/imgs/menuTabs/MR2.png" />
</ion-button>
</ion-item>
<ion-item class="menuListItem" lines="none">
<ion-button class="menuListBtn" (click)="HRNotification()">
<img *ngIf="!isHR" src="../assets/imgs/menuTabs/HR1.png" />
<img *ngIf="isHR" src="../assets/imgs/menuTabs/HR2.png" />
</ion-button>
</ion-item>
<ion-item class="menuListItem" lines="none">
<ion-button class="menuListBtn" (click)="ITGNotification()">
<img *ngIf="!isITG" src="../assets/imgs/menuTabs/ITG1.png" />
<img *ngIf="isITG" src="../assets/imgs/menuTabs/ITG2.png" />
</ion-button>
</ion-item>
</ion-list>
</ion-col>
<ion-col size='9' class="notifincationList">
<ion-list class="notification-list" *ngIf="!noData">
<div class="timelineMain">
<ion-item class="itemListNotification" *ngFor="let notificationList of filteredNotificationList"
lines='none'>
<div class="item-date"> {{notificationList.BEGIN_DATE | dateString }} </div>
<div class="timelineMain-item" slot="start">
<!-- <div class="item-date"> {{notificationList.BEGIN_DATE }} </div> -->
<div class="timelineMain-thumb bg-color-dot timelineMain-icon">
</div>
</div>
<ion-label (click)="openNotificationDetail(notificationList)"> {{notificationList.SUBJECT}}
</ion-label>
</ion-item>
</div>
</ion-list>
<ion-list class="emptyItem" *ngIf="noData">
<ion-item class="itemListNotification" lines='none'>
<ion-label> There is no Notification
</ion-label>
</ion-item>
</ion-list>
<!-- <ion-list class="notification-list " *ngIf="isPR">
<div class="timeline">
<p>PR</p>
</div>
</ion-list>
<ion-list class="notification-list " *ngIf="isPO">
<div class="timeline">
<p>PO</p>
</div>
</ion-list>
<ion-list class="notification-list " *ngIf="isMR">
<div class="timeline">
<p>MR</p>
</div>
</ion-list>
<ion-list class="notification-list " *ngIf="isHR">
<div class="timeline">
<p>HR</p>
</div>
</ion-list>
<ion-list class="notification-list " *ngIf="isITG"> <div *ngIf="HideDateInput==true">
<div class="timeline"> <ion-item>
<p>ITG</p> <ion-label>{{ts.trPK('worklist','sent')}} </ion-label>
<ion-datetime placeholder="{{ts.trPK('worklist','enter')}}" displayFormat="DD-MMM-YYYY" pickerFormat="DD-MMM-YYYY"
[(ngModel)]="InputDate"></ion-datetime>
</ion-item>
</div>
<div *ngIf="HideTextInput==true">
<ion-item>
<ion-input placeholder="{{ts.trPK('worklist','enter')}}" [(ngModel)]="inputSearch">
</ion-input>
</ion-item>
</div>
<ion-list class="notification-list ">
<div class="timeline">
<ion-item *ngFor="let notificationList of WorkListResObj">
<div class="timeline-item" slot="start">
<!-- <div class="item-date"> {{notificationList.BEGIN_DATE }} </div> -->
<div class="item-date"> {{notificationList.BEGIN_DATE | dateString }} </div>
<div class="timeline-thumb bg-color-dot timeline-icon">
</div> </div>
</ion-list> --> </div>
</ion-col> <ion-label (click)="openNotificationDetail(notificationList)"> {{notificationList.SUBJECT}}
</ion-row> </ion-label>
</ion-grid>
</ion-item>
</div>
</ion-list>
<!-- *ngIf="rowsNo <= noOfrows" --> <!-- *ngIf="rowsNo <= noOfrows" -->
@ -155,73 +75,11 @@
</ion-infinite-scroll> </ion-infinite-scroll>
</ion-content> </ion-content>
<ion-footer class="footerSearchBtn" *ngIf="!isSearch"> <ion-footer>
<ion-button color="customnavy" expand="full" fill="outline" (click)="searchBtn()">{{ts.trPK('worklist','search')}} <div class="centerDiv">
</ion-button>
</ion-footer>
<ion-footer class="footerSearchBtn" *ngIf="isSearch">
<ion-grid>
<ion-row>
<!-- <ion-col size='3'> </ion-col> -->
<ion-col>
<div class="viewAndSearch">
<ion-item lines="none">
<ion-label>{{ts.trPK('worklist','view')}}</ion-label>
<ion-select okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}"
[(ngModel)]="notificationType" (ionChange)=onChangeView($event)>
<ion-select-option value="1" selected="true">{{ts.trPK('worklist','openNot')}}</ion-select-option>
<ion-select-option value="2">{{ts.trPK('worklist','fyi')}}</ion-select-option>
<ion-select-option value="3">{{ts.trPK('worklist','toDo')}}</ion-select-option>
<ion-select-option value="4">{{ts.trPK('worklist','all')}}</ion-select-option>
<ion-select-option value="5">{{ts.trPK('worklist','meNot')}} </ion-select-option>
</ion-select>
</ion-item>
</div>
<div class="viewAndSearch">
<ion-item>
<ion-label>{{ts.trPK('worklist','searchby')}}</ion-label>
<ion-select okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}"
[(ngModel)]="searchBy" (ionChange)="getValueSelected($event)">
<ion-select-option value="1">{{ts.trPK('worklist','from')}}</ion-select-option>
<ion-select-option value="2">{{ts.trPK('worklist','subject')}}</ion-select-option>
<ion-select-option value="3">{{ts.trPK('worklist','sent')}}</ion-select-option>
<ion-select-option value="4">{{ts.trPK('worklist','itemType')}}</ion-select-option>
<ion-select-option value="5">{{ts.trPK('worklist','none')}}</ion-select-option>
</ion-select>
</ion-item>
<div>
<div *ngIf="HideDateInput==true">
<ion-item lines='none'>
<ion-label>{{ts.trPK('worklist','sent')}} </ion-label>
<ion-datetime placeholder="{{ts.trPK('worklist','enter')}}" displayFormat="DD-MMM-YYYY"
pickerFormat="DD-MMM-YYYY" [(ngModel)]="InputDate"></ion-datetime>
</ion-item>
</div>
<div *ngIf="HideTextInput==true">
<ion-item>
<ion-input placeholder="{{ts.trPK('worklist','enter')}}" [(ngModel)]="inputSearch">
</ion-input>
</ion-item>
</div>
</div>
<div>
<ion-button class="toSearchBtn" color="customnavy" expand="full" fill="outline"
(click)="getAllPushNotificationFun()">
{{ts.trPK('worklist','search')}}</ion-button>
<ion-button class="toSearchBtn" color="customnavy" expand="full" fill="outline" (click)="searchBtn()">
{{ts.trPK('general','close')}}</ion-button>
</div>
<ion-button color="customnavy" (click)="Details()">Call details ITG</ion-button> <ion-button color="customnavy" (click)="getAllPushNotificationFun()">{{ts.trPK('worklist','search')}}</ion-button>
<ion-button color="customnavy" (click)="Count()">Call count ITG</ion-button> </div>
<!--
<ion-button color="customnavy" (click)="getAllPushNotificationFun()">{{ts.trPK('worklist','search')}}</ion-button> -->
</div>
</ion-col>
</ion-row>
</ion-grid>
</ion-footer> </ion-footer>

@ -16,26 +16,25 @@
right: 8px; right: 8px;
} }
.timelineMain { .timeline {
position: relative; position: relative;
margin: 15px 0 0 0; margin: 15px 0 0 0;
} }
.timelineMain:before { .timeline:before {
content: ''; content: '';
position: absolute; position: absolute;
top: 0; top: 0;
bottom: 0; bottom: 0;
width: 1.5%; width: 4px;
height: 99%;
background: #e4e4e4; background: #e4e4e4;
z-index: 1; z-index: 1;
/* margin-left: -10px; */ /* margin-left: -10px; */
/* z-index: 1; */ /* z-index: 1; */
} }
.timelineMain .timelineMain-thumb { .timeline .timeline-thumb {
border-radius: 500px; border-radius: 500px;
width: 50px; width: 50px;
@ -52,7 +51,7 @@
top: 0px; top: 0px;
} }
.timelineMain .timelineMain-thumb.timelineMain-icon { .timeline .timeline-thumb.timeline-icon {
height: 50px; height: 50px;
// text-align: center; // text-align: center;
// color: white; // color: white;
@ -62,12 +61,12 @@
.timelineMain .timelineMain-item { .timeline .timeline-item {
width: 50px; width: 50px;
} }
.timelineMain .timelineMain-stats { .timeline .timeline-stats {
position: relative; position: relative;
font-size: 12px; font-size: 12px;
color: var(--darkgray); color: var(--darkgray);
@ -96,30 +95,28 @@
} }
.notification-list{ .notification-list{
background: none;
ion-item{ ion-item{
// margin-top: 5px; // margin-top: 5px;
// margin-bottom: 5px; // margin-bottom: 5px;
background-color: transparent; background-color: transparent;
.item-date{ .item-date{
width: 100%; width: 55px;
font-size: 16px; font-size: 14px;
font-weight: bold; font-weight: bold;
text-align: start; text-align: center;
padding: 0; padding: 0;
margin: 0; margin: 0;
position: absolute; position: absolute;
left: 0; left: 0;
top: 12%; top: 0;
} }
ion-label , [item-end]{ ion-label , [item-end]{
white-space: normal; white-space: normal;
font-size: 14px; font-size: 14px;
padding-top: 15%;
// :root[dir="ltr"]{ // :root[dir="ltr"]{
// margin-left: 10px; // margin-left: 10px;
// } // }
@ -138,82 +135,25 @@ ion-input ,ion-datetime{
border-bottom: #dedede 1px solid; border-bottom: #dedede 1px solid;
} }
.left { .left {
--background: #f0efef; .timeline:before{
.timelineMain:before{ left: 62px;
left: 21px;
} }
.notification-list ion-item{ .notification-list ion-item{
padding-left: 3px; padding-left: 3px;
margin-left: -12%;
} }
.timelineMain-thumb{ .timeline-thumb{
left: 9%; left: 37px;
top: 30%;
} }
} }
.right { .right {
--background: #f0efef; .timeline:before{
.timelineMain:before{
right: 62px; right: 62px;
} }
.notification-list ion-item{ .notification-list ion-item{
padding-right: 3px; padding-right: 3px;
} }
.timelineMain-thumb{ .timeline-thumb{
right: 37px; right: 37px;
} }
} }
.menuList{
margin-left: -40px;
height: 160%;
padding-top: 370%;
}
.colorBG{
--background: #f0efef;
}
.menuListCol{
padding-left: 50px;
margin-left: -33px;
}
.menuListItem{
padding-top: 9%;
margin: -20%;
padding-left: 13%;
}
.menuListBtn{
width: 100%;
background: white;
--background: white;
}
.activeTabMenu{
--background: #ff726f;
}
.notifincationList{
margin-left: 5%;
margin-top: 6%;
}
.itemListNotification{
padding-bottom: 18px;
}
.footerSearchBtn{
padding: 0px !important;
background: #f0efef !important;
}
.viewAndSearch{
margin-bottom: 13px;
}
.toSearchBtn{
margin-top: 4%;
}
.emptyItem{
white-space: normal;
padding-left: 10%;
}

@ -171,13 +171,6 @@ export class HomeComponent implements OnInit {
if(obj.REQUEST_TYPE == "PR"){ if(obj.REQUEST_TYPE == "PR"){
this.common.openWorklistMainPRPage(); this.common.openWorklistMainPRPage();
} }
else if(obj.REQUEST_TYPE == "PO"){
this.common.openWorklistMainPOPage();
}
else if(obj.REQUEST_TYPE == "MO"){
this.common.openWorklistMainMRPage();
}
else{ else{
this.common.openWorklistMainPage(); this.common.openWorklistMainPage();

@ -21,10 +21,6 @@ import { WorkListDetailsComponent } from './work-list-details/work-list-details.
import { WorklistAttachService } from '../absence/service/work-list-attach.service'; import { WorklistAttachService } from '../absence/service/work-list-attach.service';
import { WorklistMainPRComponent } from './worklist-main-pr/worklist-main-pr.component'; import { WorklistMainPRComponent } from './worklist-main-pr/worklist-main-pr.component';
import { ApplyActionModalComponent } from './apply-action-modal/apply-action-modal.component'; import { ApplyActionModalComponent } from './apply-action-modal/apply-action-modal.component';
import { WorklistMainPoComponent } from './worklist-main-po/worklist-main-po.component';
import { ItemHistoryComponent } from './item-history/item-history.component';
import { QutationAnalysisComponent } from './qutation-analysis/qutation-analysis.component';
import { WorklistMainMRComponent } from './worklist-main-mr/worklist-main-mr.component';
// import { WorklistMainComponent } from './worklist-main/worklist-main.component'; // import { WorklistMainComponent } from './worklist-main/worklist-main.component';
@ -82,22 +78,6 @@ const routes: Routes = [
{ {
path:'apply-action-modal', path:'apply-action-modal',
component:ApplyActionModalComponent component:ApplyActionModalComponent
},
{
path:'worklist-main-PO',
component:WorklistMainPoComponent
},
{
path:'item-history-PO',
component:ItemHistoryComponent
},
{
path:'qutation-analysis-PO',
component:QutationAnalysisComponent
},
{
path:'worklist-main-MR',
component:WorklistMainMRComponent
} }
] ]
} }
@ -124,11 +104,7 @@ const routes: Routes = [
WorkListActionHistoryComponent, WorkListActionHistoryComponent,
WorkListAttachComponent, WorkListAttachComponent,
WorkListDetailsComponent, WorkListDetailsComponent,
WorklistMainPRComponent, WorklistMainPRComponent
WorklistMainPoComponent,
ItemHistoryComponent,
QutationAnalysisComponent,
WorklistMainMRComponent
// WorklistMainComponent // WorklistMainComponent
], ],
providers:[WorklistService,WorklistMainService, WorklistAttachService] providers:[WorklistService,WorklistMainService, WorklistAttachService]

@ -136,9 +136,7 @@ export class WorklistMainService {
errorLabel?: string errorLabel?: string
): Observable<POItemHistoryRes> { ): Observable<POItemHistoryRes> {
const request = POItemHistoryReq; const request = POItemHistoryReq;
this.authService.authenticateRequest(request); this.authService.authenticateRequest(request);
// this.authService.setPublicFields(request);
return this.api.post( return this.api.post(
WorklistMainService.getPOItemHistory, WorklistMainService.getPOItemHistory,
request, request,

@ -378,13 +378,13 @@ export class WorklistMainMRComponent implements OnInit {
} }
this.common.confirmAlertDialogAction( // //this.common.confirmAlertDialogAction(
() => { // () => {
this.applyAction(this.WorkListActionObj); // this.applyAction(this.WorkListActionObj);
}, this.ts.trPK('general', 'ok'), // }, this.ts.trPK('general', 'ok'),
() => {}, this.ts.trPK('general', 'cancel'), // () => {}, this.ts.trPK('general', 'cancel'),
this.ts.trPK('vacation-rule', 'confirmation'), // this.ts.trPK('vacation-rule', 'confirmation'),
this.confirmMsg); // this.confirmMsg);

@ -403,13 +403,13 @@ export class WorklistMainPoComponent implements OnInit {
} }
this.common.confirmAlertDialogAction( // this.common.confirmAlertDialogAction(
() => { // () => {
this.applyAction(this.WorkListActionObj); // this.applyAction(this.WorkListActionObj);
}, this.ts.trPK('general', 'ok'), // }, this.ts.trPK('general', 'ok'),
() => {}, this.ts.trPK('general', 'cancel'), // () => {}, this.ts.trPK('general', 'cancel'),
this.ts.trPK('vacation-rule', 'confirmation'), // this.ts.trPK('vacation-rule', 'confirmation'),
this.confirmMsg); // this.confirmMsg);
@ -785,7 +785,7 @@ export class WorklistMainPoComponent implements OnInit {
WorklistMainPoComponent.PASS_PO_INFO WorklistMainPoComponent.PASS_PO_INFO
); );
//open page //open page
this.common.openItemHistoryPage(); // this.common.openItemHistoryPage();
//this.handleItemHistoryResult(result); //this.handleItemHistoryResult(result);
}); });
} }
@ -842,7 +842,7 @@ export class WorklistMainPoComponent implements OnInit {
//set sheard data //set sheard data
// //
this.common.openQutationAnalysisPage(); //this.common.openQutationAnalysisPage();
// this.QutationAnalysisRes = result.GetQutationAnalysisList; // this.QutationAnalysisRes = result.GetQutationAnalysisList;

@ -130,9 +130,8 @@
<div *ngFor="let header of PRHeader"> <div *ngFor="let header of PRHeader">
<ion-row <ion-row *ngIf="header.HDR_ATTRIBUTE_NAME != 'Requisition Total' && header.HDR_ATTRIBUTE_NAME != 'Non-Recoverable Tax'">
*ngIf="header.HDR_ATTRIBUTE_NAME != 'Requisition Total' && header.HDR_ATTRIBUTE_NAME != 'Non-Recoverable Tax'"> <!-- *ngIf="header.HDR_ATTRIBUTE_NAME != 'Requisition Total' && header.HDR_ATTRIBUTE_NAME != 'Non-Recoverable Tax'"> -->
<!-- *ngIf="header.HDR_ATTRIBUTE_NAME != 'Requisition Total' && header.HDR_ATTRIBUTE_NAME != 'Non-Recoverable Tax'"> -->
<ion-col> <ion-col>
<label class="colItemReq" for="">{{header.HDR_ATTRIBUTE_NAME}} </label> <label class="colItemReq" for="">{{header.HDR_ATTRIBUTE_NAME}} </label>
@ -145,28 +144,28 @@
</div> </div>
<br /> <br />
<ion-grid> <ion-grid>
<div> <div >
<ion-row style="text-align: center !important"> <ion-row style="text-align: center !important" >
<ion-col *ngIf="totalH"> <ion-col *ngIf="totalH">
<div class="colItemReq" style="text-align: center !important">{{totalH}}</div> <div class="colItemReq" style="text-align: center !important">{{totalH}}</div>
<div class="labelTotal">{{valueH}}</div> <div class="labelTotal">{{valueH}}</div>
</ion-col> </ion-col>
<ion-col *ngIf="taxH "> <ion-col *ngIf="taxH ">
<div class="colItemReq" style="text-align: center !important">{{taxH}}</div> <div class="colItemReq" style="text-align: center !important">{{taxH}}</div>
<div class="labelTotal">{{taxvalueH}}</div> <div class="labelTotal">{{taxvalueH}}</div>
</ion-col> </ion-col>
</ion-row> </ion-row>
</div> </div>
</ion-grid> </ion-grid>
</ion-grid> </ion-grid>
</ion-card-content> </ion-card-content>
@ -194,153 +193,143 @@
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<!-- <ion-card class="cardContent"> --> <ion-card class="cardContent">
<!-- <ion-card-header class="boxHdr"> <!-- <ion-card-header class="boxHdr">
<div class="hrTitle"> {{ts.trPK('worklistMain','info')}} </div> <div class="hrTitle"> {{ts.trPK('worklistMain','info')}} </div>
</ion-card-header> --> </ion-card-header> -->
<!-- <ion-card-content> --> <ion-card-content>
<div [hidden]="PRLines && PRLines.length > 0">
<div [hidden]="PRLines && PRLines.length > 0"> <p>{{ 'general, empty' | translate}}</p>
<p>{{ 'general, empty' | translate}}</p> </div>
</div> <div *ngIf="PRLines && PRLines.length > 0 ">
<ion-list class="itemReqList" *ngIf="PRLines && PRLines.length > 0 "> <ion-grid>
<div> <div *ngFor="let Lines of PRLines; let i=index; " style="text-align: left">
<ion-grid class="gridItemReq"> <ion-row>
<ion-col class="colItemReqHeader">
<ion-item class="itemReqContent" *ngFor="let Lines of PRLines; let i=index; "> <!-- <label for="">{{ts.trPK('worklistMain','description')}}
<div class="itemReqDiv">
<ion-row>
<ion-col class="colItemReqHeader">
<!-- <label for="">{{ts.trPK('worklistMain','description')}}
</label> --> </label> -->
<!-- </ion-col> <!-- </ion-col>
<ion-col> --> <ion-col> -->
<label for="">{{i+1}}. {{Lines.DESCRIPTION}} </label> <label for="">{{i+1}}. {{Lines.DESCRIPTION}} </label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class="colItems"> <ion-col>
<label class="colItemReq" for="">{{ts.trPK('worklistMain','cost-center')}} <label class="colItemReq" for="">{{ts.trPK('worklistMain','cost-center')}} </label>
</label> <br />
<br /> <!-- </ion-col>
<!-- </ion-col>
<ion-col> --> <ion-col> -->
<ion-label class="labelValue" for="">{{Lines.COST_CENTER}} </ion-label> <label for="">{{Lines.COST_CENTER}} </label>
</ion-col> </ion-col>
<!-- </ion-row> <!-- </ion-row>
<ion-row> --> <ion-row> -->
<ion-col class="colItems"> <ion-col>
<label class="colItemReq" for="">{{ts.trPK('worklistMain','code')}} </label> <label class="colItemReq" for="">{{ts.trPK('worklistMain','code')}} </label>
<br /> <br />
<!-- </ion-col> <!-- </ion-col>
<ion-col> --> <ion-col> -->
<ion-label class="labelValue" for="">{{Lines.ITEM_CODE}} </ion-label> <label for="">{{Lines.ITEM_CODE}} </label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class="colItems"> <ion-col>
<label class="colItemReq" for="">{{ts.trPK('worklistMain','unit')}} </label> <label class="colItemReq" for="">{{ts.trPK('worklistMain','unit')}} </label>
<br /> <br />
<!-- </ion-col> <!-- </ion-col>
<ion-col> --> <ion-col> -->
<ion-label class="labelValue" for="">{{Lines.UOM}} </ion-label> <label for="">{{Lines.UOM}} </label>
</ion-col> </ion-col>
<!-- </ion-row> <!-- </ion-row>
<ion-row> --> <ion-row> -->
<ion-col class="colItems"> <ion-col>
<label class="colItemReq" for="">{{ts.trPK('worklistMain','price')}} </label> <label class="colItemReq" for="">{{ts.trPK('worklistMain','price')}} </label>
<br /> <br />
<!-- </ion-col> <!-- </ion-col>
<ion-col> --> <ion-col> -->
<ion-label class="labelValue" for="">{{Lines.UNIT_PRICE}} </ion-label> <label for="">{{Lines.UNIT_PRICE}} </label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class="colItems"> <ion-col>
<label class="colItemReq" for="">{{ts.trPK('payslip','amount')}} </label> <label class="colItemReq" for="">{{ts.trPK('payslip','amount')}} </label>
<br /> <br />
<!-- </ion-col> <!-- </ion-col>
<ion-col> --> <ion-col> -->
<ion-label class="labelValue" for="">{{Lines.LINE_AMOUNT}} </ion-label> <label for="">{{Lines.LINE_AMOUNT}} </label>
</ion-col> </ion-col>
<!-- </ion-row> <!-- </ion-row>
<ion-row> --> <ion-row> -->
<ion-col class="colItems"> <ion-col>
<label class="colItemReq" for="">{{ts.trPK('worklistMain','quantity')}} </label> <label class="colItemReq" for="">{{ts.trPK('worklistMain','quantity')}} </label>
<br /> <br />
<!-- </ion-col> <!-- </ion-col>
<ion-col> --> <ion-col> -->
<ion-label class="labelValue" for="">{{Lines.QUANTITY}} </ion-label> <label for="">{{Lines.QUANTITY}} </label>
</ion-col> </ion-col>
</ion-row> </ion-row>
</div>
</ion-item> </div>
</ion-grid> </ion-grid>
</div> </div>
</ion-list> </ion-card-content>
<!-- </ion-card-content> --> </ion-card>
<!-- </ion-card> -->
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<ion-card class="cardContent"> <ion-card class="cardContent">
<ion-card-content> <ion-card-content>
<div [hidden]="actionHistoryRes && actionHistoryRes.length > 0"> <div [hidden]="actionHistoryRes && actionHistoryRes.length > 0">
<p>{{ 'general, empty' | translate}}</p> <p>{{ 'general, empty' | translate}}</p>
</div> </div>
<div *ngIf="actionHistoryRes && actionHistoryRes.length > 0 "> <div *ngIf="actionHistoryRes && actionHistoryRes.length > 0 ">
<ion-list class="notification-list "> <ion-list class="notification-list ">
<div class="timeline"> <div class="timeline">
<ion-item *ngFor="let actionHistory of actionHistoryRes"> <ion-item *ngFor="let actionHistory of actionHistoryRes">
<div class="timeline-item" slot="start">
<!-- <div class="item-date"> {{notificationList.BEGIN_DATE }} </div> -->
<!-- [hidden]="actionHistory.NOTE == '' || actionHistory.NOTE == null"> -->
<div> <div class="timeline-item" slot="start">
<!-- <div class="item-date"> {{notificationList.BEGIN_DATE }} </div> -->
<!-- [hidden]="actionHistory.NOTE == '' || actionHistory.NOTE == null"> -->
<button ion-button <div>
(click)="openNoteDetail(actionHistory.NOTE ,actionHistory.NAME)"
[hidden]="actionHistory.NOTE == '' || actionHistory.NOTE == null"
style=" background: none;width: 60%;">
<img src="../assets/imgs/noteSmall.png"> <button ion-button (click)="openNoteDetail(actionHistory.NOTE ,actionHistory.NAME)"
[hidden]="actionHistory.NOTE == '' || actionHistory.NOTE == null"
style=" background: none;width: 60%;">
<img src="../assets/imgs/noteSmall.png">
<!-- <ion-icon name="bookmark"></ion-icon> --> <!-- <ion-icon name="bookmark"></ion-icon> -->
</button> </button>
</div> </div>
<!-- [ngClass]="{'bg-blue-dot' : actionHistory.ACTION === 'Submitted' ,'statusGreanColor' :appointmentsArrive.Status != 1 && appointmentsArrive.Status != 2, 'statusRedColor' :appointmentsArrive.Status === 2}" --> <!-- [ngClass]="{'bg-blue-dot' : actionHistory.ACTION === 'Submitted' ,'statusGreanColor' :appointmentsArrive.Status != 1 && appointmentsArrive.Status != 2, 'statusRedColor' :appointmentsArrive.Status === 2}" -->
<div <div
[ngClass]="{'bg-blue-dot' : actionHistory.ACTION === 'Submitted' || actionHistory.ACTION === 'Submit' ,'bg-orange-dot' : actionHistory.ACTION === 'Pending' ,'bg-red-dot' : actionHistory.ACTION === 'Rejected','bg-green-dot' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" [ngClass]="{'bg-blue-dot' : actionHistory.ACTION === 'Submitted' ,'bg-orange-dot' : actionHistory.ACTION === 'Pending' ,'bg-red-dot' : actionHistory.ACTION === 'Rejected','bg-green-dot' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted'}"
class="timeline-thumb timeline-icon"> class="timeline-thumb timeline-icon">
</div>
</div> </div>
<ion-col> </div>
<ion-label <ion-col>
[ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submitted' || actionHistory.ACTION === 'Submit' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Rejected','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted' && actionHistory.ACTION != 'Submit'}" <ion-label [ngClass]="{'bg-blue-txt' : actionHistory.ACTION === 'Submitted' ,'bg-orange-txt' : actionHistory.ACTION === 'Pending' ,'bg-red-txt' : actionHistory.ACTION === 'Rejected','bg-green-txt' : actionHistory.ACTION != 'Pending' && actionHistory.ACTION != 'Rejected' && actionHistory.ACTION != 'Submitted'}"
class=""> {{actionHistory.ACTION}}</ion-label> class=""> {{actionHistory.ACTION}}</ion-label>
<ion-label> {{actionHistory.NAME}} <ion-label > {{actionHistory.NAME}}
</ion-label> </ion-label>
<ion-label> {{actionHistory.NOTIFICATION_DATE| dateString }} </ion-label> <ion-label> {{actionHistory.NOTIFICATION_DATE| dateString }} </ion-label>
</ion-col> </ion-col>
</ion-item> </ion-item>
</div> </div>
</ion-list> </ion-list>
</div> </div>
</ion-card-content> </ion-card-content>
</ion-card> </ion-card>
@ -353,46 +342,39 @@
<p>{{ 'general, notAttch' | translate}}</p> <p>{{ 'general, notAttch' | translate}}</p>
</div> </div>
<div *ngIf="attachmentRes && attachmentRes.length > 0 "> <div *ngIf="attachmentRes && attachmentRes.length > 0 ">
<!-- <ion-card> <!-- <ion-card>
<ion-card-header class="boxHdr"> <ion-card-header class="boxHdr">
<div class="hrTitle">{{'worklistMain, suppDoc' | translate}}</div> <div class="hrTitle">{{'worklistMain, suppDoc' | translate}}</div>
</ion-card-header> </ion-card-header>
<ion-card-content> <ion-card-content>
--> -->
<ion-grid> <ion-grid>
<div *ngFor="let attachList of attachmentRes"> <div *ngFor="let attachList of attachmentRes">
<ion-row (click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)"> <ion-row (click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)">
<ion-col col-12> <ion-col col-12>
<div <div *ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'"> <img float-start class="attachImg" src="../assets/imgs/pdf.png">
*ngIf="attachList.FILE_CONTENT_TYPE === 'pdf' || attachList.FILE_CONTENT_TYPE === 'PDF'"> </div>
<img float-start class="attachImg" src="../assets/imgs/pdf.png"> <div *ngIf="attachList.FILE_CONTENT_TYPE === 'txt'"> <img float-start class="attachImg" src="../assets/imgs/doc.png">
</div> </div>
<div *ngIf="attachList.FILE_CONTENT_TYPE === 'txt'"> <img float-start <div *ngIf="attachList.FILE_CONTENT_TYPE != 'txt' && attachList.FILE_CONTENT_TYPE != 'PDF' && attachList.FILE_CONTENT_TYPE != 'pdf' && attachList.FILE_CONTENT_TYPE != 'png' && attachList.FILE_CONTENT_TYPE != 'jpeg' && attachList.FILE_CONTENT_TYPE != 'jpg' && attachList.FILE_CONTENT_TYPE != 'PNG' && attachList.FILE_CONTENT_TYPE != 'JPEG' && attachList.FILE_CONTENT_TYPE != 'JPG'"> <img float-start class="attachImg" src="../assets/imgs/nonfile.png">
class="attachImg" src="../assets/imgs/doc.png"> </div>
</div> <div *ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'"> <img float-start class="attachImg" src="../assets/imgs/img.png">
<div </div>
*ngIf="attachList.FILE_CONTENT_TYPE != 'txt' && attachList.FILE_CONTENT_TYPE != 'PDF' && attachList.FILE_CONTENT_TYPE != 'pdf' && attachList.FILE_CONTENT_TYPE != 'png' && attachList.FILE_CONTENT_TYPE != 'jpeg' && attachList.FILE_CONTENT_TYPE != 'jpg' && attachList.FILE_CONTENT_TYPE != 'PNG' && attachList.FILE_CONTENT_TYPE != 'JPEG' && attachList.FILE_CONTENT_TYPE != 'JPG'"> <ion-label>
<img float-start class="attachImg" src="../assets/imgs/nonfile.png"> {{attachList.SEQ_NUM }}. {{attachList.FILE_NAME}} </ion-label>
</div> </ion-col>
<div <!-- <ion-col col-2>
*ngIf="attachList.FILE_CONTENT_TYPE === 'png' || attachList.FILE_CONTENT_TYPE === 'jpeg' || attachList.FILE_CONTENT_TYPE === 'jpg'|| attachList.FILE_CONTENT_TYPE === 'PNG' || attachList.FILE_CONTENT_TYPE === 'JPEG'|| attachList.FILE_CONTENT_TYPE === 'JPG'">
<img float-start class="attachImg" src="../assets/imgs/img.png">
</div>
<ion-label>
{{attachList.SEQ_NUM }}. {{attachList.FILE_NAME}} </ion-label>
</ion-col>
<!-- <ion-col col-2>
<button float-end class="attachImgBtn" <button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)"> (click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)">
<img class="attachImg" src="../assets/imgs/view.png"> <img class="attachImg" src="../assets/imgs/view.png">
</button> </button>
</ion-col> --> </ion-col> -->
</ion-row> </ion-row>
</div> </div>
</ion-grid> </ion-grid>
<!-- </ion-card-content> <!-- </ion-card-content>
</ion-card> --> </ion-card> -->
</div> </div>
@ -407,47 +389,55 @@
</div> --> </div> -->
</ion-content> </ion-content>
<ion-footer class="footerSearchBtn"> <ion-footer class="footerSearchBtn">
<ion-row>
<ion-col col-12>
<div id="notificationDynamicFields">
</div>
</ion-col>
</ion-row>
<ion-row> <ion-row>
<ion-col col-12> <!-- <div class="centerDiv"> -->
<div id="notificationDynamicFields"> <ion-col col-2>
</div>
</ion-col>
</ion-row>
<ion-row>
<!-- <div class="centerDiv"> -->
<ion-col col-2>
</ion-col> </ion-col>
<ion-col col-8> <ion-col col-8>
<!-- <ion-button color="customnavy" class="gridBtn" (click)="actionButton()"> {{ts.trPK('general','submit')}} <!-- <ion-button color="customnavy" class="gridBtn" (click)="actionButton()"> {{ts.trPK('general','submit')}}
</ion-button> --> </ion-button> -->
<ion-item *ngIf="notificationButtonRes?.length >0" class="requiredItem actionList"> <ion-item *ngIf="notificationButtonRes?.length >0" class="requiredItem actionList">
<ion-label class="boldTxtNav">{{'actionHis, action' | translate}} </ion-label> <ion-label class="boldTxtNav">{{'actionHis, action' | translate}} </ion-label>
<ion-select (ionChange)="actionButton()" okText="{{ts.trPK('general','ok')}}" <ion-select (ionChange)="actionButton()" okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}"
cancelText="{{ts.trPK('general','cancel')}}" [(ngModel)]="actionType" required> [(ngModel)]="actionType" required>
<ion-select-option value="{{notificationButtons.BUTTON_ACTION}}" <ion-select-option value="{{notificationButtons.BUTTON_ACTION}}"
*ngFor="let notificationButtons of notificationButtonRes; let i=index;"> *ngFor="let notificationButtons of notificationButtonRes; let i=index;">
{{notificationButtons.BUTTON_LABEL}}</ion-select-option> {{notificationButtons.BUTTON_LABEL}}</ion-select-option>
</ion-select> </ion-select>
</ion-item> </ion-item>
</ion-col> </ion-col>
<!-- </div> --> <!-- </div> -->
<ion-col col-2 style="bottom: -8px"> <ion-col col-2>
<ion-button class="skipbutton" (click)="nextNotfification()"> <ion-button class="skipbutton" (click)="nextNotfification()">
{{'worklistMain, skip' | translate}} {{'worklistMain, skip' | translate}}
<img class="arrowIcon" src="../assets/imgs/arrowRight.png"> <img style="width:20px" src="../assets/imgs/arrowRight.png">
</ion-button> </ion-button>
</ion-col> </ion-col>
</ion-row> </ion-row>
<!-- <div class="centerDiv">
<ion-button color="customnavy" class="gridBtn" (click)="actionButton()"> {{ts.trPK('general','submit')}}
</ion-button>
</div> -->
<!-- <div class="centerDiv">
<ion-button color="customnavy" class="gridBtn" (click)="nextNotfification()">
{{'worklistMain, skip' | translate}}
</ion-button>
</div> -->

@ -1,306 +1,306 @@
// .colorBG{ .colorBG{
// --background: #f0efef; --background: #f0efef;
// } }
// .footerSearchBtn{ .footerSearchBtn{
// padding: 0px !important; padding: 0px !important;
// background: #f0efef !important; background: #f0efef !important;
}
.actionList{
// position: fixed;
// bottom: 0px;
width: 215px;
border-top-left-radius: 7px;
border-top-right-radius: 7px
}
.cardContent{
width:100%;
margin-top: 33px
}
.colItemReq{
color: var(--dark);
font-weight: bold;
font-size: 15px;
text-align: left;
}
.colItemReqHeader{
text-align: left;
color: var(--primary);
font-weight: bold;
}
.labelTotal{
color: var(--danger);
font-weight: bold;
font-size: 17px;
}
.labelAction{
color:var(--customnavy) !important;
font-weight:bold;
}
.segmentPR{
// --background-hover: rgba(var(--ion-color-contrast-rgb),0.04);
// --background-activated: var(--danger);
// --color: rgba(--primary);
--color-checked: var(--dark);
--indicator-color-checked: var(--secondary);
--background: #f0efef;
--background-activated: #f0efef;
--background-hover:#f0efef;
--background-activated:#f0efef;
--background-checked:#f0efef;
}
.ion-modal#ion-overlay-1 {
width: 90%;
height: 50%;
top: 20%;
left: 5%;
right: 5%;
bottom: 5%;
border: solid 1px red;
}
// .swiper-pagination.swiper-pagination-bullets{
// top: 6px;
// bottom: inherit;
// } // }
// .actionList{
// // position: fixed;
// // bottom: 0px;
// width: 215px;
// border-top-left-radius: 7px;
// border-top-right-radius: 7px
// }
// .cardContent{
// width:100%;
// margin-top: 33px
// }
// .colItemReq{
// color: var(--dark);
// font-weight: bold;
// font-size: 15px;
// text-align: left;
// }
// .colItemReqHeader{
// text-align: left;
// color: var(--primary);
// font-weight: bold;
// }
// .labelTotal{
// color: var(--danger);
// font-weight: bold;
// font-size: 17px;
// }
// .labelAction{
// color:var(--customnavy) !important;
// font-weight:bold;
// }
// .segmentPR{
// // --background-hover: rgba(var(--ion-color-contrast-rgb),0.04);
// // --background-activated: var(--danger);
// // --color: rgba(--primary);
// --color-checked: var(--dark);
// --indicator-color-checked: var(--secondary);
// --background: #f0efef;
// --background-activated: #f0efef;
// --background-hover:#f0efef;
// --background-activated:#f0efef;
// --background-checked:#f0efef;
// .swiper-pagination.swiper-pagination-bullets {
// } // top: 6px !important;
// bottom: 0px !important;
// .ion-modal#ion-overlay-1 { // }
// width: 90%;
// height: 50%;
// top: 20%;
// left: 5%;
// right: 5%;
// bottom: 5%;
// border: solid 1px red;
// }
// // .swiper-pagination.swiper-pagination-bullets{
// // top: 6px;
// // bottom: inherit;
// // }
// // .swiper-pagination.swiper-pagination-bullets {
// // top: 6px !important;
// // bottom: 0px !important;
// // }
// // .swiper-pagination { // .swiper-pagination {
// // top: 6px; // top: 6px;
// // } // }
// .bar-stable { .bar-stable {
// background-color: var(--cusgray) !important; background-color: var(--cusgray) !important;
// } }
// .tabs{ .tabs{
// background-color: var(--cusgray) !important; background-color: var(--cusgray) !important;
// } }
// .icon-size-lg { .icon-size-lg {
// font-size: 40px; font-size: 40px;
// } }
// /*Timeline*/ /*Timeline*/
// .pos-absolute-right { .pos-absolute-right {
// position: absolute; position: absolute;
// right: 8px; right: 8px;
// } }
// .timeline { .timeline {
// position: relative; position: relative;
// margin: 15px 0 0 0; margin: 15px 0 0 0;
// } }
// .timeline:before { .timeline:before {
// content: ''; content: '';
// position: absolute; position: absolute;
// top: 0; top: 0;
// bottom: 0; bottom: 0;
// width: 4px; width: 4px;
// background: #e4e4e4; background: #e4e4e4;
// z-index: 1; z-index: 1;
// left: 66px; left: 66px;
// /* margin-left: -10px; */ /* margin-left: -10px; */
// /* z-index: 1; */ /* z-index: 1; */
// } }
// .timeline .timeline-thumb { .timeline .timeline-thumb {
// border-radius: 500px; border-radius: 500px;
// width: 40px !important; width: 40px !important;
// z-index: 2; z-index: 2;
// position: absolute; position: absolute;
// left: 48px; left: 48px;
// // :root[dir="ltr"]{ // :root[dir="ltr"]{
// // left: 37px; // left: 37px;
// // } // }
// // :root[dir="rtl"]{ // :root[dir="rtl"]{
// // right: 37px; // right: 37px;
// // } // }
// float: right; float: right;
// top: 9px; top: 9px;
// } }
// .timeline .timeline-thumb.timeline-icon { .timeline .timeline-thumb.timeline-icon {
// height: 40px; height: 40px;
// // text-align: center; // text-align: center;
// // color: white; // color: white;
// // border: 5px solid #CBD0D3; // border: 5px solid #CBD0D3;
// // transform: scale(0.2); // transform: scale(0.2);
// } }
// .timeline .timeline-item { .timeline .timeline-item {
// width: 50px; width: 50px;
// } }
// .timeline .timeline-stats { .timeline .timeline-stats {
// position: relative; position: relative;
// font-size: 12px; font-size: 12px;
// color: var(--darkgray); color: var(--darkgray);
// } }
// .divider-title { .divider-title {
// background: #e4e4e4; background: #e4e4e4;
// padding: 5px 15px; padding: 5px 15px;
// } }
// .color-red { .color-red {
// color: var(--danger) !important; color: var(--danger) !important;
// } }
// .bg-color-dot { .bg-color-dot {
// background: var(--gray); background: var(--gray);
// /* background: linear-gradient(45deg, var(--primary) 0%, #19a163 36%, var(--secondary) 59%, var(--customnavy) 100%); */ /* background: linear-gradient(45deg, var(--primary) 0%, #19a163 36%, var(--secondary) 59%, var(--customnavy) 100%); */
// // border: var(--secondary) solid 1px; // border: var(--secondary) solid 1px;
// // background-color: #ff3b30 !important; // background-color: #ff3b30 !important;
// // background: var(--primary); // background: var(--primary);
// //background: -moz-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%); //background: -moz-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%);
// //background: -webkit-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%); //background: -webkit-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%);
// //background: linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%); //background: linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%);
// } }
// .bg-blue-dot { .bg-blue-dot {
// border: var(--blue) solid 1px; border: var(--blue) solid 1px;
// background: var(--gray); background: var(--gray);
// } }
// .bg-orange-dot { .bg-orange-dot {
// border: var(--orange) solid 1px; border: var(--orange) solid 1px;
// background: var(--gray); background: var(--gray);
// } }
// .bg-red-dot { .bg-red-dot {
// border: var(--red) solid 1px; border: var(--red) solid 1px;
// background: var(--gray); background: var(--gray);
// } }
// .bg-green-dot { .bg-green-dot {
// border: var(--green) solid 1px; border: var(--green) solid 1px;
// background: var(--gray); background: var(--gray);
// } }
// .bg-blue-txt { .bg-blue-txt {
// color: var(--blue) !important; color: var(--blue) !important;
// font-weight:bold; font-weight:bold;
// } }
// .bg-orange-txt { .bg-orange-txt {
// font-weight:bold; font-weight:bold;
// color: var(--orange) !important; color: var(--orange) !important;
// } }
// .bg-red-txt { .bg-red-txt {
// font-weight:bold; font-weight:bold;
// color: var(--red) !important; color: var(--red) !important;
// } }
// .bg-green-txt { .bg-green-txt {
// font-weight:bold; font-weight:bold;
// color: var(--green) !important; color: var(--green) !important;
// } }
// .notification-list{ .notification-list{
// ion-item{ ion-item{
// // margin-top: 5px; // margin-top: 5px;
// // margin-bottom: 5px; // margin-bottom: 5px;
// background-color: transparent; background-color: transparent;
// .item-date{ .item-date{
// width: 55px; width: 55px;
// font-size: 14px; font-size: 14px;
// font-weight: bold; font-weight: bold;
// text-align: center; text-align: center;
// padding: 0; padding: 0;
// margin: 0; margin: 0;
// position: absolute; position: absolute;
// left: 0; left: 0;
// top: 0; top: 0;
// } }
// ion-label , [item-end]{ ion-label , [item-end]{
// white-space: normal; white-space: normal;
// font-size: 14px; font-size: 14px;
// // :root[dir="ltr"]{ // :root[dir="ltr"]{
// // margin-left: 10px; // margin-left: 10px;
// // } // }
// // :root[dir="rtl"]{ // :root[dir="rtl"]{
// // margin-right: 10px; // margin-right: 10px;
// // } // }
// } }
// } }
// } }
// .input-wrapper { .input-wrapper {
// --flex:none; --flex:none;
// } }
// ion-input ,ion-datetime{ ion-input ,ion-datetime{
// border-bottom: #dedede 1px solid; border-bottom: #dedede 1px solid;
// } }
// .left { .left {
// .timeline:before{ .timeline:before{
// left: 66px; left: 66px;
// } }
// .notification-list ion-item{ .notification-list ion-item{
// padding-left: 3px; padding-left: 3px;
// } }
// .timeline-thumb{ .timeline-thumb{
// left: 37px; left: 37px;
// } }
// } }
// .right { .right {
// .timeline:before{ .timeline:before{
// right: 62px; right: 62px;
// } }
// .notification-list ion-item{ .notification-list ion-item{
// padding-right: 3px; padding-right: 3px;
// } }
// .timeline-thumb{ .timeline-thumb{
// right: 37px; right: 37px;
// } }
// } }

@ -218,8 +218,8 @@ export class WorklistMainPRComponent implements OnInit {
this.worklistMainService this.worklistMainService
.getPONotificationBody(notificationBodyObj) .getPONotificationBody(notificationBodyObj)
.subscribe((result: PONotificatonBodyResponse) => { .subscribe((result: PONotificatonBodyResponse) => {
console.log(result.GetPoNotificationBodyList.POHeader[0].BUYER); // console.log(result.GetPoNotificationBodyList.POHeader[0].BUYER);
this.handleWorkListBodyResult(result, "PO"); // this.handleWorkListBodyResult(result, "PO");
}); });
} }
@ -406,7 +406,7 @@ export class WorklistMainPRComponent implements OnInit {
} }
this.common.confirmAlertDialogAction( this.common.confirmAlertDialog(
() => { () => {
this.applyAction(this.WorkListActionObj); this.applyAction(this.WorkListActionObj);
}, this.ts.trPK('general', 'ok'), }, this.ts.trPK('general', 'ok'),

@ -131,6 +131,6 @@
<ion-button color="customnavy" class="gridBtn" (click)="actionButton()"> {{ts.trPK('general','submit')}}</ion-button> <ion-button color="customnavy" class="gridBtn" (click)="actionButton()"> {{ts.trPK('general','submit')}}</ion-button>
</div> </div>
<div class="centerDiv" > <div class="centerDiv" >
<ion-button color="customnavy" class="gridBtn" (click)="nextNotfification()">{{'worklistMain, skip' | translate}}</ion-button> <ion-button color="customnavy" class="gridBtn" (click)="nextNotfification()"> {{ts.trPK('worklistMain','skip')}}</ion-button>
</div> </div>
</ion-footer> </ion-footer>

@ -6,19 +6,16 @@
<ion-title color="light" >{{ts.trPK('payslip','title')}}</ion-title> <ion-title color="light" >{{ts.trPK('payslip','title')}}</ion-title>
</ion-toolbar> </ion-toolbar>
</ion-header> </ion-header>
<ion-content class="colorBG"> <ion-content padding>
<ion-item style="margin: 10px;border-radius: 5px;"> <ion-item>
<ion-label>choose payslip</ion-label> <ion-label>choose payslip</ion-label>
<ion-select (ionChange)="showInfo($event)" okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}" [(ngModel)]="choosePayslip"> <ion-select (ionChange)="showInfo($event)" okText="{{ts.trPK('general','ok')}}" cancelText="{{ts.trPK('general','cancel')}}" [(ngModel)]="choosePayslip">
<ion-select-option value="{{i}}" selected="{{(i==0).toString()}}" *ngFor="let options of GetPayslipList; let i=index">{{options.PAYSLIP_CHOICE}} </ion-select-option> <ion-select-option value="{{i}}" *ngFor="let options of GetPayslipList; let i=index">{{options.PAYSLIP_CHOICE}} </ion-select-option>
</ion-select> </ion-select>
</ion-item> </ion-item>
<!-- <ion-list *ngIf="showPaySlip !=''" > <!-- <ion-list *ngIf="showPaySlip !=''" >
<ion-item> <ion-item>
<ion-row><ion-label>PERIOD NAME</ion-label><ion-label>{{showPaySlip.PERIOD_NAME}}</ion-label></ion-row> <ion-row><ion-label>PERIOD NAME</ion-label><ion-label>{{showPaySlip.PERIOD_NAME}}</ion-label></ion-row>
@ -27,59 +24,9 @@
</ion-item> </ion-item>
</ion-list> --> </ion-list> -->
<accordin-custom >
<accordin-tab-custom [header]="'payslip,payroll-info' | translate " >
<!-- special results -->
<!-- <ion-card >
<ion-card-header class="boxHdr">
<div class="hrTitle"> {{ts.trPK('payslip','payroll-info')}} </div>
</ion-card-header>
<ion-card-content> -->
<div *ngIf="showPaySlip !=''">
<ion-grid class="">
<ion-row class="">
<ion-col class="">
<label for=""> {{ts.trPK('payslip','peroid-name')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{showPaySlip.PERIOD_NAME}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="">
<label for="">{{ts.trPK('payslip','start-date')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{showPaySlip.PERIOD_START_DATE}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="">
<label for="">{{ts.trPK('payslip','end-date')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{showPaySlip.PERIOD_END_DATE}}</label>
</ion-col>
</ion-row>
</ion-grid>
</div>
<empty-data *ngIf="showPaySlip.length <= 0 "></empty-data>
<!-- </ion-card-content>
</ion-card> -->
</accordin-tab-custom>
</accordin-custom>
<!-- <ion-card *ngIf="showPaySlip !=''"> <ion-card *ngIf="showPaySlip !=''">
<ion-card-header class="boxHdr"> <ion-card-header class="boxHdr">
<div class="hrTitle"> {{ts.trPK('payslip','payroll-info')}} </div> <div class="hrTitle"> {{ts.trPK('payslip','payroll-info')}} </div>
</ion-card-header> </ion-card-header>
@ -121,71 +68,69 @@
</div> </div>
</ion-card-content> </ion-card-content>
</ion-card> --> </ion-card>
<accordin-custom > <ion-card *ngIf="GetSummaryOfPaymentList !='' " >
<accordin-tab-custom [header]="'payslip,summary-payment' | translate" >
<!-- <ion-card *ngIf="GetSummaryOfPaymentList !='' " >
<ion-card-header class="boxHdr"> <ion-card-header class="boxHdr">
<div class="hrTitle"> {{ts.trPK('payslip','summary-payment')}} </div> <div class="hrTitle"> {{ts.trPK('payslip','summary-payment')}} </div>
</ion-card-header> </ion-card-header>
<ion-card-content> --> <ion-card-content>
<div *ngIf="GetSummaryOfPaymentList !=''"> <div>
<ion-grid> <ion-grid>
<ion-row > <ion-row >
<ion-col class=""> <ion-col class="colBold">
<label for=""> {{ts.trPK('payslip','deductions-Amount')}} <label for=""> {{ts.trPK('payslip','deductions-Amount')}}
</label> </label>
</ion-col> </ion-col>
<ion-col class="colPayslip"> <ion-col>
<label for="">{{GetSummaryOfPaymentList.TOTAL_DEDUCTIONS_AMOUNT}}</label> <label for="">{{GetSummaryOfPaymentList.TOTAL_DEDUCTIONS_AMOUNT}}</label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class=""> <ion-col class="colBold">
<label for="">{{ts.trPK('payslip','deductions-percentage')}} <label for="">{{ts.trPK('payslip','deductions-percentage')}}
</label> </label>
</ion-col> </ion-col>
<ion-col class="colPayslip"> <ion-col>
<label for="">{{GetSummaryOfPaymentList.TOTAL_DEDUCTIONS_PERCENTAGE}}</label> <label for="">{{GetSummaryOfPaymentList.TOTAL_DEDUCTIONS_PERCENTAGE}}</label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class=""> <ion-col class="colBold">
<label for="">{{ts.trPK('payslip','earings-Amount')}} <label for="">{{ts.trPK('payslip','earings-Amount')}}
</label> </label>
</ion-col> </ion-col>
<ion-col class="colPayslip"> <ion-col>
<label for="">{{GetSummaryOfPaymentList.TOTAL_EARNINGS_AMOUNT}}</label> <label for="">{{GetSummaryOfPaymentList.TOTAL_EARNINGS_AMOUNT}}</label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class=""> <ion-col class="colBold">
<label for="">{{ts.trPK('payslip','earings-percentage')}} <label for="">{{ts.trPK('payslip','earings-percentage')}}
</label> </label>
</ion-col> </ion-col>
<ion-col class="colPayslip"> <ion-col>
<label for="">{{GetSummaryOfPaymentList.TOTAL_EARNINGS_PERCENTAGE}}</label> <label for="">{{GetSummaryOfPaymentList.TOTAL_EARNINGS_PERCENTAGE}}</label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class=""> <ion-col class="colBold">
<label for="">{{ts.trPK('payslip','pay-Amount')}} <label for="">{{ts.trPK('payslip','pay-Amount')}}
</label> </label>
</ion-col> </ion-col>
<ion-col class="colPayslip"> <ion-col>
<label for="">{{GetSummaryOfPaymentList.TOTAL_PAY_AMOUNT}}</label> <label for="">{{GetSummaryOfPaymentList.TOTAL_PAY_AMOUNT}}</label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col class=""> <ion-col class="colBold">
<label for="">{{ts.trPK('payslip','pay-percentage')}} <label for="">{{ts.trPK('payslip','pay-percentage')}}
</label> </label>
</ion-col> </ion-col>
<ion-col class="colPayslip"> <ion-col>
<label for="">{{GetSummaryOfPaymentList.TOTAL_PAY_PERCENTAGE}}</label> <label for="">{{GetSummaryOfPaymentList.TOTAL_PAY_PERCENTAGE}}</label>
</ion-col> </ion-col>
</ion-row> </ion-row>
@ -193,181 +138,72 @@
</ion-grid> </ion-grid>
</div> </div>
<empty-data *ngIf="GetSummaryOfPaymentList.length <= 0 "></empty-data> </ion-card-content>
</ion-card>
<!-- </ion-card-content> <ion-card *ngIf="GetPaymentInformationList !='' " >
</ion-card> -->
</accordin-tab-custom>
</accordin-custom >
<accordin-custom >
<accordin-tab-custom [header]="'payslip,earnings' | translate" [subHeadergreen]=true [subHeader]="earingTotal" >
<!-- <ion-card *ngIf="GetEarningsList !='' " >
<ion-card-header class="boxHdr">
<div class="hrTitle"> {{ts.trPK('payslip','total')}} </div>
</ion-card-header>
<ion-card-content> -->
<div *ngIf="GetEarningsList !=''">
<ion-grid>
<ion-row *ngFor="let list of GetEarningsList" >
<ion-col class="">
<label for="">{{list.ELEMENT_NAME}}</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{list.AMOUNT}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col col-6 class="earingTotH">
<label style="font-size: 20px !important" for="">{{ts.trPK('payslip','total')}}</label>
</ion-col>
<ion-col col-6 class="earingTotG">
<label style="font-size: 20px !important" for="">{{earingTotal}}</label>
</ion-col>
</ion-row>
</ion-grid>
</div>
<empty-data *ngIf="GetEarningsList.length <= 0 "></empty-data>
<!-- </ion-card-content>
</ion-card> -->
</accordin-tab-custom>
</accordin-custom >
<!-- <accordin-custom *ngIf="GetDeductionsList !=''"> -->
<accordin-custom >
<accordin-tab-custom [header]="'payslip,deductions' | translate" [subHeadergreen]=false [subHeader]="deductionTotal" >
<!-- <ion-card *ngIf="GetDeductionsList !='' " >
<ion-card-header class="boxHdr"> <ion-card-header class="boxHdr">
<div class="hrTitle"> {{ts.trPK('payslip','deductions')}} </div> <div class="hrTitle"> {{ts.trPK('payslip','payment-information')}} </div>
</ion-card-header> </ion-card-header>
<ion-card-content> <ion-card-content>
colBold --> <div>
<div *ngIf="GetDeductionsList !=''">
<ion-grid> <ion-grid>
<ion-row *ngFor="let list of GetDeductionsList" > <ion-row >
<ion-col class=""> <ion-col class="colBold">
<label for="">{{list.ELEMENT_NAME}}</label> <label for=""> {{ts.trPK('payslip','payment-method')}}
</ion-col>
<ion-col class="colPayslip"> </label>
<label for="">{{list.AMOUNT}}</label> </ion-col>
<ion-col>
<label for="">{{GetPaymentInformationList.PAYMENT_METHOD_NAME}}</label>
</ion-col> </ion-col>
</ion-row> </ion-row>
<ion-row> <ion-row>
<ion-col col-6 class="earingTotH"> <ion-col class="colBold">
<label style="font-size: 20px !important" for="">{{ts.trPK('payslip','total')}}</label> <label for="">{{ts.trPK('payslip','bank-name')}}
</ion-col> </label>
<ion-col col-6 class="earingTotR"> </ion-col>
<label style="font-size: 20px !important" for="">{{deductionTotal}}</label> <ion-col>
</ion-col > <label for="">{{GetPaymentInformationList.BANK_NAME}}</label>
</ion-row> </ion-col>
</ion-row>
<ion-row>
<ion-col class="colBold">
<label for="">{{ts.trPK('payslip','branch-name')}}
</label>
</ion-col>
<ion-col>
<label for="">{{GetPaymentInformationList.BRANCH_NAME}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="colBold">
<label for="">{{ts.trPK('payslip','account-no')}}
</label>
</ion-col>
<ion-col>
<label for="">{{GetPaymentInformationList.ACCOUNT_NUMBER}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="colBold">
<label for="">{{ts.trPK('payslip','amount')}}
</label>
</ion-col>
<ion-col>
<label for="">{{GetPaymentInformationList.AMOUNT}}</label>
</ion-col>
</ion-row>
</ion-grid> </ion-grid>
</div> </div>
<empty-data *ngIf="GetDeductionsList.length <= 0 "></empty-data> </ion-card-content>
</ion-card>
<!-- </ion-card-content>
</ion-card> -->
</accordin-tab-custom>
</accordin-custom >
<accordin-custom >
<accordin-tab-custom [header]="'payslip,payment-information' | translate" >
<!-- <ion-card *ngIf="GetPaymentInformationList !='' " >
<ion-card-header class="boxHdr">
<div class="hrTitle"> {{ts.trPK('payslip','payment-information')}} </div>
</ion-card-header>
<ion-card-content> -->
<div *ngIf="GetPaymentInformationList !=''">
<ion-grid>
<ion-row >
<ion-col class="">
<label for=""> {{ts.trPK('payslip','payment-method')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{GetPaymentInformationList.PAYMENT_METHOD_NAME}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="">
<label for="">{{ts.trPK('payslip','bank-name')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{GetPaymentInformationList.BANK_NAME}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="">
<label for="">{{ts.trPK('payslip','branch-name')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{GetPaymentInformationList.BRANCH_NAME}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="">
<label for="">{{ts.trPK('payslip','account-no')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{GetPaymentInformationList.ACCOUNT_NUMBER}}</label>
</ion-col>
</ion-row>
<ion-row>
<ion-col class="">
<label for="">{{ts.trPK('payslip','amount')}}
</label>
</ion-col>
<ion-col class="colPayslip">
<label for="">{{GetPaymentInformationList.AMOUNT}}</label>
</ion-col>
</ion-row>
</ion-grid>
</div>
<empty-data *ngIf="GetPaymentInformationList.length <= 0 "></empty-data>
<!-- </ion-card-content>
</ion-card> -->
</accordin-tab-custom>
</accordin-custom >
<!-- <ion-row *ngIf="showPaySlip !=''" style="text-align: center;"> <ion-row *ngIf="showPaySlip !=''" style="text-align: center;">
<ion-col class="greenTxt" col-6> <ion-col class="greenTxt" col-6>
<button ion-button block class="notColBtn" (click)="openEarings()"> <button ion-button block class="notColBtn" (click)="openEarings()">
<p>{{ts.trPK('payslip','earnings')}}</p> <p>{{ts.trPK('payslip','earnings')}}</p>
@ -380,6 +216,6 @@
<ion-img class="serviceItemImg" src="../assets/imgs/details.png"></ion-img> <ion-img class="serviceItemImg" src="../assets/imgs/details.png"></ion-img>
</button> </button>
</ion-col> </ion-col>
</ion-row> --> </ion-row>
</ion-content> </ion-content>

@ -1,41 +0,0 @@
.rowAccordin{
border: none;
}
.gridAccordin{
margin: 10px;
background: #ffffff;
border-radius: 5px;
}
.colPayslip{
text-align: center;
color: var(--labelColor);
}
.earingTotH{
text-align: right;
font-weight: bold;
font-size:20px !important;
padding-right: 15px;
}
.earingTotG{
text-align: left;
padding-left: 15px;
font-weight: bold;
font-size: 20px !important;
color: var(--green);
}
.earingTotR{
text-align: left;
padding-left: 15px;
font-weight: bold;
font-size: 20px !important;
color: var(--red);
}

@ -20,10 +20,6 @@ export class HomeComponent implements OnInit {
showPaySlip:any=[]; showPaySlip:any=[];
ActionContextID:any; ActionContextID:any;
public static ACTION_CONTEXT_ID = "passActionContectID"; public static ACTION_CONTEXT_ID = "passActionContectID";
GetEarningsList: any='';
GetDeductionsList: any='';
earingTotal: any;
deductionTotal: any;
constructor( constructor(
public payslipService:PayslipService, public payslipService:PayslipService,
@ -103,9 +99,7 @@ export class HomeComponent implements OnInit {
this.ActionContextID=this.GetPayslipList[index].ACTION_CONTEXT_ID; this.ActionContextID=this.GetPayslipList[index].ACTION_CONTEXT_ID;
this.common.sharedService.setSharedData(this.ActionContextID,HomeComponent.ACTION_CONTEXT_ID); this.common.sharedService.setSharedData(this.ActionContextID,HomeComponent.ACTION_CONTEXT_ID);
this.getSummeryOfPayment(this.ActionContextID); this.getSummeryOfPayment(this.ActionContextID);
this.getPaymentInfo(this.ActionContextID); this.getPaymentInfo(this.ActionContextID)
this.getDeduction(this.ActionContextID);
this.getEarings(this.ActionContextID);
} }
@ -124,9 +118,6 @@ export class HomeComponent implements OnInit {
handleSummeryOfPaymentResult(result){ handleSummeryOfPaymentResult(result){
if (result.GetSummaryOfPaymentList != null) { if (result.GetSummaryOfPaymentList != null) {
this.GetSummaryOfPaymentList = result.GetSummaryOfPaymentList[0]; this.GetSummaryOfPaymentList = result.GetSummaryOfPaymentList[0];
this.earingTotal = this.GetSummaryOfPaymentList.TOTAL_EARNINGS_AMOUNT;
this.deductionTotal = this.GetSummaryOfPaymentList.TOTAL_DEDUCTIONS_AMOUNT;
} }
} }
@ -157,52 +148,4 @@ openDeductions(){
this.common.openDeductionsPage(); this.common.openDeductionsPage();
} }
getEarings(ActionContextID){
const request = {
P_ACTION_CONTEXT_ID: ActionContextID,
P_PAGE_NUM: 1,
P_PAGE_LIMIT: 1000
};
this.payslipService.getEarings(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handleGetEaringsResult(result);
}
);
}
handleGetEaringsResult(result){
if (result.GetEarningsList != null) {
this.GetEarningsList = result.GetEarningsList;
}
}
getDeduction(ActionContextID){
const request = {
P_ACTION_CONTEXT_ID: ActionContextID,
P_PAGE_NUM: 1,
P_PAGE_LIMIT: 1000
};
this.payslipService.getDeduction(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
{
this.handleGetDeductionResult(result);
}
);
}
handleGetDeductionResult(result){
if (result.GetDeductionsList != null) {
this.GetDeductionsList = result.GetDeductionsList;
}
}
} }

@ -2,7 +2,6 @@ import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router'; import { Routes, RouterModule } from '@angular/router';
import { HmgCommonModule } from 'src/app/hmg-common/hmg-common.module';
import { IonicModule } from '@ionic/angular'; import { IonicModule } from '@ionic/angular';
import {EarningsComponent}from './earnings/earnings.component' import {EarningsComponent}from './earnings/earnings.component'
@ -36,7 +35,6 @@ const routes: Routes = [
CommonModule, CommonModule,
FormsModule, FormsModule,
IonicModule, IonicModule,
HmgCommonModule,
RouterModule.forChild(routes) RouterModule.forChild(routes)
], ],
providers:[ providers:[

@ -1727,268 +1727,8 @@
"closeMsg":{ "closeMsg":{
"en": "Are you sure to close this purchase requisition ?", "en": "Are you sure to close this purchase requisition ?",
"ar":"العناصر المطلوبة" "ar":"العناصر المطلوبة"
},
"Supplier":{
"en": "Supplier",
"ar":"Supplier"
},
"Site":{
"en": "Site",
"ar":"Site"
},
"Preparer":{
"en": "Preparer",
"ar":"Preparer"
},
"Buyer":{
"en": "Buyer",
"ar":"Buyer"
},
"CreationDate":{
"en": "Creation Date",
"ar":"Creation Date"
},
"ShipToLocation":{
"en": "Ship To Location",
"ar":"Ship To Location "
},
"QuotationNumber":{
"en": "Quotation Number",
"ar":"Quotation Number"
},
"QuotationDate":{
"en": "Quotation Date",
"ar":"Quotation Date"
},
"PaymentTerms":{
"en": "Payment Terms",
"ar":"Payment Terms "
},
"GrossAmount":{
"en": "Gross Amount",
"ar":"Gross Amount"
},
"DiscountAmount":{
"en": "Discount Amount",
"ar":"Discount Amount"
},
"TotalPODiscount":{
"en": "Total PO Discount",
"ar":"Total PO Discount"
},
"VATAmount":{
"en": "VAT Amount",
"ar":"VAT Amount"
},
"CustomDuty":{
"en": "Custom Duty",
"ar":"Custom Duty"
},
"ShipHandle":{
"en": "Ship Handle",
"ar":"Ship Handle"
},
"OtherCharges":{
"en": "Other Charges",
"ar":"Other Charges"
},
"TotalPOAmountWithVAT":{
"en": "Total PO Amount with VAT",
"ar":"Total PO Amount with VAT"
},
"TotalPOAmountInWords":{
"en": "Total PO Amount in Words",
"ar":"Total PO Amount in Words"
},
"Currency":{
"en": "Currency",
"ar":"Currency"
},
"PONumber":{
"en": "PO NUMBER",
"ar":"PO NUMBER"
},
"des-PO":{
"en": "Standard Purchase Order",
"ar":"Standard Purchase Order"
},
"MFG":{
"en": "MFG",
"ar":"MFG"
},
"LINE_TYPE":{
"en": "Line Type",
"ar":"Line Type"
},
"LINE_DIS":{
"en": "Line Discount %",
"ar":"Line Discount %"
},
"LINE_AMOUNT":{
"en": "Line Amount",
"ar":"Line Amount"
},
"NEED_TO":{
"en": "Need By Date",
"ar":"Need By Date"
},
"PROMISED_DATE":{
"en": "Promised Date",
"ar":"Promised Date"
},
"DELIVER_TO":{
"en": "Deliver To Location",
"ar":"Deliver To Location"
},
"PR_NO":{
"en": "Requisition Number",
"ar":"Requisition Number"
},
"REQUEST":{
"en": "Requestor",
"ar":"Requestor"
},
"ITEM_HIS":{
"en": "Item History",
"ar":"Item History"
},
"QUOTATION_ANALYSIS":{
"en": "Quotation Analysis",
"ar":"Quotation Analysis"
},
"Date_Req":{
"en": "Date Required",
"ar":"Date Required"
},
"line_status":{
"en": "Line Status",
"ar":"Line Status"
},
"date_status":{
"en": "Status Date",
"ar":"Status Date"
},
"trans_type":{
"en": "Transaction Type",
"ar":"Transaction Type"
},
"operating_unit":{
"en": "Operating Unit",
"ar":"Operating Unit"
},
"to_locator":{
"en": "To Locator",
"ar":"To Locator"
},
"to_subinventory":{
"en": "To Subinventory",
"ar":"To Subinventory"
},
"from_locator":{
"en": "From Locator",
"ar":"From Locator"
},
"from_subinventory":{
"en": "From Subinventory",
"ar":"From Subinventory"
},
"organization":{
"en": "Organization",
"ar":"Organization"
},
"organization_code":{
"en": "Organization Code",
"ar":"Organization Code"
},
"revision":{
"en": "Revision",
"ar":"Revision "
},
"uom":{
"en": "UOM",
"ar":"UOM"
},
"quantity_ordered":{
"en": "Quantity Ordered",
"ar":"Quantity Ordered"
},
"quantity_received":{
"en": "Quantity Received",
"ar":"Quantity Received"
},
"bonus_quantity":{
"en": "Bonus Quantity",
"ar":"Bonus Quantity"
},
"purchase_price":{
"en": "Purchase Price",
"ar":"Purchase Price"
},
"discount":{
"en": "Discount %",
"ar":"Discount %"
},
"balance_quantity":{
"en": "Balance Quantity",
"ar":"Balance Quantity"
},
"net_price":{
"en": "Net Price",
"ar":"Net Price"
},
"closure_status":{
"en": "Closure Status",
"ar":"Closure Status"
},
"vendor_name":{
"en": "Vendor Name",
"ar":"Vendor Name"
},
"item_code":{
"en": "Item Code",
"ar":"Item Code"
},
"QUOTATION_QTY":{
"en": "Quotation Qty",
"ar":"Quotation Qty"
},
"quotation_uom":{
"en": "Quotation UOM",
"ar":"Quotation UOM"
},
"quotatio_net_price":{
"en": "Quotatio Net Price",
"ar":"Quotatio Net Price"
},
"quotatio_line_tot":{
"en": "Quotation Line Total",
"ar":"Quotation Line Total"
},
"quotatio_bonus_quantity":{
"en": "Quotation Bonus Quantity",
"ar":"Quotation Bonus Quantity"
},
"quotation_delivery_date":{
"en": "Quotation Delivery Date",
"ar":"Quotation Delivery Date"
},
"MFG_part_number":{
"en": "Quotation MFG Part Number",
"ar":"Quotation MFG Part Number"
},
"RFQ_number":{
"en": "RFQ Number",
"ar":"RFQ Number"
},
"RFQ_qty":{
"en": "RFQ Qty",
"ar":"RFQ Qty"
},
"RFQ_UOM":{
"en": "RFQ UOM",
"ar":"RFQ UOM"
} }
}, },
"payslip": { "payslip": {
"title":{ "title":{
@ -2070,11 +1810,6 @@
"payroll-info":{ "payroll-info":{
"en": "Payroll Processing Information", "en": "Payroll Processing Information",
"ar":"معلومات كشف الراتب " "ar":"معلومات كشف الراتب "
},
"total":{
"en": "Total",
"ar":"المجموع "
} }
} }
} }

@ -10,4 +10,3 @@
@import '~@ionic/angular/css/text-transformation.css'; @import '~@ionic/angular/css/text-transformation.css';
@import '~@ionic/angular/css/flex-utils.css'; @import '~@ionic/angular/css/flex-utils.css';
@import "theme/styles.scss"; @import "theme/styles.scss";
@import "theme/worklist.scss";

@ -800,7 +800,6 @@ color: var(--dark);
// .skipbutton,.button-md, button-ios{ // .skipbutton,.button-md, button-ios{
.skipbutton{ .skipbutton{
width: 100px;
--background: var(--orange); --background: var(--orange);
white-space: normal; white-space: normal;
color: var(--light); color: var(--light);
@ -816,32 +815,26 @@ color: var(--dark);
} }
.cancelBtn { .cancelBtn {
background:var(--red) !important; background:var(--red);
white-space: normal !important; white-space: normal;
color:var(--light) !important; color:var(--light);
text-transform: capitalize !important; text-transform: capitalize;
// min-width: 200px; // min-width: 200px;
min-height: 45px !important; min-height: 45px;
border-radius: 5px !important; border-radius: 5px;
width:125px !important; width:125px;
min-width: 5px !important;
width: 10px !important;
margin: 8px !important;
} }
.confirmBtn { .confirmBtn {
background:var(--green) !important; background:var(--green);
white-space: normal !important; white-space: normal;
color:var(--light) !important; color:var(--light);
text-transform: capitalize !important; text-transform: capitalize;
// min-width: 200px; // min-width: 200px;
min-height: 45px !important; min-height: 45px;
border-radius: 5px !important; border-radius: 5px;
width:125px !important; width:125px;
min-width: 5px !important;
width: 10px !important;
margin: 8px !important;
}
}
// .slides-gray-bullets .swiper-wrapper { // .slides-gray-bullets .swiper-wrapper {
// margin-top: 14px !important; // margin-top: 14px !important;

@ -68,7 +68,6 @@
--green:#209B48; --green:#209B48;
--red:#BE1E2D; --red:#BE1E2D;
--blue:#223262; --blue:#223262;
--cyanblue:#1b75bc;
// $font-family-base: $fontFamilyMediumEN !default; // $font-family-base: $fontFamilyMediumEN !default;
// $font-family-ios-base: $fontFamilyMediumEN !default; // $font-family-ios-base: $fontFamilyMediumEN !default;

Loading…
Cancel
Save