示例#1
0
        public ActionResult GetItemList(MainApplication mainapp, FormCollection frmcol)
        {
            MainApplication model = new MainApplication()
            {
                OutwardStkDisDetails         = new OutwardStockDistribution(),
                OutwardItemStkDisDetails     = new OutwardItemStockDistribution(),
                StockItemDistributionDetails = new StockItemDistribution(),
            };

            //CREATE STOCK DISTRIBUTION CODE
            string year = FinancialYear;

            string[] yr    = year.Split(' ', '-');
            string   FinYr = "/" + yr[2].Substring(2) + "-" + yr[6].Substring(2);
            string   stockdistributioncode = string.Empty;

            var StkDisData = _stockdistributionservice.GetLastStockDisByFinYr(FinYr);
            int StkDisVal  = 0;
            int length     = 0;

            if (StkDisData != null)
            {
                stockdistributioncode = StkDisData.StockDistributionCode.Substring(3, 6);
                length    = (Convert.ToInt32(stockdistributioncode) + 1).ToString().Length;
                StkDisVal = Convert.ToInt32(stockdistributioncode) + 1;
            }
            else
            {
                StkDisVal = 1;
                length    = 1;
            }
            stockdistributioncode = _utilityservice.getName("SDS", length, StkDisVal);
            stockdistributioncode = stockdistributioncode + FinYr;
            mainapp.StockDistributionDetails.StockDistributionCode = stockdistributioncode;

            //save stock distribution
            mainapp.StockDistributionDetails.Status     = "Active";
            mainapp.StockDistributionDetails.ModifiedOn = DateTime.Now;
            _stockdistributionservice.Create(mainapp.StockDistributionDetails);

            //save outward stock distribution
            model.OutwardStkDisDetails.OutwardCode         = stockdistributioncode;
            model.OutwardStkDisDetails.GodownName          = mainapp.StockDistributionDetails.GodownName;
            model.OutwardStkDisDetails.Code                = mainapp.StockDistributionDetails.Code;
            model.OutwardStkDisDetails.GodownContactNo     = mainapp.StockDistributionDetails.GodownContactNo;
            model.OutwardStkDisDetails.GodownContactPerson = mainapp.StockDistributionDetails.GodownContactPerson;
            model.OutwardStkDisDetails.ShopName            = mainapp.StockDistributionDetails.ShopName;
            model.OutwardStkDisDetails.ShopContactNo       = mainapp.StockDistributionDetails.ShopContactNo;
            model.OutwardStkDisDetails.ShopContactPerson   = mainapp.StockDistributionDetails.ShopContactPerson;
            model.OutwardStkDisDetails.GatePass            = mainapp.StockDistributionDetails.GatePass;
            model.OutwardStkDisDetails.Narration           = mainapp.StockDistributionDetails.Narration;
            model.OutwardStkDisDetails.Status              = "Active";
            model.OutwardStkDisDetails.ModifiedOn          = DateTime.Now;
            _outwardstkdisservice.Create(model.OutwardStkDisDetails);

            //save stock item distribution
            mainapp.OpeningStockList   = TempData["OpeningItemList"] as IEnumerable <OpeningStockMaster>;
            mainapp.EntryStockItemList = TempData["EntryItemList"] as IEnumerable <EntryStockItem>;

            int count = 1;

            foreach (var data in mainapp.EntryStockItemList)
            {
                string itemcode      = "ItemCode" + count;
                string intertransfer = "InterTransfer" + count;
                if (frmcol[intertransfer] != "" && frmcol[intertransfer] != null)
                {
                    //if same item with same godowncode then update item in stockdistribution
                    var itemdetails = _stockitemdistributionservice.GetDetailsByItemCodeAndGodownCode(frmcol[itemcode], mainapp.StockDistributionDetails.Code);
                    if (itemdetails == null)
                    {
                        //if item already prsent in stock distribution (same item and same godown) then update item otherwise create new item
                        var itemdata = _itemservice.GetDescriptionByItemCode(frmcol[itemcode]);
                        model.StockItemDistributionDetails.Category              = itemdata.itemCategory;
                        model.StockItemDistributionDetails.SubCategory           = itemdata.itemSubCategory;
                        model.StockItemDistributionDetails.ItemCode              = itemdata.itemCode;
                        model.StockItemDistributionDetails.ItemName              = itemdata.itemName;
                        model.StockItemDistributionDetails.Description           = itemdata.description;
                        model.StockItemDistributionDetails.ItemQuantity          = Convert.ToDouble(frmcol[intertransfer]);
                        model.StockItemDistributionDetails.Color                 = itemdata.colorCode;
                        model.StockItemDistributionDetails.DesignCode            = itemdata.designCode;
                        model.StockItemDistributionDetails.DesignName            = itemdata.designName;
                        model.StockItemDistributionDetails.Unit                  = itemdata.unit;
                        model.StockItemDistributionDetails.NumberType            = itemdata.NumberType;
                        model.StockItemDistributionDetails.SellingPrice          = Convert.ToDouble(itemdata.sellingprice);
                        model.StockItemDistributionDetails.MRP                   = Convert.ToDouble(itemdata.mrp);
                        model.StockItemDistributionDetails.Material              = itemdata.typeOfMaterial;
                        model.StockItemDistributionDetails.StockDistributionCode = stockdistributioncode;
                        model.StockItemDistributionDetails.Code                  = mainapp.StockDistributionDetails.Code;
                        if (mainapp.StockDistributionDetails.Code.Contains("GD"))
                        {
                            model.StockItemDistributionDetails.GodownShopName = _godownservice.GetGodownByCode(mainapp.StockDistributionDetails.Code).GodownName;
                        }
                        else
                        {
                            model.StockItemDistributionDetails.GodownShopName = _shopservice.GetShopByCode(mainapp.StockDistributionDetails.Code).ShopName;
                        }
                        model.StockItemDistributionDetails.Brand      = itemdata.brandName;
                        model.StockItemDistributionDetails.Size       = itemdata.size;
                        model.StockItemDistributionDetails.Barcode    = itemdata.Barcode;
                        model.StockItemDistributionDetails.Status     = "Active";
                        model.StockItemDistributionDetails.ModifiedOn = DateTime.Now;
                        _stockitemdistributionservice.Create(model.StockItemDistributionDetails);

                        //Save Outward Item To Godown

                        //Calculate total remaining quantity = Item Quantity + (Previous row quantity but this row having the same itemcode & godowncode)
                        var QuanDetails = _outwarditemstkdisservice.GetLastRowFromItemAndGodownCode(frmcol[itemcode], mainapp.StockDistributionDetails.Code);
                        if (QuanDetails != null)
                        {
                            double CalcQuan = Convert.ToDouble(frmcol[intertransfer]) + Convert.ToDouble(QuanDetails.TotalQuantity);
                            model.OutwardItemStkDisDetails.TotalQuantity = CalcQuan;
                        }
                        else
                        {
                            model.OutwardItemStkDisDetails.TotalQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        }

                        model.OutwardItemStkDisDetails.ItemCode     = model.StockItemDistributionDetails.ItemCode;
                        model.OutwardItemStkDisDetails.ItemName     = model.StockItemDistributionDetails.ItemName;
                        model.OutwardItemStkDisDetails.ItemQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        model.OutwardItemStkDisDetails.Code         = mainapp.StockDistributionDetails.Code;
                        model.OutwardItemStkDisDetails.OutwardCode  = stockdistributioncode;
                        model.OutwardItemStkDisDetails.Description  = model.StockItemDistributionDetails.Description;
                        model.OutwardItemStkDisDetails.Color        = model.StockItemDistributionDetails.Color;
                        model.OutwardItemStkDisDetails.DesignCode   = model.StockItemDistributionDetails.DesignCode;
                        model.OutwardItemStkDisDetails.DesignName   = model.StockItemDistributionDetails.DesignName;
                        model.OutwardItemStkDisDetails.Material     = model.StockItemDistributionDetails.Material;
                        model.OutwardItemStkDisDetails.SellingPrice = model.StockItemDistributionDetails.SellingPrice;
                        model.OutwardItemStkDisDetails.MRP          = model.StockItemDistributionDetails.MRP;
                        model.OutwardItemStkDisDetails.Unit         = model.StockItemDistributionDetails.Unit;
                        model.OutwardItemStkDisDetails.NumberType   = model.StockItemDistributionDetails.NumberType;
                        model.OutwardItemStkDisDetails.Brand        = model.StockItemDistributionDetails.Brand;
                        model.OutwardItemStkDisDetails.Size         = model.StockItemDistributionDetails.Size;
                        model.OutwardItemStkDisDetails.Barcode      = model.StockItemDistributionDetails.Barcode;
                        model.OutwardItemStkDisDetails.Status       = "Active";
                        model.OutwardItemStkDisDetails.ModifiedOn   = DateTime.Now;
                        _outwarditemstkdisservice.Create(model.OutwardItemStkDisDetails);
                    }
                    else
                    {
                        itemdetails.ItemQuantity = itemdetails.ItemQuantity + Convert.ToDouble(frmcol[intertransfer]);
                        itemdetails.Status       = "Active";
                        itemdetails.ModifiedOn   = DateTime.Now;
                        _stockitemdistributionservice.Update(itemdetails);

                        //Save Outward Item To Godown

                        //Calculate total remaining quantity = Item Quantity + (Previous row quantity but this row having the same itemcode & godowncode)
                        var QuanDetails = _outwarditemstkdisservice.GetLastRowFromItemAndGodownCode(frmcol[itemcode], mainapp.StockDistributionDetails.Code);
                        if (QuanDetails != null)
                        {
                            double CalcQuan = Convert.ToDouble(frmcol[intertransfer]) + Convert.ToDouble(QuanDetails.TotalQuantity);
                            model.OutwardItemStkDisDetails.TotalQuantity = CalcQuan;
                        }
                        else
                        {
                            model.OutwardItemStkDisDetails.TotalQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        }

                        model.OutwardItemStkDisDetails.ItemCode     = itemdetails.ItemCode;
                        model.OutwardItemStkDisDetails.ItemName     = itemdetails.ItemName;
                        model.OutwardItemStkDisDetails.ItemQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        model.OutwardItemStkDisDetails.Code         = mainapp.StockDistributionDetails.Code;
                        model.OutwardItemStkDisDetails.OutwardCode  = stockdistributioncode;
                        model.OutwardItemStkDisDetails.Description  = itemdetails.Description;
                        model.OutwardItemStkDisDetails.Color        = itemdetails.Color;
                        model.OutwardItemStkDisDetails.DesignCode   = itemdetails.DesignCode;
                        model.OutwardItemStkDisDetails.DesignName   = itemdetails.DesignName;
                        model.OutwardItemStkDisDetails.Material     = itemdetails.Material;
                        model.OutwardItemStkDisDetails.SellingPrice = itemdetails.SellingPrice;
                        model.OutwardItemStkDisDetails.MRP          = itemdetails.MRP;
                        model.OutwardItemStkDisDetails.Unit         = itemdetails.Unit;
                        model.OutwardItemStkDisDetails.NumberType   = itemdetails.NumberType;
                        model.OutwardItemStkDisDetails.Brand        = itemdetails.Brand;
                        model.OutwardItemStkDisDetails.Size         = itemdetails.Size;
                        model.OutwardItemStkDisDetails.Barcode      = itemdetails.Barcode;
                        model.OutwardItemStkDisDetails.Status       = "Active";
                        model.OutwardItemStkDisDetails.ModifiedOn   = DateTime.Now;
                        _outwarditemstkdisservice.Create(model.OutwardItemStkDisDetails);
                    }
                }
                count = count + 1;
            }

            foreach (var data in mainapp.OpeningStockList)
            {
                string itemcode      = "ItemCode" + count;
                string intertransfer = "InterTransfer" + count;
                if (frmcol[intertransfer] != "" && frmcol[intertransfer] != null)
                {
                    //if same item with same godowncode then update item in stockdistribution
                    var itemdetails = _stockitemdistributionservice.GetDetailsByItemCodeAndGodownCode(frmcol[itemcode], mainapp.StockDistributionDetails.Code);
                    if (itemdetails == null)
                    {
                        var itemdata = _itemservice.GetDescriptionByItemCode(frmcol[itemcode]);
                        model.StockItemDistributionDetails.Category              = itemdata.itemCategory;
                        model.StockItemDistributionDetails.SubCategory           = itemdata.itemSubCategory;
                        model.StockItemDistributionDetails.ItemCode              = itemdata.itemCode;
                        model.StockItemDistributionDetails.ItemName              = itemdata.itemName;
                        model.StockItemDistributionDetails.Description           = itemdata.description;
                        model.StockItemDistributionDetails.ItemQuantity          = Convert.ToDouble(frmcol[intertransfer]);
                        model.StockItemDistributionDetails.Color                 = itemdata.colorCode;
                        model.StockItemDistributionDetails.DesignCode            = itemdata.designCode;
                        model.StockItemDistributionDetails.DesignName            = itemdata.designName;
                        model.StockItemDistributionDetails.Unit                  = itemdata.unit;
                        model.StockItemDistributionDetails.NumberType            = itemdata.NumberType;
                        model.StockItemDistributionDetails.SellingPrice          = Convert.ToDouble(itemdata.sellingprice);
                        model.StockItemDistributionDetails.MRP                   = Convert.ToDouble(itemdata.mrp);
                        model.StockItemDistributionDetails.Material              = itemdata.typeOfMaterial;
                        model.StockItemDistributionDetails.StockDistributionCode = stockdistributioncode;
                        model.StockItemDistributionDetails.Code                  = mainapp.StockDistributionDetails.Code;
                        model.StockItemDistributionDetails.Brand                 = itemdata.brandName;
                        model.StockItemDistributionDetails.Size                  = itemdata.size;
                        model.StockItemDistributionDetails.Barcode               = itemdata.Barcode;
                        model.StockItemDistributionDetails.Status                = "Active";
                        model.StockItemDistributionDetails.ModifiedOn            = DateTime.Now;

                        _stockitemdistributionservice.Create(model.StockItemDistributionDetails);

                        //Save Outward Item To Godown

                        //Calculate total remaining quantity = Item Quantity + (Previous row quantity but this row having the same itemcode & godowncode)
                        var QuanDetails = _outwarditemstkdisservice.GetLastRowFromItemAndGodownCode(frmcol[itemcode], mainapp.StockDistributionDetails.Code);
                        if (QuanDetails != null)
                        {
                            double CalcQuan = Convert.ToDouble(frmcol[intertransfer]) + Convert.ToDouble(QuanDetails.TotalQuantity);
                            model.OutwardItemStkDisDetails.TotalQuantity = CalcQuan;
                        }
                        else
                        {
                            model.OutwardItemStkDisDetails.TotalQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        }

                        model.OutwardItemStkDisDetails.ItemCode     = model.StockItemDistributionDetails.ItemCode;
                        model.OutwardItemStkDisDetails.ItemName     = model.StockItemDistributionDetails.ItemName;
                        model.OutwardItemStkDisDetails.ItemQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        model.OutwardItemStkDisDetails.Code         = mainapp.StockDistributionDetails.Code;
                        model.OutwardItemStkDisDetails.OutwardCode  = stockdistributioncode;
                        model.OutwardItemStkDisDetails.Description  = model.StockItemDistributionDetails.Description;
                        model.OutwardItemStkDisDetails.Color        = model.StockItemDistributionDetails.Color;
                        model.OutwardItemStkDisDetails.DesignCode   = model.StockItemDistributionDetails.DesignCode;
                        model.OutwardItemStkDisDetails.DesignName   = model.StockItemDistributionDetails.DesignName;
                        model.OutwardItemStkDisDetails.Material     = model.StockItemDistributionDetails.Material;
                        model.OutwardItemStkDisDetails.SellingPrice = model.StockItemDistributionDetails.SellingPrice;
                        model.OutwardItemStkDisDetails.MRP          = model.StockItemDistributionDetails.MRP;
                        model.OutwardItemStkDisDetails.Unit         = model.StockItemDistributionDetails.Unit;
                        model.OutwardItemStkDisDetails.NumberType   = model.StockItemDistributionDetails.NumberType;
                        model.OutwardItemStkDisDetails.Brand        = model.StockItemDistributionDetails.Brand;
                        model.OutwardItemStkDisDetails.Size         = model.StockItemDistributionDetails.Size;
                        model.OutwardItemStkDisDetails.Barcode      = model.StockItemDistributionDetails.Barcode;
                        model.OutwardItemStkDisDetails.Status       = "Active";
                        model.OutwardItemStkDisDetails.ModifiedOn   = DateTime.Now;
                        _outwarditemstkdisservice.Create(model.OutwardItemStkDisDetails);
                    }
                    else
                    {
                        itemdetails.ItemQuantity = itemdetails.ItemQuantity + Convert.ToDouble(frmcol[intertransfer]);
                        itemdetails.Status       = "Active";
                        itemdetails.ModifiedOn   = DateTime.Now;
                        _stockitemdistributionservice.Update(itemdetails);

                        //Save Outward Item To Godown

                        //Calculate total remaining quantity = Item Quantity + (Previous row quantity but this row having the same itemcode & godowncode)
                        var QuanDetails = _outwarditemstkdisservice.GetLastRowFromItemAndGodownCode(frmcol[itemcode], mainapp.StockDistributionDetails.Code);
                        if (QuanDetails != null)
                        {
                            double CalcQuan = Convert.ToDouble(frmcol[intertransfer]) + Convert.ToDouble(QuanDetails.TotalQuantity);
                            model.OutwardItemStkDisDetails.TotalQuantity = CalcQuan;
                        }
                        else
                        {
                            model.OutwardItemStkDisDetails.TotalQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        }

                        model.OutwardItemStkDisDetails.ItemCode     = itemdetails.ItemCode;
                        model.OutwardItemStkDisDetails.ItemName     = itemdetails.ItemName;
                        model.OutwardItemStkDisDetails.ItemQuantity = Convert.ToDouble(frmcol[intertransfer]);
                        model.OutwardItemStkDisDetails.Code         = mainapp.StockDistributionDetails.Code;
                        model.OutwardItemStkDisDetails.OutwardCode  = stockdistributioncode;
                        model.OutwardItemStkDisDetails.Description  = itemdetails.Description;
                        model.OutwardItemStkDisDetails.Color        = itemdetails.Color;
                        model.OutwardItemStkDisDetails.DesignCode   = itemdetails.DesignCode;
                        model.OutwardItemStkDisDetails.DesignName   = itemdetails.DesignName;
                        model.OutwardItemStkDisDetails.Material     = itemdetails.Material;
                        model.OutwardItemStkDisDetails.SellingPrice = itemdetails.SellingPrice;
                        model.OutwardItemStkDisDetails.MRP          = itemdetails.MRP;
                        model.OutwardItemStkDisDetails.Unit         = itemdetails.Unit;
                        model.OutwardItemStkDisDetails.NumberType   = itemdetails.NumberType;
                        model.OutwardItemStkDisDetails.Brand        = itemdetails.Brand;
                        model.OutwardItemStkDisDetails.Size         = itemdetails.Size;
                        model.OutwardItemStkDisDetails.Barcode      = itemdetails.Barcode;
                        model.OutwardItemStkDisDetails.Status       = "Active";
                        model.OutwardItemStkDisDetails.ModifiedOn   = DateTime.Now;
                        _outwarditemstkdisservice.Create(model.OutwardItemStkDisDetails);
                    }
                }
                count = count + 1;
            }

            var SDID     = _stockdistributionservice.GetDetailsByCode(mainapp.StockDistributionDetails.StockDistributionCode).Id;
            var StkDisId = Encode(SDID.ToString());

            return(RedirectToAction("StockDistributionDetails/" + StkDisId, "StockDistribution"));
        }
        public ActionResult PurchaseReturn(MainApplication model, FormCollection frmcol)
        {
            string shopcode = Session["LOGINSHOPGODOWNCODE"].ToString();
            string shopname = Session["SHOPGODOWNNAME"].ToString();

            string year = FinancialYear;

            string[] yr    = year.Split(' ', '-');
            string   FinYr = "/" + yr[2].Substring(2) + "-" + yr[6].Substring(2);
            var      LastPurchaseReturn   = _PurchaseReturnService.GetLastPurchaseByFinYr(FinYr, shopcode);
            string   PurchaseReturnCode   = string.Empty;
            int      PurchaseReturnLength = 0;
            int      PurchaseReturnNo     = 0;

            if (LastPurchaseReturn == null)
            {
                PurchaseReturnLength = 1;
                PurchaseReturnNo     = 1;
            }
            else
            {
                int PurchaseReturnIndex = LastPurchaseReturn.PurchaseReturnNo.LastIndexOf('P');
                PurchaseReturnCode   = LastPurchaseReturn.PurchaseReturnNo.Substring(PurchaseReturnIndex + 2, 6);
                PurchaseReturnLength = (Convert.ToInt32(PurchaseReturnCode) + 1).ToString().Length;
                PurchaseReturnNo     = Convert.ToInt32(PurchaseReturnCode) + 1;
            }

            string ShortCode = string.Empty;

            if (shopcode.Contains("SH"))
            {
                var detail = _ShopService.GetShopDetailsByName(shopname);
                ShortCode = detail.ShortCode;
            }
            else
            {
                var detail = _GodownService.GetGodownDetailsByName(shopname);
                ShortCode = detail.ShortCode;
            }
            PurchaseReturnCode = _UtilityService.getName(ShortCode + "/PR", PurchaseReturnLength, PurchaseReturnNo);
            PurchaseReturnCode = PurchaseReturnCode + FinYr;
            string DebitNoteNo = _UtilityService.getName(ShortCode + "/DBN", PurchaseReturnLength, PurchaseReturnNo);

            DebitNoteNo = DebitNoteNo + FinYr;
            model.PurchaseReturnDetails.Code               = Session["LOGINSHOPGODOWNCODE"].ToString();
            model.PurchaseReturnDetails.PurchaseReturnNo   = PurchaseReturnCode;
            model.PurchaseReturnDetails.PurchaseReturnDate = DateTime.Now;
            model.PurchaseReturnDetails.DebitNoteNo        = DebitNoteNo;
            model.PurchaseReturnDetails.DebitNoteDate      = DateTime.Now;
            if (model.PurchaseReturnDetails.PackAndForwd == null)
            {
                model.PurchaseReturnDetails.PackAndForwd = 0;
            }
            model.PurchaseReturnDetails.DebitNoteAmount = Convert.ToDouble(frmcol["SupplierAmount"]);
            model.PurchaseReturnDetails.TotalAmount     = Convert.ToDouble(frmcol["TotalAmountValue"]);
            model.PurchaseReturnDetails.TotalTaxAmount  = Convert.ToDouble(frmcol["TotalTaxAmountValue"]);
            model.PurchaseReturnDetails.GrandTotal      = Convert.ToDouble(frmcol["GrandTotalValue"]);
            model.PurchaseReturnDetails.Status          = "Active";
            model.PurchaseReturnDetails.ModifiedOn      = DateTime.Now;
            _PurchaseReturnService.Create(model.PurchaseReturnDetails);

            DebitNote DebitNote = new DebitNote();

            DebitNote.DebitNoteNo      = DebitNoteNo;
            DebitNote.DebitNoteDate    = DateTime.Now;
            DebitNote.SupplierName     = model.PurchaseReturnDetails.SupplierName;
            DebitNote.BillNo           = model.PurchaseReturnDetails.SupplierBillNo;
            DebitNote.ChallanNo        = model.PurchaseReturnDetails.SupplierChallanNo;
            DebitNote.InwardNo         = model.PurchaseReturnDetails.InwardNo;
            DebitNote.PurchaseReturnNo = PurchaseReturnCode;
            DebitNote.Amount           = Convert.ToDouble(frmcol["SupplierAmount"]);
            DebitNote.Status           = "Active";
            DebitNote.ModifiedOn       = DateTime.Now;
            _DebitNoteService.Create(DebitNote);

            var Inwardreturnlist = TempData["InwardItemList"] as IEnumerable <InwardItemsFromSupplier>;
            int count            = 1;

            foreach (var item in Inwardreturnlist)
            {
                string checkbox = "CheckBox" + count;
                string quantity = "quantity" + count;
                string amount   = "amountvalue" + count;
                string prevqty  = "prevquantityvalue" + count;
                if (frmcol[checkbox] == "Yes")
                {
                    PurchaseReturnItem PurchaseReturnItem = new PurchaseReturnItem();
                    PurchaseReturnItem.PurchaseReturnNo = PurchaseReturnCode;
                    PurchaseReturnItem.Barcode          = item.Barcode;
                    PurchaseReturnItem.ItemCode         = item.itemCode;
                    PurchaseReturnItem.ItemName         = item.Item;
                    PurchaseReturnItem.ItemType         = item.ItemType;
                    PurchaseReturnItem.Description      = item.Description;
                    PurchaseReturnItem.DesignCode       = item.Design;
                    PurchaseReturnItem.DesignName       = item.DesignName;
                    PurchaseReturnItem.Color            = item.Color;
                    PurchaseReturnItem.Material         = item.Material;
                    PurchaseReturnItem.Brand            = item.Brand;
                    PurchaseReturnItem.Size             = item.Size;
                    PurchaseReturnItem.Unit             = item.Unit;
                    PurchaseReturnItem.NumberType       = item.NumberType;
                    PurchaseReturnItem.Quantity         = Convert.ToDouble(frmcol[quantity]);
                    PurchaseReturnItem.Balance          = Convert.ToDouble(frmcol[prevqty]) - Convert.ToDouble(frmcol[quantity]);
                    PurchaseReturnItem.CostPrice        = item.CostPrice;
                    PurchaseReturnItem.DisPer           = item.Discount.ToString();
                    PurchaseReturnItem.SellingPrice     = item.SellingPrice;
                    PurchaseReturnItem.MRP        = item.MRP;
                    PurchaseReturnItem.ItemTax    = item.ItemTax;
                    PurchaseReturnItem.Amount     = Convert.ToDouble(frmcol[amount]);
                    PurchaseReturnItem.Status     = "Active";
                    PurchaseReturnItem.ModifiedOn = DateTime.Now;
                    _PurchaseReturnItemService.Create(PurchaseReturnItem);

                    var inwarditem = _InwardItemFromSupplierService.GetItemByInwardNoAndItemCode(model.PurchaseReturnDetails.InwardNo, PurchaseReturnItem.ItemCode);
                    inwarditem.PurchaseReturn = "Yes";
                    _InwardItemFromSupplierService.Update(inwarditem);

                    DebitNoteItem DebitNoteItem = new DebitNoteItem();
                    DebitNoteItem.DebitNoteNo  = DebitNoteNo;
                    DebitNoteItem.ItemCode     = item.itemCode;
                    DebitNoteItem.ItemName     = item.Item;
                    DebitNoteItem.Description  = item.Description;
                    DebitNoteItem.ItemType     = item.ItemType;
                    DebitNoteItem.Color        = item.Color;
                    DebitNoteItem.Material     = item.Material;
                    DebitNoteItem.DesignName   = item.DesignName;
                    DebitNoteItem.Brand        = item.Brand;
                    DebitNoteItem.Size         = item.Size;
                    DebitNoteItem.Quantity     = Convert.ToDouble(frmcol[quantity]);
                    DebitNoteItem.Unit         = item.Unit;
                    DebitNoteItem.CostPrice    = item.CostPrice;
                    DebitNoteItem.NumberType   = item.NumberType;
                    DebitNoteItem.SellingPrice = item.SellingPrice;
                    DebitNoteItem.MRP          = item.MRP;
                    DebitNoteItem.ItemTax      = item.ItemTax;
                    DebitNoteItem.Amount       = Convert.ToDouble(frmcol[amount]);
                    DebitNoteItem.Status       = "Active";
                    DebitNoteItem.ModifiedOn   = DateTime.Now;
                    _DebitNoteItemService.Create(DebitNoteItem);

                    var iteminward = _InwardItemFromSupplierService.GetItemByInwardNoAndItemCode(model.PurchaseReturnDetails.InwardNo, item.itemCode);
                    iteminward.PurchaseReturn = "Yes";
                    _InwardItemFromSupplierService.Update(iteminward);

                    string code = Session["LOGINSHOPGODOWNCODE"].ToString();
                    if (item.ItemType == "Inventory")
                    {
                        if (code.Contains("SH"))
                        {
                            var shopdetails = _ShopStockService.GetDetailsByItemCodeAndShopCode(item.itemCode, code);
                            shopdetails.Quantity = shopdetails.Quantity - PurchaseReturnItem.Quantity;
                            _ShopStockService.Update(shopdetails);

                            var stockitemdetails = _StockItemDistributionService.GetDetailsByItemCodeAndShopCode(item.itemCode, code);
                            stockitemdetails.ItemQuantity = stockitemdetails.ItemQuantity - PurchaseReturnItem.Quantity;
                            _StockItemDistributionService.Update(stockitemdetails);
                        }
                        else
                        {
                            var godowndetails = _GodownStockService.GetDetailsByItemCodeAndGodownCode(item.itemCode, code);
                            godowndetails.Quantity = godowndetails.Quantity - PurchaseReturnItem.Quantity;
                            _GodownStockService.Update(godowndetails);

                            var stockitemdetails = _StockItemDistributionService.GetDetailsByItemCodeAndGodownCode(item.itemCode, code);
                            stockitemdetails.ItemQuantity = stockitemdetails.ItemQuantity - PurchaseReturnItem.Quantity;
                            _StockItemDistributionService.Update(stockitemdetails);
                        }

                        var entrystockitems = _EntryStockItemService.getDetailsByItemCode(item.itemCode);
                        if (entrystockitems != null)
                        {
                            entrystockitems.TotalQuantity = entrystockitems.TotalQuantity - PurchaseReturnItem.Quantity;
                            _EntryStockItemService.Update(entrystockitems);
                        }
                        else
                        {
                            var openingstockitems = _OpeningStockService.GetDetailsByItemCode(item.itemCode);
                            openingstockitems.TotalQuantity = openingstockitems.TotalQuantity - PurchaseReturnItem.Quantity;
                            _OpeningStockService.UpdateStock(openingstockitems);
                        }
                    }
                }
                count++;
            }
            count = Inwardreturnlist.Count() + 1;
            var purchasereturnlist = TempData["PurchaseReturnList"] as IEnumerable <PurchaseReturnItem>;

            foreach (var item in purchasereturnlist)
            {
                string checkbox = "CheckBox" + count;
                string quantity = "quantity" + count;
                string amount   = "amountvalue" + count;
                string prevqty  = "prevquantityvalue" + count;
                if (frmcol[checkbox] == "Yes")
                {
                    item.PurchaseReturnNo = PurchaseReturnCode;
                    item.Quantity         = Convert.ToDouble(frmcol[quantity]);
                    item.Balance          = Convert.ToDouble(frmcol[prevqty]) - Convert.ToDouble(frmcol[quantity]);
                    item.Amount           = Convert.ToDouble(frmcol[amount]);
                    item.Status           = "Active";
                    item.ModifiedOn       = DateTime.Now;
                    _PurchaseReturnItemService.Create(item);

                    DebitNoteItem DebitNoteItem = new DebitNoteItem();
                    DebitNoteItem.DebitNoteNo  = DebitNoteNo;
                    DebitNoteItem.ItemCode     = item.ItemCode;
                    DebitNoteItem.ItemName     = item.ItemName;
                    DebitNoteItem.Description  = item.Description;
                    DebitNoteItem.ItemType     = item.ItemType;
                    DebitNoteItem.Color        = item.Color;
                    DebitNoteItem.Material     = item.Material;
                    DebitNoteItem.DesignName   = item.DesignName;
                    DebitNoteItem.Brand        = item.Brand;
                    DebitNoteItem.Size         = item.Size;
                    DebitNoteItem.Quantity     = Convert.ToDouble(frmcol[quantity]);
                    DebitNoteItem.Unit         = item.Unit;
                    DebitNoteItem.NumberType   = item.NumberType;
                    DebitNoteItem.CostPrice    = item.CostPrice;
                    DebitNoteItem.SellingPrice = item.SellingPrice;
                    DebitNoteItem.MRP          = item.MRP;
                    DebitNoteItem.ItemTax      = item.ItemTax;
                    DebitNoteItem.Amount       = Convert.ToDouble(frmcol[amount]);
                    DebitNoteItem.Status       = "Active";
                    DebitNoteItem.ModifiedOn   = DateTime.Now;
                    _DebitNoteItemService.Create(DebitNoteItem);

                    string code = Session["LOGINSHOPGODOWNCODE"].ToString();
                    if (item.ItemType == "Inventory")
                    {
                        if (code.Contains("SH"))
                        {
                            var shopdetails = _ShopStockService.GetDetailsByItemCodeAndShopCode(item.ItemCode, code);
                            shopdetails.Quantity = shopdetails.Quantity - item.Quantity;
                            _ShopStockService.Update(shopdetails);

                            var stockitemdetails = _StockItemDistributionService.GetDetailsByItemCodeAndShopCode(item.ItemCode, code);
                            stockitemdetails.ItemQuantity = stockitemdetails.ItemQuantity - item.Quantity;
                            _StockItemDistributionService.Update(stockitemdetails);
                        }
                        else
                        {
                            var godowndetails = _GodownStockService.GetDetailsByItemCodeAndGodownCode(item.ItemCode, code);
                            godowndetails.Quantity = godowndetails.Quantity - item.Quantity;
                            _GodownStockService.Update(godowndetails);

                            var stockitemdetails = _StockItemDistributionService.GetDetailsByItemCodeAndGodownCode(item.ItemCode, code);
                            stockitemdetails.ItemQuantity = stockitemdetails.ItemQuantity - item.Quantity;
                            _StockItemDistributionService.Update(stockitemdetails);
                        }

                        var entrystockitems = _EntryStockItemService.getDetailsByItemCode(item.ItemCode);
                        if (entrystockitems != null)
                        {
                            entrystockitems.TotalQuantity = entrystockitems.TotalQuantity - item.Quantity;
                            _EntryStockItemService.Update(entrystockitems);
                        }
                        else
                        {
                            var openingstockitems = _OpeningStockService.GetDetailsByItemCode(item.ItemCode);
                            openingstockitems.TotalQuantity = openingstockitems.TotalQuantity - item.Quantity;
                            _OpeningStockService.UpdateStock(openingstockitems);
                        }
                    }
                }
                else
                {
                    item.PurchaseReturnNo = PurchaseReturnCode;
                    item.Quantity         = 0;
                    _PurchaseReturnItemService.Create(item);
                }
                count++;
            }
            var data = _InwardFromSupplierService.GetInwardByInwardNo(model.PurchaseReturnDetails.InwardNo);

            data.PurchaseReturn = "Yes";
            if (data.PurchaseReturnNo == null)
            {
                data.PurchaseReturnNo = PurchaseReturnCode;
            }
            else
            {
                data.PurchaseReturnNo = data.PurchaseReturnNo + "," + PurchaseReturnCode;
            }
            _InwardFromSupplierService.UpdateInward(data);

            //Store total tax and total amount of tax of PO
            int itemtaxcount = Convert.ToInt32(frmcol["ReturnItemTaxCount"]);

            model.PurchaseInventoryTaxDetails = new PurchaseInventoryTax();
            for (int i = 1; i <= itemtaxcount; i++)
            {
                string taxnumber   = "ReturnItemTaxNumber" + i;
                string taxamount   = "ReturnAddedTaxAmounthdn" + i;
                string amountontax = "ReturnAddedAmounthdn" + i;
                if (Convert.ToDouble(frmcol[taxamount]) != 0)
                {
                    model.PurchaseInventoryTaxDetails.Code      = PurchaseReturnCode;
                    model.PurchaseInventoryTaxDetails.Amount    = frmcol[amountontax];
                    model.PurchaseInventoryTaxDetails.Tax       = frmcol[taxnumber];
                    model.PurchaseInventoryTaxDetails.TaxAmount = frmcol[taxamount];
                    _PurchaseInventoryTaxService.Create(model.PurchaseInventoryTaxDetails);
                }
            }

            var    details = _PurchaseReturnService.GetPurchaseByReturnNo(PurchaseReturnCode);
            string PRId    = Encode(details.Id.ToString());

            return(RedirectToAction("PurchaseReturnDetails/" + PRId));
        }