/// <summary> /// DeleteInventoryAdjustmentTransaction /// </summary> /// <param name="printInventoryAdjustmentID"></param> /// <returns></returns> /// <author>CanhNV</author> /// <date>24-03-2007</date> public void DeleteInventoryAdjustmentTransaction(int printInventoryAdjustmentID) { // 0. Variable IV_AdjustmentDS objAdjustmentDS = new IV_AdjustmentDS(); IV_AdjustmentVO voAdjustment = new IV_AdjustmentVO(); MST_TransactionHistoryVO voTransactionHistory = new MST_TransactionHistoryVO(); decimal decQuantity = 0; int InspStatus = 172; // 1. Get Infomation of InventoryAdjustment voAdjustment = (IV_AdjustmentVO)objAdjustmentDS.GetObjectVOByAdjustmentID(printInventoryAdjustmentID); // 2. Delete InventoryAdjustment objAdjustmentDS.DeleteByAdjustmentID(printInventoryAdjustmentID); #region Set voTransactionHistory value voTransactionHistory.TransDate = new UtilsBO().GetDBDate(); voTransactionHistory.TranTypeID = new MST_TranTypeDS().GetTranTypeID(TransactionType.INVENTORY_ADJUSTMENT); voTransactionHistory.ProductID = voAdjustment.ProductID; voTransactionHistory.CCNID = voAdjustment.CCNID; voTransactionHistory.Lot = voAdjustment.Lot; voTransactionHistory.StockUMID = voAdjustment.StockUMID; voTransactionHistory.Serial = voAdjustment.Serial; voTransactionHistory.PostDate = voAdjustment.PostDate; voTransactionHistory.RefMasterID = voAdjustment.AdjustmentID; voTransactionHistory.Quantity = voAdjustment.AdjustQuantity; voTransactionHistory.MasterLocationID = voAdjustment.MasterLocationID; voTransactionHistory.LocationID = voAdjustment.LocationID; voTransactionHistory.BinID = voAdjustment.BinID; #endregion // 3. Update TransactionHistory new MST_TransactionHistoryDS().UpdateTranType(voAdjustment.AdjustmentID, voTransactionHistory.TranTypeID, (int)TransactionTypeEnum.DeleteTransaction, InspStatus); }
/// <summary> /// AddAndReturnID /// </summary> /// <param name="pobjObject"></param> /// <author>Trada</author> /// <date>Wednesday, July 27 2005</date> public int AddAndReturnID(object pobjObject) { string METHODE_NAME = "AddAndReturnID()"; IV_AdjustmentVO voIV_Adjustment = (IV_AdjustmentVO)pobjObject; decimal decRemain = 0; //Check Available Quantity InventoryUtilsBO boInventoryUtils = new InventoryUtilsBO(); DateTime dtmCurrentDate = new UtilsBO().GetDBDate().AddDays(1); if (voIV_Adjustment.AdjustQuantity < 0) { decRemain = boInventoryUtils.GetAvailableQtyByPostDate(dtmCurrentDate, voIV_Adjustment.CCNID, voIV_Adjustment.MasterLocationID, voIV_Adjustment.LocationID, voIV_Adjustment.BinID, voIV_Adjustment.ProductID) + voIV_Adjustment.AdjustQuantity; if (decRemain < 0) { throw new PCSBOException(ErrorCode.MESSAGE_IV_ADJUSTMENT_ADJUSTQTY_MUST_BE_SMALLER_THAN_AVAILABLEQTY, METHODE_NAME, new Exception()); } else { decimal decAvailableQty = boInventoryUtils.GetAvailableQtyByPostDate(new UtilsBO().GetDBDate(), voIV_Adjustment.CCNID, voIV_Adjustment.MasterLocationID, voIV_Adjustment.LocationID, voIV_Adjustment.BinID, voIV_Adjustment.ProductID); if (-voIV_Adjustment.AdjustQuantity > decAvailableQty) { throw new PCSBOException(ErrorCode.MESSAGE_AVAILABLE_WAS_USED_AFTER_POSTDATE, METHODE_NAME, new Exception()); } } } //AddAndReturnID int pintIV_AdjustmentID; IV_AdjustmentDS dsIV_Adjustment = new IV_AdjustmentDS(); pintIV_AdjustmentID = dsIV_Adjustment.AddAndReturnID(pobjObject); //Update Add Onhand Quantity boInventoryUtils.UpdateAddOHQuantity(voIV_Adjustment.CCNID, voIV_Adjustment.MasterLocationID, voIV_Adjustment.LocationID, voIV_Adjustment.BinID, voIV_Adjustment.ProductID, voIV_Adjustment.AdjustQuantity, voIV_Adjustment.Lot, voIV_Adjustment.Serial); //Save history to MST_TransactionHistory MST_TransactionHistoryVO voMST_TransactionHistory = new MST_TransactionHistoryVO(); voMST_TransactionHistory.CCNID = voIV_Adjustment.CCNID; voMST_TransactionHistory.MasterLocationID = voIV_Adjustment.MasterLocationID; voMST_TransactionHistory.LocationID = voIV_Adjustment.LocationID; voMST_TransactionHistory.BinID = voIV_Adjustment.BinID; voMST_TransactionHistory.ProductID = voIV_Adjustment.ProductID; voMST_TransactionHistory.RefMasterID = pintIV_AdjustmentID; voMST_TransactionHistory.TranTypeID = new MST_TranTypeDS().GetTranTypeID(TransactionType.INVENTORY_ADJUSTMENT); voMST_TransactionHistory.PostDate = voIV_Adjustment.PostDate; voMST_TransactionHistory.TransDate = new UtilsBO().GetDBDate(); voMST_TransactionHistory.Quantity = voIV_Adjustment.AdjustQuantity; voMST_TransactionHistory.StockUMID = voIV_Adjustment.StockUMID; boInventoryUtils.SaveTransactionHistory(TransactionType.INVENTORY_ADJUSTMENT, (int)PurposeEnum.Adjustment, voMST_TransactionHistory); return(pintIV_AdjustmentID); }
public void CancelCommitment(DataTable pdtbData, int pintCCNID) { const string Cancel = "Cancel", True = "True"; SO_CommitInventoryDetailDS dsCommitDetail = new SO_CommitInventoryDetailDS(); UtilsBO boUtils = new UtilsBO(); foreach (DataRow drowData in pdtbData.Rows) { if ((drowData.RowState == DataRowState.Modified) && (drowData[Cancel].ToString() == True)) { decimal decRate = boUtils.GetUMRate(int.Parse(drowData[SO_CommitInventoryDetailTable.SELLINGUMID_FLD].ToString()), int.Parse(drowData[ITM_ProductTable.STOCKUMID_FLD].ToString())); int intProductID = int.Parse(drowData[SO_CommitInventoryDetailTable.PRODUCTID_FLD].ToString()); int intSOMasterID = int.Parse(drowData[SO_CommitInventoryDetailTable.COMMITINVENTORYMASTERID_FLD].ToString()); int intSODetailID = int.Parse(drowData[SO_CommitInventoryDetailTable.COMMITINVENTORYDETAILID_FLD].ToString()); Decimal decQuantity = Decimal.Parse(drowData[SO_CommitInventoryDetailTable.COMMITQUANTITY_FLD].ToString()); int intMasLocID = 0; if (drowData[SO_CommitInventoryDetailTable.MASTERLOCATIONID_FLD].ToString() != string.Empty) { intMasLocID = int.Parse(drowData[SO_CommitInventoryDetailTable.MASTERLOCATIONID_FLD].ToString()); } int intLocationID = 0; if (drowData[SO_CommitInventoryDetailTable.LOCATIONID_FLD].ToString() != string.Empty) { intLocationID = int.Parse(drowData[SO_CommitInventoryDetailTable.LOCATIONID_FLD].ToString()); } int intBinID = 0; if (drowData[SO_CommitInventoryDetailTable.BINID_FLD].ToString() != string.Empty) { intBinID = int.Parse(drowData[SO_CommitInventoryDetailTable.BINID_FLD].ToString()); } MST_TransactionHistoryVO voTransaction = new MST_TransactionHistoryVO(); voTransaction.CCNID = pintCCNID; voTransaction.MasterLocationID = intMasLocID; voTransaction.ProductID = intProductID; voTransaction.LocationID = intLocationID; voTransaction.BinID = intBinID; voTransaction.RefMasterID = intSOMasterID; voTransaction.RefDetailID = intSODetailID; voTransaction.PostDate = boUtils.GetDBDate(); voTransaction.TransDate = boUtils.GetDBDate(); voTransaction.Quantity = decQuantity * decRate; voTransaction.TranTypeID = new MST_TranTypeDS().GetTranTypeID(TransactionType.CANCEL_COMMITMENT); voTransaction.StockUMID = (int)drowData[SO_CommitInventoryDetailTable.STOCKUMID_FLD]; new InventoryUtilsBO().UpdateSubtractCommitQuantity(pintCCNID, intMasLocID, intLocationID, intBinID, intProductID, decQuantity * decRate, string.Empty, string.Empty); dsCommitDetail.Delete(int.Parse(drowData[SO_CommitInventoryDetailTable.COMMITINVENTORYDETAILID_FLD].ToString())); new InventoryUtilsBO().SaveTransactionHistory(TransactionType.CANCEL_COMMITMENT, (int)PurposeEnum.CancelCommitment, voTransaction); } } AutoDeleteCommitInventoryMaster(); }
/// <summary> /// AddComponentScrapAndReturnID /// </summary> /// <param name="pobjCompScrapMasterVO"></param> /// <param name="pdstData"></param> /// <returns></returns> /// <author>Trada</author> /// <date>Friday, July 1 2005</date> public int AddComponentScrapAndReturnID(object pobjCompScrapMasterVO, DataSet pdstData) { //Add a new CompScrapMasterVO to PRO_ComponentScrapMaster Table int pintComponentScrapMasterID; PRO_ComponentScrapMasterDS dsComponentScrapMaster = new PRO_ComponentScrapMasterDS(); pintComponentScrapMasterID = dsComponentScrapMaster.AddAndReturnID(pobjCompScrapMasterVO); PRO_ComponentScrapMasterVO voComponentScrapMaster = (PRO_ComponentScrapMasterVO)pobjCompScrapMasterVO; //UpdateDataSet into PRO_ComponentScrapDetail Table foreach (DataRow drow in pdstData.Tables[0].Rows) { drow[PRO_ComponentScrapDetailTable.COMPONENTSCRAPMASTERID_FLD] = pintComponentScrapMasterID; } foreach (DataRow drow in pdstData.Tables[0].Rows) { InventoryUtilsBO boInventoryUtils = new InventoryUtilsBO(); //update add inventory boInventoryUtils.UpdateAddOHQuantity(voComponentScrapMaster.CCNID, voComponentScrapMaster.MasterLocationID, int.Parse(drow[PRO_ComponentScrapDetailTable.TOLOCATIONID_FLD].ToString()), int.Parse(drow[PRO_ComponentScrapDetailTable.TOBINID_FLD].ToString()), int.Parse(drow[PRO_ComponentScrapDetailTable.COMPONENTID_FLD].ToString()), decimal.Parse( drow[PRO_ComponentScrapDetailTable.SCRAPQUANTITY_FLD].ToString()), string.Empty, string.Empty); //update subtract inventory boInventoryUtils.UpdateSubtractOHQuantity(voComponentScrapMaster.CCNID, voComponentScrapMaster.MasterLocationID, int.Parse( drow[PRO_ComponentScrapDetailTable.FROMLOCATIONID_FLD].ToString()), int.Parse( drow[PRO_ComponentScrapDetailTable.FROMBINID_FLD].ToString()), int.Parse( drow[PRO_ComponentScrapDetailTable.COMPONENTID_FLD].ToString()), decimal.Parse( drow[PRO_ComponentScrapDetailTable.SCRAPQUANTITY_FLD].ToString()), string.Empty, string.Empty); //update transaction history MST_TransactionHistoryVO voTransactionHistory = new MST_TransactionHistoryVO(); voTransactionHistory.CCNID = voComponentScrapMaster.CCNID; voTransactionHistory.MasterLocationID = voComponentScrapMaster.MasterLocationID; voTransactionHistory.PostDate = voComponentScrapMaster.PostDate; voTransactionHistory.TransDate = (new UtilsBO()).GetDBDate(); voTransactionHistory.RefMasterID = pintComponentScrapMasterID; //voTransactionHistory.RefDetailID = int.Parse(drow[PRO_ComponentScrapDetailTable.COMPONENTSCRAPDETAILID_FLD].ToString()); voTransactionHistory.LocationID = int.Parse(drow[PRO_ComponentScrapDetailTable.FROMLOCATIONID_FLD].ToString()); voTransactionHistory.BinID = int.Parse(drow[PRO_ComponentScrapDetailTable.FROMBINID_FLD].ToString()); voTransactionHistory.Quantity = -decimal.Parse(drow[PRO_ComponentScrapDetailTable.SCRAPQUANTITY_FLD].ToString()); voTransactionHistory.ProductID = int.Parse(drow[PRO_ComponentScrapDetailTable.COMPONENTID_FLD].ToString()); voTransactionHistory.PurposeID = (int)PurposeEnum.Scrap; voTransactionHistory.TranTypeID = new MST_TranTypeDS().GetTranTypeID(TransactionTypeEnum.IVMiscellaneousIssue.ToString()); voTransactionHistory.StockUMID = int.Parse(drow[ITM_ProductTable.STOCKUMID_FLD].ToString()); boInventoryUtils.SaveTransactionHistory(TransactionTypeEnum.IVMiscellaneousIssue.ToString(), (int)PurposeEnum.Scrap, voTransactionHistory); voTransactionHistory.LocationID = int.Parse(drow[PRO_ComponentScrapDetailTable.TOLOCATIONID_FLD].ToString()); voTransactionHistory.BinID = int.Parse(drow[PRO_ComponentScrapDetailTable.TOBINID_FLD].ToString()); voTransactionHistory.Quantity = decimal.Parse(drow[PRO_ComponentScrapDetailTable.SCRAPQUANTITY_FLD].ToString()); boInventoryUtils.SaveTransactionHistory(TransactionTypeEnum.IVMiscellaneousIssue.ToString(), (int)PurposeEnum.Scrap, voTransactionHistory); } PRO_ComponentScrapDetailDS dsComponentScrapDetail = new PRO_ComponentScrapDetailDS(); dsComponentScrapDetail.UpdateDataSet(pdstData); return(pintComponentScrapMasterID); }
public int AddAndReturnID(object pobjMasterVO, DataSet pdstData) { CST_RecoverMaterialMasterVO voRecoverMaterialMaster = new CST_RecoverMaterialMasterVO(); voRecoverMaterialMaster = (CST_RecoverMaterialMasterVO)pobjMasterVO; int intMasterID = new CST_RecoverMaterialMasterDS().AddAndReturnID(pobjMasterVO); //update Detail for (int i = 0; i < pdstData.Tables[0].Rows.Count; i++) { if (pdstData.Tables[0].Rows[i].RowState == DataRowState.Deleted) { continue; } pdstData.Tables[0].Rows[i][CST_RecoverMaterialDetailTable.RECOVERMATERIALMASTERID_FLD] = intMasterID; } new CST_RecoverMaterialDetailDS().UpdateDataSet(pdstData); //subtract InventoryUtilsBO boInventoryUtils = new InventoryUtilsBO(); boInventoryUtils.UpdateSubtractOHQuantity(voRecoverMaterialMaster.CCNID, voRecoverMaterialMaster.MasterLocationID, voRecoverMaterialMaster.FromLocationID, voRecoverMaterialMaster.FromBinID, voRecoverMaterialMaster.ProductID, voRecoverMaterialMaster.Quantity, string.Empty, string.Empty); //update Transaction history MST_TransactionHistoryVO voMST_TransactionHistory = new MST_TransactionHistoryVO(); voMST_TransactionHistory.CCNID = voRecoverMaterialMaster.CCNID; voMST_TransactionHistory.MasterLocationID = voRecoverMaterialMaster.MasterLocationID; voMST_TransactionHistory.LocationID = voRecoverMaterialMaster.FromLocationID; voMST_TransactionHistory.BinID = voRecoverMaterialMaster.FromBinID; voMST_TransactionHistory.ProductID = voRecoverMaterialMaster.ProductID; voMST_TransactionHistory.RefMasterID = intMasterID; voMST_TransactionHistory.PostDate = voRecoverMaterialMaster.PostDate; voMST_TransactionHistory.TransDate = new UtilsBO().GetDBDate(); voMST_TransactionHistory.Quantity = -voRecoverMaterialMaster.Quantity; boInventoryUtils.SaveTransactionHistory(TransactionType.RECOVERABLE_MATERIAL, (int)PurposeEnum.ThanhLyLinhKienSauHuy, voMST_TransactionHistory); //add foreach (DataRow drow in pdstData.Tables[0].Rows) { if ((drow[CST_RecoverMaterialDetailTable.TOLOCATIONID_FLD].ToString() != string.Empty) && (drow[CST_RecoverMaterialDetailTable.TOBINID_FLD].ToString() != string.Empty)) { boInventoryUtils.UpdateAddOHQuantity(voRecoverMaterialMaster.CCNID, voRecoverMaterialMaster.MasterLocationID, int.Parse(drow[CST_RecoverMaterialDetailTable.TOLOCATIONID_FLD].ToString()), int.Parse(drow[CST_RecoverMaterialDetailTable.TOBINID_FLD].ToString()), int.Parse(drow[CST_RecoverMaterialDetailTable.PRODUCTID_FLD].ToString()), decimal.Parse(drow[CST_RecoverMaterialDetailTable.RECOVERQUANTITY_FLD].ToString()), string.Empty, string.Empty); //Save history to MST_TransactionHistory voMST_TransactionHistory = new MST_TransactionHistoryVO(); voMST_TransactionHistory.CCNID = voRecoverMaterialMaster.CCNID; voMST_TransactionHistory.MasterLocationID = voRecoverMaterialMaster.MasterLocationID; voMST_TransactionHistory.LocationID = int.Parse(drow[CST_RecoverMaterialDetailTable.TOLOCATIONID_FLD].ToString()); voMST_TransactionHistory.BinID = int.Parse(drow[CST_RecoverMaterialDetailTable.TOBINID_FLD].ToString()); voMST_TransactionHistory.ProductID = int.Parse(drow[CST_RecoverMaterialDetailTable.PRODUCTID_FLD].ToString()); voMST_TransactionHistory.RefMasterID = intMasterID; //Se update lai TrantypeID //voMST_TransactionHistory.TranTypeID = (int)TransactionTypeEnum.IVMiscellaneousIssue; voMST_TransactionHistory.PostDate = voRecoverMaterialMaster.PostDate; voMST_TransactionHistory.TransDate = new UtilsBO().GetDBDate(); voMST_TransactionHistory.Quantity = decimal.Parse(drow[CST_RecoverMaterialDetailTable.RECOVERQUANTITY_FLD].ToString()); voMST_TransactionHistory.StockUMID = int.Parse(drow[CST_RecoverMaterialDetailTable.UNITOFMEASUREID_FLD].ToString()); boInventoryUtils.SaveTransactionHistory(TransactionType.RECOVERABLE_MATERIAL, (int)PurposeEnum.TanDungLinhKienSauHuy, voMST_TransactionHistory); } } return(intMasterID); }
public void UpdateInventoryInfor(DataSet dsReturnToVendorDetail, bool blnNewRecord, PO_ReturnToVendorMasterVO pobjPO_ReturnToVendorMasterVO) { const string AVG_COST_FLD = "AVGCost"; try { UtilsBO boUtils = new UtilsBO(); foreach (DataRow drowReturnedGoodsDetail in dsReturnToVendorDetail.Tables[0].Rows) { if (blnNewRecord && 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; } int intStockUMID = int.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.STOCKUMID_FLD].ToString()); int intBuyingUMID = int.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.BUYINGUMID_FLD].ToString()); Decimal decUMRate = boUtils.GetUMRate(intBuyingUMID, intStockUMID); if (decUMRate != 0) { drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD] = Decimal.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD].ToString()) * decUMRate; } else { throw new PCSException(ErrorCode.MESSAGE_MUST_SET_UMRATE, string.Empty, new Exception()); } //calculate the avergae cost #region Update IV_BinCache if (drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.BINID_FLD].ToString().Trim() != String.Empty) { //update bin cache UpdateIVBinCache(drowReturnedGoodsDetail, blnNewRecord, pobjPO_ReturnToVendorMasterVO); } #endregion #region update into the IV_locationCache UpdateIVLocationCache(drowReturnedGoodsDetail, blnNewRecord, pobjPO_ReturnToVendorMasterVO); #endregion #region Update into the IV_MasterLocationCache UpdateIVMasterLocationCache(drowReturnedGoodsDetail, blnNewRecord, pobjPO_ReturnToVendorMasterVO); #endregion #region UPDATE INTO TABLE MST_TransactionHistory /* * update MST_TransactionHistory * */ //UpdateTransactionHistory(drowReturnedGoodsDetail,blnNewRecord,pobjPO_ReturnToVendorMasterVO); #endregion #region INSERT INTO TABLE IV_CostHistory if (drowReturnedGoodsDetail[SO_ReturnedGoodsDetailTable.LOT_FLD].ToString().Trim() != String.Empty) { UpdateCostHistory(drowReturnedGoodsDetail, blnNewRecord, pobjPO_ReturnToVendorMasterVO); } #endregion #region Add By CanhNV: {Update add Inventory for Bom tree} if (pobjPO_ReturnToVendorMasterVO.ProductionLineId > 0) { //1.Get BomDetail by ProductID DataTable dtBomDetail = new ITM_BOMDS().ListBomDetailOfProduct((int)drowReturnedGoodsDetail[ITM_ProductTable.PRODUCTID_FLD]); if (dtBomDetail.Rows.Count <= 0) { return; } //2.Get LocationID and BinID by ProductionLineID DataTable dtLocBin = new PO_ReturnToVendorMasterDS().GetLocationBin(pobjPO_ReturnToVendorMasterVO.ProductionLineId); if (dtLocBin.Rows.Count == 0) { throw new PCSBOException(ErrorCode.MESSAGE_MUST_SELECT_LOCATION, string.Empty, new Exception()); } int intProLocationID = Convert.ToInt32(dtLocBin.Rows[0][MST_BINTable.LOCATIONID_FLD]); int intProBinID = Convert.ToInt32(dtLocBin.Rows[0][MST_BINTable.BINID_FLD]); //3.Scan DataTable foreach (DataRow dataRow in dtBomDetail.Rows) { //3.1.Set value to voTransactionHistory MST_TransactionHistoryVO voTransactionHistory = new MST_TransactionHistoryVO(); voTransactionHistory.TransDate = new UtilsBO().GetDBDate(); voTransactionHistory.TranTypeID = new MST_TranTypeDS().GetTranTypeID(TransactionType.MATERIAL_ISSUE); voTransactionHistory.InspStatus = new MST_TranTypeDS().GetTranTypeID(TransactionType.RETURN_TO_VENDOR); voTransactionHistory.ProductID = (int)dataRow[ITM_BOMTable.COMPONENTID_FLD]; voTransactionHistory.CCNID = pobjPO_ReturnToVendorMasterVO.CCNID; voTransactionHistory.PostDate = pobjPO_ReturnToVendorMasterVO.PostDate; voTransactionHistory.RefMasterID = pobjPO_ReturnToVendorMasterVO.ReturnToVendorMasterID; voTransactionHistory.RefDetailID = (int)drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.RETURNTOVENDORDETAILID_FLD]; voTransactionHistory.Quantity = -1 * (decimal)drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD] * (decimal)dataRow[ITM_BOMTable.QUANTITY_FLD]; decimal decQuantity = voTransactionHistory.Quantity; voTransactionHistory.MasterLocationID = pobjPO_ReturnToVendorMasterVO.MasterLocationID; voTransactionHistory.LocationID = intProLocationID; voTransactionHistory.BinID = intProBinID; //3.2.Update Inventory new InventoryUtilsBO().UpdateSubtractOHQuantity(voTransactionHistory.CCNID, voTransactionHistory.MasterLocationID, voTransactionHistory.LocationID, voTransactionHistory.BinID, voTransactionHistory.ProductID, decQuantity, string.Empty, string.Empty); //3.3.Update TransactionHistory new InventoryUtilsBO().SaveTransactionHistory(TransactionType.MATERIAL_ISSUE, (int)PurposeEnum.ReturnToVendor, voTransactionHistory); } } #endregion } } catch (PCSDBException ex) { throw ex; } catch (PCSException ex) { throw ex; } }
public int AddNewReturnToVendor(PO_ReturnToVendorMasterVO pobjReturnToVendorMasterVO, DataSet pdstDetail) { try { //check onhand quantity CheckOnHandQty(pdstDetail, pobjReturnToVendorMasterVO); //store the master first PO_ReturnToVendorMasterDS objPO_ReturnToVendorMasterDS = new PO_ReturnToVendorMasterDS(); PO_ReturnToVendorDetailDS objPO_ReturnToVendorDetailDS = new PO_ReturnToVendorDetailDS(); //first we need to add to the master and return the latest ID int intReturnToVendorMasterID = objPO_ReturnToVendorMasterDS.AddNewReturnToVendor(pobjReturnToVendorMasterVO); //assign this ID into the detail //update the dataset all of this id for (int i = 0; i < pdstDetail.Tables[0].Rows.Count; i++) { if (pdstDetail.Tables[0].Rows[i].RowState != DataRowState.Deleted) { pdstDetail.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.RETURNTOVENDORMASTERID_FLD] = intReturnToVendorMasterID; } } //Add this database into database if (pobjReturnToVendorMasterVO.PurchaseOrderMasterID != 0) { objPO_ReturnToVendorDetailDS.UpdateReturnToVendorDataSet(pdstDetail, intReturnToVendorMasterID); } else if (pobjReturnToVendorMasterVO.InvoiceMasterID != 0) { objPO_ReturnToVendorDetailDS.UpdateDataSetForInvoice(pdstDetail); } // Add value to pobjReturnToVendorMasterVO pobjReturnToVendorMasterVO.ReturnToVendorMasterID = intReturnToVendorMasterID; //Update inventory data UpdateInventoryInfor(pdstDetail, true, pobjReturnToVendorMasterVO); // HACK: Trada 27-12-2005 //Update MST_TransactionHistory new UtilsBO(); InventoryUtilsBO boInventoryUtils = new InventoryUtilsBO(); PO_ReturnToVendorDetailDS dsReturnToVendorDetail = new PO_ReturnToVendorDetailDS(); pdstDetail = dsReturnToVendorDetail.ListReturnToVendorDetail(intReturnToVendorMasterID); foreach (DataRow drow in pdstDetail.Tables[0].Rows) { MST_TransactionHistoryVO voTransactionHistory = new MST_TransactionHistoryVO(); voTransactionHistory.CCNID = pobjReturnToVendorMasterVO.CCNID; voTransactionHistory.MasterLocationID = pobjReturnToVendorMasterVO.MasterLocationID; voTransactionHistory.PartyID = pobjReturnToVendorMasterVO.PartyID; voTransactionHistory.PostDate = pobjReturnToVendorMasterVO.PostDate; voTransactionHistory.PartyLocationID = pobjReturnToVendorMasterVO.PurchaseLocID; //HACK: Modify by Tuan TQ 03 Apr, 2006. Fix error no. 3279 //Rem by Tuan TQ: 03 Apr, 2006 //voTransactionHistory.RefMasterID = intReturnToVendorMasterID; //Rem by Tuan TQ: 15 June, 2006 //voTransactionHistory.RefMasterID = pobjReturnToVendorMasterVO.PurchaseOrderMasterID; //HACK: Modified by Tuan TQ: 15 June, 2006. RefMasterID must be RTV MasterID (for Stock Card report) voTransactionHistory.RefMasterID = intReturnToVendorMasterID; //end hack //End Hack voTransactionHistory.LocationID = int.Parse(drow[PO_ReturnToVendorDetailTable.LOCATIONID_FLD].ToString()); if (drow[PO_ReturnToVendorDetailTable.BINID_FLD].ToString() != string.Empty) { voTransactionHistory.BinID = int.Parse(drow[PO_ReturnToVendorDetailTable.BINID_FLD].ToString()); } if (drow[PO_ReturnToVendorDetailTable.RETURNTOVENDORDETAILID_FLD].ToString() != string.Empty) { voTransactionHistory.RefDetailID = int.Parse(drow[PO_ReturnToVendorDetailTable.RETURNTOVENDORDETAILID_FLD].ToString()); } if (drow[PO_ReturnToVendorDetailTable.LOT_FLD].ToString() != string.Empty) { voTransactionHistory.Lot = drow[PO_ReturnToVendorDetailTable.LOT_FLD].ToString(); } if (drow[PO_ReturnToVendorDetailTable.SERIAL_FLD].ToString() != string.Empty) { voTransactionHistory.Serial = drow[PO_ReturnToVendorDetailTable.SERIAL_FLD].ToString(); } if (drow[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString() != string.Empty) { voTransactionHistory.ProductID = int.Parse(drow[PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()); } if (drow[PO_ReturnToVendorDetailTable.STOCKUMID_FLD].ToString() != string.Empty) { voTransactionHistory.StockUMID = int.Parse(drow[PO_ReturnToVendorDetailTable.STOCKUMID_FLD].ToString()); } voTransactionHistory.Quantity = Decimal.Parse(drow[PO_ReturnToVendorDetailTable.QUANTITY_FLD].ToString()); voTransactionHistory.TransDate = new UtilsBO().GetDBDate(); boInventoryUtils.SaveTransactionHistory(Constants.TRANTYPE_PORETURNTOVENDOR, (int)PurposeEnum.ReturnToVendor, voTransactionHistory); } // END: Trada 27-12-2005 return(intReturnToVendorMasterID); } catch (PCSBOException ex) { throw ex; } catch (PCSDBException ex) { throw ex; } catch (Exception ex) { throw ex; } }
private void UpdateInventoryInfor(DataSet dsReturnToVendorDetail, bool blnNewRecord, PO_ReturnToVendorMasterVO pobjPO_ReturnToVendorMasterVO) { UtilsBO boUtils = new UtilsBO(); foreach (DataRow drowReturnedGoodsDetail in dsReturnToVendorDetail.Tables[0].Rows) { if (blnNewRecord && drowReturnedGoodsDetail.RowState == DataRowState.Deleted) { continue; } int intStockUMID = int.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.STOCKUMID_FLD].ToString()); int intBuyingUMID = int.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.BUYINGUMID_FLD].ToString()); Decimal decUMRate = boUtils.GetUMRate(intBuyingUMID, intStockUMID); if (decUMRate != 0) { drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD] = Decimal.Parse(drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD].ToString()) * decUMRate; } else { throw new PCSException(ErrorCode.MESSAGE_MUST_SET_UMRATE, string.Empty, new Exception()); } #region Update IV_BinCache if (drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.BINID_FLD].ToString().Trim() != String.Empty) { UpdateIVBinCache(drowReturnedGoodsDetail, blnNewRecord, pobjPO_ReturnToVendorMasterVO); } #endregion #region update into the IV_locationCache UpdateIVLocationCache(drowReturnedGoodsDetail, blnNewRecord, pobjPO_ReturnToVendorMasterVO); #endregion #region Update into the IV_MasterLocationCache UpdateIVMasterLocationCache(drowReturnedGoodsDetail, blnNewRecord, pobjPO_ReturnToVendorMasterVO); #endregion #region Add By CanhNV: {Update add Inventory for Bom tree} if (pobjPO_ReturnToVendorMasterVO.ProductionLineId > 0) { //1.Get BomDetail by ProductID DataTable dtBomDetail = new ITM_BOMDS().ListBomDetailOfProduct((int)drowReturnedGoodsDetail[ITM_ProductTable.PRODUCTID_FLD]); if (dtBomDetail.Rows.Count <= 0) { return; } //2.Get LocationID and BinID by ProductionLineID DataTable dtLocBin = new PO_ReturnToVendorMasterDS().GetLocationBin(pobjPO_ReturnToVendorMasterVO.ProductionLineId); if (dtLocBin.Rows.Count == 0) { throw new PCSBOException(ErrorCode.MESSAGE_MUST_SELECT_LOCATION, string.Empty, new Exception()); } int intProLocationID = Convert.ToInt32(dtLocBin.Rows[0][MST_BINTable.LOCATIONID_FLD]); int intProBinID = Convert.ToInt32(dtLocBin.Rows[0][MST_BINTable.BINID_FLD]); //3.Scan DataTable foreach (DataRow dataRow in dtBomDetail.Rows) { //3.1.Set value to voTransactionHistory MST_TransactionHistoryVO voTransactionHistory = new MST_TransactionHistoryVO(); voTransactionHistory.TransDate = new UtilsBO().GetDBDate(); voTransactionHistory.TranTypeID = new MST_TranTypeDS().GetTranTypeID(TransactionTypeEnum.IVMiscellaneousIssue.ToString()); voTransactionHistory.InspStatus = new MST_TranTypeDS().GetTranTypeID(TransactionTypeEnum.POReturnToVendor.ToString()); voTransactionHistory.ProductID = (int)dataRow[ITM_BOMTable.COMPONENTID_FLD]; voTransactionHistory.CCNID = pobjPO_ReturnToVendorMasterVO.CCNID; voTransactionHistory.PostDate = pobjPO_ReturnToVendorMasterVO.PostDate; voTransactionHistory.RefMasterID = pobjPO_ReturnToVendorMasterVO.ReturnToVendorMasterID; try { voTransactionHistory.RefDetailID = (int)drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.RETURNTOVENDORDETAILID_FLD]; } catch {} voTransactionHistory.Quantity = (decimal)drowReturnedGoodsDetail[PO_ReturnToVendorDetailTable.QUANTITY_FLD] * (decimal)dataRow[ITM_BOMTable.QUANTITY_FLD]; decimal decQuantity = voTransactionHistory.Quantity; voTransactionHistory.MasterLocationID = pobjPO_ReturnToVendorMasterVO.MasterLocationID; voTransactionHistory.LocationID = intProLocationID; voTransactionHistory.BinID = intProBinID; //3.2.Update Inventory // new InventoryUtilsBO().UpdateAddOHQuantity(voTransactionHistory.CCNID, voTransactionHistory.MasterLocationID, voTransactionHistory.LocationID, voTransactionHistory.BinID, voTransactionHistory.ProductID, decQuantity, string.Empty, string.Empty); //3.3.Update TransactionHistory new InventoryUtilsBO().SaveTransactionHistory(TransactionTypeEnum.IVMiscellaneousIssue.ToString(), (int)PurposeEnum.ReturnToVendor, voTransactionHistory); } } #endregion } }
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); }