Ejemplo n.º 1
0
        private PriceDetail GetPriceDetails(PurchaseDetailExtn purchaseDetailItemExtn, IQueryable <PriceDetail> priceDetails, ref int priceId)
        {
            PriceDetail priceDetailItem;

            if (priceDetails.Any())
            {
                //Same item exists. Just update the with new billId
                priceDetailItem        = priceDetails.FirstOrDefault();
                priceDetailItem.BillId = purchaseDetailItemExtn.BillId;
                priceId = priceDetailItem.PriceId;
                priceDetailItem.SellingPrice = purchaseDetailItemExtn.SellingPrice.Value;
            }
            else
            {
                //New Price, add it to price details list
                priceDetailItem = new PriceDetail()
                {
                    BillId       = RunningBillNo,
                    ProductId    = purchaseDetailItemExtn.ProductId,
                    Price        = purchaseDetailItemExtn.PurchasePrice.Value,
                    SellingPrice = purchaseDetailItemExtn.SellingPrice.Value
                };
                _rmsEntities.PriceDetails.Add(priceDetailItem);
            }

            return(priceDetailItem);
        }
Ejemplo n.º 2
0
 private void SetPurchaseDetailItem(PurchaseDetailExtn purchaseDetailExtn, PurchaseDetail purchaseDetail)
 {
     purchaseDetail.Discount     = purchaseDetailExtn.Discount;
     purchaseDetail.PriceId      = purchaseDetailExtn.PriceId;
     purchaseDetail.ProductId    = purchaseDetailExtn.ProductId;
     purchaseDetail.PurchasedQty = purchaseDetailExtn.Qty + purchaseDetailExtn.FreeIssue;
     purchaseDetail.ActualPrice  = purchaseDetailExtn.PurchasePrice.Value;
     purchaseDetail.BillId       = _editBillNo.Value;
     purchaseDetail.Tax          = purchaseDetailExtn.Tax;
 }
Ejemplo n.º 3
0
        private void OnEditBill(int?billNo)
        {
            if (billNo == null)
            {
                throw new ArgumentNullException("Please enter a bill no");
            }
            var runningBillNo = billNo;

            var purchases = _rmsEntities.Purchases.Where(b => b.RunningBillNo == runningBillNo && b.CompanyId == _purchaseParams.CompanyId).FirstOrDefault();

            _editBillNo         = purchases.BillId;
            SelectedCompany     = purchases.Company;
            SelectedCompanyText = SelectedCompany.Name;
            TranscationDate     = purchases.AddedOn.Value;
            SelectedPaymentId   = Char.Parse(purchases.PaymentMode);
            InvoiceNo           = purchases.InvoiceNo;

            //only free items without any purchase
            var freeIssueOnly = _rmsEntities.PurchaseFreeDetails.Where(p => p.BillId == _editBillNo).FirstOrDefault();

            if (freeIssueOnly != null && freeIssueOnly.FreeQty != 0)
            {
                var purchaseDetailExtn = new PurchaseDetailExtn()
                {
                    ProductId = freeIssueOnly.ProductId,
                    Qty       = freeIssueOnly.FreeQty,
                    //SellingPrice = item.SellingPrice,
                    BillId = freeIssueOnly.BillId
                };

                _purchaseDetailsList.Add(purchaseDetailExtn);
            }

            var purchaseDetailsForBill = _rmsEntities.PurchaseDetails.Where(b => b.BillId == purchases.BillId).ToList();

            var tempTotalAmount = 0.0M;

            foreach (var item  in purchaseDetailsForBill.ToList())
            {
                var productPrice = _productsPriceList.Where(p => p.PriceId == item.PriceId).FirstOrDefault();
                var freeIssue    = _rmsEntities.PurchaseFreeDetails.Where(p => p.BillId == item.BillId &&
                                                                          p.ProductId == item.ProductId).FirstOrDefault();
                var freeIssueQty = freeIssue != null ? freeIssue.FreeQty : 0;

                var purchaseDetailExtn = new PurchaseDetailExtn()
                {
                    Discount    = item.Discount,
                    PriceId     = item.PriceId.Value,
                    ProductId   = item.ProductId.Value,
                    Qty         = item.PurchasedQty - freeIssueQty,
                    OriginalQty = item.PurchasedQty - freeIssueQty,
                    //SellingPrice = item.SellingPrice,
                    BillId         = item.BillId,
                    CostPrice      = productPrice.Price,
                    AvailableStock = productPrice.Quantity,
                    Amount         = item.ActualPrice * (item.PurchasedQty - freeIssueQty)
                };

                _purchaseDetailsList.Add(purchaseDetailExtn);
                SetPurchaseDetailExtn(productPrice, purchaseDetailExtn);
                purchaseDetailExtn.PurchasePrice  = item.ActualPrice;
                purchaseDetailExtn.DiscountAmount = item.Discount.Value;

                purchaseDetailExtn.FreeIssue = freeIssueQty;

                var itemAmount = item.ActualPrice * (item.PurchasedQty - freeIssueQty);
                tempTotalAmount += itemAmount.Value;
            }
            TotalAmount = tempTotalAmount;

            CoolieCharges         = purchases.CoolieCharges;
            KCoolieCharges        = purchases.KCoolieCharges;
            TransportCharges      = purchases.TransportCharges;
            LocalCoolieCharges    = purchases.TransportCharges;
            SpecialDiscountAmount = purchases.SpecialDiscount;
            TotalDiscountAmount   = purchases.Discount;

            RunningBillNo = runningBillNo.Value;
            _isEditMode   = true;

            if (_deletedItems == null)
            {
                _deletedItems = new List <PurchaseDetailExtn>();
            }
            else
            {
                _deletedItems.Clear();
            }
        }
