wangh пре 1 година
родитељ
комит
1e9b6aa575

+ 2 - 1
DAL/CreditCardPaymentService.cs

@@ -276,10 +276,11 @@ namespace DAL
         /// <param name="sdt">对象</param>
         public bool EditCreditCardPaymentByMoneyAndCurrencyAndDayRate(CreditCardPayment ccp)
         {
-            string sql = "update CreditCardPayment set PayMoney=@PayMoney,PaymentCurrency = @PaymentCurrency,DayRate = @DayRate,Operator = @Operator,OperatorDate = @OperatorDate ,IsAuditGM = 0,AuditGMOperate=0,AuditGMDate='' where DIId = @DIId and CId = @CId";
+            string sql = "update CreditCardPayment set PayMoney=@PayMoney,RMBPrice=@RMBPrice,PaymentCurrency = @PaymentCurrency,DayRate = @DayRate,Operator = @Operator,OperatorDate = @OperatorDate ,IsAuditGM = 0,AuditGMOperate=0,AuditGMDate='' where DIId = @DIId and CId = @CId";
 
             SqlParameter[] parameter = new SqlParameter[]{
                 new SqlParameter("@PayMoney",ccp.PayMoney),
+                new SqlParameter("@RMBPrice",ccp.RMBPrice),
                 new SqlParameter("@PaymentCurrency",ccp.PaymentCurrency),
                 new SqlParameter("@DayRate",ccp.DayRate),
                 new SqlParameter("@Operator",ccp.Operators),

+ 1 - 1
DAL/HotelReservationsService.cs

@@ -108,7 +108,7 @@ namespace DAL
         public List<HotelReservations> GetByDIId(int DIId)
         {
             //调用获取单个对象的方法
-            return excuteSql("select * from HotelReservations where DIId = @DIId and IsDel = 0 order by CheckInDate asc", new SqlParameter("@DIId", DIId));
+            return excuteSql("select * from HotelReservations where DIId = @DIId and IsDel = 0 and Operator!=0  order by CheckInDate asc", new SqlParameter("@DIId", DIId));
         }
         /// <summary>
         /// 根据编号查询对象信息

+ 10 - 4
DAL/InvitationOfficialActivitiesService.cs

@@ -83,7 +83,7 @@ namespace DAL
         public bool AddInvitationOfficialActivities(InvitationOfficialActivities ioa, out int id)
         {
             string sql = "insert into InvitationOfficialActivities values(@DIId,@InviterArea,@Inviter,@InviteTime,@Attachment,@InviteCosts,@Currency," +
-                        "@SendCost,@IsGoOfficialBusiness,@Remark,@Operator,@OperatorDate,@IsDel,@EventsCost,@TranslateCost);SELECT @@IDENTITY";
+                        "@SendCost,@IsGoOfficialBusiness,@Remark,@Operator,@OperatorDate,@IsDel,@EventsCost,@TranslateCost,@SendCurrency,@EventsCurrency,@TranslateCurrency);SELECT @@IDENTITY";
 
             SqlParameter[] parameter = new SqlParameter[]{
                 new SqlParameter("@DIId",ioa.DIId),
@@ -100,7 +100,10 @@ namespace DAL
                 new SqlParameter("@OperatorDate",ioa.OperatorsDate),
                 new SqlParameter("@IsDel",ioa.IsDel),
                 new SqlParameter("@EventsCost",ioa.EventsCost),
-                new SqlParameter("@TranslateCost",ioa.TranslateCost)
+                new SqlParameter("@TranslateCost",ioa.TranslateCost),
+                new SqlParameter("@SendCurrency",ioa.SendCurrency),
+                new SqlParameter("@EventsCurrency",ioa.EventsCurrency),
+                new SqlParameter("@TranslateCurrency",ioa.TranslateCurrency),
             };
 
             int obj = Convert.ToInt32(SqlHelper.ExecuteScalar(sql, CommandType.Text, parameter));
@@ -124,7 +127,7 @@ namespace DAL
             string sql = "update InvitationOfficialActivities set DIId = @DIId,InviterArea = @InviterArea,Inviter = @Inviter,InviteTime = @InviteTime," +
                 "Attachment = @Attachment,InviteCosts = @InviteCosts,Currency = @Currency,SendCost = @SendCost," +
                 "IsGoOfficialBusiness = @IsGoOfficialBusiness,Remark = @Remark,Operator = @Operator,OperatorDate = @OperatorDate,EventsCost=@EventsCost," +
-                " TranslateCost=@TranslateCost where Id = @Id";
+                " TranslateCost=@TranslateCost,SendCurrency=@SendCurrency,EventsCurrency=@EventsCurrency,TranslateCurrency=@TranslateCurrency where Id = @Id";
 
             SqlParameter[] parameter = new SqlParameter[]{
                 new SqlParameter("@DIId",ioa.DIId),
@@ -141,7 +144,10 @@ namespace DAL
                 new SqlParameter("@OperatorDate",ioa.OperatorsDate),
                 new SqlParameter("@Id",ioa.Id),
                 new SqlParameter("@EventsCost",ioa.EventsCost),
-                new SqlParameter("@TranslateCost",ioa.TranslateCost)
+                new SqlParameter("@TranslateCost",ioa.TranslateCost),
+                new SqlParameter("@SendCurrency",ioa.SendCurrency),
+                new SqlParameter("@EventsCurrency",ioa.EventsCurrency),
+                new SqlParameter("@TranslateCurrency",ioa.TranslateCurrency),
             };
 
             if (SqlHelper.ExecuteNonQuery(sql, CommandType.Text, parameter) > 0)

+ 7 - 0
DAL/ServiceBase.cs

@@ -431,6 +431,9 @@ namespace DAL
                                 (t as InvitationOfficialActivities).IsDel = Convert.ToInt32(dr["IsDel"]);
                                 (t as InvitationOfficialActivities).EventsCost = string.IsNullOrWhiteSpace(dr["EventsCost"].ToString()) ? 0.00F : float.Parse(dr["EventsCost"].ToString());
                                 (t as InvitationOfficialActivities).TranslateCost = string.IsNullOrWhiteSpace(dr["TranslateCost"].ToString()) ? 0.00F : float.Parse(dr["TranslateCost"].ToString());
+                                (t as InvitationOfficialActivities).SendCurrency = string.IsNullOrWhiteSpace(dr["SendCurrency"].ToString()) ? 0 : Convert.ToInt32(dr["SendCurrency"]);
+                                (t as InvitationOfficialActivities).EventsCurrency = string.IsNullOrWhiteSpace(dr["EventsCurrency"].ToString()) ? 0 : Convert.ToInt32(dr["EventsCurrency"]);
+                                (t as InvitationOfficialActivities).TranslateCurrency = string.IsNullOrWhiteSpace(dr["TranslateCurrency"].ToString()) ? 0 : Convert.ToInt32(dr["TranslateCurrency"]);
                                 break;
                             case "CarTouristGuideGroundReservations":
                                 (t as CarTouristGuideGroundReservations).Id = Convert.ToInt32(dr["Id"]);
@@ -453,6 +456,7 @@ namespace DAL
                                 (t as CarTouristGuideGroundReservations).OperatorsDate = dr["OperatorDate"].ToString();
                                 (t as CarTouristGuideGroundReservations).IsDel = Convert.ToInt32(dr["IsDel"]);
                                 (t as CarTouristGuideGroundReservations).OrbitalPrivateTransfer = Convert.ToInt32(dr["OrbitalPrivateTransfer"]);
+                               
                                 break;
                             case "CarTouristGuideGroundReservationsContent":
                                 (t as CarTouristGuideGroundReservationsContent).Id = Convert.ToInt32(dr["Id"]);
@@ -654,6 +658,9 @@ namespace DAL
                                 (t as ViewInvitationOfficialActivitiesPay).SendCost = string.IsNullOrWhiteSpace(dr["SendCost"].ToString()) ? 0.00F : float.Parse(dr["SendCost"].ToString());
                                 (t as ViewInvitationOfficialActivitiesPay).EventsCost = string.IsNullOrWhiteSpace(dr["EventsCost"].ToString()) ? 0.00F : float.Parse(dr["EventsCost"].ToString());
                                 (t as ViewInvitationOfficialActivitiesPay).TranslateCost = string.IsNullOrWhiteSpace(dr["TranslateCost"].ToString()) ? 0.00F : float.Parse(dr["TranslateCost"].ToString());
+                                (t as ViewInvitationOfficialActivitiesPay).SendCurrency = dr["SendCurrency"].ToString();
+                                (t as ViewInvitationOfficialActivitiesPay).EventsCurrency = dr["EventsCurrency"].ToString();
+                                (t as ViewInvitationOfficialActivitiesPay).TranslateCurrency = dr["TranslateCurrency"].ToString();
                                 break;
                             case "ViewAirTicketReservationsPay":
                                 (t as ViewAirTicketReservationsPay).FlightsCode = dr["FlightsCode"].ToString();

+ 19 - 1
DAL/ViewInvitationOfficialActivitiesPayService.cs

@@ -69,7 +69,7 @@ namespace DAL
         /// </summary>
         /// <param name="id">对象编号</param>
         /// <returns>返回空或者对象信息</returns>
-        public List<ViewInvitationOfficialActivitiesPay> GetByDIId(int DIId)
+        public List<ViewInvitationOfficialActivitiesPay> GetByDIId1(int DIId)
         {
             
             //调用获取单个对象的方法
@@ -81,5 +81,23 @@ namespace DAL
                 "and ccp.Cid = ioa.Id join SetData sd on sd.Id =ioa.Currency join setdata sd1 on sd1.id=ccp.PayDid  where ioa.DIID = @DIId and ioa.IsDel = 0 " +
                 "and ccp.CTable = 81 and ccp.IsAuditGM <> 2 and ccp.isDel=0", new SqlParameter("@DIId", DIId));
         }
+
+        /// <summary>
+        /// 根据编号查询对象信息
+        /// </summary>
+        /// <param name="id">对象编号</param>
+        /// <returns>返回空或者对象信息</returns>
+        public List<ViewInvitationOfficialActivitiesPay> GetByDIId(int DIId)
+        {
+
+            //调用获取单个对象的方法
+            //return excuteSql("select ccp.RMBPrice,ioa.OperatorDate,ioa.InviterArea,ioa.Inviter,ioa.InviteTime,sd.[Name],ioa.InviteCosts,ioa.Currency,ccp.PayMoney,ccp.DayRate,ioa.remark from InvitationOfficialActivities ioa join CreditCardPayment ccp on ccp.Diid = ioa.Diid and ccp.Cid = ioa.Id join SetData sd on sd.Id =ioa.Currency  where ioa.DIID = @DIId and ioa.IsDel = 0 and ccp.CTable = 81 and ccp.IsPay = 1", new SqlParameter("@DIId", DIId));
+            //去除ispay=1条件
+            return excuteSql("select ioa.SendCost,ioa.EventsCost,ioa.TranslateCost,ccp.IsMatchCreditCard,ccp.Operator,ccp.AuditGMDate,sd1.name as PaydName,ccp.OrbitalPrivateTransfer," +
+                "ccp.PayDid, ccp.payee, ccp.ispay, ccp.RMBPrice, ioa.OperatorDate, ioa.InviterArea, ioa.Inviter, ioa.InviteTime, sd.[Name], sd3.[Name] as SendCurrency, sd4.[Name] as EventsCurrency," +
+                " sd5.[Name] as TranslateCurrency, ioa.InviteCosts,ccp.PaymentCurrency as Currency, ccp.PayMoney, ccp.DayRate, ioa.remark from InvitationOfficialActivities ioa join CreditCardPayment " +
+                "ccp on ccp.Diid = ioa.Diid and ccp.Cid = ioa.Id left join SetData sd on sd.Id = ioa.Currency join setdata sd1 on sd1.id = ccp.PayDid  left join setdata sd3 on sd3.id = ioa.SendCurrency left join " +
+                "setdata sd4 on sd4.id = ioa.EventsCurrency left join setdata sd5 on sd5.id = ioa.TranslateCurrency where ioa.DIID = @DIId and ioa.IsDel = 0 and ccp.CTable = 81 and ccp.IsAuditGM<> 2 and ccp.isDel = 0", new SqlParameter("@DIId", DIId));
+        }
     }
 }

