shanji 3 years ago
parent
commit
0c1f19090b
  1. 24
      BBWY.Client/APIServices/OrderService.cs
  2. 2
      BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs
  3. 203
      BBWY.Client/Models/Order/ManualEditCostOrderSku.cs
  4. 5
      BBWY.Client/Models/Order/Order.cs
  5. 52
      BBWY.Client/ViewModels/Order/OrderListViewModel.cs
  6. 2
      BBWY.Client/Views/MainWindow.xaml
  7. 151
      BBWY.Client/Views/Order/ManualCalculationCost.xaml
  8. 56
      BBWY.Client/Views/Order/ManualCalculationCost.xaml.cs
  9. 41
      BBWY.Client/Views/Order/OrderList.xaml
  10. 2
      BBWY.Client/Views/Order/RelationPurchaseOrder.xaml
  11. 6
      BBWY.Client/Views/Order/SD.xaml.cs
  12. 55
      BBWY.Server.Business/Order/OrderBusiness.cs
  13. 2
      BBWY.Server.Business/Statistics/StatisticsBusiness.cs
  14. 170
      BBWY.Server.Model/Db/Order/OrderCostDetail.cs
  15. 69
      BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs
  16. 1
      BBWY.Server.Model/MappingProfiles.cs

24
BBWY.Client/APIServices/OrderService.cs

@ -3,6 +3,7 @@ using BBWY.Common.Http;
using BBWY.Common.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
namespace BBWY.Client.APIServices
@ -94,10 +95,12 @@ namespace BBWY.Client.APIServices
/// 手动计算成本
/// </summary>
/// <param name="orderId"></param>
/// <param name="isSetStorageType">是否设置仓储类型</param>
/// <param name="isSetStorageType"></param>
/// <param name="storageType"></param>
/// <param name="manualEditCostOrderSkuList"></param>
/// <param name="platformCommissionRatio"></param>
/// <returns></returns>
public ApiResponse<object> ManualCalculationCost(string orderId, bool isSetStorageType, StorageType storageType, decimal purchaseCost, decimal deliveryExpressFreight, decimal platformCommissionRatio)
public ApiResponse<object> ManualCalculationCost(string orderId, bool isSetStorageType, StorageType storageType, IList<ManualEditCostOrderSku> manualEditCostOrderSkuList, decimal platformCommissionRatio)
{
return SendRequest<object>(globalContext.BBYWApiHost, "api/order/ManualCalculationCost",
new
@ -105,8 +108,21 @@ namespace BBWY.Client.APIServices
orderId,
isSetStorageType,
storageType,
purchaseCost,
deliveryExpressFreight,
OrderCostDetailList = manualEditCostOrderSkuList.Select(osku => new
{
SkuId = osku.Id,
osku.ConsumableAmount,
osku.DeliveryExpressFreight,
osku.FirstFreight,
DeductionQuantity = osku.ItemTotal,
osku.OperationAmount,
osku.PurchaseFreight,
osku.ProductId,
osku.SkuAmount,
osku.StorageAmount,
osku.TotalCost,
osku.UnitCost
}),
platformCommissionRatio
}, null, HttpMethod.Post);
}

2
BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs

@ -69,7 +69,7 @@ namespace BBWY.Client.Models
public override string ToString()
{
//日期,店铺订单号,SKU编码,代发下单单号,售价,采购金额,头程费用,仓储服务费,快递费,平台扣点,补差金额,利润,利润率,收件人联系方式
//日期,店铺订单号,SKU编码,代发下单单号,售价,商品成本,头程费用,仓储服务费,快递费,平台扣点,补差金额,利润,利润率,收件人联系方式
return $"{OrderStartTime:yyyy-MM-dd HH:mm:ss},{OrderId},{SkuIds},{StorageType},{PurchaseOrderIds},{OrderTotalPrice},{PurchaseSkuAmount},{FirstFreight},{StorageAmount},{DeliveryExpressFreight},{PlatformCommissionAmount},{FreightPrice},{Profit},{ProfitRatio},{ConsigneeStr}";
}
}

203
BBWY.Client/Models/Order/ManualEditCostOrderSku.cs

