예제 #1
0
        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);
        }
예제 #2
0
        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);
        }