Browse Source

1、团组报表-->应收-->显示逻辑调整

amigotrip 7 months ago
parent
commit
cdfb288661

+ 12 - 3
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -2099,7 +2099,7 @@ namespace OASystem.API.Controllers
             {
                 if (_hotelSubIds.Count > 1)
                 {
-                    var hrIds = _sqlSugar.Queryable<Grp_HotelReservationsContent>().Where(it => _hotelSubIds.Contains(it.Id)).Select(it => it.HrId).Distinct().ToList();
+                    var hrIds = _sqlSugar.Queryable<Grp_HotelReservationsContent>().Where(it => _hotelSubIds.Contains(it.Id) && it.Price != 0).Select(it => it.HrId).Distinct().ToList();
 
 
                     var hrIds1 = _sqlSugar.Queryable<Grp_CreditCardPayment>().Where(it => it.CTable == 76 && hrIds.Contains(it.CId)).Select(it => it.Id).ToList();
@@ -2135,7 +2135,7 @@ namespace OASystem.API.Controllers
             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 hotelContentDatas = _sqlSugar.Queryable<Grp_HotelReservationsContent>().Where(it => it.IsDel == 0 && it.IsPay == 0 && groupIds.Contains(it.DiId)).ToList();
+            var hotelContentDatas = _sqlSugar.Queryable<Grp_HotelReservationsContent>().Where(it => it.IsDel == 0 && it.IsPay == 0 && it.Price != 0 && groupIds.Contains(it.DiId)).ToList();
             var opDatas = _sqlSugar.Queryable<Grp_CarTouristGuideGroundReservations>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
             var visaDatas = _sqlSugar.Queryable<Grp_VisaInfo>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DIId)).ToList();
             var ioaDatas = _sqlSugar.Queryable<Grp_InvitationOfficialActivities>().Where(it => it.IsDel == 0 && groupIds.Contains(it.DiId)).ToList();
@@ -2312,7 +2312,16 @@ namespace OASystem.API.Controllers
                             string remaksDescription1 = $"【{childInfo1.PayType}】【{childInfo1.ModuleName}】{rouNumber}、[申请人:{childInfo1.Applicant}]{subPriceName}[收款方:{childInfo1.Payee}] {childInfo1.PayCurrCode} {_PaymentAmount1.ToString("#0.00")}、CNY:{childInfo1.CNYSubTotalAmount.ToString("#0.00")}(团组:{groupInfo.TeamName})";
 
                             childInfo1.RemaksDescription = remaksDescription1;
-                            childInfos.Add(childInfo1);
+
+                            if (status == 2)
+                            { 
+                                if (status1) 
+                                {
+                                    childInfos.Add(childInfo1);
+                                }
+                            }
+                            else childInfos.Add(childInfo1);
+
                             rouNumber++;
                         }
 

+ 101 - 29
OASystem/OASystem.Api/Controllers/StatisticsController.cs

@@ -199,14 +199,33 @@ namespace OASystem.API.Controllers
 
                 /*
                  * 应收报表
+                 * 增加方式=实际报价时 费用必须审核才能进入团组报表
                  */
                 decimal frTotalAmount = 0.00M;//应收总金额
