import { Component, EventEmitter, Injector, ViewChild, Output, Input } from '@angular/core'; import { AppComponentBase } from '@shared/common/app-component-base'; import { ModalDirective } from 'ngx-bootstrap'; import { ControllerRouteDetailServiceProxy, OrderServiceProxy, ControllerMoveOrderInput, ListResultDtoOfControllerGetAllAvailabelRouteDto, TimingServiceProxy } from '@shared/service-proxies/service-proxies'; import { PrimengTableHelper } from 'shared/helpers/PrimengTableHelper'; import { HFRouteDetailComponent } from './hf-route-detail.component'; import { finalize } from 'rxjs/operators'; import { Paginator } from 'primeng/components/paginator/paginator'; import { Table } from "primeng/table"; import * as jquery from 'jquery'; import * as moment from 'moment-timezone'; // import * as DualListbox from 'dual-listbox'; @Component({ templateUrl: './move-order-modal.component.html', selector: 'MovePendingOrder' }) export class MovePendingOrder extends AppComponentBase { @ViewChild('movePendingOrderModal', { static: false }) modal: ModalDirective; @Output() reloadTable: EventEmitter = new EventEmitter(); @Output() reloadTablePackages: EventEmitter = new EventEmitter(); @Input('selectedRouteId') selectedRouteId: number; @ViewChild("paginator", { static: true }) paginator: Paginator; @ViewChild("dataTable", { static: true }) dataTable: Table; @Input() refreshRouteMove: Function @Input() refreshRouteBatchMove: Function // @Input() updateTable:Function reload: boolean = false; active = false; saving = false; loadDate: Date; location:any; timeId: any; orderId:any; orderIds: Array = new Array; routeId: any; routeDate: any routeList: ListResultDtoOfControllerGetAllAvailabelRouteDto = new ListResultDtoOfControllerGetAllAvailabelRouteDto(); moveInput: ControllerMoveOrderInput = new ControllerMoveOrderInput(); _isLab: any; _ukLocale: boolean; sample: any constructor( injector: Injector, private _controllerRouteDetails: ControllerRouteDetailServiceProxy, private _controllerOrderService: OrderServiceProxy, private _timingService: TimingServiceProxy ) { super(injector); this._isLab = abp.features.isEnabled('App.RouteDetails'); } ngOnInit() { this._ukLocale = abp.features.isEnabled('App.DateFormatFeature.UKLocale'); this.timeId = localStorage.getItem('timeZoneId'); // moment.tz.setDefault(this.timeId); } show(orderId?: number, routeId?: number, locationId? :any) { let e = this; let dateString = "" this.location = (locationId == null ? undefined : parseInt(localStorage.getItem('operatingLocationId'))); console.log(moment.locale()) // if(this._ukLocale) // { // this.loadDate = new Date(Date.now()).toLocaleDateString(); // } // else{ // this.loadDate = new Date(Date.now()).toLocaleDateString(); // } // this.loadDate = new Date(new Date(Date.now()).toLocaleDateString(moment.locale())); this.loadDate = moment(Date.now()).toDate() this.orderId = orderId == null ? undefined : orderId; this._controllerRouteDetails.getAvailableRoute(moment.tz(this.loadDate.toString(), this.timeId), localStorage.getItem('timeZone'), this.location, routeId, this.orderId) .subscribe(result => { this.routeList = result; }); this.active = true; this.modal.show(); if (orderId != null) { this.orderIds = []; this.orderIds.push(orderId); } } reloadList(){ // if(this._ukLocale) // { // this.loadDate = new Date(this.loadDate).toLocaleDateString('en-GB'); // } // else{ // this.loadDate = new Date(this.loadDate).toLocaleDateString('en-US'); // } // this.loadDate = new Date(new Date(Date.now()).toLocaleDateString(moment.locale())); this.loadDate = moment(this.loadDate).toDate() this._controllerRouteDetails.getAvailableRoute(moment.tz(this.loadDate.toString(), this.timeId), localStorage.getItem('timeZone'), this.location, undefined,this.orderId) .subscribe(result => { this.routeList = result; }); } onShown(): void { let e = this; $('.kt-select2').select2(); } acceptOrderId($event) { this.orderIds = $event; } applyMove() { if (this.orderIds != null) { this.moveOrders(Number((document.getElementById('selectedRouteId')).value), this.orderIds); this.notify.info(this.l('SavedSuccessfully')); this.close(); } else { this.notify.info(this.l('Select orders to move')); } } moveOrders(routeId: number, ids: any) { this.spinnerService.show(); this.moveInput.routeId = routeId; this.moveInput.id = ids; this._controllerOrderService.moveOrder(this.moveInput) .pipe(finalize(() => this.saving = false)) .subscribe(() => { this.moveInput.id.forEach(element => { this.reloadTablePackages.emit(null); }); this.reloadTable.emit(null); this.spinnerService.hide(); }); } close(): void { this.active = false; this.modal.hide(); } }