Browse Source

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

yuanrf 1 year ago
parent
commit
38b506c379

+ 93 - 27
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -1707,21 +1707,12 @@ namespace OASystem.API.Controllers
                     //2.已收
                     string sql_pr = string.Format(@" Select * From Fin_ProceedsReceived Where IsDel=0 And Diid={0} ", diId);
                     List<Fin_ProceedsReceived> list_pr = _sqlSugar.SqlQueryable<Fin_ProceedsReceived>(sql_pr).ToList();
-                    List<ProceedsReceivedInfoView> prDatas = new List<ProceedsReceivedInfoView>();
                     foreach (var item_pr in list_pr)
                     {
                         sum_pr += item_pr.Price;
                         str_client += string.Format(@"{0};", item_pr.Client);
                         str_schedule += string.Format(@"{0};", item_pr.Remark);
 
-                        prDatas.Add(new ProceedsReceivedInfoView
-                        {
-                            time = item_pr.SectionTime,
-                            client = item_pr.Client,
-                            money = item_pr.Price.ToString("#0.00"),
-                            currency = setData.Find(it => it.Id == item_pr.Currency)?.Name ?? "",
-                            receivablesType = setData.Find(it => it.Id == item_pr.ReceivablesType)?.Name ?? ""
-                        });
                     }
                     if (str_schedule.Length > 0)
                     {
@@ -1755,7 +1746,6 @@ namespace OASystem.API.Controllers
                     item_rst.balPrice = ((sum_fr + sum_extra) - (sum_pr - sum_refund)).ToString("#0.00");
                     item_rst.prClient = str_client;
                     item_rst.schedule = str_schedule;
-                    item_rst.prItem = prDatas;
 
                     string tempVisitDate = Convert.ToDateTime(item_rst.visitDate).ToString("yyyy-MM-dd");
 
@@ -1763,6 +1753,58 @@ namespace OASystem.API.Controllers
                     sumAll_pr += (sum_pr - sum_refund);
                     sumAll_balance += ((sum_fr + sum_extra) - (sum_pr - sum_refund));
 
+                    #region 单位应收已收细项(以应收费用名称为主去(已收费用)匹配) 新增 雷怡 2024-35-08 16:35:28
+
+                    List<ClientFeeInfoView> feeDatas = new List<ClientFeeInfoView>();
+
+                    //匹配上的数据
+                    foreach (var item in list_fr)
+                    {
+                        var prInfo = list_pr.Find(it => item.PriceName.Contains(it.Client) || item.PriceName.Equals(it.Client));
+
+                        decimal _balancePayment = 0.00M;
+                        if (item.Currency == prInfo?.Currency)
+                        {
+                            _balancePayment = item.ItemSumPrice - prInfo?.Price ?? 0.00M;
+                        }
+
+                        feeDatas.Add(new ClientFeeInfoView
+                        {
+                            client = item.PriceName,
+                            frMoney = item.ItemSumPrice.ToString("#0.00"),
+                            frCurrency = setData.Find(it => it.Id == item.Currency)?.Name ?? "-",
+                            frRate = item.Rate.ToString("#0.0000"),
+                            prReceivablesType = setData.Find(it => it.Id == prInfo?.ReceivablesType)?.Name ?? "",
+                            prTime = prInfo?.SectionTime ?? "-",
+                            prMoney = prInfo?.Price.ToString("#0.00") ?? "-",
+                            prCurrency = setData.Find(it => it.Id == prInfo?.Currency)?.Name ?? "",
+                            balPayment = _balancePayment.ToString("#0.00")
+                        });
+                    }
+                    //未匹配上的数据
+                    foreach (var item in list_pr)
+                    {
+                        var frInfo = list_fr.Find(it => it.PriceName.Contains(item.Client) || it.PriceName.Equals(item.Client));
+                        if (frInfo == null)
+                        {
+                            feeDatas.Add(new ClientFeeInfoView
+                            {
+                                client = item.Client+ "[未匹配上的已收数据(应收已收公司名称不一致)]",
+                                frMoney = "0.00",
+                                frCurrency =  "-",
+                                frRate ="0.0000",
+                                prReceivablesType = setData.Find(it => it.Id == item?.ReceivablesType)?.Name ?? "",
+                                prTime = item?.SectionTime ?? "-",
+                                prMoney = item?.Price.ToString("#0.00") ?? "0.00",
+                                prCurrency = setData.Find(it => it.Id == item?.Currency)?.Name ?? "",
+                                balPayment = "0.00"
+                            });
+                        }
+                    }
+
+
+                    item_rst.feeItem = feeDatas;
+                    #endregion
                 }
 
                 PostSyntheticalReceivableByDateRangeResultView result = new PostSyntheticalReceivableByDateRangeResultView();
