コード例 #1
0
        private decimal GetCratesToAdd(List<PackagingSummary> proccesTemp, decimal quantity, ReturnableProduct r, ReturnableProduct c, bool isMix, Guid parentProductId)
        {
            List<PackagingSummary> bottlesInaCrate;
            List<PackagingSummary> Crate;
            if (isMix)
            {
                bottlesInaCrate = proccesTemp.Where(y => y.Product.Id == r.Id && y.IsAuto == true).ToList();
                Crate = proccesTemp.Where(y => y.Product.Id == c.Id && y.IsAuto == true).ToList();
            }
            else
            {
                bottlesInaCrate = proccesTemp.Where(y => y.Product.Id == r.Id && y.IsAuto == true && y.ParentProductId == parentProductId).ToList();
                Crate = proccesTemp.Where(y => y.Product.Id == c.Id && y.IsAuto == true && y.ParentProductId == parentProductId).ToList();
            }


            decimal bottlesInaCrateQuantity = bottlesInaCrate != null ? bottlesInaCrate.Sum(o => o.Quantity) : 0;
            decimal CrateQuantity = Crate != null ? Crate.Sum(n => n.Quantity) : 0;
            decimal TotalBottles = bottlesInaCrateQuantity + quantity;
            decimal TotalCrate = TotalBottles / c.Capacity;
            decimal q = TotalCrate - CrateQuantity;
            return (int)q;
        }
コード例 #2
0
ファイル: Order.cs プロジェクト: asanyaga/BuildTest
        public ReturnableLineItem AddReturnableItem(Guid lineItemId, ReturnableProduct product, Guid returnableProductId, decimal quantity, decimal price)
        {
            var item = new ReturnableLineItem(lineItemId, Id)
            {
                Quantity = quantity,
                Product = product,
                ProductMasterId = returnableProductId,
                Price = price
            };

            ReturnableLineItems.Add(item);
            return item;
        }
コード例 #3
0
        LineItem PriceCalc(ReturnableProduct product, LineItem lineItem)
        {
            using (var container = NestedContainer)
            {
                IDiscountProWorkflow _discountProService = Using<IDiscountProWorkflow>(container);
               
                lineItem.UnitPrice = _discountProService.GetUnitPrice(product, SelectedOutlet.OutletProductPricingTier);

                LineItemVatValue = _discountProService.GetVATRate(product, SelectedOutlet);
                lineItem.LineItemVatValue = LineItemVatValue;

                lineItem = RecalcTotal(lineItem);
                //BindTree(product);
                return lineItem;
            }
        }
コード例 #4
0
        LineItem BuildReturnableProduct(ReturnableProduct returnableLi, bool isSecondaryReturnable = false)
        {
            var returnableProduct = new LineItem
            {
                ProductId = returnableLi.Id,
                ProductDesc = returnableLi.Description,
                SequenceNo = LineItems.Count() + 1
            };
            ReturnableId = returnableLi.Id;
            returnableProduct.Qty = RequiredQty;
            returnableProduct.ProductType = returnableLi.GetType().ToString().Split('.').Last();

            returnableProduct.IsNew = IsNew;
            //get pricing details
            returnableProduct = PriceCalc(returnableLi, returnableProduct);
            return returnableProduct;
        }
コード例 #5
0
        private LineItem BuildBulkSaleContainer(ReturnableProduct returnableLi)
        {
            var returnableProduct = new LineItem
            {
                ProductId = returnableLi.Id,
                ProductDesc = returnableLi.Description
            };
            ReturnableId = returnableLi.Id;
            returnableProduct.Qty = RequiredQty;
            returnableProduct.ProductType = returnableLi.GetType().ToString().Split('.').Last();

            //if we are building the original container when editing then we divide by default loaded qty which is for sale product.
            if (!editReturnable)
            {
                if (buildingOrigCrate)
                    returnableProduct.Qty = (int)((Approve / returnableLi.Capacity) <= 0 ? 1 : Approve / returnableLi.Capacity);
                else
                {
                    if (SellInBulk)//sell in bulk option is selected
                        returnableProduct.Qty = Approve;
                    else if (SellInUnits)
                        returnableProduct.Qty = (int)((Approve / returnableLi.Capacity) <= 0 ? 1 : Approve / returnableLi.Capacity);
                }
            }


            returnableProduct.IsNew = IsNew;

            //get pricing details
            returnableProduct = PriceCalc(returnableLi, returnableProduct);
            return returnableProduct;
        }
コード例 #6
0
        public ReturnableProduct GetProductBulkReturnable(Product product)
        {
            if (product is SaleProduct)
            {
                SaleProduct s = product as SaleProduct;
                if (s.ReturnableProduct != null)
                {
                    ReturnableProduct r = s.ReturnableProduct;
                    if (r.ReturnAbleProduct != null)
                    {
                        GetProductBulkReturnable(r);
                    }
                    else
                    {
                        returnable = r;
                    }
                    //if (r.ReturnAbleProduct != null)
                    //{
                    //    ReturnableProduct c = r.ReturnAbleProduct;
                    //    if (c != null)
                    //        return c;
                    //}

                }


            }
            else if (product is ReturnableProduct)
            {
                ReturnableProduct r = product as ReturnableProduct;
                ReturnableProduct c = r.ReturnAbleProduct;
                if (c.ReturnAbleProduct != null)
                {
                    GetProductBulkReturnable(c);
                }
                else
                {
                    returnable = c;
                }
                //if (r.ReturnAbleProduct != null)
                //{
                //    ReturnableProduct c = r.ReturnAbleProduct;
                //    if (c != null)
                //        return c;
                //}

            }
            return returnable;
        }