Pārlūkot izejas kodu

机票费用录入修改添加的编辑

wangh 1 gadu atpakaļ
vecāks
revīzija
8daf532d8e

+ 2 - 1
OASystem/EntitySync/Program.cs

@@ -94,6 +94,7 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Fin_DailyFeePaymentContent)  // 财务 - 日付申请详细类
     //typeof(Grp_GroupsTaskAssignment)
     //typeof(Grp_AirTicketReservations)
-    typeof(Grp_GroupCostParameter)
+    //typeof(Grp_GroupCostParameter)
+    typeof(Grp_TeamRate)
 });
 Console.WriteLine("数据库结构同步完成!");

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

@@ -485,6 +485,44 @@ namespace OASystem.API.Controllers
             }
         }
 
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> AirTicketResById(AirTicketResByIdDto dto)
+        {
+            try
+            {
+                Result groupData = await _airTicketResRep.AirTicketResById(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> OpAirTicketRes(AirTicketResOpDto dto)
+        {
+            try
+            {
+                Result groupData = await _airTicketResRep.OpAirTicketRes(dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, groupData.Msg));
+                }
+                return Ok(JsonView(true, groupData.Msg, groupData.Data));
+            }
+            catch (Exception ex)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
         #endregion
     }
 }

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

@@ -38,6 +38,7 @@ namespace OASystem.Domain.AutoMappers
             #region 数据类型板块
             CreateMap<OperationSetDataTypeDto, Sys_SetDataType>();
             CreateMap<OperationSetDataDto, Sys_SetData>();
+            CreateMap<Sys_SetData, SetDataInfoView>();
             #endregion
             #region 公司板块
             CreateMap<Sys_Company, CompanyView>();
@@ -76,9 +77,15 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<Grp_ScheduleDetailUpdDto, Grp_ScheduleDetailInfo>();
             CreateMap<Grp_ScheduleDetailInsertDto, Grp_ScheduleDetailInfo>();
             CreateMap<TaskAssignmenDto, Grp_GroupsTaskAssignment>();
+            #region 机票费用录入
+            CreateMap<AirTicketResOp, Grp_AirTicketReservations>();
+            CreateMap<CardPayment, Grp_CreditCardPayment>();
             CreateMap<Grp_GroupCostParameter,AirGroupCostParameterView>();
             #endregion
 
+
+            #endregion
+
             #region Resource
 
             #region 车公司资料

+ 274 - 0
OASystem/OASystem.Domain/Dtos/Groups/AirTicketResDto.cs

@@ -15,4 +15,278 @@ namespace OASystem.Domain.Dtos.Groups
     {
         public int DiId { get; set; }
     }
