using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_Core.Enums;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_IInboundRepository;
|
using WIDESEA_IInboundService;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_InboundService
|
{
|
public partial class InboundOrderDetailService : ServiceBase<Dt_InboundOrderDetail, IInboundOrderDetailRepository>, IInboundOrderDetailService
|
{
|
|
public List<Dt_InboundOrderDetail> UpdateReceiptQuantity(List<Dt_InboundOrderDetail> inboundOrderDetails, decimal receiptQuantity)
|
{
|
List<Dt_InboundOrderDetail> orderDetails = inboundOrderDetails.Where(x => x.ReceiptQuantity < x.OrderQuantity).ToList();
|
List<Dt_InboundOrderDetail> updateOrderDetails = new List<Dt_InboundOrderDetail>();
|
decimal quantity = receiptQuantity;
|
for (int i = 0; i < orderDetails.Count; i++)
|
{
|
if (quantity > 0)
|
{
|
decimal residue = orderDetails[i].OrderQuantity - orderDetails[i].ReceiptQuantity;
|
if (residue < quantity)
|
{
|
orderDetails[i].ReceiptQuantity = orderDetails[i].OrderQuantity;
|
orderDetails[i].OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
|
quantity -= residue;
|
}
|
else
|
{
|
orderDetails[i].ReceiptQuantity += quantity;
|
if (quantity == residue)
|
orderDetails[i].OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
|
quantity = 0;
|
}
|
updateOrderDetails.Add(orderDetails[i]);
|
}
|
}
|
return (updateOrderDetails);
|
}
|
|
/// <summary>
|
/// 获取箱数和袋数
|
/// </summary>
|
/// <param name="orderDetail"></param>
|
/// <returns></returns>
|
public (int BoxQuantity, int StockQuantity) GetBoxStockQuantity(Dt_InboundOrderDetail orderDetail)
|
{
|
int BoxQuantity = 40;
|
int StockQuantity = 320;
|
var Quantity = orderDetail.OrderQuantity - orderDetail.ReceiptQuantity;
|
if (Quantity < 320)
|
{
|
StockQuantity = Convert.ToInt32(Quantity);
|
BoxQuantity = StockQuantity / 8;
|
if (StockQuantity % 8 > 0) BoxQuantity++;
|
}
|
return (BoxQuantity, StockQuantity);
|
}
|
|
public void UpdateOverInQuantity(List<Dt_InboundOrderDetail> inboundOrderDetails, decimal overInQuantity)
|
{
|
|
}
|
}
|
}
|