public ActionResult UpdateClientsPayment(ClientsPayment clientspayment)
        {
            try {
                using (ArchitectureEntitiesModel entities = new ArchitectureEntitiesModel())
                {
                    var getclientpayment = ObjEntities.ClientsPayments.Where(e => e.Client == clientspayment.Client).FirstOrDefault();
                    var getclient        = ObjEntities.ClientsViews.Where(e => e.Id == clientspayment.Client).FirstOrDefault();

                    if (getclientpayment != null)
                    {
                        if (Convert.ToInt32(clientspayment.Paid_Amount) <= Convert.ToInt32(getclient.Amount))
                        {
                            int Due = Convert.ToInt32(getclient.Amount) - Convert.ToInt32(clientspayment.Paid_Amount);
                            getclientpayment.Paid_Amount = clientspayment.Paid_Amount;
                            getclientpayment.Due_Amount  = Due.ToString();
                            //getclientpayment.EntryDate = Convert.ToDateTime(clientspayment.Month);
                            entities.SaveChanges();
                            TempData["Success"] = "Data Updated successfully";
                        }
                        else
                        {
                            TempData["Warning"] = "Paid Amount Should be less than due amount!";
                            return(RedirectToAction("EditClientsPayment"));
                        }
                    }

                    //if (long.Parse(clientspayment.Paid_Amount.ToString()) <= long.Parse(getclientpayment.Due_Amount.ToString()))
                    //{
                    //    ClientsPayment updatedclientspayment = (from c in entities.ClientsPayments
                    //                                            where c.Id == clientspayment.Id
                    //                                            select c).FirstOrDefault();

                    //    updatedclientspayment.Client = clientspayment.Client;
                    //    updatedclientspayment.Month = clientspayment.Month;
                    //    updatedclientspayment.Paid_Amount = Convert.ToString(long.Parse((updatedclientspayment.Paid_Amount)) + long.Parse((clientspayment.Paid_Amount)));
                    //    updatedclientspayment.Due_Amount = Convert.ToString(long.Parse((getclient.Amount)) - long.Parse((updatedclientspayment.Paid_Amount)));
                    //    updatedclientspayment.Month = clientspayment.Month;
                    //    updatedclientspayment.EntryDate = DateTime.Now;
                    //    entities.SaveChanges();
                    //    TempData["Success"] = "Successfully updated";
                    //}
                    //else
                    //{
                    //    TempData["Warning"] = "Paid Amount Should be less than due amount!";
                    //    return RedirectToAction("EditClientsPayment");
                    //}
                }
            }
            catch (Exception ex) { }

            return(RedirectToAction("AddPayments"));
        }
        public ActionResult EditClientsPayment(int id)
        {
            var clientspayment = new ClientsPayment();

            try
            {
                clientspayment = ObjEntities.ClientsPayments.Where(x => x.Id == id).FirstOrDefault();

                if (clientspayment != null)
                {
                    ViewBag.Id = id;
                    var Client = new SelectList(ObjEntities.ClientsViews.ToList(), "Id", "Name");
                    var Month  = new SelectList(ObjEntities.tblMonths.ToList(), "Id", "Month");
                    ViewData["ClientPayment"] = Client;
                    ViewData["MonthData"]     = Month;
                }

                ViewBag.Id          = id;
                TempData["Heading"] = 4;
            }
            catch (Exception ex) { }

            return(View(clientspayment));
        }
        public ActionResult AddPayments(ClientsPayment clientpayment)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //UpdateClientsPayment(clientpayment.Paid_Amount,clientpayment.Client);

                    using (ArchitectureEntitiesModel ObjEntities = new ArchitectureEntitiesModel())
                    {
                        var getclient = ObjEntities.ClientsViews.Where(e => e.Id == clientpayment.Client).FirstOrDefault();

                        //My Code Saad Bhatti
                        var chkData = ObjEntities.ClientsPayments.Where(c => c.Client == clientpayment.Client &&
                                                                        c.EntryDate.Year == clientpayment.Month.Year && c.EntryDate.Month == clientpayment.Month.Month).FirstOrDefault();
                        if (chkData != null)
                        {
                            if (Convert.ToInt32(getclient.Amount) >= Convert.ToInt32(clientpayment.Paid_Amount) + Convert.ToInt32(chkData.Paid_Amount))
                            {
                                if (long.Parse(clientpayment.Paid_Amount.ToString()) <= long.Parse(getclient.Amount.ToString()))
                                {
                                    int TotalAmount = Convert.ToInt32(getclient.Amount);
                                    int Due         = Convert.ToInt32(TotalAmount) - (Convert.ToInt32(clientpayment.Paid_Amount) + (Convert.ToInt32(chkData.Paid_Amount)));
                                    int Paid        = Convert.ToInt32(chkData.Paid_Amount) + Convert.ToInt32(clientpayment.Paid_Amount);
                                    chkData.Paid_Amount = Paid.ToString();
                                    chkData.Due_Amount  = Due.ToString();
                                    ObjEntities.SaveChanges();

                                    //clientpayment.EntryDate = DateTime.Now;

                                    //chkData.Due_Amount = Due.ToString();
                                    //ObjEntities.ClientsPayments.Add(clientpayment);
                                    //ObjEntities.SaveChanges();
                                    //int id1 = 0;
                                    //id1 = clientpayment.Id;
                                    //if (id1 > 0)
                                    //{

                                    // var getmonth = ObjEntities.tblMonth.Where(e => e.Id == clientpayment.Month).FirstOrDefault();
                                    TempData["Success"] = Session["UserName"] + " " + "Added" + " " + clientpayment.Paid_Amount + " " + "for" + " " + getclient.Name + " " + "for" + " " + "Month" + "-" + clientpayment.Month.Month;
                                    tblNotification tblnotification = new tblNotification();
                                    tblnotification.NotificationMessage = Session["UserName"] + " " + "Added" + " " + clientpayment.Paid_Amount + " " + "for" + " " + getclient.Name + " " + "for" + " " + "Month" + "-" + clientpayment.Month.Month;
                                    tblnotification.IsShow = 0;
                                    ObjEntities.tblNotifications.Add(tblnotification);
                                    ObjEntities.SaveChanges();
                                    //}
                                }
                                else
                                {
                                    TempData["Warning"] = "Paid Amount Should be less than due amount!";
                                }
                            }
                            else
                            {
                                TempData["Warning"] = "Paid Amount Should be less than due amount!";
                            }
                        }

                        else
                        {
                            int id = 0;
                            clientpayment.EntryDate  = Convert.ToDateTime(clientpayment.Month);
                            clientpayment.Due_Amount = Convert.ToString(long.Parse((getclient.Amount)) - long.Parse((clientpayment.Paid_Amount)));
                            ObjEntities.ClientsPayments.Add(clientpayment);
                            ObjEntities.SaveChanges();
                            id = clientpayment.Id;
                            if (id > 0)
                            {
                                // var getmonth = ObjEntities.tblMonth.Where(e => e.Id == clientpayment.Month).FirstOrDefault();
                                TempData["Success"] = Session["UserName"] + " " + "Added" + " " + clientpayment.Paid_Amount + "Payment" + " " + "for" + " " + getclient.Name + " " + "for" + " " + "Month" + "-" + clientpayment.Month;
                                tblNotification tblnotification = new tblNotification();
                                tblnotification.NotificationMessage = Session["UserName"] + " " + "Added" + " " + clientpayment.Paid_Amount + " " + "for" + " " + getclient.Name + " " + "for" + " " + "Month" + "-" + clientpayment.Month;
                                tblnotification.IsShow = 0;
                                ObjEntities.tblNotifications.Add(tblnotification);
                                ObjEntities.SaveChanges();
                            }
                        }
                    }
                }
                //var Clients = new SelectList(ObjEntities.ClientsView.ToList(), "Id", "Name");
                //ViewData["ClientPayment"] = Clients;
            }
            catch (Exception ex) { }

            return(RedirectToAction("AddPayments"));
        }