+    public class AirTicketResByIdDto
+    {
+        public int Id { get; set; }
+    }
+    public class AirTicketResOpDto
+    {
+        /// <summary>
+        /// 操作状态
+        /// 1 添加 
+        /// 2 修改 
+        /// </summary>
+        public int Status { get; set; }
+        public AirTicketResOp AirTicketResOpData { get; set; }
+        public CardPayment CardPaymentOpData { get; set; }
+
+    }
+    /// <summary>
+    /// 机票费用录入表参数
+    /// </summary>
+    public class AirTicketResOp
+    {
+        /// <summary>
+        /// 编号
+        /// </summary>
+        public int Id { get; set; }
+
+        public int DiId { get;set; }
+        /// <summary>
+        /// 舱类型
+        /// </summary>
+        public int CType { get; set; }
+        /// <summary>
+        /// 出票前报价
+        /// </summary>
+        public decimal PrePrice { get; set; }
+
+        /// <summary>
+        /// 出票前报价币种
+        /// </summary>
+        public int PreCurrency { get; set; }
+        /// <summary>
+        /// 机票全价
+        /// </summary>
+        public decimal Price { get; set; }
+        /// <summary>
+        /// 币种
+        /// </summary>
+        public int Currency { get; set; }
+        /// <summary>
+        /// 客户人数
+        /// </summary>
+        public int ClientNum { get; set; }
+        /// <summary>
+        /// 客人名称
+        /// </summary>
+        public string ClientName { get; set; }
+        /// <summary>
+        /// 是否值机
+        /// </summary>
+        public int IsCheckIn { get; set; }
+        /// <summary>
+        /// 是否选座
+        /// </summary>
+        public int IsSetSeat { get; set; }
+
+        /// <summary>
+        /// 是否购买行李服务
+        /// </summary>
+        public int IsPackage { get; set; }
+        /// <summary>
+        /// 是否行李直挂
+        /// </summary>
+        public int IsBagHandle { get; set; }
+        /// <summary>
+        /// 是否火车票出票选座
+        /// </summary>
+        public int IsTrain { get; set; }
+        /// <summary>
+        /// 航班号
+        /// </summary>
+        public string FlightsCode { get; set; }
+        /// <summary>
+        /// 城市A-B
+        /// </summary>
+        public string FlightsCity { get; set; }
+        /// /// <summary>
+        /// 内陆段航班描述
+        /// </summary>
+        public string FlightsDescription { get; set; }
+
+        /// <summary>
+        /// 报价说明
+        /// </summary>、
+        public string PriceDescription { get; set; }
+        /// <summary>
+        /// 创建者Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+
+    }
+    /// <summary>
+    /// C表参数
+    /// </summary>
+    public class CardPayment
+    {
+        /// <summary>
+        /// 编号
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 支付方式
+        /// </summary>
+        public int PayDId { get; set; }
+        /// <summary>
+        /// 消费方式
+        /// </summary>
+        public string ConsumptionPatterns { get; set; }
+        /// <summary>
+        /// 消费日期
+        /// </summary>
+        public DateTime ConsumptionDate { get; set; }
+        /// <summary>
+        /// 卡类型
+        /// </summary>
+        public int CTDId { get; set; }
+        /// <summary>
+        /// 银行卡号
+        /// </summary>
+        public string BankNo { get; set; }
+        /// <summary>
+        /// 持卡人姓名
+        /// </summary>
+        public string CardholderName { get; set; }
+        /// <summary>
+        /// 付款金额
+        /// </summary>
+        public decimal PayMoney { get; set; }
+        /// <summary>
+        /// 付款币种 数据类型Id
+        /// </summary>
+        public int PaymentCurrency { get; set; }
+        ///// <summary>
+        ///// 当天汇率 计算
+        ///// </summary>
+        //public string DayRate { get; set; }
+        /// <summary>
+        /// 公司银行卡号
+        /// </summary>
+        public string CompanyBankNo { get; set; }
+        /// <summary>
+        /// 对方开户行
+        /// </summary>
+        public string OtherBankName { get; set; }
+        /// <summary>
+        /// 对方银行账号
+        /// </summary>
+        public string OtherSideNo { get; set; }
+        /// <summary>
+        /// 对方姓名
+        /// </summary>
+        public string OtherSideName { get; set; }
+        /// <summary>
+        /// 财务操作人 用户Id
+        /// </summary>
+        public string MFOperator { get; set; }
+        /// <summary>
+        /// 财务操作时间
+        /// </summary>
+        public DateTime MFOperatorDate { get; set; }
+        ///// <summary>
+        ///// 部门经理是否审核 0否1是
+        ///// </summary>
+        //public int IsAuditDM { get; set; }
+        ///// <summary>
+        ///// 部门经理审核人 用户Id
+        ///// </summary>
+        //public int AuditDMOperate { get; set; }
+        ///// <summary>
+        ///// 部门经理审核时间
+        ///// </summary>
+        //public DateTime AuditDMDate { get; set; }
+        ///// <summary>
+        ///// 财务部是否审核  0否1是
+        ///// </summary>
+        //public int IsAuditMF { get; set; }
+        ///// <summary>
+        ///// 财务部审核人
+        ///// </summary>
+        //public int AuditMFOperate { get; set; }
+        ///// <summary>
+        ///// 财务部审核时间
+        ///// </summary>
+        //public DateTime AuditMFDate { get; set; }
+        ///// <summary>
+        ///// 总经理是否审核  0否1是
+        ///// </summary>
+        //public int IsAuditGM { get; set; }
+        ///// <summary>
+        ///// 总经理审核人
+        ///// </summary>
+        //public int AuditGMOperate { get; set; }
+        ///// <summary>
+        ///// 总经理审核时间
+        ///// </summary>
+        //public DateTime AuditGMDate { get; set; }
+        ///// <summary> 
+        ///// 是否付款  0否1是 判断进行
+        ///// </summary> 
+        //public int IsPay { get; set; }
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        public int DIId { get; set; }
+        ///// <summary>
+        ///// 指向表外键编号 机票费用录入表Id
+        ///// </summary>
+        //public int CId { get; set; }
+        ///// <summary>
+        ///// 指向标识 设置数据外键编号 固定机票 85
+        ///// </summary>
+        //public int CTable { get; set; }
+        ///// <summary>
+        ///// 此次付款百分比 固定1
+        ///// </summary>
+        //public decimal PayPercentage { get; set; }
+        /// <summary>
+        /// 此次付款金额
+        /// </summary>
+        public decimal PayThenMoney { get; set; }
+        ///// <summary>
+        ///// 上次付款百分比 查询并计算最近一次
+        ///// </summary>
+        //public decimal PayPercentageOld { get; set; }
+        ///// <summary>
+        ///// 上次付款金额 查询上一次
+        ///// </summary>
+        //public decimal PayThenMoneyOld { get; set; }
+        ///// <summary>
+        ///// 上次付款时间 查询上一次
+        ///// </summary>
+        //public DateTime UpdateDate { get; set; }
+        /// <summary>
+        /// 收款方
+        /// </summary>
+        public string Payee { get; set; }
+        ///// <summary>
+        ///// 人民币费用 换算
+        ///// </summary>
+        //[SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        //public decimal RMBPrice { get; set; }
+        /// <summary>
+        /// 费用标识
+        /// </summary>
+        public int OrbitalPrivateTransfer { get; set; }
+        ///// <summary>
+        ///// 超出预算比例 换算
+        ///// </summary>
+        //[SugarColumn(IsNullable = true, ColumnDataType = "decimal(10, 2)")]
+        //public decimal ExceedBudget { get; set; }
+        /// <summary>
+        /// 创建者Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+
+    }
+
 }

