|
@ -25,8 +25,6 @@ namespace BBWY.Client.ViewModels |
|
|
private bool isLoading; |
|
|
private bool isLoading; |
|
|
private bool isAudited; |
|
|
private bool isAudited; |
|
|
private bool isShowPayBillPanel; |
|
|
private bool isShowPayBillPanel; |
|
|
//private bool isShowPurchaseOrderPanel;
|
|
|
|
|
|
//private bool isShowShopOrderPanel;
|
|
|
|
|
|
private bool onlyException; |
|
|
private bool onlyException; |
|
|
private PurchaseOrderService purchaseOrderService; |
|
|
private PurchaseOrderService purchaseOrderService; |
|
|
private Department selectedDepartment; |
|
|
private Department selectedDepartment; |
|
@ -53,16 +51,8 @@ namespace BBWY.Client.ViewModels |
|
|
|
|
|
|
|
|
public IList<Department> DepartmentList { get; set; } |
|
|
public IList<Department> DepartmentList { get; set; } |
|
|
|
|
|
|
|
|
//public IList<AuditPurchaseOrder> AuditPurchaseOrderList { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
//public IList<AuditShopOrder> AuditShopOrderList { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public IList<AuditPayBill> ShowAuditPayBillList { get; set; } |
|
|
public IList<AuditPayBill> ShowAuditPayBillList { get; set; } |
|
|
|
|
|
|
|
|
//public IList<AuditPurchaseOrder> ShowAuditPurchaseOrderList { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
//public IList<AuditShopOrder> ShowAuditShopOrderList { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public AuditFile SelectAuditFile |
|
|
public AuditFile SelectAuditFile |
|
|
{ |
|
|
{ |
|
|
get => selectAuditFile; set |
|
|
get => selectAuditFile; set |
|
@ -80,44 +70,8 @@ namespace BBWY.Client.ViewModels |
|
|
get => isShowPayBillPanel; set |
|
|
get => isShowPayBillPanel; set |
|
|
{ |
|
|
{ |
|
|
Set(ref isShowPayBillPanel, value); |
|
|
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 |
|
|
public bool OnlyException |
|
|
{ |
|
|
{ |
|
@ -207,10 +161,23 @@ namespace BBWY.Client.ViewModels |
|
|
if (!auditPurchaseOrderResponse.Success) |
|
|
if (!auditPurchaseOrderResponse.Success) |
|
|
throw new Exception($"获取采购单失败,{auditPurchaseOrderResponse.Msg}"); |
|
|
throw new Exception($"获取采购单失败,{auditPurchaseOrderResponse.Msg}"); |
|
|
|
|
|
|
|
|
|
|
|
//按日分组的pdd账单集合, key=日期 value=当日账单总额
|
|
|
|
|
|
var pddPayBillDayDictionary = new Dictionary<DateTime, decimal>(); |
|
|
|
|
|
|
|
|
foreach (var payBill in AuditPayBillList) |
|
|
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 匹配采购单
|
|
|
#region 匹配采购单
|
|
|
var relationPurchaseOrder = auditPurchaseOrderResponse.Data.FirstOrDefault(p => p.PurchaseOrderId == payBill.MerchantOrderNo || |
|
|
var relationPurchaseOrder = auditPurchaseOrderResponse.Data.FirstOrDefault(p => p.PurchaseOrderId == payBill.MerchantOrderNo || |
|
|
p.MerchantOrderId == payBill.MerchantOrderNo); |
|
|
p.MerchantOrderId == payBill.MerchantOrderNo); |
|
@ -239,6 +206,22 @@ namespace BBWY.Client.ViewModels |
|
|
payBill.AuditCapitalType = AuditCapitalType.商品采购; |
|
|
payBill.AuditCapitalType = AuditCapitalType.商品采购; |
|
|
#endregion
|
|
|
#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) |
|
|
catch (Exception ex) |
|
|
{ |
|
|
{ |
|
@ -278,16 +261,6 @@ namespace BBWY.Client.ViewModels |
|
|
return ("文件已存在", string.Empty, null); |
|
|
return ("文件已存在", string.Empty, null); |
|
|
try |
|
|
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(); |
|
|
var lines = File.ReadAllLines(filePath, Encoding.GetEncoding("GB2312")).ToList(); |
|
|
AuditFileList.Add(new AuditFile() { FileName = fileName, AuditFileType = auditFileType }); |
|
|
AuditFileList.Add(new AuditFile() { FileName = fileName, AuditFileType = auditFileType }); |
|
|
return (string.Empty, fileName, lines); |
|
|
return (string.Empty, fileName, lines); |
|
@ -341,12 +314,8 @@ namespace BBWY.Client.ViewModels |
|
|
{ |
|
|
{ |
|
|
var array = line.CSVstrToArry(); |
|
|
var array = line.CSVstrToArry(); |
|
|
var sourceMerchantOrderNo = array[2].FormatString(); |
|
|
var sourceMerchantOrderNo = array[2].FormatString(); |
|
|
//if (!string.IsNullOrEmpty(sourceMerchantOrderNo))
|
|
|
|
|
|
// continue; //暂时不支持此类商户单号
|
|
|
|
|
|
var incomeAmount = decimal.Parse(array[6].FormatString()); |
|
|
var incomeAmount = decimal.Parse(array[6].FormatString()); |
|
|
var expenditureAmount = decimal.Parse(array[7].FormatString()); |
|
|
var expenditureAmount = decimal.Parse(array[7].FormatString()); |
|
|
//if (expenditureAmount == 0) //支出为0的账单不参与审计
|
|
|
|
|
|
// continue;
|
|
|
|
|
|
payBillNo = array[0].FormatString(); |
|
|
payBillNo = array[0].FormatString(); |
|
|
if (AuditPayBillList.Any(p => p.PayBillNo == payBillNo)) |
|
|
if (AuditPayBillList.Any(p => p.PayBillNo == payBillNo)) |
|
|
continue; |
|
|
continue; |
|
@ -364,7 +333,8 @@ namespace BBWY.Client.ViewModels |
|
|
Remark = array[11] |
|
|
Remark = array[11] |
|
|
}; |
|
|
}; |
|
|
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo; |
|
|
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo; |
|
|
|
|
|
if (payBill.MerchantOrderNo == null) |
|
|
|
|
|
payBill.MerchantOrderNo = ""; |
|
|
if (payBill.SourceMerchantOrderNo.StartsWith("T50060NP")) |
|
|
if (payBill.SourceMerchantOrderNo.StartsWith("T50060NP")) |
|
|
{ |
|
|
{ |
|
|
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(8); |
|
|
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(8); |
|
|