Selaa lähdekoodia

Merge branch 'develop' of http://132.232.92.186:3000/XinXiBu/OA2023 into develop

yuanrf 3 kuukautta sitten
vanhempi
commit
ca09c4e338

+ 283 - 0
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -7431,6 +7431,288 @@ FROM
             return Ok(data);
         }
 
+        /// <summary>
+        /// 团组模块 - 出入境费用-移动端 - ParentInfo
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostEnterExitCostMobileParentInfo(EnterExitCostInfobyDiIdDto dto)
+        {
+            if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
+            if (dto.DiId < 1) return Ok(JsonView(false, MsgTips.DiId));
+
+            var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCost>().FirstAsync(it => it.DiId == dto.DiId && it.IsDel == 0);
+
+            var mobileInfo = new EnterExitCostMobileParentInfoView();
+            if (eecInfo == null) return Ok(mobileInfo);
+
+            mobileInfo = _mapper.Map<EnterExitCostMobileParentInfoView>(eecInfo);
+
+            var dayAndCostData = _sqlSugar.Queryable<Grp_DayAndCost>()
+                .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
+                .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
+                .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId)
+                .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
+                        {
+                            Id = dac.Id,
+                            DiId = dac.DiId,
+                            Type = dac.Type,
+                            Days = dac.Days,
+                            NationalTravelFeeId = dac.NationalTravelFeeId,
+                            Arae = $"{ntf.Country}-{ntf.City}",
+                            Cost = dac.Cost,
+                            Currency = dac.Currency,
+                            CurrencyName = sd.Name,
+                            SubTotal = dac.SubTotal,
+                        })
+                .ToList();
+
+            mobileInfo.ChoiceOneTotalCost = eecInfo.InsidePay;
+            mobileInfo.ChoiceTwoJJ = eecInfo.SumJJC;
+            mobileInfo.ChoiceTwoGW = eecInfo.SumGWC;
+            mobileInfo.ChoiceTwoTD = eecInfo.SumTDC;
+            mobileInfo.Currencys = (List<CurrencyInfo>?)CommonFun.GetCurrencyChinaToList(eecInfo.CurrencyRemark);
+            mobileInfo.ChoiceThreeTotalCost = dayAndCostData.Where(it => it.Type == 1).Sum(x => x.SubTotal); //住宿费 1
+            mobileInfo.ChoiceFourTotalCost = dayAndCostData.Where(it => it.Type == 2).Sum(x => x.SubTotal);  //伙食费 2
+            mobileInfo.ChoiceFiveTotalCost = dayAndCostData.Where(it => it.Type == 3).Sum(x => x.SubTotal);  //公杂费 3
+            mobileInfo.ChoiceSixTotalCost = dayAndCostData.Where(it => it.Type == 4).Sum(x => x.SubTotal);   //培训费 4
+            //其他款项
+            var otherData = _sqlSugar.Queryable<Grp_DayOtherPrice>()
+                .LeftJoin<Sys_SetData>((dop, sd1) => dop.SetDataId == sd1.Id)
+                .LeftJoin<Sys_SetData>((dop, sd1, sd2) => dop.Currency == sd2.Id)
+                .Where((dop, sd1, sd2) => dop.IsDel == 0 && dop.Diid == dto.DiId)
+                .OrderBy((dop, sd1, sd2) => dop.Index)
+                .Select((dop, sd1, sd2) => new DayOtherPriceMobileInfoView
+                {
+                    Id = dop.Id,
+                    DiId = dop.Diid,
+                    Index = dop.Index,
+                    SetDataId = dop.SetDataId,
+                    SetDataName = sd1.Name,
+                    Cost = dop.Cost,
+                    Currency = dop.Currency,
+                    CurrencyName = sd2.Remark,
+                    SubTotal = dop.SubTotal,
+                    Remark = dop.Remark,
+                })
+                .ToArray();
+            mobileInfo.OtherExpensesTotalCost = otherData.Sum(x => x.SubTotal);
+
+            return Ok(mobileInfo);
+        }
+
+        /// <summary>
+        /// 团组模块 - 出入境费用-移动端 - SubInfo
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostEnterExitCostMobileSubInfo(PostEnterExitCostMobileSubInfoDto dto)
+        {
+            if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
+            if (dto.DiId < 1) return Ok(JsonView(false, MsgTips.DiId));
+
+            var subTypes = new List<int>() { 1, 2, 3, 4, 5, 6, 7 };
+            if (!subTypes.Contains(dto.SubType)) return Ok(JsonView(false, $"请传入有效的subTypeId!"));
+
+            var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCost>().FirstAsync(it => it.DiId == dto.DiId && it.IsDel == 0);
+
+            if (eecInfo == null) return Ok(JsonView(false, $"出入境费用明细未录入!"));
+            var subType = dto.SubType;
+                
+            if (subType == 1) //1:境内费用
+            {
+                var oneData = new ChoiceOneMobileSubInfoView()
+                {
+                    Id = eecInfo.Id,
+                    ChoiceOne = eecInfo.ChoiceOne,
+                    ChoiceOneTotalCost = eecInfo.InsidePay,
+                    Visa = eecInfo.Visa,
+                    VisaRemark = eecInfo.VisaRemark,
+                    YiMiao = eecInfo.YiMiao,
+                    HeSuan = eecInfo.HeSuan,
+                    Service = eecInfo.Service,
+                    Ticket = eecInfo.Ticket,
+                    Safe = eecInfo.Safe,
+                };
+                return Ok(JsonView(oneData));
+            }
+            else if (subType == 2) //2:国际旅费
+            {
+                var twoData = new ChoiceTwoMobileSubInfoView() {
+                    Id = eecInfo.Id,
+                    ChoiceTwoJJ = eecInfo.SumJJC,
+                    OutsideJJPay = eecInfo.OutsideJJPay,
+                    ChoiceTwoGW = eecInfo.SumGWC,
+                    OutsideGWPay = eecInfo.OutsideGWPay,
+                    ChoiceTwoTD = eecInfo.SumTDC,
+                    OutsideTDPay = eecInfo.OutsideTDPay,
+                    AirJJ = eecInfo.AirJJ,
+                    AirGW = eecInfo.AirGW,
+                    AirTD = eecInfo.AirTD,
+                    CityTranffic = eecInfo.CityTranffic
+
+                };
+                return Ok(JsonView(twoData));
+            }
+            else if (subType == 3) //3:住宿费
+            {
+                var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
+                    .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
+                    .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
+                    .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 1)
+                    .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
+                    {
+                        Id = dac.Id,
+                        DiId = dac.DiId,
+                        Type = dac.Type,
+                        Days = dac.Days,
+                        NationalTravelFeeId = dac.NationalTravelFeeId,
+                        Arae = $"{ntf.Country}-{ntf.City}",
+                        Cost = dac.Cost,
+                        Currency = dac.Currency,
+                        CurrencyName = sd.Name,
+                        SubTotal = dac.SubTotal,
+                    })
+                     .ToArray();
+
+                var data = new ChoiceThreeMobileSubInfoView() {
+                    Id = eecInfo.Id,
+                    ChoiceThree = eecInfo.ChoiceThree,
+                    ChoiceThreeTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
+                    Details = dayAndCostDatas
+
+                };
+                return Ok(JsonView(data));
+            }
+            else if (subType == 4) //4:伙食费
+            {
+                var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
+                    .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
+                    .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
+                    .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 2)
+                    .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
+                    {
+                        Id = dac.Id,
+                        DiId = dac.DiId,
+                        Type = dac.Type,
+                        Days = dac.Days,
+                        NationalTravelFeeId = dac.NationalTravelFeeId,
+                        Arae = $"{ntf.Country}-{ntf.City}",
+                        Cost = dac.Cost,
+                        Currency = dac.Currency,
+                        CurrencyName = sd.Name,
+                        SubTotal = dac.SubTotal,
+                    })
+                     .ToArray();
+
+                var data = new ChoiceFourMobileSubInfoView()
+                {
+                    Id = eecInfo.Id,
+                    ChoiceFour = eecInfo.ChoiceFour,
+                    ChoiceFourTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
+                    Details = dayAndCostDatas
+                };
+                return Ok(JsonView(data));
+            }
+            else if (subType == 5) //5:公杂费 
+            {
+                var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
+                    .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
+                    .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
+                    .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 3)
+                    .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
+                    {
+                        Id = dac.Id,
+                        DiId = dac.DiId,
+                        Type = dac.Type,
+                        Days = dac.Days,
+                        NationalTravelFeeId = dac.NationalTravelFeeId,
+                        Arae = $"{ntf.Country}-{ntf.City}",
+                        Cost = dac.Cost,
+                        Currency = dac.Currency,
+                        CurrencyName = sd.Name,
+                        SubTotal = dac.SubTotal,
+                    })
+                    .ToArray();
+
+                var data = new ChoiceFiveMobileSubInfoView()
+                {
+                    Id = eecInfo.Id,
+                    ChoiceFive = eecInfo.ChoiceFive,
+                    ChoiceFiveTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
+                    Details = dayAndCostDatas
+                };
+                return Ok(JsonView(data));
+            }
+            else if (subType == 6) //6:培训费
+            {
+                var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
+                     .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
+                     .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
+                     .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 4)
+                     .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
+                     {
+                         Id = dac.Id,
+                         DiId = dac.DiId,
+                         Type = dac.Type,
+                         Days = dac.Days,
+                         NationalTravelFeeId = dac.NationalTravelFeeId,
+                         Arae = $"{ntf.Country}-{ntf.City}",
+                         Cost = dac.Cost,
+                         Currency = dac.Currency,
+                         CurrencyName = sd.Name,
+                         SubTotal = dac.SubTotal,
+                     })
+                     .ToArray();
+
+                var data = new ChoiceSixMobileSubInfoView()
+                {
+                    Id = eecInfo.Id,
+                    ChoiceSix = eecInfo.ChoiceSix,
+                    ChoiceSixTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
+                    Details = dayAndCostDatas
+                };
+                return Ok(JsonView(data));
+            }
+            else if (subType == 7) //7:其他
+            {
+                //其他款项
+                var otherData = _sqlSugar.Queryable<Grp_DayOtherPrice>()
+                    .LeftJoin<Sys_SetData>((dop, sd1) => dop.SetDataId == sd1.Id)
+                    .LeftJoin<Sys_SetData>((dop, sd1, sd2) => dop.Currency == sd2.Id)
+                    .Where((dop, sd1, sd2) => dop.IsDel == 0 && dop.Diid == dto.DiId)
+                    .OrderBy((dop, sd1, sd2) => dop.Index)
+                    .Select((dop, sd1, sd2) => new DayOtherPriceMobileInfoView
+                    {
+                        Id = dop.Id,
+                        DiId = dop.Diid,
+                        Index = dop.Index,
+                        SetDataId = dop.SetDataId,
+                        SetDataName = sd1.Name,
+                        Cost = dop.Cost,
+                        Currency = dop.Currency,
+                        CurrencyName = sd2.Remark,
+                        SubTotal = dop.SubTotal,
+                        Remark = dop.Remark,
+                    })
+                    .ToArray();
+
+                var data = new ChoiceSevenMobileSubInfoView()
+                {
+                    Id = eecInfo.Id,
+                    OtherExpenses_Checked = eecInfo.OtherExpenses_Checked,
+                    OtherExpensesTotalCost = otherData.Sum(x => x.SubTotal),
+                    Details = otherData
+                };
+
+                return Ok(JsonView(data));
+            }
+
+            return Ok(JsonView(false));
+        }
+
         #region op
 
         /// <summary>