+ 150 - 0
OASystem/OASystem.Domain/Entities/Groups/Grp_TeamRate.cs

@@ -0,0 +1,150 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Groups
+{
+    /// <summary>
+    /// 团组汇率表
+    /// </summary>
+    [SugarTable("Grp_TeamRate")]
+    public class Grp_TeamRate: EntityBase
+    {
+        /// <summary>
+        /// 团组id
+        /// </summary>
+        [SugarColumn(IsNullable =true,ColumnDataType ="int")]
+        public int DiId { get; set; }
+
+        /// <summary>
+        /// 团组指向分类
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int CTable { get; set; }
+        /// <summary>
+        /// 其他汇率名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string OtherRate { get; set; }
+
+        /// <summary>
+        /// 其他汇率金额
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string OtherPrice { get; set; }
+
+        /// <summary>
+        /// 美元汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateU { get; set; }
+
+        /// <summary>
+        /// 欧元汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateE { get; set; }
+        /// <summary>
+        /// 日元汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateJ { get; set; }
+        /// <summary>
+        /// 港币汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateH { get; set; }
+        /// <summary>
+        /// 新西兰元汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateN { get; set; }
+        /// <summary>
+        /// 新加坡币汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateS { get; set; }
+        /// <summary>
+        /// 澳大利亚元汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateA { get; set; }
+        /// <summary>
+        /// 加拿大元汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateC { get; set; }
+        /// <summary>
+        /// 泰铢汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateT { get; set; }
+        /// <summary>
+        /// 波兰汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateBL { get; set; }
+        /// <summary>
+        /// 韩币
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateHB { get; set; }
+        /// <summary>
+        /// 斐济币汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateFJD { get; set; }
+        /// <summary>
+        /// 土耳其币汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateTL { get; set; }
+        /// <summary>
+        /// 卢比汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateRP { get; set; }
+        /// <summary>
+        /// 菲律宾汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RatePeso { get; set; }
+        /// <summary>
+        /// 马来西亚汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateMYR { get; set; }
+        /// <summary>
+        /// 捷克币汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateCZK { get; set; }
+        /// <summary>
+        /// 墨西哥币汇率
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateMXN { get; set; }
+        /// <summary>
+        /// 澳门元
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateMOP { get; set; }
+        /// <summary>
+        /// 阿根廷比索
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateARS { get; set; }
+        /// <summary>
+        /// 匈牙利货币
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateHUF { get; set; }
+        /// <summary>
+        /// 俄罗斯卢布
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string RateRUB { get; set; }
+    }
+}

+ 2 - 0
OASystem/OASystem.Domain/ViewModels/System/SetDataView.cs

@@ -30,6 +30,8 @@ namespace OASystem.Domain.ViewModels.System
         /// 分类名称
         /// </summary>
         public string Name { get; set; }
+
+        public string Remark { get; set; }
     }
 
 

+ 409 - 22
OASystem/OASystem.Infrastructure/Repositories/Resource/AirTicketResRepository.cs

@@ -1,12 +1,17 @@
 using AutoMapper;
+using MySqlX.XDevAPI.Relational;
 using OASystem.Domain;
 using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Dtos.UserDto;
+using OASystem.Domain.Entities.Customer;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.Resource;
 using OASystem.Domain.ViewModels.Groups;
+using Org.BouncyCastle.Asn1.Ocsp;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Cryptography;
 using System.Text;
 using System.Threading.Tasks;
 using System.Xml.Linq;
@@ -21,6 +26,35 @@ namespace OASystem.Infrastructure.Repositories.Resource
             _mapper = mapper;
         }
 
