示例#1
0
        public BaseResponse <List <BillV2> > SaveBillV2Info(BillV2List request)
        {
            BaseResponse <List <BillV2> > response = new BaseResponse <List <BillV2> >();

            if (request.BillV2Lists != null && request.BillV2Lists.Count > 0)
            {
                #region 退款
                foreach (var item in request.BillV2Lists)
                {
                    //费用记录
                    var fc = unitOfWork.GetRepository <LTC_FEERECORD>().dbSet.Where(m => m.FEENO == item.FeeNo && m.ISDELETE == false && m.BILLID == item.BillId).ToList();
                    if (fc != null)
                    {
                        foreach (var itemfc in fc)
                        {
                            LTC_FEERECORD feemodel = new LTC_FEERECORD();
                            itemfc.ISREFUNDRECORD = true;
                            itemfc.UPDATEBY       = SecurityHelper.CurrentPrincipal.EmpNo;
                            itemfc.UPDATETIME     = DateTime.Now;
                            unitOfWork.GetRepository <LTC_FEERECORD>().Update(itemfc);

                            //创建一条负数据
                            feemodel.FEERECORDID      = String.Format("{0}{1}{2}{3}", SecurityHelper.CurrentPrincipal.OrgId, DateTime.Now.ToString("yyyyMMddHHmmss"), itemfc.CHARGERECORDTYPE, itemfc.CHARGERECORDID);
                            feemodel.BILLID           = itemfc.BILLID;
                            feemodel.CREATEBY         = SecurityHelper.CurrentPrincipal.EmpNo;
                            feemodel.CREATETIME       = DateTime.Now;
                            feemodel.ISDELETE         = false;
                            feemodel.FEENO            = item.FeeNo;
                            feemodel.CHARGERECORDTYPE = itemfc.CHARGERECORDTYPE;
                            feemodel.CHARGERECORDID   = itemfc.CHARGERECORDID;
                            feemodel.UNITPRICE        = itemfc.UNITPRICE;
                            feemodel.COUNT            = -itemfc.COUNT;
                            feemodel.COST             = -itemfc.COST;
                            feemodel.ISNCIITEM        = itemfc.ISNCIITEM;
                            feemodel.ISREFUNDRECORD   = false;
                            unitOfWork.GetRepository <LTC_FEERECORD>().Insert(feemodel);
                        }
                    }

                    //账单记录
                    LTC_BILLV2 model = new LTC_BILLV2();
                    model.BILLID           = item.BillId;
                    model.BILLPAYID        = item.BillPayId;
                    model.BILLMONTH        = item.BillMonth;
                    model.REFUNDRECORDID   = item.ReFundRecordId;
                    model.FEENO            = item.FeeNo;
                    model.NCIITEMTOTALCOST = item.NCIItemTotalCost;
                    model.SELFPAY          = item.SelfPay;
                    model.NCIPAYLEVEL      = item.NCIPayLevel;
                    model.NCIPAYSCALE      = item.NCIPaysCale;
                    model.NCIPAY           = item.NCIPay;
                    model.NCIITEMSELFPAY   = item.NCIItemSelfPay;
                    model.BALANCESTARTTIME = item.BalanceStartTime;
                    model.BALANCEENDTIME   = item.BalanceEndTime;
                    model.HOSPDAY          = item.HospDay;
                    model.STATUS           = item.Status;
                    model.BILLCREATOR      = item.BillCreator;
                    model.BALANCEOPERATOR  = item.BalanceOperator;
                    model.REFUNDOPERATOR   = SecurityHelper.CurrentPrincipal.EmpNo;
                    model.CREATEBY         = item.CreateBy;
                    model.CREATETIME       = item.CreateTime;
                    model.UPDATEBY         = SecurityHelper.CurrentPrincipal.EmpNo;
                    model.UPDATETIME       = DateTime.Now;
                    model.ISDELETE         = item.IsDelete;
                    model.ORGID            = SecurityHelper.CurrentPrincipal.OrgId;
                    unitOfWork.GetRepository <LTC_BILLV2>().Update(model);

                    //使用记录
                    var feeRecs = unitOfWork.GetRepository <LTC_FEERECORD>().dbSet.Where(m => m.BILLID == item.BillId).ToList();
                    if (feeRecs != null)
                    {
                        foreach (var feeRec in feeRecs)
                        {
                            if (feeRec.CHARGERECORDTYPE == Convert.ToInt32(ChargeItemType.Drug))
                            {
                                var drug = unitOfWork.GetRepository <LTC_DRUGRECORD>().dbSet.FirstOrDefault(m => m.DRUGRECORDID == feeRec.CHARGERECORDID);
                                drug.STATUS     = Convert.ToInt32(RecordStatus.Refund);
                                drug.UPDATEBY   = SecurityHelper.CurrentPrincipal.EmpNo;
                                drug.UPDATETIME = DateTime.Now;
                                unitOfWork.GetRepository <LTC_DRUGRECORD>().Update(drug);
                            }
                            else if (feeRec.CHARGERECORDTYPE == Convert.ToInt32(ChargeItemType.Material))
                            {
                                var material = unitOfWork.GetRepository <LTC_MATERIALRECORD>().dbSet.FirstOrDefault(m => m.MATERIALRECORDID == feeRec.CHARGERECORDID);
                                material.STATUS     = Convert.ToInt32(RecordStatus.Refund);
                                material.UPDATEBY   = SecurityHelper.CurrentPrincipal.EmpNo;
                                material.UPDATETIME = DateTime.Now;
                                unitOfWork.GetRepository <LTC_MATERIALRECORD>().Update(material);
                            }
                            else if (feeRec.CHARGERECORDTYPE == Convert.ToInt32(ChargeItemType.Service))
                            {
                                var service = unitOfWork.GetRepository <LTC_SERVICERECORD>().dbSet.FirstOrDefault(m => m.SERVICERECORDID == feeRec.CHARGERECORDID);
                                service.STATUS     = Convert.ToInt32(RecordStatus.Refund);
                                service.UPDATEBY   = SecurityHelper.CurrentPrincipal.EmpNo;
                                service.UPDATETIME = DateTime.Now;
                                unitOfWork.GetRepository <LTC_SERVICERECORD>().Update(service);
                            }
                        }
                    }

                    //额度
                    var mpbr = unitOfWork.GetRepository <LTC_MONTHLYPAYBILLRECORD>().dbSet.Where(m => m.FEENO == item.FeeNo && m.ISDELETE == false && m.BILLID == item.BillId).ToList();
                    if (mpbr != null)
                    {
                        foreach (var itemmpbr in mpbr)
                        {
                            itemmpbr.STATUS     = Convert.ToInt32(BillStatus.Refund);
                            itemmpbr.UPDATEBY   = SecurityHelper.CurrentPrincipal.EmpNo;
                            itemmpbr.UPDATETIME = DateTime.Now;
                            unitOfWork.GetRepository <LTC_MONTHLYPAYBILLRECORD>().Update(itemmpbr);

                            var mpl = unitOfWork.GetRepository <LTC_MONTHLYPAYLIMIT>().dbSet.FirstOrDefault(m => m.FEENO == item.FeeNo && m.YEARMONTH == itemmpbr.YEARMONTH && m.ORGID == SecurityHelper.CurrentPrincipal.OrgId);
                            if (mpl != null)
                            {
                                mpl.PAYEDAMOUNT = mpl.PAYEDAMOUNT - itemmpbr.PAYEDAMOUNT;
                                mpl.UPDATEBY    = SecurityHelper.CurrentPrincipal.EmpNo;
                                mpl.UPDATETIME  = DateTime.Now;
                                unitOfWork.GetRepository <LTC_MONTHLYPAYLIMIT>().Update(mpl);
                            }
                        }
                    }

                    //请假记录数据

                    var ncideduModel = unitOfWork.GetRepository <LTC_NCIDEDUCTION>().dbSet.Where(m => m.BILLID == item.BillId).ToList();
                    Mapper.CreateMap <LTC_NCIDEDUCTION, NCIDeductionModel>();
                    var edductionList = Mapper.Map <List <NCIDeductionModel> >(ncideduModel);
                    if (edductionList != null && edductionList.Count > 0)
                    {
                        foreach (var deduitem in edductionList)
                        {
                            var dedu = unitOfWork.GetRepository <LTC_NCIDEDUCTION>().dbSet.FirstOrDefault(m => m.ID == deduitem.ID);
                            dedu.BILLID          = null;
                            dedu.AMOUNT          = 0;
                            dedu.DEDUCTIONREASON = "";
                            dedu.DEDUCTIONSTATUS = (int)DeductionStatus.UnCharge;
                            dedu.UPDATEBY        = SecurityHelper.CurrentPrincipal.EmpNo;
                            dedu.UPDATETIME      = DateTime.Now;
                            unitOfWork.GetRepository <LTC_NCIDEDUCTION>().Update(dedu);
                        }
                    }
                }
                unitOfWork.Save();
                response.ResultCode = 1001;
                #endregion
            }
            else
            {
                response.ResultCode    = -1;
                response.ResultMessage = "未查询到有效的账单数据!";
            }
            return(response);
        }