@ -0,0 +1,203 @@
using System;
namespace BBWY.Client.Models
{
public class ManualEditCostOrderSku : NotifyObject
{
/// <summary>
/// 发货运费
/// </summary>
private decimal deliveryExpressFreight;
private string deliveryExpressFreightStr;
/// <summary>
/// 单件成本
/// </summary>
private decimal unitCost;
/// <summary>
/// Sku成本(商品成本)
/// </summary>
private decimal skuAmount;
private string skuAmountStr;
/// <summary>
/// 采购运费
/// </summary>
private decimal purchaseFreight;
private string purchaseFreightStr;
/// <summary>
/// 头程运费
/// </summary>
private decimal firstFreight;
private string firstFreightStr;
/// <summary>
/// 操作费
/// </summary>
private decimal operationAmount;
private string operationAmountStr;
/// <summary>
/// 耗材费
/// </summary>
private decimal consumableAmount;
private string consumableAmountStr;
/// <summary>
/// 仓储费
/// </summary>
private decimal storageAmount;
private string storageAmountStr;
/// <summary>
/// 总计(不含发货运费)
/// </summary>
private decimal totalCost;
/// <summary>
/// SkuId
/// </summary>
public string Id { get; set; }
public int ItemTotal { get; set; }
public string ProductId { get; set; }
public string ProductItemNum { get; set; }
public double Price { get; set; }
/// <summary>
/// Sku标题
/// </summary>
public string Title { get; set; }
public string Logo { get; set; }
public decimal DeliveryExpressFreight
{
get => deliveryExpressFreight; set
{
if (Set(ref deliveryExpressFreight, value))
{
OnAmountChanged?.Invoke();
}
}
}
public decimal UnitCost { get => unitCost; set { Set(ref unitCost, value); } }
public decimal SkuAmount
{
get => skuAmount; set
{
if (Set(ref skuAmount, value))
{
CalculationCost();
}
}
}
public decimal PurchaseFreight { get => purchaseFreight; set { if (Set(ref purchaseFreight, value)) { CalculationCost(); } } }
public decimal FirstFreight { get => firstFreight; set { if (Set(ref firstFreight, value)) { CalculationCost(); } } }
public decimal OperationAmount { get => operationAmount; set { if (Set(ref operationAmount, value)) { CalculationCost(); } } }
public decimal ConsumableAmount { get => consumableAmount; set { if (Set(ref consumableAmount, value)) { CalculationCost(); } } }
public decimal StorageAmount { get => storageAmount; set { if (Set(ref storageAmount, value)) { CalculationCost(); } } }
public decimal TotalCost
{
get => totalCost; set
{
if (Set(ref totalCost, value))
{
OnAmountChanged?.Invoke();
}
}
}
private void CalculationCost()
{
TotalCost = SkuAmount + PurchaseFreight + FirstFreight + OperationAmount + ConsumableAmount + StorageAmount;
UnitCost = ItemTotal == 0 ? 0 : TotalCost / ItemTotal;
}
public Action OnAmountChanged { get; set; }
public string SkuAmountStr
{
get => skuAmountStr; set
{
if (Set(ref skuAmountStr, value))
{
if (decimal.TryParse(skuAmountStr, out decimal d))
SkuAmount = d;
}
}
}
public string PurchaseFreightStr
{
get => purchaseFreightStr; set
{
if (Set(ref purchaseFreightStr, value))
{
if (decimal.TryParse(purchaseFreightStr, out decimal d))
PurchaseFreight = d;
}
}
}
public string FirstFreightStr
{
get => firstFreightStr; set
{
if (Set(ref firstFreightStr, value))
{
if (decimal.TryParse(firstFreightStr, out decimal d))
FirstFreight = d;
}
}
}
public string ConsumableAmountStr
{
get => consumableAmountStr; set
{
if (Set(ref consumableAmountStr, value))
{
if (decimal.TryParse(consumableAmountStr, out decimal d))
ConsumableAmount = d;
}
}
}
public string StorageAmountStr
{
get => storageAmountStr; set
{
if (Set(ref storageAmountStr, value))
{
if (decimal.TryParse(storageAmountStr, out decimal d))
StorageAmount = d;
}
}
}
public string OperationAmountStr
{
get => operationAmountStr; set
{
if (Set(ref operationAmountStr, value))
{
if (decimal.TryParse(operationAmountStr, out decimal d))
OperationAmount = d;
}
}
}
public string DeliveryExpressFreightStr
{
get => deliveryExpressFreightStr; set
{
if (Set(ref deliveryExpressFreightStr, value))
{
if (decimal.TryParse(deliveryExpressFreightStr, out decimal d))
DeliveryExpressFreight = d;
}
}
}
}
}

5
BBWY.Client/Models/Order/Order.cs

@ -80,6 +80,11 @@ namespace BBWY.Client.Models
/// </summary>
public decimal FreightPrice { get; set; }
/// <summary>
/// 实收金额
/// </summary>
public decimal ActualAmount { get { return OrderSellerPrice + FreightPrice; } }
/// <summary>
/// 商家优惠金额
/// </summary>

52
BBWY.Client/ViewModels/Order/OrderListViewModel.cs

