{"version":3,"file":"static/js/5edde52a9728dfa7ebd1.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/custom-get-products-in-active-cart.ts?1301","webpack://Msdyn365.Commerce.Online/./src/actions/custom-get-simple-products.ts?5fc7","webpack://Msdyn365.Commerce.Online/./src/actions/get-inventory-configuration.action.ts?33d1","webpack://Msdyn365.Commerce.Online/./src/actions/get-full-order-templates.ts?e9a2","webpack://Msdyn365.Commerce.Online/./src/actions/get-order-templates-preview.ts?26f8","webpack://Msdyn365.Commerce.Online/./src/actions/get-organization-address.action.ts?ada4","webpack://Msdyn365.Commerce.Online/./src/actions/get-organization-customer.ts?79c2","webpack://Msdyn365.Commerce.Online/./src/actions/get-product-unit-of-measure-options.action.ts?bc1e","webpack://Msdyn365.Commerce.Online/./src/actions/update-calc-cart-lines.action.ts?a07a","webpack://Msdyn365.Commerce.Online/./src/components/product-list-component/components/product-list-view-mode.tsx?1dbb","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/components/dlvry-cart-pick-up-in-store.tsx?ba9a","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/components/dlvry-cart-line-items.tsx?b5dc","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/components/dlvry-cart-line-groups.tsx?db67","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/utils/get-promotion-in-dlvry-cart.ts?fa53","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/components/dlvry-cart-import-modal.tsx?377f","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/dlvry-cart.tsx?70c6","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/components/dlvry-cart-line-items-promotion.tsx?39e9","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/dlvry-cart.props.autogenerated.ts?13de","webpack://Msdyn365.Commerce.Online/./src/modules/dlvry-cart/dlvry-cart.view.tsx?5c11","webpack://Msdyn365.Commerce.Online/./src/shared-utils/cookie-utilities.ts?6237","webpack://Msdyn365.Commerce.Online/./src/shared-utils/string-utils.ts?de49","webpack://Msdyn365.Commerce.Online/./lib/dlvry-cart/module-registration.js?f531","webpack://Msdyn365.Commerce.Online/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://Msdyn365.Commerce.Online/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://Msdyn365.Commerce.Online/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n ICreateActionContext\r\n} from '@msdyn365-commerce/core';\r\nimport { getCartState, ICartState } from '@msdyn365-commerce/global-state';\r\nimport { FeatureState } from '@msdyn365-commerce/retail-proxy';\r\nimport { Cart, CartLine, ProductSearchCriteria } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport {\r\n ArrayExtensions,\r\n createGetFeatureStateInput,\r\n getCustomer,\r\n GetCustomerInput,\r\n getFeatureState\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport getSimpleProducts, { ProductInput } from './custom-get-simple-products';\r\nimport { searchByCriteriaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { getAttributesLocale, getAttributeStringOrDefault } from '../shared-utils/attributes';\r\nimport { SimpleProductExt } from '../shared-utils/types';\r\n\r\n/**\r\n * Input class for activeCartWithProducts data action.\r\n */\r\nexport class ActiveCartProductsInput implements IActionInput {\r\n public getCacheKey = () => 'ActiveCartProducts';\r\n\r\n public getCacheObjectType = () => 'ActiveCartProducts';\r\n\r\n public dataCacheType = (): CacheType => 'none';\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext) => {\r\n return new ActiveCartProductsInput();\r\n};\r\n\r\n/**\r\n * Calls the Retail API and returns a cart object based on the passed GetCartInput.\r\n * @param input\r\n * @param ctx\r\n */\r\nexport async function getActiveCartProductsAction(input: ActiveCartProductsInput, ctx: IActionContext): Promise {\r\n // If no cart ID is provided in input, we need to create a cart object\r\n if (!input) {\r\n throw new Error('[getActiveCartWithProducts]No valid Input was provided, failing');\r\n }\r\n\r\n const cartState = await getCartState(ctx);\r\n const cart = cartState.cart;\r\n\r\n const isQuantityLimitsFeatureIsOn: boolean = await isOrderQuantityLimitsFeatureEnabled(ctx);\r\n const productSearchCriteria: ProductSearchCriteria = {\r\n Context: {\r\n CatalogId: ctx.requestContext.apiSettings.catalogId,\r\n ChannelId: ctx.requestContext.apiSettings.channelId\r\n },\r\n Ids: cart.CartLines?.map(cartLine => cartLine.ProductId!).filter(Boolean) || [],\r\n IncludeAttributes: true\r\n };\r\n\r\n const [products, searchResults] = await Promise.all([\r\n isQuantityLimitsFeatureIsOn ? getActiveCartProductsActionWhenQuantityLimitsFeatureIsOn(cart, ctx) : getActiveCartProducts(cartState, cart, ctx),\r\n productSearchCriteria.Ids!.length > 0 ? searchByCriteriaAsync({ callerContext: ctx }, productSearchCriteria) : Promise.resolve([])\r\n ]);\r\n\r\n const attributeLocale = getAttributesLocale(ctx.requestContext.locale);\r\n\r\n for (const sr of searchResults) {\r\n const brand = getAttributeStringOrDefault(sr.AttributeValues, attributeLocale.brand, undefined);\r\n const manufacturer = getAttributeStringOrDefault(sr.AttributeValues, attributeLocale.manufacturer, undefined);\r\n const transit = getAttributeStringOrDefault(sr.AttributeValues, attributeLocale.transit, undefined) === '1';\r\n\r\n if (brand !== undefined) {\r\n products.find(product => product.RecordId === sr.RecordId)!.Brand = brand;\r\n }\r\n\r\n if (manufacturer !== undefined) {\r\n products.find(product => product.RecordId === sr.RecordId)!.Manufacturer = manufacturer;\r\n }\r\n\r\n if (transit !== undefined) {\r\n products.find(product => product.RecordId === sr.RecordId)!.Transit = transit;\r\n }\r\n }\r\n\r\n return products;\r\n}\r\n\r\nexport const getActiveCartProductsActionDataAction = createObservableDataAction({\r\n id: 'custom-get-products-in-active-cart',\r\n action: >getActiveCartProductsAction,\r\n input: createInput\r\n});\r\nexport default getActiveCartProductsActionDataAction;\r\n\r\nasync function getActiveCartProducts(cartState: ICartState, cart: Cart, ctx: IActionContext): Promise {\r\n // If there are cart lines, make call to get products\r\n if (!cartState.hasInvoiceLine && cart && cart.CartLines && cart.CartLines.length > 0) {\r\n ctx.trace('Getting cart product information...');\r\n\r\n try {\r\n const products = await getSimpleProducts(\r\n cart.CartLines.map(cartLine => {\r\n if (cartLine.ProductId) {\r\n return new ProductInput(\r\n cartLine.ProductId,\r\n ctx.requestContext.apiSettings,\r\n undefined,\r\n undefined,\r\n ctx.requestContext,\r\n cartLine.CatalogId\r\n );\r\n }\r\n return undefined;\r\n }).filter(Boolean),\r\n ctx\r\n );\r\n\r\n return products || [];\r\n } catch (error) {\r\n ctx.trace((error as Error).toString());\r\n ctx.telemetry.error((error as Error).message);\r\n ctx.telemetry.debug('[getActiveCartWithProducts]Unable to hydrate cart with product information');\r\n throw new Error('[getActiveCartWithProducts]Unable to hydrate cart with product information');\r\n }\r\n }\r\n\r\n ctx.trace('[getActiveCartWithProducts]No Products Found in cart');\r\n return [];\r\n}\r\n\r\nasync function getActiveCartProductsActionWhenQuantityLimitsFeatureIsOn(cart: Cart, ctx: IActionContext): Promise {\r\n const productIdsByWarehouseId: Map = new Map();\r\n let resultProducts: SimpleProductExt[] = [];\r\n cart.CartLines?.forEach(cartLine =>\r\n productIdsByWarehouseId.has(cartLine.WarehouseId!)\r\n ? productIdsByWarehouseId.get(cartLine.WarehouseId!)?.push(cartLine)\r\n : productIdsByWarehouseId.set(cartLine.WarehouseId!, [cartLine])\r\n );\r\n return Promise.all(\r\n [...productIdsByWarehouseId].map(([entryWarehouseId, entryProductIds]) => {\r\n return getSimpleProducts(\r\n entryProductIds\r\n .map(cartLine => {\r\n if (cartLine.ProductId) {\r\n return new ProductInput(\r\n cartLine.ProductId,\r\n ctx.requestContext.apiSettings,\r\n undefined,\r\n entryWarehouseId,\r\n ctx.requestContext,\r\n cartLine.CatalogId\r\n );\r\n }\r\n return undefined;\r\n })\r\n .filter(Boolean),\r\n ctx\r\n ).then((products: SimpleProductExt[]) => {\r\n if (products) {\r\n resultProducts = products.reduce((accum, product) => {\r\n if (product) {\r\n accum.push(product);\r\n }\r\n return accum;\r\n }, resultProducts);\r\n }\r\n });\r\n })\r\n ).then(() => resultProducts);\r\n}\r\n\r\nasync function isOrderQuantityLimitsFeatureEnabled(ctx: IActionContext): Promise {\r\n const defaultOrderQuantityLimitsFeatureConfig = ctx.requestContext.app?.platform?.enableDefaultOrderQuantityLimits;\r\n if (defaultOrderQuantityLimitsFeatureConfig === 'none') {\r\n return Promise.resolve(false);\r\n }\r\n\r\n const featureStates = await getFeatureState(createGetFeatureStateInput(ctx), ctx);\r\n let isQuantityLimitsFeatureEnabledInHq = false;\r\n if (ArrayExtensions.hasElements(featureStates)) {\r\n isQuantityLimitsFeatureEnabledInHq =\r\n featureStates.find(\r\n (featureState: FeatureState) => featureState.Name === 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature'\r\n )?.IsEnabled || false;\r\n }\r\n\r\n if (!isQuantityLimitsFeatureEnabledInHq) {\r\n return false;\r\n }\r\n\r\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\r\n return Promise.resolve(true);\r\n }\r\n\r\n return getCustomer(new GetCustomerInput(ctx.requestContext.apiSettings), ctx)\r\n .then(customerInfo => {\r\n return (\r\n !!customerInfo &&\r\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\r\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b))\r\n );\r\n })\r\n .catch((error: Error) => {\r\n ctx.telemetry.warning(error.message);\r\n ctx.telemetry.debug('Unable to get customer info');\r\n return false;\r\n });\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport {\r\n CacheType,\r\n createObservableDataAction,\r\n getCatalogId,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICommerceApiSettings,\r\n ICreateActionContext,\r\n IDictionary,\r\n IGeneric,\r\n IRequestContext\r\n} from '@msdyn365-commerce/core';\r\nimport { getByIdsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { SimpleProduct } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nimport {\r\n ArrayExtensions,\r\n generateCacheKey,\r\n QueryResultSettingsProxy,generateProductImageUrl\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\n\r\n/**\r\n * Product Input.\r\n */\r\nexport class ProductInput implements IActionInput {\r\n public productId: number;\r\n\r\n public channelId: number;\r\n\r\n public warehouseId?: string;\r\n\r\n public catalogId?: number;\r\n\r\n private readonly apiSettings: ICommerceApiSettings;\r\n\r\n public constructor(\r\n productId: number | string,\r\n apiSettings: ICommerceApiSettings,\r\n channelId?: number,\r\n warehouseId?: string,\r\n requestContext?: IRequestContext,\r\n catalogId?: number\r\n ) {\r\n this.apiSettings = apiSettings;\r\n this.productId = +productId;\r\n this.channelId = channelId || apiSettings.channelId;\r\n this.warehouseId = warehouseId;\r\n this.catalogId = catalogId;\r\n\r\n if (requestContext && catalogId === undefined) {\r\n this.catalogId = getCatalogId(requestContext);\r\n }\r\n }\r\n\r\n public getCacheKey = () =>\r\n generateCacheKey(\r\n this.apiSettings,\r\n { key: 'ProductRecordId', value: this.productId },\r\n { key: 'ChannelId', value: this.channelId },\r\n { key: 'WarehouseId', value: this.warehouseId },\r\n { key: 'CatalogId', value: this.catalogId }\r\n );\r\n\r\n public getCacheObjectType = () => 'SimpleProduct';\r\n\r\n public dataCacheType = (): CacheType => 'none'; //'application';\r\n}\r\n\r\n/**\r\n * Creates the input required to make the retail api call.\r\n * @param inputData\r\n */\r\nexport const createSimpleProductsInput = (inputData: ICreateActionContext>): IActionInput[] => {\r\n let productIds = inputData.config && inputData.config.productIds;\r\n if (!productIds) {\r\n return [];\r\n }\r\n\r\n productIds = typeof productIds === 'string' ? productIds.split(',') : productIds;\r\n return !Array.isArray(productIds)\r\n ? []\r\n : productIds.map((productId: string) => {\r\n return new ProductInput(productId, inputData.requestContext.apiSettings, undefined, undefined, inputData.requestContext);\r\n });\r\n};\r\n\r\n/**\r\n * Calls the Retail API and returns the product based on the passed ProductInput.\r\n * @param inputs\r\n * @param ctx\r\n */\r\nexport async function getSimpleProductsAction(inputs: ProductInput[], ctx: IActionContext): Promise {\r\n if (!ArrayExtensions.hasElements(inputs)) {\r\n ctx.trace('[getSimpleProductsAction] Invalid or empty inputs passed.');\r\n return [];\r\n }\r\n\r\n const productIdMapping: IDictionary = {};\r\n\r\n for (let index = 0; index < inputs.length; ++index) {\r\n productIdMapping[inputs[index].productId] = index;\r\n }\r\n\r\n const queryResultSettings = QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx);\r\n queryResultSettings.Paging!.Top = 1000;\r\n\r\n const getProductPromises: Promise[] = [];\r\n const catalogIds = ArrayExtensions.unique(inputs.map(input => input.catalogId));\r\n for (const catalogId of catalogIds) {\r\n const productInputs = inputs.filter(input => input.catalogId === catalogId);\r\n getProductPromises.push(\r\n getByIdsAsync(\r\n { callerContext: ctx, queryResultSettings },\r\n inputs[0].channelId,\r\n productInputs.map(input => input.productId),\r\n inputs[0].warehouseId ?? null,\r\n catalogId ?? 0\r\n )\r\n .then(response => {\r\n return response;\r\n })\r\n .catch(error => {\r\n ctx.telemetry.debug(`[getSimpleProductsAction] Error in getting response from server. ${error}`);\r\n return {};\r\n })\r\n );\r\n }\r\n\r\n const products = ArrayExtensions.flatten(await Promise.all(getProductPromises));\r\n const mappedProducts = products\r\n .map(product => {\r\n try {\r\n const newImageUrl = generateProductImageUrl(product, ctx.requestContext.apiSettings);\r\n\r\n if (newImageUrl) {\r\n product.PrimaryImageUrl = newImageUrl;\r\n }\r\n\r\n return product;\r\n } catch {\r\n ctx.trace('[getSimpleProductsAction] Unable to update ImageURL for Product');\r\n return undefined;\r\n }\r\n })\r\n .reduce((memo: SimpleProduct[], product: SimpleProduct | undefined) => {\r\n if (!product) {\r\n return memo;\r\n }\r\n const index = productIdMapping[product.RecordId];\r\n memo[index] = product;\r\n return memo;\r\n }, []);\r\n\r\n // NOTE: This is not an ideal fix, but will resolve all current issues\r\n return inputs.map(input => {\r\n const foundProduct = mappedProducts.find(product => product && product.RecordId === input.productId);\r\n return foundProduct || {};\r\n });\r\n}\r\n\r\nexport default createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/retail-actions/get-simple-products',\r\n action: >getSimpleProductsAction,\r\n input: createSimpleProductsInput,\r\n isBatched: true\r\n});\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ChannelInventoryConfiguration } from '@msdyn365-commerce/retail-proxy';\r\nimport { getInventoryConfigurationAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\r\n\r\n/**\r\n * GetInventoryConfiguration Input Action\r\n */\r\nexport class GetInventoryConfigurationInput implements Msdyn365.IActionInput {\r\n constructor() {}\r\n\r\n public getCacheKey = () => '';\r\n public getCacheObjectType = () => 'ChannelInventoryConfiguration';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new GetInventoryConfigurationInput();\r\n};\r\n\r\nasync function action(input: GetInventoryConfigurationInput, ctx: Msdyn365.IActionContext): Promise {\r\n const channelInventoryConfiguration = getInventoryConfigurationAsync({ callerContext: ctx });\r\n return channelInventoryConfiguration;\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >>action,\r\n id: 'src/actions/get-inventory-configuration',\r\n input: createInput\r\n});\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\nimport { ProductList } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport {\n OrderTemplate,\n getOrderTemplates,\n GetOrderTemplatesInput,\n QueryResultSettingsProxy\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { getProductListCountsAsync } from './get-product-list-counts';\n\n/**\n * Input class for the GetOrderTemplates data action.\n */\nexport class GetFullOrderTemplatesInput implements IActionInput {\n public queryResultSettings: IQueryResultSettings;\n public getPrice?: boolean;\n public getRating?: boolean;\n\n constructor(queryResultSettings: IQueryResultSettings, getPrices = true, getRatings = true) {\n this.queryResultSettings = queryResultSettings;\n this.getPrice = getPrices;\n this.getRating = getRatings;\n }\n\n public getCacheKey = () => 'GetFullOrderTemplates';\n\n public getCacheObjectType = () => 'GetFullOrderTemplates';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the GetOrderTemplate method.\n * @param inputData The input data passed to the createInput method.\n */\nexport const createGetFullOrderTemplatesInput = (inputData: ICreateActionContext): GetFullOrderTemplatesInput => {\n const { requestContext } = inputData;\n if (!requestContext.user.isAuthenticated) {\n throw new Error('Unable to get full order templates. User is not authenticated.');\n }\n\n const queryResultSettings: IQueryResultSettings = QueryResultSettingsProxy.fromInputData(inputData).QueryResultSettings;\n queryResultSettings.count = true;\n\n return new GetFullOrderTemplatesInput(queryResultSettings);\n};\n\n/**\n * The action method for the GetFullOrderTemplates data action.\n * @param input The action input.\n * @param ctx The action context.\n */\nexport async function getFullOrderTemplatesAction(input: GetFullOrderTemplatesInput, ctx: IActionContext): Promise {\n if (!ctx.requestContext.user.isAuthenticated) {\n throw new Error('Unable to get full order templates. User is not authenticated.');\n }\n\n const orderTemplates: OrderTemplate[] = [];\n\n const inputParams = new GetOrderTemplatesInput();\n const productLists: ProductList[] = await getOrderTemplates(inputParams, ctx);\n\n if (!productLists || productLists.length === 0) {\n return orderTemplates;\n }\n\n /* const inputLinesRequests: AsyncResult[] = [];\n\n // Preparing requests for parallel queries.\n for (const list of productLists) {\n const inputLines = new GetPaginatedOrderTemplateLinesInput(\n list.Id,\n input.queryResultSettings,\n undefined,\n input.getPrice,\n input.getRating\n );\n\n inputLinesRequests.push(getPaginatedOrderTemplateLinesAction(inputLines, ctx));\n }\n\n const inputLinesResponses = await Promise.all(inputLinesRequests);\n\n for (const list of productLists) {\n const productLinesResponse = inputLinesResponses.filter(\n x => x.lines.length > 0 && x.lines[0].productListLine.ProductListId === list.Id\n );\n\n // Lines exist for this product\n if (productLinesResponse.length > 0) {\n orderTemplates.push(new OrderTemplate(list, productLinesResponse[0].lines, productLinesResponse[0].totalCount));\n } else {\n // Add empty order template\n orderTemplates.push(new OrderTemplate(list, [], 0));\n }\n } */\n\n const counts = await getProductListCountsAsync(ctx, productLists.map(x => x.Id));\n\n productLists.forEach(x => orderTemplates.push(new OrderTemplate(x, [], counts.find(count => count.ProductListId === x.Id)?.RowCount ?? 0)));\n\n ctx.trace(orderTemplates.length.toString());\n return orderTemplates;\n}\n\n/**\n * The GetFullOrderTemplates Data Action\n * Returns order templates.\n */\nexport const getFullOrderTemplatesActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/get-full-order-templates',\n action: >getFullOrderTemplatesAction,\n input: createGetFullOrderTemplatesInput\n});\n\nexport default getFullOrderTemplatesActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { IQueryResultSettings } from '@msdyn365-commerce/retail-proxy';\nimport { OrderTemplate, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\nimport getFullOrderTemplates, { GetFullOrderTemplatesInput } from './get-full-order-templates';\n\n/**\n * Input class for the GetOrderTemplates data action.\n */\nexport class GetOrderTemplatesPreviewInput implements IActionInput {\n public queryResultSettings: IQueryResultSettings;\n\n constructor(queryResultSettings: IQueryResultSettings) {\n this.queryResultSettings = queryResultSettings;\n this.queryResultSettings.count = true;\n this.queryResultSettings.Paging!.Top = 4;\n }\n\n public getCacheKey = () => 'GetOrderTemplatesPreview';\n\n public getCacheObjectType = () => 'GetOrderTemplatesPreview';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * CreateInput method for the GetOrderTemplate method.\n * @param inputData The input data passed to the createInput method.\n */\nexport const createGetOrderTemplatesPreviewInput = (inputData: ICreateActionContext): GetOrderTemplatesPreviewInput => {\n const queryResultSettings: IQueryResultSettings = QueryResultSettingsProxy.fromInputData(inputData).QueryResultSettings;\n return new GetOrderTemplatesPreviewInput(queryResultSettings);\n};\n\n/**\n * The action method for the GetOrderTemplatesPreview data action.\n * @param input The action input.\n * @param context The action context.\n */\nexport async function getOrderTemplatesPreview(input: GetOrderTemplatesPreviewInput, context: IActionContext): Promise {\n const response: OrderTemplate[] = [];\n if (!context.requestContext.user.isAuthenticated) {\n context.trace('Unable to get order templates preview. User is not authenticated.');\n return Promise.resolve(response);\n }\n return getFullOrderTemplates(new GetFullOrderTemplatesInput(input.queryResultSettings, false, false), context);\n}\n\n/**\n * The GetOrderTemplatesPreview Data Action\n * Returns order templates.\n */\nexport const getOrderTemplatesPreviewDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/order-templates/get-order-templates-preview',\n action: >getOrderTemplatesPreview,\n input: createGetOrderTemplatesPreviewInput\n});\n\nexport default getOrderTemplatesPreviewDataAction;\n","import { createObservableDataAction, IActionContext, IAction, ICreateActionContext, IGeneric, IAny, ICommerceApiSettings } from '@msdyn365-commerce/core';\r\nimport { CacheType, callActionOrExecute, Customer, Address, DataServiceQuery, IActionInput, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport class GetOrganizationCustomerAddressInput implements IActionInput {\r\n private readonly user: string | undefined;\r\n private readonly query: DataServiceQuery;\r\n\r\n constructor(apiSettings: ICommerceApiSettings, user: string) {\r\n this.user = user;\r\n\r\n this.query = new DataServiceQuery();\r\n }\r\n\r\n public getDataServiceRequest = (): IDataServiceRequest => {\r\n return this.query.createDataServiceRequestForOperation(\r\n 'GetOrganizationCustomer',\r\n false,\r\n Entities.CustomerClass,\r\n 'false',\r\n {\r\n bypassCache: 'get',\r\n returnEntity: 'Entities.CustomerClass'\r\n },\r\n {}\r\n );\r\n };\r\n\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => `OrganizationCustomerAddress-${this.user}`;\r\n public getCacheObjectType = () => 'OrganizationCustomer';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createGetAddressInput = (inputData: ICreateActionContext>): GetOrganizationCustomerAddressInput => {\r\n const { user } = inputData.requestContext;\r\n return new GetOrganizationCustomerAddressInput(inputData.requestContext.apiSettings, user.customerAccountNumber ?? \"\");\r\n};\r\n\r\nexport const getOrganizationCustomerAddressAction = async (input: GetOrganizationCustomerAddressInput, ctx: IActionContext): Promise => {\r\n if (!ctx.requestContext.user.isAuthenticated) {\r\n return [];\r\n }\r\n var customer = await callActionOrExecute(input.getDataServiceRequest(), ctx);\r\n return customer.Addresses || [];\r\n};\r\n\r\nexport const getOrganizationCustomerAddress = createObservableDataAction({\r\n id: '@msdyn365-commerce-modules/retail-actions/get-address',\r\n action: >getOrganizationCustomerAddressAction,\r\n input: <(args: ICreateActionContext) => IActionInput>createGetAddressInput\r\n});\r\n\r\nexport default getOrganizationCustomerAddress;\r\n","import { createObservableDataAction, IActionContext, IAction, ICreateActionContext, IGeneric, IAny, ICommerceApiSettings } from '@msdyn365-commerce/core';\r\nimport { CacheType, callActionOrExecute, Customer, DataServiceQuery, IActionInput, IDataServiceRequest } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\n\r\nexport class GetOrganizationCustomerInput implements IActionInput {\r\n private readonly user: string | undefined;\r\n private readonly query: DataServiceQuery;\r\n\r\n constructor(apiSettings: ICommerceApiSettings, user: string) {\r\n this.user = user;\r\n\r\n this.query = new DataServiceQuery();\r\n }\r\n\r\n public getDataServiceRequest = (): IDataServiceRequest => {\r\n return this.query.createDataServiceRequestForOperation(\r\n 'GetOrganizationCustomer',\r\n false,\r\n Entities.CustomerClass,\r\n 'false',\r\n {\r\n bypassCache: 'get',\r\n returnEntity: 'Entities.CustomerClass'\r\n },\r\n {}\r\n );\r\n };\r\n\r\n public shouldCacheOutput = (): boolean => false;\r\n\r\n public getCacheKey = () => `OrganizationCustomer-${this.user}`;\r\n public getCacheObjectType = () => 'OrganizationCustomer';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\nconst createInput = (inputData: ICreateActionContext>): GetOrganizationCustomerInput => {\r\n const { user } = inputData.requestContext;\r\n return new GetOrganizationCustomerInput(inputData.requestContext.apiSettings, user.customerAccountNumber ?? \"\");\r\n};\r\n\r\nexport const getOrganizationCustomerAction = async (input: GetOrganizationCustomerInput, ctx: IActionContext): Promise => {\r\n if (!ctx.requestContext.user.isAuthenticated) {\r\n return {};\r\n }\r\n var customer = await callActionOrExecute(input.getDataServiceRequest(), ctx);\r\n return customer;\r\n};\r\n\r\nexport const getOrganizationCustomer = createObservableDataAction({\r\n id: 'src/actions/get-organization-customer',\r\n action: >getOrganizationCustomerAction,\r\n input: createInput\r\n});\r\n\r\nexport default getOrganizationCustomer;\r\n","import { callActionOrExecute, DataServiceQuery, IContext, IDataServiceRequest, IQueryResultSettings } from \"@msdyn365-commerce/retail-proxy\";\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as Types from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nfunction getProductUnitOfMeasureOptionsQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\n\r\nexport function getProductUnitOfMeasureOptionsInput(\r\n queryResultSettings: IQueryResultSettings, productIds:\r\n number[]\r\n): IDataServiceRequest {\r\n const query = getProductUnitOfMeasureOptionsQuery().resultSettings(queryResultSettings);\r\n query.top(10000);\r\n return query.createDataServiceRequestForOperation(\r\n 'GetProductUnitOfMeasureOptions',\r\n true, Entities.UnitOfMeasureConversionClass,\r\n 'true',\r\n { bypassCache: 'none', returnEntity: 'Entities.UnitOfMeasureConversion' },\r\n {\r\n productIds: productIds\r\n }\r\n );\r\n}\r\n\r\nexport async function getProductUnitOfMeasureOptionsAsync(context: IContext, productIds: number[]): Promise {\r\n const request = getProductUnitOfMeasureOptionsInput(\r\n context.queryResultSettings || {}, productIds);\r\n const conversions = await callActionOrExecute(request, context.callerContext);\r\n return conversions;\r\n}","import { AsyncResult, Cart, DataServiceQuery, IContext, IDataServiceRequest, callActionOrExecute } from '@msdyn365-commerce/retail-proxy';\r\nimport * as Entities from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nfunction updateCalcCartLinesQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\n/**\r\n * An enumeration used to indicate which combination of calculations should be\r\n * performed when returning the cart.\r\n */\r\nexport enum CalculationModes {\r\n /**\r\n * No calculations are performed.\r\n * This value must be checked directly and not used with HasFlags method.\r\n */\r\n None = 0,\r\n /**\r\n * Prices are calculated.\r\n */\r\n Prices = 1,\r\n /**\r\n * Discounts are calculated.\r\n */\r\n Discounts = 2,\r\n /**\r\n * Charges are calculated.\r\n */\r\n Charges = 4,\r\n /**\r\n * Taxes are calculated.\r\n */\r\n Taxes = 8,\r\n /**\r\n * Totals are calculated and rounded.\r\n */\r\n Totals = 16, // 0x00000010\r\n /**\r\n * Deposit and prepayments are calculated.\r\n */\r\n Deposit = 32, // 0x00000020\r\n /**\r\n * Amount due (balance due) is calculated.\r\n */\r\n AmountDue = 64, // 0x00000040\r\n /**\r\n * All calculations are performed.\r\n */\r\n All = 127 // 0x0000007F\r\n}\r\n\r\nexport function updateCalcCartLinesInput(\r\n id: string,\r\n cartLines: Entities.CartLine[],\r\n calculationModes: CalculationModes,\r\n cartVersion: number | null\r\n): IDataServiceRequest {\r\n const query = updateCalcCartLinesQuery();\r\n return query.createDataServiceRequestForOperation(\r\n 'UpdateCalcCartLines',\r\n true,\r\n 'CartClass',\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'Cart' },\r\n {\r\n id: id,\r\n cartLines: cartLines,\r\n calculationModes: calculationModes,\r\n cartVersion: cartVersion\r\n }\r\n );\r\n}\r\n\r\nexport function updateCalcCartLinesAsync(\r\n context: IContext,\r\n id: string,\r\n cartLines: Entities.CartLine[],\r\n calculationModes: CalculationModes,\r\n cartVersion: number | null\r\n): AsyncResult {\r\n const request = updateCalcCartLinesInput(id, cartLines, calculationModes, cartVersion);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","import React from \"react\";\r\nimport Button from \"reactstrap/lib/Button\";\r\nimport classname from \"classnames\";\r\n\r\nexport enum ProductListViewMode {\r\n cardView = 0,\r\n listView = 1\r\n}\r\n\r\nexport interface IProductListViewModeProps {\r\n className: string;\r\n viewMode: ProductListViewMode | undefined;\r\n cardButtonTxt: string;\r\n listButtonTxt: string;\r\n setListViewMode: (() => void);\r\n setCardViewMode: (() => void);\r\n}\r\n\r\nexport const ProductListViewModeComponent: React.FC = (props: IProductListViewModeProps) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n CartLine,\r\n ChannelDeliveryOptionConfiguration,\r\n DeliveryOption,\r\n OrgUnitLocation,\r\n ProductDeliveryOptions,\r\n SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IPickUpInStoreViewProps {\r\n callbacks: {\r\n toggleBopis(isBopisSelected: boolean): void;\r\n };\r\n defaultComponent?: React.ReactNode;\r\n orgUnitName?: string;\r\n isBopisSelected: boolean;\r\n ContainerProps: INodeProps;\r\n deliveryOption?: string;\r\n}\r\n\r\nexport interface IPickUpInStoreProps {\r\n cartline: CartLine;\r\n product: SimpleProduct;\r\n shipitText: string;\r\n pickUpInStoreText: string;\r\n changeStoreText: string;\r\n cartState: ICartState | undefined;\r\n storeSelectorStateManager: IStoreSelectorStateManager | undefined;\r\n orgUnitLocations?: OrgUnitLocation[] | undefined;\r\n deliveryOptions?: ProductDeliveryOptions;\r\n pickupDeliveryModeCode?: string;\r\n storeSelectorModuleId?: string;\r\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\r\n retailMulitplePickupFeatureState?: boolean;\r\n locationChangedHandler(): void;\r\n}\r\n\r\nexport const PickUpInStore = (props: IPickUpInStoreProps): IPickUpInStoreViewProps | undefined => {\r\n const _onLocationChangedCallback = async (\r\n orgUnitLocation: OrgUnitLocation,\r\n cartState: ICartState | undefined,\r\n cartline: CartLine,\r\n deliveryMode?: string\r\n ) => {\r\n if (!cartState) {\r\n return Promise.resolve();\r\n }\r\n return cartState\r\n .updateCartLinePickupLocation({ cartLineId: cartline.LineId!, location: orgUnitLocation, deliveryMode })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n props.locationChangedHandler();\r\n }\r\n })\r\n .catch(error => {});\r\n };\r\n\r\n const _toggleBOPIS = (isBopisSelected: boolean) => {\r\n const { storeSelectorStateManager, product, cartline, cartState, storeSelectorModuleId } = props;\r\n\r\n if (isBopisSelected) {\r\n if (!storeSelectorStateManager) {\r\n return;\r\n }\r\n storeSelectorStateManager\r\n .openDialog({\r\n id: storeSelectorModuleId,\r\n product,\r\n alreadySelectedLocation: {\r\n OrgUnitNumber: cartline.FulfillmentStoreId\r\n },\r\n deliveryOptions: props.deliveryOptions,\r\n onLocationSelected: async (orgUnitLocation, deliveryMode: string | undefined) => {\r\n return _onLocationChangedCallback(orgUnitLocation, cartState, cartline, deliveryMode);\r\n }\r\n })\r\n .catch(error => {});\r\n } else {\r\n if (!cartState) {\r\n return;\r\n }\r\n cartline.DeliveryMode = '';\r\n cartline.FulfillmentStoreId = '';\r\n cartline.ShippingAddress = {};\r\n cartState\r\n .clearCartLinePickupLocation({ cartLineId: cartline.LineId! })\r\n .then(result => {\r\n if (result.status === 'SUCCESS') {\r\n props.locationChangedHandler();\r\n }\r\n })\r\n .catch(error => {});\r\n }\r\n };\r\n\r\n const _getOrgUnitName = (fulfillmentStoreId: string | undefined, orgUnitLocations: OrgUnitLocation[] | undefined) => {\r\n if (!orgUnitLocations || !fulfillmentStoreId || orgUnitLocations.length === 0) {\r\n return '';\r\n }\r\n\r\n const foundLocation = orgUnitLocations.find(orgUnitLocation => {\r\n return orgUnitLocation.OrgUnitNumber === fulfillmentStoreId;\r\n });\r\n\r\n if (foundLocation) {\r\n return foundLocation.OrgUnitName;\r\n }\r\n return fulfillmentStoreId;\r\n };\r\n\r\n const _renderShippingMethod = (\r\n cartLine: CartLine,\r\n shipItText: string,\r\n pickupInStoretext: string,\r\n changeStoreText: string,\r\n orgUnitLocations: OrgUnitLocation[] | undefined\r\n ): JSX.Element => {\r\n const orgUnitName = _getOrgUnitName(cartLine.FulfillmentStoreId, orgUnitLocations);\r\n const bopisSelected = !!cartLine.FulfillmentStoreId;\r\n\r\n const toggleBOPIS = (isBopisSelected: boolean) => {\r\n return () => {\r\n _toggleBOPIS(isBopisSelected);\r\n };\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {cartLine.FulfillmentStoreId ? (\r\n
\r\n {orgUnitName}\r\n \r\n
\r\n ) : null}\r\n \r\n );\r\n };\r\n\r\n const _getDeliveryOption = (pickupStore: IPickUpInStoreProps, deliveryOptions: ProductDeliveryOptions) => {\r\n const delivery = deliveryOptions?.DeliveryOptions?.find(option => option.Code === pickupStore.pickupDeliveryModeCode);\r\n return delivery?.Description;\r\n };\r\n\r\n /**\r\n * Method to check if we have atleast one common delivery code between product and channel.\r\n * @param productdeliveryOptions - Product DeliveryOption List.\r\n * @param storePickUpOptionList - Channel DeliveryOption List.\r\n * @returns Boolean flag.\r\n */\r\n const matchDeliveryOptions = (\r\n productdeliveryOptions: DeliveryOption[] | undefined,\r\n storePickUpOptionList: string[] | undefined\r\n ): boolean => {\r\n const deliveryOption: string[] = [];\r\n productdeliveryOptions?.map(delivery => {\r\n const pickup = storePickUpOptionList?.find(deliveryCode => deliveryCode === delivery.Code);\r\n if (pickup) {\r\n deliveryOption.push(pickup);\r\n }\r\n return deliveryOption;\r\n });\r\n\r\n return ArrayExtensions.hasElements(deliveryOption);\r\n };\r\n\r\n // If no delivery options present on the product, or none of the delivery options\r\n // match the PickupDeliveryModeCode, that means the item cannot be used for BOPIS\r\n if (!props.deliveryOptions || !props.deliveryOptions.DeliveryOptions) {\r\n return undefined;\r\n }\r\n\r\n if (props.retailMulitplePickupFeatureState && props.channelDeliveryOptionConfig) {\r\n if (!matchDeliveryOptions(props.deliveryOptions.DeliveryOptions, props.channelDeliveryOptionConfig?.PickupDeliveryModeCodes)) {\r\n return undefined;\r\n }\r\n } else if (\r\n !props.pickupDeliveryModeCode ||\r\n !props.deliveryOptions.DeliveryOptions.find(option => option.Code === props.pickupDeliveryModeCode)\r\n ) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n callbacks: {\r\n toggleBopis: _toggleBOPIS\r\n },\r\n defaultComponent: _renderShippingMethod(\r\n props.cartline,\r\n props.shipitText,\r\n props.pickUpInStoreText,\r\n props.changeStoreText,\r\n props.orgUnitLocations\r\n ),\r\n orgUnitName: _getOrgUnitName(props.cartline.FulfillmentStoreId, props.orgUnitLocations),\r\n isBopisSelected: !!props.cartline.FulfillmentStoreId,\r\n deliveryOption: _getDeliveryOption(props, props.deliveryOptions),\r\n ContainerProps: {\r\n className: 'msc-cart-line__bopis-container'\r\n }\r\n };\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n AddToOrderTemplateComponent,\r\n AddToWishlistComponent,\r\n IAddToOrderTemplateDialogResources,\r\n IDuplicateItemsWhenAddingToOrderTemplateDialogResources,\r\n IItemAddedToOrderTemplateDialogResources,\r\n IOrderTemplateNameDialogResources,\r\n IWishlistActionSuccessResult\r\n} from '@msdyn365-commerce/components';\r\nimport MsDyn365, {\r\n IAny,\r\n ICoreContext,\r\n IGeneric,\r\n IGridSettings,\r\n IImageSettings,\r\n ITelemetry,\r\n TelemetryEvent,\r\n isChannelTypeB2B\r\n} from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport {\r\n AsyncResult,\r\n CartLine,\r\n CartLineValidationResultsByLineId,\r\n ChannelDeliveryOptionConfiguration,\r\n CommerceList,\r\n Customer,\r\n OrgUnitLocation,\r\n ProductDeliveryOptions,\r\n SimpleProduct\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { ProductCatalog, ProductDimensionType, UnitOfMeasureConversion } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { IStoreSelectorStateManager } from '@msdyn365-commerce-modules/bopis-utilities';\r\nimport {\r\n ArrayExtensions,\r\n getInvoiceDetailsPageUrlSync,\r\n getProductUrlSync,\r\n IProductInventoryInformation,\r\n isCartLineItemPickUpType,\r\n ObjectExtensions,\r\n OrderTemplate,\r\n StringExtensions\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { getProductByProductId, getProductByProductIdAndWarehouse } from '@msdyn365-commerce-modules/cart';\r\nimport { IPickUpInStoreViewProps, PickUpInStore } from './dlvry-cart-pick-up-in-store';\r\nimport CartLineItemComponent, { ICartlineResourceString } from '../../../themes/dlvry-adventureworks/views/components/cartlineitem.component';\r\n\r\nexport interface ICartLineItemsProps {\r\n cartlines: CartLine[];\r\n cartlinesErrors: CartLineValidationResultsByLineId;\r\n cartState: ICartState | undefined;\r\n orgUnitLocations: OrgUnitLocation[] | undefined;\r\n resources: ICartlineResourceString;\r\n productAvailabilites: IProductInventoryInformation[] | undefined;\r\n products: SimpleProduct[] | undefined;\r\n productDeliveryOptions: ProductDeliveryOptions[] | undefined;\r\n pickupDeliveryModeCode?: string;\r\n catalogs?: ProductCatalog[];\r\n retailMulitplePickupFeatureState?: boolean;\r\n\r\n /* GridSettings for the product image in cartline */\r\n gridSettings: IGridSettings;\r\n\r\n /* ImageSettings for the product image in cartline */\r\n imageSettings: IImageSettings;\r\n id: string;\r\n typeName: string;\r\n context: ICoreContext>;\r\n telemetry: ITelemetry;\r\n removeButtonText: string;\r\n addToWishlistButtonText: string;\r\n removeFromWishlistButtonText: string;\r\n shipItText: string;\r\n pickitUpText: string;\r\n changeStoreText: string;\r\n outOfStockText: string;\r\n outOfRangeOneText: string;\r\n outOfRangeFormatText: string;\r\n storeSelectorStateManager: IStoreSelectorStateManager | undefined;\r\n isStockCheckEnabled: boolean;\r\n wishlists: CommerceList[] | undefined;\r\n defaultWishlistName: string;\r\n maxCartlineQuantity: number;\r\n includeErrors?: boolean;\r\n showShippingChargesForLineItems?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n isQuantityLimitsFeatureEnabled: boolean;\r\n hasInvoiceLine?: boolean;\r\n storeSelectorModuleId?: string;\r\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\r\n\r\n addToOrderTemplateDialogResources: IAddToOrderTemplateDialogResources;\r\n createOrderTemplateDialogResources: IOrderTemplateNameDialogResources;\r\n itemAddedToOrderTemplateDialogResources: IItemAddedToOrderTemplateDialogResources;\r\n duplicateItemsWhenAddingToOrderTemplateDialogResources: IDuplicateItemsWhenAddingToOrderTemplateDialogResources;\r\n\r\n addToOrderTemplateButtonText: string;\r\n addToOrderTemplateButtonTooltip: string;\r\n addToOrderTemplateMessage: string;\r\n addItemToOrderTemplateError: string;\r\n orderTemplates: OrderTemplate[] | undefined;\r\n customerInformation: Customer | undefined;\r\n shouldIgnoreWarehouse: boolean | undefined;\r\n productAvailability?: AsyncResult;\r\n productPickUpOptions?: ProductDeliveryOptions[] | undefined;\r\n isMultipleCatalogFeatureEnabledInHq: boolean;\r\n catalogId?: number;\r\n unitConversions?: UnitOfMeasureConversion[];\r\n\r\n removeItemClickHandler(cartlineToRemove: CartLine): void;\r\n moveToWishlistSuccessHandler(result: IWishlistActionSuccessResult, cartlineId: CartLine): void;\r\n updateCartLinesQuantitySuccessHandler(cartline: CartLine, quantity: number, lineIndex?: number): boolean;\r\n locationChangedHandler(): void;\r\n}\r\n\r\nexport interface ICartlinesViewProps {\r\n cartline: React.ReactNode;\r\n pickUpInStore?: IPickUpInStoreViewProps;\r\n remove: React.ReactNode;\r\n addToWishlist: React.ReactNode | undefined;\r\n addToOrderTemplate: React.ReactNode | undefined;\r\n\r\n error?: string;\r\n cartlineId?: string;\r\n hasError?: boolean;\r\n data?: {\r\n product?: SimpleProduct;\r\n cartline: CartLine;\r\n };\r\n}\r\n\r\nconst _getCartItemAvailableQuantity = (\r\n isStockCheckEnabled: boolean,\r\n productAvailability: IProductInventoryInformation | undefined\r\n): number => {\r\n if (\r\n !isStockCheckEnabled ||\r\n !productAvailability ||\r\n !productAvailability.ProductAvailableQuantity ||\r\n !productAvailability.IsProductAvailable ||\r\n !productAvailability.ProductAvailableQuantity.AvailableQuantity\r\n ) {\r\n return 0;\r\n }\r\n\r\n return productAvailability.ProductAvailableQuantity.AvailableQuantity;\r\n};\r\n\r\nconst _getCartItemMaxQuantity = (\r\n maxQuantityByConfig: number,\r\n isStockCheckEnabled: boolean,\r\n availableQuantityInStock: number,\r\n isQuantityLimitsFeatureEnabled: boolean,\r\n maxByQuantityLimitsFeature: number\r\n) => {\r\n if (isQuantityLimitsFeatureEnabled) {\r\n let maxByQuantityLimitsFeatureResult = maxByQuantityLimitsFeature;\r\n\r\n // If max by feature in not defined when feature is on then we suggest that there no max by feature\r\n // and consider available qty if stock check enabled and max from config in site settings.\r\n if (!maxByQuantityLimitsFeature) {\r\n maxByQuantityLimitsFeatureResult = maxQuantityByConfig || 10;\r\n }\r\n\r\n return isStockCheckEnabled\r\n ? maxByQuantityLimitsFeatureResult < availableQuantityInStock\r\n ? maxByQuantityLimitsFeatureResult\r\n : availableQuantityInStock\r\n : maxByQuantityLimitsFeatureResult;\r\n }\r\n if (isStockCheckEnabled) {\r\n return availableQuantityInStock < maxQuantityByConfig ? availableQuantityInStock : maxQuantityByConfig;\r\n }\r\n return maxQuantityByConfig;\r\n};\r\n\r\nconst _getErrorMessage = (\r\n availableQuantityInStock: number,\r\n currentQuantity: number,\r\n props: ICartLineItemsProps,\r\n shouldSkipStockCheck: boolean,\r\n cartLine: CartLine,\r\n lineId: string | undefined,\r\n foundProductAvailability?: IProductInventoryInformation\r\n): string | undefined => {\r\n const finalErrorMessages: string[] = [];\r\n\r\n const isLoadingDeliveryOptions = props.productAvailability?.status === 'LOADING';\r\n if (isLoadingDeliveryOptions) {\r\n return undefined;\r\n }\r\n\r\n // check availability passed as prop for each cartline\r\n if (props.productAvailabilites && ArrayExtensions.hasElements(props.productAvailabilites)) {\r\n if (foundProductAvailability === undefined) {\r\n finalErrorMessages.push(props.outOfStockText);\r\n return finalErrorMessages.toString();\r\n }\r\n }\r\n\r\n if (props.includeErrors && props.isStockCheckEnabled && !shouldSkipStockCheck) {\r\n if (availableQuantityInStock <= 0) {\r\n finalErrorMessages.push(props.outOfStockText);\r\n } else if (availableQuantityInStock < currentQuantity) {\r\n if (availableQuantityInStock === 1) {\r\n finalErrorMessages.push(props.outOfRangeOneText);\r\n } else {\r\n finalErrorMessages.push(props.outOfRangeFormatText.replace('{numLeft}', availableQuantityInStock.toString()));\r\n }\r\n }\r\n }\r\n\r\n // Server-side validation\r\n const checkForErrors = props.cartlinesErrors.ValidationResultsPairs;\r\n const errorsFoundByLineId = checkForErrors?.filter(index => index.LineId === lineId);\r\n if (errorsFoundByLineId !== undefined) {\r\n for (const i of errorsFoundByLineId) {\r\n if (ArrayExtensions.hasElements(i.ValidationFailures)) {\r\n i.ValidationFailures.forEach(validation => {\r\n if (validation.ErrorContext !== undefined) {\r\n finalErrorMessages.push(validation.ErrorContext);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (ArrayExtensions.hasElements(finalErrorMessages)) {\r\n return finalErrorMessages.join(' ');\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * On Remove Click functionality.\r\n * @param removeItemClickHandler -Remove item click function.\r\n * @param cartline -CartLine.\r\n * @returns Remove change value.\r\n */\r\nconst onRemoveClickFunction = (removeItemClickHandler: (cartlineToRemove: CartLine) => void, cartline: CartLine) => () => {\r\n removeItemClickHandler(cartline);\r\n};\r\n\r\n// eslint-disable-next-line complexity -- Auto-suppressed.\r\nconst _assembleNode = (\r\n cartline: CartLine,\r\n product: SimpleProduct | undefined,\r\n props: ICartLineItemsProps,\r\n index: number,\r\n foundProductAvailability?: IProductInventoryInformation,\r\n productPickUpOptions?: ProductDeliveryOptions\r\n): ICartlinesViewProps => {\r\n const {\r\n imageSettings,\r\n gridSettings,\r\n id,\r\n typeName,\r\n context,\r\n resources,\r\n removeButtonText,\r\n removeItemClickHandler,\r\n moveToWishlistSuccessHandler,\r\n addToOrderTemplateButtonText,\r\n addToOrderTemplateButtonTooltip,\r\n addToOrderTemplateDialogResources,\r\n createOrderTemplateDialogResources,\r\n itemAddedToOrderTemplateDialogResources,\r\n duplicateItemsWhenAddingToOrderTemplateDialogResources,\r\n addToWishlistButtonText,\r\n removeFromWishlistButtonText,\r\n orderTemplates,\r\n customerInformation,\r\n wishlists,\r\n defaultWishlistName,\r\n storeSelectorModuleId,\r\n isMultipleCatalogFeatureEnabledInHq\r\n } = props;\r\n\r\n const isAuthenticated = context.request.user.isAuthenticated;\r\n const nameOfWishlist = wishlists && wishlists.length > 0 && wishlists[0].Name ? wishlists[0].Name : defaultWishlistName;\r\n const availableQuantityInStock = _getCartItemAvailableQuantity(props.isStockCheckEnabled, foundProductAvailability);\r\n\r\n const maxQuantity =\r\n product &&\r\n _getCartItemMaxQuantity(\r\n props.maxCartlineQuantity,\r\n props.isStockCheckEnabled,\r\n availableQuantityInStock,\r\n props.isQuantityLimitsFeatureEnabled,\r\n product?.Behavior?.MaximumQuantity || 0\r\n );\r\n\r\n // Skip stock check if the cart line is a service item or an invoice line\r\n // const shouldSkipStockCheck = product?.ItemTypeValue === ReleasedProductType.Service || !!cartline.IsInvoiceLine;\r\n const shouldSkipStockCheck = true;\r\n\r\n const errorMessage = ObjectExtensions.isNullOrUndefined(maxQuantity)\r\n ? undefined\r\n : _getErrorMessage(\r\n availableQuantityInStock,\r\n cartline.Quantity!,\r\n props,\r\n shouldSkipStockCheck,\r\n cartline,\r\n cartline.LineId,\r\n foundProductAvailability\r\n );\r\n\r\n\r\n const onRemoveClickHandler = onRemoveClickFunction(removeItemClickHandler, cartline);\r\n\r\n const payload = getPayloadObject(TelemetryEvent.RemoveFromCart, props.telemetryContent!, removeButtonText, '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payload);\r\n\r\n const inventoryLbl = foundProductAvailability?.StockLevelLabel;\r\n const inventoryCode = foundProductAvailability\r\n ? `ms-cart-line__inventory-code-${foundProductAvailability.StockLevelCode?.toLowerCase()}`\r\n : undefined;\r\n const productDimension = 4;\r\n const customPriceDimensionType = productDimension as ProductDimensionType.Style;\r\n const isCustomPriceSelected =\r\n product?.Dimensions?.find(dimension => dimension.DimensionTypeValue === customPriceDimensionType)?.DimensionValue?.Value ===\r\n 'Custom';\r\n\r\n let productUrl: string | undefined;\r\n if (product) {\r\n productUrl = getProductUrlSync(product, props.context.actionContext, undefined);\r\n\r\n if (MsDyn365.isBrowser && isChannelTypeB2B(props.context.actionContext.requestContext)) {\r\n const fullUrl = new URL(productUrl, window.location.href);\r\n fullUrl.searchParams.set('catalogid', `${cartline.CatalogId ?? 0}`);\r\n productUrl = fullUrl.href;\r\n }\r\n } else {\r\n productUrl = getInvoiceDetailsPageUrlSync(cartline.Description || '', props.context.actionContext);\r\n }\r\n\r\n return {\r\n data: {\r\n product,\r\n cartline\r\n },\r\n cartlineId: cartline.LineId,\r\n error: errorMessage,\r\n hasError:\r\n (!shouldSkipStockCheck && props.isStockCheckEnabled ? cartline.Quantity! > (maxQuantity ?? 0) : false) ||\r\n (!ObjectExtensions.isNullOrUndefined(errorMessage) && !StringExtensions.isNullOrEmpty(errorMessage)),\r\n cartline: (\r\n x.ProductRecordId === cartline.ProductId)\r\n }}\r\n currentQuantity={cartline.Quantity}\r\n maxQuantity={maxQuantity}\r\n isOutOfStock={!shouldSkipStockCheck && props.isStockCheckEnabled ? availableQuantityInStock <= 0 : false}\r\n gridSettings={gridSettings}\r\n imageSettings={imageSettings}\r\n id={id}\r\n typeName={typeName}\r\n productUrl={productUrl}\r\n context={context}\r\n resources={resources}\r\n key={`${index}-${productUrl}`}\r\n lineIndex={index}\r\n isQuantityEditable={!ObjectExtensions.isNullOrUndefined(product)}\r\n quantityOnChange={props.updateCartLinesQuantitySuccessHandler}\r\n primaryImageUrl={product?.PrimaryImageUrl}\r\n errorMessage={errorMessage}\r\n inventoryInformationLabel={inventoryLbl}\r\n inventoryLabelClassName={inventoryCode}\r\n isCartStateReady={props.cartState?.status === 'READY'}\r\n showShippingChargesForLineItems={props.showShippingChargesForLineItems}\r\n telemetryContent={props.telemetryContent}\r\n channelDeliveryOptionConfig={props.channelDeliveryOptionConfig}\r\n priceCurrency={context.request.channel?.Currency}\r\n />\r\n ),\r\n pickUpInStore: product\r\n ? PickUpInStore({\r\n storeSelectorModuleId,\r\n cartState: props.cartState,\r\n cartline,\r\n product,\r\n shipitText: props.shipItText,\r\n pickUpInStoreText: props.pickitUpText,\r\n changeStoreText: props.changeStoreText,\r\n storeSelectorStateManager: props.storeSelectorStateManager,\r\n orgUnitLocations: props.orgUnitLocations,\r\n deliveryOptions: productPickUpOptions,\r\n pickupDeliveryModeCode:\r\n cartline.DeliveryMode !== (undefined || '') ? cartline.DeliveryMode : props.pickupDeliveryModeCode,\r\n retailMulitplePickupFeatureState: props.retailMulitplePickupFeatureState,\r\n channelDeliveryOptionConfig: props.channelDeliveryOptionConfig,\r\n locationChangedHandler: props.locationChangedHandler\r\n })\r\n : undefined,\r\n remove: (\r\n \r\n ),\r\n addToWishlist:\r\n isAuthenticated && product && !isCustomPriceSelected ? (\r\n \r\n ) : (\r\n undefined\r\n ),\r\n addToOrderTemplate:\r\n isAuthenticated && orderTemplates && product ? (\r\n \r\n ) : (\r\n undefined\r\n )\r\n };\r\n};\r\n\r\nexport const assembleCartlines = (\r\n cartlines: CartLine[],\r\n products: SimpleProduct[] | undefined,\r\n props: ICartLineItemsProps\r\n): ICartlinesViewProps[] | null => {\r\n const reactNodes: ICartlinesViewProps[] = [];\r\n\r\n cartlines.map((cartline, index) => {\r\n let product;\r\n if (props.isQuantityLimitsFeatureEnabled) {\r\n // When feature is enabled the same products could have different quantity limits in Behavior so we need\r\n // to check productId and WarehouseId for identification.\r\n product = getProductByProductIdAndWarehouse(cartline.ProductId, products, cartline.WarehouseId, props.cartState);\r\n } else {\r\n product = getProductByProductId(cartline.ProductId, products);\r\n }\r\n let foundProductAvailability;\r\n\r\n\r\n // check if cartlineitem is pickup item\r\n const isPickUpItem = isCartLineItemPickUpType(\r\n cartline,\r\n props.retailMulitplePickupFeatureState,\r\n props.channelDeliveryOptionConfig,\r\n props.pickupDeliveryModeCode\r\n );\r\n\r\n if (props.productAvailabilites && ArrayExtensions.hasElements(props.productAvailabilites)) {\r\n foundProductAvailability = props.productAvailabilites.find(productAvailability => {\r\n if (!props.shouldIgnoreWarehouse && isPickUpItem) {\r\n // check warehouse only if siteBuilder setting is not \"Based on aggregate for shipping and pickup warehouses\" and cartlineitem is pickupitem\r\n return (\r\n productAvailability.ProductAvailableQuantity?.ProductId === cartline.ProductId &&\r\n productAvailability.InventLocationId?.toUpperCase() === cartline.WarehouseId?.toUpperCase()\r\n );\r\n }\r\n return productAvailability.ProductAvailableQuantity.ProductId === cartline.ProductId;\r\n });\r\n }\r\n\r\n let productPickUpOptions;\r\n if (props.productPickUpOptions !== undefined && ArrayExtensions.hasElements(props.productPickUpOptions)) {\r\n productPickUpOptions = props.productPickUpOptions.find(deliveryOption => {\r\n return deliveryOption && deliveryOption.ProductId === cartline.ProductId;\r\n });\r\n }\r\n reactNodes.push(_assembleNode(cartline, product, props, index, foundProductAvailability, productPickUpOptions));\r\n });\r\n\r\n return reactNodes;\r\n};\r\n\r\n/**\r\n * CartLineItems component.\r\n * @param props\r\n */\r\nexport const CartLineItems = (props: ICartLineItemsProps) => {\r\n const { products, cartlines } = props;\r\n return assembleCartlines(cartlines, products, props);\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { CartLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport groupBy from 'lodash/groupBy';\r\n\r\nimport { assembleCartlines, ICartLineItemsProps, ICartlinesViewProps } from './dlvry-cart-line-items';\r\n\r\nconst _assembleGroupCartlines = (\r\n cartlines: CartLine[],\r\n products: SimpleProduct[] | undefined,\r\n props: ICartLineItemsProps\r\n): ICartlinesViewProps[][] | null => {\r\n const reactNodes: ICartlinesViewProps[][] = [];\r\n if (!products || products.length === 0) {\r\n props.context.telemetry.error('Products content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n const getGroupByStorePickup = (items: CartLine[]) => groupBy(items, item => item.FulfillmentStoreId);\r\n const getGroupByDelivery = (items: CartLine[]) => groupBy(items, item => item.DeliveryMode);\r\n const groupDelivery = getGroupByDelivery(cartlines);\r\n const cartLinesGroup: CartLine[] = [];\r\n\r\n // 1) Group by store and pick up mode\r\n Object.entries(groupDelivery).forEach(([deliveryType, groupByDeliveryType]) => {\r\n // @ts-expect-error\r\n groupDelivery[deliveryType] = getGroupByStorePickup(groupByDeliveryType);\r\n cartLinesGroup.push(getGroupByStorePickup(groupByDeliveryType));\r\n });\r\n\r\n // 2) Create cartlines group\r\n Object.keys(cartLinesGroup).forEach(key => {\r\n const cartLines = cartLinesGroup[key];\r\n Object.keys(cartLines).forEach(index => {\r\n const cartLine = cartLines[index];\r\n const carLineViewProps = assembleCartlines(cartLine, products, props);\r\n if (carLineViewProps !== null) {\r\n reactNodes.push(carLineViewProps);\r\n }\r\n });\r\n });\r\n\r\n return reactNodes;\r\n};\r\n\r\nconst _assembleGroupInvoiceCartlines = (\r\n cartLines: CartLine[],\r\n products: SimpleProduct[] | undefined,\r\n props: ICartLineItemsProps\r\n): ICartlinesViewProps[][] | null => {\r\n const reactNodes: ICartlinesViewProps[][] = [];\r\n if (cartLines && cartLines.length > 0) {\r\n // Create invoice cartLines group\r\n const carLineViewProps = assembleCartlines(cartLines, products, props);\r\n if (carLineViewProps !== null) {\r\n reactNodes.push(carLineViewProps);\r\n }\r\n }\r\n return reactNodes;\r\n};\r\n\r\n/**\r\n * CartLine Group component.\r\n * @param props\r\n */\r\nexport const CartLineGroupItems = (props: ICartLineItemsProps) => {\r\n const { products, cartlines, hasInvoiceLine } = props;\r\n return hasInvoiceLine\r\n ? _assembleGroupInvoiceCartlines(cartlines, products, props)\r\n : _assembleGroupCartlines(cartlines, products, props);\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IActionContext } from '@msdyn365-commerce/core';\r\nimport { CartPromotionLine } from '@msdyn365-commerce/retail-proxy';\r\nimport { getPromotionOptionsForCartLineItems, PromotionOptionsForCartLineItems } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\n/**\r\n * IPromotionData entity interface.\r\n */\r\nexport interface IPromotionData {\r\n promotionOptions?: CartPromotionLine[];\r\n}\r\n\r\n/**\r\n * Calls the Retail API and returns a promotion data.\r\n * @param ctx\r\n */\r\nexport async function getPromotionData(ctx: IActionContext): Promise {\r\n const promotionData: IPromotionData = {};\r\n\r\n await getPromotionOptionsForCartLineItems(new PromotionOptionsForCartLineItems(ctx.requestContext.apiSettings), ctx)\r\n .then(promotionOptions => {\r\n if (promotionOptions) {\r\n promotionData.promotionOptions = promotionOptions;\r\n }\r\n })\r\n .catch(error => {\r\n ctx.telemetry.exception(error);\r\n return {};\r\n });\r\n\r\n return promotionData;\r\n}\r\n","import React from 'react';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader, Waiting } from '@msdyn365-commerce-modules/utilities';\r\nimport { IDlvryCartProps, IDlvryCartResources } from '../dlvry-cart.props.autogenerated';\r\nimport { IDlvryCartData } from '../dlvry-cart.data';\r\nimport { getActivePricesAsync, getByLookupClausesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport { ProductLookupClause, ProductPrice, ProjectionDomain, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { formatString } from '../../../shared-utils/string-utils';\r\n\r\ninterface IImportModalProps extends IDlvryCartProps {\r\n onToggle: () => void;\r\n}\r\n\r\ninterface IAlertProps {\r\n additionalClassNames?: string;\r\n baseClassName: string;\r\n message: string;\r\n}\r\n\r\ninterface ISummaryTableProps {\r\n context: Msdyn365.ICoreContext;\r\n resources: IDlvryCartResources;\r\n baseClassName: string;\r\n importLines: IImportLine[];\r\n products: SimpleProduct[];\r\n productPrices: ProductPrice[];\r\n errorLines?: IErrorLine[];\r\n}\r\n\r\ninterface IImportLine {\r\n sku: string;\r\n quantity: number;\r\n breakoff: boolean;\r\n}\r\n\r\ninterface IErrorLine {\r\n recordId: number | undefined;\r\n message: string;\r\n}\r\n\r\nfunction getImportLines(input: string, resources: IDlvryCartResources): IImportLine[] {\r\n const lines = input.split('\\n');\r\n if (!lines || lines.length === 0) {\r\n return [];\r\n }\r\n\r\n let lineIndex = 1;\r\n const importLines: IImportLine[] = [];\r\n for (const line of lines) {\r\n if (!line || line.startsWith('!') || line.startsWith('#')) {\r\n continue;\r\n }\r\n\r\n const values = line.split(/ {2,}|\\t+/);\r\n\r\n // Minimum required is sku and quantity\r\n if (values.length < 2) {\r\n throw new Error(formatString(resources.importInvalidNumberOfValuesError, lineIndex));\r\n }\r\n\r\n const indices = {\r\n sku: 0,\r\n quantity: 1,\r\n breakoff: 2\r\n };\r\n\r\n const sku = values[indices.sku];\r\n const quantity = parseFloat(values[indices.quantity].replace(',', '.'));\r\n // Defaults to no if there are no third value\r\n const breakoffRaw = values[indices.breakoff]?.toLowerCase();\r\n\r\n // TODO: Determine if this error is useful or can just assume no breakoff instead\r\n /* if (breakoffRaw !== 'ja' && breakoffRaw !== 'nei' && breakoffRaw !== 'yes' && breakoffRaw !== 'no') {\r\n throw new Error(formatString(resources.importInvalidAnbrekkError, values[indices.breakoff], values[indices.sku]));\r\n } */\r\n\r\n const breakoff = breakoffRaw?.toLowerCase() === 'ja' || breakoffRaw?.toLowerCase() === 'yes';\r\n\r\n if (isNaN(quantity)) {\r\n throw new Error(formatString(resources.importInvalidQuantityForSKUError, values[indices.quantity], values[indices.sku]));\r\n }\r\n\r\n if (!quantity) {\r\n continue;\r\n }\r\n\r\n if (importLines.find(x => x.sku === sku)) {\r\n importLines.find(x => x.sku === sku)!.quantity += quantity;\r\n } else {\r\n importLines.push({ sku, quantity, breakoff });\r\n }\r\n\r\n lineIndex++;\r\n }\r\n\r\n return importLines;\r\n}\r\n\r\nconst Alert = (props: IAlertProps) => {\r\n const { additionalClassNames, baseClassName, message } = props;\r\n return (\r\n

