Browse Source

1

updatebug
shanji 2 years ago
parent
commit
5ad25e91c5
  1. 4
      BBWYB.Client/Models/APIModel/Response/Order/OrderCostResponse.cs
  2. 23
      BBWYB.Client/Models/APIModel/Response/Order/OrderPurchaseInfoResponse.cs
  3. 3
      BBWYB.Client/Models/APIModel/Response/Order/OrderResponse.cs
  4. 3
      BBWYB.Client/Models/MappingProfile.cs
  5. 2
      BBWYB.Client/Models/Order/Order.cs
  6. 6
      BBWYB.Client/Models/Order/OrderPurchaseInfo.cs
  7. 16
      BBWYB.Client/ViewModels/BaseVM.cs
  8. 93
      BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs
  9. 62
      BBWYB.Client/ViewModels/Order/OrderViewModel.cs
  10. 75
      BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml
  11. 28
      BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml.cs
  12. 224
      BBWYB.Client/Views/Order/OrderList.xaml
  13. 45
      BBWYB.Server.Business/Order/OrderBusiness.cs
  14. 28
      BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  15. 14
      BBWYB.Server.Model/Db/Order/Order.cs
  16. 36
      BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs
  17. 6
      BBWYB.Server.Model/Dto/Request/PurchaseOrder/CreateOrderRequest.cs
  18. 8
      BBWYB.Server.Model/Dto/Response/Order/OrderPurchaseInfoResponse.cs
  19. 6
      BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs
  20. 8
      BBWYB.Server.Model/MappingProfiles.cs

4
BBWYB.Client/Models/APIModel/Response/Order/OrderCostResponse.cs

@ -22,7 +22,7 @@ namespace BBWYB.Client.Models
public DateTime CreateTime { get; set; }
public DateTime? CreateTime { get; set; }
/// <summary>
/// 发货快递费
@ -32,7 +32,7 @@ namespace BBWYB.Client.Models
/// <summary>
/// 是否手动编辑过成本
/// </summary>
public bool IsManualEdited { get; set; } = false;
public bool? IsManualEdited { get; set; } = false;
/// <summary>
/// 平台扣点金额

23
BBWYB.Client/Models/APIModel/Response/Order/OrderPurchaseInfoResponse.cs

@ -0,0 +1,23 @@
using System;
namespace BBWYB.Client.Models
{
public partial class OrderPurchaseInfoResponse
{
public DateTime? CreateTime { get; set; }
public string PurchaseAccountId { get; set; }
public string PurchaseAccountName { get; set; }
public PurchaseMethod? PurchaseMethod { get; set; }
public string PurchaseOrderId { get; set; }
public Platform? PurchasePlatform { get; set; }
public string PurchaserName { get; set; }
}
}

3
BBWYB.Client/Models/APIModel/Response/Order/OrderResponse.cs

@ -136,6 +136,9 @@ namespace BBWYB.Client.Models
/// 订单成本
/// </summary>
public OrderCostResponse OrderCost { get; set; }
public OrderPurchaseInfoResponse OrderPurchaseInfo { get; set; }
/// <summary>
/// 订单成本明细列表
/// </summary>

3
BBWYB.Client/Models/MappingProfile.cs

@ -6,7 +6,7 @@ namespace BBWYB.Client.Models
{
public MappingProfile()
{
CreateMap<MDSUserResponse, User>().ForMember(t => t.TeamId, opt => opt.MapFrom(f => f.DepartmentId))
.ForMember(t => t.TeamName, opt => opt.MapFrom(f => f.DepartmentName))
.ForMember(t => t.Name, opt => opt.MapFrom(f => f.UserName));
@ -22,6 +22,7 @@ namespace BBWYB.Client.Models
CreateMap<ConsigneeResponse, Consignee>();
CreateMap<OrderResponse, Order>();
CreateMap<OrderSkuResponse, OrderSku>();
CreateMap<OrderPurchaseInfoResponse, OrderPurchaseInfo>();
}
}
}

2
BBWYB.Client/Models/Order/Order.cs

@ -148,6 +148,8 @@ namespace BBWYB.Client.Models
/// </summary>
public OrderCost OrderCost { get; set; }
public OrderPurchaseInfo OrderPurchaseInfo { get; set; }
public IList<OrderSku> ItemList { get; set; }
/// <summary>

6
BBWYB.Client/Models/Order/OrderPurchaseInfo.cs