@@ -7639,6 +7921,7 @@ FROM
 
             var info = _mapper.Map<Grp_EnterExitCost>(dto);
             info.InsidePay = dto.Visa + dto.Service + dto.Safe + dto.Ticket + dto.HeSuan + dto.YiMiao;
+            info.ChoiceOne = dto.IsSelected;
 
             int id = dto.Id;
             if (id <= 0) //add 

+ 0 - 2
OASystem/OASystem.Api/Program.cs

@@ -344,8 +344,6 @@ builder.Services.AddSingleton<IJobFactory, IOCJobFactory>();
 
 #endregion
 
-
-
 #region SignalR
 builder.Services.AddSignalR()
                 .AddJsonProtocol(options =>

+ 1 - 0
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -122,6 +122,7 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<DayAndCostAddView, Grp_DayAndCost>();
 
             CreateMap<Grp_EnterExitCost, EnterExitCostMobileInfoView>();
+            CreateMap<Grp_EnterExitCost, EnterExitCostMobileParentInfoView>();
 
             CreateMap<PostEnterExitCostMobileFeeOpCheckboxDto, Grp_EnterExitCost>();
             CreateMap<PostEnterExitCostMobileOpStep1Dto, Grp_EnterExitCost>();

+ 16 - 1
OASystem/OASystem.Domain/Dtos/Groups/EnterExitCostDto.cs

@@ -22,6 +22,15 @@ namespace OASystem.Domain.Dtos.Groups
         public int DiId { get; set; }
     }
 
