import { Component, Injector, OnInit, ViewChild, ViewEncapsulation, EventEmitter, Output ,Input} from '@angular/core'; import { ActivatedRoute,Router } from '@angular/router'; import { appModuleAnimation } from '@shared/animations/routerTransition'; import { AppComponentBase } from '@shared/common/app-component-base'; import { ControllerRouteDetailServiceProxy,ShippingPackageServiceProxy,ControllerScheduleDetailDto,GetCompaniesListItemDto,OrderPackageListDto,OrderStatusAttachmentServiceProxy, UpdateOrderSorting, UpdateOrderSortingInput, UpdateRouteTemplateAddressSorting, RouteTemplateAddressServiceProxy, RemoveOrderInput, RemoveOrderList, OrderServiceProxy, LockedOrderInput} from '@shared/service-proxies/service-proxies'; import { AppSessionService } from '@shared/common/session/app-session.service'; import { Table } from "primeng/table"; import { LazyLoadEvent } from "primeng/primeng"; import { Paginator } from 'primeng/components/paginator/paginator'; import { finalize, repeat } from 'rxjs/operators'; import * as moment from 'moment-timezone'; import * as _ from 'lodash'; declare var $: any; declare var jquery:any; @Component({ selector:'print-route-sheet-laboratory', templateUrl: 'print-route-sheet-laboratory.component.html', styleUrls: ['./print-route-sheet-laboratory.component.less'], encapsulation: ViewEncapsulation.None, animations: [appModuleAnimation()] }) export class PrintRouteSheetLaboratoryComponent extends AppComponentBase implements OnInit { routeId:number = null; packages: Array<{id: number, name: string}> = new Array(); data:any; packageCount: Array<{id: number, quantity: number}> = new Array(); filterText = ''; accountNoFilter: any; clinicFilter: any; advancedFiltersAreShown = false; now:Date; arrayNotes: Array = new Array(); dNote:string; resultCount: number; saving = false; newRemoveOrderInput: Array = []; sprintIds: Array<{}> = new Array(); sprintIdsList: any[]; checkAll: boolean; records: any; // data: Array []; @ViewChild("dataTable", {static: true}) dataTable:Table @ViewChild("paginator", {static: true}) paginator: Paginator newDto : ControllerScheduleDetailDto = new ControllerScheduleDetailDto(); newPackage :OrderPackageListDto = new OrderPackageListDto(); lockedEtaInput: LockedOrderInput = new LockedOrderInput(); packagesList:Array = new Array(); totalCount: any; flag=false; tbodyHolder: any; orderList: Array = []; routeTemplateAddressList: Array = []; public getRouteDetailFunction: Function; constructor( injector: Injector, private id:ActivatedRoute, private _controllerRouteDetails: ControllerRouteDetailServiceProxy, private _controllerRoutePackages: ShippingPackageServiceProxy, ) { super(injector); this.spinnerService.show(); } ngOnInit(){ this.id.paramMap.subscribe(params => { this.routeId = Number(params.get('id')); }); this.getLabPackages(); this.getRouteDetails(); this.now = new Date(); function printData() { var divToPrint=document.getElementById("container-print"); var newWin= window.open(""); newWin.document.write(divToPrint.outerHTML); newWin.print(); // newWin.close(); } $('#btn').on('click',function(){ printData(); printData(); }) } ngAfterViewInit(){ this.getRouteDetailFunction = this.getRouteDetails.bind(this) } getLabPackages(){ this.packages = []; this._controllerRoutePackages.getShippingPackage(undefined,undefined,undefined,undefined,undefined,undefined).subscribe(result=>{ result.items.forEach(element => { if(element.name !== 'Default'){ this.packages.push(element); } }); }); } getTotal(array){ var data = array.map(i=>i.quantity); data.reduce((a, b) => a + b, 0); return data; } getRouteDetails(event?: LazyLoadEvent) { let maxcount = 700 this.spinnerService.show(); this._controllerRouteDetails.getRouteSchedDetails( undefined, localStorage.getItem('timeZone'), moment(localStorage.getItem('loadDate')), this.routeId, this.filterText, this.accountNoFilter, this.clinicFilter, undefined, false // undefined, // maxcount, // undefined ).pipe(finalize(() => this.spinnerService.hide() )).subscribe(result => { let sampleCount = 0 let status = []; let eta = []; let packageCount = []; let attachment = []; for (let index = 0; index < result.items.length; index++) { for (let key = 0; key < result.items[index].orderPackages.length; key++) { if(result.items[index].orderPackages[key].package.name != "Default"){ result.items[index].packageCount += result.items[index].orderPackages[key].quantity; } } // if(result.items[index].deliveryNote !== null){ // this.dNote = result.items[index].deliveryNote; // } eta.push(result.items[index].estimatedTimeOfArrival); status.push(result.items[index].orderStatus); packageCount.push(result.items[index].packageCount); // attachment.push(result.items[index].orderStatusAttachment); } result.items.push(this.newDto); this.primengTableHelper.totalRecordsCount = result.items.length; this.primengTableHelper.records = result.items; this.resultCount = this.primengTableHelper.totalRecordsCount }); } onShown(){ } ConvertToInt(val){ return parseInt(val); } }