+ 13 - 0
Models/InvitationOfficialActivities.cs

@@ -103,6 +103,11 @@ namespace Models
         /// </summary>
         public float SendCost { get; set; }
 
+        /// <summary>
+        /// 快递费用币种
+        /// </summary>
+        public int SendCurrency { get; set; }
+
 
         int isGoOfficaiaBussiness;
 
@@ -163,8 +168,16 @@ namespace Models
         /// </summary>
         public float EventsCost { get; set; }
         /// <summary>
+        /// 公务活动费币种
+        /// </summary>
+        public int EventsCurrency { get; set; }
+        /// <summary>
         /// 公务翻译费
         /// </summary>
         public float TranslateCost { get; set; }
+        /// <summary>
+        /// 公务翻译费币种
+        /// </summary>
+        public int TranslateCurrency { get; set; }
     }
 }

+ 22 - 22
Models/TeamRate.cs

@@ -110,9 +110,9 @@ namespace Models
 
         string rateH;
         /// <summary>
-        /// 港币汇率
+        /// 港币汇率 55
         /// </summary>
-        public string RateH
+        public string RateH 
         {
             get { return rateH; }
             set { rateH = value; }
@@ -120,7 +120,7 @@ namespace Models
 
         string rateN;
         /// <summary>
-        /// 新西兰元汇率
+        /// 新西兰元汇率 56
         /// </summary>
         public string RateN
         {
@@ -130,7 +130,7 @@ namespace Models
 
         string rateS;
         /// <summary>
-        /// 新加坡币汇率
+        /// 新加坡币汇率 65
         /// </summary>
         public string RateS
         {
@@ -140,7 +140,7 @@ namespace Models
 
         string rateA;
         /// <summary>
-        /// 澳大利亚元汇率
+        /// 澳大利亚元汇率  54
         /// </summary>
         public string RateA
         {
@@ -150,7 +150,7 @@ namespace Models
 
         string rateC;
         /// <summary>
-        /// 加拿大元汇率
+        /// 加拿大元汇率  53
         /// </summary>
         public string RateC
         {
@@ -159,8 +159,8 @@ namespace Models
         }
 
         string rateT;
-        /// <summary>
-        /// 泰铢汇率
+        /// <summary> 
+        /// 泰铢汇率  63
         /// </summary>
         public string RateT
         {
@@ -170,7 +170,7 @@ namespace Models
 
         string rateBL;
         /// <summary>
-        /// 波兰汇率
+        /// 波兰汇率 68
         /// </summary>
         public string RateBL
         {
@@ -180,7 +180,7 @@ namespace Models
 
         string rateHB;
         /// <summary>
-        /// 韩币
+        /// 韩币  69
         /// </summary>
         public string RateHB
         {
@@ -190,7 +190,7 @@ namespace Models
 
         string rateFJD;
         /// <summary>
-        /// 斐济币汇率
+        /// 斐济币汇率  336
         /// </summary>
         public string RateFJD
         {
@@ -200,7 +200,7 @@ namespace Models
 
         string rateTL;
         /// <summary>
-        /// 土耳其币汇率
+        /// 土耳其币汇率 337
         /// </summary>
         public string RateTL
         {
@@ -210,7 +210,7 @@ namespace Models
 
         string rateRP;
         /// <summary>
-        /// 卢比汇率
+        /// 卢比汇率 338
         /// </summary>
 
         public string RateRP
@@ -221,7 +221,7 @@ namespace Models
 
         string ratePeso;
         /// <summary>
-        /// 菲律宾汇率
+        /// 菲律宾汇率  341
         /// </summary>
         public string RatePeso
         {
@@ -230,7 +230,7 @@ namespace Models
         }
         string rateMYR;
         /// <summary>
-        /// 马来西亚汇率
+        /// 马来西亚汇率 342
         /// </summary>
         public string RateMYR
         {
@@ -240,7 +240,7 @@ namespace Models
 
         string rateCZK;
         /// <summary>
-        /// 捷克币汇率
+        /// 捷克币汇率 344
         /// </summary>
 
         public string RateCZK
@@ -251,7 +251,7 @@ namespace Models
 
         string rateMXN;
         /// <summary>
-        /// 墨西哥币汇率
+        /// 墨西哥币汇率  345
         /// </summary>
         public string RateMXN
         {
@@ -261,8 +261,8 @@ namespace Models
 
         string rateMOP;
         /// <summary>
-        /// 澳门元
-        /// </summary>
+        /// 澳门元 354
+        /// </summary> 
         public string RateMOP
         {
             get { return rateMOP; }
@@ -271,7 +271,7 @@ namespace Models
 
         string rateARS;
         /// <summary>
-        /// 阿根廷比索
+        /// 阿根廷比索 359
         /// </summary>
         public string RateARS
         {
@@ -281,7 +281,7 @@ namespace Models
 
         string rateHUF;
         /// <summary>
-        /// 匈牙利货币
+        /// 匈牙利货币 361
         /// </summary>
         public string RateHUF
         {
@@ -292,7 +292,7 @@ namespace Models
 
         string rateRUB;
         /// <summary>
-        /// 俄罗斯卢布
+        /// 俄罗斯卢布 362
         /// </summary>
         public string RateRUB
         {

+ 4 - 0
Models/ViewInvitationOfficialActivitiesPay.cs

@@ -212,5 +212,9 @@ namespace Models
         /// 翻译费用
         /// </summary>
         public float TranslateCost { get; set; }
+
+        public string SendCurrency { get; set; }
+        public string EventsCurrency { get; set; }
+        public string TranslateCurrency { get; set; }
     }
 }

+ 15 - 2
OA2021/finance/PriceAuditContent.aspx.cs

@@ -771,24 +771,37 @@ namespace OA2014.finance
                     if (ioa != null)
                     {
                         SetData sd = sds.GetSetDataByID(ioa.Currency);
-                        string currency = "";
+                        string currency = "CNY";
                         if (sd != null)
                             currency = sd.Name;
                         name = ioa.Inviter;
                         lblMsgContent.Text = "邀请费用:" + ioa.InviteCosts + currency;
+
+                        currency = "CNY";
+                        sd = sds.GetSetDataByID(ioa.SendCurrency);
+                        if (sd != null)
+                            currency = sd.Name;
                         if (ioa.SendCost != 0.00F)
                         {
                             lblMsgContent.Text += "<br/>快递费用:" + ioa.SendCost + currency;
                         }
+                        currency = "CNY";
+                        sd = sds.GetSetDataByID(ioa.EventsCurrency);
+                        if (sd != null)
+                            currency = sd.Name;
                         if (ioa.EventsCost != 0.00F)
                         {
                             lblMsgContent.Text += "<br/>活动费用:" + ioa.EventsCost + currency;
                         }
+                        currency = "CNY";
+                        sd = sds.GetSetDataByID(ioa.TranslateCurrency);
+                        if (sd != null)
+                            currency = sd.Name;
                         if (ioa.TranslateCost != 0.00F)
                         {
                             lblMsgContent.Text += "<br/>翻译费用:" + ioa.TranslateCost + currency;
                         }
-                        lblMsgContent.Text+= "<br/>备注:" + ioa.Remark;
+                        lblMsgContent.Text+= "<br/>备注:由于币种不同换算CNY后为" + ccp.PayMoney.ToString("#0.00");
                     }
                     break;
                 case 82:

+ 31 - 2
OA2021/finance/Royalty.aspx

@@ -4,13 +4,42 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title></title>
+
+     <script language="javascript" type="text/javascript" src="../My97DatePicker/WdatePicker.js"> </script>
 </head>
 <body>
     <form id="form1" runat="server">
         <div>
-            提成结算
+            <div class="ps">
+                <table class="ps" cellpadding="0" cellspacing="0" border="0">
+                    <tr>
+                        <td>公司:<asp:DropDownList ID="ddlCompany" runat="server" Width="160" Enabled="false"></asp:DropDownList>
+                        </td>
+                        <td>部门:<asp:DropDownList ID="ddlDepartment" runat="server" Width="160" AutoPostBack="true" OnTextChanged="ddlDepartment_TextChanged">
+                        </asp:DropDownList>
+                        </td>
+                        <td>人员:<asp:DropDownList ID="ddlPersonnel" runat="server" Width="160"></asp:DropDownList>
+                        </td>
+                        <td>团组时间:<asp:TextBox ID="txtStartTime" runat="server" Width="75" onClick="WdatePicker()"
+                            Style="border: 1px solid #b3b3b3;" />
+                            - 
+                            <asp:TextBox ID="txtEndTime" runat="server" Width="75" onClick="WdatePicker()"
+                                Style="border: 1px solid #b3b3b3;" />
+                        </td>
+                        <td>发放统计:<asp:DropDownList runat="server" ID="ddlYearMonth2" OnTextChanged="ddlYearMonth2_TextChanged" AutoPostBack="true" />
+                        </td>
+                        <td>
+                            <asp:Button ID="btnSelect" runat="server" Text="查询" Font-Size="8" CssClass="btn" Style="line-height: 18px; width: 40px; height: 20px;"
+                                OnClick="btnSelect_Click" />
+                        </td>
+                        <td style="width: 12%; text-align: right">发放时间:
+                             <asp:DropDownList runat="server" ID="ddlYearMonth" />
+                        </td>
+                    </tr>
+                </table>
+            </div>
         </div>
     </form>
 </body>

+ 785 - 2
OA2021/finance/Royalty.aspx.cs

@@ -1,17 +1,800 @@
-using System;
+using DAL;
+using Models;
+using OA2014.data;
+using OA2014.publicCode;
+using OA2014.WechatNeed;
+using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using System.Text.RegularExpressions;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
+using static OA2014.finance.CommissionWeb;
 
 namespace OA2021.finance
 {
-    public partial class Royalty : System.Web.UI.Page
+    public partial class Royalty : SessionCode
     {
+        //团组数据服务类
+        DelegationInfoService dis = new DelegationInfoService();
+        //提成数据服务类
+        CommissionService cms = new CommissionService();
+        //OA系统数据服务类
+        SetDataService sds = new SetDataService();
+        //员工数据库服务类
+        UsersService _us = new UsersService();
+        //公司成都泛美商务有限公司114、四川泛美交流有限公司115、成都纽茵教育科技有限公司327 
+        string[] companyArray = { "114", "115", "327" };
+        //国交部 Did=4;销售部 Did=6;会展部 Did=335
+        int[] depArray = { 4, 6, 335 };
+
+        //OP:151汪越090;198潘娟932
+        string[] OP = { "151", "198" };
+        //机票:145蒋平092;169刘亚敏909
+        string[] AirTicket = { "145", "169" };
+        //酒店:暂无
+        string[] Hotel = { "226" };
+        //商务邀请:暂无(149 王鸽097 之前是商邀)
+        string[] Invitation = { "149", "241" };
+        //签证操作:192李敏929
+        string[] Visa = { "192" };
+        //主管职位:51徐茜095;180董果918
+        string[] Manager = { "51", "180" };
+
+
         protected void Page_Load(object sender, EventArgs e)
         {
+            if (!IsPostBack)
+            {
+                bindDDL();
+            }
+        }
+        /// <summary>
+        /// 页面下拉框赋值
+        /// </summary>
+        void bindDDL()
+        {
+            //公司下拉框
+            ddlCompany.DataSource = sds.GetAll(22);
+            ddlCompany.DataTextField = "Name";
+            ddlCompany.DataValueField = "Id";
+            ddlCompany.DataBind();
+
+            if (Request.QueryString["company"] != null && !string.IsNullOrEmpty(Request.QueryString["company"].ToString()))
+                ddlCompany.Items.FindByValue(Request.QueryString["company"].ToString()).Selected = true;
+
+            //部门下拉框
+            //若选择这三个公司成都泛美商务有限公司114、四川泛美交流有限公司115、成都纽茵教育科技有限公司327 
+            //则显示的下辖部门为国交部4、市场销售部6、会议会展策划部335
+            if (companyArray.Contains(ddlCompany.SelectedValue))
+                ddlDepartment.DataSource = sds.GetAll(1).FindAll(dep => depArray.Contains(dep.Id));
+            else//若有其它公司,再根据条件显示部门
+                ddlDepartment.DataSource = sds.GetAll(1);
+
+            ddlDepartment.DataTextField = "Name";
+            ddlDepartment.DataValueField = "Id";
+            ddlDepartment.DataBind();
+
+            if (Request.QueryString["department"] != null && !string.IsNullOrEmpty(Request.QueryString["department"].ToString()))
+                ddlDepartment.Items.FindByValue(Request.QueryString["department"].ToString()).Selected = true;
+
+            //根据部门ID显示员工数据
+            ddlPersonnel.DataSource = _us.GetAll(Convert.ToInt32(ddlDepartment.SelectedValue));
+            ddlPersonnel.DataTextField = "CnName";
+            ddlPersonnel.DataValueField = "Id";
+            ddlPersonnel.DataBind();
+
+            if (Request.QueryString["personnel"] != null && !string.IsNullOrEmpty(Request.QueryString["personnel"].ToString()))
+                ddlPersonnel.Items.FindByValue(Request.QueryString["personnel"].ToString()).Selected = true;
+
+            #region 月份下拉框 20210924 贾文滔
+
+            //假定起始年为2019年(可修改),结束年为现在年份加1
+            int startYear = 2019, endYear = DateTime.Now.Year + 1;
+            List<SeasonAndYearMonth> seasonList = new List<SeasonAndYearMonth>();
+            SeasonAndYearMonth seaon = null;
+
+            while (startYear < endYear)
+            {
+                seaon = new SeasonAndYearMonth();
+                seaon.season = startYear + "-1季度";
+                seaon.YearMonth = startYear + "-04";
+                seasonList.Add(seaon);
+                seaon = new SeasonAndYearMonth();
+                seaon.season = startYear + "-2季度";
+                seaon.YearMonth = startYear + "-07";
+                seasonList.Add(seaon);
+                seaon = new SeasonAndYearMonth();
+                seaon.season = startYear + "-3季度";
+                seaon.YearMonth = startYear + "-10";
+                seasonList.Add(seaon);
+                seaon = new SeasonAndYearMonth();
+                seaon.season = startYear + "-4季度";
+                seaon.YearMonth = (startYear + 1) + "-01";
+                seasonList.Add(seaon);
+
+                startYear = startYear + 1;
+            }
+
+            seasonList = seasonList.OrderByDescending(s => s.YearMonth).ToList();
+
+            ddlYearMonth.DataSource = seasonList;
+            ddlYearMonth.DataTextField = "season";
+            ddlYearMonth.DataValueField = "YearMonth";
+            ddlYearMonth.DataBind();
+
+            if (Request.QueryString["yearmonth"] != null && !string.IsNullOrEmpty(Request.QueryString["yearmonth"].ToString()))
+                ddlYearMonth.Items.FindByValue(Request.QueryString["yearmonth"].ToString()).Selected = true;
+
+            seasonList.Insert(0, new SeasonAndYearMonth() { season = "全部月份", YearMonth = "全部月份" });
+
+            ddlYearMonth2.DataSource = seasonList;
+            ddlYearMonth2.DataTextField = "season";
+            ddlYearMonth2.DataValueField = "YearMonth";
+            ddlYearMonth2.DataBind();
+
+            if (Request.QueryString["yearmonth2"] != null && !string.IsNullOrEmpty(Request.QueryString["yearmonth2"].ToString()))
+                ddlYearMonth2.Items.FindByValue(Request.QueryString["yearmonth2"].ToString()).Selected = true;
+            #endregion
+        }
+        /// <summary>
+        /// 部门下拉框值改变事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        protected void ddlDepartment_TextChanged(object sender, EventArgs e)
+        {
+            Response.Redirect("Royalty.aspx?company=" + ddlCompany.SelectedValue + "&department=" + ddlDepartment.SelectedValue
+                              + "&startDate=" + null + "&endDate=" + null
+                              + "&yearmonth2=" + null + "&yearmonth=" + null);
+        }
+
+        /// <summary>
+        /// 发放统计下拉框值改变事件
+        /// 20210924 贾文滔
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        protected void ddlYearMonth2_TextChanged(object sender, EventArgs e)
+        {
+            //Response.Redirect("CommissionWeb.aspx?company=" + ddlCompany.SelectedValue + "&department=" + ddlDepartment.SelectedValue + "&personnel=" + ddlPersonnel.SelectedValue
+            //      + "&startDate=" + txtStartTime.Text + "&endDate=" + txtEndTime.Text
+            //      + "&yearmonth2=" + ddlYearMonth2.SelectedValue + "&yearmonth=" + null);
+        }
+
+        protected void btnSelect_Click(object sender, EventArgs e)
+        {
+            import();
+        }
+        void import()
+        {
+            #region 根据团组表,按提成标准分类生成提成表的数据 
+            //查询指定时间段内的团组,团组类型:非团组ID 248;公关传媒部ID 302;会务活动ID 691 
+            List<DelegationInfo> listDele = dis.GetByTime(txtStartTime.Text, txtEndTime.Text);
+
+            //查询指定时间段内的提成表数据
+            List<Commission> listCom = cms.GetAll(Convert.ToInt32(ddlPersonnel.SelectedValue), txtStartTime.Text, txtEndTime.Text);
+
+            //当前选中员工
+            string personId = ddlPersonnel.SelectedValue;
+            try
+            {
+                //遍历该时间段的团,没有数据就添加到提成表
+                foreach (DelegationInfo dele in listDele)
+                {
+
+                    if (listCom == null || listCom.Find(com => com.Personnel == Convert.ToInt32(personId) && com.Diid == dele.Id) == null)
+                    {
+                        Commission cTemp = new Commission();
+                        cTemp.Personnel = Convert.ToInt32(ddlPersonnel.SelectedValue);
+                        cTemp.Diid = dele.Id;
+                        cTemp.GroupDate = dele.VisitEndDate;
+                        cTemp.GroupLvl = dele.TeamLev;
+
+                        CommissionCount(dele, personId, cTemp);
+                        if (cTemp.Money != "0.00")
+                        {
+                            //根据团组完成时期,自动生成月份 20210924 贾文滔
+                            DateTime EndDate = Convert.ToDateTime(dele.VisitEndDate);
+                            int year = EndDate.Year;
+                            int month = EndDate.Month;
+
+                            if (month > 1 && month <= 3)
+                                cTemp.WageYearMonth = year + "-04";
+                            else if (month > 4 && month <= 6)
+                                cTemp.WageYearMonth = year + "-07";
+                            else if (month > 7 && month <= 9)
+                                cTemp.WageYearMonth = year + "-10";
+                            else
+                                cTemp.WageYearMonth = (year + 1) + "-01";
+                        }
+                        else
+
+                            cTemp.WageYearMonth = "";
+
+                        cTemp.IsMakeLoss = 0;
+                        cTemp.IsLoss = 0;
+                        cTemp.OPer = UserId;
+                        cTemp.OPDate = PublicCode.GetBeijingTime().ToString("yyyy-MM-dd HH:mm:ss");
+                        cTemp.IsDel = 0;
+
+                        cms.ADD(cTemp);
+                    }
+
+                }
+            }
+            catch (Exception ex)
+            {
+                Response.Write(ex.Message.ToString());
+            }
+            #endregion
+        }
+
+        /// <summary>
+        /// 计算提成
+        /// </summary>
+        /// <returns></returns>
+        void CommissionCount(DelegationInfo dele, string personId, Commission cTemp)
+        {
+            #region 团组利润计算
+
+            decimal sumFr = 0;    //团组类型应收费用
+            float sumPr = 0;    //团组类型已收费用
+            float reimburse = 0; //退款和其他费用
+            float TeamMoney = 0; //团组类型成本费用                  
+
+            //应收费用数据
+            ForeignReceivablesService frs = new ForeignReceivablesService();
+            List<ForeignReceivables> frList = frs.GetAllByDIId(dele.Id);
+            foreach (ForeignReceivables fr in frList)
+            {
+                sumFr += fr.Price;
+            }
+
+            //已收费用数据
+            ProceedsReceivedService prs = new ProceedsReceivedService();
+            List<ProceedsReceived> prList = prs.GetAllByDIId(dele.Id);
+            if (prList.Count != 0)
+            {
+                foreach (ProceedsReceived fr in prList)
+                {
+                    sumPr += (float)fr.Price;
+                }
+            }
+
+
+            //收款退还费用数据
+            ViewOhterPriceOPService vopp = new ViewOhterPriceOPService();
+            List<ViewOtherPriceOP> opplist = vopp.GetByDIId(dele.Id);
+            foreach (ViewOtherPriceOP opp in opplist)
+            {
+                //退款和其他费用累计
+                reimburse += opp.Price;
+            }
+
+            //实际的团组类型已收金额需除去退款 
+            sumPr = sumPr - reimburse;
+
+            //团组与非团组产生的成本费用数据
+            CreditCardPaymentService ccps = new CreditCardPaymentService();
+            List<CreditCardPayment> creditCardPayments = ccps.GetByDIIDNotIsPay(dele.Id);
+
+            if (creditCardPayments != null && creditCardPayments.Count > 0)
+            {
+                foreach (CreditCardPayment item in creditCardPayments)
+                {
+                    //对团组类型成本进行累计
+                    if (item.PayThenMoney != null && item.PayThenMoney != "" && item.PayThenMoney != "0")
+                        TeamMoney += float.Parse(item.PayThenMoney) * float.Parse(item.DayRate);
+                    else if (item.PayPercentage != null && item.PayPercentage != "" && item.PayPercentage != "0")
+                    {
+                        TeamMoney += item.PayMoney * float.Parse(item.PayPercentage) / 100 * float.Parse(item.DayRate);
+                    }
+                }
+                //实际的团组成本需除去退款 
+                TeamMoney = TeamMoney - reimburse;
+            }
+
+
+            //整理已收数据
+            int num = sumPr.ToString("#0.000").IndexOf('.');
+            string sumPrstr = sumPr.ToString("#0.000").Substring(0, num + 3);
+            //整理成本数据
+            num = TeamMoney.ToString("#0.000").IndexOf('.');
+            string TeamMoneystr = TeamMoney.ToString("#0.000").Substring(0, num + 3);
+
+            //团组净利润=已收金额-成本
+            string Profitstr = (float.Parse(sumPrstr) - float.Parse(TeamMoneystr)).ToString("#0.00");
+            cTemp.NetProfit = Profitstr;
+
+            //团组尾款
+            int numsumFr = sumFr.ToString("#0.000").IndexOf('.');
+            string sumFrstr = sumFr.ToString("#0.000").Substring(0, numsumFr + 3);
+            string BalanceStr = (float.Parse(sumFrstr) - float.Parse(sumPrstr)).ToString("#0.00");
+            cTemp.Balance = BalanceStr;
+            #endregion
+
+            #region 提成按规则核算,生成基础的提成
+
+            //提成
+            float comMoney = 0;
+            //投诉
+            string compalin = "";
+
+            //机票
+            List<AirTicketReservations> listAir = new AirTicketReservationsService().GetAirTicketReservationsByDIID(dele.Id);
+            //酒店
+            List<HotelReservations> listHotel = new HotelReservationsService().GetByDIId(dele.Id);
+            //地接
+            List<CarTouristGuideGroundReservations> listOP = new CarTouristGuideGroundReservationsService().GetCarTouristGuideGroundReservationsByDIID(dele.Id);
+            //公务
+            List<InvitationOfficialActivities> listOA = new InvitationOfficialActivitiesService().GetIByDiid(dele.Id);
+            //签证
+            List<Visa> listVisa = new VisaService().GetVisaByDIID(dele.Id);
+
+            //OP
+            if (((IList)OP).Contains(personId))
+            {
+                //投诉标识
+                if (dele.OPComplain == 0)
+                {
+                    //确认操作人数
+                    string op = "";
+                    for (int i = 0; i < listOP.Count; i++)
+                    {
+                        if (op.Contains(listOP[i].Operators.ToString()))
+                            op = op + ";" + listOP[i].Operators.ToString();
+                    }
+                    op.TrimStart(';');
+                    List<Users> opUsers = new List<Users>();
+                    string name = "";
+                    foreach (string uid in op.Split(';'))
+                    {
+                        name = name + "," + new UsersService().GetUsersByID(Convert.ToInt32(uid)).CnName;
+                        opUsers.Add(new UsersService().GetUsersByID(Convert.ToInt32(uid)));
+                    }
+                    name.TrimStart(',');
+
+                    //首先判定等级:VVIP及VIP
+                    if (dele.TeamLev == "VVIP")//VVIP团组¥1000
+                    {
+                        comMoney = 1000;
+                        cTemp.Detail = "本团为VVIP团组,提成共1000,操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + comMoney / opUsers.Count;
+                    }
+                    else if (dele.TeamLev == "VIP")//VIP团组¥500
+                    {
+                        comMoney = 500;
+                        cTemp.Detail = "本团为VIP团组,提成共500,操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + comMoney / opUsers.Count;
+                    }
+                    else if (dele.TeamLev == null || dele.TeamLev == "暂未定级")
+                    {
+                        //其次判定普通标准团组:人数大于6和天数大于6,机票、酒店和地接有数据
+                        if (dele.VisitPNumber >= 6 && dele.VisitDays >= 6 && listAir.Count() > 0 && listHotel.Count() > 0 && listOP.Count() > 0)//普通标准团组¥300
+                        {
+                            comMoney = 300;
+                            cTemp.Detail = "本团为普通标准团,提成共300,操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + comMoney / opUsers.Count;
+                        }
+                        else //非普通标准团组或非全程接待统一为¥100
+                        {
+                            comMoney = 100;
+                            cTemp.Detail = "本团为非普通标准团,提成共100,操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + comMoney / opUsers.Count;
+                        }
+                    }
+
+                }
+                else
+                {
+                    comMoney = 0;
+                    cTemp.Detail = "本团OP业务收到投诉,无提成";
+                    compalin = "OP业务";
+                }
+            }
+            //机票
+            else if (((IList)AirTicket).Contains(personId))
+            {
+                //投诉标识
+                if (dele.AirComplain == 0)
+                {
+                    //确认操作人数
+                    string op = "";
+                    List<Users> opUsers = new List<Users>();
+                    string name = "";
+
+                    for (int i = 0; i < listAir.Count; i++)
+                    {
+                        if (op.Contains(listAir[i].Operators.ToString()) == false)
+                            op = op + ";" + listAir[i].Operators.ToString();
+                    }
+                    if (op != "" && op[0].ToString() != "")
+                    {
+                        op.TrimStart(';');
+
+
+                        foreach (string uid in op.Split(';'))
+                        {
+                            if (uid != "")
+                            {
+                                name = name + "," + new UsersService().GetUsersByID(Convert.ToInt32(uid)).CnName;
+                                opUsers.Add(new UsersService().GetUsersByID(Convert.ToInt32(uid)));
+                            }
+                        }
+                        name.TrimStart(',');
+                    }
+
+                    //提成方式:¥10/人×人数×段数(每个组团涉及的换机次数)
+                    //段数获取:2020年之前的团从机票费用录入获取、2020年及之后的团从机票黑屏代码里提取
+                    AirTicketBlackCode AirTTemp = new AirTicketBlackCodeService().getByDiid(dele.Id);
+
+
+
+
+                    if (listAir != null && listAir.Count > 0)
+                    {
+                        //string[] CodeList = Regex.Split(AirTTemp.BlackCode, "\\d+\\.", RegexOptions.IgnoreCase);
+                        //去除多余空格,方法一Linq扩展方法
+                        //CodeList = CodeList.Where(str => str != "").ToArray();
+                        //CodeList = CodeList.Where(str => str != " ").ToArray();
+
+                        //使用团组id取出所有的机票详情
+                        AirTicketReservationsService service = new AirTicketReservationsService();
+                        var ResultArr = service.GetAirTicketReservationsByDIID(dele.Id);
+                        float SunPrice = 0; //总金额
+                        int AirSegment = 0; //航段数
+
+                        foreach (var item in ResultArr.Where(x => x.Price >= 0).ToList())
+                        {
+                            string flishCode = item.FlightsCode;
+                            var AirCodeArr = flishCode.Split('/').Where(x => !string.IsNullOrEmpty(x)).ToArray();
+                            AirSegment += AirCodeArr.Length * item.ClientNum;
+                        }
+
+                        SunPrice = AirSegment * 10;
+                        comMoney = SunPrice;
+                        cTemp.Detail = "本团人数" + Convert.ToInt32(dele.VisitPNumber) + ",航段数" + AirSegment.ToString() + ",每人10元,提成共" + SunPrice.ToString()
+                                     + ",操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + (SunPrice / opUsers.Count).ToString("#0.00");
+                    }
+                    else if (listAir.Count > 0)
+                    {
+                        List<string> listStr = new List<string>();
+                        foreach (AirTicketReservations air in listAir)
+                        {
+                            string[] CodeList = Regex.Split(air.FlightsDescription, "\\d+\\.", RegexOptions.IgnoreCase);
+                            //去除多余空格,方法一Linq扩展方法
+                            CodeList = CodeList.Where(str => str != "").ToArray();
+                            CodeList = CodeList.Where(str => str != " ").ToArray();
+
+                            foreach (string code in CodeList)
+                                listStr.Add(code);
+                        }
+                        comMoney = 10 * Convert.ToInt32(dele.VisitPNumber) * listStr.Count();
+                        cTemp.Detail = "本团人数" + Convert.ToInt32(dele.VisitPNumber) + ",航段数" + listStr.Count() + ",每人10元,提成共" + comMoney
+                                    + ",操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + comMoney / opUsers.Count;
+                    }
+                }
+                else
+                {
+                    comMoney = 0;
+                    cTemp.Detail = "本团机票业务收到投诉,无提成";
+                    compalin = compalin + "、机票业务";
+                }
+            }
+            //酒店
+            else if (((IList)Hotel).Contains(personId))
+            {
+                //投诉标识
+
+                //确认操作人数
+                string op = "";
+                if (listHotel.Count!=0 && listHotel!=null)
+                {
+                    for (int i = 0; i < listHotel.Count; i++)
+                    {
+                        if (!op.Contains(listHotel[i].Operators.ToString()))
+                            op += listHotel[i].Operators.ToString() + ";";
+                    }
+                }
+               
+                op.TrimEnd(';');
+                List<Users> opUsers = new List<Users>();
+                string name = "";
+                foreach (string uid in op.Split(';'))
+                {
+                    if (!string.IsNullOrWhiteSpace(uid) && uid!="0")
+                    {
+                        name += new UsersService().GetUsersByID(Convert.ToInt32(uid)).CnName + ",";
+                        opUsers.Add(new UsersService().GetUsersByID(Convert.ToInt32(uid)));
+                    }
+
+                }
+                name.TrimEnd(',');
+
+                //标准团组:¥10/间/晚 * 实际订房间数 * 实际订房晚数;
+                int days = 0, rooms = 0;
+                if (listHotel != null)
+                {
+                    foreach (HotelReservations hotel in listHotel)
+                    {
+                        int s = 0;
+                        int d = 0;
+                        TimeSpan Tdays = Convert.ToDateTime(hotel.CheckOutDate) - Convert.ToDateTime(hotel.CheckInDate);
+                        if (hotel.SingleRoomPrice<0)//表示退房
+                        {
+                            rooms = rooms-hotel.SingleRoomCount;
+                            s =-1;
+                        }
+                        else if (hotel.SingleRoomPrice!=0)
+                        {
+                            d = 1;
+                            rooms = rooms + hotel.SingleRoomCount;
+                        }
+                       
+                        if (hotel.DoubleRoomPrice < 0)
+                        {
+                            s = -1;
+                            rooms = rooms - hotel.DoubleRoomCount;
+                        }
+                        else if(hotel.DoubleRoomPrice != 0)
+                        {
+                            d = 1;
+                            rooms = rooms + hotel.DoubleRoomCount;
+                        }
+                       
+                        if (hotel.SuiteRoomPrice < 0)
+                        {
+                            s = -1;
+                            rooms = rooms - hotel.SuiteRoomCount;
+                        }
+                        else if (hotel.SuiteRoomPrice != 0)
+                        {
+                            d = 1;
+                            rooms = rooms + hotel.SuiteRoomCount;
+                        }
+                        
+                        if (hotel.OtherRoomPrice < 0)
+                        {
+                            s = -1;
+                            rooms = rooms - hotel.OtherRoomCount;
+                        }
+                        else if (hotel.OtherRoomPrice != 0)
+                        {
+                            d = 1;
+                            rooms = rooms + hotel.OtherRoomCount;
+                        }
+                        
+                        if (s == -1)
+                        {
+                            if (rooms == 1)
+                            {
+                                days = days - Tdays.Days;
+                            }
+                        }
+                        else
+                        {
+                            if (d==1)
+                            {
+                                days = days + Tdays.Days;
+                            }
+                        }
+                        
+                    }
+
+                    comMoney = 10 * rooms * days;
+                    if (rooms != 0 && days != 0)
+                    {
+                        if (dele.HotelComplain==0)
+                        {
+                            cTemp.Detail = "本团人数" + Convert.ToInt32(dele.VisitPNumber) + ",总房间数" + rooms + ",总住宿天数" + days + ",每人10元,提成共" + comMoney
+                                + ",操作人员为" + name + ",总提成为" + comMoney;
+                        }
+                        else
+                        {
+                            cTemp.Detail = "本团人数" + Convert.ToInt32(dele.VisitPNumber) + ",总房间数" + rooms + ",总住宿天数" + days + ",每人10元,提成共" + comMoney
+                                + ",操作人员为" + name + ",总提成为" + comMoney+ ",本团商邀/公务业务收到投诉,扣50,剩提成"+(comMoney-50);
+                        }
+                        
+                    }
+                    else
+                    {
+                        cTemp.Detail = "本团人数" + Convert.ToInt32(dele.VisitPNumber) + ",总房间数" + rooms + ",总住宿天数" + days + ",每人10元,提成共" + comMoney
+                                + ",操作人员为" + name + ",总提成为" + 0;
+                    }
+
+                }
+
+            }
+            //商邀
+            else if (((IList)Invitation).Contains(personId))
+            {
+                //投诉标识
+                if (dele.OAComplain == 0)
+                {
+                    //2)付费公务活动部分:¥50 / 团;
+                    //4)不付费公务活动部分(自己联络)额外奖励:¥200 / 团(若公务活动方与邀请方为同一机构,奖励金额为¥100 / 团);
+                    //5)只发邀请的团组不付费邀请额外奖励:¥100 / 团;
+                    //邀请方已授权我司签发的邀请仍按照:¥100 / 团,无额外奖励。
+                    if (listOA != null && listOA.Count() > 0)
+                    {
+                        foreach (InvitationOfficialActivities oa in listOA)
+                        {
+                            if (oa.InviteCosts > 0) //1)公司付费邀请函部分:  ¥100 / 团;
+                            {
+                                comMoney = 100;
+                                cTemp.Detail = "本团包含公司付费邀请函部分," + ddlPersonnel.SelectedItem.Text + "提成共" + comMoney;
+                            }
+                            else// 3)公司不付费邀请函部分(自己联络)额外奖励:¥300 / 团;
+                            {
+                                comMoney = 300;
+                                cTemp.Detail = "本团不包含公司付费邀请函部分," + ddlPersonnel.SelectedItem.Text + "提成共" + comMoney;
+                            }
+                        }
+                    }
+                }
+                else
+                {
+                    comMoney = 0;
+                    cTemp.Detail = "本团商邀/公务业务收到投诉,无提成";
+                    compalin = compalin + "、商邀/公务业务";
+                }
+
+            }
+            //签证
+            else if (((IList)Visa).Contains(personId))
+            {
+                //投诉标识
+                if (dele.VisaComplain == 0)
+                {
+                    //优先且如果为第三方办理签证,则无提成
+                    //再查看办理签证的客户是否是本公司员工,如果是则不计算该人数提成
+                    List<Users> listuser = new UsersService().GetAll();
+                    List<Users> visauser = new List<Users>();
+                    int visanum = 0;
+                    bool isthird = false;//第三方代办标识
+                    foreach (Visa visa in listVisa)
+                    {
+                        if (visa.IsThird == 1)
+                            isthird = true;
+
+                        visauser = listuser.FindAll(u => u.CnName == visa.VisaClient);
+                        visanum = visanum + visauser.Count;
+                    }
+                    //第三方代办标识
+                    if (isthird == false)
+                    {
+
+                        //确认操作人数
+                        string op = "";
+                        for (int i = 0; i < listVisa.Count; i++)
+                        {
+                            if (op.Contains(listVisa[i].Operators.ToString()))
+                                op = op + ";" + listVisa[i].Operators.ToString();
+                        }
+                        op.TrimStart(';');
+                        List<Users> opUsers = new List<Users>();
+                        string name = "";
+                        foreach (string uid in op.Split(';'))
+                        {
+                            name = name + "," + new UsersService().GetUsersByID(Convert.ToInt32(uid)).CnName;
+                            opUsers.Add(new UsersService().GetUsersByID(Convert.ToInt32(uid)));
+                        }
+                        name.TrimStart(',');
+
+                        if (dele.VisitCountry.Contains("英国") || dele.VisitCountry.Contains("加拿大") || dele.VisitCountry.Contains("美国")) //1)办理英国、加拿大、美国签证¥50元 / 人 / 团;
+                        {
+                            comMoney = 50 * (Convert.ToInt32(dele.VisitPNumber) - visanum);
+                            cTemp.Detail = "本团人数" + Convert.ToInt32(dele.VisitPNumber) + ",其中公司同事人数为" + visanum + ",办理英国、加拿大、美国签证每人50元,提成共" + comMoney
+                                         + ",操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + comMoney / opUsers.Count;
+                        }
+                        else//2)申根国家及其他所有国家¥30元 / 人 / 团;
+                        {
+                            comMoney = 30 * (Convert.ToInt32(dele.VisitPNumber) - visanum);
+                            cTemp.Detail = "本团人数" + Convert.ToInt32(dele.VisitPNumber) + ",其中公司同事人数为" + visanum + ",办理申根国家及其他所有国家每人30元,提成共" + comMoney
+                                         + ",操作人员为" + name + ",均分后" + ddlPersonnel.SelectedItem.Text + "提成为" + comMoney / opUsers.Count;
+                        }
+
+                    }
+                    else
+                    {
+                        comMoney = 0;
+                        cTemp.Detail = "本团由第三方代办签证,故" + ddlPersonnel.SelectedItem.Text + "无提成";
+                    }
+                }
+                else
+                {
+                    comMoney = 0;
+                    cTemp.Detail = "本团签证业务收到投诉,无提成";
+                    compalin = compalin + "、签证业务";
+                }
+            }
+            //主管经理
+            else if (((IList)Manager).Contains(personId))
+            {
+                //投诉标识
+                if (dele.HotelComplain == 0 && dele.OPComplain == 0 && dele.VisaComplain == 0 && dele.OAComplain == 0 && dele.AirComplain == 0)
+                {
+                    if (dele.VisitPNumber >= 6 && dele.VisitDays >= 6 && listAir.Count() > 0 && listHotel.Count() > 0 && listOP.Count() > 0)//普通标准团组¥300
+                    {
+                        comMoney = 100;
+                        cTemp.Detail = "本团为普通标准团组,提成共100,徐茜和董果均分后" + ddlPersonnel.SelectedItem.Text + "提成为50";
+                    }
+                    else
+                    {
+                        comMoney = 0;
+                        cTemp.Detail = "本团为非普通标准团组,无提成";
+                    }
+                }
+                else
+                {
+                    comMoney = 0;
+                    compalin.TrimStart('、');
+                    cTemp.Detail = "本团" + compalin + "收到客户投诉,故" + ddlPersonnel.SelectedItem.Text + "无提成";
+                }
+            }
+            //销售部
+            else if (ddlDepartment.SelectedValue == "6")
+            {
+                //判定尾款是否收完
+                if (float.Parse(BalanceStr) <= 0)
+                {
+                    //团组成单人判定
+                    if (dele.Director.ToString() == ddlPersonnel.SelectedValue)
+                    {
+
+                        //提成金额 = 净利润 * 7% = (销售额 - 成本 -( 销售额 * 20% ))* 7%
+                        comMoney = (float.Parse(sumPrstr) - float.Parse(TeamMoneystr) - float.Parse(sumPrstr) / 5) * 7 / 100;
+                        cTemp.Detail = "本团销售额" + sumPrstr + ",支出" + TeamMoneystr + ",费用和税金按销售额的20%计算,为" + float.Parse(sumPrstr) / 5 + ",再乘7%," + ddlPersonnel.SelectedItem.Text + "提成共" + comMoney;
+                    }
+                    else
+                    {
+                        comMoney = 0;
+                        cTemp.Detail = "本团由" + new UsersService().GetUsersByID(dele.Director).CnName + "负责,故" + ddlPersonnel.SelectedItem.Text + "无提成";
+                    }
+                }
+                else
+                {
+                    comMoney = 0;
+                    cTemp.Detail = "本团收款未完成,尾款" + BalanceStr + ",无提成";
+
+                }
+            }
+            //会展会务部
+            else if (ddlDepartment.SelectedValue == "335")
+            {
+                //判定尾款是否收完
+                if (float.Parse(BalanceStr) <= 0)
+                {
+                    //成单人判定
+                    if (dele.Director.ToString() == ddlPersonnel.SelectedValue)
+                    {
+                        bool t = true;
+                        if (t)
+                        {
+                            comMoney = (float.Parse(sumPrstr) - float.Parse(TeamMoneystr) - float.Parse(sumPrstr) / 5) * 5 / 1000;
+                            cTemp.Detail = "本团销售额" + sumPrstr + ",支出" + TeamMoneystr + ",费用和税金按销售额的20%计算,为" + float.Parse(sumPrstr) / 5 + ",再乘5‰," + ddlPersonnel.SelectedItem.Text + "提成共" + comMoney;
+                        }
+                        else
+                        {  //自行签订会展会提的提成金额 = 净利润 * 7% = (销售额 - 成本 -( 销售额 * 20% ))* 7%
+                            comMoney = (float.Parse(sumPrstr) - float.Parse(TeamMoneystr) - float.Parse(sumPrstr) / 5) * 7 / 100;
+                            cTemp.Detail = "本团销售额" + sumPrstr + ",支出" + TeamMoneystr + ",费用和税金按销售额的20%计算,为" + float.Parse(sumPrstr) / 5 + ",再乘7%," + ddlPersonnel.SelectedItem.Text + "提成共" + comMoney;
+                        }
+                    }
+                    else
+                    {
+                        comMoney = 0;
+                        cTemp.Detail = "本团由" + new UsersService().GetUsersByID(dele.Director).CnName + "负责,故" + ddlPersonnel.SelectedItem.Text + "无提成";
+                    }
+                }
+                else
+                {
+                    comMoney = 0;
+                    cTemp.Detail = "本团收款未完成,尾款" + BalanceStr + ",无提成";
+
+                }
+            }
 
+            cTemp.Money = comMoney.ToString("#0.00");
+            #endregion
         }
     }
 }

+ 72 - 0
OA2021/finance/Royalty.aspx.designer.cs

@@ -22,5 +22,77 @@ namespace OA2021.finance
         /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
         /// </remarks>
         protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+        /// <summary>
+        /// ddlCompany 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlCompany;
+
+        /// <summary>
+        /// ddlDepartment 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlDepartment;
+
+        /// <summary>
+        /// ddlPersonnel 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlPersonnel;
+
+        /// <summary>
+        /// txtStartTime 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.TextBox txtStartTime;
+
+        /// <summary>
+        /// txtEndTime 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.TextBox txtEndTime;
+
+        /// <summary>
+        /// ddlYearMonth2 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlYearMonth2;
+
+        /// <summary>
+        /// btnSelect 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.Button btnSelect;
+
+        /// <summary>
+        /// ddlYearMonth 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlYearMonth;
     }
 }

+ 6 - 0
OA2021/groups/addInvitationOfficialActivities.aspx

@@ -184,16 +184,22 @@
                                 </td>
                                 <td style="text-align: left; width: 140px; white-space: nowrap;">
                                     <asp:TextBox ID="txtSendCost" runat="server" Width="80" Style="border: 1px solid #b3b3b3;" />
+                                    <asp:DropDownList ID="ddlSendCurrency" AutoPostBack="true" runat="server"
+                                        Width="55" Style="border: 1px solid #b3b3b3;" />
                                 </td>
                                 <td style="text-align: right; width: 75px; white-space: nowrap;">公务活动费:
                                 </td>
                                 <td style="text-align: left; width: 140px; white-space: nowrap;">
                                     <asp:TextBox ID="txtEventsCost" runat="server" Width="80" Style="border: 1px solid #b3b3b3;" />
+                                    <asp:DropDownList ID="ddlEventsCurrency" AutoPostBack="true" runat="server"
+                                        Width="55" Style="border: 1px solid #b3b3b3;" />
                                 </td>
                                 <td style="text-align: right; width: 75px; white-space: nowrap;">公务翻译费:
                                 </td>
                                 <td style="text-align: left; width: 140px; white-space: nowrap;">
                                     <asp:TextBox ID="txtTranslateCost" runat="server" Width="80" Style="border: 1px solid #b3b3b3;" />
+                                    <asp:DropDownList ID="ddlTranslateCost" AutoPostBack="true" runat="server"
+                                        Width="55" Style="border: 1px solid #b3b3b3;" />
                                 </td>
                             </tr>
                             <tr>

+ 407 - 14
OA2021/groups/addInvitationOfficialActivities.aspx.cs

@@ -63,13 +63,35 @@ namespace OA2014.groups
             ddlTourCode.Items.FindByValue(Diid).Selected = true;
 
             SetDataService sds = new SetDataService();
-            ddlInviteCostsCurrency.DataSource = sds.GetAll(13);
+            List<SetData> datas= sds.GetAll(13);
+            ddlInviteCostsCurrency.DataSource = datas;
             ddlInviteCostsCurrency.DataTextField = "Name";
             ddlInviteCostsCurrency.DataValueField = "Id";
             ddlInviteCostsCurrency.DataBind();
 
             ddlInviteCostsCurrency.SelectedValue = "48";
 
+            ddlSendCurrency.DataSource = datas;
+            ddlSendCurrency.DataTextField = "Name";
+            ddlSendCurrency.DataValueField = "Id";
+            ddlSendCurrency.DataBind();
+
+            ddlSendCurrency.SelectedValue = "48";
+
+            ddlEventsCurrency.DataSource = datas;
+            ddlEventsCurrency.DataTextField = "Name";
+            ddlEventsCurrency.DataValueField = "Id";
+            ddlEventsCurrency.DataBind();
+
+            ddlEventsCurrency.SelectedValue = "48";
+
+            ddlTranslateCost.DataSource = datas;
+            ddlTranslateCost.DataTextField = "Name";
+            ddlTranslateCost.DataValueField = "Id";
+            ddlTranslateCost.DataBind();
+
+            ddlTranslateCost.SelectedValue = "48";
+
 
 
             sds = new SetDataService();
@@ -155,6 +177,11 @@ namespace OA2014.groups
                     ioa.TranslateCost = float.Parse(txtTranslateCost.Text);
                 else
                     ioa.TranslateCost = 0;
+
+                ioa.SendCurrency = Convert.ToInt32(ddlSendCurrency.SelectedValue);
+                ioa.EventsCurrency = Convert.ToInt32(ddlEventsCurrency.SelectedValue);
+                ioa.TranslateCurrency = Convert.ToInt32(ddlTranslateCost.SelectedValue);
+
                 ioa.IsGoOfficaiaBussiness = Convert.ToInt32(rdoIsGoOfficialBusiness.SelectedValue);
                 ioa.Remark = txtRemark.Text;
                 ioa.Operators = UserId;
@@ -210,9 +237,7 @@ namespace OA2014.groups
                     ccp.BankNo = "";
                     ccp.CardholderName = "";
 
-                    ccp.PayMoney = ioa.InviteCosts + ioa.SendCost + ioa.EventsCost + ioa.TranslateCost;
-                   
-                    ccp.PaymentCurrency = Convert.ToInt32(ddlInviteCostsCurrency.SelectedValue);
+                    
                     //当天汇率
                     //if (!string.IsNullOrEmpty(hfRate.Value))
                     //    ccp.DayRate = hfRate.Value;
@@ -258,29 +283,397 @@ namespace OA2014.groups
                     //设置该团组的汇率
                     TeamRateService trs = new TeamRateService();
                     TeamRate tr = trs.GetByDiidAndCtable(Convert.ToInt32(ddlTourCode.SelectedValue), 81);
+                    InvitationOfficialActivities activities = new InvitationOfficialActivities();
                     if (tr != null)
                     {
-                        if (ccp.PaymentCurrency == 49)
+                        #region 汇率换算
+
+                        if (ioa.Currency == 49)
+                        {
+                            activities.InviteCosts= ioa.InviteCosts * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.Currency == 51)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.Currency == 50)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.Currency == 55)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.Currency == 56)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.Currency == 65)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.Currency == 54)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.Currency == 53)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.Currency == 63)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.Currency == 68)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.Currency == 69)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.Currency == 336)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.Currency == 337)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.Currency == 338)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.Currency == 341)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.Currency == 342)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.Currency == 344)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.Currency == 345)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.Currency == 354)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.Currency == 359)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateARS);
+                        }
+                        else if (ioa.Currency == 361)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateHUF);
+                        }
+                        else if (ioa.Currency == 362)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateRUB);
+                        }
+                        else
+                        {
+                            activities.InviteCosts= ioa.InviteCosts;
+                        }
+                        //------------------------------------------------------------------
+                        if (ioa.SendCurrency == 49)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.SendCurrency == 51)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.SendCurrency == 50)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.SendCurrency == 55)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.SendCurrency == 56)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.SendCurrency == 65)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.SendCurrency == 54)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.SendCurrency == 53)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.SendCurrency == 63)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.SendCurrency == 68)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.SendCurrency == 69)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.SendCurrency == 336)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.SendCurrency == 337)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.SendCurrency == 338)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.SendCurrency == 341)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.SendCurrency == 342)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.SendCurrency == 344)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.SendCurrency == 345)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.SendCurrency == 354)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.SendCurrency == 359)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateARS);
+                        }
+                        else if (ioa.SendCurrency == 361)
                         {
-                            ccp.DayRate = tr.RateU;
-                            ccp.RMBPrice = ccp.PayMoney * float.Parse(tr.RateU);
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateHUF);
                         }
