Exemplo n.º 1
0
        public bool CancelBillItems(int idnt, string items, string notes)
        {
            Bills bill = new Bills {
                Id = idnt
            };
            Users user = new Users {
                Id = long.Parse(HttpContext.User.FindFirst(ClaimTypes.Actor).Value)
            };

            List <string> Items = items.Split(new string[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList();

            foreach (var id in Items)
            {
                BillsItem item = new BillsItem {
                    Id           = Convert.ToInt64(id),
                    Bill         = bill,
                    VoidedBy     = user,
                    VoidedReason = notes
                };

                item.Void();
            }

            bill.ProcessedBy = user;
            bill.SetAutoFlag();

            return(true);
        }
Exemplo n.º 2
0
        public List <Bills> SearchBills(SearchBillsTemplate temp, IDbConnection conn)
        {
            string sql = @"
            select
               Mb.ID,Mb.BillsCode,Mb.Maker,Mb.MakerDate,Mb.CreateDate,Mb.Actived,Mb.IsCancleOut,Mb.IsRedBill,Mb.Remark,
               Msh.ID,Msh.StorehouseCode,Msh.StorehouseName,Msh.Actived,Msh.Remark,
               Mbt.ID,Mbt.Name,Mbt.IsOut,Mbt.Actived,Mbt.Remark,
               Mc.ID,Mc.CompanyCode,Mc.CompanyName,Mc.Actived,Mc.Remark,
               Mct.ID,Mct.CompanyTypeCode,Mct.CompanyTypeName,Mct.Actived,Mct.Remark 
            from MD_Bills as Mb 
            inner join MD_Storehouse as Msh on Mb.Storehouse_ID=Msh.ID 
            inner join MD_BillsType as Mbt on Mb.BillsType_ID=Mbt.ID 
            inner join MD_Company as Mc on Mb.Company_ID=Mc.ID
            inner join MD_CompanyType as Mct on Mc.CompanyType_ID=Mct.ID 
            where Mb.MakerDate between @FromDate and @ToDate
            and (Mc.CompanyCode like @CompanyCond or Mc.CompanyName like @CompanyCond)
            and (Mb.Maker like @Maker)
            ";
            List <SqlParameter> paramList = new List <SqlParameter>();

            paramList.Add(new SqlParameter("@FromDate", temp.FromDate));
            paramList.Add(new SqlParameter("@ToDate", temp.ToDate));
            paramList.Add(new SqlParameter("@CompanyCond", string.Format("%{0}%", temp.CompanyCond == null ? "" : temp.CompanyCond)));
            paramList.Add(new SqlParameter("@Maker", string.Format("%{0}%", temp.BillMaker == null ? "" : temp.BillMaker)));
            SqlDataReader reader = DataAccessUtil.ExecuteReader(sql, paramList, (SqlConnection)conn);
            List <Bills>  list   = new List <Bills>();

            while (reader.Read())
            {
                Bills bill = new Bills();
                BillModelHelper(reader, bill);
                list.Add(bill);
            }
            reader.Close();
            foreach (Bills b in list)
            {
                sql       = @"
                    Select Mbi.ID,Mbi.Count,Mbi.UnitPrice,Mbi.Money,Mbi.Remark,
                       Md.ID,Md.DrugCode,Md.DrugName,Md.UnitPrice,Md.Standard,Md.Unit,Md.Actived,Md.Remark,
                       Mdf.ID,Mdf.DrugFromCode,Mdf.DrugFromName,Mdf.Actived,Mdf.Remark,
                       Mdc.ID,Mdc.DrugCategoryCode,Mdc.DrugCategoryName,Mdc.Actived,Mdc.Remark
                    from MD_BillsItem as Mbi
                    inner join MD_Drugs as Md on Mbi.Drugs_ID=Md.ID 
                    inner join MD_DrugCategory as Mdc on Md.DrugCategory_ID=Mdc.ID
                    inner join MD_DrugFrom as Mdf on Md.DrugFrom_ID=Mdf.ID 
                    where Mbi.Bills_ID=@ID ";
                paramList = new List <SqlParameter>();
                paramList.Add(new SqlParameter("@ID", b.ID));
                reader = DataAccessUtil.ExecuteReader(sql, paramList, (SqlConnection)conn);
                while (reader.Read())
                {
                    BillsItem item = new BillsItem();
                    BillItemModelHelper(reader, item);
                    b.Items.Add(item);
                }
                reader.Close();
            }
            return(list);
        }
Exemplo n.º 3
0
        public BillsItem VoidBillsItem(BillsItem item)
        {
            SqlServerConnection conn = new SqlServerConnection();

            conn.SqlServerUpdate("DECLARE @idnt INT=" + item.Id + ", @user INT=" + item.VoidedBy.Id + ", @reason NVARCHAR(MAX)='" + item.VoidedReason + "'; UPDATE BillsItem SET bi_void=1, bi_void_on=GETDATE(), bi_void_by=@user, bi_void_reason=@reason WHERE bi_idnt=@idnt");

            return(item);
        }
Exemplo n.º 4
0
        public BillsItem SaveBillsItem(BillsItem item)
        {
            SqlServerConnection conn = new SqlServerConnection();

            item.Id = conn.SqlServerUpdate("DECLARE @idnt INT=" + item.Id + ", @bill INT=" + item.Bill.Id + ", @service INT=" + item.Service.Id + ", @amount FLOAT=" + item.Price + ", @user INT=" + item.CreatedBy.Id + ", @desc NVARCHAR(MAX)='" + item.Description + "'; IF NOT EXISTS (SELECT bi_idnt FROM BillsItem WHERE bi_idnt=@idnt) BEGIN INSERT INTO BillsItem (bi_bill, bi_service, bi_amount, bi_created_by, bi_description) output INSERTED.bi_idnt VALUES (@bill, @service, @amount, @user, @desc) END ELSE BEGIN UPDATE BillsItem SET bi_service=@service, bi_amount=@amount, bi_description=@desc output INSERTED.bi_idnt WHERE bi_idnt=@idnt END");

            return(item);
        }
 public IActionResult Add(BillsItem billsItem)
 {
     if (ModelState.IsValid)
     {
         var res = BillsItemService.Add(billsItem);
         return(Json(new { code = res }));
     }
     return(Json(new { code = -1 }));
 }
Exemplo n.º 6
0
        public Bills SelectBill(int id, IDbConnection conn)
        {
            string sql = @"
            select
               Mb.ID,Mb.BillsCode,Mb.Maker,Mb.MakerDate,Mb.CreateDate,Mb.Actived,Mb.IsCancleOut,Mb.IsRedBill,Mb.Remark,
               Msh.ID,Msh.StorehouseCode,Msh.StorehouseName,Msh.Actived,Msh.Remark,
               Mbt.ID,Mbt.Name,Mbt.IsOut,Mbt.Actived,Mbt.Remark,
               Mc.ID,Mc.CompanyCode,Mc.CompanyName,Mc.Actived,Mc.Remark,
               Mct.ID,Mct.CompanyTypeCode,Mct.CompanyTypeName,Mct.Actived,Mct.Remark 
            from MD_Bills as Mb 
            inner join MD_Storehouse as Msh on Mb.StoreHouse_ID=Msh.ID 
            inner join MD_BillsType as Mbt on Mb.BillsType_ID=Mbt.ID 
            inner join MD_Company as Mc on Mb.Company_ID=Mc.ID
            inner join MD_CompanyType as Mct on Mc.CompanyType_ID=Mct.ID 
            where Mb.ID=@ID
            ";
            List <SqlParameter> paramList = new List <SqlParameter>();

            paramList.Add(new SqlParameter("@ID", id));
            SqlDataReader reader = DataAccessUtil.ExecuteReader(sql, paramList, (SqlConnection)conn);
            Bills         bill   = null;

            while (reader.Read())
            {
                bill = new Bills();
                BillModelHelper(reader, bill);
            }
            reader.Close();
            if (bill != null)
            {
                sql       = @"
            Select Mbi.ID,Mbi.Count,Mbi.UnitPrice,Mbi.Money,Mbi.Remark,
                Md.ID,Md.DrugCode,Md.DrugName,Md.UnitPrice,Md.Standard,Md.Unit,Md.Actived,Md.Remark,
                Mdf.ID,Mdf.DrugFromCode,Mdf.DrugFromName,Mdf.Actived,Mdf.Remark,
                Mdc.ID,Mdc.DrugCategoryCode,Mdc.DrugCategoryName,Mdc.Actived,Mdc.Remark
            from MD_BillsItem as Mbi
            inner join MD_Drugs as Md on Mbi.Drugs_ID=Md.ID 
            inner join MD_DrugCategory as Mdc on Md.DrugCategory_ID=Mdc.ID
            inner join MD_DrugFrom as Mdf on Md.DrugFrom_ID=Mdf.ID 
            where Mbi.Bills_ID=@ID ";
                paramList = new List <SqlParameter>();
                paramList.Add(new SqlParameter("@ID", id));
                reader = DataAccessUtil.ExecuteReader(sql, paramList, (SqlConnection)conn);
                while (reader.Read())
                {
                    BillsItem item = new BillsItem();
                    BillItemModelHelper(reader, item);
                    bill.Items.Add(item);
                }
            }
            reader.Close();
            return(bill);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 保存单据并修改库存
        /// </summary>
        public void DoSave()
        {
            //verify
            if (cmbCompany.SelectedItem == null)
            {
                throw new ApplicationException("请指定关联单位");
            }
            if (cmbStorehouse.SelectedItem == null)
            {
                throw new ApplicationException("请指定仓库");
            }
            if (dgvDrugsList.Rows.Count <= 1)
            {
                throw new ApplicationException("请指定药品");
            }
            //Contruct Model
            Bills bill = new Bills();

            bill.BillsType   = this.BillsType;
            bill.Actived     = true;
            bill.Code        = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            bill.Company     = (Company)cmbCompany.SelectedItem;
            bill.IsCancelOut = false;
            bill.IsRedBill   = false;
            bill.MakeDate    = this.dtpMakeDate.Value;
            bill.CreateDate  = DateTime.Now;
            bill.Maker       = this.txtMaker.Text.Trim();
            bill.Storehouse  = (Storehouse)this.cmbStorehouse.SelectedItem;
            bill.Remark      = this.txtRemark.Text.Trim();
            foreach (DataGridViewRow row in dgvDrugsList.Rows)
            {
                if (row.Tag != null)
                {
                    BillsItem billsItem = (BillsItem)row.Tag;
                    if (billsItem.Remark == null)
                    {
                        billsItem.Remark = "没有备注";
                    }
                    bill.Items.Add(billsItem);
                }
            }
            //Do Save
            StockBillService stockBillService = new StockBillService();

            stockBillService.MakeBill(bill);
            if (MessageBox.Show("保存成功,是否打印单据?", "打印提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                new PrintService().PrintBill(bill);
            }
            this.DoReset();
        }
Exemplo n.º 8
0
 public Queues()
 {
     Id        = 0;
     Date      = "";
     Start     = "";
     Ended     = "";
     Priority  = new QueuesPriority();
     Item      = new BillsItem();
     Visit     = new Visit();
     Room      = new Room();
     CreatedBy = new Users();
     CreatedOn = DateTime.Now;
     Notes     = "";
 }
Exemplo n.º 9
0
        public RegistrationVisitViewModel()
        {
            Visit    = new Visit();
            Bill     = new Bills();
            Item     = new BillsItem();
            Referral = new Referral();

            Codes   = new List <SelectListItem>();
            Rooms   = new List <SelectListItem>();
            Types   = new List <SelectListItem>();
            Doctors = new List <SelectListItem>();

            Referrals   = new List <SelectListItem>();
            MedicoLegal = new List <SelectListItem>();

            DoctorString = "";
            Doctor       = "";
            Waiver       = false;
            WaiverReason = "";
        }
Exemplo n.º 10
0
 private void BillItemModelHelper(SqlDataReader reader, BillsItem item)
 {
     item.ID        = reader.GetInt32(0);
     item.Count     = reader.GetInt32(1);
     item.UnitPrice = reader.GetDecimal(2);
     item.Money     = reader.GetDecimal(3);
     if (!reader.IsDBNull(4))
     {
         item.Remark = reader.GetString(4);
     }
     item.Drugs           = new Drugs();
     item.Drugs.ID        = reader.GetInt32(5);
     item.Drugs.Code      = reader.GetString(6);
     item.Drugs.Name      = reader.GetString(7);
     item.Drugs.UnitPrice = reader.GetDecimal(8);
     item.Drugs.Standard  = reader.GetString(9);
     item.Drugs.Unit      = reader.GetString(10);
     item.Drugs.Actived   = reader.GetBoolean(11);
     if (!reader.IsDBNull(12))
     {
         item.Drugs.Remark = reader.GetString(12);
     }
     item.Drugs.From         = new DrugFrom();
     item.Drugs.From.ID      = reader.GetInt32(13);
     item.Drugs.From.Code    = reader.GetString(14);
     item.Drugs.From.Name    = reader.GetString(15);
     item.Drugs.From.Actived = reader.GetBoolean(16);
     if (!reader.IsDBNull(17))
     {
         item.Drugs.From.Remark = reader.GetString(17);
     }
     item.Drugs.Category         = new DrugCategory();
     item.Drugs.Category.ID      = reader.GetInt32(18);
     item.Drugs.Category.Code    = reader.GetString(19);
     item.Drugs.Category.Name    = reader.GetString(20);
     item.Drugs.Category.Actived = reader.GetBoolean(21);
     if (!reader.IsDBNull(22))
     {
         item.Drugs.Category.Remark = reader.GetString(22);
     }
 }
Exemplo n.º 11
0
 //todo
 public int Edit(BillsItem billsItem)
 {
     GetById(billsItem.Id);
     return(0);
 }
Exemplo n.º 12
0
 public int Add(BillsItem billsItem)
 {
     DbContext.BillsItems.Add(billsItem);
     return(DbContext.SaveChanges());
 }
Exemplo n.º 13
0
        /// <summary>
        /// 冲销一条票据
        /// </summary>
        /// <param name="bill">票据</param>
        /// <param name="maker">冲票人</param>
        /// <param name="makeDate">冲票日期</param>
        /// <param name="remark">备注</param>
        public Bills CancelOutBill(Bills bill, string maker, DateTime makeDate, string remark)
        {
            using (IDbConnection conn = DAOFactory.Instance.OpenConnection())
            {
                //1、构造负子票
                Bills redBill = new Bills();
                redBill.Actived     = true;
                redBill.BillsType   = bill.BillsType;
                redBill.Code        = bill.Code;
                redBill.Company     = bill.Company;
                redBill.CreateDate  = DateTime.Now;
                redBill.IsCancelOut = false;
                redBill.IsRedBill   = true;
                redBill.MakeDate    = makeDate;
                redBill.Maker       = maker;
                redBill.Storehouse  = bill.Storehouse;
                redBill.Remark      = "对冲票据" + bill.ID.ToString();
                foreach (BillsItem item in bill.Items)
                {
                    BillsItem redbillitem = new BillsItem();
                    redbillitem.Drugs     = item.Drugs;
                    redbillitem.Count     = item.Count * (-1);
                    redbillitem.UnitPrice = item.UnitPrice;
                    redbillitem.Money     = item.Money * (-1);
                    redBill.Items.Add(redbillitem);
                }

                IDbTransaction trans = conn.BeginTransaction();
                try
                {
                    IBillsDAO billDao = DAOFactory.Instance.CreateBillsDAO();
                    // 2. 保存红票
                    billDao.InsertBill(redBill, conn, trans);

                    // 3. 保存原票据信息
                    bill.IsCancelOut = true;
                    bill.Remark     += " 被冲销" + redBill.ID.ToString();
                    billDao.UpdateBill(bill, conn, trans);

                    // 4. 更改库存数据
                    IStockDAO stockDao = DAOFactory.Instance.CreateStockDAO();

                    foreach (BillsItem item in redBill.Items)
                    {
                        Stock stock = stockDao.SelectStockByDrugsAndStorehouse(item.Drugs.ID, bill.Storehouse.ID, conn, trans);
                        if (redBill.BillsType.IsOut)
                        {
                            stock.Count -= item.Count;
                        }
                        else
                        {
                            stock.Count += item.Count;
                        }
                        stockDao.UpdateStock(stock, conn, trans);
                    }

                    //5、提交
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    //6、回滚
                    bill.IsCancelOut = false;
                    trans.Rollback();
                    throw ex;
                }
                return(redBill);
            }
        }
Exemplo n.º 14
0
        private void dgvDrugsList_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                DataGridViewRow row   = this.dgvDrugsList.Rows[e.RowIndex];
                object          value = this.dgvDrugsList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
                if (value == null)
                {
                    return;
                }
                BillsItem item = null;
                switch (e.ColumnIndex)
                {
                case 0:    //输入药品编码
                    string       drugCode     = value.ToString();
                    ModelService modelService = new ModelService();
                    Drugs        drug         = modelService.GetDrugsByCode(drugCode);
                    //Fill drugs info into datagridview row
                    if (drug == null)
                    {
                        throw new ApplicationException("编码错误,没有匹配的药物");
                    }
                    DataGridViewTextBoxCell cell = null;

                    cell         = new DataGridViewTextBoxCell();
                    cell.Value   = drug.Name;
                    row.Cells[1] = cell;

                    cell         = new DataGridViewTextBoxCell();
                    cell.Value   = drug.UnitPrice;
                    row.Cells[2] = cell;

                    cell         = new DataGridViewTextBoxCell();
                    cell.Value   = drug.Standard;
                    row.Cells[3] = cell;

                    cell         = new DataGridViewTextBoxCell();
                    cell.Value   = drug.Unit;
                    row.Cells[4] = cell;

                    cell         = new DataGridViewTextBoxCell();
                    cell.Value   = drug.Category.Name;
                    row.Cells[5] = cell;

                    cell         = new DataGridViewTextBoxCell();
                    cell.Value   = drug.From.Name;
                    row.Cells[6] = cell;

                    //add BillsItem into row's tag
                    item = (BillsItem)row.Tag;
                    if (item == null)
                    {
                        item    = new BillsItem();
                        row.Tag = item;
                    }
                    item.Drugs     = drug;
                    item.UnitPrice = drug.UnitPrice;
                    break;

                case 2:    //输入单价编码
                    decimal unitPrice = decimal.Parse(value.ToString());
                    item = (BillsItem)row.Tag;
                    if (item == null)
                    {
                        item    = new BillsItem();
                        row.Tag = item;
                    }
                    item.UnitPrice = unitPrice;
                    if (item.Count != 0 && item.UnitPrice != 0)
                    {
                        row.Cells[8].Value = item.Count * item.UnitPrice;
                        item.Money         = decimal.Parse(row.Cells[8].Value.ToString());
                    }
                    break;

                case 7:    //输入数量编码
                    int count = int.Parse(value.ToString());
                    item = (BillsItem)row.Tag;
                    if (item == null)
                    {
                        item    = new BillsItem();
                        row.Tag = item;
                    }
                    item.Count = count;
                    if (item.Count != 0 && item.UnitPrice != 0)
                    {
                        row.Cells[8].Value = item.Count * item.UnitPrice;
                        item.Money         = decimal.Parse(row.Cells[8].Value.ToString());
                    }
                    break;

                case 8:    //输入金额编码
                    decimal money = decimal.Parse(value.ToString());
                    item = (BillsItem)row.Tag;
                    if (item == null)
                    {
                        item    = new BillsItem();
                        row.Tag = item;
                    }
                    item.Money = money;
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                ErrorHandler.OnError(ex);
            }
        }
        public IActionResult RegisterVisit()
        {
            Users user = new Users {
                Id = Int64.Parse(HttpContext.User.FindFirst(ClaimTypes.Actor).Value)
            };
            Patient patient = VisitModel.Visit.Patient;

            patient.Status = new PatientStatus
            {
                Id = Constants.STATUS_ACTIVE
            };
            patient.UpdateStatus();

            Encounter encounter = new Encounter
            {
                Type = new EncounterType {
                    Id = Constants.ENCOUNTER_VISIT
                },
                Patient   = patient,
                CreatedBy = user
            };

            encounter.Create(IPatientService);

            Visit visit = VisitModel.Visit;

            visit.Type = new VisitType {
                Id = Constants.VISIT_FACILITY
            };
            visit.CreatedBy = user;
            visit.CreatedOn = DateTime.Now;
            visit.Save();

            Referral referral = VisitModel.Referral;

            if (!referral.Type.Id.Equals(0))
            {
                referral.Visit     = visit;
                referral.CreatedBy = user;
                referral.Save();

                var      seps    = new string[] { "," };
                string[] doctors = VisitModel.DoctorString.Split(seps, StringSplitOptions.RemoveEmptyEntries);
                foreach (string doc in doctors)
                {
                    new ReferralDoctors
                    {
                        Referral = referral,
                        Doctor   = new Doctor {
                            Id = Convert.ToInt64(doc)
                        }
                    }.Save();
                }
            }

            Bills bill = VisitModel.Bill;

            bill.Visit     = visit;
            bill.CreatedBy = user;
            bill.Save();

            if (VisitModel.Waiver)
            {
                bill.Waiver       = bill.Amount;
                bill.WaiverReason = VisitModel.WaiverReason;
                bill.WaivedBy     = user;
                bill.UpdateWaiver();

                bill.Flag = new BillsFlag {
                    Id = 1
                };
                bill.ProcessedBy = user;
                bill.UpdateProcess();
            }

            BillsItem item = VisitModel.Item;

            item.Bill      = bill;
            item.CreatedBy = user;
            item.Save();

            Queues queue = VisitModel.Queue;

            queue.Bill      = bill;
            queue.CreatedBy = user;
            queue.Save();

            return(LocalRedirect("/registration/search"));
        }
Exemplo n.º 16
0
        public IActionResult RegisterVisit()
        {
            Users user = new Users {
                Id = Int64.Parse(HttpContext.User.FindFirst(ClaimTypes.Actor).Value)
            };
            Patient patient = VisitModel.Visit.Patient;

            patient.Status = new PatientStatus
            {
                Id = Constants.STATUS_ACTIVE
            };
            patient.UpdateStatus();

            Encounter encounter = new Encounter
            {
                Type = new EncounterType {
                    Id = Constants.ENCOUNTER_VISIT
                },
                Patient   = patient,
                CreatedBy = user
            };

            encounter.Create(IPatientService);

            Visit visit = VisitModel.Visit;

            visit.Type = new VisitType {
                Id = Constants.VISIT_FACILITY
            };
            visit.CreatedBy = user;
            visit.CreatedOn = DateTime.Now;
            visit.Save();

            Referral referral = VisitModel.Referral;

            if (!referral.Type.Id.Equals(0))
            {
                referral.Visit     = visit;
                referral.CreatedBy = user;
                referral.Save();

                var      seps    = new string[] { "," };
                string[] doctors = VisitModel.DoctorString.Split(seps, StringSplitOptions.RemoveEmptyEntries);
                foreach (string doc in doctors)
                {
                    new ReferralDoctors
                    {
                        Referral = referral,
                        Doctor   = new Doctor {
                            Id = Convert.ToInt64(doc)
                        }
                    }.Save();
                }
            }

            Bills bill = VisitModel.Bill;

            bill.Visit      = visit;
            bill.Department = new Department {
                Id = Constants.DEPT_REGISTRATION
            };
            bill.CreatedBy = user;
            bill.Save();

            if (VisitModel.Waiver)
            {
                bill.Waiver       = bill.Amount;
                bill.WaiverReason = VisitModel.WaiverReason;
                bill.WaivedBy     = user;
                bill.UpdateWaiver();

                bill.Flag = new BillingFlag {
                    Id = Constants.FLAG_CLEARED
                };
                bill.ProcessedBy = user;
                bill.UpdateProcess();
            }

            BillsItem item = VisitModel.Item;

            item.Bill      = bill;
            item.CreatedBy = user;
            item.Save();

            //INVOICE/FLAG/CLEAR
            if (VisitModel.Waiver)
            {
                Invoice invoice = new Invoice {
                    Patient = patient,
                    Flag    = new BillingFlag {
                        Id = Constants.FLAG_CLEARED
                    },
                    CreatedBy = user,
                    Notes     = "Waivered Bill"
                };
                invoice.Save();

                InvoiceDetails details = new InvoiceDetails {
                    Invoice   = invoice,
                    Item      = item,
                    CreatedBy = user,
                    Notes     = "Waivered Item"
                };
                details.Save();

                InvoicePayment payment = new InvoicePayment {
                    Invoice   = invoice,
                    CreatedBy = user,
                    Notes     = "Waiver Payment"
                };
                payment.Save();

                InvoicePaymentDetails pd = new InvoicePaymentDetails {
                    Mode = new BillingMode {
                        Id = Constants.MODE_WAIVER
                    },
                    Reference = "CASHIER-00",
                    Amount    = bill.Amount,
                    Notes     = "Waiver Payment"
                };
                pd.Save();
            }

            Queues queue = VisitModel.Queue;

            queue.Visit     = visit;
            queue.Item      = item;
            queue.CreatedBy = user;
            queue.Save();

            return(LocalRedirect("/registration/search"));
        }