Exemple #1
0
        internal static List <TB_OUT> GetList(SpareEntities db, TB_ASK materialAsk)
        {
            List <TB_OUT> partPickList = new List <TB_OUT>();

            var stockDetailList = StockDetailController.GetListByPartCode(db, materialAsk.PartCode).Where(p => p.Qty > 0).ToList();

            if (stockDetailList.Count == 0)
            {
                return(partPickList);
            }

            partPickList = SpareOutController.GetList(materialAsk, stockDetailList);
            return(partPickList);
        }
Exemple #2
0
        public static List <TB_OUT> GetList(TB_ASK materialAsk, List <TS_STOCK_DETAIL> stockDetailList)
        {
            List <TB_OUT> partPickList = new List <TB_OUT>();

            if (stockDetailList.Count == 0)
            {
                return(partPickList);
            }
            var stockDetail = stockDetailList.OrderBy(p => p.Batch).First();//FIFO
            var partPick    = new TB_OUT
            {
                PartCode     = materialAsk.PartCode,
                Batch        = stockDetail.Batch,
                BillQty      = materialAsk.Qty,
                FromLocCode  = stockDetail.LocCode,
                UnitPrice    = stockDetail.UnitPrice,
                DeptCode     = materialAsk.DeptCode,
                ProjectCode  = materialAsk.ProjectCode,
                WorklineCode = materialAsk.WorklineCode,
                EqptCode     = materialAsk.EqptCode,
                AskUser      = materialAsk.AskUser,
                AskTime      = materialAsk.AskTime,
                ConfirmUser  = materialAsk.ConfirmUser,
                ConfirmTime  = materialAsk.ConfirmTime
            };

            if (stockDetail.Qty >= materialAsk.Qty)
            {
                partPick.OutQty = materialAsk.Qty;
                partPick.Amount = partPick.UnitPrice * partPick.OutQty;
                partPickList.Add(partPick);
            }
            else
            {
                partPick.OutQty = stockDetail.Qty;
                partPick.Amount = partPick.UnitPrice * partPick.OutQty;
                partPickList.Add(partPick);
                stockDetailList.Remove(stockDetail);
                partPick.OutQty -= stockDetail.Qty;
                var pList = GetList(materialAsk, stockDetailList);
                partPickList.AddRange(pList);
            }
            return(partPickList);
        }
Exemple #3
0
 public static void AddOrUpdate(SpareEntities db, TB_ASK ask)
 {
     db.TB_ASK.AddOrUpdate(p => p.UID, ask);
 }