diff --git a/Mohem/src/app/absence/absence-confirm/absence-confirm.component.html b/Mohem/src/app/absence/absence-confirm/absence-confirm.component.html new file mode 100644 index 00000000..3bc92e60 --- /dev/null +++ b/Mohem/src/app/absence/absence-confirm/absence-confirm.component.html @@ -0,0 +1,136 @@ + + + + {{ts.trPK('submitAbsenceConfirm','submitAbsenceConfirm')}} + + + + + + + + + + + + {{ts.trPK('confirmAddEit','approverList')}} + + + + 0"> + + + {{ts.trPK('confirmAddEit','no')}} + + + {{ts.trPK('confirmAddEit','approver')}} + + + {{ts.trPK('confirmAddEit','approverCategory')}} + + + {{ts.trPK('confirmAddEit','approverType')}} + + + {{ts.trPK('confirmAddEit','status')}} + + + + + + {{item.APPROVER_ORDER_NUMBER}} + + + {{item.APPROVER}} + + + {{item.APPROVER_CATEGORY}} + + + {{item.APPROVER_TYPE}} + + + {{item.APPROVAL_STATUS}} + + + + + + + + + + {{ts.trPK('confirmAddEit','comment')}} + + + + + + + + + {{ts.trPK('confirmAddEit','attachList')}} + + + + + + 0"> + + + + + + + {{attachList.P_FILE_NAME }} + + + + + + + + + + + + + 0"> + + + + + + + {{attachRes.FILE_NAME }} + + + + + + + + + + + + + + + + + + + + + + {{ts.trPK('confirmAddEit','start')}} + + + \ No newline at end of file diff --git a/Mohem/src/app/absence/absence-confirm/absence-confirm.component.scss b/Mohem/src/app/absence/absence-confirm/absence-confirm.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/Mohem/src/app/absence/absence-confirm/absence-confirm.component.spec.ts b/Mohem/src/app/absence/absence-confirm/absence-confirm.component.spec.ts new file mode 100644 index 00000000..53af4ff6 --- /dev/null +++ b/Mohem/src/app/absence/absence-confirm/absence-confirm.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AbsenceConfirmComponent } from './absence-confirm.component'; + +describe('AbsenceConfirmComponent', () => { + let component: AbsenceConfirmComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AbsenceConfirmComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(AbsenceConfirmComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/absence/absence-confirm/absence-confirm.component.ts b/Mohem/src/app/absence/absence-confirm/absence-confirm.component.ts new file mode 100644 index 00000000..91d816fa --- /dev/null +++ b/Mohem/src/app/absence/absence-confirm/absence-confirm.component.ts @@ -0,0 +1,19 @@ +import { Component, OnInit } from '@angular/core'; +import { CommonService } from "src/app/hmg-common/services/common/common.service"; +import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; +@Component({ + selector: 'app-absence-confirm', + templateUrl: './absence-confirm.component.html', + styleUrls: ['./absence-confirm.component.scss'], +}) +export class AbsenceConfirmComponent implements OnInit { + + constructor( + public common: CommonService, + public ts: TranslatorService, + + ) { } + + ngOnInit() {} + +} diff --git a/Mohem/src/app/absence/absence.module.ts b/Mohem/src/app/absence/absence.module.ts index b4e10326..50de2d4b 100644 --- a/Mohem/src/app/absence/absence.module.ts +++ b/Mohem/src/app/absence/absence.module.ts @@ -9,6 +9,10 @@ import { AbsencePage } from './absence.page'; import { DatePicker } from '@ionic-native/date-picker/ngx'; import { HomeComponent } from './home/home.component'; import { SubmitAbsenceComponent } from './submit-absence/submit-absence.component'; +import { replacmentListService } from './service/replacement-list.service'; +import { HmgCommonModule } from './../hmg-common/hmg-common.module'; +import { ReplacementListComponent } from '../vacation-rule/replacement-list/replacement-list.component'; +import { AbsenceConfirmComponent } from './absence-confirm/absence-confirm.component'; const routes: Routes = [ { path: '', @@ -21,6 +25,14 @@ const routes: Routes = [ { path: 'submit-absence', component: SubmitAbsenceComponent + }, + { + path: 'replacement-list', + component: ReplacementListComponent + }, + { + path:'confirm-absence', + component:AbsenceConfirmComponent } ] } @@ -31,9 +43,10 @@ const routes: Routes = [ CommonModule, FormsModule, IonicModule, + HmgCommonModule, RouterModule.forChild(routes) ], - providers:[AbsenceListService, SubmitAbsenceService, DatePicker], - declarations: [AbsencePage, HomeComponent, SubmitAbsenceComponent] + providers:[AbsenceListService, SubmitAbsenceService, replacmentListService, DatePicker], + declarations: [AbsencePage, HomeComponent, SubmitAbsenceComponent,AbsenceConfirmComponent] }) export class AbsencePageModule {} diff --git a/Mohem/src/app/absence/models/replacement-Service.request.ts b/Mohem/src/app/absence/models/replacement-Service.request.ts new file mode 100644 index 00000000..320af90f --- /dev/null +++ b/Mohem/src/app/absence/models/replacement-Service.request.ts @@ -0,0 +1,10 @@ +import {Request} from './request' + +export class ReplacementServiceRequest extends Request{ + P_SEARCH_USER_NAME:string; + P_SEARCH_EMPLOYEE_DISPLAY_NAME:string; + P_SEARCH_EMAIL_ADDRESS:string; + P_PAGE_NUM:number; + P_PAGE_LIMIT:number; + P_SELECTED_EMPLOYEE_NUMBER:string +} \ No newline at end of file diff --git a/Mohem/src/app/absence/models/replacment-info.ts b/Mohem/src/app/absence/models/replacment-info.ts new file mode 100644 index 00000000..6ba3b7d0 --- /dev/null +++ b/Mohem/src/app/absence/models/replacment-info.ts @@ -0,0 +1,10 @@ + +export class replacmentinfo extends Request{ + public EMAIL_ADDRESS:string; + public EMPLOYEE_DISPLAY_NAME: string; + public FROM_ROW_NUM: number; + public NO_OF_ROWS: number; + public ROW_NUM: number; + public TO_ROW_NUM: number; + public USER_NAME: string; +} diff --git a/Mohem/src/app/absence/models/replacment-response.ts b/Mohem/src/app/absence/models/replacment-response.ts new file mode 100644 index 00000000..976e0ed9 --- /dev/null +++ b/Mohem/src/app/absence/models/replacment-response.ts @@ -0,0 +1,7 @@ +import { Response } from './response'; +import {replacmentinfo} from './replacment-info'; + +export class ReplacmentResponse extends Response { + public static SHARED_DATA = 'replacment-shared'; + public replacmentInfo: replacmentinfo; +} diff --git a/Mohem/src/app/absence/service/replacement-list.service.spec.ts b/Mohem/src/app/absence/service/replacement-list.service.spec.ts new file mode 100644 index 00000000..f2f15955 --- /dev/null +++ b/Mohem/src/app/absence/service/replacement-list.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { ReplacementListService } from './replacement-list.service'; + +describe('ReplacementListService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: ReplacementListService = TestBed.get(ReplacementListService); + expect(service).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/absence/service/replacement-list.service.ts b/Mohem/src/app/absence/service/replacement-list.service.ts new file mode 100644 index 00000000..d03c419e --- /dev/null +++ b/Mohem/src/app/absence/service/replacement-list.service.ts @@ -0,0 +1,23 @@ +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 { Observable } from 'rxjs';; +import {Request} from '../models/request' +import { ReplacementServiceRequest } from '../models/replacement-Service.request'; + +@Injectable() +export class replacmentListService { + public static getReplacmentEmployeeList = 'Services/ERP.svc/REST/GET_REPLACEMENT_LIST'; + constructor( + public api: ConnectorService, + public authService: AuthenticationService, + + ) { + + } + public getReplacmentList(req: any, onError?: any, errorLabel?: string): Observable { + const request = req; + this.authService.authenticateRequest(request); + return this.api.post(replacmentListService.getReplacmentEmployeeList, request, onError, errorLabel); + } +} \ No newline at end of file diff --git a/Mohem/src/app/absence/submit-absence/submit-absence.component.ts b/Mohem/src/app/absence/submit-absence/submit-absence.component.ts index a5dbad41..b5ad19ff 100644 --- a/Mohem/src/app/absence/submit-absence/submit-absence.component.ts +++ b/Mohem/src/app/absence/submit-absence/submit-absence.component.ts @@ -22,6 +22,9 @@ import { DateTimeInput } from "../../uI-elements/date-time.input"; import { DatePicker } from "@ionic-native/date-picker/ngx"; import { Request } from "../models/request"; import * as moment from "moment"; +import {ReplacementListComponent} from "../../vacation-rule/replacement-list/replacement-list.component"; +import {ReplacmentResponse} from "../models/replacment-response"; +import { AbsenceResponse } from '../models/absence.response'; @Component({ selector: "app-submit-absence", templateUrl: "./submit-absence.component.html", @@ -39,6 +42,7 @@ export class SubmitAbsenceComponent implements OnInit { private hiddenInput: HiddenInput; private eitVALSettoCall: any = []; private action: string = ""; + private modalFlag: any = false; menuType: any; employeeSel: any; absenceType: any; @@ -77,7 +81,8 @@ export class SubmitAbsenceComponent implements OnInit { public common: CommonService, public datePicker: DatePicker, public ts: TranslatorService, - private elementRef: ElementRef + private elementRef: ElementRef, + ) { ////*new add*///// /**********resubmit************ */ @@ -209,23 +214,37 @@ export class SubmitAbsenceComponent implements OnInit { this.totalDays = result.CalculateAbsenceDuration.P_ABSENCE_DAYS; } } + async openSearch(){ + const modal = await this.modalCtrl.create({ + component: ReplacementListComponent, + keyboardClose: true, + animated: false + }); + let dismissed = modal.onDidDismiss(); + dismissed.then(() => { + this.modalFlag = false; + }); + return await modal.present(); + } - SearchReplacment() { - let pageClosed = retData => { - this.replacmentEmployeeInfo = retData; - // this.replacmentEmployeeInfo=this.sharedData.getSharedData(ReplacmentResponse.SHARED_DATA,true); - // console.log(this.replacmentEmployeeInfo) - if (this.replacmentEmployeeInfo) { - this.employeeName = this.replacmentEmployeeInfo.EMPLOYEE_DISPLAY_NAME; - this.employeeID = this.replacmentEmployeeInfo.USER_NAME; - this.employeeSel = this.employeeName + "," + this.employeeID; - } - //Do something - }; - // this.navCtrl.push(ServiceNewPage, {pageClosed: pageClosed}); - // this.navCtrl.push("ReplacmentListModelPage", { - // pageClosed: pageClosed - // }); + async SearchReplacment() { + const modal = await this.modalCtrl.create({ + component: ReplacementListComponent + }); + + modal.onDidDismiss() + .then((data) => { + const user = data.data.empData; + console.log(data) + console.log(user); + if (data) { + this.employeeName = user.EMPLOYEE_DISPLAY_NAME; + this.employeeID = user.USER_NAME; + this.employeeSel = this.employeeName + "," + this.employeeID; + } + }); + + return await modal.present(); } handleReplacment(result) { if (this.common.validResponse(result)) { @@ -454,6 +473,7 @@ export class SubmitAbsenceComponent implements OnInit { this.fillAbsStructure(); } } + bindHtmlElemEvents(id, obj) { return false; const elem = document.getElementById(id); @@ -1000,9 +1020,17 @@ export class SubmitAbsenceComponent implements OnInit { let elem = document.getElementById( this.absenceDffresponse[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement; - let elemVal = (document.getElementById( + let elemVal=""; + if (elem.classList.contains('onic-date')) { + elemVal = (document.getElementById( + this.absenceDffresponse[i].APPLICATION_COLUMN_NAME + ) as HTMLInputElement).value; + elemVal = moment(elemVal).format("YYYY/MM/DD hh:mm:ss"); + }else{ + elemVal = (document.getElementById( this.absenceDffresponse[i].APPLICATION_COLUMN_NAME ) as HTMLInputElement).value; + } textValue = elemVal; if ( @@ -1395,10 +1423,12 @@ export class SubmitAbsenceComponent implements OnInit { private handleSubmitAbsence(result) { if (this.common.validResponse(result)) { if (this.getPassdirfromNotifiPage) { - // this.common.sharedService.setSharedData(result.ResubmitAbsenceTransactionList.P_TRANSACTION_ID, AbsenceResponse.SHARED_DATA); - // this.navCtrl.push("SubmitAbsenceConfirmPage", { isResubmit: true }); + this.common.sharedService.setSharedData(result.ResubmitAbsenceTransactionList.P_TRANSACTION_ID, AbsenceResponse.SHARED_DATA); + this.common.openConfirmAbsece(); + // this.navCtrl.push("SubmitAbsenceConfirmPage", { isResubmit: true }); } else { - // this.sharedData.setSharedData(result.SumbitAbsenceTransactionList.P_TRANSACTION_ID, AbsenceResponse.SHARED_DATA); + this.common.sharedService.setSharedData(result.SumbitAbsenceTransactionList.P_TRANSACTION_ID, AbsenceResponse.SHARED_DATA); + this.common.openConfirmAbsece(); // this.navCtrl.push("SubmitAbsenceConfirmPage", { isResubmit: false }); } } diff --git a/Mohem/src/app/app.module.ts b/Mohem/src/app/app.module.ts index f71d2085..26ba2d6e 100644 --- a/Mohem/src/app/app.module.ts +++ b/Mohem/src/app/app.module.ts @@ -11,6 +11,7 @@ import { AppRoutingModule } from './app-routing.module'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ZBar } from '@ionic-native/zbar/ngx'; import { Geolocation } from '@ionic-native/geolocation/ngx'; + @NgModule({ declarations: [AppComponent], entryComponents: [], diff --git a/Mohem/src/app/authentication/login/login.component.scss b/Mohem/src/app/authentication/login/login.component.scss index 87c1751c..aabac2f5 100644 --- a/Mohem/src/app/authentication/login/login.component.scss +++ b/Mohem/src/app/authentication/login/login.component.scss @@ -109,4 +109,4 @@ img.centerDiv { } } -.centerDiv .button{width:200px;} + diff --git a/Mohem/src/app/hmg-common/hmg-common.module.ts b/Mohem/src/app/hmg-common/hmg-common.module.ts index 154867ad..ae309848 100644 --- a/Mohem/src/app/hmg-common/hmg-common.module.ts +++ b/Mohem/src/app/hmg-common/hmg-common.module.ts @@ -90,6 +90,8 @@ import { RateService } from './services/rate/rate.service'; import { PaymentComponent } from './ui/payment/payment.component'; import { PaymentService } from './ui/payment/service/payment.service'; import { MenuService } from './services/menu/menuservice.service'; +import { ReplacementListComponent } from '../vacation-rule/replacement-list/replacement-list.component'; + @NgModule({ imports: [ CommonModule, @@ -149,7 +151,8 @@ import { MenuService } from './services/menu/menuservice.service'; EmptyDataComponent, DetailButtonComponent, HeaderButtonComponent, - PaymentComponent + PaymentComponent, + ReplacementListComponent ], exports: [ @@ -197,8 +200,8 @@ import { MenuService } from './services/menu/menuservice.service'; EmptyDataComponent, DetailButtonComponent, HeaderButtonComponent, - PaymentComponent - + PaymentComponent, + ReplacementListComponent ], providers: [ ConnectorService, diff --git a/Mohem/src/app/hmg-common/services/common/common.service.ts b/Mohem/src/app/hmg-common/services/common/common.service.ts index 0ef1525f..59b3e888 100644 --- a/Mohem/src/app/hmg-common/services/common/common.service.ts +++ b/Mohem/src/app/hmg-common/services/common/common.service.ts @@ -958,7 +958,9 @@ export class CommonService { public openSubmitAbsencePage() { this.nav.navigateForward(["/absence/submit-absence"]); } - + public openConfirmAbsece(){ + this.nav.navigateForward(["/absence/confirm-absence"]); + } public reload(url: string, from: string) { console.log("force reload called from:" + from); // window.location.reload(); diff --git a/Mohem/src/app/uI-elements/date.input.ts b/Mohem/src/app/uI-elements/date.input.ts index 6bab87c5..1d8cbcb0 100644 --- a/Mohem/src/app/uI-elements/date.input.ts +++ b/Mohem/src/app/uI-elements/date.input.ts @@ -19,6 +19,9 @@ export class DateInput extends UiElement { let date = new Date(); this.value = date.toISOString().slice(0, 10); } + dateChange($event){ + console.log($event) + } public getTemplate() { let requiredClass: string = ""; if (this.disabled == "N") { this.disabled = "disabled" } else { this.disabled = "" } @@ -41,7 +44,7 @@ export class DateInput extends UiElement { "" + " " + this.label + "" + // " " + this.value + "" + - "" + + "" + // " "+ // " "+ // " "+ diff --git a/Mohem/src/app/uI-elements/select.input.ts b/Mohem/src/app/uI-elements/select.input.ts index 3caa7772..9d1e8f70 100644 --- a/Mohem/src/app/uI-elements/select.input.ts +++ b/Mohem/src/app/uI-elements/select.input.ts @@ -26,7 +26,7 @@ export class SelectInput extends UiElement { "" + "" + this.label + "" + "" + - "" + this.value + "" + + // "" + this.value + "" + "" + " "; diff --git a/Mohem/src/app/vacation-rule/vacation-rule.module.ts b/Mohem/src/app/vacation-rule/vacation-rule.module.ts index 57c90173..7f2456cc 100644 --- a/Mohem/src/app/vacation-rule/vacation-rule.module.ts +++ b/Mohem/src/app/vacation-rule/vacation-rule.module.ts @@ -67,8 +67,7 @@ const routes: Routes = [ HomeComponent, VacationTypeComponent, NotificationTypeComponent, - CreateVacationRuleComponent, - ReplacementListComponent + CreateVacationRuleComponent ] }) export class VacationRulePageModule { } diff --git a/Mohem/src/assets/localization/i18n.json b/Mohem/src/assets/localization/i18n.json index f88752dc..33be1624 100644 --- a/Mohem/src/assets/localization/i18n.json +++ b/Mohem/src/assets/localization/i18n.json @@ -1178,5 +1178,23 @@ "en":"Please select absence type", "ar":"اختر نوع الإجازة" } + }, + "submitAbsenceConfirm": { + "submitAbsenceConfirm":{ + "en": "Submit Absence Confirm", + "ar": "إرسال تأكيد الإجازة" + }, + "start":{ + "en":"Submit", + "ar":"تنفيذ" + }, + "cancel":{ + "en":"Cancel", + "ar":"إلغاء" + }, + "addAttch":{ + "en":"Add Attachment", + "ar":"أضف مرفق" + } } } \ No newline at end of file diff --git a/Mohem/src/theme/styles.scss b/Mohem/src/theme/styles.scss index 11e9217d..97d1f3c9 100644 --- a/Mohem/src/theme/styles.scss +++ b/Mohem/src/theme/styles.scss @@ -746,3 +746,4 @@ color: var(--dark); width:100%; margin-left: 0.4cm; } +.centerDiv .button{width:200px;} \ No newline at end of file