-                string _frSql = string.Format(@"Select fr.Id,fr.Diid,fr.PriceName,fr.Price,fr.Count,fr.Unit,fr.Currency,
+                string _frSql = string.Format(@"Select fr.Id,fr.AddingWay,fr.Status,fr.Diid,fr.PriceName,fr.Price,fr.Count,fr.Unit,fr.Currency,
 										        sd.Name As CurrencyCode,sd.Remark As CurrencyName,fr.Rate,fr.ItemSumPrice,fr.CreateTime
 										        From Fin_ForeignReceivables fr
 										        Left Join Sys_SetData sd On fr.Currency = sd.Id
 										        Where fr.IsDel = 0 And fr.Diid = {0} Order By CreateTime", _dto.DiId);
-                List<Gsd_ForeignReceivablesView> _frViews = await _sqlSugar.SqlQueryable<Gsd_ForeignReceivablesView>(_frSql).ToListAsync();
+                List<Gsd_ForeignReceivablesView> _frViews1 = await _sqlSugar.SqlQueryable<Gsd_ForeignReceivablesView>(_frSql).ToListAsync();
+
+
+                List<Gsd_ForeignReceivablesView> _frViews = new List<Gsd_ForeignReceivablesView>();
+                if (_frViews1.Count > 0)
+                {
+                    _frViews.AddRange(_frViews1.Where(x => x.AddingWay != 2).ToList());
+                    _frViews.AddRange(_frViews1.Where(x => x.AddingWay == 2 && x.Status == 1).ToList());
+                }
+
+                _frViews.ForEach(x =>
+                {
+                    string namePrefix = string.Empty;
+                    if (x.AddingWay == 0) namePrefix = $"账单模块-";
+                    else if (x.AddingWay == 1) namePrefix = $"成本预算模块-";
+                    else if (x.AddingWay == 2) namePrefix = $"实际报价-";
+                    x.PriceName = $"{namePrefix}{x.PriceName}";
+                });
+
                 frTotalAmount = _frViews.Sum(it => it.ItemSumPrice);
                 _giView.Receivables = _frViews;
                 _giView.ReceivableStr = string.Format(@"应收款合计:{0} CNY(人民币)", frTotalAmount.ConvertToDecimal1().ToString("#0.00"));
@@ -413,7 +432,7 @@ namespace OASystem.API.Controllers
 
                 //ccp.RMBPrice As CNYPrice
                 //(((ccp.PayMoney * ccp.DayRate) / ccp.PayPercentage) * 100) As CNYPrice
-                string hotelFeeSql = string.Format(@"Select hr.Id As HrId,hr.DiId As HrDiId,hr.City,hr.HotelName,hr.CheckInDate,hr.CheckOutDate,
+                string hotelFeeSql = string.Format(@"Select hr.Id As HrId,hr.DiId As HrDiId,hr.City,hr.HotelName,hr.CheckInDate,hr.CheckOutDate,hr.CardPrice As RoomPrice,
                                                      sd1.Name As PaymentCurrency,hr.SingleRoomPrice,hr.SingleRoomCount,hr.DoubleRoomPrice,
                                                      hr.DoubleRoomCount,hr.SuiteRoomPrice,hr.SuiteRoomCount,hr.OtherRoomPrice,hr.OtherRoomCount,
                                                      hr.BreakfastPrice,sd4.Name As BreakfastCurrency,hr.Isoppay,hr.GovernmentRent,
@@ -443,58 +462,108 @@ namespace OASystem.API.Controllers
                 var teamRateData = await _teamRateRep.PostGroupRateInfoByDiId(_dto.DiId);
                 foreach (var item in groupHotelFeeViews)
                 {
-                    var roomData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 1); //房费 
-                    item.RoomPrice = roomData?.Price ?? 0.00M;
-                    item.RoomPriceCurrency = _setDatas.Find(it => it.Id == roomData?.Currency)?.Name;
-                    string feeMark1 = roomData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
-                    string isFeeMark1 = roomData?.IsOppay == 1 ? "是" : "否";
-                    item.RoomInfoTips = @$"当时汇率:{roomData?.Rate.ToString("#0.0000")} <br/>
+                    if (groupHotelContentFeeViews.Count > 0)
+                    {
+
+                        string paymentStr = string.Empty;
+
+                        var roomData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 1); //房费 
+
+
+                        item.RoomPrice = roomData?.Price ?? 0.00M;
+                        if (item.RoomPrice != 0)
+                        {
+                            if (roomData.IsPay == 0) paymentStr += $"房费:未付款<br/>";
+
+                            item.RoomPriceCurrency = _setDatas.Find(it => it.Id == roomData?.Currency)?.Name;
+                            string feeMark1 = roomData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
+                            string isFeeMark1 = roomData?.IsOppay == 1 ? "是" : "否";
+                            item.RoomInfoTips = @$"当时汇率:{roomData?.Rate.ToString("#0.0000")} <br/>
                                            收款方:{roomData?.Payee}<br/>
                                            费用标识:{feeMark1} <br/>
                                            支付方式:{_setDatas.Find(it => it.Id == roomData?.PayDId)?.Name} <br/>
-                                           卡类型:{_setDatas.Find(it => it.Id == roomData?.CTDId)?.Name}
+                                           卡类型:{_setDatas.Find(it => it.Id == roomData?.CTDId)?.Name}<br/>
                                            是否由地接支付:{isFeeMark1} <br/>";
 
-                    var breakfastData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 2); //早餐 
-                    item.BreakfastPrice = breakfastData?.Price ?? 0.00M;
-                    item.BreakfastCurrency = _setDatas.Find(it => it.Id == breakfastData?.Currency)?.Name;
-                    string feeMark2 = breakfastData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
-                    string isFeeMark2 = breakfastData?.IsOppay == 1 ? "是" : "否";
-                    item.BreakfastInfoTips = @$"当时汇率:{breakfastData?.Rate.ToString("#0.0000")} <br/>
+                        }
+                        
+                        var breakfastData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 2); //早餐 
+
+                        item.BreakfastPrice = breakfastData?.Price ?? 0.00M;
+
+                        if (item.BreakfastPrice != 0)
+                        {
+                            if (breakfastData.IsPay == 0) paymentStr += $"早餐:未付款<br/>";
+
+                            item.BreakfastCurrency = _setDatas.Find(it => it.Id == breakfastData?.Currency)?.Name;
+                            string feeMark2 = breakfastData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
+                            string isFeeMark2 = breakfastData?.IsOppay == 1 ? "是" : "否";
+                            item.BreakfastInfoTips = @$"当时汇率:{breakfastData?.Rate.ToString("#0.0000")} <br/>
                                                 收款方:{breakfastData?.Payee}<br/>
                                                 费用标识:{feeMark2} <br/>
                                                 支付方式:{_setDatas.Find(it => it.Id == roomData?.PayDId)?.Name} <br/>
                                                 卡类型:{_setDatas.Find(it => it.Id == roomData?.CTDId)?.Name} <br/>
                                                 是否由地接支付:{isFeeMark2} <br/>";
+                        }
+
+                        var landTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 3); //地税
+
+                        item.GovernmentRent = landTaxData?.Price ?? 0.00M;
+
+                        if (item.GovernmentRent != 0)
+                        {
+                            if (landTaxData.IsPay == 0) paymentStr += $"地税:未付款<br/>";
 
-                    var landTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 3); //地税 
-                    item.GovernmentRent = landTaxData?.Price ?? 0.00M;
-                    item.GovernmentRentCurrency = _setDatas.Find(it => it.Id == landTaxData?.Currency)?.Name;
-                    string feeMark3 = landTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
-                    string isFeeMark3 = landTaxData?.IsOppay == 1 ? "是" : "否";
-                    item.GovernmentRentTips = @$"当时汇率:{landTaxData?.Rate.ToString("#0.0000")} <br/>
+                            item.GovernmentRentCurrency = _setDatas.Find(it => it.Id == landTaxData?.Currency)?.Name;
+                            string feeMark3 = landTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
+                            string isFeeMark3 = landTaxData?.IsOppay == 1 ? "是" : "否";
+                            item.GovernmentRentTips = @$"当时汇率:{landTaxData?.Rate.ToString("#0.0000")} <br/>
                                                  收款方:{landTaxData?.Payee}<br/>
                                                  费用标识:{feeMark3} <br/>
                                                  支付方式:{_setDatas.Find(it => it.Id == landTaxData?.PayDId)?.Name} <br/>
                                                  卡类型:{_setDatas.Find(it => it.Id == landTaxData?.CTDId)?.Name} <br/>
                                                  是否由地接支付:{isFeeMark3} <br/>";
+                        }
+                        
+                        var cityTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 4); //城市税 
+
+                        item.CityTax = cityTaxData?.Price ?? 0.00M;
 