+    public class PostEnterExitCostMobileSubInfoDto : EnterExitCostInfobyDiIdDto
+    {
+        /// <summary>
+        /// 费用项Type
+        /// 1:境内费用 2:国际旅费 3:住宿费 4:伙食费 5:公杂费 6:培训费 7:其他
+        /// </summary>
+        public int SubType { get; set; }
+    }
+
     /// <summary>
     /// 出入境费用 Add And Update  Dto
     /// </summary>
@@ -466,6 +475,12 @@ namespace OASystem.Domain.Dtos.Groups
         public int DiId { get; set; }
 
         public int CurrUserId { get; set; }
+
+        /// <summary>
+        /// 复选框选中
+        /// 0 未选中 1 选中
+        /// </summary>
+        public int IsSelected { get; set; }
     }
 
     public class PostEnterExitCostMobileFeeRateOpDto : PostEnterExitCostMobileUpdateDtoBase
@@ -531,7 +546,7 @@ namespace OASystem.Domain.Dtos.Groups
         public int OtherExpenses_Checked { get; set; }
     }
 
-    public class PostEnterExitCostMobileOpStep1Dto : PostEnterExitCostMobileFeeRateOpDto
+    public class PostEnterExitCostMobileOpStep1Dto : PostEnterExitCostMobileUpdateDtoBase
     {
         /// <summary>
         /// 签证费

+ 297 - 0
OASystem/OASystem.Domain/ViewModels/Groups/EnterExitCostView.cs

@@ -671,6 +671,20 @@ namespace OASystem.Domain.ViewModels.Groups
         public decimal Safe { get; set; }
     }
 
