using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using WMS.Model.Stock; using WMS.IData; using WMS.Common; using WMS.Model.Base; namespace WMS.Business.Stock { public class BussAdjustList : IBussFactory { #region 查询库存调整单信息 /// /// 查询库存调整单 /// /// /// 实体集合 public List GetAdjustList(AdjustListModel model) { DataTable dt = DataProvider.Instance.AdjustList.GetAdjustList(model); List list = ConvertHelper.ConvertToList(dt); return list; } #endregion #region 新增或修改 /// /// 新增或修改 /// /// mode 实体 /// 工作标志 flg 0 新增,1 修改 public string ExecInsertUpdate(AdjustListModel mode, int flg) { Transaction = DataProvider.Instance.TranOracle; if (flg == 0) { DataProvider.Instance.AdjustList.ExecListAdd(mode); } else { DataProvider.Instance.AdjustList.ExecListUpdate(mode); } logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } #endregion #region 新增或修改(主表明细表同一个事务) /// /// 新增或修改 /// /// 主表 /// 明细实体集合 /// 操作标志 0 新增,1 修改 /// public string InsertUpdate(AdjustListModel mode, List list, int flg,ref string listId) { if (flg == 0)//新增 { #region 盘点单Status改成已调整 //获取流水号 if (mode.List_reason == "0" && !string.IsNullOrEmpty(mode.Count_id)) { CountingModel countModel = new CountingModel(); countModel.COUNT_ID = mode.Count_id; countModel.COUNT_STATUS = "5"; DataProvider.Instance.Counting.Update(countModel); } #endregion Transaction = DataProvider.Instance.TranOracle; // DataProvider.Instance.Message.Add(messModel); foreach (AdjustListInfoModel model in list) { model.LIST_ID = listId; DataProvider.Instance.AdjustListInfo.ExecListAdd(model); } } else//修改 { //先删除之前的表 AdjustListInfoModel mode_info = new AdjustListInfoModel(); mode_info.LIST_ID = mode.List_id; DataProvider.Instance.AdjustListInfo.DelList(mode_info); Transaction = DataProvider.Instance.TranOracle; //修改主表和插入新的明细 DataProvider.Instance.AdjustList.ExecListUpdate(mode); foreach (AdjustListInfoModel model in list) { DataProvider.Instance.AdjustListInfo.ExecListAdd(model); } } logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } #endregion #region 库存调整单审核 /// /// 库存调整单审核 /// /// /// /// public string Check(AdjustListModel adListmodel, string userID) { Transaction = DataProvider.Instance.TranOracle; DateTime dt_now = System.DateTime.Now.Date; #region 修改库存调整单状态 adListmodel.Status = "2"; adListmodel.List_checkdate = dt_now; adListmodel.List_checkper = userID; DataProvider.Instance.AdjustList.Check(adListmodel); #endregion //查出调整单明细 AdjustListInfoModel adinfo_model = new AdjustListInfoModel(); adinfo_model.LIST_ID = adListmodel.List_id; List adinfo_list = ConvertHelper.ConvertToList(DataProvider.Instance.AdjustListInfo.GetAdjustList(adinfo_model)); //库存实体、库位实体、商品实体 MIStockModel stoc = new MIStockModel(); StorageAreaLocationModel stoc_loc = new StorageAreaLocationModel(); GoodsInfoModel goods = new GoodsInfoModel(); foreach (AdjustListInfoModel _ad_info in adinfo_list) { //调整数量为0 的过滤 if (_ad_info.LIST_INFO_COUNT == 0) { continue; } #region 修改库存 stoc = new MIStockModel(); stoc.STORAGE_ID = _ad_info.Storage_id; stoc.AREA_ID = _ad_info.Area_id; stoc.LOCATION_ID = _ad_info.LOC_ID; stoc.GOODS_ID = _ad_info.LIST_INFO_GOODSID; stoc.PROVIDER_NAME = _ad_info.PUTIN_ID; //查询库存实体 DataTable dt_Stock = DataProvider.Instance.MIStock.GetMIStockDT(stoc); stoc = ConvertHelper.ConvertToList(dt_Stock)[0]; //修改库存数量 stoc.SHELVES_NUM = _ad_info.NEWCOUNT; DataProvider.Instance.MIStock.UpdateMIStock(stoc); #endregion #region 插入库存日志 MIStockBackModel back_model = new MIStockBackModel(); back_model.ID = DataProvider.Instance.MIStockBack.GetSerialNum(); back_model.STOCK_ID = stoc.STOCK_ID; back_model.STORAGE_ID = _ad_info.Storage_id; back_model.AREA_ID = _ad_info.Area_id; back_model.LOCATION_ID = _ad_info.LOC_ID; back_model.GOODS_TYPEID = _ad_info.Goods_typeid; back_model.GOODS_ID = _ad_info.LIST_INFO_GOODSID; back_model.ORI_NUM = _ad_info.Oldcount; back_model.CHANGE_NUM = _ad_info.NEWCOUNT;//改变后数量 back_model.GOODS_NUM = _ad_info.LIST_INFO_COUNT; back_model.OPERATOR_DATE = dt_now; back_model.OPERATOR_MAN = userID; back_model.PRODUCTION_DATE = _ad_info.Production_date; back_model.OPERATOR_TYPE = "2";//库存调整 back_model.REMARK = "库存调整"; DataProvider.Instance.MIStockBack.AddBMiStockack(back_model); #endregion #region 修改库位占用面积 //查询商品单位体积 Decimal goods_Volume = Convert.ToDecimal(DataProvider.Instance.Goods.GetGoodsDataTable(_ad_info.LIST_INFO_GOODSID, "", "", "").Rows[0]["GVOLUME"].ToString()); stoc_loc = new StorageAreaLocationModel(); stoc_loc.STORAGE_ID = back_model.STORAGE_ID; stoc_loc.STORAGE_AREA_ID = back_model.AREA_ID; stoc_loc.LOCATION_ID = back_model.LOCATION_ID; stoc_loc.HASVOLUME = back_model.CHANGE_NUM * goods_Volume; DataProvider.Instance.StorageAreaLocation.UpdateLocHasVolume(stoc_loc); #endregion } logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } #endregion #region 删除库存调整单 /// /// 删除库存调整单(明细一起删除掉) /// /// model 实体 /// 影响行数 public string DelList(AdjustListModel model) { Transaction = DataProvider.Instance.TranOracle; DataProvider.Instance.AdjustList.DelList(model); //删除明细 AdjustListInfoModel info_model = new AdjustListInfoModel(); info_model.LIST_ID = model.List_id; //主表 DataProvider.Instance.AdjustListInfo.DelList(info_model); logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } #endregion } }