+        public async Task<Result> AirTicketResById(AirTicketResByIdDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                Grp_AirTicketReservations grp_AirTicket = _sqlSugar.Queryable<Grp_AirTicketReservations>().First(a=>a.Id==dto.Id && a.IsDel==0);
+                if (grp_AirTicket == null)
+                {
+                    return result = new Result() { Code = -1, Msg = "暂无数据" };
+                }
+                else
+                {
+                    Grp_CreditCardPayment grp_CreditCard = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a => a.CId == grp_AirTicket.Id && a.IsDel == 0);
+                    if (grp_CreditCard == null) { return result = new Result() { Code = -1, Msg = "暂无数据" }; }
+                    return result = new Result() { Code = 0, Msg = "查询成功!",Data=new
+                    {
+                        AirTicket= grp_AirTicket,
+                        CreditCard= grp_CreditCard,
+                    }
+                    };
+                }
+            }
+            catch (Exception)
+            {
+                return result = new Result() { Code = -2, Msg = "未知错误" };
+                throw;
+            }
+        }
+
         public async Task<Result> AirTicketResList(AirTicketResListDto dto)
         {
             Result result = new Result() { Code = -2, Msg = "未知错误" };
@@ -153,7 +187,7 @@ namespace OASystem.Infrastructure.Repositories.Resource
                                     break;
                             }
                             string tate = $"{monthAbbreviations}月{day}日";
-                            item.FlightDescription +=depData.AirPort + " " + arrData.AirPort + "  (" + tate + ")\r\n";
+                            item.FlightDescription += depData.AirPort + " " + arrData.AirPort + "  (" + tate + ")\r\n";
                         }
                         catch (Exception)
                         {
@@ -162,15 +196,15 @@ namespace OASystem.Infrastructure.Repositories.Resource
                     }
                 }
                 //团组成本预算表查询
-                Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a=>a.DiId==dto.DiId);
+                Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == dto.DiId);
 
                 AirGroupCostParameterView _AirgroupCostParameter = _mapper.Map<AirGroupCostParameterView>(_GroupCostParameter);
-               
+
                 var data = new
                 {
                     DelegationInfo = _DelegationInfo,
                     AirTicketReservations = _AirTicketReservations,
-                    AirGroupCostParameter= _AirgroupCostParameter
+                    AirGroupCostParameter = _AirgroupCostParameter
                 };
                 return result = new Result() { Code = 0, Msg = "查询成功!", Data = data };
             }
