|
|
@ -1,5 +1,4 @@ |
|
|
|
using BBWY.Client.APIServices; |
|
|
|
using BBWY.Client.Extensions; |
|
|
|
using BBWY.Client.Models; |
|
|
|
using BBWY.Common.Models; |
|
|
|
using GalaSoft.MvvmLight.Command; |
|
|
@ -8,7 +7,6 @@ using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Collections.ObjectModel; |
|
|
|
using System.Data; |
|
|
|
using System.Globalization; |
|
|
|
using System.IO; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
@ -25,24 +23,29 @@ namespace BBWY.Client.ViewModels |
|
|
|
private bool isLoading; |
|
|
|
private bool isAudited; |
|
|
|
private bool isShowPayBillPanel; |
|
|
|
private bool isShowPurchaseOrderPanel; |
|
|
|
private bool isShowShopOrderPanel; |
|
|
|
//private bool isShowPurchaseOrderPanel;
|
|
|
|
//private bool isShowShopOrderPanel;
|
|
|
|
private bool onlyException; |
|
|
|
private ShopService shopService; |
|
|
|
private Department selectedDepartment; |
|
|
|
|
|
|
|
public Department SelectedDepartment { get => selectedDepartment; set { Set(ref selectedDepartment, value); } } |
|
|
|
|
|
|
|
public IList<AuditFile> AuditFileList { get; set; } |
|
|
|
|
|
|
|
public IList<AuditPayBill> AuditPayBillList { get; set; } |
|
|
|
|
|
|
|
public IList<AuditPurchaseOrder> AuditPurchaseOrderList { get; set; } |
|
|
|
public IList<Department> DepartmentList { get; set; } |
|
|
|
|
|
|
|
//public IList<AuditPurchaseOrder> AuditPurchaseOrderList { get; set; }
|
|
|
|
|
|
|
|
public IList<AuditShopOrder> AuditShopOrderList { get; set; } |
|
|
|
//public IList<AuditShopOrder> AuditShopOrderList { get; set; }
|
|
|
|
|
|
|
|
public IList<AuditPayBill> ShowAuditPayBillList { get; set; } |
|
|
|
|
|
|
|
public IList<AuditPurchaseOrder> ShowAuditPurchaseOrderList { get; set; } |
|
|
|
//public IList<AuditPurchaseOrder> ShowAuditPurchaseOrderList { get; set; }
|
|
|
|
|
|
|
|
public IList<AuditShopOrder> ShowAuditShopOrderList { get; set; } |
|
|
|
//public IList<AuditShopOrder> ShowAuditShopOrderList { get; set; }
|
|
|
|
|
|
|
|
public AuditFile SelectAuditFile |
|
|
|
{ |
|
|
@ -60,44 +63,45 @@ namespace BBWY.Client.ViewModels |
|
|
|
{ |
|
|
|
get => isShowPayBillPanel; set |
|
|
|
{ |
|
|
|
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; |
|
|
|
} |
|
|
|
} |
|
|
|
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 |
|
|
|
{ |
|
|
@ -126,33 +130,47 @@ namespace BBWY.Client.ViewModels |
|
|
|
ImportAliPayBillCommand = new RelayCommand(ImportAliPayBill); |
|
|
|
this.shopService = shopService; |
|
|
|
|
|
|
|
|
|
|
|
Import1688PurchaseOrderCommand = new RelayCommand(Import1688PurchaseOrder); |
|
|
|
|
|
|
|
|
|
|
|
ImportJDShopOrderCommand = new RelayCommand(ImportJDShopOrder); |
|
|
|
|
|
|
|
DepartmentList = new ObservableCollection<Department>(); |
|
|
|
AuditFileList = new ObservableCollection<AuditFile>(); |
|
|
|
AuditPayBillList = new List<AuditPayBill>(); |
|
|
|
AuditPurchaseOrderList = new List<AuditPurchaseOrder>(); |
|
|
|
AuditShopOrderList = new List<AuditShopOrder>(); |
|
|
|
//AuditPurchaseOrderList = new List<AuditPurchaseOrder>();
|
|
|
|
//AuditShopOrderList = new List<AuditShopOrder>();
|
|
|
|
ShowAuditPayBillList = new ObservableCollection<AuditPayBill>(); |
|
|
|
ShowAuditPurchaseOrderList = new ObservableCollection<AuditPurchaseOrder>(); |
|
|
|
ShowAuditShopOrderList = new ObservableCollection<AuditShopOrder>(); |
|
|
|
//ShowAuditPurchaseOrderList = new ObservableCollection<AuditPurchaseOrder>();
|
|
|
|
//ShowAuditShopOrderList = new ObservableCollection<AuditShopOrder>();
|
|
|
|
|
|
|
|
//AuditFileList.Add(new AuditFile() { FileName = "支付宝账单20220527.csv", AuditFileType = AuditFileType.账单 });
|
|
|
|
//AuditFileList.Add(new AuditFile() { FileName = "1688采购单20220527.csv", AuditFileType = AuditFileType.采购单 });
|
|
|
|
//AuditFileList.Add(new AuditFile() { FileName = "支付宝账单20220527.csv", AuditFileType = AuditFileType.销售订单 });
|
|
|
|
LoadDepartment(); |
|
|
|
} |
|
|
|
|
|
|
|
private void LoadDepartment() |
|
|
|
{ |
|
|
|
Task.Factory.StartNew(() => shopService.GetDepartmentList()).ContinueWith(t => |
|
|
|
{ |
|
|
|
var response = t.Result; |
|
|
|
if (!response.Success) |
|
|
|
{ |
|
|
|
App.Current.Dispatcher.Invoke(() => MessageBox.Show(response.Msg, "提示")); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
App.Current.Dispatcher.Invoke(() => |
|
|
|
{ |
|
|
|
foreach (var d in response.Data) |
|
|
|
DepartmentList.Add(d); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void Audit() |
|
|
|
{ |
|
|
|
if (IsLoading) |
|
|
|
return; |
|
|
|
if (AuditPayBillList.Count() == 0 || |
|
|
|
AuditPurchaseOrderList.Count() == 0 || |
|
|
|
AuditShopOrderList.Count() == 0) |
|
|
|
if (AuditPayBillList.Count() == 0) |
|
|
|
//AuditPurchaseOrderList.Count() == 0 ||
|
|
|
|
//AuditShopOrderList.Count() == 0)
|
|
|
|
{ |
|
|
|
MessageBox.Show("审核数据不全", "提示"); |
|
|
|
return; |
|
|
@ -167,7 +185,7 @@ namespace BBWY.Client.ViewModels |
|
|
|
Task.Factory.StartNew(() => |
|
|
|
{ |
|
|
|
AuditByPayBill(waitList[0]); |
|
|
|
AuditByPurchaseOrder(waitList[1]); |
|
|
|
//AuditByPurchaseOrder(waitList[1]);
|
|
|
|
}).ContinueWith(t => |
|
|
|
{ |
|
|
|
WaitHandle.WaitAll(waitList.ToArray(), -1); |
|
|
@ -188,51 +206,51 @@ namespace BBWY.Client.ViewModels |
|
|
|
{ |
|
|
|
foreach (var payBill in AuditPayBillList) |
|
|
|
{ |
|
|
|
#region 匹配采购单
|
|
|
|
var relationPurchaseOrder = AuditPurchaseOrderList.FirstOrDefault(p => p.PurchaseOrderId == payBill.MerchantOrderNo); |
|
|
|
if (relationPurchaseOrder == null) |
|
|
|
{ |
|
|
|
//未通过商户订单号找到采购单,则通过账单金额和日期匹配
|
|
|
|
relationPurchaseOrder = AuditPurchaseOrderList.FirstOrDefault(p => p.PayAmount == payBill.ExpenditureAmount && |
|
|
|
p.PayTime != null && payBill.PayTime != null && |
|
|
|
Math.Abs((payBill.PayTime.Value - p.PayTime.Value).TotalSeconds) <= 60); |
|
|
|
} |
|
|
|
if (relationPurchaseOrder == null) |
|
|
|
{ |
|
|
|
payBill.ErrorMessage = "未匹配采购单"; |
|
|
|
continue; |
|
|
|
} |
|
|
|
payBill.RelationPurchaseOrderId = relationPurchaseOrder.PurchaseOrderId; |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 匹配销售订单
|
|
|
|
var relationShopOrder = AuditShopOrderList.FirstOrDefault(o => (!string.IsNullOrEmpty(o.VenderRemark) && o.VenderRemark.Contains(relationPurchaseOrder.PurchaseOrderId)) || |
|
|
|
(o.Phone == relationPurchaseOrder.Phone && |
|
|
|
o.ContactName == relationPurchaseOrder.ContactName && |
|
|
|
o.PayTime != null && relationPurchaseOrder.PayTime != null && |
|
|
|
(relationPurchaseOrder.PayTime.Value - o.PayTime.Value).TotalDays <= 2)); |
|
|
|
if (relationShopOrder == null) |
|
|
|
{ |
|
|
|
payBill.ErrorMessage = "未匹配销售订单"; |
|
|
|
continue; |
|
|
|
} |
|
|
|
payBill.RelationShopOrderId = relationShopOrder.OrderId; |
|
|
|
#endregion
|
|
|
|
//#region 匹配采购单
|
|
|
|
//var relationPurchaseOrder = AuditPurchaseOrderList.FirstOrDefault(p => p.PurchaseOrderId == payBill.MerchantOrderNo);
|
|
|
|
//if (relationPurchaseOrder == null)
|
|
|
|
//{
|
|
|
|
// //未通过商户订单号找到采购单,则通过账单金额和日期匹配
|
|
|
|
// relationPurchaseOrder = AuditPurchaseOrderList.FirstOrDefault(p => p.PayAmount == payBill.ExpenditureAmount &&
|
|
|
|
// p.PayTime != null && payBill.PayTime != null &&
|
|
|
|
// Math.Abs((payBill.PayTime.Value - p.PayTime.Value).TotalSeconds) <= 60);
|
|
|
|
//}
|
|
|
|
//if (relationPurchaseOrder == null)
|
|
|
|
//{
|
|
|
|
// payBill.ErrorMessage = "未匹配采购单";
|
|
|
|
// continue;
|
|
|
|
//}
|
|
|
|
//payBill.RelationPurchaseOrderId = relationPurchaseOrder.PurchaseOrderId;
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
//#region 匹配销售订单
|
|
|
|
//var relationShopOrder = AuditShopOrderList.FirstOrDefault(o => (!string.IsNullOrEmpty(o.VenderRemark) && o.VenderRemark.Contains(relationPurchaseOrder.PurchaseOrderId)) ||
|
|
|
|
// (o.Phone == relationPurchaseOrder.Phone &&
|
|
|
|
// o.ContactName == relationPurchaseOrder.ContactName &&
|
|
|
|
// o.PayTime != null && relationPurchaseOrder.PayTime != null &&
|
|
|
|
// (relationPurchaseOrder.PayTime.Value - o.PayTime.Value).TotalDays <= 2));
|
|
|
|
//if (relationShopOrder == null)
|
|
|
|
//{
|
|
|
|
// payBill.ErrorMessage = "未匹配销售订单";
|
|
|
|
// continue;
|
|
|
|
//}
|
|
|
|
//payBill.RelationShopOrderId = relationShopOrder.OrderId;
|
|
|
|
//#endregion
|
|
|
|
} |
|
|
|
|
|
|
|
var relationShoporderIds = AuditPayBillList.Where(p => !string.IsNullOrEmpty(p.RelationShopOrderId)).Select(p => p.RelationShopOrderId).ToList(); |
|
|
|
var belongResponse = shopService.GetOrderBelongShop(relationShoporderIds); |
|
|
|
if (!belongResponse.Success || belongResponse.Data.Count() == 0) |
|
|
|
return; |
|
|
|
//var relationShoporderIds = AuditPayBillList.Where(p => !string.IsNullOrEmpty(p.RelationShopOrderId)).Select(p => p.RelationShopOrderId).ToList();
|
|
|
|
//var belongResponse = shopService.GetOrderBelongShop(relationShoporderIds);
|
|
|
|
//if (!belongResponse.Success || belongResponse.Data.Count() == 0)
|
|
|
|
// return;
|
|
|
|
|
|
|
|
foreach (var payBill in AuditPayBillList) |
|
|
|
{ |
|
|
|
if (string.IsNullOrEmpty(payBill.RelationShopOrderId)) |
|
|
|
continue; |
|
|
|
var belongShop = belongResponse.Data.FirstOrDefault(x => x.OrderIdList.Contains(payBill.RelationShopOrderId)); |
|
|
|
if (belongShop != null) |
|
|
|
payBill.BelongShop = belongShop.ShopName; |
|
|
|
} |
|
|
|
//foreach (var payBill in AuditPayBillList)
|
|
|
|
//{
|
|
|
|
// if (string.IsNullOrEmpty(payBill.RelationShopOrderId))
|
|
|
|
// continue;
|
|
|
|
// var belongShop = belongResponse.Data.FirstOrDefault(x => x.OrderIdList.Contains(payBill.RelationShopOrderId));
|
|
|
|
// if (belongShop != null)
|
|
|
|
// payBill.BelongShop = belongShop.ShopName;
|
|
|
|
//}
|
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
@ -244,85 +262,85 @@ namespace BBWY.Client.ViewModels |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void AuditByPurchaseOrder(EventWaitHandle ewh) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
foreach (var purchaseOrder in AuditPurchaseOrderList) |
|
|
|
{ |
|
|
|
#region 匹配账单
|
|
|
|
var relationPayBill = AuditPayBillList.FirstOrDefault(b => b.MerchantOrderNo == purchaseOrder.PurchaseOrderId); |
|
|
|
if (relationPayBill == null) |
|
|
|
{ |
|
|
|
//未通过商户订单号找到采购单,则通过账单金额和日期匹配
|
|
|
|
relationPayBill = AuditPayBillList.FirstOrDefault(b => purchaseOrder.PayAmount == b.ExpenditureAmount && |
|
|
|
purchaseOrder.PayTime != null && b.PayTime != null && |
|
|
|
Math.Abs((b.PayTime.Value - purchaseOrder.PayTime.Value).TotalSeconds) <= 60); |
|
|
|
} |
|
|
|
if (relationPayBill == null) |
|
|
|
{ |
|
|
|
purchaseOrder.ErrorMessage = "未匹配支付账单"; |
|
|
|
continue; |
|
|
|
} |
|
|
|
purchaseOrder.RelationPayBillNo = relationPayBill.PayBillNo; |
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 匹配销售单
|
|
|
|
var relationShopOrder = AuditShopOrderList.FirstOrDefault(o => (!string.IsNullOrEmpty(o.VenderRemark) && o.VenderRemark.Contains(purchaseOrder.PurchaseOrderId)) || |
|
|
|
(o.Phone == purchaseOrder.Phone && |
|
|
|
o.ContactName == purchaseOrder.ContactName && |
|
|
|
o.PayTime != null && purchaseOrder.PayTime != null && |
|
|
|
(purchaseOrder.PayTime.Value - o.PayTime.Value).TotalDays <= 2)); |
|
|
|
if (relationShopOrder == null) |
|
|
|
{ |
|
|
|
purchaseOrder.ErrorMessage = "未匹配销售订单"; |
|
|
|
continue; |
|
|
|
} |
|
|
|
purchaseOrder.RelationShopOrderId = relationShopOrder.OrderId; |
|
|
|
#endregion
|
|
|
|
} |
|
|
|
|
|
|
|
var relationShopOrderIds = AuditPurchaseOrderList.Where(p => !string.IsNullOrEmpty(p.RelationShopOrderId)).Select(p => p.RelationShopOrderId).ToList(); |
|
|
|
var belongResponse = shopService.GetOrderBelongShop(relationShopOrderIds); |
|
|
|
if (!belongResponse.Success || belongResponse.Data.Count() == 0) |
|
|
|
return; |
|
|
|
foreach (var purchaseOrder in AuditPurchaseOrderList) |
|
|
|
{ |
|
|
|
if (string.IsNullOrEmpty(purchaseOrder.RelationShopOrderId)) |
|
|
|
continue; |
|
|
|
var belongShop = belongResponse.Data.FirstOrDefault(x => x.OrderIdList.Contains(purchaseOrder.RelationShopOrderId)); |
|
|
|
if (belongShop != null) |
|
|
|
purchaseOrder.BelongShop = belongShop.ShopName; |
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
App.Current.Dispatcher.Invoke(() => MessageBox.Show(ex.Message, "采购单匹配")); |
|
|
|
} |
|
|
|
finally |
|
|
|
{ |
|
|
|
ewh.Set(); |
|
|
|
} |
|
|
|
} |
|
|
|
//private void AuditByPurchaseOrder(EventWaitHandle ewh)
|
|
|
|
//{
|
|
|
|
// try
|
|
|
|
// {
|
|
|
|
// foreach (var purchaseOrder in AuditPurchaseOrderList)
|
|
|
|
// {
|
|
|
|
// #region 匹配账单
|
|
|
|
// var relationPayBill = AuditPayBillList.FirstOrDefault(b => b.MerchantOrderNo == purchaseOrder.PurchaseOrderId);
|
|
|
|
// if (relationPayBill == null)
|
|
|
|
// {
|
|
|
|
// //未通过商户订单号找到采购单,则通过账单金额和日期匹配
|
|
|
|
// relationPayBill = AuditPayBillList.FirstOrDefault(b => purchaseOrder.PayAmount == b.ExpenditureAmount &&
|
|
|
|
// purchaseOrder.PayTime != null && b.PayTime != null &&
|
|
|
|
// Math.Abs((b.PayTime.Value - purchaseOrder.PayTime.Value).TotalSeconds) <= 60);
|
|
|
|
// }
|
|
|
|
// if (relationPayBill == null)
|
|
|
|
// {
|
|
|
|
// purchaseOrder.ErrorMessage = "未匹配支付账单";
|
|
|
|
// continue;
|
|
|
|
// }
|
|
|
|
// purchaseOrder.RelationPayBillNo = relationPayBill.PayBillNo;
|
|
|
|
// #endregion
|
|
|
|
|
|
|
|
// #region 匹配销售单
|
|
|
|
// var relationShopOrder = AuditShopOrderList.FirstOrDefault(o => (!string.IsNullOrEmpty(o.VenderRemark) && o.VenderRemark.Contains(purchaseOrder.PurchaseOrderId)) ||
|
|
|
|
// (o.Phone == purchaseOrder.Phone &&
|
|
|
|
// o.ContactName == purchaseOrder.ContactName &&
|
|
|
|
// o.PayTime != null && purchaseOrder.PayTime != null &&
|
|
|
|
// (purchaseOrder.PayTime.Value - o.PayTime.Value).TotalDays <= 2));
|
|
|
|
// if (relationShopOrder == null)
|
|
|
|
// {
|
|
|
|
// purchaseOrder.ErrorMessage = "未匹配销售订单";
|
|
|
|
// continue;
|
|
|
|
// }
|
|
|
|
// purchaseOrder.RelationShopOrderId = relationShopOrder.OrderId;
|
|
|
|
// #endregion
|
|
|
|
// }
|
|
|
|
|
|
|
|
// var relationShopOrderIds = AuditPurchaseOrderList.Where(p => !string.IsNullOrEmpty(p.RelationShopOrderId)).Select(p => p.RelationShopOrderId).ToList();
|
|
|
|
// var belongResponse = shopService.GetOrderBelongShop(relationShopOrderIds);
|
|
|
|
// if (!belongResponse.Success || belongResponse.Data.Count() == 0)
|
|
|
|
// return;
|
|
|
|
// foreach (var purchaseOrder in AuditPurchaseOrderList)
|
|
|
|
// {
|
|
|
|
// if (string.IsNullOrEmpty(purchaseOrder.RelationShopOrderId))
|
|
|
|
// continue;
|
|
|
|
// var belongShop = belongResponse.Data.FirstOrDefault(x => x.OrderIdList.Contains(purchaseOrder.RelationShopOrderId));
|
|
|
|
// if (belongShop != null)
|
|
|
|
// purchaseOrder.BelongShop = belongShop.ShopName;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// catch (Exception ex)
|
|
|
|
// {
|
|
|
|
// App.Current.Dispatcher.Invoke(() => MessageBox.Show(ex.Message, "采购单匹配"));
|
|
|
|
// }
|
|
|
|
// finally
|
|
|
|
// {
|
|
|
|
// ewh.Set();
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
|
|
|
|
private void ClearAudit() |
|
|
|
{ |
|
|
|
SelectAuditFile = null; |
|
|
|
AuditFileList.Clear(); |
|
|
|
AuditPayBillList.Clear(); |
|
|
|
AuditPurchaseOrderList.Clear(); |
|
|
|
AuditShopOrderList.Clear(); |
|
|
|
//AuditPurchaseOrderList.Clear();
|
|
|
|
//AuditShopOrderList.Clear();
|
|
|
|
ShowAuditPayBillList.Clear(); |
|
|
|
ShowAuditPurchaseOrderList.Clear(); |
|
|
|
ShowAuditShopOrderList.Clear(); |
|
|
|
//ShowAuditPurchaseOrderList.Clear();
|
|
|
|
//ShowAuditShopOrderList.Clear();
|
|
|
|
IsAudited = false; |
|
|
|
IsShowPayBillPanel = false; |
|
|
|
IsShowPurchaseOrderPanel = false; |
|
|
|
IsShowShopOrderPanel = false; |
|
|
|
//IsShowPurchaseOrderPanel = false;
|
|
|
|
//IsShowShopOrderPanel = false;
|
|
|
|
OnlyException = false; |
|
|
|
} |
|
|
|
|
|
|
|
private (string ErrorMessage, string FileName, DataTable DataTable) ImportAuditFile(AuditFileType auditFileType) |
|
|
|
private (string ErrorMessage, string FileName, List<string> Lines) ImportAuditFile(AuditFileType auditFileType) |
|
|
|
{ |
|
|
|
var ofd = new OpenFileDialog() { Filter = "CSV Files (*.csv)|*.csv" }; |
|
|
|
if (ofd.ShowDialog() != true) |
|
|
@ -333,19 +351,19 @@ 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 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 }); |
|
|
|
return (string.Empty, fileName, dt); |
|
|
|
return (string.Empty, fileName, lines); |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
@ -364,7 +382,7 @@ namespace BBWY.Client.ViewModels |
|
|
|
MessageBox.Show(importResult.ErrorMessage, "导入支付宝账单"); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (importResult.DataTable == null || importResult.DataTable.Rows.Count == 0) |
|
|
|
if (importResult.Lines == null || importResult.Lines.Count == 0) |
|
|
|
return; |
|
|
|
//忽略前5行
|
|
|
|
/* |
|
|
@ -429,109 +447,6 @@ namespace BBWY.Client.ViewModels |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 导入1688采购单
|
|
|
|
/// </summary>
|
|
|
|
private void Import1688PurchaseOrder() |
|
|
|
{ |
|
|
|
var importResult = ImportAuditFile(AuditFileType.采购单); |
|
|
|
if (!string.IsNullOrEmpty(importResult.ErrorMessage)) |
|
|
|
{ |
|
|
|
MessageBox.Show(importResult.ErrorMessage, "导入1688采购单"); |
|
|
|
return; |
|
|
|
} |
|
|
|
if (importResult.DataTable == null || importResult.DataTable.Rows.Count == 0) |
|
|
|
return; |
|
|
|
|
|
|
|
//去掉列名
|
|
|
|
//importResult.Lines.RemoveAt(0);
|
|
|
|
|
|
|
|
var purchaseOrderId = ""; |
|
|
|
try |
|
|
|
{ |
|
|
|
//foreach (var line in importResult.DataTable)
|
|
|
|
//{
|
|
|
|
// var array = line.CSVstrToArry();
|
|
|
|
// purchaseOrderId = array[0].FormatString();
|
|
|
|
// if (string.IsNullOrEmpty(purchaseOrderId) || AuditPurchaseOrderList.Any(p => p.PurchaseOrderId == purchaseOrderId))
|
|
|
|
// continue;
|
|
|
|
// var purchaseOrder = new AuditPurchaseOrder()
|
|
|
|
// {
|
|
|
|
// PurchaseOrderId = purchaseOrderId,
|
|
|
|
// Platform = Platform.阿里巴巴,
|
|
|
|
// BelongFileName = importResult.FileName,
|
|
|
|
// ProductAmount = decimal.Parse(array[5].FormatString()),
|
|
|
|
// Freight = decimal.Parse(array[6].FormatString()),
|
|
|
|
// PayAmount = decimal.Parse(array[8].FormatString()),
|
|
|
|
// CreateTime = DateTime.Parse(array[10].FormatString()),
|
|
|
|
// ContactName = array[13].FormatString(),
|
|
|
|
// Address = array[14].FormatString(),
|
|
|
|
// Phone = array[17].FormatString(),
|
|
|
|
// Quantity = int.Parse(array[20].FormatString())
|
|
|
|
// };
|
|
|
|
// if (!string.IsNullOrEmpty(array[11]))
|
|
|
|
// purchaseOrder.PayTime = DateTime.Parse(array[11].FormatString());
|
|
|
|
// AuditPurchaseOrderList.Add(purchaseOrder);
|
|
|
|
//}
|
|
|
|
//Console.WriteLine(AuditPurchaseOrderList.Count());
|
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
MessageBox.Show($"问题采购单号{purchaseOrderId} {ex.Message}", "导入1688采购单"); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 导入京东销售订单
|
|
|
|
/// </summary>
|
|
|
|
private void ImportJDShopOrder() |
|
|
|
{ |
|
|
|
var importResult = ImportAuditFile(AuditFileType.销售订单); |
|
|
|
if (!string.IsNullOrEmpty(importResult.ErrorMessage)) |
|
|
|
{ |
|
|
|
MessageBox.Show(importResult.ErrorMessage, "导入京东销售订单"); |
|
|
|
return; |
|
|
|
} |
|
|
|
//if (importResult.Lines == null || importResult.Lines.Count() == 0)
|
|
|
|
// return;
|
|
|
|
|
|
|
|
//去掉列名
|
|
|
|
//importResult.Lines.RemoveAt(0);
|
|
|
|
var orderId = ""; |
|
|
|
try |
|
|
|
{ |
|
|
|
//foreach (var line in importResult.Lines)
|
|
|
|
//{
|
|
|
|
// var array = line.CSVstrToArry();
|
|
|
|
// orderId = array[0].FormatString();
|
|
|
|
// if (string.IsNullOrEmpty(orderId) || AuditShopOrderList.Any(p => p.OrderId == orderId))
|
|
|
|
// continue;
|
|
|
|
// var order = new AuditShopOrder()
|
|
|
|
// {
|
|
|
|
// OrderId = orderId,
|
|
|
|
// Platform = Platform.京东,
|
|
|
|
// BelongFileName = importResult.FileName,
|
|
|
|
// Quantity = int.Parse(array[3].FormatString()),
|
|
|
|
// CreateTime = DateTime.Parse(array[5].FormatString()),
|
|
|
|
// PayAmount = decimal.Parse(array[10].FormatString()),
|
|
|
|
// ContactName = array[14].FormatString(),
|
|
|
|
// Address = array[15].FormatString(),
|
|
|
|
// Phone = array[16].FormatString(),
|
|
|
|
// ProductName = array[2].FormatString(),
|
|
|
|
// VenderRemark = array[27].FormatString()
|
|
|
|
// };
|
|
|
|
// AuditShopOrderList.Add(order);
|
|
|
|
// if (!string.IsNullOrEmpty(array[30]))
|
|
|
|
// order.PayTime = DateTime.Parse(array[30].FormatString());
|
|
|
|
//}
|
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
MessageBox.Show($"问题销售订单号{orderId} {ex.Message}", "导入京东销售订单"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 采购审计文件对象改变事件
|
|
|
|
/// </summary>
|
|
|
@ -550,21 +465,6 @@ namespace BBWY.Client.ViewModels |
|
|
|
foreach (var b in list) |
|
|
|
ShowAuditPayBillList.Add(b); |
|
|
|
} |
|
|
|
else if (SelectAuditFile.AuditFileType == AuditFileType.采购单) |
|
|
|
{ |
|
|
|
IsShowPurchaseOrderPanel = true; |
|
|
|
ShowAuditPurchaseOrderList.Clear(); |
|
|
|
var where = AuditPurchaseOrderList.Where(p => p.BelongFileName == SelectAuditFile.FileName); |
|
|
|
if (OnlyException) |
|
|
|
where = where.Where(p => !string.IsNullOrEmpty(p.ErrorMessage)); |
|
|
|
var list = where.ToList(); |
|
|
|
foreach (var p in list) |
|
|
|
ShowAuditPurchaseOrderList.Add(p); |
|
|
|
} |
|
|
|
else if (SelectAuditFile.AuditFileType == AuditFileType.销售订单) |
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void OnOnlyExceptionChanged() |
|
|
@ -574,7 +474,6 @@ namespace BBWY.Client.ViewModels |
|
|
|
var f = SelectAuditFile; |
|
|
|
SelectAuditFile = null; |
|
|
|
SelectAuditFile = f; |
|
|
|
//SelectAuditFile = AuditFileList.FirstOrDefault(f => f.AuditFileType == AuditFileType.账单);
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|