@@ -2002,7 +2044,8 @@ namespace OASystem.API.Controllers
 
             #region 相关基础数据源
             var userDatas = _sqlSugar.Queryable<Sys_Users>().ToList();
-            var setDatas = _sqlSugar.Queryable<Sys_SetData>().ToList();
+            var setDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0).ToList();
+            var countryFeeDatas = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(it => it.IsDel == 0).ToList();
 
             var hotelDatas = _sqlSugar.Queryable<Grp_HotelReservations>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             var opDatas = _sqlSugar.Queryable<Grp_CarTouristGuideGroundReservations>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
@@ -2010,7 +2053,8 @@ namespace OASystem.API.Controllers
             var ioaDatas = _sqlSugar.Queryable<Grp_InvitationOfficialActivities>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             var insureDatas = _sqlSugar.Queryable<Grp_Customers>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             var airDatas = _sqlSugar.Queryable<Grp_AirTicketReservations>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DIId)).ToList();
-            var otherMoneyDatas = _sqlSugar.Queryable<Fin_OtherPrice>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Diid)).ToList();
+            //var otherMoneyDatas = _sqlSugar.Queryable<Fin_OtherPrice>().Where(it => it.IsDel == 0 && groupIds.Contains(it.Diid)).ToList();
+            var otherMoneyDatas = _sqlSugar.Queryable<Grp_DecreasePayments>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             var refundPaymentDatas = _sqlSugar.Queryable<Fin_PaymentRefundAndOtherMoney>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             var ExtraCostDatas = _sqlSugar.Queryable<Fin_GroupExtraCost>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             #endregion
@@ -2029,30 +2073,39 @@ namespace OASystem.API.Controllers
                     switch (payInfo.CTable)
                     {
                         case 76:  //76	酒店预订
-                            priName = hotelDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.HotelName ?? "";
+                            priName = $"[费用名称:{hotelDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.HotelName ?? ""}]";
                             break;
                         case 79:  //79	车/导游地接
                             var opData = opDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id);
                             if (opData != null)
                             {
+                                string area = "";
+                                bool b = int.TryParse(opData.Area, out int areaId);
+                                if (b)
+                                {
+                                    string area1 = countryFeeDatas.Find(it => it.Id == areaId)?.Country ?? "-";
+                                    area = $"{area1}({setDatas.Find(it => it.Id == opData.PriceType)?.Name ?? "-"})";
+                                }
+                                else area = opData.Area;
+
                                 if (payInfo.OrbitalPrivateTransfer == 0) //公转
                                 {
-                                    priName = $"【{orbitalPrivateTransfer}】【导游: {opData.ServiceGuide} 】{opData.Area}";
+                                    priName = $"【{orbitalPrivateTransfer}】【导游: {opData.ServiceGuide} 】[费用名称:{area}]";
                                 }
                                 else if (payInfo.OrbitalPrivateTransfer == 1) //私转
                                 {
-                                    priName = $"【{orbitalPrivateTransfer}】【导游:{opData.ServiceGuide}】{opData.Area}";
+                                    priName = $"【{orbitalPrivateTransfer}】【导游:{opData.ServiceGuide}】[费用名称:{area}]";
                                 }
                             }
                             break;
                         case 80:  // 80   签证