-                        else if (ccp.PaymentCurrency == 51)
+                        else if (ioa.SendCurrency == 362)
                         {
-                            ccp.DayRate = tr.RateE;
-                            ccp.RMBPrice = ccp.PayMoney * float.Parse(tr.RateE);
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateRUB);
                         }
                         else
                         {
-                            ccp.DayRate = "1";
-                            ccp.RMBPrice = ccp.PayMoney;
+                            activities.SendCost = ioa.SendCost;
                         }
+                        //------------------------------------------------------------------
+                        if (ioa.EventsCurrency == 49)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.EventsCurrency == 51)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.EventsCurrency == 50)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.EventsCurrency == 55)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.EventsCurrency == 56)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.EventsCurrency == 65)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.EventsCurrency == 54)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.EventsCurrency == 53)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.EventsCurrency == 63)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.EventsCurrency == 68)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.EventsCurrency == 69)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.EventsCurrency == 336)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.EventsCurrency == 337)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.EventsCurrency == 338)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.EventsCurrency == 341)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.EventsCurrency == 342)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.EventsCurrency == 344)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.EventsCurrency == 345)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.EventsCurrency == 354)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.EventsCurrency == 359)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateARS);
+                        }
+                        else if (ioa.EventsCurrency == 361)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateHUF);
+                        }
+                        else if (ioa.EventsCurrency == 362)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateRUB);
+                        }
+                        else
+                        {
+                            activities.EventsCost = ioa.EventsCost;
+                        }
+                        //------------------------------------------------------------------
+                        if (ioa.TranslateCurrency == 49)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.TranslateCurrency == 51)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.TranslateCurrency == 50)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.TranslateCurrency == 55)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.TranslateCurrency == 56)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.TranslateCurrency == 65)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.TranslateCurrency == 54)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.TranslateCurrency == 53)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.TranslateCurrency == 63)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.TranslateCurrency == 68)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.TranslateCurrency == 69)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.TranslateCurrency == 336)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.TranslateCurrency == 337)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.TranslateCurrency == 338)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.TranslateCurrency == 341)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.TranslateCurrency == 342)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.TranslateCurrency == 344)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.TranslateCurrency == 345)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.TranslateCurrency == 354)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.TranslateCurrency == 359)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateARS);
+                        }
+                        else if (ioa.TranslateCurrency == 361)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateHUF);
+                        }
+                        else if (ioa.TranslateCurrency == 362)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateRUB);
+                        }
+                        else
+                        {
+                            activities.TranslateCost = ioa.TranslateCost;
+                        }
+                        #endregion
                     }
                     else
                     {
-                        ccp.DayRate = "1";
-                        ccp.RMBPrice = ccp.PayMoney;
+                        activities.InviteCosts = ioa.InviteCosts;
+                        activities.SendCost = ioa.SendCost;
+                        activities.EventsCost = ioa.EventsCost;
+                        activities.TranslateCost = ioa.TranslateCost;
                     }