@@ -186,41 +220,394 @@ namespace OASystem.Infrastructure.Repositories.Resource
             Result result = new Result() { Code = -2, Msg = "未知错误" };
             try
             {
+                #region 团组下拉框
+
+                
                 List<Grp_GroupsTaskAssignment> grp_GroupsTaskAssignment = Query<Grp_GroupsTaskAssignment>(a => a.IsDel == 0 && a.UId == dto.UserId && a.CTId == 85).ToList();
-                if (grp_GroupsTaskAssignment.Count != 0)
+
+                string DiId = "";
+                foreach (var item in grp_GroupsTaskAssignment)
+                {
+                    DiId += item.DIId + ",";
+                }
+                DiId = DiId.Substring(0, DiId.Length - 1);
+                string sql = string.Format(@"select * from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0);
+                List<Grp_DelegationInfo> grp_Delegations = _sqlSugar.SqlQueryable<Grp_DelegationInfo>(sql).ToList();
+                if (grp_Delegations.Count == 0)
+                {
+                    return result = new Result() { Code = -1, Msg = "查询失败!" };
+                }
+                List<GroupNameView> grp_NameView = new List<GroupNameView>();
+                foreach (var item in grp_Delegations)
+                {
+                    GroupNameView groupNameView = new GroupNameView();
+                    groupNameView.Id = item.Id;
+                    groupNameView.GroupName = item.TeamName;
+                    grp_NameView.Add(groupNameView);
+                }
+                #endregion
+
+                #region 其他下拉框查询
+                //舱位类型
+                List<Sys_SetData> TicketClass = _sqlSugar.Queryable<Sys_SetData>().Where(a=>a.STid==44 && a.IsDel==0).ToList();
+                List<SetDataInfoView> _TicketClassa = _mapper.Map<List<SetDataInfoView>>(TicketClass);
+                //支付方式
+                List<Sys_SetData> Payment = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 14 && a.IsDel == 0).ToList();
+                List<SetDataInfoView> _Payment = _mapper.Map<List<SetDataInfoView>>(Payment);
+                //卡类型
+                List<Sys_SetData> CardType = _sqlSugar.Queryable<Sys_SetData>().Where(a => a.STid == 15 && a.IsDel == 0).ToList();
+                List<SetDataInfoView> _CardType = _mapper.Map<List<SetDataInfoView>>(CardType);
+                //合作方资料
+                List<Res_AirTicketAgent> _AirTicketAgents = _sqlSugar.Queryable<Res_AirTicketAgent>().Where(a=>a.IsDel == 0).ToList();
+
+                #endregion
+                var data = new
+                {
+                    TicketClass = _TicketClassa,
+                    Payment = _Payment,
+                    CardType = _CardType,
+                    GroupName = grp_NameView,
+                    AirTicketAgents= _AirTicketAgents
+                };
+                return result = new Result() { Code = 0, Msg = "查询成功!", Data=data };
+            }
+            catch (Exception ex)
+            {
+                return result = new Result() { Code = -2, Msg = "程序错误" };
+                throw;
+            }
+        }
+
+
+
+        public async Task<Result> OpAirTicketRes(AirTicketResOpDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+            try
+            {
+                BeginTran();
+                int id = 0;
+                Grp_AirTicketReservations grp_AirTicket = _mapper.Map<Grp_AirTicketReservations>(dto.AirTicketResOpData);
+                if (dto.Status==1)
                 {
-                    string DiId = "";
-                    foreach (var item in grp_GroupsTaskAssignment)
+                    string selectSql = string.Format(@"select * from Grp_AirTicketReservations where ClientName='{0}' and IsDel={1}"
+                                                     , dto.AirTicketResOpData.ClientName, 0);
+                    var DeleClient = await _sqlSugar.SqlQueryable<Grp_AirTicketReservations>(selectSql).FirstAsync();//查询是否存在
+                    if (DeleClient != null)
+                    {
+                        return result = new Result() { Code = -1, Msg = "该客户已存在,请勿重复添加!" };
+                    }
+                    else//不存在,可添加
                     {
-                        DiId += item.DIId + ",";
+                       
+                        id = await AddAsyncReturnId(grp_AirTicket);
+                        if (id == 0)
+                        {
+                            result = new Result() { Code = -1, Msg = "添加失败!" };
+
+                        }
+                        else
+                        {
+                            result = new Result() { Code = 0, Msg = "添加成功!" };
+                        }
+                        
                     }
-                    DiId = DiId.Substring(0, DiId.Length - 1);
-                    string sql = string.Format(@"select * from Grp_DelegationInfo where Id in({0}) and IsDel={1}", DiId, 0);
-                    List<Grp_DelegationInfo> grp_Delegations = _sqlSugar.SqlQueryable<Grp_DelegationInfo>(sql).ToList();
-                    if (grp_Delegations.Count == 0)
+                    if (result.Code==0)
                     {
-                        return result = new Result() { Code = -1, Msg = "查询失败!" };
+                        Grp_CreditCardPayment grp_CreditCard = _mapper.Map<Grp_CreditCardPayment>(dto.CardPaymentOpData);
+                        //换算
+                        Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0 && a.CTable==85);
+                        if (_TeamRate!=null)
+                        {
+                            if (grp_CreditCard.PaymentCurrency == 49)
+                            {
+                                grp_CreditCard.DayRate = _TeamRate.RateU;
+                                grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateU);
+                                //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); 
+                            }
+                            else if (grp_CreditCard.PaymentCurrency == 51)
+                            {
+                                grp_CreditCard.DayRate = _TeamRate.RateE;
+                                grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateE);
+                                //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); 
+                            }
+                            else
+                            {
+                                grp_CreditCard.DayRate = "1";
+                                grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
+                            }
+                        }
+                        else
+                        {
+                            grp_CreditCard.DayRate = "1";
+                            grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
+                        }
+                        
+                        //判断是否超出成本
+                        Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel==0);
+                        if (grp_AirTicket.CType==460)//经济舱
+                        {
+                            if((Convert.ToDecimal(_GroupCostParameter.JJCCB)* Convert.ToDecimal(grp_AirTicket.ClientNum))> grp_CreditCard.RMBPrice)
+                            {
+                                grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 3;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 0;
+                                grp_CreditCard.AuditGMDate = DateTime.Now;
+                                grp_CreditCard.IsPay = 1;
+                            }
+                            else
+                            {
+                                var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.JJCCB);
+                                var b = a / Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
+                                grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 21;
+                                grp_CreditCard.AuditGMDate =new DateTime();
+                                grp_CreditCard.IsPay = 1;
+                            }
+                            
+                        }
+                        else if(grp_AirTicket.CType==458)
+                        {
+                            if ((Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
+                            {
+                                grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 3;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 21;
+                                grp_CreditCard.AuditGMDate = DateTime.Now;
+                                grp_CreditCard.IsPay = 1;
+                            }
+                            else
+                            {
+                                var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.GWCB);
+                                var b = a / Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
+                                grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 21;
+                                grp_CreditCard.AuditGMDate = new DateTime();
+                                grp_CreditCard.IsPay = 1;
+                            }
+                        }
+                       
+
+                        grp_CreditCard.CId = id;
+                        grp_CreditCard.CTable = 85;
+                        grp_CreditCard.PayPercentage = 100;
+                        //查询上一次付款信息
+                        Grp_CreditCardPayment _CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().OrderByDescending(x=>x.CreateUserId).First(a => a.DIId == grp_AirTicket.DIId && a.IsDel == 0 && a.IsPay==1);
+                        if (_CreditCardPayment != null)
+                        {
+                            grp_CreditCard.PayPercentageOld = _CreditCardPayment.PayPercentageOld;// 上次付款百分比 查询并计算最近一次
+                            grp_CreditCard.PayThenMoneyOld = _CreditCardPayment.PayMoney;// 上次付款金额 查询上一次
+                            grp_CreditCard.UpdateDate = _CreditCardPayment.UpdateDate;// 上次付款时间 查询上一次
+                        }
+                        else
+                        {
+                            grp_CreditCard.PayPercentageOld =0;// 上次付款百分比 查询并计算最近一次
+                            grp_CreditCard.PayThenMoneyOld =0;// 上次付款金额 查询上一次
+                            grp_CreditCard.UpdateDate =new DateTime();// 上次付款时间 查询上一次
+                        }
+                        
+                        id = await _sqlSugar.Insertable(grp_CreditCard).ExecuteReturnIdentityAsync();
+                        if (id == 0)
+                        {
+                            RollbackTran();
+                            return result = new Result() { Code = -1, Msg = "添加失败!" };
+                            
+                        }
+                        CommitTran();
+                        return result = new Result() { Code = 0, Msg = "添加成功!" };
+                        //C表操作
                     }