+    public class ChoiceOneMobileSubInfoView : ChoiceOneMobileInfoView
+    {
+        public int Id { get; set; }
+        /// <summary>
+        ///  境内费用(其他费用)选择框
+        /// </summary>
+        public int ChoiceOne { get; set; }
+
+        /// <summary>
+        /// 境内费用(其他费用) 合计
+        /// </summary>
+        public decimal ChoiceOneTotalCost { get; set; }
+    }
+
     public class ChoiceTwoMobileInfoView
     {
         /// <summary>
@@ -694,6 +708,41 @@ namespace OASystem.Domain.ViewModels.Groups
         public decimal CityTranffic { get; set; }
     }
 
+    public class ChoiceTwoMobileSubInfoView : ChoiceTwoMobileInfoView
+    {
+        public int Id { get; set; }
+
+        /// <summary>
+        ///  国际旅费合计选择框 (经济舱)
+        /// </summary>
+        public int ChoiceTwoJJ { get; set; }
+
+        /// <summary>
+        /// 国际旅费合计(经济舱)
+        /// </summary>
+        public decimal OutsideJJPay { get; set; }
+
+        /// <summary>
+        ///  国际旅费合计选择框(公务舱)
+        /// </summary>
+        public int ChoiceTwoGW { get; set; }
+
+        /// <summary>
+        ///  国际旅费合计(公务舱)
+        /// </summary>
+        public decimal OutsideGWPay { get; set; }
+
+        /// <summary>
+        ///  国际旅费合计选择框(头等舱)
+        /// </summary>
+        public int ChoiceTwoTD { get; set; }
+
+        /// <summary>
+        /// 国际旅费合计(头等舱)
+        /// </summary>
+        public decimal OutsideTDPay { get; set; }
+    }
+
     public class DayAndCostMobileInfoView
     {
         public int Id { get; set; }
@@ -717,6 +766,67 @@ namespace OASystem.Domain.ViewModels.Groups
         public decimal SubTotal { get; set; }
     }
 