@ -0,0 +1,6 @@
namespace BBWYB.Client.Models
{
public class OrderPurchaseInfo : OrderPurchaseInfoResponse
{
}
}

16
BBWYB.Client/ViewModels/BaseVM.cs

@ -1,6 +1,7 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System;
using System.Windows;
using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
@ -12,11 +13,26 @@ namespace BBWYB.Client.ViewModels
public ICommand UnloadCommand { get; set; }
public ICommand CopyTextCommand { get; set; }
public BaseVM()
{
VMId = Guid.NewGuid();
LoadCommand = new RelayCommand(Load);
UnloadCommand = new RelayCommand(Unload);
CopyTextCommand = new RelayCommand<string>(s =>
{
try
{
Clipboard.SetText(s);
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex);
Console.ResetColor();
}
});
}
public virtual void Refresh()

93
BBWYB.Client/ViewModels/Order/ChoosePurchaseSchemeViewModel.cs

@ -0,0 +1,93 @@
using BBWYB.Client.APIServices;
using BBWYB.Client.Models;
using BBWYB.Common.Models;
using CommunityToolkit.Mvvm.Input;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
namespace BBWYB.Client.ViewModels
{
public class ChoosePurchaseSchemeViewModel : BaseVM, IDenpendency
{
private PurchaseService purchaseService;
private GlobalContext globalContext;
private Order order;
private bool noPurchaser;
public IList<Purchaser> PurchaserList { get; set; }
public bool NoPurchaser { get => noPurchaser; set { SetProperty(ref noPurchaser, value); } }
//public ICommand DeleteCommand { get; set; }
//public ICommand EditCommand { get; set; }
public ICommand PreviewPurchaseCommand { get; set; }
public ChoosePurchaseSchemeViewModel(PurchaseService purchaseService, GlobalContext globalContext)
{
this.purchaseService = purchaseService;
this.globalContext = globalContext;
this.PurchaserList = new ObservableCollection<Purchaser>();
//DeleteCommand = new RelayCommand<PurchaseScheme>(Delete);
//EditCommand = new RelayCommand<PurchaseScheme>(Edit);
PreviewPurchaseCommand = new RelayCommand<Purchaser>(PreviewPurchase);
}
protected override void Load()
{
PurchaserList.Clear();
Task.Factory.StartNew(() => LoadPurchaser());
}
protected override void Unload()
{
this.order = null;
this.NoPurchaser = false;
PurchaserList.Clear();
}
public void SetData(Order order)
{
this.order = order;
}
public void LoadPurchaser()
{
var skuIdList = order.ItemList.Select(osku => osku.SkuId).ToList();
var purchaserResponse = purchaseService.GetSharePurchaser(skuIdList, globalContext.User.Shop.ShopId);
if (!purchaserResponse.Success)
{
App.Current.Dispatcher.Invoke(() => MessageBox.Show(purchaserResponse.Msg, "获取采购商"));
return;
}
NoPurchaser = (purchaserResponse.Data?.Count() ?? 0) == 0;
if (purchaserResponse.Data != null && purchaserResponse.Data.Count() > 0)
{
App.Current.Dispatcher.Invoke(() =>
{
foreach (var p in purchaserResponse.Data) PurchaserList.Add(p);
});
}
}
public void PreviewPurchase(Purchaser purchaser)
{
var purchaseAccount = globalContext.User.Shop.PurchaseAccountList.FirstOrDefault(pa => pa.PurchasePlatformId == purchaser.Platform);
if (purchaseAccount == null)
{
MessageBox.Show($"缺少{purchaser.Platform}的采购账号", "提示");
return;
}
var p = new _1688Purchase(order, purchaser, purchaseAccount);
p.ShowDialog();
GalaSoft.MvvmLight.Messaging.Messenger.Default.Send<object>(null, "ChoosePurchaseScheme_Close");
}
}
}

62
BBWYB.Client/ViewModels/Order/OrderViewModel.cs

