Exemple #1
0
 public async Task SaveData(TD_OutStorage data)
 {
     if (data.Id.IsNullOrEmpty())
     {
         InitEntity(data);
         data.StorageId = _Op.Property.DefaultStorageId;
         foreach (var item in data.OutStorDetails)
         {
             InitEntity(item);
             item.OutStorId = data.Id;
             item.StorId    = data.StorageId;
             item.TotalAmt  = item.Price * item.LocalNum;
         }
         await _tD_OutStorageBus.AddDataAsync(data);
     }
     else
     {
         foreach (var item in data.OutStorDetails)
         {
             if (item.Id.StartsWith("newid_"))
             {
                 InitEntity(item);
             }
             item.OutStorId = data.Id;
             item.StorId    = data.StorageId;
             item.TotalAmt  = item.Price * item.LocalNum;
         }
         await _tD_OutStorageBus.UpdateDataAsync(data);
     }
 }
Exemple #2
0
        public async Task <AjaxResult <TD_OutStorage> > ManualOut(ManualOutStorageQM data)
        {
            var materialSvc = this._provider.GetRequiredService <IPB_MaterialBusiness>();
            var material    = await materialSvc.GetByBarcode(data.MaterialCode);

            if (material == null)
            {
                return new AjaxResult <TD_OutStorage>()
                       {
                           Success = false, Msg = "物料编码不正确"
                       }
            }
            ;
            var StorId = _Op.Property.DefaultStorageId;

            var entity = new TD_OutStorage()
            {
                SendId         = data.SendId,
                StorageId      = StorId,
                OutTime        = DateTime.Now,
                OutType        = "ProductOut",
                OutNum         = data.Num,
                Status         = 0,
                OutStorDetails = new List <TD_OutStorDetail>()
            };

            InitEntity(entity);

            var localSvc = this._provider.GetRequiredService <IPB_LocationBusiness>();
            var local    = await localSvc.GetByCode(StorId, data.LocalCode);

            if (local == null)
            {
                return new AjaxResult <TD_OutStorage>()
                       {
                           Success = false, Msg = "货位编码不正确"
                       }
            }
            ;

            string trayId = null;

            if (!data.TrayCode.IsNullOrEmpty())
            {
                var traySvc = this._provider.GetRequiredService <IPB_TrayBusiness>();

                var tray = await traySvc.GetByCode(data.TrayCode);

                if (tray == null)
                {
                    return new AjaxResult <TD_OutStorage>()
                           {
                               Success = false, Msg = "托盘编码不正确"
                           }
                }
                ;
                trayId = tray.Id;
            }

            var item = new TD_OutStorDetail()
            {
                StorId     = StorId,
                OutStorId  = entity.Id,
                LocalId    = local.Id,
                TrayId     = trayId,
                MaterialId = material.Id,
                BatchNo    = data.BatchNo,
                LocalNum   = data.Num,
                OutNum     = data.Num,
                Price      = material.Price.GetValueOrDefault(0),
                TotalAmt   = material.Price.GetValueOrDefault(0) * data.Num
            };

            InitEntity(item);
            entity.OutStorDetails.Add(item);

            await _tD_OutStorageBus.AddDataAsync(entity);

            return(new AjaxResult <TD_OutStorage>()
            {
                Success = true, Msg = "出库成功", Data = entity
            });
        }

        #endregion
    }
}
Exemple #3
0
        public async Task <AjaxResult <TD_OutStorage> > AutoOut(AutoOutStorageQM data)
        {
            var materialSvc = this._provider.GetRequiredService <IPB_MaterialBusiness>();
            var material    = await materialSvc.GetByBarcode(data.MaterialCode);

            if (material == null)
            {
                return new AjaxResult <TD_OutStorage>()
                       {
                           Success = false, Msg = "物料编码不正确"
                       }
            }
            ;
            var StorId  = _Op.Property.DefaultStorageId;
            var reqData = new ReqMaterialQM()
            {
                StorId = StorId, MaterialId = material.Id, BatchNo = data.BatchNo, Num = data.Num
            };
            var listOut = await this._tD_OutStorageBus.ReqMaterial(reqData);

            if (!listOut.Success)
            {
                return new AjaxResult <TD_OutStorage>()
                       {
                           Success = false, Msg = listOut.Msg
                       }
            }
            ;

            var entity = new TD_OutStorage()
            {
                SendId         = data.SendId,
                StorageId      = StorId,
                OutTime        = DateTime.Now,
                OutType        = "ProductOut",
                OutNum         = data.Num,
                Status         = 0,
                OutStorDetails = new List <TD_OutStorDetail>()
            };

            InitEntity(entity);
            foreach (var detail in listOut.Data)
            {
                var item = new TD_OutStorDetail()
                {
                    StorId     = StorId,
                    OutStorId  = entity.Id,
                    LocalId    = detail.LocalId,
                    TrayId     = detail.TrayId,
                    MaterialId = detail.MaterialId,
                    BatchNo    = detail.BatchNo,
                    LocalNum   = detail.LocalNum,
                    OutNum     = detail.OutNum,
                    Price      = material.Price.GetValueOrDefault(0),
                    TotalAmt   = material.Price.GetValueOrDefault(0) * detail.OutNum
                };

                InitEntity(item);
                entity.OutStorDetails.Add(item);
            }
            await _tD_OutStorageBus.AddDataAsync(entity);

            return(new AjaxResult <TD_OutStorage>()
            {
                Success = true, Msg = "出库成功", Data = entity
            });
        }