-                    var cityTaxData = groupHotelContentFeeViews.Find(it => it.HrId == item.HrId && it.PriceType == 4); //城市税 
-                    item.CityTax = cityTaxData?.Price ?? 0.00M;
-                    item.CityTaxCurrency = _setDatas.Find(it => it.Id == cityTaxData?.Currency)?.Name;
-                    string feeMark4 = cityTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
-                    string isFeeMark4 = landTaxData?.IsOppay == 1 ? "是" : "否";
-                    item.CityTaxTips = @$"当时汇率:{cityTaxData?.Rate.ToString("#0.0000")} <br/>
+                        if (item.CityTax != 0)
+                        {
+                            if (cityTaxData.IsPay == 0) paymentStr += $"城市税:未付款<br/>";
+                            item.CityTaxCurrency = _setDatas.Find(it => it.Id == cityTaxData?.Currency)?.Name;
+                            string feeMark4 = cityTaxData?.OrbitalPrivateTransfer == 0 ? "公转" : "私转";
+                            string isFeeMark4 = landTaxData?.IsOppay == 1 ? "是" : "否";
+                            item.CityTaxTips = @$"当时汇率:{cityTaxData?.Rate.ToString("#0.0000")} <br/>
                                           收款方:{cityTaxData?.Payee}<br/>
                                           费用标识:{feeMark4} <br/>
                                           支付方式:{_setDatas.Find(it => it.Id == cityTaxData?.PayDId)?.Name} <br/>
                                           卡类型:{_setDatas.Find(it => it.Id == cityTaxData?.CTDId)?.Name} <br/>
                                           是否由地接支付:{isFeeMark4} <br/>";
+                        }
+
 
+                        if (!string.IsNullOrEmpty(paymentStr))
+                        {
+                            item.IsPay = 2;
+                            item.PayTips = paymentStr;
+                        }
+
+                    }
+                    else
+                    {
+                        decimal roomPrice = (item.SingleRoomCount * item.SingleRoomPrice) +
+                                            (item.DoubleRoomCount * item.DoubleRoomPrice) +
+                                            (item.SuiteRoomCount * item.SuiteRoomPrice) +
+                                            (item.OtherRoomCount * item.OtherRoomPrice);
+                        //item.RoomPrice = item.CardPrice;
+                        item.RoomPriceCurrency = item.PaymentCurrency;
+                    }
+                    
                     HotelCNYTotalPrice += item.CNYPrice;
                     item.PayMoney = item.PayMoney.ConvertToDecimal1();
                     item.CNYPrice = item.CNYPrice.ConvertToDecimal1();
-
                 }
 
                 _geView.GroupHotelFeeViews = groupHotelFeeViews;
@@ -3086,6 +3155,9 @@ Where dfp.IsDel = 0 And dfp.IsPay = 1
                                               .ToList();
                     });
 
+
+
+
                     return Ok(JsonView(true, "操作成功!", _view, total));
                 }
                 else if (_dto.Type == 2) //view

+ 8 - 0
OASystem/OASystem.Domain/ViewModels/Financial/Fin_DailyFeePaymentView.cs

@@ -516,6 +516,8 @@ namespace OASystem.Domain.ViewModels.Financial
     [SqlSugar.SugarTable("Fin_DailyFeePayment")]
     public class DailyFeePaymentRangeView
     {
+        public string ViewStr { get; set; }
+
         [SugarColumn(IsIgnore = true)]//需要加上
         public int RowIndex { get; set; } //行号 序号
         [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
@@ -542,7 +544,13 @@ namespace OASystem.Domain.ViewModels.Financial
     [SqlSugar.SugarTable("Fin_DailyFeePaymentContent")]
     public class DailyFeePaymentContentView
     {
+        /// <summary>
+        /// 示例:费用名称:[2024.07.11招商信用卡还款]   单价:[20000.00]   数量:[1.00]   小计:[20000.00]   备注:[]
+        /// </summary>
+        public string ViewStr { get {
 
+                return $"费用名称:[{PriceName}]   单价:[{Price.ToString("#0.00")}]   数量:[{Quantity.ToString("#0.00")}]   小计:[{ItemTotal.ToString("#0.00")}]   备注:[{Remark}]";
+            } }
         //[SugarColumn(IsIgnore = true)]//需要加上
         //public int RowIndex { get; set; } //行号 序号
         [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]

+ 9 - 3
OASystem/OASystem.Domain/ViewModels/Statistics/GroupStatementView.cs

@@ -193,6 +193,9 @@ namespace OASystem.Domain.ViewModels.Statistics
 
         public int diid { get; set; }
 
+        public int AddingWay { get; set; }
+
+        public int Status { get; set; }
         /// <summary>
         /// 费用名称
         /// </summary>
@@ -584,8 +587,6 @@ namespace OASystem.Domain.ViewModels.Statistics
         /// </summary>
         public string? CheckOutDate { get; set; }
 
-
-
         /// <summary>
         /// 单间价格
         /// </summary>
@@ -740,10 +741,15 @@ namespace OASystem.Domain.ViewModels.Statistics
 
         /// <summary>
         /// 是否支付
-        /// -1 未选择 0 未付款 1 已付款 
+        /// -1 未选择 0 未付款 1 已付款  2 其它费用子项未付款
         /// </summary>
         public int IsPay { get; set; }
 
+        /// <summary>
+        /// 
+        /// </summary>
+        public string PayTips { get; set; }
+
         /// <summary>
         /// 操作人
         /// </summary>