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; }
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; }
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; } }
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; }
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; }
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; }