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); }
public BaseResponse <List <BillV2> > SaveBillV2Info(BillV2List request) { var feeRecordListOfDrug = new List <ChargeRecord>(); BaseResponse <List <BillV2> > response = new BaseResponse <List <BillV2> >(); if (request.BillV2Lists != null && request.BillV2Lists.Count > 0) { #region 账单记录 foreach (var item in request.BillV2Lists) { 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.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.Charge); 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.Charge); 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.Charge); service.UPDATEBY = SecurityHelper.CurrentPrincipal.EmpNo; service.UPDATETIME = DateTime.Now; unitOfWork.GetRepository <LTC_SERVICERECORD>().Update(service); } } } } unitOfWork.Save(); response.ResultCode = 1001; #endregion } else { response.ResultCode = -1; response.ResultMessage = "未查询到有效的账单数据!"; } return(response); }