Пример #1
0
        public reg_info Add(reg_info reg_Info, pt_info pt_Info, reg_arrange reg_Arrange, string sno, string psOrdNum, out decimal amount, out int mzno, out int feeid, out List <comm_fee> commFees)
        {
            reg_Info.pid    = pt_Info.pid;
            reg_Info.argid  = reg_Arrange.argid;
            reg_Info.rtype  = reg_Arrange.regtype;
            reg_Info.dept   = reg_Arrange.dept;
            reg_Info.doctor = reg_Arrange.doctor;
            List <string> mznoQuery = new List <string>()
            {
                "update comm_key set id += 1 where sn = 52;",
                "SELECT [id] FROM [ZSHIS].[dbo].[comm_key] WHERE sn = 52"
            };

            mzno               = iReginfo.GetMzno(mznoQuery);
            reg_Info.mzno      = mzno;
            reg_Info.pname     = pt_Info.pname;
            reg_Info.sex       = pt_Info.sex;
            reg_Info.age       = EString.GetAge(pt_Info.birth.ToString()).ToString();
            reg_Info.agetype   = "岁";
            reg_Info.birth     = pt_Info.birth;
            reg_Info.addr1     = pt_Info.addr1;
            reg_Info.addr3     = pt_Info.addr3;
            reg_Info.tel       = pt_Info.tel;
            reg_Info.memo      = "自助机挂号";
            reg_Info.addperson = "自助机";
            reg_Info.status    = "候诊";
            reg_Info.addtime   = DateTime.Now;
            reg_Info.del       = true;
            reg_Info.doctor2   = reg_Arrange.doctor;

            var sysdictList = iReginfo.GetSysDict("SELECT [id] ,[fid] ,[code] ,[type] ,[detail] ,[sortno] ,[memo] ,[status] ,[del] ,[addtime] ,[moditime] ,[addperson] ,[fth] FROM [ZSHIS].[dbo].[sys_dict] where fid = 13999");

            var dept = string.Empty;

            if (sysdictList.Where(x => x.type == reg_Arrange.dept && x.type != "全部科室").Count() > 0)
            {
                dept = reg_Arrange.dept;
            }
            else
            {
                dept = "所有科室";
            }

            DateTime validate;
            var      memo = Convert.ToInt32(sysdictList.Where(x => x.detail == reg_Info.feetype && x.type == dept).FirstOrDefault().memo);

            if (memo == 0)
            {
                validate = Convert.ToDateTime("9999-12-31");
            }
            else
            {
                validate = Convert.ToDateTime(DateTime.Now.AddDays(memo - 1).ToShortDateString() + " 23:59:59");
            }

            var isCommQuery = "SELECT TOP 1 [iscomm] FROM [ZSHIS].[dbo].[reg_type] inner join reg_manage on reg_type.regtid = reg_manage.regtid where reg_type.del = 0 and reg_manage.del = 0 and mgrid = " + reg_Arrange.mgrid;

            reg_Info.iscomm   = iReginfo.GetComm(isCommQuery) > 0;
            reg_Info.validate = validate;

            var regid = iReginfo.Add(reg_Info);

            reg_Info.regid = regid;

            List <int> itemid = new List <int>();

            itemid.Add(Convert.ToInt32(reg_Arrange.itemid));
            commFees = iReginfo.GetComm_Fees(itemid.ToArray(), reg_Info.feetype == "医疗保险" ? 5 : 3);

            fee_info fee_Info = new fee_info()
            {
                pid       = pt_Info.pid,
                mzno      = mzno,
                regid     = regid,
                userid    = 89757,
                ftype     = 2,
                amountcol = commFees.Sum(x => x.prices),
                amountrec = commFees.Sum(x => x.prices),
                amountbak = 0,
                mantissa  = 0,
                username  = "******",
                addtime   = DateTime.Now,
                printqty  = 0,
                feeidoff  = 0,
                del       = true,
                status    = 0,
                sno       = psOrdNum
            };

            feeid = iFeeinfo.AddReturnId(fee_Info);
            var FeeInfoDetail = new List <fee_infodetail>();

            foreach (var commfee in commFees)
            {
                FeeInfoDetail.Add(new fee_infodetail()
                {
                    feeid      = feeid,
                    billid     = 0,
                    bdid       = 0,
                    dgid       = commfee.dgid,
                    itemid     = commfee.itemid ?? commfee.itemid,
                    itemname   = commfee.itemname ?? commfee.itemname,
                    spec       = "",
                    itemtype   = commfee.itemtype ?? commfee.itemtype,
                    unit       = commfee.unit,
                    prices     = commfee.prices == 0 ? commfee.prices : commfee.prices,
                    qty        = 1,
                    totalprice = commfee.prices == 0 ? commfee.prices * 1 : commfee.prices * 1,
                    feetype    = reg_Info.feetype,
                    disc       = 0,
                    execdept   = reg_Arrange.dept,
                    exectime   = DateTime.Now,
                    addtime    = DateTime.Now,
                    del        = true,
                    addperson  = "自助机缴费",
                    status     = 0
                });
            }
            amount = Convert.ToDecimal(commFees.Sum(x => x.prices) * 100);

            iFeeinfodetail.Adds(FeeInfoDetail.ToArray());
            reg_Arrange.regno    = reg_Info.regid;
            reg_Arrange.moditime = DateTime.Now;
            iRegarrange.Update(reg_Arrange);
            return(reg_Info);
        }
Пример #2
0
 public bool UpdateRegInfo(reg_info reg_Info)
 {
     return(iReginfo.Update(reg_Info));
 }