-                            priName = visaDatas.Find(it => payInfo.DIId == it.DIId && payInfo.CId == it.Id)?.VisaClient ?? "-";
+                            priName = $"[费用名称:{visaDatas.Find(it => payInfo.DIId == it.DIId && payInfo.CId == it.Id)?.VisaClient ?? " -"}]";
                             break;
                         case 81:  // 81	邀请/公务活动
-                            priName = ioaDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.Inviter ?? "-";
+                            priName = $"[费用名称:{ioaDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.Inviter ?? " -"}]";
                             break;
                         case 82:  // 82	团组客户保险
-                            priName = insureDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.ClientName ?? "-";
+                            priName = $"[费用名称:{insureDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.ClientName ?? " -"}]";
                             break;
                         case 85:  // 85	机票预订
                             string flightsCode = airDatas.Find(it => payInfo.DIId == it.DIId && payInfo.CId == it.Id)?.FlightsCode ?? "-";
@@ -2060,31 +2113,40 @@ namespace OASystem.API.Controllers
                             priName = $"{flightsCode}【{airPayType}】";
                             break;
                         case 98:  //  98	其他款项
-                            priName = otherMoneyDatas.Find(it => payInfo.DIId == it.Diid && payInfo.CId == it.Id)?.PriceName ?? "-";
+
+                            priName = $"[费用名称:{otherMoneyDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? " -"}]";
                             break;
                         case 285:  //  285 收款退还
-                            priName = refundPaymentDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? "-";
+                            priName = $"[费用名称:{refundPaymentDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? " -"}]";
                             break;
                         case 1015:  //  1015	超支费用
-                            priName = ExtraCostDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? "-";
+                            priName = $"[费用名称:{ExtraCostDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.PriceName ?? " -"}]";
                             break;
                         default:
                             priName = "";
                             break;
                     }
 
+                    //
                     bool status1 = false;
                     if (_groupIds != null)
                     {
                         status1 = _groupIds.Contains(payInfo.Id);
                     }
 
+                    string payeeStr = string.Format(@" {0},开户行:{1},银行卡号:{2} ", string.IsNullOrEmpty(payInfo.Payee) ? "-" : payInfo.Payee,
+                        string.IsNullOrEmpty(payInfo.OtherBankName) ? "-" : payInfo.OtherBankName,
+                        string.IsNullOrEmpty(payInfo.OtherSideNo) ? "-" : payInfo.OtherSideNo);
+
 
+                    decimal _PaymentAmount = (payInfo.PayMoney / 100) * payInfo.PayPercentage;//此次付款金额
+                    decimal _CNYSubTotalAmount = _PaymentAmount * payInfo.DayRate;//此次付款金额
+                    _CNYSubTotalAmount = Convert.ToDecimal(_CNYSubTotalAmount.ToString("#0.00"));
                     var childInfo = new Group_DailyFeePaymentContentInfolView()
                     {
                         IsChecked = status1,
                         Id = payInfo.Id,
-                        Payee = payInfo.Payee,
+                        Payee = payeeStr,
                         RowNumber = rouNumber,
                         Applicant = userDatas.Find(it => it.Id == payInfo.CreateUserId)?.CnName ?? "",
                         ApplicantDt = payInfo.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
@@ -2093,12 +2155,14 @@ namespace OASystem.API.Controllers
                         PriceName = priName,
                         ModuleName = setDatas.Find(it => it.Id == payInfo.CTable)?.Name ?? "",
                         PayCurrCode = setDatas.Find(it => it.Id == payInfo.PaymentCurrency)?.Name ?? "",
-                        PaymentAmount = payInfo.PayMoney,
+                        PaymentAmount = _PaymentAmount,
                         PayRate = payInfo.DayRate,
-                        CNYSubTotalAmount = ((payInfo.DayRate * payInfo.PayMoney) / 100) * payInfo.PayPercentage //此次付款金额
+                        CNYSubTotalAmount = _CNYSubTotalAmount
                     };
 
