{ "version": 3, "sources": ["libs/pos-shared/src/lib/services/pos-orders.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Entity, EntityInterface } from '@proman/services/entity.service';\nimport { LocalStorageService } from '@proman/services/local-storage.service';\nimport { QueryExpressionService } from '@proman/services/query-expression.service';\nimport {\n Article,\n Order,\n OrderConsumer,\n OrderProduct,\n Product, ProductParameter,\n SystemOptions,\n} from '@proman/interfaces/entity-interfaces';\nimport { BehaviorSubject } from '@proman/rxjs-common';\nimport { Store } from '@ngrx/store';\nimport { getCurrUser } from '@proman/store/curr-user';\nimport { CurrUser } from '@proman/interfaces/object-interfaces';\nimport { OrderEntityInterface } from '@proman/resources/order';\nimport { ProductEntityInterface } from '@proman/resources/product';\nimport { getSystemOptions } from '@proman/store/system-options';\nimport { OPTIONS_PRINTER_ID } from '@pos-shared/options';\nimport { guaranteeArray } from '@proman/utils';\nimport { Subject, debounceTime, filter, Observable, take } from '@proman/rxjs-common';\n\nexport const PRODUCT_QUANTITY_DEBOUNCE_TIMER_BASE = 1250;\nexport const PRODUCT_QUANTITY_DEBOUNCE_TIMER = PRODUCT_QUANTITY_DEBOUNCE_TIMER_BASE + 250;\n\n@Injectable({ providedIn: 'root' })\nexport class PosOrdersService {\n orderEntity: OrderEntityInterface;\n orderProductEntity: any;\n productEntity: ProductEntityInterface;\n consumerEntity: EntityInterface;\n currUser: CurrUser;\n dividerCancel$: Subject = new Subject();\n activeTableId$: BehaviorSubject = new BehaviorSubject(0);\n activeOrders: BehaviorSubject<{ [table: number]: Order[] }> = new BehaviorSubject({});\n activeOrderItemNumber$: BehaviorSubject = new BehaviorSubject(0);\n ordersUpdate: BehaviorSubject = new BehaviorSubject([] as number[]);\n systemOptions: SystemOptions;\n ordersResponse$: Subject = new Subject();\n isConfirmInProgress$: BehaviorSubject = new BehaviorSubject(0);\n isQuantityUpdateInProgress$: BehaviorSubject = new BehaviorSubject('');\n paymentOrders$: BehaviorSubject = new BehaviorSubject(null);\n updateOrdersTrigger$: Subject = new Subject();\n\n\n constructor(\n private Entity: Entity,\n private LocalStorage: LocalStorageService,\n private QueryExpression: QueryExpressionService,\n private store: Store,\n\n ) {\n this.store.select(getCurrUser).subscribe((value) => this.currUser = value);\n this.store.select(getSystemOptions).subscribe((value) => this.systemOptions = value);\n\n this.orderEntity = Entity.get('order');\n this.orderProductEntity = Entity.get('order_product');\n this.consumerEntity = this.Entity.get('order_consumer');\n this.productEntity = Entity.get('product');\n\n\n this.isQuantityUpdateInProgress$.pipe(\n debounceTime(PRODUCT_QUANTITY_DEBOUNCE_TIMER),\n filter((hash) => !!hash)\n )\n .subscribe(() => {\n this.isQuantityUpdateInProgress$.next('');\n });\n }\n\n getOrders(table: OrderConsumer): Promise {\n return this.orderEntity\n .search({\n 'consumer.id': table.id,\n 'join': [\n 'consumer',\n 'products',\n ],\n partialJoin: {\n 'customer': ['name', 'creditAmount', 'remnantCredit'],\n 'manager': ['name'],\n 'products.product': ['name'],\n 'products.product.parentProduct': ['name'],\n 'products.product.article': ['name'],\n 'products.product.vat': ['name', 'percentage', 'discountApplies'],\n 'products.product.article.vat': ['name', 'percentage', 'discountApplies'],\n 'products.product.article.categories': ['id', 'name'],\n 'products.product.parameters': ['value'],\n 'products.product.parameters.parameter': ['name', 'type', 'required', 'value', 'deleted', 'filter', 'position'],\n 'products.product.parameters.parameter.dropDownOptions': ['name'],\n },\n 'sort': { 'createdAt': 'asc' },\n // removing to ensure we get products, parameter filtering is done in bottom anyway\n // 'products.product.parameters.deleted': false,\n 'translate': true,\n 'status': 'confirmed_by_customer|confirmed_by_manager|confirmed_by_technologist|created|started|reserved|prepared',\n })\n .then((response: Order[]) => {\n this.handleOrdersResponse(response);\n\n this.activeOrders.next({ [table.id]: response });\n this.dividerCancel$.next();\n\n return response;\n\n });\n }\n\n handleOrdersResponse(response: Order[]) {\n response.forEach((order) => {\n const inserts: number[] = [];\n order.products = (order.products || []).filter((p: OrderProduct) => !p.deleted && !p.hideInInvoice);\n\n order.products.forEach((op) => {\n // skip dividers\n if (op.product) {\n op.product.parameters = guaranteeArray(op.product.parameters || []);\n op.product.parameters = op.product.parameters.filter((p) => !!p && !p.parameter?.deleted);\n }\n\n });\n\n order.products.forEach((p: OrderProduct) => p.quantity = (+p.quantity).toString());\n\n order.products.sort((a: OrderProduct, b: OrderProduct) => {\n return a.itemNumber < b.itemNumber ? -1 :\n a.itemNumber > b.itemNumber ? 1 :\n a.position < b.position ? -1 :\n a.position > b.position ? 1 :\n a.id < b.id ? -1 : 1;\n });\n\n const products = order.products;\n\n for (let i = 0; i < products.length - 1; i++) {\n const thisItem = products[i];\n const nextItem = products[i + 1];\n\n if (thisItem.itemNumber !== nextItem.itemNumber) {\n inserts.push(i + 1);\n }\n\n }\n\n inserts.reverse().forEach((index, i) => {\n products.splice(index, 0, { id: 0, itemNumber: inserts.length - i } as OrderProduct);\n });\n });\n\n this.ordersUpdate.next(response.map((order) => order.id));\n }\n\n get = (id: number) => this.orderEntity.get({ id });\n\n createOrder(table: OrderConsumer, numberOfVisitors: number = 1, customer?: number) {\n return this.orderEntity.posCreate({\n customer: customer || this.systemOptions.defaultCustomer,\n consumer: table.id,\n numberOfVisitors,\n number: `#${table.orders.length + 1} - ${this.currUser.person.firstName} - ${table.name}`\n });\n }\n\n addProductToOrder(product: Partial, orderId: number, article: Article, productName: string|null = null): Promise {\n // RESPONSE_NEW\n return this.productEntity.posCreate_({\n article: product.article!,\n quantity: product.quantity!,\n order: orderId,\n name: productName || article.name,\n itemNumber: product.itemNumber || 0,\n position: product.position ? product.position : -1,\n parentProduct: product.parentProduct!,\n parameters: article.productParameters ? article.productParameters.map((articleProductParameter: any) => ({\n parameter: articleProductParameter.parameter.id,\n value: articleProductParameter.value\n })) : '',\n })\n .then((response) => {\n this.dividerCancel$.next();\n return response;\n });\n }\n\n confirmProducts(order: Order) {\n this.incrementProgressRequest();\n return this.orderEntity.posConfirmProducts({ id: order.id, version: order.version })\n .then((response) => {\n this.decrementProgressRequest();\n return response;\n })\n .catch((e) => {\n console.error(e);\n this.decrementProgressRequest();\n });\n }\n\n confirmTable(tableId: number) {\n this.incrementProgressRequest();\n return this.orderEntity.posConfirmTableProducts({ order_consumer_id: tableId })\n .then((response) => {\n this.decrementProgressRequest();\n return response;\n })\n .catch((e) => {\n console.error(e);\n this.decrementProgressRequest();\n return [];\n });\n }\n\n createProduction(order: Order) {\n return this.orderEntity.posCreateProduction({ id: order.id, version: order.version });\n }\n\n refreshPosProductMaterials(order: Order) {\n return this.orderEntity.posRefreshProductMaterials({ id: order.id });\n }\n\n setOrderCustomer(order: Order, consumer: any) {\n return this.updateRequest({ id: order.id, consumer: consumer.id });\n }\n\n setProductOrder(product: any, order: Order) {\n return this.orderProductEntity.posUpdate({ id: product.id, order: order.id});\n }\n\n remove(order: Order) {\n return this.orderEntity.posRemove({ id: order.id, device: this.LocalStorage.getItem(OPTIONS_PRINTER_ID), });\n }\n\n return(order: Order) {\n return this.orderEntity.posRemove({ id: order.id, device: this.LocalStorage.getItem(OPTIONS_PRINTER_ID), return_materials: true });\n }\n\n updateRequest(request: any) {\n return this.orderEntity.posUpdate(request);\n }\n\n mergeOrders(order: any, joinableOrder: any, isArray: boolean = false, device?: number) {\n return this.orderEntity.mergeOrdersPos({ id: order.id, order: isArray ? joinableOrder : joinableOrder.id, device });\n }\n\n getTables(): Promise {\n const employee = this.currUser.person;\n\n return Promise.all([\n this.Entity.get('employee').get({ id: employee.id, join: ['orderConsumers'], sort: { 'orderConsumers.position' : 'asc' } }),\n this.consumerEntity.search({ sort: { position: 'asc' } })\n ])\n .then((values) => {\n if (values[0].orderConsumers.length) {\n return values[0].orderConsumers;\n } else {\n return values[1];\n }\n });\n\n }\n\n getTableStatuses(): Promise<{[key: number]: string}> {\n return this.consumerEntity\n .search({ select: ['id', 'status'] })\n .then((response) => {\n return response.reduce((accumulator: any, item: any) => {\n accumulator[item.id] = item.status;\n\n return accumulator;\n }, {} )\n })\n }\n\n mapParameters = (productParameter: any) => {\n return productParameter ? ({\n parameter: productParameter.parameter.id,\n value: productParameter.value\n }) : null;\n };\n\n generateProduct(article: Article) {\n let product: any = {\n name: article.name,\n quantity: 1,\n article: article.id,\n customer: 1,\n parentProduct: undefined,\n parameters: article.productParameters ? article.productParameters.map(this.mapParameters) : '',\n };\n\n return product;\n }\n\n reprintConfirmationCheck = (orderId: number) => {\n this.orderEntity.reprintConfirmationCheck({ id: orderId });\n }\n\n incrementProgressRequest() {\n this.isConfirmInProgress$.next(this.isConfirmInProgress$.getValue() + 1);\n }\n\n decrementProgressRequest() {\n this.isConfirmInProgress$.next(this.isConfirmInProgress$.getValue() - 1);\n }\n\n forceQuantityUpdate(): Observable {\n return new Observable((obs => {\n this.isQuantityUpdateInProgress$\n .pipe(filter((hash) => !hash), take(1))\n .subscribe(() => {\n obs.next();\n obs.complete();\n });\n this.isQuantityUpdateInProgress$.next('FORCE_QUANTITY_UPDATE');\n }));\n }\n\n}\n"], "mappings": "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", "names": ["PRODUCT_QUANTITY_DEBOUNCE_TIMER_BASE", "PRODUCT_QUANTITY_DEBOUNCE_TIMER", "PosOrdersService", "constructor", "Entity", "LocalStorage", "QueryExpression", "store", "dividerCancel$", "Subject", "activeTableId$", "BehaviorSubject", "activeOrders", "activeOrderItemNumber$", "ordersUpdate", "ordersResponse$", "isConfirmInProgress$", "isQuantityUpdateInProgress$", "paymentOrders$", "updateOrdersTrigger$", "get", "id", "orderEntity", "mapParameters", "productParameter", "parameter", "value", "reprintConfirmationCheck", "orderId", "select", "getCurrUser", "subscribe", "currUser", "getSystemOptions", "systemOptions", "orderProductEntity", "consumerEntity", "productEntity", "pipe", "debounceTime", "filter", "hash", "next", "getOrders", "table", "search", "partialJoin", "then", "response", "handleOrdersResponse", "forEach", "order", "inserts", "products", "p", "deleted", "hideInInvoice", "op", "product", "parameters", "guaranteeArray", "quantity", "toString", "sort", "a", "b", "itemNumber", "position", "i", "length", "thisItem", "nextItem", "push", "reverse", "index", "splice", "map", "createOrder", "numberOfVisitors", "customer", "posCreate", "defaultCustomer", "consumer", "number", "orders", "person", "firstName", "name", "addProductToOrder", "article", "productName", "posCreate_", "parentProduct", "productParameters", "articleProductParameter", "confirmProducts", "incrementProgressRequest", "posConfirmProducts", "version", "decrementProgressRequest", "catch", "e", "console", "error", "confirmTable", "tableId", "posConfirmTableProducts", "order_consumer_id", "createProduction", "posCreateProduction", "refreshPosProductMaterials", "posRefreshProductMaterials", "setOrderCustomer", "updateRequest", "setProductOrder", "posUpdate", "remove", "posRemove", "device", "getItem", "OPTIONS_PRINTER_ID", "return", "return_materials", "request", "mergeOrders", "joinableOrder", "isArray", "mergeOrdersPos", "getTables", "employee", "Promise", "all", "join", "values", "orderConsumers", "getTableStatuses", "reduce", "accumulator", "item", "status", "generateProduct", "undefined", "getValue", "forceQuantityUpdate", "Observable", "obs", "take", "complete", "\u0275\u0275inject", "LocalStorageService", "QueryExpressionService", "Store", "factory", "\u0275fac", "providedIn"] }