示例#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
        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);
        }