@ -313,7 +313,7 @@ namespace BBWY.Client.ViewModels
}
else if (storageType == StorageType.SD)
{
var sd = new SD(orderId, true, order.VenderRemark, order.Flag, string.Empty, null, string.Empty, string.Empty);
var sd = new SD(orderId, true, order.VenderRemark, order.Flag, string.Empty, null, string.Empty, string.Empty, 0M, 0M);
sd.Closed += Sd_Closed;
sd.ShowDialog();
}
@ -432,7 +432,7 @@ namespace BBWY.Client.ViewModels
}
else if (order.StorageType == StorageType.SD)
{
var sd = new SD(order.Id, false, order.VenderRemark, order.Flag, order.SDKey, order.SDPayChannel, order.SDPayBillNo, order.SDOperator);
var sd = new SD(order.Id, false, order.VenderRemark, order.Flag, order.SDKey, order.SDPayChannel, order.SDPayBillNo, order.SDOperator, order.OrderCost.SDCommissionAmount, order.OrderCost.DeliveryExpressFreight);
sd.Closed += Sd_Closed;
sd.ShowDialog();
}
@ -475,7 +475,42 @@ namespace BBWY.Client.ViewModels
}
else
{
var manualCalculationCost = new ManualCalculationCost(orderId, isSetStorageType, storageType);
var order = OrderList.FirstOrDefault(o => o.Id == orderId);
var orderSkuList = order.ItemList.Select(osku => new ManualEditCostOrderSku()
{
Id = osku.Id,
ItemTotal = osku.ItemTotal,
Logo = osku.Logo,
Price = osku.Price,
Title = osku.Title,
ProductId = osku.ProductId,
ProductItemNum = osku.ProductItemNum
}).ToList();
foreach (var manualEditCostOrderSku in orderSkuList)
{
var orderCostDetailList = order.OrderCostDetailGroupList?.FirstOrDefault(g => g.SkuId == manualEditCostOrderSku.Id)?.Items;
if (orderCostDetailList != null && orderCostDetailList.Count > 0)
{
manualEditCostOrderSku.ConsumableAmount = orderCostDetailList.Sum(ocd => ocd.ConsumableAmount);
manualEditCostOrderSku.DeliveryExpressFreight = orderCostDetailList.Sum(ocd => ocd.DeliveryExpressFreight);
manualEditCostOrderSku.FirstFreight = orderCostDetailList.Sum(ocd => ocd.FirstFreight);
manualEditCostOrderSku.OperationAmount = orderCostDetailList.Sum(ocd => ocd.OperationAmount);
manualEditCostOrderSku.PurchaseFreight = orderCostDetailList.Sum(ocd => ocd.PurchaseFreight);
manualEditCostOrderSku.SkuAmount = orderCostDetailList.Sum(ocd => ocd.SkuAmount);
manualEditCostOrderSku.StorageAmount = orderCostDetailList.Sum(ocd => ocd.StorageAmount);
manualEditCostOrderSku.TotalCost = orderCostDetailList.Sum(ocd => ocd.TotalCost);
manualEditCostOrderSku.UnitCost = orderCostDetailList.FirstOrDefault().UnitCost;
}
manualEditCostOrderSku.ConsumableAmountStr = manualEditCostOrderSku.ConsumableAmount.ToString();
manualEditCostOrderSku.DeliveryExpressFreightStr = manualEditCostOrderSku.DeliveryExpressFreight.ToString();
manualEditCostOrderSku.FirstFreightStr = manualEditCostOrderSku.FirstFreight.ToString();
manualEditCostOrderSku.OperationAmountStr = manualEditCostOrderSku.OperationAmount.ToString();
manualEditCostOrderSku.PurchaseFreightStr = manualEditCostOrderSku.PurchaseFreight.ToString();
manualEditCostOrderSku.SkuAmountStr = manualEditCostOrderSku.SkuAmount.ToString();
manualEditCostOrderSku.StorageAmountStr = manualEditCostOrderSku.StorageAmount.ToString();
}
var manualCalculationCost = new ManualCalculationCost(orderId, isSetStorageType, storageType, orderSkuList);
manualCalculationCost.Closed += ManualCalculationCost_Closed;
manualCalculationCost.ShowDialog();
}
@ -491,11 +526,14 @@ namespace BBWY.Client.ViewModels
var orderId = manualCalculationCost.OrderId;
var storageType = manualCalculationCost.StorageType;
var isSetStorageType = manualCalculationCost.IsSetStorageType;
var purchaseCost = manualCalculationCost.PurchaseCost;
var deliveryExpressFreight = manualCalculationCost.DeliveryExpressFreight;
var manualEditCostOrderSkuList = manualCalculationCost.ManualEditCostOrderSkuList;
IsLoading = true;
Task.Factory.StartNew(() => orderService.ManualCalculationCost(orderId, isSetStorageType, storageType, purchaseCost, deliveryExpressFreight, globalContext.User.Shop.PlatformCommissionRatio ?? 0.05M)).ContinueWith(r =>
Task.Factory.StartNew(() => orderService.ManualCalculationCost(orderId,
isSetStorageType,
storageType,
manualEditCostOrderSkuList,
globalContext.User.Shop.PlatformCommissionRatio ?? 0.05M)).ContinueWith(r =>
{
var response = r.Result;
if (!response.Success)
@ -631,7 +669,7 @@ namespace BBWY.Client.ViewModels
try
{
var list = r.Data.Select(x => x.ToString()).ToList();
list.Insert(0, "日期,店铺订单号,SKU编码,仓储类型,代发下单单号,售价,采购金额,头程费用,仓储服务费,快递费,平台扣点,补差金额,利润,利润率,收件人联系方式,售后类型,售后与特殊情况备注");
list.Insert(0, "日期,店铺订单号,SKU编码,仓储类型,代发下单单号,售价,商品成本,头程费用,仓储服务费,快递费,平台扣点,补差金额,利润,利润率,收件人联系方式,售后类型,售后与特殊情况备注");
System.IO.File.WriteAllLines(ssaveFileName, list, Encoding.UTF8);
App.Current.Dispatcher.Invoke(() => MessageBox.Show("导出完成", "导出"));
}

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.Shop.Platform}" Margin="5,0,0,0"/>-->
<TextBlock Text="{Binding GlobalContext.User.Shop.ShopName}" Margin="5,0,0,0"/>
<TextBlock Text="v10022" Margin="5,0,0,0"/>
<TextBlock Text="v10023" Margin="5,0,0,0"/>
</StackPanel>
</Border>
<Grid Grid.Row="1">

151
BBWY.Client/Views/Order/ManualCalculationCost.xaml

@ -6,7 +6,7 @@
xmlns:local="clr-namespace:BBWY.Client.Views.Order"
xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
mc:Ignorable="d"
Title="手动计算成本" Height="450" Width="300"
Title="手动计算成本" Height="450" Width="1100"
Style="{StaticResource bwstyle}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed">
@ -21,7 +21,140 @@
<TextBlock x:Name="txt_StorageType" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Grid Grid.Row="1">
<DataGrid ItemsSource="{Binding ManualEditCostOrderSkuList}"
Grid.Row="1"
RowHeight="103">
<DataGrid.Columns>
<DataGridTemplateColumn Header="货品信息" Width="400">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid Width="{Binding ActualWidth,ElementName=listbox_orerSku}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="90"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!--{Binding Logo}-->
<c:BAsyncImage UrlSource="{Binding Logo}"
Width="80" DecodePixelWidth="80"
VerticalAlignment="Top" Margin="0,5,0,0"/>
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="0,3,0,5">
<TextBlock TextWrapping="Wrap">
<Run Text="SKU名称:"/>
<Run Text="{Binding Title}"/>
</TextBlock>
<TextBlock TextWrapping="Wrap">
<Run Text="单价:"/>
<Run Text="{Binding Price}"/>
</TextBlock>
<TextBlock TextWrapping="Wrap">
<Run Text="数量:"/>
<Run Text="{Binding ItemTotal}"/>
</TextBlock>
<TextBlock>
<Run Text="SPU:" />
<Run Text="{Binding ProductId}"/>
</TextBlock>
<TextBlock>
<Run Text="SKU:" />
<Run Text="{Binding Id}"/>
</TextBlock>
<TextBlock>
<Run Text="货号:" />
<Run Text="{Binding ProductItemNum}"/>
</TextBlock>
</StackPanel>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="数量" Width="50" Binding="{Binding ItemTotal}"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}"
ElementStyle="{StaticResource middleTextBlock}"/>
<DataGridTemplateColumn Header="商品成本" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding SkuAmountStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="采购运费" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding PurchaseFreightStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="头程运费" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding FirstFreightStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="仓储费" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding StorageAmountStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="操作费" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding OperationAmountStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="耗材费" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding ConsumableAmountStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="销售运费" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding DeliveryExpressFreightStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="单件成本" Width="70"
HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding UnitCost,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="*" HeaderStyle="{StaticResource ColumnHeaderStyle_Center}">
<DataGridTemplateColumn.Header>
<StackPanel>
<TextBlock Text="总采购成本" HorizontalAlignment="Center"/>
<TextBlock Text="(不含销售运费)" HorizontalAlignment="Center"/>
</StackPanel>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<c:BTextBox Text="{Binding TotalCost,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="5,0"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
<!--<Grid Grid.Row="1" Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="10"/>
<RowDefinition Height="40"/>
@ -68,9 +201,19 @@
<c:BButton x:Name="btn_fillFromLately" Content="填入最近一次信息" Grid.Row="9" Grid.ColumnSpan="2" Width="120"
Click="btn_fillFromLately_Click"/>
</Grid>
</Grid>-->
<StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Right" Margin="0,0,8,0">
<TextBlock Text="销售运费总计" VerticalAlignment="Center"/>
<TextBlock x:Name="txtTotalDeliveryExpressFreight" Text="100" VerticalAlignment="Center" Margin="2,0" Foreground="#EC808D"/>
<TextBlock Text="元" VerticalAlignment="Center"/>
<TextBlock Text="采购成本总计" VerticalAlignment="Center" Margin="10,0,0,0"/>
<TextBlock x:Name="txtTotalCost" Text="100" VerticalAlignment="Center" Margin="2,0" Foreground="#EC808D"/>
<TextBlock Text="元" VerticalAlignment="Center"/>
<c:BButton x:Name="btn_Save" Content="保存" Grid.Row="2" Width="60" HorizontalAlignment="Right" Margin="0,0,8,0"
<c:BButton x:Name="btn_Save" Content="保存" Width="60" Margin="10,0,0,0"
Click="btn_Save_Click"/>
</StackPanel>
</Grid>
</c:BWindow>

56
BBWY.Client/Views/Order/ManualCalculationCost.xaml.cs

@ -1,5 +1,7 @@
using BBWY.Client.Models;
using BBWY.Controls;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
namespace BBWY.Client.Views.Order
@ -15,13 +17,20 @@ namespace BBWY.Client.Views.Order
public StorageType StorageType { get; private set; }
public decimal PurchaseCost { get; private set; }
public List<ManualEditCostOrderSku> ManualEditCostOrderSkuList { get; set; }
public decimal DeliveryExpressFreight { get; private set; }
public ManualCalculationCost(string orderId, bool isSetStorageType, StorageType storageType)
public ManualCalculationCost(string orderId, bool isSetStorageType, StorageType storageType, IList<ManualEditCostOrderSku> manualEditCostOrderSkuList)
{
InitializeComponent();
this.DataContext = this;
ManualEditCostOrderSkuList = new List<ManualEditCostOrderSku>();
ManualEditCostOrderSkuList.AddRange(manualEditCostOrderSkuList);
foreach (var manualEditCostOrderSku in ManualEditCostOrderSkuList)
manualEditCostOrderSku.OnAmountChanged = () =>
{
txtTotalCost.Text = ManualEditCostOrderSkuList.Sum(osku => osku.TotalCost).ToString();
txtTotalDeliveryExpressFreight.Text = ManualEditCostOrderSkuList.Sum(osku => osku.DeliveryExpressFreight).ToString();
};
this.OrderId = orderId;
this.IsSetStorageType = isSetStorageType;
this.StorageType = storageType;
@ -32,11 +41,14 @@ namespace BBWY.Client.Views.Order
{
txt_StorageType.Text = $"{this.StorageType}-手动计算成本";
if (StorageType != StorageType. && StorageType != StorageType.)
{
txtFirstFreight.Visibility = Visibility.Collapsed;
this.Height = 290;
}
//if (StorageType != StorageType.云仓 && StorageType != StorageType.京仓)
//{
// txtFirstFreight.Visibility = Visibility.Collapsed;
// this.Height = 290;
//}
txtTotalCost.Text = ManualEditCostOrderSkuList.Sum(osku => osku.TotalCost).ToString();
txtTotalDeliveryExpressFreight.Text = ManualEditCostOrderSkuList.Sum(osku => osku.DeliveryExpressFreight).ToString();
}
private void btn_fillFromLately_Click(object sender, System.Windows.RoutedEventArgs e)
@ -46,22 +58,22 @@ namespace BBWY.Client.Views.Order
private void btn_Save_Click(object sender, System.Windows.RoutedEventArgs e)
{
if (!decimal.TryParse(txtSkuAmount.Text, out decimal skuAmount) ||
!decimal.TryParse(txtFeright.Text, out decimal feright) ||
!decimal.TryParse(txtDeliveryExpressFreight.Text, out decimal deliveryExpressFreight))
{
MessageBox.Show("请填写完整信息", "手动编辑成本");
return;
}
//if (!decimal.TryParse(txtSkuAmount.Text, out decimal skuAmount) ||
// !decimal.TryParse(txtFeright.Text, out decimal feright) ||
// !decimal.TryParse(txtDeliveryExpressFreight.Text, out decimal deliveryExpressFreight))
//{
// MessageBox.Show("请填写完整信息", "手动编辑成本");
// return;
//}
decimal.TryParse(txtFirstFreight.Text, out decimal firstFreight);
decimal.TryParse(txtOperationAmount.Text, out decimal operationAmount);
decimal.TryParse(txtConsumableAmount.Text, out decimal consumableAmount);
decimal.TryParse(txtStorageAmount.Text, out decimal storageAmount);
//decimal.TryParse(txtFirstFreight.Text, out decimal firstFreight);
//decimal.TryParse(txtOperationAmount.Text, out decimal operationAmount);
//decimal.TryParse(txtConsumableAmount.Text, out decimal consumableAmount);
//decimal.TryParse(txtStorageAmount.Text, out decimal storageAmount);
this.PurchaseCost = skuAmount + feright + firstFreight + operationAmount + consumableAmount + storageAmount;
this.DeliveryExpressFreight = deliveryExpressFreight;
//this.PurchaseCost = skuAmount + feright + firstFreight + operationAmount + consumableAmount + storageAmount;
//this.DeliveryExpressFreight = deliveryExpressFreight;
this.DialogResult = true;
this.Close();
}

41
BBWY.Client/Views/Order/OrderList.xaml

@ -482,7 +482,7 @@
CommandParameter="{Binding OrderDropShipping.PurchaseOrderId}"/>
</StackPanel>
<TextBlock>
<Run Text="采购金额"/>
<Run Text="采购成本"/>
<Run Text="{Binding OrderDropShipping.PurchaseAmount}"/>
</TextBlock>
</StackPanel>
@ -495,10 +495,30 @@
<StackPanel Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,10">
<TextBlock>
<Run Text="实收金额"/>
<Run Text="{Binding OrderSellerPrice}"/>
</TextBlock>
<StackPanel Orientation="Horizontal">
<TextBlock>
<Run Text="实收金额"/>
<Run Text="{Binding ActualAmount,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<Path Style="{StaticResource path_question}" Width="14" Margin="5,0,0,0" Fill="#EC808D" ToolTipService.InitialShowDelay="0">
<Path.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<StackPanel>
<TextBlock>
<Run Text="货款金额"/>
<Run Text="{Binding OrderSellerPrice}"/>
</TextBlock>
<TextBlock>
<Run Text="用户支付运费"/>
<Run Text="{Binding FreightPrice}"/>
</TextBlock>
</StackPanel>
</ToolTip>
</Path.ToolTip>
</Path>
</StackPanel>
<StackPanel x:Name="sp_orderCoupon" Orientation="Horizontal">
<TextBlock>
@ -510,12 +530,12 @@
<Path.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<ListBox ItemsSource="{Binding OrderCouponList}"
Style="{StaticResource NoScrollViewListBoxStyle}">
Style="{StaticResource NoScrollViewListBoxStyle}" Foreground="{StaticResource Text.Color}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding CouponType}"/>
<Run Text="{Binding CouponPrice,StringFormat=¥{0}}"/>
<Run Text="{Binding CouponType}"/>
<Run Text="{Binding CouponPrice,StringFormat=¥{0}}"/>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
@ -527,7 +547,7 @@
<StackPanel x:Name="sp_purchaseAmount" Orientation="Horizontal">
<TextBlock>
<Run Text="采购金额"/>
<Run Text="采购成本"/>
<Run Text="{Binding OrderCost.PurchaseAmount}"/>
</TextBlock>
@ -550,7 +570,8 @@
<ListBox Grid.Row="1"
ItemsSource="{Binding OrderCostDetailGroupList}"
Style="{StaticResource NoScrollViewListBoxStyle}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}">
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
Foreground="{StaticResource Text.Color}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>

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

@ -138,7 +138,7 @@
<StackPanel Orientation="Horizontal" Grid.Row="3" HorizontalAlignment="Right">
<TextBlock VerticalAlignment="Center" Margin="0,0,8,0">
<Run Text="总计"/>
<Run Text="{Binding OrderDropShipping.PurchaseAmount}"/>
<Run Text="{Binding OrderDropShipping.PurchaseAmount}" Foreground="#EC808D"/>
<Run Text="元"/>
</TextBlock>
<c:BButton x:Name="btn_Save" Content="保存" Width="60" Margin="0,0,8,0"

6
BBWY.Client/Views/Order/SD.xaml.cs

@ -34,7 +34,7 @@ namespace BBWY.Client.Views.Order
public string SdOperator { get; set; }
public SD(string orderId, bool isSetStorageType, string venderRemark, string flag, string sdKey, PayBillType? payChannel, string sdPayBillNo, string sdOperator)
public SD(string orderId, bool isSetStorageType, string venderRemark, string flag, string sdKey, PayBillType? payChannel, string sdPayBillNo, string sdOperator, decimal sdCommissionAmount, decimal deliveryExpressFreight)
{
InitializeComponent();
this.OrderId = orderId;
@ -45,6 +45,8 @@ namespace BBWY.Client.Views.Order
this.PayChannel = payChannel;
this.SdPayBillNo = sdPayBillNo;
this.SdOperator = sdOperator;
this.SDCommissionAmount = sdCommissionAmount;
this.DeliveryExpressFreight = deliveryExpressFreight;
}
private void BWindow_Loaded(object sender, RoutedEventArgs e)
{
@ -67,6 +69,8 @@ namespace BBWY.Client.Views.Order
this.cbx_SDPayChannel.SelectedItem = PayChannel;
this.txt_SDPayBillNo.Text = SdPayBillNo;
this.txt_SDOperator.Text = SdOperator;
this.txtDeliveryExpressFreight.Text = DeliveryExpressFreight.ToString();
this.txtSDCommissionAmount.Text = SDCommissionAmount.ToString();
}
private void btn_Save_Click(object sender, RoutedEventArgs e)

55
BBWY.Server.Business/Order/OrderBusiness.cs

@ -167,7 +167,7 @@ namespace BBWY.Server.Business
#endregion
#region 处理订单成本明细
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId)).ToList().Map<IList<OrderCostDetailResponse>>();
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList().Map<IList<OrderCostDetailResponse>>();
foreach (var order in orderList)
order.OrderCostDetailList = orderCostDetailList.Where(ocd => ocd.OrderId == order.Id).ToList();
#endregion
@ -242,13 +242,14 @@ namespace BBWY.Server.Business
var orderIdList = orderSourceList.Select(o => o.OrderId).ToList();
var orderSkuList = fsql.Select<OrderSku>().Where(osku => orderIdList.Contains(osku.OrderId)).ToList();
var orderCostDetailGroup = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId)).GroupBy(ocd => ocd.OrderId).ToList(g => new
{
OrderId = g.Key,
SkuAmount = g.Sum(g.Value.SkuAmount),
FirstFreight = g.Sum(g.Value.FirstFreight),
StorageAmount = g.Sum(g.Value.StorageAmount)
});
var orderCostDetailGroup = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true)
.GroupBy(ocd => ocd.OrderId).ToList(g => new
{
OrderId = g.Key,
SkuAmount = g.Sum(g.Value.SkuAmount),
FirstFreight = g.Sum(g.Value.FirstFreight),
StorageAmount = g.Sum(g.Value.StorageAmount)
});
foreach (var order in orderSourceList)
{
@ -333,7 +334,7 @@ namespace BBWY.Server.Business
var orderSkuList = fsql.Select<OrderSku>().Where(osku => osku.OrderId == orderId).ToList().Map<IList<OrderSkuResponse>>();
var orderCouponList = fsql.Select<OrderCoupon>().Where(oc => oc.OrderId == orderId).ToList().Map<IList<OrderCouponResponse>>();
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == orderId).ToList().Map<IList<OrderCostDetailResponse>>();
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == orderId && ocd.IsEnabled == true).ToList().Map<IList<OrderCostDetailResponse>>();
orderResponse.ItemList = orderSkuList;
orderResponse.OrderCouponList = orderCouponList;
@ -415,7 +416,7 @@ namespace BBWY.Server.Business
throw new BusinessException("库存为零不能自动计算成本");
var orderCost = fsql.Select<OrderCost>(autoCalculationCostRequest.OrderId).ToOne();
var orderCostDetails = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == autoCalculationCostRequest.OrderId).ToList();
var orderCostDetails = fsql.Select<OrderCostDetail>().Where(ocd => ocd.OrderId == autoCalculationCostRequest.OrderId && ocd.IsEnabled == true).ToList();
IUpdate<Order> orderUpdate = null;
IUpdate<OrderCost> updateOrderCost = null;
@ -558,13 +559,35 @@ namespace BBWY.Server.Business
var dbOrder = fsql.Select<Order>(manualCalculationCostRequest.OrderId).ToOne();
if (dbOrder == null)
throw new BusinessException($"订单号{manualCalculationCostRequest.OrderId}不存在");
if (manualCalculationCostRequest.OrderCostDetailList == null || manualCalculationCostRequest.OrderCostDetailList.Count() == 0)
throw new BusinessException($"缺少明细信息");
IUpdate<Order> orderUpdate = null;
IUpdate<OrderCost> updateOrderCost = null;
IInsert<OrderCost> insertOrderCost = null;
List<OrderCostDetail> insertOrderCostDetailList = new List<OrderCostDetail>();
if (manualCalculationCostRequest.IsSetStorageType)
orderUpdate = fsql.Update<Order>(manualCalculationCostRequest.OrderId).Set(o => o.StorageType, manualCalculationCostRequest.StorageType);
insertOrderCostDetailList.AddRange(manualCalculationCostRequest.OrderCostDetailList.Map<IList<OrderCostDetail>>());
foreach (var orderCostDetail in insertOrderCostDetailList)
{
orderCostDetail.Id = idGenerator.NewLong();
orderCostDetail.CreateTime = DateTime.Now;
orderCostDetail.OrderId = manualCalculationCostRequest.OrderId;
orderCostDetail.PurchaseOrderPKId = 0;
//orderCostDetail.TotalCost = orderCostDetail.SkuAmount +
// orderCostDetail.PurchaseFreight +
// orderCostDetail.FirstFreight +
// orderCostDetail.StorageAmount +
// orderCostDetail.ConsumableAmount +
// orderCostDetail.OperationAmount;
//orderCostDetail.UnitCost = orderCostDetail.TotalCost / orderCostDetail.DeductionQuantity;
}
var totalPurchaseCost = insertOrderCostDetailList.Sum(ocd => ocd.TotalCost);
var totalDeliveryExpressFreight = insertOrderCostDetailList.Sum(ocd => ocd.DeliveryExpressFreight);
var orderCost = fsql.Select<OrderCost>(manualCalculationCostRequest.OrderId).ToOne();
if (orderCost == null)
@ -577,8 +600,8 @@ namespace BBWY.Server.Business
PlatformCommissionRatio = manualCalculationCostRequest.PlatformCommissionRatio,
PreferentialAmount = dbOrder.PreferentialAmount,
Profit = 0,
PurchaseAmount = manualCalculationCostRequest.PurchaseCost,
DeliveryExpressFreight = manualCalculationCostRequest.DeliveryExpressFreight,
PurchaseAmount = totalPurchaseCost,
DeliveryExpressFreight = totalDeliveryExpressFreight,
CreateTime = DateTime.Now,
IsManualEdited = true
};
@ -592,8 +615,8 @@ namespace BBWY.Server.Business
}
else
{
orderCost.PurchaseAmount = manualCalculationCostRequest.PurchaseCost;
orderCost.DeliveryExpressFreight = manualCalculationCostRequest.DeliveryExpressFreight;
orderCost.PurchaseAmount = totalPurchaseCost;
orderCost.DeliveryExpressFreight = totalDeliveryExpressFreight;
orderCost.Profit = dbOrder.OrderSellerPrice +
dbOrder.FreightPrice -
orderCost.PurchaseAmount -
@ -605,9 +628,11 @@ namespace BBWY.Server.Business
fsql.Transaction(() =>
{
fsql.Update<OrderCostDetail>().Set(ocd => ocd.IsEnabled, false).Where(ocd => ocd.OrderId == manualCalculationCostRequest.OrderId).ExecuteAffrows();
orderUpdate?.ExecuteAffrows();
insertOrderCost?.ExecuteAffrows();
updateOrderCost?.ExecuteAffrows();
fsql.Insert(insertOrderCostDetailList).ExecuteAffrows();
});
}
@ -1029,7 +1054,7 @@ namespace BBWY.Server.Business
if (interfaceCanceledOrderIdList.Count() > 0 &&
dbOrderList.Any(dbOrder => interfaceCanceledOrderIdList.Contains(dbOrder.Id) && dbOrder.OrderState != Enums.OrderState.))
{
dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => interfaceCanceledOrderIdList.Contains(ocd.OrderId)).ToList();
dbOrderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => interfaceCanceledOrderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList();
}
var orderSkuIds = new List<string>();