-                    string remaksDescription = $"【{childInfo.PayType}】【{childInfo.ModuleName}】{rouNumber}、[申请人:{childInfo.Applicant}][收款方:{childInfo.Payee}]{priName},{payInfo.OtherBankName},{payInfo.OtherSideNo}[{payInfo.ConsumptionPatterns}] {childInfo.PayCurrCode} {payInfo.PayMoney.ToString("#0.00")}、CNY:{childInfo.CNYSubTotalAmount.ToString("#0.00")}";
+                    //string remaksDescription = $"【{childInfo.PayType}】【{childInfo.ModuleName}】{rouNumber}、[申请人:{childInfo.Applicant}][收款方:{childInfo.Payee}]{priName},{payInfo.OtherBankName},{payInfo.OtherSideNo}[{payInfo.ConsumptionPatterns}] {childInfo.PayCurrCode} {payInfo.PayMoney.ToString("#0.00")}、CNY:{childInfo.CNYSubTotalAmount.ToString("#0.00")}(团组:{groupInfo.TeamName})";
+
+                    string remaksDescription = $"【{childInfo.PayType}】【{childInfo.ModuleName}】{rouNumber}、[申请人:{childInfo.Applicant}]{priName}[收款方:{childInfo.Payee}] {childInfo.PayCurrCode} {payInfo.PayMoney.ToString("#0.00")}、CNY:{childInfo.CNYSubTotalAmount.ToString("#0.00")}(团组:{groupInfo.TeamName})";
 
                     childInfo.RemaksDescription = remaksDescription;
                     childList.Add(childInfo);
@@ -2608,8 +2672,10 @@ namespace OASystem.API.Controllers
                         //groupGZSubStr += $"\t";
                     }
 
-                    if (!string.IsNullOrEmpty(groupGZSubStr)) groupGZStr += $"团组:{item.GroupName}\r\n{groupGZSubStr}\r\n";
-                    if (!string.IsNullOrEmpty(groupSZSubStr)) groupSZStr += $"团组:{item.GroupName}\r\n{groupSZSubStr}\r\n";
+                    //if (!string.IsNullOrEmpty(groupGZSubStr)) groupGZStr += $"团组:{item.GroupName}\r\n{groupGZSubStr}\r\n";
+                    //if (!string.IsNullOrEmpty(groupSZSubStr)) groupSZStr += $"团组:{item.GroupName}\r\n{groupSZSubStr}\r\n";
+                    if (!string.IsNullOrEmpty(groupGZSubStr)) groupGZStr += $"{groupGZSubStr}\r\n";
+                    if (!string.IsNullOrEmpty(groupSZSubStr)) groupSZStr += $"{groupSZSubStr}\r\n";
 
                 }
 

