import { ShopFetchBase } from './shop-fetch-base'; import { UxModalService } from '@aurelia-ux/modal'; import { Disposable, Container } from 'aurelia-framework'; import { Global } from '../global'; import { AdminDeliveryModel, AdminItemModel, AdminProductModel, AdminOptionModel, AdminSupplierModel, AdminCustomerModel } from 'aurelia-shop'; import { I18N } from 'aurelia-i18n'; import { LocalStorageWatcher, LswWatcher } from '../helpers/local-storage-watcher'; import { EnsureModel, UserModel } from 'aurelia-deco'; interface PipelineRow { productId: string; product: AdminProductModel; optionsIds: string[]; options: AdminOptionModel[]; combinedOrderedIds: string; deliveriesByDay: { [key: string]: { date: Date; deliveries: AdminDeliveryModel[]; items: AdminItemModel[]; nbOutOfStock: number; nbOrdered: number; nbStock: number; nbGettingReady: number; nbSent: number; nbDelivered: number; }; }; deliveriesByDayAndTime: { [key: string]: { date: Date; time: string; deliveries: AdminDeliveryModel[]; items: AdminItemModel[]; nbOutOfStock: number; nbOrdered: number; nbStock: number; nbGettingReady: number; nbSent: number; nbDelivered: number; }; }; } interface Day { date: Date; dateString: string; times: DayAndTime[]; deliveries: AdminDeliveryModel[]; opened?: boolean; } interface DayAndTime { date: Date; dateString: string; time: string; deliveries: AdminDeliveryModel[]; opened?: boolean; } export declare class Pipeline extends ShopFetchBase { private i18n; private lsw; private container; extraKeys: string[]; status: Array; deliveryDateFrom: Date | undefined; deliveryDateTo: Date | undefined; deliverers: string[]; regionIds: string[]; subs: Disposable[]; private smallExtraKeys; sort: string; productSort: string; ensureUsers: EnsureModel; private availableMembers; lswWatcher: LswWatcher; products: AdminProductModel[]; data: PipelineRow[]; days: Day[]; daysAndTimes: DayAndTime[]; supplierIds: string[]; preparing: boolean; constructor(global: Global, modalService: UxModalService, i18n: I18N, lsw: LocalStorageWatcher, container: Container); setEnsureUsers(): void; shopIdChanged(): Promise; fetchMembers(): Promise; deactivate(): void; get extraKeysOptions(): { label: string; value: string; }[]; extraKeysChanged(): void; get sortOptions(): { label: string; value: string; }[]; statusChanged(): void; filtersChanged(): void; clearFilters(): void; setSuffix(): Promise; get hasActiveFilters(): boolean; hasValidDeliveryDateFilters: boolean; setHasValidDeliveryDateFilters(): boolean; showFilters: boolean; init(resetAndWait?: boolean): Promise; supplierFilterChanged(): void; prepareData(): Promise; isDayReady(dateString: string): boolean; isDayAndTimeReady(dateString: string, time: string): boolean; statInDeliveriesByDayOrDayAndTime(deliveriesByDayOrDayAndTime: { items: AdminItemModel[]; nbOutOfStock: number; nbOrdered: number; nbStock: number; nbGettingReady: number; nbSent: number; nbDelivered: number; }): { nbReady: number; isReady: boolean; }; statInDelivery(combinedOrderedIds: string, delivery: AdminDeliveryModel): { nbReady: number; nbTotal: number; isReady: boolean; weight: string; }; supplierFullName(supplier: Partial): string; customerFullName(customer: Partial): string; sizeWeight(product: Partial): string; openEditDeliveryDialog(delivery: AdminDeliveryModel): Promise; productItemOptions(options: AdminOptionModel[]): string; } export {};