public void DeleteReturnedGoods(int pintReturnedGoodsMasterID) { //1. Variable int enm_InspStatus = 8; int constOldTranTypeID = (new MST_TranTypeDS()).GetTranTypeID(TransactionType.RETURN_GOODS_RECEIVE); SO_ReturnedGoodsDetailDS objSO_ReturnedGoodsDetailDS = new SO_ReturnedGoodsDetailDS(); SO_ReturnedGoodsMasterDS objSO_ReturnedGoodsMasterDS = new SO_ReturnedGoodsMasterDS(); //2. Get ReturnedGoodsMaster SO_ReturnedGoodsMasterVO voRuturnGoodsMaster = new SO_ReturnedGoodsMasterVO(); voRuturnGoodsMaster = (SO_ReturnedGoodsMasterVO)objSO_ReturnedGoodsMasterDS.GetObjectVO(pintReturnedGoodsMasterID); //Get List ReturnGoodsDetail by ReturnGoodsMasterID DataSet dsRGD = objSO_ReturnedGoodsDetailDS.ListReturnedGoodsDetail(pintReturnedGoodsMasterID); foreach (DataRow row in dsRGD.Tables[0].Rows) { //Update Inventory int MaslocID = (int)row[SO_ReturnedGoodsDetailTable.MASTERLOCATIONID_FLD]; int locID = (int)row[SO_ReturnedGoodsDetailTable.LOCATIONID_FLD]; int BinID = (int)row[SO_ReturnedGoodsDetailTable.BINID_FLD]; int ProductID = (int)row[SO_ReturnedGoodsDetailTable.PRODUCTID_FLD]; decimal decQuantityReceipt = (decimal)row[SO_ReturnedGoodsDetailTable.RECEIVEQUANTITY_FLD]; new InventoryUtilsBO().UpdateSubtractOHQuantity(voRuturnGoodsMaster.CCNID, MaslocID, locID, BinID, ProductID, decQuantityReceipt, string.Empty, string.Empty); } // Update TransactionHistory new MST_TransactionHistoryDS().UpdateTranType(voRuturnGoodsMaster.ReturnedGoodsMasterID, constOldTranTypeID, (int)TransactionTypeEnum.DeleteTransaction, enm_InspStatus); //delete the detail first objSO_ReturnedGoodsDetailDS.DeleteAllReturnedGoodsDetail(pintReturnedGoodsMasterID); //delete the master later objSO_ReturnedGoodsMasterDS.Delete(pintReturnedGoodsMasterID); }
public void UpdateCostHistory(DataRow pdrowReturnedGoodsDetail, bool blnNewReturnedGood, SO_ReturnedGoodsMasterVO pobjSO_ReturnedGoodsMasterVO, decimal pdcmAvgCost) { const string RETURNED_GOODS_TRANSACTION_NAME = "SOReturnGoodsReceive"; if (blnNewReturnedGood && pdrowReturnedGoodsDetail.RowState == DataRowState.Deleted) { //in case of adding a new returned goods //we don't care the deleted record //we only care the other states : Modified and AddNew return; } IV_CostHistoryVO objIV_CostHistoryVO = new IV_CostHistoryVO(); if (pdcmAvgCost < 0) { pdcmAvgCost = 0; } objIV_CostHistoryVO.ICDHItemCost21 = pdcmAvgCost; objIV_CostHistoryVO.ReceiveDate = pobjSO_ReturnedGoodsMasterVO.TransDate; objIV_CostHistoryVO.ReceiveRef = pobjSO_ReturnedGoodsMasterVO.ReturnedGoodsMasterID; objIV_CostHistoryVO.ReceiveRefLine = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.RETURNEDGOODSDETAILID_FLD].ToString()); //QA Status if (pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.QASTATUS_FLD].ToString().Trim() != String.Empty) { objIV_CostHistoryVO.QAStatus = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.QASTATUS_FLD].ToString()); } else { objIV_CostHistoryVO.QAStatus = 0; } //Party ID objIV_CostHistoryVO.PartyID = pobjSO_ReturnedGoodsMasterVO.PartyID; //Party Location objIV_CostHistoryVO.PartyLocationID = pobjSO_ReturnedGoodsMasterVO.PartyLocationID; //Master Location objIV_CostHistoryVO.MasterLocationID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.MASTERLOCATIONID_FLD].ToString()); //Product ID objIV_CostHistoryVO.ProductID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.PRODUCTID_FLD].ToString()); //CCN ID objIV_CostHistoryVO.CCNID = pobjSO_ReturnedGoodsMasterVO.CCNID; //Unit of measure if (pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString().Trim() != String.Empty) { objIV_CostHistoryVO.StockUMID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString()); } //get the TransType ID MST_TranTypeDS objMST_TranTypeDS = new MST_TranTypeDS(); objIV_CostHistoryVO.TranTypeID = objMST_TranTypeDS.GetIDFromCode(RETURNED_GOODS_TRANSACTION_NAME); //Insert this record into the IV_CostHistory IV_CostHistoryDS objIV_CostHistoryDS = new IV_CostHistoryDS(); objIV_CostHistoryDS.AddReturnedGoods(objIV_CostHistoryVO); }
public void UpdateTransactionHistory(DataRow pdrowReturnedGoodsDetail, bool blnNewReturnedGood, SO_ReturnedGoodsMasterVO pobjSO_ReturnedGoodsMasterVO, decimal pdcmAvgCost, decimal pdecUMRate) { const string RETURNED_GOODS_TRANSACTION_NAME = "SOReturnGoodsReceive"; const string QASTATUS_STATUS_1 = "1"; const string QASTATUS_STATUS_3 = "3"; if (blnNewReturnedGood && pdrowReturnedGoodsDetail.RowState == DataRowState.Deleted) { //in case of adding a new returned goods //we don't care the deleted record //we only care the other states : Modified and AddNew return; } MST_TransactionHistoryVO objMST_TransactionHistoryVO = new MST_TransactionHistoryVO(); objMST_TransactionHistoryVO.MasterLocationID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.MASTERLOCATIONID_FLD].ToString().Trim()); if (pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.BINID_FLD].ToString().Trim() != String.Empty) { objMST_TransactionHistoryVO.BinID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.BINID_FLD].ToString().Trim()); } objMST_TransactionHistoryVO.TransDate = new UtilsBO().GetDBDate(); objMST_TransactionHistoryVO.PostDate = pobjSO_ReturnedGoodsMasterVO.TransDate; objMST_TransactionHistoryVO.RefMasterID = pobjSO_ReturnedGoodsMasterVO.ReturnedGoodsMasterID; objMST_TransactionHistoryVO.RefDetailID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.RETURNEDGOODSDETAILID_FLD].ToString().Trim()); objMST_TransactionHistoryVO.Lot = pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.LOT_FLD].ToString().Trim(); objMST_TransactionHistoryVO.Serial = pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.SERIAL_FLD].ToString().Trim(); //try to get the inspection status if (pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.QASTATUS_FLD].ToString().Trim() == String.Empty) { objMST_TransactionHistoryVO.InspStatus = 0; } else { if (pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.QASTATUS_FLD].ToString().Trim() == QASTATUS_STATUS_1) { objMST_TransactionHistoryVO.InspStatus = int.Parse(QASTATUS_STATUS_1); } else { objMST_TransactionHistoryVO.InspStatus = int.Parse(QASTATUS_STATUS_3); } } objMST_TransactionHistoryVO.CCNID = pobjSO_ReturnedGoodsMasterVO.CCNID; //get the TransType ID MST_TranTypeDS objMST_TranTypeDS = new MST_TranTypeDS(); objMST_TransactionHistoryVO.TranTypeID = objMST_TranTypeDS.GetIDFromCode(RETURNED_GOODS_TRANSACTION_NAME); objMST_TransactionHistoryVO.PartyID = pobjSO_ReturnedGoodsMasterVO.PartyID; objMST_TransactionHistoryVO.PartyLocationID = pobjSO_ReturnedGoodsMasterVO.PartyLocationID; objMST_TransactionHistoryVO.LocationID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.LOCATIONID_FLD].ToString().Trim()); objMST_TransactionHistoryVO.ProductID = int.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.PRODUCTID_FLD].ToString().Trim()); if (pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString().Trim() != String.Empty) { objMST_TransactionHistoryVO.StockUMID = int.Parse(pdrowReturnedGoodsDetail[ITM_ProductTable.STOCKUMID_FLD].ToString().Trim()); } //calculate the NewAvg Cost //1.Get the OnHand Quantity from Master Location Cache //2.Calculate the Average Cost //3.Then NewAvgCost = (ReceiveQty + OnHanQty)/ ((ReceiveQty * AvgCost) + (OnHanQty * AvgCost)) IV_MasLocCacheDS objIV_MasLocCacheDS = new IV_MasLocCacheDS(); decimal dcmOnHanQty = objIV_MasLocCacheDS.GetOnHanQty(objMST_TransactionHistoryVO.ProductID, objMST_TransactionHistoryVO.CCNID, objMST_TransactionHistoryVO.MasterLocationID); if (pdcmAvgCost < 0) { pdcmAvgCost = 0; } decimal dcmReceiveQty = decimal.Parse(pdrowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.RECEIVEQUANTITY_FLD].ToString()); try { objMST_TransactionHistoryVO.NewAvgCost = (dcmReceiveQty + dcmOnHanQty) / ((dcmReceiveQty * pdcmAvgCost) + (dcmOnHanQty * pdcmAvgCost)); } catch { objMST_TransactionHistoryVO.NewAvgCost = 0; } objMST_TransactionHistoryVO.Quantity = dcmReceiveQty * pdecUMRate; new InventoryUtilsBO().SaveTransactionHistory(TransactionTypeEnum.SOReturnGoodsReceive.ToString(), (int)PurposeEnum.ReturnGoodReceipt, objMST_TransactionHistoryVO); }
public void UpdateInventoryInfor(DataSet dsReturnedGoodsDetail, bool blnNewReturnedGood, SO_ReturnedGoodsMasterVO pobjSO_ReturnedGoodsMasterVO) { const string AVG_COST_FLD = "AVGCost"; const string METHOD_NAME = THIS + "UpdateInventoryInfor()"; DataTable dtSaleOrderTotalCommit = null; //Get list of commited sale order and average cost if (pobjSO_ReturnedGoodsMasterVO.SaleOrderMasterID > 0) { dtSaleOrderTotalCommit = GetAvgCommitCost(pobjSO_ReturnedGoodsMasterVO.SaleOrderMasterID); } UtilsBO boUtils = new UtilsBO(); foreach (DataRow drowReturnedGoodsDetail in dsReturnedGoodsDetail.Tables[0].Rows) { decimal decUMRate = boUtils.GetUMRate(int.Parse(drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString()), int.Parse(drowReturnedGoodsDetail[ITM_ProductTable.STOCKUMID_FLD].ToString())); if (decUMRate == 0) { Exception ex = new Exception(); Hashtable htbUMCode = new Hashtable(); htbUMCode.Add(MST_UnitOfMeasureTable.UNITOFMEASUREID_FLD, ((MST_UnitOfMeasureVO)boUtils.GetUMInfor(int.Parse(drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString()))).Code); htbUMCode.Add(ITM_ProductTable.STOCKUMID_FLD, ((MST_UnitOfMeasureVO)boUtils.GetUMInfor(int.Parse(drowReturnedGoodsDetail[ITM_ProductTable.STOCKUMID_FLD].ToString()))).Code); throw new PCSBOException(ErrorCode.MESSAGE_UMRATE_IS_NOT_CONFIGURATED, METHOD_NAME, ex, htbUMCode); } if (blnNewReturnedGood && drowReturnedGoodsDetail.RowState == DataRowState.Deleted) { //in case of adding a new returned goods //we don't care the deleted record //we only care the other states : Modified and AddNew continue; } //calculate the avergae cost decimal dcmAVGCost = -1; if (pobjSO_ReturnedGoodsMasterVO.SaleOrderMasterID > 0 && drowReturnedGoodsDetail.RowState != DataRowState.Deleted) { //Find this product and SaleOrderMaster string strFindString = ITM_ProductTable.PRODUCTID_FLD + "=" + drowReturnedGoodsDetail[ITM_ProductTable.PRODUCTID_FLD].ToString(); strFindString += " AND " + SO_ReturnedGoodsMasterTable.SALEORDERMASTERID_FLD + "=" + pobjSO_ReturnedGoodsMasterVO.SaleOrderMasterID.ToString(); DataRow[] drowResult = dtSaleOrderTotalCommit.Select(strFindString); if (drowResult.Length > 0) { if (drowResult[0][AVG_COST_FLD] != DBNull.Value && drowResult[0][AVG_COST_FLD].ToString().Trim() != String.Empty) { dcmAVGCost = Decimal.Parse(drowResult[0][AVG_COST_FLD].ToString()); } } } #region UPDATE INTO TABLE IV_CostHistory /* * update IV_CostHistory * */ UpdateCostHistory(drowReturnedGoodsDetail, blnNewReturnedGood, pobjSO_ReturnedGoodsMasterVO, dcmAVGCost); #endregion #region INSERT INTO LotFIFO Table /* * update LotFIFO * first check this product Item if it is a actual cost * if it is actual cost and if there is lot control ==> insert into Lot FIFO */ // int intProductID = int.Parse(drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.PRODUCTID_FLD].ToString().Trim()); // ITM_ProductDS objITM_ProductDS = new ITM_ProductDS(); // bool blnIsProductActualCost = objITM_ProductDS.IsActualCost(intProductID); // if (blnIsProductActualCost) // { // if (drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.LOT_FLD].ToString().Trim() != String.Empty) // { // //initialize the VO class // IV_LotFIFOVO objIV_LotFIFOVO = new IV_LotFIFOVO(); // objIV_LotFIFOVO.CCNID = pobjSO_ReturnedGoodsMasterVO.CCNID; // objIV_LotFIFOVO.ProductID = intProductID; // objIV_LotFIFOVO.ReceiveDate = pobjSO_ReturnedGoodsMasterVO.TransDate; // objIV_LotFIFOVO.Lot = drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.LOT_FLD].ToString().Trim(); // // //get the Cost at the time this product was sold // //just go into the table DetailCOmmitInventory to get this // SO_CommitInventoryDetailDS objSO_CommitInventoryDetailDS = new SO_CommitInventoryDetailDS(); // objIV_LotFIFOVO.ActualCost21 = objSO_CommitInventoryDetailDS.GetCostOfGoodsSold(intProductID,objIV_LotFIFOVO.Lot); // // //insert a new record into this table // IV_LotFIFODS objIV_LotFIFODS = new IV_LotFIFODS(); // bool blnHasProductLot = objIV_LotFIFODS.HasProduct(objIV_LotFIFOVO.Lot,objIV_LotFIFOVO.CCNID,objIV_LotFIFOVO.ProductID); // if (!blnHasProductLot) // { // objIV_LotFIFODS.AddReturnedGoods(objIV_LotFIFOVO); // } // else // { // //update the onhand quantity // objIV_LotFIFODS.UpdateLotFIFO(objIV_LotFIFOVO); // } // } // } #endregion int intBinID = 0; if (drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.BINID_FLD].ToString() != string.Empty) { intBinID = (int)drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.BINID_FLD]; } new InventoryUtilsBO().UpdateAddOHQuantity(pobjSO_ReturnedGoodsMasterVO.CCNID, pobjSO_ReturnedGoodsMasterVO.MasterLocationID, int.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.LOCATIONID_FLD].ToString()), intBinID, int.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()), Decimal.Parse(drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.RECEIVEQUANTITY_FLD].ToString()) * decUMRate, //drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.LOT_FLD].ToString(), string.Empty, //drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.SERIAL_FLD].ToString() string.Empty); #region INSERT and UPDATE into IV_ItemSerial //if this detail row has Serial field (user inputted) //we have to update or insert into this table if (drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.SERIAL_FLD].ToString().Trim() != String.Empty) { //UpdateIVItemSerial(drowReturnedGoodsDetail,blnNewReturnedGood,pobjSO_ReturnedGoodsMasterVO); } #endregion #region UPDATE INTO TABLE MST_TransactionHistory /* * update MST_TransactionHistory * */ UpdateTransactionHistory(drowReturnedGoodsDetail, blnNewReturnedGood, pobjSO_ReturnedGoodsMasterVO, dcmAVGCost, decUMRate); #endregion } }
public int AddNewReturnedGoods(object objReturnedGoodsMaster, DataSet dsReturnedGoodsDetail) { const string BALANCE_QUANTITY = "BalanceQty"; const string METHOD_NAME = THIS + ".AddNewReturnedGoods()"; SO_ReturnedGoodsMasterDS objSO_ReturnedGoodsMasterDS = new SO_ReturnedGoodsMasterDS(); SO_ReturnedGoodsDetailDS objSO_ReturnedGoodsDetailDS = new SO_ReturnedGoodsDetailDS(); //First add the master record int intReturnedGoodMasterID = objSO_ReturnedGoodsMasterDS.AddReturnedGoodsAndReturnID(objReturnedGoodsMaster); UtilsBO boUtils = new UtilsBO(); if (((SO_ReturnedGoodsMasterVO)objReturnedGoodsMaster).SaleOrderMasterID > 0) { DataTable dstCheckBalanceOfAllItems = GetSaleOrderTotalCommit(((SO_ReturnedGoodsMasterVO)objReturnedGoodsMaster).SaleOrderMasterID); //update the dataset all of this id for (int i = 0; i < dsReturnedGoodsDetail.Tables[0].Rows.Count; i++) { if (dsReturnedGoodsDetail.Tables[0].Rows[i].RowState != DataRowState.Deleted) { dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.RETURNEDGOODSMASTERID_FLD] = intReturnedGoodMasterID; DataRow[] drowsData = dstCheckBalanceOfAllItems.Select(ITM_ProductTable.PRODUCTID_FLD + "=" + dsReturnedGoodsDetail.Tables[0].Rows[i][ITM_ProductTable.PRODUCTID_FLD].ToString()); if (drowsData.Length > 0) { decimal decRate = boUtils.GetUMRate(int.Parse(drowsData[0][SO_SaleOrderDetailTable.SELLINGUMID_FLD].ToString()), int.Parse(dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString())); if (decRate == 0) { Exception ex = new Exception(); Hashtable htbUMCode = new Hashtable(); htbUMCode.Add(MST_UnitOfMeasureTable.UNITOFMEASUREID_FLD, ((MST_UnitOfMeasureVO)boUtils.GetUMInfor(int.Parse(dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString()))).Code); htbUMCode.Add(ITM_ProductTable.STOCKUMID_FLD, ((MST_UnitOfMeasureVO)boUtils.GetUMInfor(int.Parse(dsReturnedGoodsDetail.Tables[0].Rows[i][ITM_ProductTable.STOCKUMID_FLD].ToString()))).Code); throw new PCSBOException(ErrorCode.MESSAGE_UMRATE_IS_NOT_CONFIGURATED, METHOD_NAME, ex, htbUMCode); } if ((decimal)drowsData[0][BALANCE_QUANTITY] * decRate < (decimal)dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.RECEIVEQUANTITY_FLD]) { throw new PCSException(ErrorCode.MESSAGE_RGA_RECEIVEQTYTOCOMMIT, dsReturnedGoodsDetail.Tables[0].Rows[i][ITM_ProductTable.PRODUCTID_FLD].ToString(), new Exception()); } dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.QUANTITYOFSELLING_FLD] = (decimal)dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.RECEIVEQUANTITY_FLD] / decRate; } } } } else { for (int i = 0; i < dsReturnedGoodsDetail.Tables[0].Rows.Count; i++) { if (dsReturnedGoodsDetail.Tables[0].Rows[i].RowState != DataRowState.Deleted) { dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.RETURNEDGOODSMASTERID_FLD] = intReturnedGoodMasterID; decimal decRate = boUtils.GetUMRate(int.Parse(dsReturnedGoodsDetail.Tables[0].Rows[i][ITM_ProductTable.STOCKUMID_FLD].ToString()), int.Parse(dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString())); if (decRate == 0) { Exception ex = new Exception(); Hashtable htbUMCode = new Hashtable(); htbUMCode.Add(MST_UnitOfMeasureTable.UNITOFMEASUREID_FLD, ((MST_UnitOfMeasureVO)boUtils.GetUMInfor(int.Parse(dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.UNITID_FLD].ToString()))).Code); htbUMCode.Add(ITM_ProductTable.STOCKUMID_FLD, ((MST_UnitOfMeasureVO)boUtils.GetUMInfor(int.Parse(dsReturnedGoodsDetail.Tables[0].Rows[i][ITM_ProductTable.STOCKUMID_FLD].ToString()))).Code); throw new PCSBOException(ErrorCode.MESSAGE_UMRATE_IS_NOT_CONFIGURATED, METHOD_NAME, ex, htbUMCode); } dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.QUANTITYOFSELLING_FLD] = (decimal)dsReturnedGoodsDetail.Tables[0].Rows[i][SO_ReturnedGoodsDetailTable.RECEIVEQUANTITY_FLD] / decRate; } } } //second add the detail objSO_ReturnedGoodsDetailDS.UpdateDataSetReturnedGoodsDetail(dsReturnedGoodsDetail, intReturnedGoodMasterID); //update history data SO_ReturnedGoodsMasterVO objSO_ReturnedGoodsMasterVO = (SO_ReturnedGoodsMasterVO)objReturnedGoodsMaster; objSO_ReturnedGoodsMasterVO.ReturnedGoodsMasterID = intReturnedGoodMasterID; UpdateInventoryInfor(dsReturnedGoodsDetail, true, objSO_ReturnedGoodsMasterVO); return(intReturnedGoodMasterID); }