using OASystem.Domain.Entities.Groups;
using OASystem.Domain.ViewModels.Financial;
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.ViewModels.Groups
{
    /// <summary>
    /// 出入境费用 View
    /// </summary>
    public class EnterExitCostView:Grp_EnterExitCost { }


    public class EnterExitCostGroupNameView
    {
        public int Id { get; set; }

        public string GroupName { get; set; }

        public string IsNull { get; set; }
    }

    /// <summary>
    /// 出入境国家(城市)费用标准 View
    /// </summary>
    public class NationalTravelFeeView : Grp_NationalTravelFee { }

    /// <summary>
    /// 出入境国家(城市)费用标准Info  View
    /// </summary>
    public class NationalTravelFeeInfoView
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 洲别
        /// </summary>
        public string? Continent { get; set; }

        /// <summary>
        /// 国家
        /// </summary>
        public string? Country { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        public string? City { get; set; }

        /// <summary>
        /// 币种
        /// Sys_SetData STid=66
        /// </summary>
        public int Currency { get; set; }

        /// <summary>
        /// 币种code
        /// </summary>
        public string? CurrencyCode { get; set; }

        /// <summary>
        /// 币种Name
        /// </summary>
        public string? CurrencyName { get; set; }

        /// <summary>
        /// 住宿费
        /// </summary>
        public decimal RoomCost { get; set; } = 0;

        /// <summary>
        /// 伙食费
        /// </summary>
        public decimal FoodCost { get; set; } = 0;

        /// <summary>
        /// 公杂费 
        /// </summary>
        public decimal PublicCost { get; set; } = 0;

        /// <summary>
        /// 最后更新人 Id 
        /// </summary>
        public int LastUpdateUserId { get; set; }

        /// <summary>
        /// 最后更新人 name
        /// </summary>
        public string? LastUpdateUserName { get; set; }

        /// <summary>
        /// 最后更新时间 
        /// </summary>
        public DateTime? LastUpdateTime { get; set; }
    }

    /// <summary>
    /// 出入境国家(城市)费用标准 Page Info  View
    /// </summary>
    public class NationalTravelFeePageInfoView
    {
        /// <summary>
        /// 行号
        /// </summary>
        public int RowNumber { get; set; }

        public int Id { get; set; }

        /// <summary>
        /// 洲别
        /// </summary>
        public string? Continent { get; set; }

        /// <summary>
        /// 国家
        /// </summary>
        public string? Country { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        public string? City { get; set; }

        /// <summary>
        /// 币种
        /// Sys_SetData STid=66
        /// </summary>
        public int Currency { get; set; }

        /// <summary>
        /// 币种code
        /// </summary>
        public string CurrencyCode { get; set; }

        /// <summary>
        /// 币种名称
        /// </summary>
        public string CurrencyName { get; set; }

        /// <summary>
        /// 住宿费
        /// </summary>
        public decimal RoomCost { get; set; }

        /// <summary>
        /// 伙食费
        /// </summary>
        public decimal FoodCost { get; set; }

        /// <summary>
        /// 公杂费 
        /// </summary>
        public decimal PublicCost { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 最后更新人 
        /// </summary>
        public int LastUpdateUserId { get; set; }

        /// <summary>
        /// 最后更新人
        /// </summary>
        public string LastUpdateUserName { get; set; }

        /// <summary>
        /// 最后更新时间 
        /// </summary>
        public DateTime? LastUpdateTime { get; set; } = DateTime.Now;

    }

    /// <summary>
    /// 出入境国家(城市)费用标准 Info  View
    /// </summary>
    public class NationalTravelFeeInfoByCountryAndCityView
    {
        /// <summary>
        /// 洲别
        /// </summary>
        public string? Continent { get; set; }

        /// <summary>
        /// 国家
        /// </summary>
        public string? Country { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        public string? City { get; set; }

        /// <summary>
        /// 币种
        /// Sys_SetData STid=66
        /// </summary>
        public int Currency { get; set; }

        /// <summary>
        /// 币种code
        /// </summary>
        public string CurrencyCode { get; set; }

        /// <summary>
        /// 币种名称
        /// </summary>
        public string CurrencyName { get; set; }

        /// <summary>
        /// 住宿费
        /// </summary>
        public decimal RoomCost { get; set; }

        /// <summary>
        /// 伙食费
        /// </summary>
        public decimal FoodCost { get; set; }

        /// <summary>
        /// 公杂费 
        /// </summary>
        public decimal PublicCost { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 最后更新人 
        /// </summary>
        public int LastUpdateUserId { get; set; }

        /// <summary>
        /// 最后更新人
        /// </summary>
        public string LastUpdateUserName { get; set; }

        /// <summary>
        /// 最后更新时间 
        /// </summary>
        public DateTime? LastUpdateTime { get; set; } = DateTime.Now;

    }

    /// <summary>
    /// 出入境费用info
    /// </summary>
    public class EnterExitCostInfoView
    {
        public bool IsSave { get; set; }
        public bool IsView { get; set; } = false;

        public int[] ViewUsers { get; set; } = Array.Empty<int>();

        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 团组Id
        /// </summary>
        public int DiId { get; set; }

        /// <summary>
        /// 境内费用(其他费用)
        /// </summary>
        public decimal InsidePay { get; set; }

        #region 境内费用(其他费用)子项

        /// <summary>
        /// 签证费
        /// </summary>
        public decimal Visa { get; set; }

        /// <summary>
        /// 签证费描述
        /// </summary>
        public string? VisaRemark { get; set; }

        /// <summary>
        /// 疫苗费
        /// </summary>
        public decimal YiMiao { get; set; }

        /// <summary>
        /// 核酸检测费用
        /// </summary>
        public decimal HeSuan { get; set; }

        /// <summary>
        /// 服务费用
        /// </summary>
        public decimal Service { get; set; }

        /// <summary>
        /// 参展门票
        /// </summary>
        public decimal Ticket { get; set; }

        /// <summary>
        /// 保险费
        /// </summary>
        public decimal Safe { get; set; }

        public string FirstItemRemark { get; set; }

        #endregion

        /// <summary>
        /// 国际旅费合计(经济舱)
        /// </summary>
        public decimal OutsideJJPay { get; set; }

        /// <summary>
        ///  国际旅费合计(公务舱)
        /// </summary>
        public decimal OutsideGWPay { get; set; }


        /// <summary>
        /// 国际旅费合计(头等舱)
        /// </summary>
        public decimal OutsideTDPay { get; set; }

        #region 国际旅费合计(经济舱\公务舱\头等舱)

        /// <summary>
        ///  国际机票(经济舱)
        /// </summary>
        public decimal AirJJ { get; set; }

        /// <summary>
        ///  国际机票(公务舱)
        /// </summary>
        public decimal AirGW { get; set; }

        /// <summary>
        ///  国际机票(头等舱)
        /// </summary>
        public decimal AirTD { get; set; }

        /// <summary>
        ///  国外城市间交通费
        /// </summary>
        public decimal CityTranffic { get; set; }

        /// <summary>
        /// 第二项备注
        /// </summary>
        public string TwoItemRemark { get; set; }

        #region 汇率币种

        /// <summary>
        ///  多个币种存储
        ///  存储方式: 美元(USD):6.2350|.......|墨西哥比索(MXN):1.0000
        /// </summary>
        public List<CurrencyInfo>? Currencys{ get; set; }

        #endregion

        #endregion

        #region 选择框状态

        /// <summary>
        ///  境内费用(其他费用)选择框
        /// </summary>
        public int ChoiceOne { get; set; }

        /// <summary>
        ///  国际旅费合计选择框
        /// </summary>
        public int ChoiceTwo { get; set; }

        /// <summary>
        ///  经济舱小计选择框
        /// </summary>
        public int SumJJC { get; set; }

        /// <summary>
        ///  公务舱小计选择框
        /// </summary>
        public int SumGWC { get; set; }

        /// <summary>
        ///  头等舱小计选择框
        /// </summary>
        public int SumTDC { get; set; }

        /// <summary>
        ///  住宿费合计选择框
        /// </summary>
        public int ChoiceThree { get; set; }

        /// <summary>
        /// 住宿费子项Data
        /// </summary>
        public List<DayAndCostInfoView>? QuarterageData { get; set; }

        /// <summary>
        ///  伙食费合计选择框
        /// </summary>
        public int ChoiceFour { get; set; }

        /// <summary>
        /// 伙食费子项Data
        /// </summary>
        public List<DayAndCostInfoView>? BoardWagesData { get; set; }

        /// <summary>
        ///  公杂费合计选择框
        /// </summary>
        public int ChoiceFive { get; set; }

        /// <summary>
        /// 公杂费子项Data
        /// </summary>
        public List<DayAndCostInfoView>? MiscellaneousFeeData { get; set; }

        /// <summary>
        ///  培训费用选择框
        /// </summary>
        public int ChoiceSix { get; set; }

        /// <summary>
        /// 培训费子项Data
        /// </summary>
        public List<DayAndCostInfoView>? TrainingExpenseData { get; set; }

        /// <summary>
        /// 经济舱选择框
        /// </summary>
        public int AirJJC_Checked { get; set; }

        /// <summary>
        /// 公务舱选择框
        /// </summary>
        public int AirGWC_Checked { get; set; }

        /// <summary>
        /// 头等舱选择框
        /// </summary>
        public int AirTDC_Checked { get; set; }

        /// <summary>
        /// 其他款项选择框
        /// </summary>
        public int OtherExpenses_Checked { get; set; }

        /// <summary>
        /// 其他款项子项Data
        /// </summary>
        public List<DayOtherPriceView> DayOtherPriceData { get; set; }
        #endregion
    }

    #region 移动端

    public class EnterExitCostMobileGroupView
    {
        public int Id { get; set; }
        public string GroupName { get; set; }
        public bool IsNull { get; set; }
        public bool IsEdit { get; set; }
        public bool IsView { get; set; }
    }


    #region info View
    public class EnterExitCostMobileInfoView
    {
        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; }

        /// <summary>
        /// 境内费用(其他费用) 详情
        /// </summary>
        public ChoiceOneMobileInfoView ChoiceOneDetails { get; set; }
        #endregion

        #region 2:国际旅费
        /// <summary>
        ///  国际旅费合计选择框
        /// </summary>
        public int ChoiceTwo { get; set; }

        /// <summary>
        /// 国际旅费合计(经济舱)
        /// </summary>
        public decimal OutsideJJPay { get; set; }

        /// <summary>
        ///  国际旅费合计(公务舱)
        /// </summary>
        public decimal OutsideGWPay { get; set; }

        /// <summary>
        /// 国际旅费合计(头等舱)
        /// </summary>
        public decimal OutsideTDPay { get; set; }

        /// <summary>
        /// 国际旅费 详情
        /// </summary>
        public ChoiceTwoMobileInfoView ChoiceTwoDetails { get; set; }
        #endregion

        #region 3:住宿费
        /// <summary>
        /// 住宿费合计 选择框
        /// </summary>
        public int ChoiceThree { get; set; }

        /// <summary>
        /// 住宿费合计
        /// </summary>
        public decimal ChoiceThreeTotalCost { get { return ChoiceThreeDetails.Sum(x => x.SubTotal); } }

        /// <summary>
        /// 住宿费子项 Data
        /// </summary>
        public DayAndCostMobileInfoView[] ChoiceThreeDetails { get; set; }

        #endregion

        #region 4:伙食费
        /// <summary>
        ///  伙食费合计 选择框
        /// </summary>
        public int ChoiceFour { get; set; }

        /// <summary>
        /// 伙食费合计
        /// </summary>
        public decimal ChoiceFourTotalCost { get { return ChoiceFourDetails.Sum(x => x.SubTotal); } }

        /// <summary>
        /// 伙食费子项Data
        /// </summary>
        public DayAndCostMobileInfoView[] ChoiceFourDetails { get; set; }

        #endregion

        #region 5:公杂费
        /// <summary>
        ///  公杂费合计 选择框
        /// </summary>
        public int ChoiceFive { get; set; }

        /// <summary>
        /// 公杂费合计
        /// </summary>
        public decimal ChoiceFiveTotalCost { get { return ChoiceFiveDetails.Sum(x => x.SubTotal); } }

        /// <summary>
        /// 公杂费子项Data
        /// </summary>
        public DayAndCostMobileInfoView[] ChoiceFiveDetails { get; set; }

        #endregion

        #region 6:培训费

        /// <summary>
        ///  培训费用选择框
        /// </summary>
        public int ChoiceSix { get; set; }

        /// <summary>
        /// 公杂费合计
        /// </summary>
        public decimal ChoiceSixTotalCost { get { return ChoiceSixDetails.Sum(x => x.SubTotal); } }

        /// <summary>
        /// 培训费子项Data
        /// </summary>
        public DayAndCostMobileInfoView[] ChoiceSixDetails { get; set; }
        #endregion

        #region 7:其他
        /// <summary>
        /// 其他款项 选择框
        /// </summary>
        public int OtherExpenses_Checked { get; set; }

        /// <summary>
        /// 其他款项 选择框
        /// </summary>
        public decimal OtherExpensesTotalCost { get { return OtherExpensesDetails.Sum(x => x.SubTotal); } }

        /// <summary>
        /// 其他款项子项Data
        /// </summary>
        public DayOtherPriceMobileInfoView[] OtherExpensesDetails { 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;
            }
        }
    }

    public class ChoiceOneMobileInfoView
    {
        /// <summary>
        /// 签证费
        /// </summary>
        public decimal Visa { get; set; }

        /// <summary>
        /// 签证费描述
        /// </summary>
        public string? VisaRemark { get; set; }

        /// <summary>
        /// 疫苗费
        /// </summary>
        public decimal YiMiao { get; set; }

        /// <summary>
        /// 核酸检测费用
        /// </summary>
        public decimal HeSuan { get; set; }

        /// <summary>
        /// 服务费用
        /// </summary>
        public decimal Service { get; set; }

        /// <summary>
        /// 参展门票
        /// </summary>
        public decimal Ticket { get; set; }

        /// <summary>
        /// 保险费
        /// </summary>
        public decimal Safe { get; set; }

        public string FirstItemRemark { 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>
        ///  国际机票(经济舱)
        /// </summary>
        public decimal AirJJ { get; set; }

        /// <summary>
        ///  国际机票(公务舱)
        /// </summary>
        public decimal AirGW { get; set; }

        /// <summary>
        ///  国际机票(头等舱)
        /// </summary>
        public decimal AirTD { get; set; }

        /// <summary>
        ///  国外城市间交通费
        /// </summary>
        public decimal CityTranffic { get; set; }

        public string TwoItemRemark { 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 SubId { get; set; }

        public int DiId { get; set; }

        public int Type { get; set; }

        public int Days { get; set; }

        public int NationalTravelFeeId { get; set; }

        public string Arae { get; set; }

        public decimal Cost { get; set; }

        public int Currency { get; set; }

        public string CurrencyName { get; set; }

        public decimal SubTotal { get; set; }
    }

    public class ChoiceMobileSubInfo3To6View
    {
        /// <summary>
        /// 主表Id
        /// </summary>
        public int ParentId { get; set; }
        /// <summary>
        /// 住宿费合计 选择框
        /// </summary>
        public int Choice { get; set; }

        /// <summary>
        /// 住宿费合计
        /// </summary>
        public decimal TotalCost { get; set; }

        public DayAndCostMobileInfoView[] Details { get; set; }
    }
   
    public class DayOtherPriceMobileInfoView
    {
        public int SubId { get; set; }

        public int DiId { get; set; }

        public int Index { get; set; }

        public int SetDataId { get; set; }

        public string SetDataName { get; set; }

        public decimal Cost { get; set; }

        public int Currency { get; set; }

        public string CurrencyName { get; set; }

        public decimal SubTotal { get; set; }
        public string Remark { get; set; }
    }

    public class ChoiceSevenMobileSubInfoView
    {
        /// <summary>
        /// 主表Id
        /// </summary>
        public int ParentId { 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; } = new List<CurrencyInfo> { };

        #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

   
    /// <summary>
    /// 出入境国家(城市)费用标准子项Info  View
    /// </summary>
    public class DayAndCostInfoView
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 团组Id
        /// </summary>
        public int DiId { get; set; }

        /// <summary>
        /// 类型:1为住宿费;2为伙食费;3为公杂费;4培训费用
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 类型名称
        /// </summary>
        public string? TypeName
        {
            get
            {
                string str = "";
                if (Type == 1) str = string.Format("住宿费");
                else if (Type == 2) str = string.Format("伙食费");
                else if (Type == 3) str = string.Format("公杂费");
                else if (Type == 4) str = string.Format("培训费");
                return str;
            }
        }

        /// <summary>
        /// 天数
        /// </summary>
        public int Days { get; set; }

        /// <summary>
        /// 出入境国家费用标准 - Id
        /// </summary>
        public int NationalTravelFeeId { get; set; }

        /// <summary>
        /// 出入境国家费用标准 - 国家
        /// </summary>
        public string? Country { get; set; }

        /// <summary>
        /// 出入境国家费用标准 - 城市
        /// </summary>
        public string City { get; set; }

        ///// <summary>
        ///// 地名
        ///// </summary>
        //public string? Place { get; set; }

        /// <summary>
        /// 地名
        /// </summary>
        public string? PlaceName
        {
            get
            {
                string str = "";
                if (!string.IsNullOrEmpty(Country))
                {
                    if (City.Contains("城市")) str = Country;
                    else str = City;
                }

                return str;

            }
        }

        /// <summary>
        /// 费用标准
        /// </summary>
        public decimal Cost { get; set; }

        /// <summary>
        /// 币种 Id
        /// Sys_SetData STid = 66
        /// </summary>
        public int Currency { get; set; }

        /// <summary>
        /// 币种Code
        /// </summary>
        public string? CurremcyCode { get; set; }

        /// <summary>
        /// 币种名称
        /// </summary>
        public string? CurrencyName { get; set; }

        /// <summary>
        /// 小计
        /// </summary>
        public decimal SubTotal { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; } = "";
    }


    /// <summary>
    /// 出入境国家(城市)费用标准子项Add  View
    /// </summary>
    public class DayAndCostAddView
    {
        /// <summary>
        /// 主键编号
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 团组Id
        /// </summary>
        public int DiId { get; set; }

        /// <summary>
        /// 类型:1为住宿费;2为伙食费;3为公杂费;4培训费用
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 天数
        /// </summary>
        public int Days { get; set; }

        /// <summary>
        /// 出入境国家费用标准 - Id
        /// </summary>
        public int NationalTravelFeeId { get; set; }

        /// <summary>
        /// 费用标准
        /// </summary>
        public decimal Cost { get; set; }

        /// <summary>
        /// 币种 Id
        /// Sys_SetData STid = 66
        /// </summary>
        public int Currency { get; set; }

        /// <summary>
        /// 小计
        /// </summary>
        public decimal SubTotal { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; } = "";
    }

    public class DayOtherPriceView
    {
        public int Id { get; set; }

        public int DiId { get; set; }

        public int SetDataId { get; set; }

        public int Index { get; set; }

        public decimal Cost { get; set; }

        public int Currency { get; set; }

        public decimal SubTotal { get; set; }
        public string Remark { get; set; }
    }

    /// <summary>
    /// 币种详情
    /// </summary>
    public class CurrencyInfo
    {
        /// <summary>
        /// 币种Code
        /// </summary>
        public string? CurrencyCode { get; set; }

        /// <summary>
        /// 币种名称
        /// </summary>
        public string? CurrencyName { get; set; }

        /// <summary>
        /// 币种当时汇率
        /// </summary>
        public decimal Rate { get; set; }
    }
}