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.GroupOver.ObjToInt();
|
quantity -= residue;
|
}
|
else
|
{
|
orderDetails[i].ReceiptQuantity += quantity;
|
if (quantity == residue)
|
orderDetails[i].OrderDetailStatus = OrderDetailStatusEnum.GroupOver.ObjToInt();
|
quantity = 0;
|
}
|
updateOrderDetails.Add(orderDetails[i]);
|
}
|
}
|
return (updateOrderDetails);
|
}
|
|
public void UpdateOverInQuantity(List<Dt_InboundOrderDetail> inboundOrderDetails, decimal overInQuantity)
|
{
|
|
}
|
}
|
}
|