@ -106,37 +106,37 @@ namespace BBWYB.Client.ViewModels
//if (response.Data.Items == null || response.Data.Items.Count() == 0)
// return;
response.Data.Items = new List<OrderResponse>()
{
new OrderResponse()
{
Id = "3213213121",
StartTime = DateTime.Now,
OrderState = Models.OrderState.,
OrderSellerPrice=100,
OrderCost = new OrderCostResponse(){
DeliveryExpressFreight=50,
Profit=100,
TotalCost=120,
PurchaseAmount=150
},
BuyerRemark="12312fffff",
Consignee = new ConsigneeResponse(){
Mobile="18996038927",
Province="重庆",
ContactName="山鸡"
},
ItemList = new List<OrderSkuResponse>(){
new OrderSkuResponse(){
ItemTotal=2,
Logo="https://img13.360buyimg.com/n9/s80x80_jfs/t1/87954/9/35896/95921/6431716fFa3d09cae/e1f687d25af0ddf1.jpg",
Price=15,
ProductId="10023985258330",
SkuId="10072665703169", Title="特大绿色托盘熊50CM"
}
}
}
};
//response.Data.Items = new List<OrderResponse>()
//{
// new OrderResponse()
// {
// Id = "3213213121",
// StartTime = DateTime.Now,
// OrderState = Models.OrderState.等待采购,
// OrderSellerPrice=100,
// OrderCost = new OrderCostResponse(){
// DeliveryExpressFreight=50,
// Profit=100,
// TotalCost=120,
// PurchaseAmount=150
// },
// BuyerRemark="12312fffff",
// Consignee = new ConsigneeResponse(){
// Mobile="18996038927",
// Province="重庆",
// ContactName="山鸡"
// },
// ItemList = new List<OrderSkuResponse>(){
// new OrderSkuResponse(){
// ItemTotal=2,
// Logo="https://img13.360buyimg.com/n9/s80x80_jfs/t1/87954/9/35896/95921/6431716fFa3d09cae/e1f687d25af0ddf1.jpg",
// Price=15,
// ProductId="10023985258330",
// SkuId="10072665703169", Title="特大绿色托盘熊50CM"
// }
// }
// }
//};
var list = response.Data.Items.Map<IList<Order>>();
App.Current.Dispatcher.Invoke(() =>

75
BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml

@ -0,0 +1,75 @@
<c:BWindow x:Class="BBWYB.Client.Views.Order.ChoosePurchaseScheme"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BBWYB.Client.Views.Order"
xmlns:c="clr-namespace:SJ.Controls;assembly=SJ.Controls"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d"
Title="ChoosePurchaseScheme" Height="200" Width="600"
Style="{StaticResource bwstyle}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
DataContext="{Binding ChoosePurchaseScheme,Source={StaticResource Locator}}">
<b:Interaction.Triggers>
<b:EventTrigger EventName="Loaded">
<b:InvokeCommandAction Command="{Binding LoadCommand}"/>
</b:EventTrigger>
<b:EventTrigger EventName="Unloaded">
<b:InvokeCommandAction Command="{Binding UnloadCommand}"/>
</b:EventTrigger>
</b:Interaction.Triggers>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}"
Background="{StaticResource Border.Background}">
<TextBlock Text="选择采购商" Style="{StaticResource middleTextBlock}"/>
</Border>
<DataGrid Grid.Row="1"
ItemsSource="{Binding PurchaserList}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Platform}" Header="采购平台" Width="80" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTextColumn Binding="{Binding Name}" Header="采购商" Width="1*"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTextColumn Binding="{Binding Location}" Header="发货地" Width="120" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTemplateColumn Header="操作" Width="50" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<!--<ColumnDefinition/>
<ColumnDefinition/>-->
</Grid.ColumnDefinitions>
<c:BButton Content="下单" HorizontalAlignment="Stretch"
Background="#1CC2A2"
Command="{Binding DataContext.PreviewPurchaseCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding }"/>
<!--<c:BButton Content="编辑" Grid.Column="1" HorizontalAlignment="Stretch"
Background="#02A7F0"
Command="{Binding DataContext.EditCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding }"/>
<c:BButton Content="删除" Grid.Column="2" HorizontalAlignment="Stretch"
Background="#EC808D"
Command="{Binding DataContext.DeleteCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
CommandParameter="{Binding }"/>-->
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<TextBlock Text="缺少共同采购商" Grid.Row="1"
HorizontalAlignment="Center" VerticalAlignment="Center"
Foreground="{StaticResource TextBox.BorderBrush}"
FontSize="16"
Visibility="{Binding NoPurchaser,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"/>
</Grid>
</c:BWindow>

28
BBWYB.Client/Views/Order/ChoosePurchaseScheme.xaml.cs