Ejemplo n.º 4
0
        private void SetPurchaseDetailExtn(ProductPrice productPrice, PurchaseDetailExtn purchaseDetailExtn)
        {
            if (purchaseDetailExtn != null)
            {
                //selectedRowSaleDetail.Qty = productPrice.Quantity;
                purchaseDetailExtn.PurchasePrice   = productPrice.Price;
                purchaseDetailExtn.OldCostPrice    = productPrice.Price;
                purchaseDetailExtn.CostPrice       = productPrice.Price;
                purchaseDetailExtn.PriceId         = productPrice.PriceId;
                purchaseDetailExtn.AvailableStock  = productPrice.Quantity;
                purchaseDetailExtn.SellingPrice    = productPrice.SellingPrice;
                purchaseDetailExtn.OldSellingPrice = productPrice.SellingPrice;

                var stock = _rmsEntities.Stocks.Where(s => s.ProductId == productPrice.ProductId && s.PriceId == productPrice.PriceId).FirstOrDefault();
                if (stock != null)
                {
                    purchaseDetailExtn.ExpiryDate = stock.ExpiryDate;
                }

                purchaseDetailExtn.PropertyChanged += (sender, e) =>
                {
                    var prop = e.PropertyName;
                    var totalQtyWithFreeIssue = 0.0M;

                    if (purchaseDetailExtn.FreeIssue.HasValue)
                    {
                        totalQtyWithFreeIssue = purchaseDetailExtn.Qty.HasValue ?  purchaseDetailExtn.Qty.Value + purchaseDetailExtn.FreeIssue.Value : 0;
                    }
                    else
                    {
                        totalQtyWithFreeIssue = purchaseDetailExtn.Qty.HasValue ? purchaseDetailExtn.Qty.Value : 0;
                    }

                    switch (e.PropertyName)
                    {
                    case Constants.FREE_ISSUE:
                    {
                        if (purchaseDetailExtn.Qty.HasValue && purchaseDetailExtn.FreeIssue.HasValue)
                        {
                            purchaseDetailExtn.CostPrice = purchaseDetailExtn.Amount.Value / totalQtyWithFreeIssue;
                        }
                        break;
                    }

                    case Constants.AMOUNT:
                    {
                        TotalAmount = _purchaseDetailsList.Sum(a => a.Amount);
                        if (totalQtyWithFreeIssue == 0)
                        {
                            return;
                        }
                        purchaseDetailExtn.CostPrice = purchaseDetailExtn.Amount.Value / totalQtyWithFreeIssue;
                        break;
                    }
                    }

                    var amount         = purchaseDetailExtn.PurchasePrice * purchaseDetailExtn.Qty;
                    var discountAmount = purchaseDetailExtn.DiscountPercentage != 0 ?
                                         amount - (amount * (purchaseDetailExtn.DiscountPercentage / 100)) :
                                         purchaseDetailExtn.DiscountAmount != 0 ?
                                         amount - purchaseDetailExtn.DiscountAmount :
                                         0;

                    if (discountAmount != 0)
                    {
                        purchaseDetailExtn.Amount   = discountAmount;
                        purchaseDetailExtn.Discount = amount - discountAmount;
                        if (purchaseDetailExtn.Qty.HasValue)
                        {
                            purchaseDetailExtn.CostPrice = purchaseDetailExtn.Amount.Value / totalQtyWithFreeIssue;
                        }
                        return;
                    }

                    purchaseDetailExtn.Amount   = amount;
                    purchaseDetailExtn.Discount = 0;
                };
            }
        }