private bool SetItemDimensions(SaleLineItem saleLineItem) { LSRetailPosis.POSProcesses.SetDimensions dimensions = new LSRetailPosis.POSProcesses.SetDimensions(); dimensions.OperationID = PosisOperations.SetDimensions; dimensions.POSTransaction = this.posTransaction; dimensions.SaleLineItem = saleLineItem; dimensions.RunOperation(); return(dimensions.ValidDimensions); }
private bool GetItemInfo(string barcode) { System.Diagnostics.Debug.Assert(barcode != null, "barcode should not be null"); if (string.IsNullOrEmpty(barcode)) { return(false); } saleLineItem = (SaleLineItem)Dialog.InternalApplication.BusinessLogic.Utility.CreateSaleLineItem( ApplicationSettings.Terminal.StoreCurrency, Dialog.InternalApplication.Services.Rounding, posTransaction); IScanInfo scanInfo = Dialog.InternalApplication.BusinessLogic.Utility.CreateScanInfo(); scanInfo.ScanDataLabel = barcode; scanInfo.EntryType = BarcodeEntryType.ManuallyEntered; IBarcodeInfo barcodeInfo = Dialog.InternalApplication.BusinessLogic.Utility.CreateBarcodeInfo(); barcodeInfo = Dialog.InternalApplication.Services.Barcode.ProcessBarcode(scanInfo); if ((barcodeInfo.InternalType == BarcodeInternalType.Item) && (barcodeInfo.ItemId != null)) { // The entry was a barcode which was found and now we have the item id... saleLineItem.ItemId = barcodeInfo.ItemId; saleLineItem.BarcodeId = barcodeInfo.BarcodeId; saleLineItem.SalesOrderUnitOfMeasure = barcodeInfo.UnitId; if (barcodeInfo.BarcodeQuantity > 0) { saleLineItem.Quantity = barcodeInfo.BarcodeQuantity; } if (barcodeInfo.BarcodePrice > 0) { saleLineItem.Price = barcodeInfo.BarcodePrice; } saleLineItem.EntryType = barcodeInfo.EntryType; saleLineItem.Dimension.ColorId = barcodeInfo.InventColorId; saleLineItem.Dimension.SizeId = barcodeInfo.InventSizeId; saleLineItem.Dimension.StyleId = barcodeInfo.InventStyleId; saleLineItem.Dimension.ConfigId = barcodeInfo.ConfigId; saleLineItem.Dimension.VariantId = barcodeInfo.VariantId; } else { // It could be an ItemId saleLineItem.ItemId = barcodeInfo.BarcodeId; saleLineItem.EntryType = barcodeInfo.EntryType; } Dialog.InternalApplication.Services.Item.ProcessItem(saleLineItem, true); if (saleLineItem.Found == false) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSMessageDialog(2611); // Item not found. return(false); } //Color,Size,Style,config if (saleLineItem.Dimension.VariantId == null) { saleLineItem.Dimension.VariantId = string.Empty; } if (saleLineItem.Dimension.EnterDimensions) { LSRetailPosis.POSProcesses.SetDimensions dimensions = new LSRetailPosis.POSProcesses.SetDimensions(); dimensions.OperationID = PosisOperations.SetDimensions; dimensions.POSTransaction = (PosTransaction)posTransaction; dimensions.SaleLineItem = saleLineItem; dimensions.RunOperation(); } if (!saleLineItem.SalesOrderUnitOfMeasure.Equals(saleLineItem.InventOrderUnitOfMeasure, StringComparison.OrdinalIgnoreCase)) { UnitOfMeasureData uomData = new UnitOfMeasureData( ApplicationSettings.Database.LocalConnection, ApplicationSettings.Database.DATAAREAID, ApplicationSettings.Terminal.StorePrimaryId, Dialog.InternalApplication); saleLineItem.UnitQtyConversion = uomData.GetUOMFactor(saleLineItem.InventOrderUnitOfMeasure, saleLineItem.SalesOrderUnitOfMeasure, saleLineItem); } return(true); }