\r\n {message}\r\n

\r\n );\r\n};\r\n\r\nconst SummaryTable = (props: ISummaryTableProps) => {\r\n const { context, resources, baseClassName, importLines, products, productPrices, errorLines } = props;\r\n const formatOptions: Msdyn365.INumberFormatOptions = {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n };\r\n const total = context.cultureFormatter.formatNumber(products.reduce((sum, product) => {\r\n const quantity = importLines.find(x => x.sku === product.ItemId)?.quantity;\r\n const price = productPrices.find(p => p.ProductId === product.RecordId)?.CustomerContextualPrice;\r\n\r\n return sum + ((quantity || 0) * (price || 0));\r\n }, 0), formatOptions);\r\n\r\n const paired = importLines.map((line) => {\r\n return {\r\n importLine: line,\r\n product: products.find(x => x.ItemId === line.sku)\r\n };\r\n });\r\n\r\n const firstInput = paired.findIndex(x => !x.product);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {!errorLines && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {errorLines && }\r\n \r\n \r\n \r\n {paired/* .sort((a, b) => (a.product?.Name || '').localeCompare((b.product?.Name || ''))) */.map((pair, index) => {\r\n const { cultureFormatter } = context;\r\n const { importLine, product } = pair;\r\n\r\n if (!product) {\r\n if (errorLines) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const price = productPrices.find(p => p.ProductId === product.RecordId)?.CustomerContextualPrice;\r\n const total = price && importLine ? price * importLine.quantity : undefined;\r\n\r\n return (\r\n \r\n \r\n \r\n {!errorLines && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {errorLines && (\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n {!errorLines && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
{resources.importProductNumberHeader}{resources.importNameHeader}{resources.importQuantityHeader}{resources.importAnbrekkHeader}{resources.importPriceHeader}{resources.importTotalHeader}{resources.importErrorHeader}
\r\n {\r\n const input = e.target as HTMLInputElement;\r\n\r\n // Don't use set state here, as it will cause tabbing to not work\r\n importLines.find(x => x.sku === importLine.sku)!.sku = input.value;\r\n }}\r\n defaultValue={importLine.sku} />\r\n {resources.importInvalidProductsError}{importLine.quantity}{resources.no}
{product.ItemId}{product.Name}{importLine?.quantity}{resources.no}{price ? cultureFormatter.formatNumber(price, formatOptions) : undefined}{total ? cultureFormatter.formatNumber(total, formatOptions) : undefined}\r\n {errorLines.find(x => x.recordId === product.RecordId)?.message}\r\n
{resources.importTotalHeader}:{total}
\r\n );\r\n};\r\n\r\nconst ImportModal = (props: IImportModalProps) => {\r\n const { onToggle } = props;\r\n\r\n const [disableButtons, setDisableButtons] = React.useState(false);\r\n const [progressMessage, setProgressMessage] = React.useState(undefined);\r\n const [importLines, setImportLines] = React.useState([]);\r\n const [products, setProducts] = React.useState([]);\r\n const [productPrices, setProductPrices] = React.useState([]);\r\n const [viewType, setViewType] = React.useState<'input' | 'summary' | 'confirmation' | 'error'>('input');\r\n const [errorMessage, setErrorMessage] = React.useState(undefined);\r\n const [errorLines, setErrorLines] = React.useState([]);\r\n const inputRef = React.useRef(null);\r\n\r\n const baseClassName = 'dlvry-cart-import-modal';\r\n const heading = props.config.importModalHeading;\r\n const warnings = (importLines.length - products.length);\r\n\r\n const onValidate = async () => {\r\n if (!inputRef.current?.value) {\r\n return;\r\n }\r\n\r\n const { context } = props;\r\n\r\n try {\r\n setDisableButtons(true);\r\n setProgressMessage(props.resources.importProgressRetrievingProducts);\r\n\r\n const catalogId = context.request.apiSettings.catalogId ?? Msdyn365.getCatalogId(context.actionContext.requestContext);\r\n const importLines = getImportLines(inputRef.current?.value, props.resources);\r\n const simpleProducts = await getByLookupClausesAsync(\r\n { callerContext: props.context.actionContext, queryResultSettings: { Paging: { Top: 1000 } } },\r\n props.context.request.apiSettings.channelId,\r\n importLines.map(\r\n line =>\r\n ({\r\n ItemId: line.sku\r\n } as ProductLookupClause)\r\n ),\r\n catalogId\r\n );\r\n\r\n setImportLines(importLines);\r\n setProducts(simpleProducts);\r\n setProgressMessage(props.resources.importProgressRetrievingPrices);\r\n\r\n // Now we need to get active prices\r\n const projectDomain: ProjectionDomain = { ChannelId: +context.request.apiSettings.channelId, CatalogId: catalogId };\r\n const productPrices: ProductPrice[] = [];\r\n const MaxPricesPer: number = props.config.importModalPricesPer || 30;\r\n let count = 0;\r\n while (count < simpleProducts.length) {\r\n setProgressMessage(\r\n formatString(props.resources.importProgressRetrievingPricesSection,\r\n Math.min(count + MaxPricesPer, simpleProducts.length),\r\n simpleProducts.length)\r\n );\r\n const prices: ProductPrice[] = await getActivePricesAsync(\r\n { callerContext: props.context.actionContext, queryResultSettings: { Paging: { Top: MaxPricesPer } } },\r\n projectDomain,\r\n simpleProducts.slice(count, count + MaxPricesPer).map(p => p.RecordId),\r\n new Date(),\r\n null,\r\n undefined,\r\n true\r\n );\r\n productPrices.push(...prices);\r\n count += MaxPricesPer;\r\n }\r\n\r\n setProductPrices(productPrices);\r\n setViewType('summary');\r\n } catch (error) {\r\n setViewType('error');\r\n if (((error as unknown) as any).message) {\r\n setErrorMessage(((error as unknown) as any).message);\r\n } else {\r\n setErrorMessage('Unknown error.');\r\n }\r\n console.error(error);\r\n } finally {\r\n setProgressMessage(undefined);\r\n setDisableButtons(false);\r\n }\r\n };\r\n const onReValidate = async () => {\r\n const mergedImportLines = [...importLines].reduce((lines, line) => {\r\n const existingLine = lines.find(x => x.sku === line.sku);\r\n if (existingLine) {\r\n existingLine.quantity += line.quantity;\r\n } else {\r\n lines.push(line);\r\n }\r\n\r\n return lines;\r\n }, []);\r\n setImportLines(mergedImportLines);\r\n\r\n const missing = mergedImportLines.filter(x => !products.find(p => p.ItemId === x.sku));\r\n const { context } = props;\r\n\r\n try {\r\n setDisableButtons(true);\r\n setProgressMessage(props.resources.importProgressRetrievingProducts);\r\n\r\n const catalogId = context.request.apiSettings.catalogId ?? Msdyn365.getCatalogId(context.actionContext.requestContext);\r\n const simpleProducts = await getByLookupClausesAsync(\r\n { callerContext: props.context.actionContext, queryResultSettings: { Paging: { Top: 1000 } } },\r\n props.context.request.apiSettings.channelId,\r\n missing.map(\r\n line =>\r\n ({\r\n ItemId: line.sku\r\n } as ProductLookupClause)\r\n ),\r\n catalogId\r\n );\r\n\r\n const newProducts = [...products, ...simpleProducts];\r\n setProducts(newProducts);\r\n setProgressMessage(props.resources.importProgressRetrievingPrices);\r\n\r\n // Now we need to get active prices\r\n const projectDomain: ProjectionDomain = { ChannelId: +context.request.apiSettings.channelId, CatalogId: catalogId };\r\n const resultProductPrices: ProductPrice[] = [];\r\n const MaxPricesPer: number = props.config.importModalPricesPer || 30;\r\n let count = 0;\r\n while (count < simpleProducts.length) {\r\n setProgressMessage(\r\n formatString(props.resources.importProgressRetrievingPricesSection,\r\n Math.min(count + MaxPricesPer, simpleProducts.length),\r\n simpleProducts.length)\r\n );\r\n const prices: ProductPrice[] = await getActivePricesAsync(\r\n { callerContext: props.context.actionContext, queryResultSettings: { Paging: { Top: MaxPricesPer } } },\r\n projectDomain,\r\n simpleProducts.slice(count, count + MaxPricesPer).map(p => p.RecordId),\r\n new Date(),\r\n null,\r\n undefined,\r\n true\r\n );\r\n resultProductPrices.push(...prices);\r\n count += MaxPricesPer;\r\n }\r\n\r\n const newProductPrices = [...productPrices, ...resultProductPrices];\r\n setProductPrices(newProductPrices);\r\n setViewType('summary');\r\n } catch (error) {\r\n setViewType('error');\r\n if (((error as unknown) as any).message) {\r\n setErrorMessage(((error as unknown) as any).message);\r\n } else {\r\n setErrorMessage('Unknown error.');\r\n }\r\n console.error(error);\r\n } finally {\r\n setProgressMessage(undefined);\r\n setDisableButtons(false);\r\n }\r\n };\r\n const onImport = async () => {\r\n setDisableButtons(true);\r\n setProgressMessage(props.resources.importProgressAddingToCartText);\r\n\r\n const buyInput = products.map((product) => ({\r\n product,\r\n count: importLines.find(x => x.sku === product.ItemId)!.quantity,\r\n customPrice: productPrices.find(x => x.ProductId === product.RecordId)?.CustomerContextualPrice\r\n }));\r\n const result = await props.data.cart.result?.addProductsToCart(buyInput);\r\n\r\n if (result?.status === 'SUCCESS') {\r\n setViewType('confirmation');\r\n } else if (result?.status === 'FAILED') {\r\n setErrorMessage(result.errorDetails?.LocalizedMessage);\r\n\r\n if (result.validationResults) {\r\n const errorLines: IErrorLine[] = [];\r\n\r\n for (const error of result.validationResults) {\r\n // Try to find a record id\r\n const recordId = error.ErrorContext?.match(/ProductId:\\s(.*?)\\./);\r\n\r\n // If not found just skip\r\n if (!recordId || recordId.length < 2) {\r\n errorLines.push({\r\n recordId: undefined,\r\n message: error.LocalizedMessage || ''\r\n });\r\n } else {\r\n errorLines.push({\r\n recordId: Number(recordId[1]),\r\n message: error.LocalizedMessage || ''\r\n });\r\n }\r\n }\r\n\r\n setErrorLines(errorLines);\r\n }\r\n\r\n setViewType('error');\r\n }\r\n\r\n setDisableButtons(false);\r\n setProgressMessage(undefined);\r\n };\r\n const onCancel = () => {\r\n onToggle();\r\n };\r\n\r\n const countDuplicates = (strings: string[]): Map => {\r\n const stringCountMap = new Map();\r\n\r\n for (const string of strings) {\r\n const count = stringCountMap.get(string) || 0;\r\n stringCountMap.set(string, count + 1);\r\n }\r\n\r\n return stringCountMap;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {viewType === 'input' && (\r\n <>\r\n
\r\n