+
+                    ccp.PayMoney = activities.InviteCosts + activities.SendCost + activities.EventsCost + activities.TranslateCost;
+                    ccp.PaymentCurrency = 48;
+
+                    ccp.DayRate = "1";
+                    ccp.RMBPrice = ccp.PayMoney;
                     //--
                     if (ddlPayment.SelectedValue == "72")
                     {

+ 27 - 0
OA2021/groups/addInvitationOfficialActivities.aspx.designer.cs

@@ -239,6 +239,15 @@ namespace OA2014.groups
         /// </remarks>
         protected global::System.Web.UI.WebControls.TextBox txtSendCost;
 
+        /// <summary>
+        /// ddlSendCurrency 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlSendCurrency;
+
         /// <summary>
         /// txtEventsCost 控件。
         /// </summary>
@@ -248,6 +257,15 @@ namespace OA2014.groups
         /// </remarks>
         protected global::System.Web.UI.WebControls.TextBox txtEventsCost;
 
+        /// <summary>
+        /// ddlEventsCurrency 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlEventsCurrency;
+
         /// <summary>
         /// txtTranslateCost 控件。
         /// </summary>
@@ -257,6 +275,15 @@ namespace OA2014.groups
         /// </remarks>
         protected global::System.Web.UI.WebControls.TextBox txtTranslateCost;
 
+        /// <summary>
+        /// ddlTranslateCost 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlTranslateCost;
+
         /// <summary>
         /// txtPayee 控件。
         /// </summary>

+ 6 - 0
OA2021/groups/editInvitationOfficialActivities.aspx

@@ -173,16 +173,22 @@
                                 </td>
                                 <td style="text-align: left; width: 140px; white-space: nowrap;">
                                     <asp:TextBox ID="txtSendCost" runat="server" Width="80" Style="border: 1px solid #b3b3b3;" />
+                                    <asp:DropDownList ID="ddlSendCurrency" AutoPostBack="true" runat="server"
+                                        Width="55" Style="border: 1px solid #b3b3b3;" />
                                 </td>
                                 <td style="text-align: right; width: 75px; white-space: nowrap;">公务活动费:
                                 </td>
                                 <td style="text-align: left; width: 140px; white-space: nowrap;">
                                     <asp:TextBox ID="txtEventsCost" runat="server" Width="80" Style="border: 1px solid #b3b3b3;" />
+                                    <asp:DropDownList ID="ddlEventsCurrency" AutoPostBack="true" runat="server"
+                                        Width="55" Style="border: 1px solid #b3b3b3;" />
                                 </td>
                                 <td style="text-align: right; width: 75px; white-space: nowrap;">公务翻译费:
                                 </td>
                                 <td style="text-align: left; width: 140px; white-space: nowrap;">
                                     <asp:TextBox ID="txtTranslateCost" runat="server" Width="80" Style="border: 1px solid #b3b3b3;" />
+                                    <asp:DropDownList ID="ddlTranslateCurrency" AutoPostBack="true" runat="server"
+                                        Width="55" Style="border: 1px solid #b3b3b3;" />
                                 </td>
                             </tr>
                             <tr>

+ 431 - 17
OA2021/groups/editInvitationOfficialActivities.aspx.cs

@@ -48,11 +48,35 @@ namespace OA2014.groups
             ddlTourCode.DataBind();
 
             SetDataService sds = new SetDataService();
-            ddlInviteCostsCurrency.DataSource = sds.GetAll(13);
+            List<SetData> datas = sds.GetAll(13);
+            ddlInviteCostsCurrency.DataSource = datas;
             ddlInviteCostsCurrency.DataTextField = "Name";
             ddlInviteCostsCurrency.DataValueField = "Id";
             ddlInviteCostsCurrency.DataBind();
 
+            ddlInviteCostsCurrency.SelectedValue = "48";
+
+            ddlSendCurrency.DataSource = datas;
+            ddlSendCurrency.DataTextField = "Name";
+            ddlSendCurrency.DataValueField = "Id";
+            ddlSendCurrency.DataBind();
+
+            ddlSendCurrency.SelectedValue = "48";
+
+            ddlEventsCurrency.DataSource = datas;
+            ddlEventsCurrency.DataTextField = "Name";
+            ddlEventsCurrency.DataValueField = "Id";
+            ddlEventsCurrency.DataBind();
+
+            ddlEventsCurrency.SelectedValue = "48";
+
+            ddlTranslateCurrency.DataSource = datas;
+            ddlTranslateCurrency.DataTextField = "Name";
+            ddlTranslateCurrency.DataValueField = "Id";
+            ddlTranslateCurrency.DataBind();
+
+            ddlTranslateCurrency.SelectedValue = "48";
+
 
             ddlPayment.DataSource = sds.GetAll(14);
             ddlPayment.DataTextField = "Name";
@@ -93,11 +117,32 @@ namespace OA2014.groups
                 txtInviteCosts.Text = ioa.InviteCosts.ToString("#0.00");
                 txtEventsCost.Text = ioa.EventsCost.ToString("#0.00");
                 txtTranslateCost.Text = ioa.TranslateCost.ToString("#0.00");
-                ddlInviteCostsCurrency.SelectedIndex = -1;
-                ddlInviteCostsCurrency.Items.FindByValue(ioa.Currency.ToString()).Selected = true;
-
                 txtSendCost.Text = ioa.SendCost.ToString("#0.00");
 
+                if (ioa.Currency.ToString()!="0")
+                {
+                    ddlInviteCostsCurrency.SelectedIndex = -1;
+                    ddlInviteCostsCurrency.Items.FindByValue(ioa.Currency.ToString()).Selected = true;
+                }
+                
+                if (ioa.SendCurrency.ToString()!="0")
+                {
+                    ddlSendCurrency.SelectedIndex = -1;
+                    ddlSendCurrency.Items.FindByValue(ioa.SendCurrency.ToString()).Selected = true;
+                }
+                if (ioa.EventsCurrency.ToString()!="0")
+                {
+                    ddlEventsCurrency.SelectedIndex = -1;
+                    ddlEventsCurrency.Items.FindByValue(ioa.EventsCurrency.ToString()).Selected = true;
+                }
+
+                if (ioa.TranslateCurrency.ToString()!="0")
+                {
+                    ddlTranslateCurrency.SelectedIndex = -1;
+                    ddlTranslateCurrency.Items.FindByValue(ioa.TranslateCurrency.ToString()).Selected = true;
+                }
+                
+
 
                 rdoIsGoOfficialBusiness.SelectedIndex = -1;
                 rdoIsGoOfficialBusiness.Items.FindByValue(ioa.IsGoOfficaiaBussiness.ToString()).Selected = true;
@@ -218,6 +263,10 @@ namespace OA2014.groups
                 else
                     ioa.TranslateCost = 0;
 
+                ioa.SendCurrency = Convert.ToInt32(ddlSendCurrency.SelectedValue);
+                ioa.EventsCurrency = Convert.ToInt32(ddlEventsCurrency.SelectedValue);
+                ioa.TranslateCurrency = Convert.ToInt32(ddlTranslateCurrency.SelectedValue);
+
                 ioa.IsGoOfficaiaBussiness = Convert.ToInt32(rdoIsGoOfficialBusiness.SelectedValue);
                 ioa.Remark = txtRemark.Text;
                 ioa.Operators = UserId;
@@ -252,10 +301,7 @@ namespace OA2014.groups
                     //---
 
                    
-                    ccp.PayMoney = ioa.InviteCosts + ioa.SendCost+ioa.EventsCost+ioa.TranslateCost;
-                    
                     ccp.PayDId = Convert.ToInt32(ddlPayment.SelectedValue);
-                    ccp.PaymentCurrency = Convert.ToInt32(ddlInviteCostsCurrency.SelectedValue);
                     //当天汇率
                     //if (!string.IsNullOrEmpty(hfRate.Value))
                     //    ccp.DayRate = hfRate.Value;
@@ -279,30 +325,398 @@ namespace OA2014.groups
                     //设置该团组的汇率
                     TeamRateService trs = new TeamRateService();
                     TeamRate tr = trs.GetByDiidAndCtable(Convert.ToInt32(ddlTourCode.SelectedValue), 81);
+                    InvitationOfficialActivities activities = new InvitationOfficialActivities();
                     if (tr != null)
                     {
-                        if (ccp.PaymentCurrency == 49)
+                        #region 汇率换算
+
+                        if (ioa.Currency == 49)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.Currency == 51)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.Currency == 50)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.Currency == 55)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.Currency == 56)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.Currency == 65)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.Currency == 54)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.Currency == 53)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.Currency == 63)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.Currency == 68)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.Currency == 69)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.Currency == 336)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.Currency == 337)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.Currency == 338)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.Currency == 341)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.Currency == 342)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.Currency == 344)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.Currency == 345)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.Currency == 354)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.Currency == 359)
                         {
-                            ccp.DayRate = tr.RateU;
-                            ccp.RMBPrice = ccp.PayMoney * float.Parse(tr.RateU);
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateARS);
                         }