-                    List<GroupNameView> grp_NameView = new List<GroupNameView>();
-                    foreach (var item in grp_Delegations)
+                    else
                     {
-                        GroupNameView groupNameView = new GroupNameView();
-                        groupNameView.Id = item.Id;
-                        groupNameView.GroupName = item.TeamName;
-                        grp_NameView.Add(groupNameView);
+                        RollbackTran();
+                        return result = new Result() { Code = -1, Msg = "添加失败!" };
+                        
                     }
-                    return result = new Result() { Code = 0, Msg = "查询成功!", Data = grp_NameView };
                 }
-                else
+                else if (dto.Status==2) 
                 {
-                    return result = new Result() { Code = -1, Msg = "暂无可操作团组" };
+                    id = dto.AirTicketResOpData.Id;
+
+                    bool res = await UpdateAsync(a => a.Id == dto.AirTicketResOpData.Id, a => new Grp_AirTicketReservations
+                    {
+                        CType = dto.AirTicketResOpData.CType,
+                        PrePrice = dto.AirTicketResOpData.PrePrice,
+                        PreCurrency = dto.AirTicketResOpData.PreCurrency,
+                        Price = dto.AirTicketResOpData.Price,
+                        Currency = dto.AirTicketResOpData.Currency,
+                        ClientNum = dto.AirTicketResOpData.ClientNum,
+                        ClientName = dto.AirTicketResOpData.ClientName,
+                        IsCheckIn = dto.AirTicketResOpData.IsCheckIn,
+                        IsSetSeat = dto.AirTicketResOpData.IsSetSeat,
+                        IsPackage = dto.AirTicketResOpData.IsPackage,
+                        IsBagHandle = dto.AirTicketResOpData.IsBagHandle,
+                        IsTrain = dto.AirTicketResOpData.IsTrain,
+                        FlightsCode = dto.AirTicketResOpData.FlightsCode,
+                        FlightsCity = dto.AirTicketResOpData.FlightsCity,
+                        FlightsDescription = dto.AirTicketResOpData.FlightsDescription,
+                        PriceDescription = dto.AirTicketResOpData.PriceDescription,
+                        Remark = dto.AirTicketResOpData.Remark,
+                    });
+                    if (!res)
+                    {
+                        result = new Result() { Code = -1, Msg = "修改失败!" };
+                    }
+                    else { result = new Result() { Code = 0, Msg = "修改成功!" }; }
+                    
+                    if (result.Code==0)
+                    {
+                        //C表操作
+                        Grp_CreditCardPayment grp_CreditCard = _mapper.Map<Grp_CreditCardPayment>(dto.CardPaymentOpData);
+
+                        //换算
+                        Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0 && a.CTable == 85);
+                        if (_TeamRate != null)
+                        {
+                            if (grp_CreditCard.PaymentCurrency == 49)
+                            {
+                                grp_CreditCard.DayRate = _TeamRate.RateU;
+                                grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateU);
+                                //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateU); 
+                            }
+                            else if (grp_CreditCard.PaymentCurrency == 51)
+                            {
+                                grp_CreditCard.DayRate = _TeamRate.RateE;
+                                grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney * Convert.ToDecimal(_TeamRate.RateE);
+                                //ccp.PayMoney = ccp.PayMoney * float.Parse(tr.RateE); 
+                            }
+                            else
+                            {
+                                grp_CreditCard.DayRate = "1";
+                                grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
+                            }
+                        }
+                        else
+                        {
+                            grp_CreditCard.DayRate = "1";
+                            grp_CreditCard.RMBPrice = grp_CreditCard.PayMoney;
+                        }
+                        //grp_CreditCard.PayMoney = grp_CreditCard.PayMoney;
+                        //判断是否超出成本
+                        Grp_GroupCostParameter _GroupCostParameter = _sqlSugar.Queryable<Grp_GroupCostParameter>().First(a => a.DiId == grp_AirTicket.DIId && a.IsDel == 0);
+                        if (grp_AirTicket.CType == 460)//经济舱
+                        {
+                            if ((Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
+                            {
+                                grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 3;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 0;
+                                grp_CreditCard.AuditGMDate = DateTime.Now;
+                                grp_CreditCard.IsPay = 1;
+                            }
+                            else
+                            {
+                                var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.JJCCB);
+                                var b = a / Convert.ToDecimal(_GroupCostParameter.JJCCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
+                                grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 21;
+                                grp_CreditCard.AuditGMDate = new DateTime();
+                                grp_CreditCard.IsPay = 1;
+                            }
+
+                        }
+                        else if (grp_AirTicket.CType == 458)
+                        {
+                            if ((Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum)) > grp_CreditCard.RMBPrice)
+                            {
+                                grp_CreditCard.ExceedBudget = 0;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 3;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 0;
+                                grp_CreditCard.AuditGMDate = DateTime.Now;
+                                grp_CreditCard.IsPay = 1;
+                            }
+                            else
+                            {
+                                var a = grp_CreditCard.RMBPrice - Convert.ToDecimal(_GroupCostParameter.GWCB);
+                                var b = a / Convert.ToDecimal(_GroupCostParameter.GWCB) * Convert.ToDecimal(grp_AirTicket.ClientNum);
+                                grp_CreditCard.ExceedBudget = b;// 超出预算比例 换算
+                                grp_CreditCard.IsAuditGM = 0;//3 为自动审核
+                                grp_CreditCard.AuditGMOperate = 21;
+                                grp_CreditCard.AuditGMDate = new DateTime();
+                                grp_CreditCard.IsPay = 1;
+                            }
+                        }
+
+
+                        grp_CreditCard.CId = id;
+                        grp_CreditCard.CTable = 85;
+                        grp_CreditCard.PayPercentage = 100;
+                        //查询上一次付款信息
+                        Grp_CreditCardPayment _CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().OrderByDescending(x => x.CreateUserId).First(a => a.DIId == grp_AirTicket.DIId && a.IsDel == 0 && a.IsPay == 1);
+                        if (_CreditCardPayment != null)
+                        {
+                            grp_CreditCard.PayPercentageOld = _CreditCardPayment.PayPercentageOld;// 上次付款百分比 查询并计算最近一次
+                            grp_CreditCard.PayThenMoneyOld = _CreditCardPayment.PayMoney;// 上次付款金额 查询上一次
+                            grp_CreditCard.UpdateDate = _CreditCardPayment.UpdateDate;// 上次付款时间 查询上一次
+                        }
+                        else
+                        {
+                            grp_CreditCard.PayPercentageOld = 0;// 上次付款百分比 查询并计算最近一次
+                            grp_CreditCard.PayThenMoneyOld = 0;// 上次付款金额 查询上一次
+                            grp_CreditCard.UpdateDate = new DateTime();// 上次付款时间 查询上一次
+                        }
+                        int CTable=await _sqlSugar.Updateable<Grp_CreditCardPayment>().Where(a => a.Id == dto.CardPaymentOpData.Id).SetColumns(a => new Grp_CreditCardPayment
+                        {
+                            PayDId = grp_CreditCard.PayDId,
+                            ConsumptionPatterns = grp_CreditCard.ConsumptionPatterns,
+                            ConsumptionDate = grp_CreditCard.ConsumptionDate,
+                            CTDId = grp_CreditCard.CTDId,
+                            BankNo = grp_CreditCard.BankNo,
+                            CardholderName = grp_CreditCard.CardholderName,
+                            PayMoney = grp_CreditCard.PayMoney,
+                            PaymentCurrency = grp_CreditCard.PaymentCurrency,
+                            DayRate = grp_CreditCard.DayRate,
+                            CompanyBankNo = grp_CreditCard.CompanyBankNo,
+                            OtherBankName = grp_CreditCard.OtherBankName,
+                            OtherSideNo = grp_CreditCard.OtherSideNo,
+                            OtherSideName = grp_CreditCard.OtherSideName,
+                            IsAuditGM = grp_CreditCard.IsAuditGM,
+                            AuditGMOperate = grp_CreditCard.AuditGMOperate,
+                            AuditGMDate = grp_CreditCard.AuditGMDate,
+                            IsPay = grp_CreditCard.IsPay,
+                            PayPercentage = grp_CreditCard.PayPercentage,
+                            PayThenMoney = grp_CreditCard.PayThenMoney,
+                            PayPercentageOld = grp_CreditCard.PayPercentageOld,
+                            PayThenMoneyOld = grp_CreditCard.PayThenMoneyOld,
+                            UpdateDate = grp_CreditCard.UpdateDate,
+                            Payee = grp_CreditCard.Payee,
+                            RMBPrice = grp_CreditCard.RMBPrice,
+                            OrbitalPrivateTransfer = grp_CreditCard.OrbitalPrivateTransfer,
+                            ExceedBudget = grp_CreditCard.ExceedBudget
+                        }).ExecuteCommandAsync();
+                        if (CTable == 0)
+                        {
+                            RollbackTran();
+                            return result = new Result() { Code = -1, Msg = "修改失败!" };
+
+                        }
+                        else
+                        {
+                            result = new Result() { Code = 0, Msg = "修改成功!" };
+                        }
+                    }
+                    else
+                    {
+                        result = new Result() { Code = -1, Msg = "修改失败!" };
+                        RollbackTran();
+                    }
                 }
