import { Component, Injector, OnInit, ViewChild, ViewEncapsulation, Input, ViewChildren, ViewContainerRef } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { AppConsts } from '@shared/AppConsts'; import { appModuleAnimation } from '@shared/animations/routerTransition'; import { AppComponentBase } from '@shared/common/app-component-base'; import { OrderServiceProxy, OrderListDto, OrderTypesServiceProxy, GetOrderListTimezoneInput } from '@shared/service-proxies/service-proxies'; import * as moment from 'moment'; import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent'; import { Paginator } from 'primeng/components/paginator/paginator'; import { Table } from 'primeng/components/table/table'; import { HttpClient } from '@angular/common/http'; import { finalize } from 'rxjs/operators'; @Component({ selector: 'order-tab-group', templateUrl: './order-list-group.component.html', styleUrls: ['./order-list.component.less'], encapsulation: ViewEncapsulation.None, animations: [appModuleAnimation()], providers: [OrderServiceProxy] }) export class OrderGroupListTabComponent extends AppComponentBase implements OnInit{ @ViewChild('dataTable', {static: true}) dataTable: Table; @ViewChild('paginator', {static: true}) paginator: Paginator; @Input() filters: { locationFilter : number; startDate: Date; endDate: Date; orderStatusCode: string, unassignedStopsFilter: boolean willCallFilter: boolean , orderKPIFilter: string, unassignedWillCalls: string, completeWillCalls: string, completeStops: string, } = < any > {}; filterText: string; filterId:number filterRouteId: string; filterOrderTag: any filterOrderAccountNumber: any customerFilter: string; addressFilter: string _ukLocale: boolean; advancedFiltersAreShown:boolean = false; orderIds: any; unassignedWillCalls: boolean = false; completeWillCalls: boolean = false; completeStops: boolean = false; incidents: boolean = false; //orderInput: any; filteredOrderType: any; orderTypeId:any; @Input('edition') edition: string; getOrdersInput : GetOrderListTimezoneInput = new GetOrderListTimezoneInput(); constructor( injector: Injector, private _orderAppService: OrderServiceProxy, private _orderTypeRepository: OrderTypesServiceProxy, private viewContainerRef: ViewContainerRef, private router: Router, ) { super(injector); this.filters.orderKPIFilter = undefined; this.orderIds = []; } ngOnInit(): void { //console.log(this.edition); this._ukLocale = abp.features.isEnabled('App.DateFormatFeature.UKLocale'); $('#OrderTypeSelect2').select2(); this.filteredOrderType = this.getParentComponent().filteredOrderType; } getOrder(event?: LazyLoadEvent): void { if (this.primengTableHelper.shouldResetPaging(event)) { this.paginator.changePage(0); return; } this.orderTypeId = Number((document.getElementById('OrderTypeSelect2')).value) == 0 ? undefined : Number((document.getElementById('OrderTypeSelect2')).value); let timeId = localStorage.getItem('timeZoneId'); moment.tz.setDefault(timeId); this.spinnerService.show(); this.getOrdersInput.id = this.filterId; this.getOrdersInput.filter = this.filterText; this.getOrdersInput.routeCode = undefined; this.getOrdersInput.locationId = this.filters.locationFilter; this.getOrdersInput.routeId = this.filterRouteId; this.getOrdersInput.orderTag = this.filterOrderTag; this.getOrdersInput.accountNumber = this.filterOrderAccountNumber; this.getOrdersInput.etaEnd = moment.tz(localStorage.getItem('loadDate'), timeId); this.getOrdersInput.customer = this.customerFilter; this.getOrdersInput.address = this.addressFilter; this.getOrdersInput.unassigned = this.filters.unassignedStopsFilter; this.getOrdersInput.willCalls = this.filters.willCallFilter; this.getOrdersInput.statusCode = this.filters.orderStatusCode; this.getOrdersInput.timeZoneInfo = localStorage.getItem('timeZone'); this.getOrdersInput.statusType = this.filters.orderKPIFilter; this.getOrdersInput.orderIds = this.orderIds == null ? undefined : this.orderIds.length==0? undefined : this.orderIds; this.getOrdersInput.orderTypeId = this.orderTypeId; this.getOrdersInput.sorting = this.primengTableHelper.getSorting(this.dataTable); this.getOrdersInput.skipCount = this.primengTableHelper.getSkipCount(this.paginator, event); this.getOrdersInput.maxResultCount = this.primengTableHelper.getMaxResultCount(this.paginator, event); this._orderAppService.groupOrdersTab(this.getOrdersInput).pipe().subscribe(result => { if (result.items.length > 0){ for (var key in result){ for(var data in result[key].groupOrders){ result[key].groupOrders[data].pickUpEtaStart = moment(result[key].groupOrders[data].pickUpEtaStart.utcOffset(moment.parseZone(result[key].groupOrders[data].pickUpEtaStart).utcOffset()).format('M/D/YYYY h:mm a')); result[key].groupOrders[data].deliveryEtaEnd = moment(result[key].groupOrders[data].deliveryEtaEnd.utcOffset(moment.parseZone(result[key].groupOrders[data].deliveryEtaEnd).utcOffset()).format('M/D/YYYY h:mm a')); } } this.primengTableHelper.totalRecordsCount = result.totalCount; this.primengTableHelper.records = result.items; this.filteredOrderType = this.getParentComponent().filteredOrderType; } this.spinnerService.hide(); }); } expandDetails(obj: string) { console.log(obj) if ($('.tr-' + obj).css('display') == 'none') { // $('.span-' + obj).html(obj); $('.tr-' + obj).css('display', 'table-row'); $('.td-' + obj).html(''); console.log("a"); } else { // $('.span-' + obj).html(obj); $('.tr-' + obj).css('display', 'none'); $('.td-' + obj).html(''); console.log("b"); } } getParentComponent() { return this.viewContainerRef['_data'].componentView.component.viewContainerRef['_view'].component } navOrder(id){ this.router.navigate(['/app/sprintship/controller-order-details/', id]); } }