-                        else if (ccp.PaymentCurrency == 51)
+                        else if (ioa.Currency == 361)
                         {
-                            ccp.DayRate = tr.RateE;
-                            ccp.RMBPrice = ccp.PayMoney * float.Parse(tr.RateE);
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateHUF);
+                        }
+                        else if (ioa.Currency == 362)
+                        {
+                            activities.InviteCosts = ioa.InviteCosts * float.Parse(tr.RateRUB);
                         }
                         else
                         {
-                            ccp.DayRate = "1";
-                            ccp.RMBPrice = ccp.PayMoney;
+                            activities.InviteCosts = ioa.InviteCosts;
+                        }
+                        //------------------------------------------------------------------
+                        if (ioa.SendCurrency == 49)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.SendCurrency == 51)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.SendCurrency == 50)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.SendCurrency == 55)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.SendCurrency == 56)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.SendCurrency == 65)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.SendCurrency == 54)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.SendCurrency == 53)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.SendCurrency == 63)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.SendCurrency == 68)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.SendCurrency == 69)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.SendCurrency == 336)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.SendCurrency == 337)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.SendCurrency == 338)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.SendCurrency == 341)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.SendCurrency == 342)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.SendCurrency == 344)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.SendCurrency == 345)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.SendCurrency == 354)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.SendCurrency == 359)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateARS);
+                        }
+                        else if (ioa.SendCurrency == 361)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateHUF);
                         }