+    public class ChoiceThreeMobileSubInfo3To6BaseView
+    {
+        public int Id { get; set; }
+        public DayAndCostMobileInfoView[] Details { get; set; }
+    }
+    public class ChoiceThreeMobileSubInfoView : ChoiceThreeMobileSubInfo3To6BaseView
+    {
+        /// <summary>
+        /// 住宿费合计 选择框
+        /// </summary>
+        public int ChoiceThree { get; set; }
+
+        /// <summary>
+        /// 住宿费合计
+        /// </summary>
+        public decimal ChoiceThreeTotalCost { get; set; }
+
+    }
+
+    public class ChoiceFourMobileSubInfoView : ChoiceThreeMobileSubInfo3To6BaseView
+    {
+        /// <summary>
+        /// 住宿费合计 选择框
+        /// </summary>
+        public int ChoiceFour { get; set; }
+
+        /// <summary>
+        /// 住宿费合计
+        /// </summary>
+        public decimal ChoiceFourTotalCost { get; set; }
+
+    }
+
+    public class ChoiceFiveMobileSubInfoView : ChoiceThreeMobileSubInfo3To6BaseView
+    {
+        /// <summary>
+        /// 住宿费合计 选择框
+        /// </summary>
+        public int ChoiceFive { get; set; }
+
+        /// <summary>
+        /// 住宿费合计
+        /// </summary>
+        public decimal ChoiceFiveTotalCost { get; set; }
+
+    }
+
+    public class ChoiceSixMobileSubInfoView : ChoiceThreeMobileSubInfo3To6BaseView
+    {
+        /// <summary>
+        /// 住宿费合计 选择框
+        /// </summary>
+        public int ChoiceSix { get; set; }
+
+        /// <summary>
+        /// 住宿费合计
+        /// </summary>
+        public decimal ChoiceSixTotalCost { get; set; }
+
+    }
+
     public class DayOtherPriceMobileInfoView
     {
         public int Id { get; set; }
@@ -739,6 +849,193 @@ namespace OASystem.Domain.ViewModels.Groups
         public string Remark { get; set; }
     }
 
