c#list iteration inventory FIFO数量跟踪和利润计算

时间:2015-10-06 03:55:31

标签: c# linq

您好我正在尝试实施FIFO库存系统来计算利润/损失..而且我仍然坚持在列表中迭代以获得第一个价值。

我的示例数据如下所示......

enter image description here

我已经到了可以使用带有通用类对象的List准备数据集的阶段,如下所示。

我想要实现的是,每当有OUT事务类型时,我需要LookUp首先非零FIFOQuantityTrack并从那里取出数量并计算利润。

例如,在下面突出显示的日期,我需要先将1950 FIFOQuantityTrackValue更新为1925< = 1950-25(在此事件中出售)并将Profit_Loss更新为2980 * 25 - 25 * 2800(来自数量的条目)从...获取...依此类推...当从FIFOQuantityTrack中减去值时,如果它变为0,那么我需要继续下一个FIFOQuantity。

我不擅长解释,但希望这是有道理的......

public class OutputObject
{

    private int productID;

    public int ProductID
    {
        get { return productID; }
        set { productID = value; }
    }
    private DateTime date;

    public DateTime Date
    {
        get { return date; }
        set { date = value; }
    }
    private int transactionQuantity;

    public int TransactionQuantity
    {
        get { return transactionQuantity; }
        set { transactionQuantity = value; }
    }
    private string transactionType;

    public string TransactionType
    {
        get { return transactionType; }
        set { transactionType = value; }
    }
    private decimal unitPrice;

    public decimal UnitPrice
    {
        get { return unitPrice; }
        set { unitPrice = value; }
    }
    private int? fIFOQuantityTrack;

    public int? FIFOQuantityTrack
    {
        get { return fIFOQuantityTrack; }
        set { fIFOQuantityTrack = value; }
    }
    private int currentQuantity;

    public int CurrentQuantity
    {
        get { return currentQuantity; }
        set { currentQuantity = value; }
    }
    private decimal profitLoss;

    public decimal ProfitLoss
    {
        get { return profitLoss; }
        set { profitLoss = value; }
    }


}

#endregion
List<OutputObject> ListOutputObject;

1 个答案:

答案 0 :(得分:0)

我认为(UnitPrice * Quantity * IN / OUT)的简单SUM会得到结果。 对于IN使用-1和OUT只使用1。