Пример #1
0
 public ActionResult Edit(int id, StockItemPurchaseModel model)
 {
     if (model.StockItemEntryList == null || model.StockItemEntryList.Count == 0)
     {
         TempData["message"] = "Add Purchase Items!";
         return(View(model));
     }
     if (ModelState.IsValid)
     {
         try
         {
             // TODO: Add update logic here
             pro.Udate(id, model);
             TempData["message"] = "Successfully Updated!";
             return(RedirectToAction("Index"));
         }
         catch (Exception e)
         {
             return(View(model));
         }
     }
     else
     {
         return(View(model));
     }
 }
Пример #2
0
        public ActionResult PurchaseVoucher(int id)
        {
            StockItemPurchaseModel model = new StockItemPurchaseModel();

            model = pro.GetPurchaseVoucherDetails(id);
            return(View(model));
        }
Пример #3
0
        //
        // GET: /StockItemPurchase/Edit/5

        public ActionResult Edit(int id, int rowid)
        {
            Session["rowid"] = rowid;
            EHMSEntities           ent   = new EHMSEntities();
            StockItemPurchaseModel model = new StockItemPurchaseModel();

            var obj = ent.StockItemPurchases.Where(x => x.ItemPurchaseId == id).SingleOrDefault();

            AutoMapper.Mapper.Map(obj, model);
            var PurchaseDetailList = ent.StockItemPurchaseDetails.Where(x => x.ItemPurchaseId == id).ToList();

            foreach (var item in PurchaseDetailList)
            {
                StockItemEntry itementry = new StockItemEntry();
                itementry.StockCategoryId    = item.SetupStockItemEntry.SetupStockCategory.StockCategoryID;
                itementry.StockSubCategoryId = item.SetupStockItemEntry.SetupStockSubCategory.StockSubCategoryID;
                itementry.Quantity           = item.Quantity;
                itementry.Rate             = item.Rate;
                itementry.StockItemEntryId = item.StockItemEntryId;
                var orderobj = (from sip in ent.StockItemPurchases
                                join spo in ent.StockPurchaseOrders
                                on sip.ItemOrderId equals spo.PurchaseOrderNo
                                join spod in ent.StockPurchaseOrderDetails
                                on spo.PurchaseOrderId equals spod.PurchaseOrderId
                                where sip.ItemPurchaseId == id && spod.ItemId == item.StockItemEntryId
                                select spod).SingleOrDefault();
                itementry.QuotQty  = orderobj.Quantity;
                itementry.QuotRate = orderobj.QuotationPrice;
                model.StockItemEntryList.Add(itementry);
            }
            return(View(model));
        }
Пример #4
0
        public StockItemPurchaseModel GetPurchaseVoucherDetails(int PurchaseNo)
        {
            StockItemPurchaseModel model = new StockItemPurchaseModel();

            using (EHMSEntities ent = new EHMSEntities())
            {
                var result = ent.StockItemPurchaseDetails.Where(x => x.ItemPurchaseId == PurchaseNo).ToList();
                foreach (var item in result)
                {
                    var ViewModel = new StockItemEntry()
                    {
                        StockCategoryId = HospitalManagementSystem.Utility.GetCategoryIdFromItemId(item.StockItemEntryId),
                        Quantity        = item.Quantity,
                        Rate            = item.Rate,

                        StockItemEntryId = item.StockItemEntryId
                    };
                    model.StockItemEntryList.Add(ViewModel);
                }
                var resultModel = ent.StockItemPurchases.Where(x => x.ItemPurchaseId == PurchaseNo);
                model.TotalAmount     = resultModel.FirstOrDefault().TotalAmount;
                model.StockSupplierId = resultModel.FirstOrDefault().StockSupplierId;
                model.CreatedDate     = resultModel.FirstOrDefault().CreatedDate;
                model.ItemPurchaseId  = PurchaseNo;
                model.Amount          = resultModel.FirstOrDefault().Amount;
                model.Discount        = resultModel.FirstOrDefault().Discount;
                model.VatAmount       = resultModel.FirstOrDefault().VatAmount;
            }

            return(model);
        }