2
BBWY.Server.Business/Statistics/StatisticsBusiness.cs

@ -88,7 +88,7 @@ namespace BBWY.Server.Business
//查询orderSku
var orderSkuList = fsql.Select<OrderSku>().Where(osku => orderIdList.Contains(osku.OrderId)).ToList();
//查询成本明细
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId)).ToList();
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList();
detailList = new List<XingXiangItemResponse>();
var totalSDOrderCost = 0M;

170
BBWY.Server.Model/Db/Order/OrderCostDetail.cs

@ -5,88 +5,92 @@ namespace BBWY.Server.Model.Db
{
[Table(Name = "ordercostdetail", DisableSyncStructure = true)]
public partial class OrderCostDetail {
[Column(DbType = "bigint(1)", IsPrimary = true)]
public long Id { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 扣减数量
/// </summary>
[Column(DbType = "int(1)")]
public int DeductionQuantity { get; set; } = 0;
/// <summary>
/// 发货运费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal DeliveryExpressFreight { get; set; } = 0.00M;
[Column(StringLength = 50)]
public string OrderId { get; set; }
[Column(StringLength = 50)]
public string ProductId { get; set; }
/// <summary>
/// 单件成本
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal UnitCost { get; set; } = 0.00M;
/// <summary>
/// 采购单流水Id
/// </summary>
[Column(DbType = "bigint(1)")]
public long PurchaseOrderPKId { get; set; }
[Column(StringLength = 50)]
public string SkuId { get; set; }
/// <summary>
/// Sku成本(商品成本)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal SkuAmount { get; set; } = 0.00M;
/// <summary>
/// 采购运费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal PurchaseFreight { get; set; } = 0.00M;
/// <summary>
/// 头程运费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal FirstFreight { get; set; } = 0.00M;
/// <summary>
/// 操作费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal OperationAmount { get; set; } = 0.00M;
/// <summary>
/// 耗材费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal ConsumableAmount { get; set; } = 0.00M;
/// <summary>
/// 仓储费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal StorageAmount { get; set; } = 0.00M;
/// <summary>
/// 总计(不含发货运费)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal TotalCost { get; set; } = 0.00M;
}
public partial class OrderCostDetail
{
[Column(DbType = "bigint(1)", IsPrimary = true)]
public long Id { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
/// <summary>
/// 扣减数量
/// </summary>
[Column(DbType = "int(1)")]
public int DeductionQuantity { get; set; } = 0;
/// <summary>
/// 发货运费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal DeliveryExpressFreight { get; set; } = 0.00M;
[Column(StringLength = 50)]
public string OrderId { get; set; }
[Column(StringLength = 50)]
public string ProductId { get; set; }
/// <summary>
/// 单件成本
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal UnitCost { get; set; } = 0.00M;
/// <summary>
/// 采购单流水Id
/// </summary>
[Column(DbType = "bigint(1)")]
public long PurchaseOrderPKId { get; set; }
[Column(StringLength = 50)]
public string SkuId { get; set; }
/// <summary>
/// Sku成本(商品成本)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal SkuAmount { get; set; } = 0.00M;
/// <summary>
/// 采购运费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal PurchaseFreight { get; set; } = 0.00M;
/// <summary>
/// 头程运费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal FirstFreight { get; set; } = 0.00M;
/// <summary>
/// 操作费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal OperationAmount { get; set; } = 0.00M;
/// <summary>
/// 耗材费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal ConsumableAmount { get; set; } = 0.00M;
/// <summary>
/// 仓储费
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal StorageAmount { get; set; } = 0.00M;
/// <summary>
/// 总计(不含发货运费)
/// </summary>
[Column(DbType = "decimal(20,2)")]
public decimal TotalCost { get; set; } = 0.00M;
[Column(DbType = "bit")]
public bool IsEnabled { get; set; } = true;
}
}

69
BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs

@ -1,4 +1,6 @@
namespace BBWY.Server.Model.Dto
using System.Collections.Generic;
namespace BBWY.Server.Model.Dto
{
public class ManualCalculationCostRequest
{
@ -8,19 +10,60 @@
public Enums.StorageType? StorageType { get; set; }
/// <summary>
/// 采购成本
/// </summary>
public decimal PurchaseCost { get; set; }
///// <summary>
///// 采购成本
///// </summary>
//public decimal PurchaseCost { get; set; }
///// <summary>
///// 发货运费
///// </summary>
//public decimal DeliveryExpressFreight { get; set; }
/// <summary>
/// 发货运费
/// </summary>
public decimal DeliveryExpressFreight { get; set; }
public IList<OrderCostDetailRequest> OrderCostDetailList { get; set; }
/// <summary>
/// 平台扣点
/// </summary>
public decimal PlatformCommissionRatio { get; set; }
/// <summary>
/// 平台扣点
/// </summary>
public decimal PlatformCommissionRatio { get; set; }
}
public class OrderCostDetailRequest
{
public int DeductionQuantity { get; set; } = 0;
public decimal DeliveryExpressFreight { get; set; } = 0.00M;
public string ProductId { get; set; }
public string SkuId { get; set; }
public decimal SkuAmount { get; set; } = 0.00M;
public decimal PurchaseFreight { get; set; } = 0.00M;
/// <summary>
/// 头程运费
/// </summary>
public decimal FirstFreight { get; set; } = 0.00M;
/// <summary>
/// 操作费
/// </summary>
public decimal OperationAmount { get; set; } = 0.00M;
/// <summary>
/// 耗材费
/// </summary>
public decimal ConsumableAmount { get; set; } = 0.00M;
/// <summary>
/// 仓储费
/// </summary>
public decimal StorageAmount { get; set; } = 0.00M;
public decimal TotalCost { get; set; } = 0M;
public decimal UnitCost { get; set; } = 0M;
}
}

1
BBWY.Server.Model/MappingProfiles.cs

@ -25,6 +25,7 @@ namespace BBWY.Server.Model
CreateMap<PurchaseOrder, PurchaseOrderResponse>();
CreateMap<OrderDropShippingRequest, OrderDropShipping>();
CreateMap<OrderCostDetailRequest, OrderCostDetail>();
CreateMap<OrderCostDetail, OrderCostDetailResponse>();
CreateMap<OrderConsignee, ConsigneeResponse>();
CreateMap<OrderCost, OrderCostResponse>();

Loading…
Cancel
Save