@ -0,0 +1,28 @@
using CommunityToolkit.Mvvm.Messaging;
using SJ.Controls;
namespace BBWYB.Client.Views.Order
{
/// <summary>
/// ChoosePurchaseScheme.xaml 的交互逻辑
/// </summary>
public partial class ChoosePurchaseScheme : BWindow
{
public ChoosePurchaseScheme()
{
InitializeComponent();
this.Loaded += ChoosePurchaseScheme_Loaded;
this.Unloaded += ChoosePurchaseScheme_Unloaded;
}
private void ChoosePurchaseScheme_Unloaded(object sender, System.Windows.RoutedEventArgs e)
{
WeakReferenceMessenger.Default.UnregisterAll(this);
}
private void ChoosePurchaseScheme_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
//Messenger.Default.Register<object>(this, "ChoosePurchaseScheme_Close", (x) => this.Close());
}
}
}

224
BBWYB.Client/Views/Order/OrderList.xaml

@ -320,7 +320,7 @@
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="351"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
@ -383,7 +383,7 @@
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
@ -454,12 +454,39 @@
</ListBox.ItemTemplate>
</ListBox>
<Border Width="1" Background="{StaticResource Border.Brush}" HorizontalAlignment="Right"/>
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="1" HorizontalAlignment="Right"/>
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="2" HorizontalAlignment="Right"/>
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="3" HorizontalAlignment="Right"/>
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="4" HorizontalAlignment="Right"/>
<Border Width="1" Background="{StaticResource Border.Brush}" Grid.Column="5" HorizontalAlignment="Right"/>
<c:BButton Content="采购" Grid.Column="1" Width="100"
Visibility="{Binding IsPurchased,ConverterParameter=false:Visible:Collapsed,Converter={StaticResource objConverter}}"/>
<StackPanel Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"
Visibility="{Binding IsPurchased,ConverterParameter=true:Visible:Collapsed,Converter={StaticResource objConverter}}">
<TextBlock>
<Run Text="采购方式:"/>
<Run Text="{Binding OrderPurchaseInfo.PurchaseMethod}"/>
</TextBlock>
<TextBlock>
<Run Text="采购平台:"/>
<Run Text="{Binding OrderPurchaseInfo.PurchasePlatform}"/>
</TextBlock>
<TextBlock>
<Run Text="采购商家:"/>
<Run Text="{Binding OrderPurchaseInfo.PurchaserName}"/>
</TextBlock>
<TextBlock>
<Run Text="采购账号:"/>
<Run Text="{Binding OrderPurchaseInfo.PurchaseAccountName}"/>
</TextBlock>
<TextBlock>
<Run Text="订单号:"/>
<Run Text="{Binding OrderPurchaseInfo.PurchaseOrderId}"/>
</TextBlock>
</StackPanel>
<Border x:Name="bd_costbg" Background="#FCECEE" Grid.Column="2" Margin="0,0,1,0"
Visibility="{Binding IsCostException,ConverterParameter=true:Visible:Collapsed}"/>
<StackPanel Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,10">
@ -491,7 +518,7 @@
<Run Text="实付金额"/>
<Run Text="{Binding OrderPayment,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<StackPanel x:Name="sp_orderCoupon" Orientation="Horizontal">
<TextBlock>
<Run Text="优惠金额"/>
@ -522,175 +549,6 @@
<Run Text="采购成本"/>
<Run Text="{Binding OrderCost.PurchaseAmount}"/>
</TextBlock>
<Path x:Name="path_purchaseAmount_question"
Style="{StaticResource path_question}"
Width="14" Margin="5,0,0,0" Fill="{StaticResource Text.Pink}"
ToolTipService.InitialShowDelay="0"
ToolTipService.ShowDuration="20000">
<Path.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock x:Name="txt_isManualed" Text="该订单成本经过手动编辑"
Style="{StaticResource middleTextBlock}"
Foreground="Red"
Visibility="{Binding OrderCost.IsManualEdited,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"/>
<ListBox Grid.Row="1"
ItemsSource="{Binding OrderCostDetailGroupList}"
Style="{StaticResource NoScrollViewListBoxStyle}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
Foreground="{StaticResource Text.Color}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding SkuId,StringFormat=SKU {0}}" VerticalAlignment="Center"/>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<Grid Background="{StaticResource Border.Background}" Grid.RowSpan="2">
<TextBlock Text="库存流水" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="1" Grid.ColumnSpan="2">
<TextBlock Text="商品成本" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="3" Grid.ColumnSpan="6">
<TextBlock Text="期间成本" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="9" Grid.RowSpan="2">
<TextBlock Text="小计成本" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="10" Grid.RowSpan="2">
<TextBlock Text="扣减时间" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="1" Grid.Row="1">
<TextBlock Text="货款成本" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="2" Grid.Row="1">
<TextBlock Text="采购运费" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="3" Grid.Row="1">
<TextBlock Text="头程费" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="4" Grid.Row="1">
<TextBlock Text="打包耗材" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="5" Grid.Row="1">
<TextBlock Text="快递费" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="6" Grid.Row="1">
<TextBlock Text="入库操作" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="7" Grid.Row="1">
<TextBlock Text="出库操作" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Grid Background="{StaticResource Border.Background}" Grid.Column="8" Grid.Row="1">
<TextBlock Text="仓储费" Style="{StaticResource middleTextBlock}"/>
</Grid>
<Border Grid.RowSpan="2" Grid.ColumnSpan="11" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1"/>
<Border Width="1" HorizontalAlignment="Right" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="1" Grid.Row="1" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="2" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="3" Grid.Row="1" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="4" Grid.Row="1" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="5" Grid.Row="1" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="6" Grid.Row="1" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="7" Grid.Row="1" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="8" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/>
<Border Width="1" HorizontalAlignment="Right" Grid.Column="9" Grid.RowSpan="2" Background="{StaticResource Border.Brush}"/>
<Border Height="1" VerticalAlignment="Bottom" Grid.Column="1" Grid.ColumnSpan="8" Background="{StaticResource Border.Brush}"/>
</Grid>
<ListBox Grid.Row="2"
BorderBrush="{StaticResource Border.Brush}"
BorderThickness="1,0,1,0"
Style="{StaticResource NoScrollViewListBoxStyle}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="25">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding PurchaseOrderPKId}" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding SkuAmount}" Grid.Column="1" Style="{StaticResource middleTextBlock}"
Visibility="{Binding SkuAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding PurchaseFreight}" Grid.Column="2" Style="{StaticResource middleTextBlock}"
Visibility="{Binding PurchaseFreight,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding FirstFreight}" Grid.Column="3" Style="{StaticResource middleTextBlock}"
Visibility="{Binding FirstFreight,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding ConsumableAmount}" Grid.Column="4" Style="{StaticResource middleTextBlock}"
Visibility="{Binding ConsumableAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding DeliveryExpressFreight}" Grid.Column="5" Style="{StaticResource middleTextBlock}"
Visibility="{Binding DeliveryExpressFreight,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding InStorageAmount}" Grid.Column="6" Style="{StaticResource middleTextBlock}"
Visibility="{Binding InStorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding OutStorageAmount}" Grid.Column="7" Style="{StaticResource middleTextBlock}"
Visibility="{Binding OutStorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding StorageAmount}" Grid.Column="8" Style="{StaticResource middleTextBlock}"
Visibility="{Binding StorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
<TextBlock Text="{Binding TotalCost2,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}" Grid.Column="9" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding CreateTime,StringFormat=yyyy-MM-dd}" Grid.Column="10" Style="{StaticResource middleTextBlock}"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/>
<Border Grid.Column="1" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="2" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="3" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="4" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="5" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="6" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="7" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="8" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Grid.Column="9" Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Margin="0,0,-1,0"/>
<Border Height="1" VerticalAlignment="Bottom" Grid.ColumnSpan="11" Background="{StaticResource Border.Brush}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</ToolTip>
</Path.ToolTip>
</Path>
</StackPanel>
<TextBlock>
@ -739,18 +597,14 @@
<Grid x:Name="sp_store" Grid.Column="4">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock x:Name="txt_storeName"
<TextBlock
Text="{Binding ExpressName}"
TextWrapping="Wrap"
HorizontalAlignment="Center"
Visibility="{Binding ExpressName,Converter={StaticResource objConverter},ConverterParameter=#null|0:Collapsed:Visible}"/>
<StackPanel x:Name="sp_waybill" Orientation="Horizontal">
<TextBlock Text="{Binding WaybillNo}"/>
<c:BButton x:Name="btn_waybillCopy" Style="{StaticResource LinkButton}"
Content="复制"
Command="{Binding DataContext.CopyOrderWaybillCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}"
CommandParameter="{Binding }" Margin="5,0,0,0"/>
</StackPanel>
HorizontalAlignment="Center"/>
<c:BButton Style="{StaticResource LinkButton}"
Content="{Binding WaybillNo}"
Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}"
CommandParameter="{Binding WaybillNo}"/>
</StackPanel>
<c:BButton x:Name="btn_outStore" Content="出库" VerticalAlignment="Bottom"
Foreground="{StaticResource Text.Color}"
@ -792,9 +646,6 @@
<Border Grid.Row="1" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding WaybillNo}" Value="">
<Setter TargetName="sp_waybill" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding BuyerRemark}" Value="">
<Setter TargetName="sp_buyerRemark" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
@ -804,9 +655,6 @@
<DataTrigger Binding="{Binding PreferentialAmount}" Value="0">
<Setter TargetName="sp_orderCoupon" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding OrderCost.PurchaseAmount}" Value="0">
<Setter TargetName="path_purchaseAmount_question" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding OrderState}" Value="已取消">
<Setter TargetName="btn_orderState" Property="Background" Value="#EC808D"/>
</DataTrigger>

