示例#1
0
        public int Edit_InvoiceMaster(InvoiceMaster _user)
        {
            SqlParameter[] param = { new SqlParameter("@InvoiceId",     _user.InvoiceId),

                                                                                             /*  new SqlParameter("@InvoiceNo", _user.InvoiceNo),
                                                                                              * new SqlParameter("@CompanyId", _user.CompanyId),
                                                                                              * new SqlParameter("@CreatedDate", _user.CreatedDate),
                                                                                              * new SqlParameter("@CustomerName", _user.CustomerName),
                                                                                              * new SqlParameter("@Address", _user.Address),
                                                                                              * new SqlParameter("@PhoneNo", _user.PhoneNo),
                                                                                              * new SqlParameter("@EmailId", _user.EmailId),
                                                                                              * new SqlParameter("@SubTotalAmount", _user.SubTotalAmount),
                                                                                              * new SqlParameter("@TaxName1", _user.TaxName1),
                                                                                              * new SqlParameter("@TaxRate1", _user.TaxRate1),
                                                                                              * new SqlParameter("@TaxName2", _user.TaxName2),
                                                                                              * new SqlParameter("@TaxRate2", _user.TaxRate2),
                                                                                              * new SqlParameter("@DiscountRate", _user.DiscountRate),
                                                                                              * new SqlParameter("@AdditionCharge", _user.AdditionCharge),
                                                                                              * new SqlParameter("@NetAmount", _user.NetAmount),
                                                                                              * new SqlParameter("@Comment", _user.Comment),
                                                                                              * new SqlParameter("@SalePersonName", _user.SalePersonName), */
                                     new SqlParameter("@PaymentStatus", _user.PaymentStatus) /*,
                                                                                              * new SqlParameter("@LastUpdateDate", _user.LastUpdateDate), */
            };
            return(_da.Execute("Update_InvoiceMaster", param));
        }
        public void AddInvoice(IInvoice invoice)
        {
            InvoiceMaster master = new InvoiceMaster
            {
                InvoiceId   = invoice.InvoiceId,
                InvoiceName = invoice.InvoiceName,
                IsActive    = invoice.IsActive
            };

            _invoiceDbContext.InvoiceMaster.Add(master);

            foreach (var rule in invoice.Rules)
            {
                var rd = new RuleDetails
                {
                    RuleValue   = rule.RuleValue,
                    InvoiceId   = master.InvoiceId,
                    ParameterId = rule.ParameterId,
                    IsActive    = rule.IsActive
                };

                _invoiceDbContext.RuleDetails.Add(rd);
            }

            _invoiceDbContext.SaveChanges();
        }
        // GET: InvoiceMasters/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var           companyId     = Convert.ToInt32(Session["CompanyID"]);
            InvoiceMaster invoiceMaster = db.InvoiceMasters.Where(x => x.Company_Id == companyId && x.invoice_no == id).FirstOrDefault();

            foreach (var item in invoiceMaster.InvoiceDetails)
            {
                TempData["P_" + item.Product.Id] = AvailableQuantity(item.Product.Id);
            }

            if (invoiceMaster == null)
            {
                return(HttpNotFound());
            }

            var CompanyId = Convert.ToInt32(Session["CompanyID"]);

            ViewBag.invoice_no  = invoiceMaster.invoice_no;
            ViewBag.customer_id = new SelectList(db.Customers.Where(x => x.Company_Id == CompanyId), "Id", "CustomerName");
            ViewBag.product_id  = db.Products.Where(x => x.Company_Id == CompanyId).ToList();

            var year_id = Session["FinancialYearID"];
            var year    = db.FinancialYears.Find(year_id);

            ViewBag.StartYear = year.StartDate.ToString("dd-MMM-yyyy");
            ViewBag.EndYear   = year.EndDate.ToString("dd-MMM-yyyy");

            return(View(invoiceMaster));
        }
示例#4
0
 public DataTable SA_SelectInvoice(InvoiceMaster _user)
 {
     SqlParameter[] param =
     {
     };
     return(_da.GetFromDataTable("SA_Select_Invoice", param));
 }
示例#5
0
        // function to add invoice and corresponding rules to database
        public void AddInvoice(InvoicePostModel invoicePostModel)
        {
            //get invoice details from InvoicePostModel and save to database
            InvoiceMaster invoiceMaster = new InvoiceMaster()
            {
                invoiceName = invoicePostModel.invoiceName,
                //convert boolean isActive in InvoicePostModel to byte isActive for InvoiceMaster
                isActive = invoicePostModel.isActive ? Convert.ToByte(1) : Convert.ToByte(0)
            };

            tariffContext.InvoiceMaster.Add(invoiceMaster);

            //get each rule from InvoicePostModel and save to database with invoiceId from above saved invoice
            foreach (Rule rule in invoicePostModel.ruleList)
            {
                RuleDetails ruleDetails = new RuleDetails()
                {
                    invoiceId   = invoiceMaster.invoiceId,
                    parameterId = Convert.ToInt32(rule.parameterId),
                    ruleValue   = rule.ruleValue,
                    //convert boolean isActive in InvoicePostModel for each rule to byte isActive for RuleDetails
                    isActive = rule.isActive ? Convert.ToByte(1) : Convert.ToByte(0)
                };
                tariffContext.RuleDetails.Add(ruleDetails);
            }
            tariffContext.SaveChanges();
        }
