/// <summary> /// /// </summary> /// <param name="trxContext"></param> /// <param name="vo"></param> /// <returns></returns> public ValueObject Execute(TransactionContext trxContext, ValueObject vo) { StockVo inVo = (StockVo)vo; if (inVo == null) { MessageData messagedata = new MessageData("scce00040", Properties.Resources.scce00040); Exception ex = new NullReferenceException(); logger.Error(messagedata, ex); throw new Framework.ApplicationException(messagedata, ex); } if (string.IsNullOrWhiteSpace(inVo.FromMaterialNumber)) { MessageData messagedata = new MessageData("scce00041", Properties.Resources.scce00041); Exception ex = new NullReferenceException(); logger.Error(messagedata, ex); throw new Framework.ApplicationException(messagedata, ex); } if (string.IsNullOrWhiteSpace(inVo.ToMaterialNumber)) { MessageData messagedata = new MessageData("scce00042", Properties.Resources.scce00042); Exception ex = new NullReferenceException(); logger.Error(messagedata, ex); throw new Framework.ApplicationException(messagedata, ex); } return(getStockDao.Execute(trxContext, vo)); }
public override ValueObject Execute(TransactionContext trxContext, ValueObject vo) { StockVo inVo = (StockVo)vo; //create command SAPCommandAdapter sapCommandAdapter = base.GetSAPCommandAdaptor(trxContext, SAPRFCNameEnum.RFC_STOCK.GetValue()); //create parameter SAPParameterList sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("IM_PLANT", ServerConfigurationDataTypeEnum.DEFAULT_SAP_PLANT_CODE.GetValue()); // inVo.PlantCode); sapParameter.AddParameter("IM_LGORT", inVo.StorageLocationCode); //create table parameter and set to parameter SAPParameterList sapParameterTable = sapCommandAdapter.CreateParameterList(); foreach (string material in inVo.MaterialList) { SAPParameterList sapParameterRow = sapCommandAdapter.CreateParameterList(); sapParameterRow.AddParameter("MATERIAL", material); sapParameterTable.AddParameterList(sapParameterRow); } sapParameter.AddParameter("TB_MATERIAL", sapParameterTable); //create function SAPFunction sapFuntion = sapCommandAdapter.Execute(trxContext, sapParameter); DataTable sapTable = sapFuntion.GetSAPTable("TB_STOCK_DATA"); StockVo outVo = new StockVo(); foreach (DataRow dr in sapTable.Rows) { string stockQty = ConvertNull <string>(dr, "UNRESTRICTED_STCK"); StockVo currOutVo = new StockVo { ItemNumber = ConvertNull <string>(dr, "MATERIAL"), WarehouseCode = ConvertNull <string>(dr, "LGORT"), InternalLot = ConvertNull <string>(dr, "BATCH"), SupplierCode = ConvertNull <string>(dr, "VENDOR"), SupplierName = ConvertNull <string>(dr, "V_DESC"), OrderStr = ConvertNull <string>(dr, "GR_DATE") + ConvertNull <string>(dr, "GR_TIME") + ConvertNull <string>(dr, "BATCH"), SapBatchNumber = ConvertNull <string>(dr, "BATCH"), VendorBatchNumber = ConvertNull <string>(dr, "V_BATCH"), StockQty = (int)Convert.ToDecimal(stockQty), UnrestrictedStock = (int)Convert.ToDecimal(stockQty), PlanToConsume = (int)Convert.ToDecimal(stockQty), StockReserve = (int)Convert.ToDecimal(stockQty), StockReserve2 = (int)Convert.ToDecimal(stockQty) }; outVo.StockListVo.Add(currOutVo); } List <SapMessageVo> messageList = new List <SapMessageVo>(); DataTable sapMessageTable = sapFuntion.GetSAPTable("TB_RETURN"); foreach (DataRow dr in sapMessageTable.Rows) { SapMessageVo message = new SapMessageVo { MessageType = ConvertNull <string>(dr, "TYPE"), MessageClassId = ConvertNull <string>(dr, "ID"), MessageNumber = ConvertNull <string>(dr, "NUMBER"), LogNumber = ConvertNull <string>(dr, "MESSAGE"), LogMessageNumber = ConvertNull <string>(dr, "LOG_NO"), MessageVariable1 = ConvertNull <string>(dr, "MESSAGE_V1"), MessageVariable2 = ConvertNull <string>(dr, "MESSAGE_V2"), MessageVariable3 = ConvertNull <string>(dr, "MESSAGE_V3"), MessageVariable4 = ConvertNull <string>(dr, "MESSAGE_V4") }; messageList.Add(message); } outVo.SapMessageListVo = messageList; List <string> errorMaterialList = new List <string>(); DataTable errorMaterialTable = sapFuntion.GetSAPTable("TB_ERROR_MATERIAL"); foreach (DataRow dr in errorMaterialTable.Rows) { string errorMaterial = ConvertNull <string>(dr, "MATERIAL"); errorMaterialList.Add(errorMaterial); } outVo.ErrorMaterialList = errorMaterialList; return(outVo); }
public override ValueObject Execute(TransactionContext trxContext, ValueObject vo) { StockVo inVo = (StockVo)vo; //create command SAPCommandAdapter sapCommandAdapter = base.GetSAPCommandAdaptor(trxContext, SAPRFCNameEnum.RFC_STOCK.GetValue()); //create parameter SAPParameterList sapParameter = sapCommandAdapter.CreateParameterList(); sapParameter.AddParameter("IM_PLANT", inVo.PlantCode); sapParameter.AddParameter("IM_FROM_MATERIAL", inVo.FromMaterialNumber); sapParameter.AddParameter("IM_TO_MATERIAL", inVo.ToMaterialNumber); sapParameter.AddParameter("IM_LGORT", inVo.StorageLocationCode); SAPFunction sapFuntion = sapCommandAdapter.Execute(trxContext, sapParameter); DataTable sapTable = sapFuntion.GetSAPTable("TB_STOCK_DATA"); //StockVo outVo = new StockVo(); string stockQty; StockVo outVo = new StockVo(); foreach (DataRow dr in sapTable.Rows) { StockVo currOutVo = new StockVo(); stockQty = ConvertNull <string>(dr, "UNRESTRICTED_STCK"); currOutVo.UnrestrictedStock = (int)Convert.ToDecimal(stockQty); currOutVo.ItemNumber = ConvertNull <string>(dr, "MATERIAL"); currOutVo.StockQty = (int)Convert.ToDecimal(stockQty); currOutVo.WarehouseCode = ConvertNull <string>(dr, "LGORT"); currOutVo.InternalLot = ConvertNull <string>(dr, "BATCH"); currOutVo.SupplierCode = ConvertNull <string>(dr, "VENDOR"); currOutVo.SupplierName = ConvertNull <string>(dr, "V_DESC"); currOutVo.OrderStr = ConvertNull <string>(dr, "GR_DATE") + ConvertNull <string>(dr, "GR_TIME") + ConvertNull <string>(dr, "BATCH"); currOutVo.PlanToConsume = currOutVo.UnrestrictedStock; currOutVo.StockReserve = currOutVo.UnrestrictedStock; currOutVo.StockReserve2 = currOutVo.UnrestrictedStock; currOutVo.SapBatchNumber = ConvertNull <string>(dr, "BATCH"); currOutVo.VendorBatchNumber = ConvertNull <string>(dr, "V_BATCH"); outVo.StockListVo.Add(currOutVo); } List <SapMessageVo> messageList = new List <SapMessageVo>(); DataTable sapMessageTable = sapFuntion.GetSAPTable("TB_RETURN"); foreach (DataRow dr in sapMessageTable.Rows) { SapMessageVo message = new SapMessageVo { MessageType = ConvertNull <string>(dr, "TYPE"), MessageClassId = ConvertNull <string>(dr, "ID"), MessageNumber = ConvertNull <string>(dr, "NUMBER"), LogNumber = ConvertNull <string>(dr, "MESSAGE"), LogMessageNumber = ConvertNull <string>(dr, "LOG_NO"), MessageVariable1 = ConvertNull <string>(dr, "MESSAGE_V1"), MessageVariable2 = ConvertNull <string>(dr, "MESSAGE_V2"), MessageVariable3 = ConvertNull <string>(dr, "MESSAGE_V3"), MessageVariable4 = ConvertNull <string>(dr, "MESSAGE_V4") }; messageList.Add(message); } outVo.SapMessageListVo = messageList; return(outVo); }