import { Component, Injector, OnInit, Output, EventEmitter, ViewChild } from '@angular/core'; import { AppComponentBase } from '@shared/common/app-component-base'; import { appModuleAnimation } from '@shared/animations/routerTransition'; import { ShippingRoleActionServiceProxy, RoleEditDto, GetOrderStatusListForRoleListItemDto, CreateOrUpdateStatusForActionInputDto } from '@shared/service-proxies/service-proxies'; import { Table } from 'primeng/components/table/table'; import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent'; import { Paginator } from 'primeng/components/paginator/paginator'; @Component({ selector: 'role-delivery-status', templateUrl: './role-delivery-status.component.html', animations: [appModuleAnimation()] }) export class RoleDeliveryStatusComponent extends AppComponentBase implements OnInit { role: RoleEditDto; displayItems: Array = []; @ViewChild('dataTable', { static: true }) dataTable: Table; @ViewChild('paginator', { static: true }) paginator: Paginator; constructor( injector: Injector, private _shippingRoleActionServiceProxy: ShippingRoleActionServiceProxy ) { super(injector); } ngOnInit(): void { } refreshTable(event?: LazyLoadEvent) { var roleId = null if (this.role) { roleId = this.role.id; } this.spinnerService.show(); this._shippingRoleActionServiceProxy.getOrderStatusListForRole( roleId, "Delivery", true, this.primengTableHelper.getSorting(this.dataTable), this.primengTableHelper.getMaxResultCount(this.paginator, event), this.primengTableHelper.getSkipCount(this.paginator, event) ).subscribe(result => { this.primengTableHelper.totalRecordsCount = result.totalCount; this.displayItems = result.items; this.spinnerService.hide(); }); } loadRoleOrderStatusTypes(role?: RoleEditDto) { this.role = role; this.refreshTable(null); } onCheckChanged(event?: any, record?: GetOrderStatusListForRoleListItemDto) { this.spinnerService.show(); var orderStatusTypeId = record.orderStatusTypeId; var isChecked = event.target.checked; var requestData = new CreateOrUpdateStatusForActionInputDto(); requestData.roleId = this.role.id; requestData.actionType = "Delivery"; requestData.orderStatusTypeId = orderStatusTypeId; if (isChecked) { this._shippingRoleActionServiceProxy.createOrUpdateStatusForAction(requestData).subscribe(result => { this.spinnerService.hide(); }); } else { this._shippingRoleActionServiceProxy.deleteStatusForAction( this.role.id, "Delivery", orderStatusTypeId).subscribe(result => { this.spinnerService.hide(); }); } } }