示例#6
0
        public int Update(InvoiceModel model)
        {
            Mapper.CreateMap <InvoiceModel, InvoiceMaster>();
            InvoiceMaster objUser = Dbcontext.InvoiceMasters.SingleOrDefault(m => m.IID == model.IID);

            objUser = Mapper.Map(model, objUser);
            return(Dbcontext.SaveChanges());
        }
示例#7
0
 public DataTable SA_SelectInvoiceStatus(InvoiceMaster _user)
 {
     SqlParameter[] param =
     {
         new SqlParameter("@PaymentStatus", _user.PaymentStatus)
     };
     return(_da.GetFromDataTable("SA_Select_InvoiceStatus", param));
 }
示例#8
0
 public DataTable SelectInvoiceById(InvoiceMaster _user)
 {
     SqlParameter[] param =
     {
         new SqlParameter("@InvoiceId", _user.InvoiceId)
     };
     return(_da.GetFromDataTable("Select_InvoiceById", param));
 }
        public ActionResult Edit(InvoiceMaster invoiceMaster, List <InvoiceDetail> nInvoiceDetails, string deleted_items)
        {
            var ditems = deleted_items.Split(',').Where(s => s != String.Empty).ToList();

            if (ModelState.IsValid)
            {
                try
                {
                    invoiceMaster.created_at = DateTime.Now;

                    //db.Entry(invoiceMaster.InvoiceDetails).State = EntityState.Unchanged;
                    db.Entry(invoiceMaster).State = EntityState.Modified;
                    foreach (var item in invoiceMaster.InvoiceDetails)
                    {
                        db.Entry(item).State = EntityState.Modified;
                    }

                    db.SaveChanges();

                    if (nInvoiceDetails != null)
                    {
                        foreach (var item in nInvoiceDetails)
                        {
                            item.created_at = DateTime.Now;
                            item.invoice_id = invoiceMaster.Id;
                            db.InvoiceDetails.Add(item);
                        }
                        db.SaveChanges();
                    }

                    if (ditems.Count() > 0)
                    {
                        foreach (var item in ditems)
                        {
                            var a  = Convert.ToInt32(item);
                            var id = db.InvoiceDetails.Where(x => x.Id == a).FirstOrDefault();
                            if (id != null)
                            {
                                db.InvoiceDetails.Remove(id);
                            }
                        }
                        db.SaveChanges();
                    }
                }
                catch
                {
                }

                return(RedirectToAction("Index"));
            }
            var CompanyId = Convert.ToInt32(Session["CompanyID"]);

            ViewBag.invoice_no  = invoiceMaster.invoice_no;
            ViewBag.customer_id = new SelectList(db.Customers.Where(x => x.Company_Id == CompanyId), "Id", "CustomerName");
            ViewBag.product_id  = db.Products.Where(x => x.Company_Id == CompanyId).ToList();

            return(View(invoiceMaster));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            var           companyId     = Convert.ToInt32(Session["CompanyID"]);
            InvoiceMaster invoiceMaster = db.InvoiceMasters.Where(x => x.Company_Id == companyId && x.invoice_no == id).FirstOrDefault();

            db.InvoiceMasters.Remove(invoiceMaster);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> Create([Bind("ClienteId")] InvoiceMaster master)
        {
            master.InvoiceDetalles = invoiceDetalles;
            master.FechaFactura    = DateTime.Now;

            _context.InvoiceMaster.Add(master);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
示例#12
0
 public DataTable SA_SelectInvoiceDate(InvoiceMaster _user, DateTime StartDate, DateTime EndDate)
 {
     SqlParameter[] param =
     {
         new SqlParameter("@PaymentStatus", _user.PaymentStatus),
         new SqlParameter("@StartDate",     StartDate),
         new SqlParameter("@EndDate",       EndDate)
     };
     return(_da.GetFromDataTable("SA_Select_InvoiceDate", param));
 }
        public IActionResult Create()
        {
            ViewData["Clientes"]  = new SelectList(_context.Clientes, "Id", "Nombre");
            ViewData["Articulos"] = new SelectList(_context.Articulos, "Id", "Name");

            _master = new InvoiceMaster()
            {
                InvoiceDetalles = invoiceDetalles is null ? new List <InvoiceDetalle>() : invoiceDetalles
            };

            return(View(_master));
        }
示例#14
0
        public Object SaveInvoice(dynamic data)
        {
            InvoiceMaster invoiceMaster = JsonConvert.DeserializeObject <InvoiceMaster>(data.ToString());

            _invoiceLogic.AddorUpdate(invoiceMaster);

            return(new
            {
                success = true,
                InvoiceMaster = new { Record = invoiceMaster, TotalRecords = 1 },
                InvoiceDetails = new { Record = invoiceMaster.InvoiceDetails, TotalRecords = invoiceMaster.InvoiceDetails.Count }
            });
        }
示例#15
0
        //function to edit invoice details
        public void EditInvoice(int id, InvoiceMaster invoiceMaster)
        {
            tariffContext.Entry(invoiceMaster).State = EntityState.Modified;

            try
            {
                tariffContext.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }
        }
示例#16
0
 public int Insert(InvoiceModel model)
 {
     try
     {
         Mapper.CreateMap <InvoiceModel, InvoiceMaster>();
         InvoiceMaster objUser = Mapper.Map <InvoiceMaster>(model);
         Dbcontext.InvoiceMasters.Add(objUser);
         return(Dbcontext.SaveChanges());
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
示例#17
0
 public InvoiceModel getByID(int id)
 {
     try
     {
         Mapper.CreateMap <InvoiceMaster, InvoiceModel>();
         InvoiceMaster objCityMaster = Dbcontext.InvoiceMasters.Where(m => m.IID == id).SingleOrDefault();
         InvoiceModel  objCityItem   = Mapper.Map <InvoiceModel>(objCityMaster);
         return(objCityItem);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        // GET: InvoiceMasters/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var           companyId     = Convert.ToInt32(Session["CompanyID"]);
            InvoiceMaster invoiceMaster = db.InvoiceMasters.Where(x => x.Company_Id == companyId && x.invoice_no == id).FirstOrDefault();

            if (invoiceMaster == null)
            {
                return(HttpNotFound());
            }
            return(View(invoiceMaster));
        }
示例#19
0
 public bool DeleteByID(int id)
 {
     try
     {
         Mapper.CreateMap <InvoiceMaster, InvoiceModel>();
         InvoiceMaster objCityMaster = Dbcontext.InvoiceMasters.Where(m => m.IID == id).SingleOrDefault();
         Dbcontext.InvoiceMasters.Remove(objCityMaster);
         Dbcontext.SaveChanges();
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
        public ActionResult Create(InvoiceMaster invoice)
        {
            if (ModelState.IsValid)
            {
                invoice.created_at = DateTime.Now;
                db.InvoiceMasters.Add(invoice);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            var CompanyId = Convert.ToInt32(Session["CompanyID"]);

            ViewBag.customer_id = new SelectList(db.Customers.Where(x => x.Company_Id == CompanyId), "Id", "CustomerName");
            ViewBag.product_id  = db.Products.Where(x => x.Company_Id == CompanyId).ToList();

            return(View());
        }
示例#21
0
        public IActionResult EditInvoiceMaster([FromRoute] int id, [FromBody] InvoiceMaster invoiceMaster)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != invoiceMaster.invoiceId)
            {
                return(BadRequest());
            }

            tariffService.EditInvoice(id, invoiceMaster);

            return(NoContent());
        }
示例#22
0
 public InvoiceViewModel(int PageMode)
 {
     try
     {
         Mode = PageMode;
         if (pxy == null)
         {
             pxy = new DataServiceClient();
         }
         objInvoiceMaster  = new InvoiceMaster();
         lstStatus         = new ObservableCollection <Lookup>();
         lstInvoiceProduct = new ObservableCollection <InvoiceProduct>();
         lstVendor         = new ObservableCollection <VendorMaster>();
         lstProduct        = new ObservableCollection <ProductList>();
         lstSearch         = new ObservableCollection <Search>
         {
             new Search {
                 ID = 1, Desc = "InvoiceNo"
             },
             new Search {
                 ID = 2, Desc = "OrderID"
             }
         };
         searchMode = 2;
         lstVendor  = pxy.GetVendorList();
         lstProduct = pxy.GetProductList();
         lstStatus  = pxy.GetSubLookupList(Const.InvoiceStatus);
         cmdSearch  = new DelegateCommand <object>(cmdSearch_Execute, cmdSearch_CanExecute);
         cmdSave    = new DelegateCommand <object>(cmdSave_Execute, cmdSave_CanExecute);
         cmdClear   = new DelegateCommand <object>(cmdClear_Execute);
         cmdAdd     = new DelegateCommand <object>(cmdAdd_Execute, canExecute);
         cmdDelete  = new DelegateCommand <object>(cmdDelete_Execute, canExecute);
         cmdGST     = new DelegateCommand <object>(cmdGST_Execute);
         ModeAction();
         IsCSGST = false;
         IsIGST  = false;
     }
     catch (FaultException ex)
     {
         UIHelper.ShowErrorMessage(ex.Message);
     }
 }
示例#23
0
        public InvoiceMaster CommitAction(Boolean iscommit, int id)
        {
            InvoiceMaster q = (from invmstr in cntxt.InvoiceMasters
                               where invmstr.InvoicemasterID == id
                               select invmstr).FirstOrDefault();

            q.IsCommited = true;

            foreach (InvoiceDetail element in q.InvoiceDetails.ToList())
            {
                Product p = cntxt.Products.Find(element.ProductId);

                p.IsDelivered  = true;
                p.IsAvailable  = false;
                p.DeliveredQty = element.Qty;
            }

            cntxt.SaveChanges();
            return(q);
        }
示例#24
0
        public ActionResult SinglePrint(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var           companyId     = Convert.ToInt32(Session["CompanyID"]);
            InvoiceMaster invoiceMaster = db.InvoiceMasters.Where(x => x.CompanyId == companyId && x.invoice_no == id).FirstOrDefault();

            if (invoiceMaster != null)
            {
                string footer = String.Format("--footer-center \"E & O.E. - Subject to Jaipur Jurisdiction only - For {0}\"", invoiceMaster.Company.Name);

                PrinterModel pm = new PrinterModel()
                {
                    No        = invoiceMaster.invoice_no,
                    Company   = invoiceMaster.Company,
                    CreatedOn = (invoiceMaster.created_on.HasValue) ? invoiceMaster.created_on.Value : DateTime.Now,
                    Customer  = invoiceMaster.Customer.CustomerName,
                    ShowTotal = true,
                    Discount  = (invoiceMaster.discount.HasValue) ? invoiceMaster.discount.Value : 0,
                    Gross     = invoiceMaster.gross_amount,
                    NetTotal  = invoiceMaster.net_amount,
                    Items     = invoiceMaster.InvoiceDetails.Select(x => new PrinterItem()
                    {
                        Particular = x.Product.ProductName,
                        Pcs        = x.quantity,
                        Rate       = x.sale_rate
                    })
                                .ToList()
                };

                return(new ViewAsPdf("SinglePrint", pm)
                {
                    PageSize = Rotativa.Options.Size.A4,
                    CustomSwitches = footer
                });
            }

            return(HttpNotFound());
        }
示例#25
0
        private void cmdSave_Execute(object obj)
        {
            try
            {
                if (Mode == PageMode.Add || Mode == PageMode.Modify)
                {
                    UpdateValues();

                    if (pxy.InsertUpdateInvoice(objInvoiceMaster, Global.UserID, Mode))
                    {
                        UIHelper.ShowMessage("Data Saved Successfully");
                        objInvoiceMaster = new InvoiceMaster();
                    }
                }
                else if (Mode == PageMode.Delete)
                {
                    if (pxy.DeleteInvoice(InvoiceNo))
                    {
                        UIHelper.ShowMessage("Data Deleted Successfully");
                        objInvoiceMaster = new InvoiceMaster();
                    }
                }
                else if (Mode == PageMode.Browse)
                {
                    var InvoiceProduct = objInvoiceMaster.lstInvoiceProduct.FirstOrDefault(p => p.Status != 2);
                    if (InvoiceProduct == null)
                    {
                        UIHelper.ShowErrorMessage("Returned Invoice!");
                        return;
                    }
                    Views.GenReports win = new Views.GenReports(InvoiceNo, InvoiceProduct.InvoiceDate);
                    win.ShowDialog();
                }
            }
            catch (FaultException ex)
            {
                UIHelper.ShowErrorMessage(ex.Message);
            }
        }
示例#26
0
        private void CallAllRecurringInvoice()
        {
            this.objRecurringMasterDT = this.objRecurringMasterBll.GetAllActiveTodayRecurring();
            if (this.objRecurringMasterDT.Rows.Count <= 0)
            {
                return;
            }
            for (int index = 0; index < this.objRecurringMasterDT.Rows.Count; ++index)
            {
                int      iRecurringID     = int.Parse(this.objRecurringMasterDT.Rows[index]["RecurringID"].ToString());
                int      num1             = int.Parse(this.objRecurringMasterDT.Rows[index]["CompanyID"].ToString());
                int      num2             = int.Parse(this.objRecurringMasterDT.Rows[index]["ClientID"].ToString());
                int      iFrequencyID     = int.Parse(this.objRecurringMasterDT.Rows[index]["HowOften"].ToString());
                DateTime dtNextDate       = DateTime.Parse(this.objRecurringMasterDT.Rows[index]["NextDate"].ToString());
                string   str1             = this.objRecurringMasterDT.Rows[index]["RemainingInvoice"].ToString();
                bool     bRecurringActive = true;
                string   s;
                try
                {
                    s = int.Parse(str1.Trim()).ToString();
                }
                catch (Exception ex)
                {
                    s = "-1";
                }
                this.objFrequencyMasterDT = this.objFrequencyMasterBll.GetDataByFrequencyID(iFrequencyID);
                if (this.objFrequencyMasterDT.Rows.Count > 0)
                {
                    int num3 = int.Parse(this.objFrequencyMasterDT.Rows[0]["NoOfDays"].ToString());
                    dtNextDate = dtNextDate.AddDays((double)num3);
                }
                string sRemainingInvoice;
                switch (s)
                {
                case "-1":
                    sRemainingInvoice = "infinite";
                    break;

                default:
                    sRemainingInvoice = (int.Parse(s) - 1).ToString();
                    if (sRemainingInvoice == "0")
                    {
                        bRecurringActive = false;
                        break;
                    }
                    break;
                }
                this.objRecurringMasterBll.UpdateForSentInvoice(iRecurringID, sRemainingInvoice, dtNextDate, bRecurringActive);
                this.objInvoiceMasterDT = this.objInvoiceMasterBll.GetDataByCompanyID(num1);
                string str2 = this.objInvoiceMasterDT.Rows.Count <= 0 ? ConfigurationManager.AppSettings["InvoiceNoStart"] : InvoiceMaster.NextNum(this.objInvoiceMasterDT.Rows[this.objInvoiceMasterDT.Rows.Count - 1]["InvoiceNumber"].ToString());
                int    num4 = this.objInvoiceMasterBll.AddInvoice(str2, iRecurringID);
                this.objRecurringItemDetailDT = this.objRecurringItemDetailBll.GetDataByRecurringID(iRecurringID);
                if (this.objRecurringItemDetailDT.Rows.Count > 0)
                {
                    this.objInvoiceItemDetailBll.AddInvoiceItem(num4, iRecurringID);
                }
                this.objRecurringTaskDetailDT = this.objRecurringTaskDetailBll.GetDataByRecurringID(iRecurringID);
                if (this.objRecurringTaskDetailDT.Rows.Count > 0)
                {
                    this.objInvoiceTaskDetailBll.AddInvoiceTask(num4, iRecurringID);
                }
                this.objCompanyClientMasterDT = this.objCompanyClientMasterBll.GetDataByCompanyClientID(num2);
                if (this.objCompanyClientMasterDT.Rows.Count > 0)
                {
                    this.SendMail(this.objCompanyClientMasterDT.Rows[0]["Email"].ToString(), str2, num4, num2, num1);
                }
            }
        }
示例#27
0
 public void Update(InvoiceMaster invoiceMaster)
 {
     throw new NotImplementedException();
 }
示例#28
0
        private void InvoiceMaster_Click(object sender, RoutedEventArgs e)
        {
            InvoiceMaster invMaster = new InvoiceMaster();

            invMaster.ShowDialog();
        }
 public InvoiceMaster AddorUpdate(InvoiceMaster master)
 {
     _invoiceMasterRepository.AddOrUpdate(master);
     _invoiceMasterRepository.SaveChanges();
     return(master);
 }
示例#30
0
        public dynamic ToDBCampAdmission(CampAdmission CampAdmission)
        {
            if (CampAdmission.Patient_Name != null || CampAdmission.Patient_Name != "")
            {
                var mrNo         = "";
                var uin          = "";
                var aadNo        = "";
                var ipano        = "";
                var ipno         = "";
                var invno        = "";
                var patientClass = "";

                var statusDesc = Context.State_Master.Where(x => x.State_Name == CampAdmission.C_StateDesc).Select(x => x.State_Code).FirstOrDefault();
                CampAdmission.StateCode = statusDesc;


                var CountryDesc = Context.Country_Master.Where(x => x.Country_Name == CampAdmission.C_CountryDesc).Select(x => x.Country_Code).FirstOrDefault();
                CampAdmission.ContryCode = CountryDesc;

                var Districtcodes = Context.District_Master.Where(x => x.District_Name == CampAdmission.C_DistrictDesc).Select(x => x.District_Code).FirstOrDefault();
                CampAdmission.DistrictCode = Districtcodes;

                var talukcodes = Context.Taluk_Master.Where(x => x.Taluk_Name == CampAdmission.C_TalukDesc).Select(x => x.Taluk_Code).FirstOrDefault();
                CampAdmission.Taluk_Code = talukcodes;



                if (CampAdmission.IsCOTChecked == "Y")
                {
                    CampAdmission.bedCharges = Context.StateBedCharges.Where(o => o.StateID == CampAdmission.StateCode).Select(x => x.COTCharges).FirstOrDefault();
                }
                else if (CampAdmission.IsMATChecked == "Y")
                {
                    CampAdmission.bedCharges = Context.StateBedCharges.Where(o => o.StateID == CampAdmission.StateCode).Select(x => x.MATCharges).FirstOrDefault();
                }



                mrNo = GenerateRunningCtrlNo("MR_NO_CAMP", CampAdmission.Site_ID);


                uin = GenerateRunningCtrlNo("UIN", CampAdmission.Site_ID);
                CampAdmission.mr_no = mrNo;
                CampAdmission.uin   = uin;

                if (CampAdmission.IDProof_Desc == "Aadhar Card")
                {
                    aadNo = CampAdmission.IDProof_Code;
                }

                //if (CampAdmission.bedCharges > 0)
                //{
                //    ipano = GenerateRunningCtrlNo("CIPA_NO", CampAdmission.Site_ID);
                //    patientClass = "SITE03";
                //}
                //else if (CampAdmission.bedCharges == 0)
                //{
                ipano        = GenerateRunningCtrlNo("FIPA_NO", CampAdmission.Site_ID);
                patientClass = "SITE02";
                // }

                ipno = GenerateRunningCtrlNo("CAMP_IP_NO ", CampAdmission.Site_ID);
                CampAdmission.ipno = ipno;
                invno = GenerateRunningCtrlNo("INVOICE_NO", CampAdmission.Site_ID);

                var icpl = new Ip_Camp_Place();
                icpl.mr_no           = mrNo;
                icpl.ipa_no          = ipano;
                icpl.Admission_place = CampAdmission.Admission_Place;
                icpl.Sysdate         = DateTime.Now;
                Context.ip_camp_place.Add(icpl);

                var ipadmissions = Context.Free_Accommodations_Master.Where(x => x.ROOM_NO == CampAdmission.Room_No).FirstOrDefault();
                if (ipadmissions != null)
                {
                    ipadmissions.LAST_ALLOCATION     -= 1;
                    Context.Entry(ipadmissions).State = EntityState.Modified;
                }

                var isOPeXists = Context.Op_Visit_Datewise.Where(x => x.Date == DateTime.Now.Date && x.Patient_Class == patientClass).Count();
                var opvd       = Context.Op_Visit_Datewise.Where(x => x.Patient_Class == patientClass && x.Date == DateTime.Now.Date).FirstOrDefault();
                var opvdw      = new OpVisitDatewise();
                opvdw.Patient_Class = patientClass;
                opvdw.Date          = DateTime.Now.Date;
                opvdw.New           = 0;
                opvdw.Old           = 0;

                opvdw.Week_Day = (int)DateTime.Now.DayOfWeek;
                if (isOPeXists > 0)
                {
                    //Context.Op_Visit_Datewise.Update(opvdw);
                    if (opvd != null)
                    {
                        opvd.Admission           += 1;
                        Context.Entry(opvd).State = EntityState.Modified;
                    }
                }
                //else if (isOPeXists == 0)
                //{
                //    Context.Op_Visit_Datewise.Add(opvdw);
                //}



                var PRM = new PatientRegistrationMaster();
                PRM.MR_NO             = mrNo;
                PRM.IP_NO             = ipno;
                PRM.Patient_Class     = patientClass;
                PRM.Patient_Name      = CampAdmission.Patient_Name;
                PRM.Next_Of_Kin       = $"{CampAdmission.Next_Of_Kin_Prefix},{CampAdmission.Next_Of_Kin_Suffix}";
                PRM.Date_Of_Birth     = CampAdmission.Patient_DOB;
                PRM.Sex               = CampAdmission.Gender;
                PRM.Door              = CampAdmission.Door;
                PRM.Street_Locality   = CampAdmission.Street;
                PRM.Pincode           = CampAdmission.Pincode;
                PRM.Town_City         = CampAdmission.City;
                PRM.Taluk             = CampAdmission.Taluk_Code;
                PRM.District          = CampAdmission.DistrictCode;
                PRM.State             = CampAdmission.StateCode;
                PRM.Country           = CampAdmission.ContryCode;
                PRM.Phone             = CampAdmission.Phone_No;
                PRM.Registered_Date   = DateTime.Now;
                PRM.Last_Visit_Date   = DateTime.Now;
                PRM.AadhaarNo         = CampAdmission.Master.AadhaarNo;
                PRM.Base_Unit         = "LC15";
                PRM.Last_Unit_Visited = "LC15";
                PRM.Visit_Number      = 1;
                PRM.Sysdate           = DateTime.Now;
                PRM.UIN               = uin;
                //PRM.AadhaarNo = aadNo;
                PRM.SiteId = CampAdmission.Site_ID;
                Context.Patient_Registration_Master.Add(PRM);

                var PRD = new PatientRegistrationDetail();
                PRD.MR_NO           = mrNo;
                PRD.Allocation_Code = "LC15";
                PRD.Visit_Date      = DateTime.Now;
                PRD.Visit_Number    = 1;
                PRD.Category_Code   = "CATC002";
                PRD.Type_Code       = "PTY001";
                PRD.Instance_Code   = "INSC001";
                PRD.Speciality_Code = "SPC001";
                PRD.Sysdate         = DateTime.Now;
                PRD.Allocation_Code = "LC007";
                PRD.Camp_Code       = CampAdmission.Camp_Code;
                PRD.UIN             = uin;
                PRD.SiteId          = CampAdmission.Site_ID;
                Context.Patient_Registration_Detail.Add(PRD);


                var LM = new MRLocationMaster();
                LM.MR_NO         = mrNo;
                LM.Location_Code = "LC15";
                LM.Patient_Name  = CampAdmission.Patient_Name;
                LM.Town_City     = CampAdmission.City;
                LM.UIN           = uin;
                LM.SiteId        = 1;
                Context.MR_Location_Master.Add(LM);


                var PS = new PatientStatus();
                PS.Visit_Date    = DateTime.Now;
                PS.MR_NO         = mrNo;
                PS.Assign_Doctor = "N";
                PS.UIN           = uin;
                //PS.PurposeId = Convert.ToInt32( CampAdmission.Camp_Code);
                PS.PurposeId = 42;
                PS.SiteId    = CampAdmission.Site_ID;
                Context.Patient_Status.Add(PS);

                if (CampAdmission.History.Count() > 0)
                {
                    foreach (var item in CampAdmission.History.ToList())
                    {
                        var PH = new PatientHistory();
                        PH.UIN   = uin;
                        PH.MR_NO = mrNo;
                        PH.PatientHistoryDescription = item.PatientHistoryDescription;
                        PH.DurationMonth             = item.DurationMonth;
                        PH.DurationYear = item.DurationYear;
                        PH.CreatedUTC   = DateTime.Now;
                        PH.CreatedBy    = Convert.ToInt32(CampAdmission.Operator_ID);
                        PH.SiteId       = CampAdmission.Site_ID;
                        Context.PatientHistory.AddRange(PH);
                    }
                }

                var IDPD = new IDProofDtl();
                IDPD.UIN        = uin;
                IDPD.MR_NO      = mrNo;
                IDPD.PROOF_TYPE = CampAdmission.IDProof_Code;
                IDPD.PROOF_NO   = CampAdmission.IDProof_Desc;
                IDPD.CASTE_CODE = Convert.ToString(CampAdmission.Caste_Code);
                Context.IDProof_Dtl.Add(IDPD);

                var IPSD = new IpSurgeryDtl();
                IPSD.Ipa_No            = ipano;
                IPSD.Surgery_Code      = CampAdmission.Surgery_Code;
                IPSD.Surgery_Type_Code = "T";
                IPSD.Anaesthesia       = "AN002";
                IPSD.Doctor_Code       = "401";
                IPSD.Eye              = CampAdmission.Eye_Code;
                IPSD.Surgery_Date     = DateTime.Now.Date;
                IPSD.Surgery_Approval = "Y";
                IPSD.Surgery_Done     = "N";
                IPSD.SiteId           = CampAdmission.Site_ID;
                IPSD.UIN              = uin;
                Context.Ip_Surgery_Dtl.Add(IPSD);

                var IPAcc = new IPAccount();
                IPAcc.Ipa_No    = ipano;
                IPAcc.Mr_No     = mrNo;
                IPAcc.Status    = "ADM";
                IPAcc.System    = DateTime.Now;
                IPAcc.Ip_No     = ipno;
                IPAcc.Siteid    = CampAdmission.Site_ID;
                IPAcc.Uin       = uin;
                PRM.IPAccountIC = new List <IPAccount>()
                {
                    IPAcc
                };

                var IPA = new IPAdmission();
                IPA.Ipa_No                  = ipano;
                IPA.Ip_No                   = ipno;
                IPA.Mr_No                   = mrNo;
                IPA.Surgery_Code            = CampAdmission.Surgery_Code;
                IPA.Surgery_Type_Code       = "T";
                IPA.Admission_Date          = DateTime.Now;
                IPA.Room_Type               = "FREETYPE7";
                IPA.Room_No                 = CampAdmission.Room_No;
                IPA.Expected_Discharge_Date = DateTime.Now.AddDays(2);
                IPA.Doctor_Code             = "401";
                IPA.Category_Code           = "CATC002";
                IPA.Anesthesia              = "AN002";
                IPA.Discharge_Status        = "ADM";
                IPA.Eye = CampAdmission.Eye_Code;
                //IPA.Ipa_No = ipno;
                IPA.Room_Type2    = null;
                IPA.Lens_Code     = CampAdmission.Lens_Code;
                IPA.Operator_Code = CampAdmission.Operator_ID;
                IPA.Camp_Code     = CampAdmission.Camp_Code;
                IPA.UIN           = uin;
                IPA.SiteId        = CampAdmission.Site_ID;

                PRM.IPAdmissionIC = new List <IPAdmission>()
                {
                    IPA
                };


                if (CampAdmission.bedCharges > 0)
                {
                    var IM = new InvoiceMaster();
                    IM.Invoice_No             = invno;
                    IM.Invoice_Date           = DateTime.Now;
                    IM.Invoice_Value          = float.Parse(CampAdmission.bedCharges.ToString());
                    IM.Invoice_Received_Value = float.Parse(CampAdmission.bedCharges.ToString());
                    IM.Module_Code            = "MOD4";
                    IM.SiteId          = CampAdmission.Site_ID;
                    IM.UIN             = uin;
                    IM.MR_NO           = mrNo;
                    PRM.Invoice_Master = new List <InvoiceMaster>()
                    {
                        IM
                    };

                    var accDtl = new IpAccountDtl();
                    if (CampAdmission.bedCharges > 0)
                    {
                        accDtl.Ipa_Sl_No      = Convert.ToInt32(GenerateRunningCtrlNo("IPA_SL_NO", CampAdmission.Site_ID));
                        accDtl.Ipa_No         = ipano;
                        accDtl.Cash_Flow_Code = "501";
                        accDtl.Tinvoice_No    = invno;
                        accDtl.Sysdate        = DateTime.Now;
                        accDtl.Date           = DateTime.Now.Date;
                        accDtl.Cost_Value     = Convert.ToDecimal(CampAdmission.bedCharges);
                        accDtl.UIN            = uin;
                        accDtl.SiteId         = CampAdmission.Site_ID;
                        Context.Ip_Account_Dtl.Add(accDtl);
                    }

                    var cashPaid = new CashPaid();
                    if (CampAdmission.bedCharges > 0)
                    {
                        cashPaid.Operator_Code    = CampAdmission.Operator_ID;
                        cashPaid.Module_Code      = "MOD4";
                        cashPaid.MR_NO            = mrNo;
                        cashPaid.IPA_NO           = ipano;
                        cashPaid.Receipt_NO       = GenerateRunningCtrlNo("FRES_RECEIPT_NO", CampAdmission.Site_ID);
                        cashPaid.Fees_Paid        = Convert.ToDouble(CampAdmission.bedCharges);
                        cashPaid.Date             = DateTime.Now.Date;
                        cashPaid.Transaction_Code = "RECPT";
                        cashPaid.Category_Code    = "CATC001";
                        cashPaid.Sysdate          = DateTime.Now;
                        cashPaid.OP_IP_Flag       = "IP";
                        cashPaid.Paymode_Code     = "PC001";
                        cashPaid.Outstanding      = "N";
                        cashPaid.Invoice_No       = invno;
                        cashPaid.UIN    = uin;
                        cashPaid.SiteId = CampAdmission.Site_ID;
                        Context.Cash_Paid.Add(cashPaid);
                    }
                }
            }
            try
            {
                if (Context.SaveChanges() > 0)
                {
                    return new
                           {
                               Success      = true,
                               name         = CampAdmission.Patient_Name,
                               eyes         = CampAdmission.Eye_Code,
                               taluks       = CampAdmission.C_TalukDesc,
                               DistrictDesc = CampAdmission.C_DistrictDesc,
                               StateDesc    = CampAdmission.C_StateDesc,
                               CountryDesc  = CampAdmission.C_CountryDesc,
                               MRNO         = CampAdmission.mr_no,
                               UIN          = CampAdmission.uin,
                               Siteid       = CampAdmission.Site_ID,
                               campcodes    = CampAdmission.Camp_Code,
                               campnames    = Context.CAMP_MASTER.Where(x => x.CAMP_CODE == CampAdmission.Camp_Code).Select(x => x.CAMP_NAME).FirstOrDefault(),
                               ages         = CampAdmission.Age,
                               sex          = CampAdmission.Gender,
                               kins         = CampAdmission.Next_Of_Kin_Suffix,
                               room         = CampAdmission.Room_No,
                               town         = CampAdmission.City,
                               numer        = CampAdmission.Phone_No,
                               ipnos        = CampAdmission.ipno,

                               VacantBed = Context.Free_Accommodations_Master.Where(x => x.ROOM_NO == CampAdmission.Room_No).Select(x => x.LAST_ALLOCATION).FirstOrDefault(),
                               Endrange  = Context.Free_Accommodations_Master.Where(x => x.ROOM_NO == CampAdmission.Room_No).Select(x => x.END_RANGE).FirstOrDefault(),
                           }
                }
                ;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return(new
            {
                Success = false,
                message = "Details not saved!"
            });
        }