shanji 3 years ago
parent
commit
244416c1da
  1. 4
      BBWY.Client/Models/APIModel/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs
  2. 35
      BBWY.Client/Models/Enums.cs
  3. 29
      BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPayBill.cs
  4. 27
      BBWY.Client/Resources/Themes/Generic.xaml
  5. 18
      BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
  6. 24
      BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml
  7. 2
      BBWY.Client/Views/MainWindow.xaml
  8. 4
      BBWY.Client/Views/Order/RelationPurchaseOrder.xaml
  9. 2
      BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  10. 6
      BBWY.Server.Model/Dto/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs

4
BBWY.Client/Models/APIModel/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs

@ -4,8 +4,12 @@ namespace BBWY.Client.Models
{ {
public class AuditPurchaseOrderResponse public class AuditPurchaseOrderResponse
{ {
public long OrderDropShippingId { get; set; }
public string PurchaseOrderId { get; set; } public string PurchaseOrderId { get; set; }
public string MerchantOrderId { get; set; }
public long ShopId { get; set; } public long ShopId { get; set; }
public decimal PurchaseAmount { get; set; } public decimal PurchaseAmount { get; set; }

35
BBWY.Client/Models/Enums.cs

@ -114,4 +114,39 @@
= 1, = 1,
= 2 = 2
} }
/// <summary>
/// 审计结果资金类型
/// <para>
///商品采购 = 0,
///商品退款 = 1,
///批量采购商品 = 2,
///入仓运费 = 3,
///售后成本 = 4,
///发票点数 = 5,
///快递单号 = 6,
///采购运费 = 7,
///诚e赊还款 = 8,
///空单号 = 9,
///手机费 = 10,
///刷单 = 11,
///质检报告 = 12
/// </para>
/// </summary>
public enum AuditCapitalType
{
= 0,
退 = 1,
= 2,
= 3,
= 4,
= 5,
= 6,
= 7,
e赊还款 = 8,
= 9,
= 10,
= 11,
= 12
}
} }

29
BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPayBill.cs

@ -2,8 +2,10 @@
namespace BBWY.Client.Models namespace BBWY.Client.Models
{ {
public class AuditPayBill public class AuditPayBill : NotifyObject
{ {
private AuditCapitalType? auditCapitalType;
private string errorMessage;
/// <summary> /// <summary>
/// 账单流水号 /// 账单流水号
/// </summary> /// </summary>
@ -44,6 +46,11 @@ namespace BBWY.Client.Models
/// </summary> /// </summary>
public decimal ExpenditureAmount { get; set; } public decimal ExpenditureAmount { get; set; }
/// <summary>
/// 收入金额
/// </summary>
public decimal IncomeAmount { get; set; }
public long BelongShopId { get; set; } public long BelongShopId { get; set; }
/// <summary> /// <summary>
@ -64,12 +71,24 @@ namespace BBWY.Client.Models
/// </summary> /// </summary>
public string RelationShopOrderId { get; set; } public string RelationShopOrderId { get; set; }
public string Remark { get; set; }
/// <summary> /// <summary>
/// 错误信息 /// 审计结果资金类型
/// </summary> /// </summary>
public string ErrorMessage { get; set; } public AuditCapitalType? AuditCapitalType
{
public string Remark { get; set; } get => auditCapitalType; set
{
Set(ref auditCapitalType, value);
if (value != null)
ErrorMessage = string.Empty;
}
}
/// <summary>
/// 错误信息
/// </summary>
public string ErrorMessage { get => errorMessage; set { Set(ref errorMessage, value); } }
} }
} }

27
BBWY.Client/Resources/Themes/Generic.xaml