+                        else if (ioa.SendCurrency == 362)
+                        {
+                            activities.SendCost = ioa.SendCost * float.Parse(tr.RateRUB);
+                        }
+                        else
+                        {
+                            activities.SendCost = ioa.SendCost;
+                        }
+                        //------------------------------------------------------------------
+                        if (ioa.EventsCurrency == 49)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.EventsCurrency == 51)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.EventsCurrency == 50)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.EventsCurrency == 55)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.EventsCurrency == 56)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.EventsCurrency == 65)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.EventsCurrency == 54)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.EventsCurrency == 53)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.EventsCurrency == 63)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.EventsCurrency == 68)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.EventsCurrency == 69)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.EventsCurrency == 336)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.EventsCurrency == 337)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.EventsCurrency == 338)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.EventsCurrency == 341)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.EventsCurrency == 342)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.EventsCurrency == 344)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.EventsCurrency == 345)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.EventsCurrency == 354)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.EventsCurrency == 359)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateARS);
+                        }
+                        else if (ioa.EventsCurrency == 361)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateHUF);
+                        }
+                        else if (ioa.EventsCurrency == 362)
+                        {
+                            activities.EventsCost = ioa.EventsCost * float.Parse(tr.RateRUB);
+                        }
+                        else
+                        {
+                            activities.EventsCost = ioa.EventsCost;
+                        }
+                        //------------------------------------------------------------------
+                        if (ioa.TranslateCurrency == 49)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateU);
+                        }
+                        else if (ioa.TranslateCurrency == 51)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateE);
+                        }
+                        else if (ioa.TranslateCurrency == 50)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateJ);
+                        }
+                        else if (ioa.TranslateCurrency == 55)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateH);
+                        }
+                        else if (ioa.TranslateCurrency == 56)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateN);
+                        }
+                        else if (ioa.TranslateCurrency == 65)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateS);
+                        }
+                        else if (ioa.TranslateCurrency == 54)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateA);
+                        }
+                        else if (ioa.TranslateCurrency == 53)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateC);
+                        }
+                        else if (ioa.TranslateCurrency == 63)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateT);
+                        }
+                        else if (ioa.TranslateCurrency == 68)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateBL);
+                        }
+                        else if (ioa.TranslateCurrency == 69)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateHB);
+                        }
+                        else if (ioa.TranslateCurrency == 336)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateFJD);
+                        }
+                        else if (ioa.TranslateCurrency == 337)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateTL);
+                        }
+                        else if (ioa.TranslateCurrency == 338)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateRP);
+                        }
+                        else if (ioa.TranslateCurrency == 341)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RatePeso);
+                        }
+                        else if (ioa.TranslateCurrency == 342)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateMYR);
+                        }
+                        else if (ioa.TranslateCurrency == 344)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateCZK);
+                        }
+                        else if (ioa.TranslateCurrency == 345)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateMXN);
+                        }
+                        else if (ioa.TranslateCurrency == 354)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateMOP);
+                        }
+                        else if (ioa.TranslateCurrency == 359)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateARS);
+                        }
+                        else if (ioa.TranslateCurrency == 361)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateHUF);
+                        }
+                        else if (ioa.TranslateCurrency == 362)
+                        {
+                            activities.TranslateCost = ioa.TranslateCost * float.Parse(tr.RateRUB);
+                        }
+                        else
+                        {
+                            activities.TranslateCost = ioa.TranslateCost;
+                        }
+                        #endregion
                     }
                     else
                     {
-                        ccp.DayRate = "1";
-                        ccp.RMBPrice = ccp.PayMoney;
+                        activities.InviteCosts = ioa.InviteCosts;
+                        activities.SendCost = ioa.SendCost;
+                        activities.EventsCost = ioa.EventsCost;
+                        activities.TranslateCost = ioa.TranslateCost;
                     }
 