45
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -16,13 +16,15 @@ namespace BBWYB.Server.Business
}
private ISelect<Model.Db.Order, OrderConsignee, OrderCost> GetOrderListQueryConditions(QueryOrderRequest request)
private ISelect<Order, OrderConsignee, OrderCost, OrderPurchaseInfo> GetOrderListQueryConditions(QueryOrderRequest request)
{
var select = fsql.Select<Model.Db.Order, OrderConsignee, OrderCost>().LeftJoin((o, ocs, oct) => o.Id == ocs.OrderId)
.LeftJoin((o, ocs, oct) => o.Id == oct.OrderId);
var select = fsql.Select<Order, OrderConsignee, OrderCost, OrderPurchaseInfo>()
.LeftJoin((o, ocs, oct, op) => o.Id == ocs.OrderId)
.LeftJoin((o, ocs, oct, op) => o.Id == oct.OrderId)
.LeftJoin((o, ocs, oct, op) => o.Id == op.OrderId);
if (!string.IsNullOrEmpty(request.OrderId))
{
select = select.Where((o, ocs, oct) => o.Id == request.OrderId);
select = select.Where((o, ocs, oct, op) => o.Id == request.OrderId);
}
else
{
@ -31,27 +33,27 @@ namespace BBWYB.Server.Business
var childSelect = fsql.Select<OrderSku>().As("osku")
.WhereIf(!string.IsNullOrEmpty(request.Sku), osku => osku.SkuId == request.Sku)
.WhereIf(!string.IsNullOrEmpty(request.ProductId), osku => osku.ProductId == request.ProductId);
select = select.Where((o, ocs, oct) => childSelect.Where(osku => osku.OrderId == o.Id).Any());
select = select.Where((o, ocs, oct, op) => childSelect.Where(osku => osku.OrderId == o.Id).Any());
}
select = select.WhereIf(request.OrderState != null, (o, ocs, oct) => o.OrderState == request.OrderState)
.WhereIf(request.StartDate != null, (o, ocs, oct) => o.StartTime >= request.StartDate)
.WhereIf(request.EndDate != null, (o, ocs, oct) => o.StartTime <= request.EndDate)
.WhereIf(!string.IsNullOrEmpty(request.ClientOrderId), (o, ocs, oct) => o.ClientOrderId == request.ClientOrderId)
.WhereIf(!string.IsNullOrEmpty(request.SourceShopName), (o, ocs, oct) => o.SourceShopName == request.SourceShopName)
.WhereIf(!string.IsNullOrEmpty(request.SourceSku), (o, ocs, oct) => o.SourceSku == request.SourceSku);
select = select.WhereIf(request.OrderState != null, (o, ocs, oct, op) => o.OrderState == request.OrderState)
.WhereIf(request.StartDate != null, (o, ocs, oct, op) => o.StartTime >= request.StartDate)
.WhereIf(request.EndDate != null, (o, ocs, oct, op) => o.StartTime <= request.EndDate)
.WhereIf(!string.IsNullOrEmpty(request.ClientOrderId), (o, ocs, oct, op) => o.ClientOrderId == request.ClientOrderId)
.WhereIf(!string.IsNullOrEmpty(request.SourceShopName), (o, ocs, oct, op) => o.SourceShopName == request.SourceShopName)
.WhereIf(!string.IsNullOrEmpty(request.SourceSku), (o, ocs, oct, op) => o.SourceSku == request.SourceSku);
}
select = select.WhereIf(request.ShopId != null, (o, ocs, oct) => o.ShopId == request.ShopId);
select = select.WhereIf(request.ShopId != null, (o, ocs, oct, op) => o.ShopId == request.ShopId);
//select = select.Where((o, ocs, oct) => o.ShopId == searchOrderRequest.ShopId);
return select;
}
private Expression<Func<Model.Db.Order, OrderConsignee, OrderCost, Model.Db.Order>> GetOrderListField()
private Expression<Func<Order, OrderConsignee, OrderCost, OrderPurchaseInfo, Order>> GetOrderListField()
{
return (o, ocs, oct) => new Model.Db.Order()
return (o, ocs, oct, op) => new Order()
{
Id = o.Id,
BuyerRemark = o.BuyerRemark,
@ -84,21 +86,22 @@ namespace BBWYB.Server.Business
County = ocs.County,
Town = ocs.Town,
City = ocs.City,
//IsDecode = ocs.IsDecode,
Mobile = ocs.Mobile,
TelePhone = ocs.TelePhone,
DeliveryExpressFreight = oct.DeliveryExpressFreight,
PlatformCommissionAmount = oct.PlatformCommissionAmount,
PlatformCommissionRatio = oct.PlatformCommissionRatio,
//PreferentialAmount = oct.PreferentialAmount,
Profit = oct.Profit,
PurchaseAmount = oct.PurchaseAmount,
IsManualEdited = oct.IsManualEdited,
//SDCommissionAmount = oct.SDCommissionAmount,
//SDOrderAmount = oct.SDOrderAmount,
//RefundAmount = oct.RefundAmount,
//RefundPurchaseAmount = oct.RefundPurchaseAmount,
PurchaseAccountId = op.PurchaseAccountId,
PurchaseAccountName = op.PurchaseAccountName,
PurchaseMethod = op.PurchaseMethod,
PurchaseOrderId = op.PurchaseOrderId,
PurchasePlatform = op.PurchasePlatform,
PurchaserName = op.PurchaserName
};
}
@ -107,7 +110,7 @@ namespace BBWYB.Server.Business
if (request.EndDate != null)
request.EndDate = request.EndDate.Value.Date.AddDays(1).AddSeconds(-1);
var select = GetOrderListQueryConditions(request).OrderByDescending((o, ocs, oct) => o.StartTime)
var select = GetOrderListQueryConditions(request).OrderByDescending((o, ocs, oct, op) => o.StartTime)
.Count(out var total)
.Page(request.PageIndex, request.PageSize);