+ 70 - 7
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -11434,18 +11434,81 @@ namespace OASystem.API.Controllers
         {
             _airTicketResRep.ChangeDataBase(DBEnum.OA2014DB);
 
-            string sql = string.Format(@" Select * From Visa With(Nolock) ");
-            List<OA2014_Visa> list_visa = _airTicketResRep._sqlSugar.SqlQueryable<OA2014_Visa>(sql).ToList();
+            string sql = string.Format(@" Select * From grouopExceed where id > 20 And id not in (26,27) ");
+            List<OA2014_grouopExceed> list_visa = _airTicketResRep._sqlSugar.SqlQueryable<OA2014_grouopExceed>(sql).ToList();
 
             _airTicketResRep.ChangeDataBase(DBEnum.OA2023DB);
+
+            Dictionary<int, int> dicDetail = new Dictionary<int, int>();
+            dicDetail.Add(789, 1034);
+            dicDetail.Add(790, 1035);
+            dicDetail.Add(791, 1036);
+            dicDetail.Add(792, 1037);
+            dicDetail.Add(793, 1038);
+            dicDetail.Add(794, 1039);
+            dicDetail.Add(795, 1040);
+            dicDetail.Add(796, 1041);
+            dicDetail.Add(797, 1042);
+            dicDetail.Add(798, 1043);
+            dicDetail.Add(801, 1044);
+            dicDetail.Add(802, 1045);
+            dicDetail.Add(803, 1046);
+
+            Dictionary<int, int> dic = new Dictionary<int, int>();
+            dic.Add(806, 1027);
+            dic.Add(807, 1028);
+            dic.Add(808, 1029);
+            dic.Add(809, 1030);
+            dic.Add(810, 1031);
+            dic.Add(811, 1032);
+            dic.Add(812, 1033);
+
+
             foreach (var item in list_visa)
             {
-                var result = await _grpScheduleRep._sqlSugar.Updateable<Grp_VisaInfo>()
-               .SetColumns(it => it.CreateUserId == item.Operator)
-               .Where(s => s.Id == item.Id)
+                Fin_GroupExtraCost temp = new Fin_GroupExtraCost();
+                temp.Coefficient = item.coefficient;
 
-               //.UpdateColumns(s => new { s.Duty, s.ExpectBeginDt, s.ExpectEndDt, s.JobContent, s.Remark, s.StepStatus })
-               .ExecuteCommandAsync();
+                DateTime dtCrt;
+                bool b1 = DateTime.TryParse(item.OperatorsDate, out dtCrt);
+                if (b1)
+                {
+                    temp.CreateTime = dtCrt;
+                }
+                else {
+                    temp.CreateTime = DateTime.Now;
+                }
+
+                temp.CreateUserId = item.Operators;
+                temp.DeleteTime = "";
+                temp.DeleteUserId = 0;
+                temp.DiId = int.Parse(item.DIID);
+                temp.FilePath = item.FilePath;
+                temp.IsDel = item.IsDel;
+                temp.Price = item.Price;
+                temp.PriceCount = 1;
+                temp.PriceCurrency = item.Currency;
+
+                int detailId = 0;
+                if (dicDetail.ContainsKey(item.PriceTypeDetail)) {
+                    detailId = dicDetail[item.PriceTypeDetail];
+                }
+                temp.PriceDetailType = detailId;
+
+                temp.PriceDt = DateTime.Now;
+                temp.PriceName = item.PriceName;
+                temp.PriceSum = item.Price;
+
+                int tid = 0;
+                if (dic.ContainsKey(item.PriceType))
+                {
+                    tid = dic[item.PriceType];
+                }
+                temp.PriceType = tid;
+
+                temp.Remark = item.Remark;
+
+                await _airTicketResRep.AddAsync<Fin_GroupExtraCost>(temp);
             }
 
             return Ok(JsonView(true, "操作成功!"));

+ 35 - 13
OASystem/OASystem.Domain/ViewModels/Financial/Fin_ForeignReceivablesView.cs

@@ -384,40 +384,62 @@ namespace OASystem.Domain.ViewModels.Financial
         /// <summary>
         /// 子项明细
         /// </summary>
-        public List<ProceedsReceivedInfoView>? prItem { get; set; }
+        public List<ClientFeeInfoView>? feeItem { get; set; }
     }
 
     /// <summary>
-    /// 已收详情 Info View
+    /// 单位应收已收详情 Info View
     /// 新增
     /// 雷怡 2024-01-08 11:01:55
     /// </summary>
