{ "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 '@frontend/shared/services/dialog.service';\nimport { resourcesConfig } from '@proman/resources';\nimport { FilterService } from '@proman/services/filter.service';\nimport { QueryExpressionService } from '@proman/services/query-expression.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 '@frontend/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 '@frontend/shared/components/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 QueryExpression: QueryExpressionService,\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 (let 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: any) => {\n let result: any = null;\n\n if (order.shipments && order.shipments.length) {\n result = order.shipments[order.shipments.length - 1].date;\n\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 (let status of resourcesConfig.order.params.orderStatuses) {\n entityConfig.attrs[toUpper(status)] = status;\n\n }\n\n };\n\n getOrderStatus = (order: any) => {\n let icons = resourcesConfig.order.params.orderStatusIcons;\n let 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 let result = [];\n\n if (!this.entityConfig) this.initEntity();\n\n for (let 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 let filters;\n\n keyPrefix = keyPrefix || '';\n\n 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: any) => {\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: any) => {\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: any) => {\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: any) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('order.edit') && order.status === Order.CONFIRMED_BY_MANAGER;\n };\n\n canReturnFromDevelopment = (order: any) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('order.edit') && order.status === Order.IN_DEVELOPMENT;\n };\n\n canCreateProductions = (order: any) => {\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: any): 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: any) => {\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: any) => {\n const Order = this.orderEntity;\n\n return order.status !== Order.CANCELED && order.status !== Order.COMPLETE\n };\n\n canStart = (order: any) => {\n const Order = this.orderEntity;\n\n return this.ACL.check('order.update_status') && order.status === Order.CONFIRMED_BY_MANAGER;\n };\n\n canRemove = () => {\n return this.ACL.check('order.remove');\n };\n\n canMergeOrders = () => {\n return this.ACL.check('order.edit');\n };\n\n canSuspend = (order: any) => {\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: any) => {\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: any) => 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, 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", "QueryExpression", "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", "date", "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", "filter", "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", "QueryExpressionService", "DateTimeFormatService", "PromanStateService", "ParametersOptionsService", "Store", "DynamicFieldsService", "EmployeesService", "UiPreferencesService", "factory", "\u0275fac", "providedIn", "_OrdersService"] }