コード例 #1
0
ファイル: DispensingService.cs プロジェクト: iJzFan/backup
        /// <summary>
        /// 获取用户默认地址
        /// </summary>
        /// <param name="customerId">用户Id</param>
        /// <param name="throwex">是否抛出错误</param>
        /// <returns>null 或者地址实体信息</returns>
        public vwCHIS_Code_Customer_AddressInfos GetUserDefaultMailAddress(int customerId, bool throwex = false, bool bAllAddr = true)
        {
            vwCHIS_Code_Customer_AddressInfos rtn = null;

            try
            {
                var find = _db.vwCHIS_Code_Customer_AddressInfos.FirstOrDefault(m => m.CustomerId == customerId && m.IsDefault == true);
                if (find != null)
                {
                    rtn = find;
                }
                else
                {
                    if (throwex && !bAllAddr)
                    {
                        throw new Exception("没有发现默认地址");
                    }
                    var finds = _db.vwCHIS_Code_Customer_AddressInfos.AsNoTracking().Where(m => m.CustomerId == customerId);
                    if (finds.Count() == 1)
                    {
                        rtn = finds.First();
                    }
                    else
                    {
                        throw new Exception("没有发现任何地址信息");
                    }
                }
                if (rtn != null && rtn.IsLegalAddress)
                {
                    return(rtn);
                }
                else
                {
                    throw new Exception("找到地址信息不完整");
                }
            }
            catch (Exception ex)
            {
                if (throwex)
                {
                    throw ex;
                }
            }
            return(null);
        }
コード例 #2
0
ファイル: ChangePayService.cs プロジェクト: iJzFan/backup
        private async Task CalcJKTransFeeAsync(long treatId, List <vwCHIS_DoctorAdvice_Formed_Detail> formeds, List <vwCHIS_DoctorAdvice_Herbs_Detail> herbs, vwCHIS_Code_Customer_AddressInfos defaddress)
        {
            //快递费信息
            var extrafees   = _db.CHIS_Doctor_ExtraFee.AsNoTracking().Where(m => m.TreatId == treatId && m.TreatFeeTypeId == MPS.Fee_快递).ToList();
            var toAddressId = _db.CHIS_DoctorTreat.Find(treatId)?.TransferAddressId;

            if (toAddressId == null)
            {
                toAddressId = defaddress?.AddressId;
            }
            if (toAddressId.HasValue)
            {
                //计算是否有剑客的药品
                var bjk = formeds.Any(m => m.SourceFrom == (int)DrugSourceFrom.WebNet && m.SupplierId == MPS.SupplierId_JK) ||
                          herbs.Any(m => m.SourceFrom == (int)DrugSourceFrom.WebNet && m.SupplierId == MPS.SupplierId_JK);
                if (!bjk)
                {
                    return;
                }

                //计算总价是否超过58
                int toAreaId; decimal feeOrig;
                var fee = _dispensingSvr.GetTransFee(treatId, toAddressId.Value, MPS.CenterAreaId_JK, out toAreaId, out feeOrig);

                var jkentity = extrafees.FirstOrDefault(m => m.MailForSupplierId == MPS.SupplierId_JK);
                if (extrafees == null || jkentity == null)
                {
                    await _db.CHIS_Doctor_ExtraFee.AddAsync(new CHIS_Doctor_ExtraFee
                    {
                        TreatFeeTypeId        = MPS.Fee_快递,
                        Qty                   = 1,
                        FeeRemark             = "健客快递费",
                        TreatFeeOriginalPrice = feeOrig,
                        TreatFeePrice         = fee,
                        Amount                = fee,
                        IsConfirmed           = true,
                        TreatId               = treatId,
                        MailForSupplierId     = MPS.SupplierId_JK,
                        MailFromAreaId        = MPS.CenterAreaId_JK,
                        MailToAreaId          = toAreaId,
                        MailAddressInfoId     = toAddressId,
                        ChargeStatus          = 0
                    });
                }
                else
                {
                    if (jkentity.ChargeStatus == 0)
                    {
                        jkentity.TreatFeeOriginalPrice = feeOrig;
                        jkentity.TreatFeePrice         = fee;
                        jkentity.Amount            = fee;
                        jkentity.IsConfirmed       = true;
                        jkentity.MailFromAreaId    = MPS.CenterAreaId_JK;
                        jkentity.MailToAreaId      = toAreaId;
                        jkentity.MailAddressInfoId = toAddressId;
                        _db.Update(jkentity);
                    }
                }
                await _db.SaveChangesAsync();
            }
        }
コード例 #3
0
ファイル: ChangePayService.cs プロジェクト: iJzFan/backup
        /// <summary>
        /// 重新调整快递费
        /// </summary>
        private async Task <IEnumerable <vwCHIS_Doctor_ExtraFee> > AdjustTransFeeAsync(long treatId, List <vwCHIS_DoctorAdvice_Formed_Detail> formeds, List <vwCHIS_DoctorAdvice_Herbs_Detail> herbs, vwCHIS_Code_Customer_AddressInfos defaddress)
        {
            //计算剑客的快递费
            await CalcJKTransFeeAsync(treatId, formeds, herbs, defaddress);

            //重新计算总价摘要
            CalcPaySumary(treatId);
            return(_db.vwCHIS_Doctor_ExtraFee.AsNoTracking().Where(m => m.TreatId == treatId && m.ChargeStatus == 0));
        }