+    public class ChoiceSevenMobileSubInfoView
+    {
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 其他款项 选择框
+        /// </summary>
+        public int OtherExpenses_Checked { get; set; }
+
+        /// <summary>
+        /// 其他款项 选择框
+        /// </summary>
+        public decimal OtherExpensesTotalCost { get; set; }
+
+        public DayOtherPriceMobileInfoView[] Details { get; set; }
+    }
+
+    #endregion
+
+
+    #region Info Parent View
+
+    public class EnterExitCostMobileParentInfoView
+    {
+        public int Id { get; set; }
+
+        public int DiId { get; set; }
+
+        #region 汇率币种
+
+        /// <summary>
+        ///  多个币种存储
+        ///  存储方式: 美元(USD):6.2350|.......|墨西哥比索(MXN):1.0000
+        /// </summary>
+        public List<CurrencyInfo>? Currencys { get; set; }
+
+        #endregion
+
+        #region 1:境内费用(其他费用)
+        /// <summary>
+        ///  境内费用(其他费用)选择框
+        /// </summary>
+        public int ChoiceOne { get; set; }
+
+        /// <summary>
+        /// 境内费用(其他费用) 合计
+        /// </summary>
+        public decimal ChoiceOneTotalCost { get; set; }
+
+        #endregion
+
+        #region 2:国际旅费
+        /// <summary>
+        ///  国际旅费合计选择框 (经济舱)
+        /// </summary>
+        public int ChoiceTwoJJ { get; set; }
+
+        /// <summary>
+        /// 国际旅费合计(经济舱)
+        /// </summary>
+        public decimal OutsideJJPay { get; set; }
+
+        /// <summary>
+        ///  国际旅费合计选择框(公务舱)
+        /// </summary>
+        public int ChoiceTwoGW { get; set; }
+
+        /// <summary>
+        ///  国际旅费合计(公务舱)
+        /// </summary>
+        public decimal OutsideGWPay { get; set; }
+
+        /// <summary>
+        ///  国际旅费合计选择框(头等舱)
+        /// </summary>
+        public int ChoiceTwoTD { get; set; }
+
+        /// <summary>
+        /// 国际旅费合计(头等舱)
+        /// </summary>
+        public decimal OutsideTDPay { get; set; }
+
+        #endregion
+
+        #region 3:住宿费
+        /// <summary>
+        /// 住宿费合计 选择框
+        /// </summary>
+        public int ChoiceThree { get; set; }
+
+        /// <summary>
+        /// 住宿费合计
+        /// </summary>
+        public decimal ChoiceThreeTotalCost { get; set; }
+
+
+        #endregion
+
+        #region 4:伙食费
+        /// <summary>
+        ///  伙食费合计 选择框
+        /// </summary>
+        public int ChoiceFour { get; set; }
+
+        /// <summary>
+        /// 伙食费合计
+        /// </summary>
+        public decimal ChoiceFourTotalCost { get; set; }
+
+
+        #endregion
+
+        #region 5:公杂费
+        /// <summary>
+        ///  公杂费合计 选择框
+        /// </summary>
+        public int ChoiceFive { get; set; }
+
+        /// <summary>
+        /// 公杂费合计
+        /// </summary>
+        public decimal ChoiceFiveTotalCost { get; set; }
+
+
+        #endregion
+
+        #region 6:培训费
+
+        /// <summary>
+        ///  培训费用选择框
+        /// </summary>
+        public int ChoiceSix { get; set; }
+
+        /// <summary>
+        /// 公杂费合计
+        /// </summary>
+        public decimal ChoiceSixTotalCost { get; set; }
+
+        #endregion
+
+        #region 7:其他
+        /// <summary>
+        /// 其他款项 选择框
+        /// </summary>
+        public int OtherExpenses_Checked { get; set; }
+
+        /// <summary>
+        /// 其他款项 选择框
+        /// </summary>
+        public decimal OtherExpensesTotalCost { get; set; }
+
+        #endregion
+
+        /// <summary>
+        /// 经济舱费用总计
+        /// </summary>
+        public decimal TouristClassTotalCost
+        {
+            get
+            {
+                return OutsideJJPay <= 0 ? 0.00M : OutsideJJPay + ChoiceOneTotalCost + ChoiceThreeTotalCost + ChoiceFourTotalCost + ChoiceFiveTotalCost + ChoiceSixTotalCost + OtherExpensesTotalCost;
+            }
+        }
+
+        /// <summary>
+        /// 公务舱费用总计
+        /// </summary>
+        public decimal BusinessClassTotalCost
+        {
+            get
+            {
+                return OutsideGWPay <= 0 ? 0.00M : OutsideGWPay + ChoiceOneTotalCost + ChoiceThreeTotalCost + ChoiceFourTotalCost + ChoiceFiveTotalCost + ChoiceSixTotalCost + OtherExpensesTotalCost;
+            }
+        }
+
+        /// <summary>
+        /// 头等舱费用总计
+        /// </summary>
+        public decimal FirstClassTotalCost
+        {
+            get
+            {
+                return OutsideTDPay <= 0 ? 0.00M : OutsideTDPay + ChoiceOneTotalCost + ChoiceThreeTotalCost + ChoiceFourTotalCost + ChoiceFiveTotalCost + ChoiceSixTotalCost + OtherExpensesTotalCost;
+            }
+        }
+    }
+
     #endregion
 
     #endregion