+                    ccp.PayMoney = activities.InviteCosts + activities.SendCost + activities.EventsCost + activities.TranslateCost;
+                    ccp.PaymentCurrency = 48;
+
+                    ccp.DayRate = "1";
+                    ccp.RMBPrice = ccp.PayMoney;
+
                     if (ddlPayment.SelectedValue == "72")
                     {
                         ccp.IsPay = 1;

+ 27 - 0
OA2021/groups/editInvitationOfficialActivities.aspx.designer.cs

@@ -230,6 +230,15 @@ namespace OA2014.groups
         /// </remarks>
         protected global::System.Web.UI.WebControls.TextBox txtSendCost;
 
+        /// <summary>
+        /// ddlSendCurrency 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlSendCurrency;
+
         /// <summary>
         /// txtEventsCost 控件。
         /// </summary>
@@ -239,6 +248,15 @@ namespace OA2014.groups
         /// </remarks>
         protected global::System.Web.UI.WebControls.TextBox txtEventsCost;
 
+        /// <summary>
+        /// ddlEventsCurrency 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlEventsCurrency;
+
         /// <summary>
         /// txtTranslateCost 控件。
         /// </summary>
@@ -248,6 +266,15 @@ namespace OA2014.groups
         /// </remarks>
         protected global::System.Web.UI.WebControls.TextBox txtTranslateCost;
 
+        /// <summary>
+        /// ddlTranslateCurrency 控件。
+        /// </summary>
+        /// <remarks>
+        /// 自动生成的字段。
+        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+        /// </remarks>
+        protected global::System.Web.UI.WebControls.DropDownList ddlTranslateCurrency;
+
         /// <summary>
         /// txtPayee 控件。
         /// </summary>

+ 21 - 3
OA2021/groups/invitationOfficialActivities.aspx

@@ -18,7 +18,7 @@
     <form id="form1" runat="server">
     <asp:AjaxScriptManager ID="AjaxScriptManager1" runat="server">
     </asp:AjaxScriptManager>
-    <div>
+    <div style="height:500px">
         <div class="ps">
             <table class="ps" cellpadding="0" cellspacing="0">
                 <tr>
@@ -68,6 +68,9 @@
                     <td class="td"> 邀请方 </td>
                     <td class="td"> 邀请时间 </td>
                     <td class="td"> 邀请费用 </td>
+                    <td class="td"> 快递费用 </td>
+                    <td class="td"> 活动费用 </td>
+                    <td class="td"> 翻译费用 </td>
                    <%-- <td class="td"> 录入时的汇率 </td>--%>
                     <td class="td"> 是否到场 </td>
                     <td class="td"> 是否审核 </td>
@@ -91,9 +94,24 @@
                             </td>
                             <td class="td">
                                 <asp:Label ID="lblCurrencyVal" runat="server" Text='<%#Eval("Currency")%>' Visible="false" />
-                                <%#(float.Parse(Eval("InviteCosts").ToString())+float.Parse(Eval("SendCost").ToString())+float.Parse(Eval("EventsCost").ToString())+float.Parse(Eval("TranslateCost").ToString())).ToString("#0.00")%>
+                                <%#(float.Parse(Eval("InviteCosts").ToString())).ToString("#0.00")%>
                                 <asp:Label ID="lblCurrency" runat="server" />
                             </td>
+                            <td class="td">
+                                <asp:Label ID="SendCurrencyVal" runat="server" Text='<%#Eval("SendCurrency")%>' Visible="false" />
+                                <%#(float.Parse(Eval("SendCost").ToString())).ToString("#0.00")%>
+                                <asp:Label ID="lblSendCurrency" runat="server" />
+                            </td>
+                            <td class="td">
+                                <asp:Label ID="EventsCurrencyVal" runat="server" Text='<%#Eval("EventsCurrency")%>' Visible="false" />
+                                <%#(float.Parse(Eval("EventsCost").ToString())).ToString("#0.00")%>
+                                <asp:Label ID="lblEventsCurrency" runat="server" />
+                            </td>
+                            <td class="td">
+                                <asp:Label ID="TranslateCurrencyVal" runat="server" Text='<%#Eval("TranslateCurrency")%>' Visible="false" />
+                                <%#(float.Parse(Eval("TranslateCost").ToString())).ToString("#0.00")%>
+                                <asp:Label ID="lblTranslateCurrency" runat="server" />
+</td>
                             <%--<td class="td">
                                 <asp:Label ID="lblRate" runat="server" />
                             </td>--%>
@@ -139,7 +157,7 @@
 
             $("#GroupSearch").autocomplete(datas, {
                 minChars: 1,          //自动完成激活之前填入的最少字符
-                max: 6,              //列表里的条目数
+                max: 10,              //列表里的条目数
                 width: 300,
                 scrollWidth: 300,     //提示的宽度,溢出隐藏
                 mustMatch: true,      //自动填充

+ 17 - 0
OA2021/groups/invitationOfficialActivities.aspx.cs

@@ -166,6 +166,23 @@ namespace OA2014.groups
             SetData sd = sds.GetSetDataByID(currencyVal);
             if (sd != null)
                 (e.Item.FindControl("lblCurrency") as Label).Text = sd.Name;
+            else (e.Item.FindControl("lblCurrency") as Label).Text = "CNY";
+            int SendCurrencyVal = Convert.ToInt32((e.Item.FindControl("SendCurrencyVal") as Label).Text);
+            SetData sd1 = sds.GetSetDataByID(SendCurrencyVal);
+            if (sd1 != null)
+                (e.Item.FindControl("lblSendCurrency") as Label).Text = sd1.Name;
+            else (e.Item.FindControl("lblSendCurrency") as Label).Text = "CNY";
+            int EventsCurrencyVal = Convert.ToInt32((e.Item.FindControl("EventsCurrencyVal") as Label).Text);
+            SetData sd2 = sds.GetSetDataByID(EventsCurrencyVal);
+            if (sd2 != null)
+                (e.Item.FindControl("lblEventsCurrency") as Label).Text = sd2.Name;
+            else (e.Item.FindControl("lblEventsCurrency") as Label).Text = "CNY";
+
+            int TranslateCurrencyVal = Convert.ToInt32((e.Item.FindControl("TranslateCurrencyVal") as Label).Text);
+            SetData sd3 = sds.GetSetDataByID(TranslateCurrencyVal);
+            if (sd3 != null)
+                (e.Item.FindControl("lblTranslateCurrency") as Label).Text = sd3.Name;
+            else (e.Item.FindControl("lblTranslateCurrency") as Label).Text = "CNY";
 
             CreditCardPaymentService ccps = new CreditCardPaymentService();
             CreditCardPayment C = ccps.GetCreditCardPaymentByCIDAndDIIDAndCTable

+ 4 - 14
OA2021/statistics/OP_FinancialStatementsContent.aspx

@@ -834,8 +834,6 @@
                         </td>
                         <td class="td">邀请时间
                         </td>
-                        <td class="td">币种
-                        </td>
                         <td class="td">邀请涵费用
                         </td>
                         <td class="td">快递费用
@@ -844,8 +842,6 @@
                         </td>
                         <td class="td">翻译费用
                         </td>
-                        <td class="td">总费用
-                        </td>
                         <td class="td">人民币
                         </td>
                         <td class="td">当时汇率
@@ -876,22 +872,16 @@
                                     <%#Eval("InviteTime")%>
                                 </td>
                                 <td class="td">
-                                    <%#Eval("Name")%>
-                                </td>
-                                <td class="td">
-                                    <%#float.Parse(Eval("InviteCosts").ToString()).ToString("#0.00")%>
-                                </td>
-                                <td class="td">
-                                    <%#float.Parse(Eval("SendCost").ToString()).ToString("#0.00")%>
+                                    <%#float.Parse(Eval("InviteCosts").ToString()).ToString("#0.00")%> <%#string.IsNullOrWhiteSpace(Eval("Name").ToString())? "CNY":(Eval("Name").ToString())%>
                                 </td>
                                 <td class="td">
-                                    <%#float.Parse(Eval("EventsCost").ToString()).ToString("#0.00")%>
+                                    <%#float.Parse(Eval("SendCost").ToString()).ToString("#0.00")%><%#string.IsNullOrWhiteSpace(Eval("SendCurrency").ToString())? "CNY":(Eval("SendCurrency").ToString())%>
                                 </td>
                                 <td class="td">
-                                    <%#float.Parse(Eval("TranslateCost").ToString()).ToString("#0.00")%>
+                                    <%#float.Parse(Eval("EventsCost").ToString()).ToString("#0.00")%><%#string.IsNullOrWhiteSpace(Eval("EventsCurrency").ToString())? "CNY":(Eval("EventsCurrency").ToString())%>
                                 </td>
                                 <td class="td">
-                                    <%#(float.Parse(Eval("InviteCosts").ToString())+float.Parse(Eval("SendCost").ToString())+float.Parse(Eval("EventsCost").ToString())+float.Parse(Eval("TranslateCost").ToString())).ToString("#0.00")%>
+                                    <%#float.Parse(Eval("TranslateCost").ToString()).ToString("#0.00")%><%#string.IsNullOrWhiteSpace(Eval("TranslateCurrency").ToString())? "CNY":(Eval("TranslateCurrency").ToString())%>
                                 </td>
                                 <td class="td">
                                     <asp:Label ID="lblCNYMoney" runat="server" Text='<%#float.Parse(Eval("RMBPrice").ToString()).ToString("#0.00")%>' />