Пример #5
0
        public ActionResult Index()
        {
            ViewBag.rowid    = Session["rowid"];
            Session["rowid"] = null;
            StockItemPurchaseModel model = new StockItemPurchaseModel();

            model.ItemPurchaseList = pro.GetList();
            return(View(model));
        }
Пример #6
0
        public ActionResult GetSum(StockItemPurchaseModel model)
        {
            decimal amount = 0;

            try
            {
                foreach (var item in model.StockItemEntryList)
                {
                    amount = amount + item.Quantity * item.Rate;
                }

                return(Json(amount, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(Json(0, JsonRequestBehavior.AllowGet));
            }
        }
Пример #7
0
        //
        // GET: /StockItemPurchase/Create

        public ActionResult Create()
        {
            EHMSEntities           ent   = new EHMSEntities();
            StockItemPurchaseModel model = new StockItemPurchaseModel();

            try
            {
                var          obj   = ent.StockItemPurchases.Where(x => x.ItemPurchaseId == ent.StockItemPurchases.Max(y => y.ItemPurchaseId)).SingleOrDefault();
                string[]     nums  = obj.StockEntryNo.Split('E');
                RecordNumGen rcnum = new RecordNumGen(nums[1]);

                model.StockEntryNo = "SE" + rcnum.RecNumGen();
            }
            catch
            {
                model.StockEntryNo = "SE001";
            }
            //TempData["id"] = ent.SetupStockCategory.Where(x => x.Status == true).FirstOrDefault().StockCategoryID;
            return(View(model));
        }
Пример #8
0
        public ActionResult Create(StockItemPurchaseModel model)
        {
            int flag = 0;

            if (model.StockItemEntryList == null || model.StockItemEntryList.Count == 0)
            {
                TempData["message"] = "Add Purchase Items!";
                return(View(model));
            }
            foreach (var item in model.StockItemEntryList)
            {
                if (item.Quantity > item.QuotQty || item.Rate > item.QuotRate)
                {
                    flag = 1;

                    Response.Redirect("SearchOrder?ipvalue=_" + model.ItemOrderId);
                }
            }
            if (ModelState.IsValid && flag == 0)
            {
                try
                {
                    // TODO: Add insert logic here
                    pro.Insert(model);
                    TempData["message"] = "Successfully Saved!";
                    //return RedirectToAction("Index");
                    //return RedirectToAction("createNewJV", "JVMaster");
                    return(View("ShowPurchaseJVDetails", model));
                }
                catch (Exception e)
                {
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }
Пример #9
0
        public ActionResult showDD()
        {
            StockItemPurchaseModel model = new StockItemPurchaseModel();

            return(View(model));
        }
Пример #10
0
 public ActionResult ShowPurchaseJVDetails(StockItemPurchaseModel model)
 {
     return(View(model));
 }
Пример #11
0
        public ActionResult SearchOrder(int id)
        {
            EHMSEntities           ent   = new EHMSEntities();
            StockItemPurchaseModel model = new StockItemPurchaseModel();
            decimal v    = 0;
            var     list = (from po in ent.StockPurchaseOrders
                            join pd in ent.StockPurchaseOrderDetails
                            on po.PurchaseOrderId equals pd.PurchaseOrderId
                            where po.PurchaseOrderId == id && pd.Status == true
                            select new { po, pd }).ToList();

            foreach (var item in list)
            {
                StockItemEntry itementry = new StockItemEntry();
                itementry.StockCategoryId    = item.pd.SetupStockItemEntry.SetupStockCategory.StockCategoryID;
                itementry.StockSubCategoryId = item.pd.SetupStockItemEntry.SetupStockSubCategory.StockSubCategoryID;
                itementry.QuotQty            = Convert.ToDecimal(item.pd.Quantity.ToString().Substring(0, item.pd.Quantity.ToString().IndexOf(".")));


                try
                {
                    v = (from sip in ent.StockItemPurchases
                         join sipd in ent.StockItemPurchaseDetails
                         on sip.ItemPurchaseId equals sipd.ItemPurchaseId
                         where sip.ItemOrderId == item.po.PurchaseOrderNo
                         where sipd.StockItemEntryId == item.pd.ItemId
                         select sipd
                         ).Sum(x => x.Quantity);
                }
                catch
                {
                    v = 0;
                }
                itementry.QuotQty          = itementry.QuotQty - v;
                itementry.QuotRate         = item.pd.QuotationPrice;
                itementry.StockItemEntryId = item.pd.ItemId;

                model.StockItemEntryList.Add(itementry);
            }
            try
            {
                model.StockSupplierId = list[0].pd.SupplierId;
                model.ItemOrderId     = list[0].po.PurchaseOrderNo;
            }
            catch
            {
                TempData["message"] = "Items not available!!";
                return(RedirectToAction("Index", "StockPurchaseOrder"));
            }
            try
            {
                string       num   = ent.StockItemPurchases.Max(x => x.StockEntryNo);
                string[]     nums  = num.Split('E');
                RecordNumGen rcnum = new RecordNumGen(nums[1]);

                model.StockEntryNo = "SE" + rcnum.RecNumGen();
            }
            catch
            {
                model.StockEntryNo = "SE001";
            }
            return(View("Create", model));
        }
Пример #12
0
        public void Insert(StockItemPurchaseModel model)
        {
            EHMSEntities ent = new EHMSEntities();
            var          obj = AutoMapper.Mapper.Map <StockItemPurchaseModel, StockItemPurchase>(model);

            obj.Status      = true;
            obj.CreatedBy   = 1;
            obj.CreatedDate = DateTime.Now;
            ent.StockItemPurchases.Add(obj);
            ent.SaveChanges();

            int id = ent.StockItemPurchases.Where(x => x.ItemPurchaseId == ent.StockItemPurchases.Max(y => y.ItemPurchaseId)).SingleOrDefault().ItemPurchaseId;

            foreach (var item in model.StockItemEntryList)
            {
                StockItemPurchaseDetail PurchaseDetail = new StockItemPurchaseDetail();
                var StockItemMaster = ent.StockItemMasters.Where(x => x.StockItemEntryId == item.StockItemEntryId).SingleOrDefault();
                var purchaseorder   = (from po in ent.StockPurchaseOrders
                                       join pd in ent.StockPurchaseOrderDetails
                                       on po.PurchaseOrderId equals pd.PurchaseOrderId
                                       where po.PurchaseOrderNo == model.ItemOrderId && pd.ItemId == item.StockItemEntryId
                                       select pd).SingleOrDefault();
                PurchaseDetail.ItemPurchaseId   = id;
                PurchaseDetail.StockItemEntryId = item.StockItemEntryId;
                PurchaseDetail.StockUnitId      = ent.SetupStockItemEntries.Where(x => x.StockItemEntryId == item.StockItemEntryId).SingleOrDefault().StockUnitId;
                PurchaseDetail.Quantity         = item.Quantity;
                PurchaseDetail.Rate             = item.Rate;
                PurchaseDetail.TotalAmount      = item.Quantity * item.Rate;
                PurchaseDetail.BatchNo          = item.BatchNo;
                PurchaseDetail.ExpiryDate       = item.ExpiryDate;
                PurchaseDetail.SupplierId       = model.StockSupplierId;
                PurchaseDetail.WarrentyDate     = item.WarrentyDate;
                PurchaseDetail.ManufacturedDate = item.ManufacturedDate;


                if (item.QuotQty == item.Quantity)
                {
                    purchaseorder.Status           = false;
                    ent.Entry(purchaseorder).State = System.Data.EntityState.Modified;
                }
                //else
                //{
                //    purchaseorder.Quantity = purchaseorder.Quantity - item.Quantity;
                //}
                StockItemMaster.Quantity         = StockItemMaster.Quantity + item.Quantity;
                ent.Entry(StockItemMaster).State = System.Data.EntityState.Modified;
                ent.StockItemPurchaseDetails.Add(PurchaseDetail);
            }
            ent.SaveChanges();
            //Automatic post jv
            int    VoucherNumberInt = HospitalManagementSystem.Utility.getMaxVoucherNumber("PV", 7);
            string VoucherNumber    = "PV" + "-" + Utility.GetCurrentFiscalYearNameInBS() + "-" + VoucherNumberInt.ToString();

            var objJVMaster = new JVMaster()
            {
                AccountNumber   = "1",
                BillNumber      = "123",
                VerifiedBy      = 45,
                TransactionDate = DateTime.Today,
                TotalAmount     = model.TotalAmount,
                Status          = false,
                Narration1      = "From Stock",
                Narration2      = "From Stock",
                JvType          = "PV",
                CreatedBy       = HospitalManagementSystem.Utility.GetCurrentLoginUserId(),
                CreatedDate     = DateTime.Today,
                FiscalYearId    = HospitalManagementSystem.Utility.GetCurrentFiscalYearID(),
                JvNumber        = VoucherNumber,
                FormName        = "Stock"
            };

            ent.JVMasters.Add(objJVMaster);
            ent.SaveChanges();

            int PaymentMode = model.PaymentType;//Cash or bank, credit (paryt name)
            //Dr Amount
            string AccountHeadName      = "";
            string AccountHeadNameParty = "";
            int    FeeTypeIdInt         = Convert.ToInt32(0);
            int    FeeTypeSubIDInt      = Convert.ToInt32(0);



            if (PaymentMode == 372)//credit
            {
                AccountHeadNameParty = HospitalManagementSystem.Utility.GetFeeTypeNameFromId(1831) + "-" + HospitalManagementSystem.Utility.GetFeeTypeNameFromId(1832);
                AccountHeadName      = HospitalManagementSystem.Utility.GetFeeTypeNameFromId(1833);
                FeeTypeIdInt         = 1831;
                FeeTypeSubIDInt      = 1832;
            }
            else if (PaymentMode == 373)//cash
            {
                AccountHeadNameParty = "CASH";
                AccountHeadName      = HospitalManagementSystem.Utility.GetFeeTypeNameFromId(1833);
                FeeTypeIdInt         = 372;
                FeeTypeSubIDInt      = 0;
            }
            else//bank
            {
                AccountHeadNameParty = "BANK";
                AccountHeadName      = HospitalManagementSystem.Utility.GetFeeTypeNameFromId(1833);
                FeeTypeSubIDInt      = 0;
            }



            var ObjJvDetails = new JVDetail()
            {
                BillNumber      = "",
                CrAmount        = Convert.ToDecimal(0),
                DrAmount        = model.TotalAmount,
                CreatedBy       = HospitalManagementSystem.Utility.GetCurrentLoginUserId(),
                CreatedDate     = DateTime.Today,
                DrOrCr          = "Dr",
                FeeTypeId       = 1833,
                FeeTypeName     = AccountHeadName,
                FeeTypeSubId    = 0,
                JVMasterId      = objJVMaster.JvMasterId,
                Narration       = "Post From stock",
                TransactionDate = DateTime.Today,
            };

            ent.JVDetails.Add(ObjJvDetails);

            //CR Amount

            var ObjJvDetailsCr = new JVDetail()
            {
                BillNumber      = "",
                CrAmount        = model.TotalAmount,
                DrAmount        = Convert.ToDecimal(0),
                CreatedBy       = HospitalManagementSystem.Utility.GetCurrentLoginUserId(),
                CreatedDate     = DateTime.Today,
                DrOrCr          = "Cr",
                FeeTypeId       = FeeTypeIdInt,//Party name (suppliers)
                FeeTypeName     = AccountHeadNameParty,
                FeeTypeSubId    = FeeTypeSubIDInt,
                JVMasterId      = objJVMaster.JvMasterId,
                Narration       = "Post From stock",
                TransactionDate = DateTime.Today,
            };

            ent.JVDetails.Add(ObjJvDetailsCr);


            SetupVoucherNumber vouchernumber = (from x in ent.SetupVoucherNumbers
                                                where x.JvType == "PV" && x.FiscalYear == 7
                                                select x).First();

            vouchernumber.VoucherNo = vouchernumber.VoucherNo + 1;
            ent.SaveChanges();
        }
Пример #13
0
        public void Udate(int id, StockItemPurchaseModel model)
        {
            EHMSEntities ent = new EHMSEntities();
            var          obj = ent.StockItemPurchases.Where(x => x.ItemPurchaseId == id).SingleOrDefault();

            model.ItemPurchaseId = obj.ItemPurchaseId;
            AutoMapper.Mapper.Map(model, obj);

            obj.Status      = true;
            obj.CreatedBy   = 1;
            obj.CreatedDate = DateTime.Now;


            ent.Entry(obj).State = System.Data.EntityState.Modified;

            foreach (var item in ent.StockItemPurchaseDetails.Where(x => x.ItemPurchaseId == model.ItemPurchaseId).ToList())
            {
                ent.StockItemPurchaseDetails.Remove(item);
                var purchaseorder = (from po in ent.StockPurchaseOrders
                                     join pd in ent.StockPurchaseOrderDetails
                                     on po.PurchaseOrderId equals pd.PurchaseOrderId
                                     where po.PurchaseOrderNo == model.ItemOrderId && pd.ItemId == item.StockItemEntryId
                                     select pd).SingleOrDefault();
                var objItem = ent.StockItemMasters.Where(x => x.StockItemEntryId == item.StockItemEntryId).SingleOrDefault();
                objItem.Quantity = objItem.Quantity - item.Quantity;

                purchaseorder.Quantity         = purchaseorder.Quantity + item.Quantity;
                ent.Entry(objItem).State       = System.Data.EntityState.Modified;
                ent.Entry(purchaseorder).State = System.Data.EntityState.Modified;
            }
            try
            {
                foreach (var item in model.StockItemEntryList)
                {
                    StockItemPurchaseDetail PurchaseDetail = new StockItemPurchaseDetail();
                    var purchaseorder = (from po in ent.StockPurchaseOrders
                                         join pd in ent.StockPurchaseOrderDetails
                                         on po.PurchaseOrderId equals pd.PurchaseOrderId
                                         where po.PurchaseOrderNo == model.ItemOrderId && pd.ItemId == item.StockItemEntryId
                                         select pd).SingleOrDefault();
                    var StockItemMaster = ent.StockItemMasters.Where(x => x.StockItemEntryId == item.StockItemEntryId).SingleOrDefault();
                    PurchaseDetail.ItemPurchaseId   = id;
                    PurchaseDetail.StockItemEntryId = item.StockItemEntryId;
                    PurchaseDetail.StockUnitId      = ent.SetupStockItemEntries.Where(x => x.StockItemEntryId == item.StockItemEntryId).SingleOrDefault().StockUnitId;
                    PurchaseDetail.Quantity         = item.Quantity;
                    PurchaseDetail.Rate             = item.Rate;
                    PurchaseDetail.TotalAmount      = item.Quantity * item.Rate;
                    if (item.QuotQty == item.Quantity)
                    {
                        purchaseorder.Status           = false;
                        ent.Entry(purchaseorder).State = System.Data.EntityState.Modified;
                    }
                    else
                    {
                        purchaseorder.Quantity = purchaseorder.Quantity - item.Quantity;
                    }
                    StockItemMaster.Quantity         = StockItemMaster.Quantity + item.Quantity;
                    ent.Entry(StockItemMaster).State = System.Data.EntityState.Modified;
                    ent.StockItemPurchaseDetails.Add(PurchaseDetail);
                }
            }
            catch
            {
            }
            ent.SaveChanges();
        }