示例#2
0
        /// <summary>
        /// 保存费用录入信息
        /// </summary>
        /// <param name="request">请求数据</param>
        /// <returns>返回信息</returns>
        public BaseResponse <List <FeeRecordBaseInfo> > SaveFeeRecord(BillV2Info request)
        {
            BaseResponse <List <FeeRecordBaseInfo> > response = new BaseResponse <List <FeeRecordBaseInfo> >();

            if (request.feeRecordList != null && request.feeRecordList.Count > 0)
            {
                #region 住民账户信息
                Mapper.CreateMap <LTC_RESIDENTBALANCE, ResidentBalance>();
                var bal     = unitOfWork.GetRepository <LTC_RESIDENTBALANCE>().dbSet.FirstOrDefault(m => m.FEENO == request.Feeno && m.STATUS == 0);
                var balance = Mapper.Map <ResidentBalance>(bal);

                bool isHaveNCI = balance.ISHAVENCI == 0 ? true : false;
                #endregion

                #region 账单初始化数据
                BillV2 billv2 = new BillV2();
                billv2.BILLID           = String.Format("{0}{1}", SecurityHelper.CurrentPrincipal.OrgId, DateTime.Now.ToString("yyyyMMddHHmmss")); //账单ID
                billv2.BILLPAYID        = null;
                billv2.REFUNDRECORDID   = null;
                billv2.FEENO            = Convert.ToInt32(request.Feeno);
                billv2.NCIITEMTOTALCOST = 0;
                billv2.SELFPAY          = 0;
                billv2.NCIPAYLEVEL      = balance.NCIPAYLEVEL;
                billv2.NCIPAYSCALE      = balance.NCIPAYSCALE;
                billv2.NCIPAY           = 0;
                billv2.NCIITEMSELFPAY   = 0;
                billv2.BALANCESTARTTIME = request.STime;
                billv2.BALANCEENDTIME   = request.ETime;
                billv2.HOSPDAY          = 0;
                billv2.BILLCREATOR      = SecurityHelper.CurrentPrincipal.UserId.ToString();
                billv2.BALANCEOPERATOR  = string.Empty;
                billv2.REFUNDOPERATOR   = string.Empty;
                billv2.CREATEBY         = SecurityHelper.CurrentPrincipal.UserId.ToString();
                billv2.CREATETIME       = DateTime.Now;
                billv2.UPDATEBY         = string.Empty;
                billv2.UPDATETIME       = null;
                billv2.ISDELETE         = false;
                #endregion

                var billv2Info = GetYearMonthFees(request, billv2, isHaveNCI);

                Mapper.CreateMap <BillV2, LTC_BILLV2>();
                var billModel = Mapper.Map <LTC_BILLV2>(billv2Info);
                unitOfWork.GetRepository <LTC_BILLV2>().Insert(billModel);
                unitOfWork.Save();

                #region 费用记录
                foreach (var item in request.feeRecordList)
                {
                    LTC_FEERECORD model = new LTC_FEERECORD();
                    model.FEERECORDID      = String.Format("{0}{1}{2}{3}", SecurityHelper.CurrentPrincipal.OrgId, DateTime.Now.ToString("yyyyMMddHHmmss"), item.ChargeRecordType, item.ChargeRecordID);
                    model.BILLID           = billv2.BILLID;
                    model.CREATEBY         = SecurityHelper.CurrentPrincipal.UserId.ToString();
                    model.CREATETIME       = DateTime.Now;
                    model.ISDELETE         = false;
                    model.FEENO            = item.FeeNo;
                    model.CHARGERECORDTYPE = item.ChargeRecordType;
                    model.CHARGERECORDID   = item.ChargeRecordID;
                    model.UNITPRICE        = item.UnitPrice;
                    model.COUNT            = item.Count;
                    model.COST             = Convert.ToDecimal(item.Cost);
                    model.ISNCIITEM        = item.IsNCIItem;
                    model.ISREFUNDRECORD   = false;
                    unitOfWork.GetRepository <LTC_FEERECORD>().Insert(model);
                }
                unitOfWork.Save();
                response.ResultCode    = 1001;
                response.ResultMessage = "生成账单成功,请到费用查询中进行查看!";
                #endregion
            }
            else
            {
                response.ResultCode    = -1;
                response.ResultMessage = "未查询到有效的使用记录数据!";
            }
            return(response);
        }