28
BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -141,6 +141,8 @@ namespace BBWYB.Server.Business
List<OrderCostDetail> insertOrderCostDetails = new List<OrderCostDetail>();
IInsert<OrderCost> insertOrderCost = null;
IUpdate<OrderCost> updateOrderCost = null;
IInsert<OrderPurchaseInfo> insertOrderPurchaseInfo = null;
IUpdate<OrderPurchaseInfo> updateOrderPurchaseInfo = null;
foreach (var orderSku in orderSkus)
{
@ -171,7 +173,7 @@ namespace BBWYB.Server.Business
PurchaseOrderId = purchaseOrderSimpleInfo.OrderId,
SkuAmount = currentOrderSkuProductAmount,
SkuId = orderSku.SkuId,
StorageAmount = 0,
StorageAmount = 0
//UnitCost = purchaseOrder.UnitCost,
//TotalCost = currentOrderSkuProductAmount + currentOrderSkuFreightAmount//purchaseOrder.UnitCost * orderSku.ItemTotal.Value
};
@ -206,6 +208,28 @@ namespace BBWYB.Server.Business
}
#endregion
#region 订单采购信息
var orderPurchaserInfo = new OrderPurchaseInfo()
{
OrderId = request.OrderId,
CreateTime = DateTime.Now,
PurchaseAccountId = request.PurchaseAccountId,
PurchaseAccountName = request.PurchaseAccountName,
PurchaseMethod = Enums.PurchaseMethod.线,
PurchaseOrderId = createOrderResponse.OrderId,
PurchasePlatform = request.Platform,
PurchaserName = request.PurchaserName
};
if (!isRepurchase)
{
insertOrderPurchaseInfo = fsql.Insert(orderPurchaserInfo);
}
else
{
updateOrderPurchaseInfo = fsql.Update<OrderPurchaseInfo>().SetSource(orderPurchaserInfo).IgnoreColumns(a => new { a.CreateTime });
}
#endregion
fsql.Transaction(() =>
{
@ -213,6 +237,8 @@ namespace BBWYB.Server.Business
fsql.Insert(insertOrderCostDetails).ExecuteAffrows();
updateOrderCost?.ExecuteAffrows();
insertOrderCost?.ExecuteAffrows();
insertOrderPurchaseInfo?.ExecuteAffrows();
updateOrderPurchaseInfo?.ExecuteAffrows();
fsql.Update<Order>(request.OrderId).SetIf(dbOrder.OrderState == Enums.OrderState., o => o.OrderState, Model.Enums.OrderState.)
.Set(o => o.IsPurchased, true)
.ExecuteAffrows();

14
BBWYB.Server.Model/Db/Order/Order.cs

@ -218,6 +218,20 @@ namespace BBWYB.Server.Model.Db
public string Town { get; set; }
#endregion
#region 采购信息
public string PurchaseAccountId { get; set; }
public string PurchaseAccountName { get; set; }
public Enums.PurchaseMethod? PurchaseMethod { get; set; }
public string PurchaseOrderId { get; set; }
public Enums.Platform? PurchasePlatform { get; set; }
public string PurchaserName { get; set; }
#endregion
}
}

