Beispiel #1
0
        /// <summary>
        ///     添加【其它出入库单】
        /// </summary>
        /// <param name="db"></param>
        /// <param name="bill">其它出入库单</param>
        /// <param name="details">其它出入库明细</param>
        /// <returns></returns>
        public static void AddOtherIn(SpareEntities db, TB_BILL bill, List <TB_OTHER_IN> details)
        {
            {
                SetBillNum(bill);                               //设置单据编号
                details.ForEach(p => p.BillNum = bill.BillNum); //设置明细编号
                BillController.AddOrUpdate(db, bill);           //添加单据
                foreach (var detail in details)
                {
                    OtherInController.AddOrUpdate(db, detail); //添加明细
                }

                var subBillType = (SubBillType)bill.SubBillType;
                switch (subBillType)
                {
                //出库
                case SubBillType.OtherOut:      //其它出库
//                    case SubBillType.ReturnToSupplier: //原料退货
                case SubBillType.InventoryLoss: //盘亏
                case SubBillType.ScrapDestroy:  //报废销毁
//                        var detailsOut = details.Select(detail => detail.ToStockDetailOut(bill)).ToList();
//                         StockDetailController.ListOut(db, bill, detailsOut); //更新【库存主表】【库存明细】出库
//
                    break;

                //入库
                case SubBillType.OtherIn:                              //其它入库
//                    case SubBillType.ProductReturn: //成品退货
                case SubBillType.InventoryProfit:                      //盘盈
                    var detailsIn = details.Select(detail => detail.ToStockDetailIn(bill)).ToList();
                    StockDetailController.ListIn(db, bill, detailsIn); //更新【库存主表】【库存明细】入库

                    break;

                case SubBillType.ProductUndecide:  //隔离
                case SubBillType.ProductScrap:     //报废
//                        var detailsMove = details.Select(p => p.ToStockMove()).ToList();
//                         StockDetailController.ListMove(db, bill, detailsMove); //更新【库存主表】【库存明细】

                    break;

                default:
                    throw new WmsException(ResultCode.Exception, bill.BillNum, "单据二级类型错误");
                }
                NotifyController.AddNotify(db, bill.OperName, NotifyType.OtherInApprove, bill.BillNum, "");
            }
        }
Beispiel #2
0
        /// <summary>
        ///     添加【原料收货单】
        /// </summary>
        /// <param name="db"></param>
        /// <param name="billList">原料收货单列表</param>
        /// <param name="detailList">原料收货明细列表</param>
        /// <returns></returns>
        public static void AddMaterialIn(SpareEntities db, List <TB_BILL> billList,
                                         List <TB_IN> detailList)
        {
            {
                foreach (var bill in billList)
                {
                    SetBillNum(bill);                                  //设置单据编号
                    detailList.ForEach(p => p.BillNum = bill.BillNum); //设置明细编号

                    BillController.AddOrUpdate(db, bill);              //添加【原料收货单】单据
                    SpareInController.AddList(db, detailList);         //添加【原料收货单】明细

                    var stockDetails = detailList.Select(detail => detail.ToStockDetailIn(bill)).ToList();
                    StockDetailController.ListIn(db, bill, stockDetails);  //更新【库存主表】【库存明细】
                }
                EntitiesFactory.SaveDb(db);
            }
        }
Beispiel #3
0
 /// <summary>
 ///     执行【领用还回单】
 /// </summary>
 /// <param name="db"></param>
 /// <param name="billList">领用还回单列表</param>
 /// <param name="detailList">领用还回明细列表</param>
 /// <returns></returns>
 public static void ExecuteSpareReturn(SpareEntities db, TB_BILL bill,
                                       List <TB_RETURN> detailList)
 {
     {
         foreach (var detail in detailList)
         {
             var stockDetail = new TS_STOCK_DETAIL()
             {
                 LocCode   = detail.ToLocCode,
                 PartCode  = detail.PartCode,
                 Batch     = detail.Batch,
                 Qty       = (decimal)detail.InQty,
                 UnitPrice = detail.UnitPrice,
                 UpdateQty = (decimal)detail.InQty
             };
             var stockDetails = new List <TS_STOCK_DETAIL>();
             stockDetails.Add(stockDetail);
             StockDetailController.ListIn(db, bill, stockDetails); //更新【库存主表】【库存明细】
             NotifyController.AddNotify(db, bill.OperName, NotifyType.SpareReturnApprove, bill.BillNum, "");
         }
         EntitiesFactory.SaveDb(db);
     }
 }