-    public class ProceedsReceivedInfoView
+    public class ClientFeeInfoView
     {
         /// <summary>
-        /// 到款时间
+        /// 付款单位
         /// </summary>
-        public string time { get; set; }
+        public string client { get; set; }
 
         /// <summary>
-        /// 付款单位
+        /// 金额 - 应收
         /// </summary>
-        public string client { get; set; }
+        public string frMoney { get; set; }
+
+        /// <summary>
+        /// 汇率 - 应收
+        /// </summary>
+        public string frRate { get; set; }
+
+        /// <summary>
+        /// 币种 - 应收
+        /// </summary>
+        public string frCurrency { get; set; }
+
+
+        /// <summary>
+        /// 付款类型(转账,刷卡等) - 已收
+        /// </summary>
+        public string prReceivablesType { get; set; }
 
         /// <summary>
-        /// 付款金额
+        /// 到款时间 - 已收
         /// </summary>
-        public string money { get; set; }
+        public string prTime { get; set; }
 
         /// <summary>
-        /// 付款币种
+        /// 付款金额 - 已收
         /// </summary>
-        public string currency { get; set; }
+        public string prMoney { get; set; }
 
         /// <summary>
-        /// 付款类型(转账,刷卡等)
+        /// 付款币种 - 已收
         /// </summary>
-        public string receivablesType { get; set; }
+        public string prCurrency { get; set; }
+
+        /// <summary>
+        /// 尾款
+        /// </summary>
+        public string balPayment { get; set; }
+
     }
 
     #endregion

+ 128 - 0
OASystem/OASystem.Domain/ViewModels/OA2014DB.cs

@@ -593,4 +593,132 @@ namespace OASystem.Domain.ViewModels
         public int IsMatchCreditCard { get; set; }
 
     }
+
+    public class OA2014_grouopExceed
+    {
+        int id;
+
+        /// <summary>
+        /// 主键编号
+        /// </summary>
+        public int Id
+        {
+            get { return id; }
+            set { id = value; }
+        }
+
+        string dIID;
+
+        /// <summary>
+        /// 团组外键编号
+        /// </summary>
+        public string DIID
+        {
+            get { return dIID; }
+            set { dIID = value; }
+        }
+
+        string priceName;
+
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string PriceName
+        {
+            get { return priceName; }
+            set { priceName = value; }
+        }
+
+        decimal price;
+
+        /// <summary>
+        /// 费用金额
+        /// </summary>
+        public decimal Price
+        {
+            get { return price; }
+            set { price = value; }
+        }
+
+        int currency;
+
+        /// <summary>
+        /// 费用币种
+        /// </summary>
+        public int Currency
+        {
+            get { return currency; }
+            set { currency = value; }
+        }
+
+        string filePath;
+
+        /// <summary>
+        /// 附件地址
+        /// </summary>
+        public string FilePath
+        {
+            get { return filePath; }
+            set { filePath = value; }
+        }
+
+        string remark;
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark
+        {
+            get { return remark; }
+            set { remark = value; }
+        }
+
+        int operators;
+
+        /// <summary>
+        /// 操作人
+        /// </summary>
+        public int Operators
+        {
+            get { return operators; }
+            set { operators = value; }
+        }
+
+        string operatorsDate;
+
+        /// <summary>
+        /// 操作时间
+        /// </summary>
+        public string OperatorsDate
+        {
+            get { return operatorsDate; }
+            set { operatorsDate = value; }
+        }
+
+        int isDel;
+
+        /// <summary>
+        /// 删除标识
+        /// </summary>
+        public int IsDel
+        {
+            get { return isDel; }
+            set { isDel = value; }
+        }
+
+        /// <summary>
+        /// 费用类型
+        /// </summary>
+        public int PriceType { get; set; }
+
+        /// <summary>
+        /// 系数
+        /// </summary>
+        public decimal coefficient { get; set; }
+
+        /// <summary>
+        /// 费用详细类型
+        /// </summary>
+        public int PriceTypeDetail { get; set; }
+    }
 }