36
BBWYB.Server.Model/Db/Order/OrderPurchaseInfo.cs

@ -0,0 +1,36 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
[Table(Name = "orderpurchaseinfo", DisableSyncStructure = true)]
public partial class OrderPurchaseInfo
{
[Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
public string OrderId { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
[Column(StringLength = 100)]
public string PurchaseAccountId { get; set; }
[Column(StringLength = 100)]
public string PurchaseAccountName { get; set; }
[Column(MapType = typeof(int?))]
public Enums.PurchaseMethod? PurchaseMethod { get; set; }
[Column(StringLength = 100)]
public string PurchaseOrderId { get; set; }
[Column(MapType = typeof(int?))]
public Enums.Platform? PurchasePlatform { get; set; }
[Column(StringLength = 100)]
public string PurchaserName { get; set; }
}
}

6
BBWYB.Server.Model/Dto/Request/PurchaseOrder/CreateOrderRequest.cs

@ -10,5 +10,11 @@
/// 店铺订单Id
/// </summary>
public string OrderId { get; set; }
public string PurchaseAccountId { get; set; }
public string PurchaseAccountName { get; set; }
public string PurchaserName { get; set; }
}
}

8
BBWYB.Server.Model/Dto/Response/Order/OrderPurchaseInfoResponse.cs