@ -333,7 +333,7 @@
<Style x:Key="ColumnHeaderStyle_Center" TargetType="DataGridColumnHeader"> <Style x:Key="ColumnHeaderStyle_Center" TargetType="DataGridColumnHeader">
<Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="BorderThickness" Value="0,0,1,0"/> <Setter Property="BorderThickness" Value="0,0,1,1"/>
<Setter Property="BorderBrush" Value="{StaticResource Border.Brush}"/> <Setter Property="BorderBrush" Value="{StaticResource Border.Brush}"/>
<Setter Property="Background" Value="{StaticResource Border.Background}"/> <Setter Property="Background" Value="{StaticResource Border.Background}"/>
<Setter Property="Template"> <Setter Property="Template">
@ -351,6 +351,7 @@
<ContentPresenter Margin="0" VerticalAlignment="Center" HorizontalAlignment="Center"/> <ContentPresenter Margin="0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<Path x:Name="SortArrow" Visibility="Collapsed" Data="M0,0 L1,0 0.5,1 z" Stretch="Fill" Grid.Column="2" Width="8" Height="6" Fill="White" Margin="0,0,50,0" <Path x:Name="SortArrow" Visibility="Collapsed" Data="M0,0 L1,0 0.5,1 z" Stretch="Fill" Grid.Column="2" Width="8" Height="6" Fill="White" Margin="0,0,50,0"
VerticalAlignment="Center" RenderTransformOrigin="1,1" /> VerticalAlignment="Center" RenderTransformOrigin="1,1" />
</Grid> </Grid>
</Border> </Border>
</ControlTemplate> </ControlTemplate>
@ -360,7 +361,7 @@
<Style TargetType="DataGridColumnHeader"> <Style TargetType="DataGridColumnHeader">
<Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="BorderThickness" Value="0,0,1,0"/> <Setter Property="BorderThickness" Value="0,0,1,1"/>
<Setter Property="BorderBrush" Value="{StaticResource Border.Brush}"/> <Setter Property="BorderBrush" Value="{StaticResource Border.Brush}"/>
<Setter Property="Background" Value="{StaticResource Border.Background}"/> <Setter Property="Background" Value="{StaticResource Border.Background}"/>
<Setter Property="Template"> <Setter Property="Template">
@ -378,6 +379,28 @@
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,0,0,0"/> <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,0,0,0"/>
<Path x:Name="SortArrow" Visibility="Collapsed" Data="M0,0 L1,0 0.5,1 z" Stretch="Fill" Grid.Column="2" Width="8" Height="6" Fill="White" Margin="0,0,50,0" <Path x:Name="SortArrow" Visibility="Collapsed" Data="M0,0 L1,0 0.5,1 z" Stretch="Fill" Grid.Column="2" Width="8" Height="6" Fill="White" Margin="0,0,50,0"
VerticalAlignment="Center" RenderTransformOrigin="1,1" /> VerticalAlignment="Center" RenderTransformOrigin="1,1" />
<Thumb x:Name="PART_RightHeaderGripper"
Cursor="SizeWE"
HorizontalAlignment="Right"
Width="3"
VerticalAlignment="Stretch"
Background="#02F5F5F1"
Margin="0,0,-0.8,0">
<Thumb.Style>
<Style TargetType="Thumb">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Rectangle Name="thumbRect" Fill="{TemplateBinding Background}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Thumb.Style>
</Thumb>
</Grid> </Grid>
</Border> </Border>
</ControlTemplate> </ControlTemplate>

18
BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs

@ -212,7 +212,8 @@ namespace BBWY.Client.ViewModels
{ {
payBill.ErrorMessage = String.Empty; payBill.ErrorMessage = String.Empty;
#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);
if (relationPurchaseOrder == null) if (relationPurchaseOrder == null)
{ {
@ -223,6 +224,10 @@ namespace BBWY.Client.ViewModels
payBill.RelationShopOrderId = relationPurchaseOrder.OrderId; payBill.RelationShopOrderId = relationPurchaseOrder.OrderId;
payBill.BelongShopId = relationPurchaseOrder.ShopId; payBill.BelongShopId = relationPurchaseOrder.ShopId;
payBill.BelongShop = shopList.FirstOrDefault(s => s.ShopId == relationPurchaseOrder.ShopId)?.ShopName; payBill.BelongShop = shopList.FirstOrDefault(s => s.ShopId == relationPurchaseOrder.ShopId)?.ShopName;
if (payBill.IncomeAmount > 0)
payBill.AuditCapitalType = AuditCapitalType.退;
else
payBill.AuditCapitalType = AuditCapitalType.;
#endregion #endregion
} }
} }
@ -329,10 +334,10 @@ namespace BBWY.Client.ViewModels
var sourceMerchantOrderNo = array[2].FormatString(); var sourceMerchantOrderNo = array[2].FormatString();
//if (!string.IsNullOrEmpty(sourceMerchantOrderNo)) //if (!string.IsNullOrEmpty(sourceMerchantOrderNo))
// continue; //暂时不支持此类商户单号 // continue; //暂时不支持此类商户单号
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的账单不参与审计 //if (expenditureAmount == 0) //支出为0的账单不参与审计
continue; // 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;
@ -345,7 +350,8 @@ namespace BBWY.Client.ViewModels
ProductName = array[3].FormatString(), ProductName = array[3].FormatString(),
PayTime = DateTime.Parse(array[4].FormatString()), PayTime = DateTime.Parse(array[4].FormatString()),
OppositeAccount = array[5].FormatString(), OppositeAccount = array[5].FormatString(),
ExpenditureAmount = Math.Abs(expenditureAmount), ExpenditureAmount = expenditureAmount,
IncomeAmount = incomeAmount,
Remark = array[11] Remark = array[11]
}; };
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo; payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo;
@ -353,7 +359,7 @@ namespace BBWY.Client.ViewModels
if (payBill.SourceMerchantOrderNo.StartsWith("T50060NP")) if (payBill.SourceMerchantOrderNo.StartsWith("T50060NP"))
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(8); payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(8);
if(payBill.SourceMerchantOrderNo.StartsWith("T200P")) if (payBill.SourceMerchantOrderNo.StartsWith("T200P"))
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(5); payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(5);
AuditPayBillList.Add(payBill); AuditPayBillList.Add(payBill);