+                CommitTran();
             }
             catch (Exception ex)
             {
+                RollbackTran();
                 return result = new Result() { Code = -2, Msg = "程序错误" };
                 throw;
             }
+            return result;
         }
     }
 }

+ 163 - 0
OASystem/_Doc/OA2023数据字典.docx

@@ -3114,6 +3114,169 @@ Null
 
 启用标识
 0否1是
+16) 团组汇率表:Grp_TeamRate
+                                   字段名
+                                 类型长度
+                                 字段属性
+                                 字段约束
+                                 字段描述
+                                    备注
+DiId
+int
+Null
+
+团组Id
+Grp_DelegationInfo.id
+CTable
+int
+Null
+
+团组指向分类
+Setdata.Id CTId=16
+OtherRate
+varchar(50)
+Null
+
+其他汇率名称
+
+OtherPrice
+varchar(50)
+Null
+
+其他汇率金额
+
+RateU
+varchar(50)
+Null
+
+美元汇率
+
+RateE
+varchar(50)
+Null
+
+欧元汇率
+
+RateJ
+varchar(50)
+Null
+
+日元汇率
+
+RateH
+varchar(50)
+Null
+
+港币汇率
+
+RateN
+varchar(50)
+Null
+
+新西兰元汇率
+
+RateS
+varchar(50)
+Null
+
+新加坡币汇率
+
+RateA,
+varchar(50)
+Null
+
+澳大利亚元汇率
+
+RateC
+varchar(50)
+Null
+
+加拿大元汇率
+
+RateT
+varchar(50)
+Null
+
+ 泰铢汇率
+
+RateBL
+varchar(50)
+Null
+
+波兰汇率
+
+RateHB
+varchar(50)
+Null
+
+韩币
+
+RateFJD
+varchar(50)
+Null
+
+ 斐济币汇率
+
+RateTL
+varchar(50)
+Null
+
+土耳其币汇率
+
+RateRP
+varchar(50)
+Null
+
+卢比汇率
+
+RatePeso
+varchar(50)
+Null
+
+菲律宾汇率
+
+RateMYR
+varchar(50)
+Null
+
+马来西亚汇率
+
+RateCZK
+varchar(50)
+Null
+
+捷克币汇率
+
+RateMXN
+varchar(50)
+Null
+
+墨西哥币汇率
+
+RateMOP
+varchar(50)
+Null
+
+澳门元
+
+RateARS
+varchar(50)
+Null
+
+阿根廷比索
+
+RateHUF
+varchar(50)
+Null
+
+匈牙利货币
+
+RateRUB
+varchar(50)
+Null
+
+俄罗斯卢布
+
 
 1. 资源板块
 1) 酒店数据表:Res_HotelData(挪用)