{ "version": 3, "sources": ["apps/frontend/src/app/orders/store/orders.actions.ts", "apps/frontend/src/app/orders/store/orders.selectors.ts", "apps/frontend/src/app/orders/store/orders.reducer.ts", "apps/frontend/src/app/orders/services/orders.service.ts"], "sourcesContent": ["import { createAction, props } from '@ngrx/store';\nimport { OrderType } from '@proman/interfaces/entity-interfaces';\n\nexport enum OrdersActions {\n SetOrderTypes = `[Orders] Set Order Types`,\n}\n\nexport const setOrderTypes = createAction(\n OrdersActions.SetOrderTypes,\n props<{ payload: OrderType[] }>()\n);\n", "import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { OrdersState } from './orders.reducer';\n\nexport const ordersKey: string = 'orders';\n\nexport const selectOrdersState = createFeatureSelector(ordersKey);\n\nexport const getOrderTypes = createSelector(\n selectOrdersState, (state: OrdersState) => state.data.orderTypes\n);\n", "import { Action, createReducer, on } from '@ngrx/store';\nimport { OrderType } from '@proman/interfaces/entity-interfaces';\nimport { setOrderTypes } from './orders.actions';\n\nexport interface OrdersState {\n data: {\n orderTypes?: OrderType[];\n };\n}\n\nexport const initialState: OrdersState = {\n data: {},\n};\n\nexport const ordersReducer = createReducer(\n initialState,\n on(setOrderTypes, (state: OrdersState, action) => {\n return { ...state, data: { ...state.data, orderTypes: action.payload } }\n })\n);\n\nexport function reducer(state: OrdersState, action: Action): OrdersState {\n return ordersReducer(state, action);\n}\n", "import { Injectable } from '@angular/core';\nimport { Entity, EntityConfigInterface } from '@proman/services/entity.service';\nimport { OrderCopyDialogComponent } from '../components/order-copy-dialog.component';\nimport { Dialog } from '../../shared/services/dialog.service';\nimport { resourcesConfig } from '@proman/resources';\nimport { FilterService } from '@proman/services/filter.service';\nimport { toUpper } from 'lodash';\nimport { ProductEditDialogComponent } from '../../products/components/product-edit-dialog.component';\nimport { ACL } from '@proman/services/acl.service';\nimport moment from 'moment';\nimport { DateTimeFormatService } from '@proman/services/date-time-format.service';\nimport { Subject } from 'rxjs';\nimport { mapOptionTranslate, prepareRequest, roundNumber } from '@proman/utils';\nimport { PromanStateService } from '../../shared/services/proman-state.service';\nimport { ParametersOptionsService } from '@proman/services/parameters-options.service';\nimport { CurrUser, TableButton, TableField } from '@proman/interfaces/object-interfaces';\nimport { Order, OrderProposal, OrderType, Product, SystemOptions } from '@proman/interfaces/entity-interfaces';\nimport { OrderEntityInterface } from '@proman/resources/order';\nimport { BehaviorSubject } from 'rxjs';\nimport { UI_RESET_PROPOSAL, UiPreferencesService } from '@proman/services/ui-preferences.service';\nimport { InputDialogComponent } from '@proman/shared-dialogs/dialogs/input-dialog.component';\nimport { DynamicFieldsService } from '@proman/services/dynamic-fields.service';\nimport { Store } from '@ngrx/store';\nimport { getCurrUser } from '@proman/store/curr-user';\nimport { EmployeesService } from '../../employees/services/employees.service';\nimport { setOrderTypes } from '../store';\nimport { ToastService } from '@proman/services/toast.service';\nimport { getSystemOptions } from '@proman/store/system-options';\n\n/**\n * `Orders` service\n *\n */\n@Injectable({ providedIn: 'root' })\nexport class OrdersService {\n orderEntity: OrderEntityInterface;\n currUser: CurrUser;\n entityConfig: EntityConfigInterface;\n permissions: Subject = new Subject();\n statuses: string[] = [];\n typeOptions: OrderType[];\n orderActionsTimeStamp: BehaviorSubject = new BehaviorSubject(0);\n create$: Subject = new Subject();\n systemOptions: SystemOptions;\n\n constructor(\n private Entity: Entity,\n private ACL: ACL,\n private Dialog: Dialog,\n private Filter: FilterService,\n private Toast: ToastService,\n private DateTime: DateTimeFormatService,\n private PromanState: PromanStateService,\n private ParametersOptions: ParametersOptionsService,\n private store: Store,\n private DynamicFields: DynamicFieldsService,\n private Employees: EmployeesService,\n private UiPrefs: UiPreferencesService,\n ) {\n this.store.select(getCurrUser).subscribe((value) => this.currUser = value);\n this.initEntity();\n\n this.permissions.next({});\n\n for (const status in resourcesConfig.order.params.entityConfig.attrs) {\n this.statuses.push(status);\n }\n\n this.ParametersOptions.search({ entity: 'order_type', entityParams: {} })\n .then((response: OrderType[]) => {\n this.typeOptions = response;\n this.store.dispatch(setOrderTypes({ payload: response }))\n });\n\n this.store.select(getSystemOptions).subscribe((value) => this.systemOptions = value);\n }\n\n initEntity = () => {\n this.entityConfig = resourcesConfig.order.params.entityConfig;\n\n this.setStatuses(this.entityConfig);\n\n this.orderEntity = this.Entity.get(this.entityConfig) as unknown as OrderEntityInterface;\n };\n\n create = (order: OrderProposal, saleOpportunityId?: number, devProjectId?: number, internal?: boolean) => {\n const params = { proposal: order.id };\n if (internal) Object.assign(params, { internal: true });\n\n return this.orderEntity\n .create(params)\n .then((orderId: any) => {\n\n order.tags?.forEach((tag) => {\n this.orderEntity.addAssociation({ id: orderId, tags: tag.id })\n })\n\n const goToCallback = () => {\n if (this.UiPrefs.get(UI_RESET_PROPOSAL)) {\n this.Entity.get('order_proposal').clean({ id: order.id });\n }\n\n if (internal) {\n this.PromanState.to('OrderProductions', orderId);\n } else {\n this.PromanState.to('Order', orderId);\n }\n\n };\n\n if (saleOpportunityId) {\n\n this.Entity.get('loose_relation_type')\n .get()\n .then((defaultVal: any) => {\n this.Entity\n .get('loose_relation')\n .create({\n fromTableName: 'sale_opportunity',\n fromEntityId: saleOpportunityId,\n toTableName: 'order',\n toEntityId: orderId,\n looseRelationType: defaultVal.id\n })\n .then(goToCallback);\n });\n\n } else if (devProjectId) {\n\n this.Entity.get('loose_relation_type')\n .get()\n .then((defaultVal: any) => {\n this.Entity\n .get('loose_relation')\n .create({\n fromTableName: 'development_project',\n fromEntityId: devProjectId,\n toTableName: 'order',\n toEntityId: orderId,\n looseRelationType: defaultVal.id\n })\n .then(goToCallback);\n });\n\n } else {\n goToCallback();\n\n }\n\n });\n };\n\n refreshPrice = (order: any, callback?: () => void) => {\n this.Entity.get('order').get({ id: order.id })\n .then((response: any) => {\n order.profit = response.profit;\n order.ratioOnCreate = response.ratioOnCreate;\n order.customerPrice = response.customerPrice;\n order.customerPriceWithVat = response.customerPriceWithVat;\n order.productionPrice = response.productionPrice;\n order.commissionPercent = response.commissionPercent;\n order.commission = response.commission;\n order.version = response.version;\n order.customerDiscountPercent = response.customerDiscountPercent;\n order.agentCommissionPercent = response.agentCommissionPercent;\n order.discountSum = response.discountSum;\n if (typeof callback === 'function') callback();\n });\n };\n\n getLastShipmentDate = (order: Order) => {\n let result: string = null;\n\n if (order.shipments?.length) {\n const validShipments = order.shipments.filter((s) => !s.deleted).sort((a, b) => (new Date(a.date).getTime()) - (new Date(b.date).getTime()));\n result = validShipments[validShipments.length - 1].date;\n }\n\n return result;\n };\n\n getPaymentTypes = (order: Order) => {\n return [...new Set((order.accountRegisters?.map((reg) => reg.payments\n .map((pay) => pay.paymentType.name))))].join(', ');\n }\n\n setStatuses = (entityConfig: any) => {\n entityConfig.attrs = {};\n\n for (const status of resourcesConfig.order.params.orderStatuses) {\n entityConfig.attrs[toUpper(status)] = status;\n\n }\n\n };\n\n getOrderStatus = (order: Order) => {\n const icons = resourcesConfig.order.params.orderStatusIcons;\n const icon = icons[order.status];\n\n return {\n icon,\n text: this.Filter.translate(order.status)\n };\n };\n\n getProductEditBtn = (callback: () => void, order?: Order): TableButton => {\n\n return {\n icon: 'edit',\n tooltip: 'edit',\n acl: null,\n dialog2: {\n component: ProductEditDialogComponent,\n locals: { order },\n options: { disableAutoFocus: true }\n },\n onSuccess: callback,\n onCancel: callback,\n show: this.canEditProducts\n };\n };\n\n getFields = (): TableField[] => {\n return [\n {\n name: '',\n key: 'color',\n filter: null,\n hidden: true,\n sortable: false,\n formatter: 'directive',\n formatterConfig: 'pro-entity-table-color'\n },\n {\n name: 'order_number',\n key: 'number'\n },\n {\n name: 'order_name',\n key: 'name',\n maxLength: 50\n },\n {\n name: 'customer_number',\n key: 'customerNumber',\n maxLength: 20,\n },\n {\n name: 'namespace',\n key: 'namespace',\n hidden: !this.systemOptions.corporate\n },\n {\n name: 'visitors',\n key: 'numberOfVisitors',\n hidden: true,\n stats: ['sum'],\n },\n {\n name: 'order_consumer',\n key: 'consumer.name',\n hidden: true,\n },\n {\n name: 'parameters',\n key: 'parameters',\n filter: {\n type: 'search',\n keys: ['parameters.parameter.name', 'parameters.parameter.alias', 'parameters.value'],\n },\n formatter: 'parameters',\n hidden: true,\n extraJoins: [\n 'parameters',\n 'parameters.parameter',\n 'parameters.children',\n 'parameters.children.parameter'\n ],\n preloadParametersData: true\n },\n {\n name: 'customer',\n key: 'customer.alias'\n },\n {\n name: 'country',\n key: 'customer.country.name',\n hidden: true,\n extraJoins: [\n 'customer.country',\n ]\n },\n {\n name: 'created_at',\n key: 'createdAt',\n formatter: 'dateTime',\n formatterConfig: '_datetime_js',\n showTime: true\n },\n {\n name: 'finished_at',\n key: 'finishedAt',\n formatter: 'dateTime',\n formatterConfig: '_datetime_js',\n showTime: false,\n hidden: true,\n },\n {\n name: 'confirmed_at',\n key: 'confirmedAt',\n formatter: 'dateTime',\n formatterConfig: '_datetime_js',\n showTime: false,\n hidden: true,\n },\n {\n name: 'manager',\n key: 'manager.name'\n },\n {\n name: 'shipment',\n key: 'shipments.date',\n getValue: this.getLastShipmentDate,\n formatter: 'dateTime'\n },\n {\n name: 'quantity',\n key: 'quantity',\n filter: {\n type: 'numeric'\n },\n formatter: 'numeric',\n stats: ['sum']\n },\n {\n name: 'weight',\n key: 'weight',\n filter: {\n type: 'numeric'\n },\n formatter: 'numeric',\n formatterConfig: 2,\n stats: ['sum'],\n },\n {\n name: 'type',\n key: 'type',\n getValue: (row: Order) => (row.type?.name || '-'),\n filter: {\n type: 'autocomplete',\n entity: 'order_type'\n }\n },\n {\n name: 'subtype',\n key: 'subtype',\n getValue: (row: Order) => (row.subtype?.name || '-'),\n filter: {\n type: 'autocomplete',\n entity: 'order_subtype'\n },\n hidden: true,\n },\n {\n name: 'real_cost',\n key: 'productionCost',\n sortable: true,\n formatter: 'money',\n formatterConfig: 2,\n stats: ['sum'],\n acl: 'order.show_price',\n hidden: true\n },\n {\n name: 'standard_cost',\n key: 'productsCost',\n sortable: true,\n formatter: 'money',\n formatterConfig: 2,\n stats: ['sum'],\n acl: 'order.show_price',\n hidden: true\n },\n {\n name: 'sum',\n key: 'productionPrice',\n sortable: true,\n formatter: 'money',\n formatterConfig: 2,\n stats: ['sum'],\n acl: 'order.show_price',\n hidden: true\n },\n {\n name: 'customer_sum',\n key: 'customerPrice',\n sortable: true,\n formatter: 'money',\n formatterConfig: 2,\n stats: ['sum'],\n acl: 'order.show_price'\n },\n {\n name: 'final_sum',\n key: 'customerPriceWithVat',\n sortable: true,\n formatter: 'money',\n formatterConfig: 2,\n stats: ['sum'],\n acl: 'order.show_price'\n },\n {\n name: 'payment_types',\n key: 'payment_types',\n filter: {\n type: 'search',\n keys: ['accountRegisters.payments.paymentType.name'],\n },\n getValue: this.getPaymentTypes,\n extraJoins: [\n 'accountRegisters',\n 'accountRegisters.payments',\n 'accountRegisters.payments.paymentType',\n ],\n hidden: true,\n },\n {\n name: 'discount',\n key: 'discountSum',\n formatter: 'money',\n stats: ['sum'],\n hidden: true,\n acl: 'order.show_price'\n },\n {\n name: 'discount_percentage',\n key: 'percentage',\n getValue: this.getDiscountPercentage,\n hidden: true,\n acl: 'order.show_price'\n },\n\n {\n name: 'status',\n key: 'status',\n getValue: this.getOrderStatus,\n formatter: 'compile',\n filter: {\n type: 'dropdown_multi',\n options: this.getDropdownFilterOptions()\n }\n },\n {\n name: 'tags',\n key: 'tags',\n entityName: 'order',\n formatter: 'directive',\n formatterConfig: 'pro-tags',\n filter: {\n type: 'autocomplete',\n entity: 'tag'\n },\n additionalConfig: {\n tagType: 'order',\n }\n },\n {\n name: 'desired_dispatch_date',\n key: 'desiredDispatchDate',\n formatter: 'dateTime',\n hidden: true,\n },\n {\n name: 'internal',\n key: 'internal',\n formatter: 'iconBoolean',\n hidden: true,\n filter: {\n type: 'dropdown',\n options: [\n {\n id: true,\n name: this.Filter.translate('yes')\n },\n {\n id: false,\n name: this.Filter.translate('no')\n }\n ],\n key: 'id'\n }\n },\n {\n name: 'productions_quantity',\n key: 'productionsQuantity',\n getValue: (row: Order) => {\n let quantity = 0\n row.productions?.forEach((production) => quantity += production.quantity);\n return roundNumber(quantity, 0);\n },\n filter: {\n type: 'numeric'\n },\n formatter: 'numeric',\n stats: ['sum'],\n sortable: null,\n }\n ];\n };\n\n getDropdownFilterOptions = () => {\n const result = [];\n\n if (!this.entityConfig) this.initEntity();\n\n for (const key in this.entityConfig.attrs) {\n\n if (this.entityConfig.attrs[key]) {\n result.push({\n name: this.Filter.translate(this.entityConfig.attrs[key]),\n id: this.entityConfig.attrs[key]\n });\n }\n }\n\n return result;\n };\n\n copyOrder = (order: Order) => {\n this.Dialog.open(OrderCopyDialogComponent, { order }, { disableAutoFocus: true })\n .then((orderId: number) => {\n this.Toast.pop('info', 'order_copy_created');\n // await this.DynamicFields.copyFields('order', order.id, orderId);\n this.PromanState.to('Order', orderId);\n });\n };\n\n getExtraParameters = resourcesConfig['order'].params.extraParameters;\n\n getCustomFilters = (keyPrefix?: any) => {\n if ( !this.checkProdSpecialisations() ) {\n\n\n if (!this.orderEntity) this.initEntity();\n\n keyPrefix = keyPrefix || '';\n\n const filters = [\n {\n name: 'orders_preparing',\n key: keyPrefix + 'status',\n value: [\n this.orderEntity.CONFIRMED_BY_CUSTOMER,\n this.orderEntity.CONFIRMED_BY_MANAGER,\n this.orderEntity.CONFIRMED_BY_TECHNOLOGIST\n ].join('|')\n },\n {\n name: 'orders_active',\n key: keyPrefix + 'status',\n value: [\n this.orderEntity.CONFIRMED_BY_CUSTOMER,\n this.orderEntity.CONFIRMED_BY_MANAGER,\n this.orderEntity.CONFIRMED_BY_TECHNOLOGIST,\n this.orderEntity.CREATED,\n this.orderEntity.STARTED,\n this.orderEntity.RESERVED,\n this.orderEntity.DELIVERING\n ].join('|')\n },\n {\n name: 'orders_finished',\n key: keyPrefix + 'status',\n value: this.orderEntity.COMPLETE\n },\n {\n name: 'orders_canceled',\n key: keyPrefix + 'status',\n value: this.orderEntity.CANCELED\n },\n {\n name: 'deleted',\n key: '_deleted',\n value: true\n }\n ];\n\n if (this.currUser.isEmployee && this.ACL.check('order.create')) {\n filters.push(\n {\n name: 'internal',\n key: 'internal',\n value: true\n },\n )\n }\n\n return filters;\n }\n };\n\n canEditProducts = (order: Order) => {\n const Order = this.orderEntity;\n\n if (this.currUser?.isCustomer) return (order.status === Order.CREATED || order.status === Order.CONFIRMED_BY_CUSTOMER) && this.ACL.check('product.edit');\n\n if (this.currUser.type === 'employee') return order.status === Order.CREATED ||\n order.status === Order.CONFIRMED_BY_MANAGER ||\n order.status === Order.CONFIRMED_BY_CUSTOMER ||\n order.status === Order.CONFIRMED_BY_TECHNOLOGIST ||\n order.status === Order.STARTED ||\n this.ACL.check('order.master');\n };\n\n getNew = (): any => {\n const date = this.DateTime.get('_date_js');\n\n return {\n name: this.Filter.translate('order') + ' ' + moment().format(date),\n products: []\n };\n };\n\n canComplete = (order: Order) => {\n const Order = this.orderEntity;\n\n return new Promise((resolve) => {\n resolve(this.ACL.check('order.update_status') && order.status === Order.DELIVERING);\n });\n };\n\n canUnconfirm = (order: Order) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('production.create') &&\n (order.status === Order.CONFIRMED_BY_MANAGER ||\n order.status === Order.CONFIRMED_BY_TECHNOLOGIST ||\n order.status === Order.STARTED ||\n order.status === Order.RESERVED);\n };\n\n canSendToDevelopment = (order: Order) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('order.edit') && order.status === Order.CONFIRMED_BY_MANAGER;\n };\n\n canReturnFromDevelopment = (order: Order) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('order.edit') && order.status === Order.IN_DEVELOPMENT;\n };\n\n canCreateProductions = (order: Order) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('production.create') &&\n (\n order.status === Order.CONFIRMED_BY_MANAGER ||\n order.status === Order.STARTED ||\n order.status === Order.CONFIRMED_BY_TECHNOLOGIST ||\n order.status === Order.PREPARED ||\n order.status === Order.PARTLY_PREPARED ||\n order.status === Order.DELIVERING\n )\n };\n\n canConfirmProducts = (order: Order): any => {\n const Order = this.orderEntity;\n\n return this.ACL.check('order.confirm') && (order.status === Order.CREATED || order.status === Order.CONFIRMED_BY_CUSTOMER);\n };\n\n canEditParameters = (order: Order) => {\n const Order = this.orderEntity;\n\n return order.status === Order.CREATED || order.status === Order.CONFIRMED_BY_CUSTOMER || order.status === Order.CONFIRMED_BY_MANAGER\n };\n\n canCancel = (order: Order) => {\n const Order = this.orderEntity;\n\n return order.status !== Order.CANCELED && order.status !== Order.COMPLETE\n };\n\n canStart = (order: Order) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('order.update_status') && order.status === Order.CONFIRMED_BY_MANAGER;\n };\n\n canRemove = () => this.ACL.check('order.remove');\n\n canMergeOrders = () => this.ACL.check('order.edit');\n\n canSuspend = (order: Order) => {\n const Order = this.orderEntity;\n const status = order.status;\n const isCreated = status === Order.CREATED;\n const isConfirmedByManager = status === Order.CONFIRMED_BY_MANAGER;\n const isConfirmedByTechnologist = status === Order.CONFIRMED_BY_TECHNOLOGIST;\n const isStarted = status === Order.STARTED;\n\n return isCreated || isConfirmedByManager || isStarted || isConfirmedByTechnologist;\n };\n\n canResume = (order: Order) => {\n const Order = this.orderEntity;\n\n return order.status === Order.SUSPENDED;\n };\n\n checkActions = (order: Order) => {\n this.permissions.next({\n canConfirmProducts: this.canConfirmProducts(order),\n canEditProductArticles: order.status === this.orderEntity.CONFIRMED_BY_MANAGER && this.ACL.check('production.create'),\n canCancel: this.canCancel(order),\n canStart: this.canStart(order),\n canRemove: this.canRemove(),\n canCreateProductions: this.canCreateProductions(order),\n canEditParameters: this.canEditParameters(order),\n canComplete: this.canComplete(order),\n canSuspend: this.canSuspend(order),\n canResume: this.canResume(order),\n canUnconfirm: this.canUnconfirm(order),\n canEditProducts: this.canEditProducts(order),\n canSendToDevelopment: this.canSendToDevelopment(order),\n canReturnFromDevelopment: this.canReturnFromDevelopment(order),\n canMergeOrders: this.canMergeOrders()\n });\n };\n\n isActive = (order: any) => {\n return [this.orderEntity.CANCELED, this.orderEntity.SUSPENDED, this.orderEntity.COMPLETE].indexOf(order.status) === -1;\n };\n\n getStatuses = () => {\n return this.statuses\n .map((item: string) => mapOptionTranslate(item, this.Filter.translate));\n };\n\n createOrderFromProduct = async (row: Product) => {\n const currUser = this.currUser;\n const isManager = await this.Employees.is(this.currUser.person, 'manager');\n\n const customerValue = await this.orderEntity\n .get({\n 'products.product.id': row.id,\n 'join': ['customer']\n })\n .then((response: Order) => response && response.customer);\n\n this.Dialog\n .open(InputDialogComponent,\n {\n header: 'create_order',\n mainField: { key: 'customer', name: 'customer', type: 'autocomplete', config: { entity: 'customer' }, value: customerValue },\n parameters: [\n {\n key: 'manager', name: 'manager',\n type: 'autocomplete',\n config: { entity: 'employee', entityParams: { 'specialisations.type': 'manager' } },\n value: isManager ? currUser.person : null,\n },\n {\n key: 'orderType', name: 'order_type',\n type: 'autocomplete',\n config: { entity: 'order_type'},\n },\n {\n name: 'quantity',\n key: 'quantity',\n type: 'number',\n config: {},\n value: row.quantity\n }\n ],\n variant: 'create'\n },\n { disableAutoFocus: true })\n .then((result: { customer: number; manager: number; quantity: string }) => {\n const request = prepareRequest(Object.assign({}, result, { products: [row.id] }));\n\n this.orderEntity\n .createOrder(request)\n .then((response: {}) => this.PromanState.to('Order', response));\n });\n };\n\n checkProdSpecialisations() {\n if (this.currUser.person.specialisations.length > 0) {\n return (this.currUser.person.specialisations.every((spec) => spec.role.type === 'production') && !this.ACL.check('order.view_all'));\n } else {\n return false;\n }\n }\n\n getDiscountPercentage(row: any) {\n if (row.discountSum != 0.0) {\n return roundNumber((roundNumber(row.discountSum.amount, 2) / roundNumber(row.customerPriceWithVat.amount + row.discountSum.amount, 2)) * 100, 0);\n } else {\n return 0;\n }\n }\n\n}\n"], "mappings": "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", "names": ["OrdersActions", "setOrderTypes", "createAction", "SetOrderTypes", "props", "ordersKey", "selectOrdersState", "createFeatureSelector", "getOrderTypes", "createSelector", "state", "data", "orderTypes", "initialState", "data", "ordersReducer", "createReducer", "on", "setOrderTypes", "state", "action", "__spreadProps", "__spreadValues", "orderTypes", "payload", "reducer", "import_lodash", "import_moment", "OrdersService", "constructor", "Entity", "ACL", "Dialog", "Filter", "Toast", "DateTime", "PromanState", "ParametersOptions", "store", "DynamicFields", "Employees", "UiPrefs", "permissions", "Subject", "statuses", "orderActionsTimeStamp", "BehaviorSubject", "create$", "initEntity", "entityConfig", "resourcesConfig", "order", "params", "setStatuses", "orderEntity", "get", "create", "saleOpportunityId", "devProjectId", "internal", "proposal", "id", "Object", "assign", "then", "orderId", "tags", "forEach", "tag", "addAssociation", "goToCallback", "UI_RESET_PROPOSAL", "clean", "to", "defaultVal", "fromTableName", "fromEntityId", "toTableName", "toEntityId", "looseRelationType", "refreshPrice", "callback", "response", "profit", "ratioOnCreate", "customerPrice", "customerPriceWithVat", "productionPrice", "commissionPercent", "commission", "version", "customerDiscountPercent", "agentCommissionPercent", "discountSum", "getLastShipmentDate", "result", "shipments", "length", "validShipments", "filter", "s", "deleted", "sort", "a", "b", "Date", "date", "getTime", "getPaymentTypes", "Set", "accountRegisters", "map", "reg", "payments", "pay", "paymentType", "name", "join", "attrs", "status", "orderStatuses", "toUpper", "getOrderStatus", "icon", "orderStatusIcons", "text", "translate", "getProductEditBtn", "tooltip", "acl", "dialog2", "component", "ProductEditDialogComponent", "locals", "options", "disableAutoFocus", "onSuccess", "onCancel", "show", "canEditProducts", "getFields", "key", "hidden", "sortable", "formatter", "formatterConfig", "maxLength", "systemOptions", "corporate", "stats", "type", "keys", "extraJoins", "preloadParametersData", "showTime", "getValue", "row", "entity", "subtype", "getDiscountPercentage", "getDropdownFilterOptions", "entityName", "additionalConfig", "tagType", "quantity", "productions", "production", "roundNumber", "push", "copyOrder", "open", "OrderCopyDialogComponent", "pop", "getExtraParameters", "extraParameters", "getCustomFilters", "keyPrefix", "checkProdSpecialisations", "filters", "value", "CONFIRMED_BY_CUSTOMER", "CONFIRMED_BY_MANAGER", "CONFIRMED_BY_TECHNOLOGIST", "CREATED", "STARTED", "RESERVED", "DELIVERING", "COMPLETE", "CANCELED", "currUser", "isEmployee", "check", "Order", "isCustomer", "getNew", "moment", "format", "products", "canComplete", "Promise", "resolve", "canUnconfirm", "canSendToDevelopment", "canReturnFromDevelopment", "IN_DEVELOPMENT", "canCreateProductions", "PREPARED", "PARTLY_PREPARED", "canConfirmProducts", "canEditParameters", "canCancel", "canStart", "canRemove", "canMergeOrders", "canSuspend", "isCreated", "isConfirmedByManager", "isConfirmedByTechnologist", "isStarted", "canResume", "SUSPENDED", "checkActions", "next", "canEditProductArticles", "isActive", "indexOf", "getStatuses", "item", "mapOptionTranslate", "createOrderFromProduct", "__async", "isManager", "is", "person", "customerValue", "customer", "InputDialogComponent", "header", "mainField", "config", "parameters", "entityParams", "variant", "request", "prepareRequest", "createOrder", "select", "getCurrUser", "subscribe", "search", "typeOptions", "dispatch", "setOrderTypes", "payload", "getSystemOptions", "specialisations", "every", "spec", "role", "amount", "\u0275\u0275inject", "FilterService", "ToastService", "DateTimeFormatService", "PromanStateService", "ParametersOptionsService", "Store", "DynamicFieldsService", "EmployeesService", "UiPreferencesService", "factory", "\u0275fac", "providedIn"] }