@ -0,0 +1,8 @@
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Model.Dto
{
public class OrderPurchaseInfoResponse : OrderPurchaseInfo
{
}
}

6
BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs

@ -133,6 +133,12 @@
/// 订单成本
/// </summary>
public OrderCostResponse OrderCost { get; set; }
/// <summary>
/// 订单采购信息
/// </summary>
public OrderPurchaseInfoResponse OrderPurchaseInfo { get; set; }
/// <summary>
/// 订单成本明细列表
/// </summary>

8
BBWYB.Server.Model/MappingProfiles.cs

@ -45,7 +45,13 @@ namespace BBWYB.Server.Model
.ForPath(t => t.OrderCost.PlatformCommissionAmount, opt => opt.MapFrom(f => f.PlatformCommissionAmount ?? 0))
.ForPath(t => t.OrderCost.PlatformCommissionRatio, opt => opt.MapFrom(f => f.PlatformCommissionRatio ?? 0))
.ForPath(t => t.OrderCost.PreferentialAmount, opt => opt.MapFrom(f => f.PreferentialAmount))
.ForPath(t => t.OrderCost.IsManualEdited, opt => opt.MapFrom(f => f.IsManualEdited));
.ForPath(t => t.OrderCost.IsManualEdited, opt => opt.MapFrom(f => f.IsManualEdited))
.ForPath(t => t.OrderPurchaseInfo.PurchasePlatform, opt => opt.MapFrom(f => f.PurchasePlatform))
.ForPath(t => t.OrderPurchaseInfo.PurchaserName, opt => opt.MapFrom(f => f.PurchaserName))
.ForPath(t => t.OrderPurchaseInfo.PurchaseAccountName, opt => opt.MapFrom(f => f.PurchaseAccountName))
.ForPath(t => t.OrderPurchaseInfo.PurchaseAccountId, opt => opt.MapFrom(f => f.PurchaseAccountId))
.ForPath(t => t.OrderPurchaseInfo.PurchaseMethod, opt => opt.MapFrom(f => f.PurchaseMethod))
.ForPath(t => t.OrderPurchaseInfo.PurchaseOrderId, opt => opt.MapFrom(f => f.PurchaseOrderId));
//CreateMap<AddOrEditPromotionTaskRequest, PromotionTask>();

Loading…
Cancel
Save