public void UpdateIVMasterLocationCache(DataRow pdrowReturnedGoodsDetail, bool blnNewReturnedGood, PO_ReturnToVendorMasterVO pobjPO_ReturnToVendorMasterVO) { try { 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; } /* * MasterLocCache (CCN, MasLoc, CODE(PRODUCTID), AVG Cost, On Hand Qty) * AVG Cost = SO_CommitInventoryDetail.CostOfGoodsSold (SO -> SO Detail -> CommitInventoryDetail) */ IV_MasLocCacheDS objIV_MasLocCacheDS = new IV_MasLocCacheDS(); bool blnHasProductID = objIV_MasLocCacheDS.HasProductID(int.Parse(pdrowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()), pobjPO_ReturnToVendorMasterVO.CCNID, pobjPO_ReturnToVendorMasterVO.MasterLocationID); //Initialize the VO for the MasLocCache object IV_MasLocCacheVO objIV_MasLocCacheVO = new IV_MasLocCacheVO(); objIV_MasLocCacheVO.ProductID = int.Parse(pdrowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()); objIV_MasLocCacheVO.MasterLocationID = pobjPO_ReturnToVendorMasterVO.MasterLocationID; objIV_MasLocCacheVO.CCNID = pobjPO_ReturnToVendorMasterVO.CCNID; //objIV_MasLocCacheVO.AVGCost = (float)pintAVGCost; //first we implement the case of totally adding new returned goods record //incase of updating an existing returned goods record //according to Mr.Nguyen Manh Cuong ==> Implement later ==> because it is very very complicated if (blnNewReturnedGood) { objIV_MasLocCacheVO.OHQuantity = Decimal.Parse(pdrowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD].ToString()) * (-1); } else { //this one is implemented later } if (blnHasProductID) { //update an existing product objIV_MasLocCacheDS.UpdateReturnedGoods(objIV_MasLocCacheVO); } else { //Insert a new product into inventory objIV_MasLocCacheDS.AddReturnedGoods(objIV_MasLocCacheVO); } } catch (PCSDBException ex) { throw ex; } catch (Exception ex) { throw ex; } }
private void UpdateIVMasterLocationCache(DataRow pdrowReturnedGoodsDetail, bool blnNewReturnedGood, PO_ReturnToVendorMasterVO pobjPO_ReturnToVendorMasterVO) { if (blnNewReturnedGood && pdrowReturnedGoodsDetail.RowState == DataRowState.Deleted) { return; } IV_MasLocCacheDS objIV_MasLocCacheDS = new IV_MasLocCacheDS(); bool blnHasProductID = objIV_MasLocCacheDS.HasProductID(int.Parse(pdrowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()), pobjPO_ReturnToVendorMasterVO.CCNID, pobjPO_ReturnToVendorMasterVO.MasterLocationID); //Initialize the VO for the MasLocCache object IV_MasLocCacheVO objIV_MasLocCacheVO = new IV_MasLocCacheVO(); objIV_MasLocCacheVO.ProductID = int.Parse(pdrowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()); objIV_MasLocCacheVO.MasterLocationID = pobjPO_ReturnToVendorMasterVO.MasterLocationID; objIV_MasLocCacheVO.CCNID = pobjPO_ReturnToVendorMasterVO.CCNID; //objIV_MasLocCacheVO.AVGCost = (float)pintAVGCost; //first we implement the case of totally adding new returned goods record //incase of updating an existing returned goods record //according to Mr.Nguyen Manh Cuong ==> Implement later ==> because it is very very complicated if (blnNewReturnedGood) { objIV_MasLocCacheVO.OHQuantity = Decimal.Parse(pdrowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD].ToString()) * (-1); } if (blnHasProductID) { objIV_MasLocCacheDS.UpdateReturnedGoods(objIV_MasLocCacheVO); } else { objIV_MasLocCacheDS.AddReturnedGoods(objIV_MasLocCacheVO); } }