diff --git a/BBWY.Client/Models/APIModel/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs index 928b77cc..4b8bef83 100644 --- a/BBWY.Client/Models/APIModel/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs @@ -17,5 +17,7 @@ namespace BBWY.Client.Models public string OrderId { get; set; } public DateTime? PurchaseTime { get; set; } + + public Platform? PurchasePlatform { get; set; } } } diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index ff45003f..a21ed807 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -79,7 +79,8 @@ 已完成 = 4, 锁定 = 5, 已取消 = 6, - 暂停 = 7 + 暂停 = 7, + 已退款 = 8 } /// diff --git a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs index 22eb5d78..a915deb7 100644 --- a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs +++ b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs @@ -25,8 +25,6 @@ namespace BBWY.Client.ViewModels private bool isLoading; private bool isAudited; private bool isShowPayBillPanel; - //private bool isShowPurchaseOrderPanel; - //private bool isShowShopOrderPanel; private bool onlyException; private PurchaseOrderService purchaseOrderService; private Department selectedDepartment; @@ -53,16 +51,8 @@ namespace BBWY.Client.ViewModels public IList DepartmentList { get; set; } - //public IList AuditPurchaseOrderList { get; set; } - - //public IList AuditShopOrderList { get; set; } - public IList ShowAuditPayBillList { get; set; } - //public IList ShowAuditPurchaseOrderList { get; set; } - - //public IList ShowAuditShopOrderList { get; set; } - public AuditFile SelectAuditFile { get => selectAuditFile; set @@ -80,44 +70,8 @@ namespace BBWY.Client.ViewModels get => isShowPayBillPanel; set { Set(ref isShowPayBillPanel, value); - //if (Set(ref isShowPayBillPanel, value)) - //{ - // if (value) - // { - // IsShowPurchaseOrderPanel = false; - // IsShowShopOrderPanel = false; - // } - //} } } - //public bool IsShowPurchaseOrderPanel - //{ - // get => isShowPurchaseOrderPanel; set - // { - // if (Set(ref isShowPurchaseOrderPanel, value)) - // { - // if (value) - // { - // IsShowPayBillPanel = false; - // IsShowShopOrderPanel = false; - // } - // } - // } - //} - //public bool IsShowShopOrderPanel - //{ - // get => isShowShopOrderPanel; set - // { - // if (Set(ref isShowShopOrderPanel, value)) - // { - // if (value) - // { - // IsShowPayBillPanel = false; - // IsShowPurchaseOrderPanel = false; - // } - // } - // } - //} public bool OnlyException { @@ -207,10 +161,23 @@ namespace BBWY.Client.ViewModels if (!auditPurchaseOrderResponse.Success) throw new Exception($"获取采购单失败,{auditPurchaseOrderResponse.Msg}"); + //按日分组的pdd账单集合, key=日期 value=当日账单总额 + var pddPayBillDayDictionary = new Dictionary(); foreach (var payBill in AuditPayBillList) { - payBill.ErrorMessage = String.Empty; + payBill.ErrorMessage = string.Empty; + + #region 按日累计拼多多账单金额 + if (payBill.MerchantOrderNo.StartsWith("XP")) + { + if (!pddPayBillDayDictionary.TryGetValue(payBill.PayTime.Value.Date, out decimal pddTotalPurchaseAmount)) + pddPayBillDayDictionary.Add(payBill.PayTime.Value.Date, 0); + pddTotalPurchaseAmount += Math.Abs(payBill.ExpenditureAmount); + pddPayBillDayDictionary[payBill.PayTime.Value.Date] = pddTotalPurchaseAmount; + } + #endregion + #region 匹配采购单 var relationPurchaseOrder = auditPurchaseOrderResponse.Data.FirstOrDefault(p => p.PurchaseOrderId == payBill.MerchantOrderNo || p.MerchantOrderId == payBill.MerchantOrderNo); @@ -239,6 +206,22 @@ namespace BBWY.Client.ViewModels payBill.AuditCapitalType = AuditCapitalType.商品采购; #endregion } + + #region 按日比较拼多多账单金额和采购单金额 + foreach (var key in pddPayBillDayDictionary) + { + var purchaseAmount = auditPurchaseOrderResponse.Data.Where(p => p.PurchaseTime.Value.Date == key.Key && + p.PurchasePlatform == Platform.拼多多).Sum(p => p.PurchaseAmount); + if (key.Value != purchaseAmount) + { + var currentDayPddPayBillList = AuditPayBillList.Where(p => p.PayTime.Value.Date == key.Key.Date && + p.MerchantOrderNo.StartsWith("XP") && + string.IsNullOrEmpty(p.RelationPurchaseOrderId)); + foreach (var payBill in currentDayPddPayBillList) + payBill.ErrorMessage = $"{key.Key:yyyy-MM-dd}账单金额与采购单不匹配"; + } + } + #endregion } catch (Exception ex) { @@ -278,16 +261,6 @@ namespace BBWY.Client.ViewModels return ("文件已存在", string.Empty, null); try { - //var dt = new DataTable(); - //using (var reader = File.OpenText(filePath)) - //{ - // using (var csv = new CsvHelper.CsvReader(reader, CultureInfo.InvariantCulture)) - // using (var dataReader = new CsvHelper.CsvDataReader(csv)) - // { - // dt.Load(dataReader); - // } - //} - var lines = File.ReadAllLines(filePath, Encoding.GetEncoding("GB2312")).ToList(); AuditFileList.Add(new AuditFile() { FileName = fileName, AuditFileType = auditFileType }); return (string.Empty, fileName, lines); @@ -341,12 +314,8 @@ namespace BBWY.Client.ViewModels { var array = line.CSVstrToArry(); var sourceMerchantOrderNo = array[2].FormatString(); - //if (!string.IsNullOrEmpty(sourceMerchantOrderNo)) - // continue; //暂时不支持此类商户单号 var incomeAmount = decimal.Parse(array[6].FormatString()); var expenditureAmount = decimal.Parse(array[7].FormatString()); - //if (expenditureAmount == 0) //支出为0的账单不参与审计 - // continue; payBillNo = array[0].FormatString(); if (AuditPayBillList.Any(p => p.PayBillNo == payBillNo)) continue; @@ -364,7 +333,8 @@ namespace BBWY.Client.ViewModels Remark = array[11] }; payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo; - + if (payBill.MerchantOrderNo == null) + payBill.MerchantOrderNo = ""; if (payBill.SourceMerchantOrderNo.StartsWith("T50060NP")) { payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(8); diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 8a6ae1f9..2b92c914 100644 --- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -310,7 +310,8 @@ namespace BBWY.Server.Business PurchaseOrderId = ods.PurchaseOrderId, MerchantOrderId = ods.MerchantOrderId, ShopId = o.ShopId, - PurchaseTime = ods.CreateTime + PurchaseTime = ods.CreateTime, + PurchasePlatform = ods.PurchasePlatform }); } diff --git a/BBWY.Server.Model/Dto/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs b/BBWY.Server.Model/Dto/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs index beb04c70..77bca8b7 100644 --- a/BBWY.Server.Model/Dto/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs +++ b/BBWY.Server.Model/Dto/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs @@ -17,5 +17,10 @@ namespace BBWY.Server.Model.Dto public string OrderId { get; set; } public DateTime? PurchaseTime { get; set; } + + /// + /// 采购平台 + /// + public Enums.Platform? PurchasePlatform { get; set; } } } diff --git a/BBWY.Server.Model/Enums.cs b/BBWY.Server.Model/Enums.cs index 79af52e2..7c01242f 100644 --- a/BBWY.Server.Model/Enums.cs +++ b/BBWY.Server.Model/Enums.cs @@ -81,7 +81,8 @@ 已完成 = 4, 锁定 = 5, 已取消 = 6, - 暂停 = 7 + 暂停 = 7, + 已退款 = 8 } ///