24
BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml

@ -4,12 +4,21 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BBWY.Client.Views.FinancialTerminal" xmlns:local="clr-namespace:BBWY.Client.Views.FinancialTerminal"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
mc:Ignorable="d" mc:Ignorable="d"
xmlns:hc="https://handyorg.github.io/handycontrol" xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
d:DesignHeight="450" d:DesignWidth="800" d:DesignHeight="450" d:DesignWidth="800"
Title="ProcurementAudit" Title="ProcurementAudit"
DataContext="{Binding ProcurementAudit,Source={StaticResource Locator}}"> DataContext="{Binding ProcurementAudit,Source={StaticResource Locator}}">
<Page.Resources>
<ObjectDataProvider x:Key="auditCapitalTypeProvider" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="cmodel:AuditCapitalType"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Page.Resources>
<Grid> <Grid>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/> <c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/>
<Grid Margin="5,0"> <Grid Margin="5,0">
@ -149,13 +158,24 @@
<DataGrid ItemsSource="{Binding ShowAuditPayBillList}" <DataGrid ItemsSource="{Binding ShowAuditPayBillList}"
Grid.Row="7" Grid.Row="7"
Visibility="{Binding IsShowPayBillPanel,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}" Visibility="{Binding IsShowPayBillPanel,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"
> BorderThickness="1,1,0,0"
BorderBrush="{StaticResource Border.Brush}">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="账单流水号" Width="145" Binding="{Binding PayBillNo}" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="账单流水号" Width="145" Binding="{Binding PayBillNo}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
<DataGridTextColumn Header="账单平台" Width="60" Binding="{Binding PayBillType}" ElementStyle="{StaticResource middleTextBlock}"/> <DataGridTextColumn Header="账单平台" Width="60" Binding="{Binding PayBillType}" ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTextColumn Header="支付时间" Width="130" Binding="{Binding PayTime,StringFormat=yyyy-MM-dd HH:mm:ss}" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="支付时间" Width="130" Binding="{Binding PayTime,StringFormat=yyyy-MM-dd HH:mm:ss}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
<DataGridTextColumn Header="对方账号" Width="100" Binding="{Binding OppositeAccount}" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="对方账号" Width="100" Binding="{Binding OppositeAccount}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
<DataGridTextColumn Header="收入金额" Width="60" Binding="{Binding IncomeAmount}" ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTextColumn Header="支出金额" Width="60" Binding="{Binding ExpenditureAmount}" ElementStyle="{StaticResource middleTextBlock}"/> <DataGridTextColumn Header="支出金额" Width="60" Binding="{Binding ExpenditureAmount}" ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTemplateColumn Header="资金类型" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Source={StaticResource auditCapitalTypeProvider}}"
SelectedItem="{Binding AuditCapitalType,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
VerticalContentAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!--<DataGridTextColumn Header="商户订单号" Width="200" Binding="{Binding SourceMerchantOrderNo}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>--> <!--<DataGridTextColumn Header="商户订单号" Width="200" Binding="{Binding SourceMerchantOrderNo}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>-->
<DataGridTemplateColumn Header="商户订单号" Width="200"> <DataGridTemplateColumn Header="商户订单号" Width="200">
<DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellTemplate>
@ -167,7 +187,7 @@
</DataGridTemplateColumn> </DataGridTemplateColumn>
<DataGridTextColumn Header="归属店铺" Width="100" Binding="{Binding BelongShop}" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="归属店铺" Width="100" Binding="{Binding BelongShop}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
<DataGridTextColumn Header="关联采购单" Width="140" Binding="{Binding RelationPurchaseOrderId}" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="关联采购单" Width="140" Binding="{Binding RelationPurchaseOrderId}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
<DataGridTextColumn Header="关联销售单" Width="140" Binding="{Binding RelationShopOrderId}" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="关联销售单" Width="120" Binding="{Binding RelationShopOrderId}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
<DataGridTextColumn Header="备注" Width="*" Binding="{Binding Remark}" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="备注" Width="*" Binding="{Binding Remark}" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
<DataGridTextColumn Header="异常内容" Width="*" Binding="{Binding ErrorMessage}" Foreground="Red" ElementStyle="{StaticResource verticalCenterTextBlock}"/> <DataGridTextColumn Header="异常内容" Width="*" Binding="{Binding ErrorMessage}" Foreground="Red" ElementStyle="{StaticResource verticalCenterTextBlock}"/>
</DataGrid.Columns> </DataGrid.Columns>

