Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }