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; } } }