2
BBWY.Client/Views/MainWindow.xaml

@ -26,7 +26,7 @@
<!--<TextBlock Text="{Binding GlobalContext.User.TeamName}" Margin="5,0,0,0"/> <!--<TextBlock Text="{Binding GlobalContext.User.TeamName}" Margin="5,0,0,0"/>
<TextBlock Text="{Binding GlobalContext.User.Shop.Platform}" Margin="5,0,0,0"/>--> <TextBlock Text="{Binding GlobalContext.User.Shop.Platform}" Margin="5,0,0,0"/>-->
<TextBlock Text="{Binding GlobalContext.User.Shop.ShopName}" Margin="5,0,0,0"/> <TextBlock Text="{Binding GlobalContext.User.Shop.ShopName}" Margin="5,0,0,0"/>
<TextBlock Text="v10026" Margin="5,0,0,0"/> <TextBlock Text="v10027" Margin="5,0,0,0"/>
</StackPanel> </StackPanel>
</Border> </Border>
<Grid Grid.Row="1"> <Grid Grid.Row="1">

4
BBWY.Client/Views/Order/RelationPurchaseOrder.xaml

@ -120,7 +120,7 @@
ItemsSource="{Binding RelationPurchaseOrderSkuList}" ItemsSource="{Binding RelationPurchaseOrderSkuList}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
BorderBrush="{StaticResource Border.Brush}" BorderBrush="{StaticResource Border.Brush}"
BorderThickness="1,0,1,0"> BorderThickness="0">
<ListBox.ItemTemplate> <ListBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<Grid Height="90" Width="{Binding ActualWidth,ElementName=listbox_ordersku}"> <Grid Height="90" Width="{Binding ActualWidth,ElementName=listbox_ordersku}">
@ -130,6 +130,8 @@
<ColumnDefinition/> <ColumnDefinition/>
<ColumnDefinition/> <ColumnDefinition/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Border BorderThickness="1,0" BorderBrush="{StaticResource Border.Brush}" Grid.ColumnSpan="4"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2"/>

2
BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -304,9 +304,11 @@ namespace BBWY.Server.Business
auditOrderRequest.ShopIdList.Contains(o.ShopId)) auditOrderRequest.ShopIdList.Contains(o.ShopId))
.ToList((o, ods) => new AuditPurchaseOrderResponse() .ToList((o, ods) => new AuditPurchaseOrderResponse()
{ {
OrderDropShippingId = ods.Id,
OrderId = o.Id, OrderId = o.Id,
PurchaseAmount = ods.PurchaseAmount, PurchaseAmount = ods.PurchaseAmount,
PurchaseOrderId = ods.PurchaseOrderId, PurchaseOrderId = ods.PurchaseOrderId,
MerchantOrderId = ods.MerchantOrderId,
ShopId = o.ShopId, ShopId = o.ShopId,
PurchaseTime = ods.CreateTime PurchaseTime = ods.CreateTime
}); });

6
BBWY.Server.Model/Dto/Response/PurchaseOrder/AuditPurchaseOrderResponse.cs

@ -1,13 +1,15 @@
using System; using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Dto namespace BBWY.Server.Model.Dto
{ {
public class AuditPurchaseOrderResponse public class AuditPurchaseOrderResponse
{ {
public long OrderDropShippingId { get; set; }
public string PurchaseOrderId { get; set; } public string PurchaseOrderId { get; set; }
public string MerchantOrderId { get; set; }
public long ShopId { get; set; } public long ShopId { get; set; }
public decimal PurchaseAmount { get; set; } public decimal PurchaseAmount { get; set; }

Loading…
Cancel
Save