private void chkSelectAll_Click(object sender, EventArgs e) { const string METHOD_NAME = THIS + ".chkSelectAll_Click()"; try { string strFilter = ((DataTable)dgrdData.DataSource).DefaultView.RowFilter; var boUtils = new UtilsBO(); dtbData = boUtils.UpdateSelected(dtbData.Tables[0].TableName, strFilter, chkSelectAll.Checked); LoadDataDetail(dtbData); dtbData.Tables[0].DefaultView.RowFilter = strFilter; } catch (Exception ex) { // displays the error message. PCSMessageBox.Show(ErrorCode.OTHER_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error); // log message. try { Logger.LogMessage(ex, METHOD_NAME, Level.ERROR); } catch { PCSMessageBox.Show(ErrorCode.LOG_EXCEPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Init variables /// </summary> /// <author>Trada</author> /// <date>Friday, June 10 2005</date> private void InitVariable() { // Load combo box UtilsBO boUtil = new UtilsBO(); DataSet dstCCN = boUtil.ListCCN(); cboCCN.DataSource = dstCCN.Tables[MST_CCNTable.TABLE_NAME]; cboCCN.DisplayMember = MST_CCNTable.CODE_FLD; cboCCN.ValueMember = MST_CCNTable.CCNID_FLD; FormControlComponents.PutDataIntoC1ComboBox(cboCCN, dstCCN.Tables[MST_CCNTable.TABLE_NAME], MST_CCNTable.CODE_FLD, MST_CCNTable.CCNID_FLD, MST_CCNTable.TABLE_NAME); if (SystemProperty.CCNID != 0) { cboCCN.SelectedValue = SystemProperty.CCNID; } // Load combo box displays approving date PRO_WorkOrderDetailVO voWorkOrderDetail = new PRO_WorkOrderDetailVO(); voWorkOrderDetail.MfgCloseDate = boUtil.GetDBDate(); if ((DateTime.MinValue < voWorkOrderDetail.MfgCloseDate) && (voWorkOrderDetail.MfgCloseDate < DateTime.MaxValue)) { dtmPostDate.Value = voWorkOrderDetail.MfgCloseDate; } else { dtmPostDate.Value = DBNull.Value; } }
/// <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> /// Update status to ManufacturingClose and MfgCloseDate of each WorkOrderLine in ArrayList /// </summary> /// <param name="pdtmCloseDate">Close Date</param> /// <param name="parrSelectedLines">All selected work order line to be closed</param> /// <author>Trada</author> /// <date>Friday, June </date> public void CloseWorkOrderLines(DateTime pdtmCloseDate, ArrayList parrSelectedLines) { dsPRO_WorkOrderDetail = new PRO_WorkOrderDetailDS(); ArrayList arrListOfIds = new ArrayList(); arrListOfIds = UtilsBO.GetSplitList(parrSelectedLines, 200); if (arrListOfIds.Count > 0) { foreach (object t in arrListOfIds) { dsPRO_WorkOrderDetail.CloseWorkOrderLines(WOLineStatus.MfgClose, pdtmCloseDate, t.ToString()); } } }
/// <summary> /// Updates the user name modify transaction. /// </summary> /// <param name="pForm">The p form.</param> /// <param name="pstrPrimaryField">The PSTR primary field.</param> /// <param name="pintMasterId">The pint master ID.</param> public static void UpdateUserNameModifyTransaction(Form pForm, string pstrPrimaryField, int pintMasterId) { FormInfo formInfor; string strTableName = string.Empty; foreach (object t in SystemProperty.ArrayForms) { formInfor = (FormInfo)t; if (pForm == formInfor.mForm) { strTableName = formInfor.mTableName; break; } } var boUtils = new UtilsBO(); boUtils.UpdateUserNameModifyTransaction(SystemProperty.UserName, strTableName, pstrPrimaryField, pintMasterId); }
//************************************************************************** /// <Description> /// Get list of CCN /// </Description> /// <Inputs> /// /// </Inputs> /// <Outputs> /// /// </Outputs> /// <Returns> /// /// </Returns> /// <Authors> /// THIENHD /// </Authors> /// <History> /// 15-Dec-2004 /// </History> /// <Notes> /// </Notes> //************************************************************************** public DataTable GetCCN() { // TODO: Add ProductItemInfoBO.GetCCN implementation try { //MST_CCNDS objMST_CCNDS = new MST_CCNDS(); UtilsBO objUtilsBO = new UtilsBO(); //return objMST_CCNDS.List().Tables[0]; return(objUtilsBO.ListCCN().Tables[0]); } catch (PCSDBException ex) { throw ex; } catch (Exception ex) { throw ex; } }
/// <summary> /// Noes the right to edit transaction. /// </summary> /// <param name="pForm">The p form.</param> /// <param name="pstrPrimaryField">The PSTR primary field.</param> /// <param name="pintMasterId">The pint master ID.</param> /// <returns></returns> public static bool NoRightToEditTransaction(Form pForm, string pstrPrimaryField, int pintMasterId) { if (SystemProperty.UserName.ToLower().Equals(Constants.SUPER_ADMIN_USER)) { return(false); } FormInfo formInfor; string strTableName = string.Empty; foreach (object t in SystemProperty.ArrayForms) { formInfor = (FormInfo)t; if (pForm == formInfor.mForm) { strTableName = formInfor.mTableName; break; } } // Check role administrator var boUtils = new UtilsBO(); DataSet dstGetRightToModify = boUtils.GetRightToModify(SystemProperty.UserName, strTableName, pstrPrimaryField, pintMasterId); if (dstGetRightToModify == null) { return(false); } if (int.Parse(dstGetRightToModify.Tables[0].Rows[0][0].ToString()) > 0) { return(false); } string strUserCreated = dstGetRightToModify.Tables[1].Rows[0][0].ToString(); if (!strUserCreated.ToLower().Equals(SystemProperty.UserName.ToLower())) { PCSMessageBox.Show(ErrorCode.MESSAGE_YOU_DONT_HAVE_RIGHT_TO_EDIT, MessageBoxIcon.Information, new[] { strUserCreated }); return(true); } return(false); }
//************************************************************************** /// <Description> /// This method uses to make a copy of specified report to another group, /// also copy all data relative to report (sys_ReportAndGroup, sys_ReportDrillDown, /// sys_ReportFields, sys_ReportPara). /// </Description> /// <Inputs> /// Source ReportID, Destination GroupID /// </Inputs> /// <Outputs> /// New report id /// </Outputs> /// <Returns> /// new report id /// </Returns> /// <Authors> /// DungLA /// </Authors> /// <History> /// 03-Jan-2005 /// 11-Jan-2005 /// </History> /// <Notes> /// Return newly report id /// </Notes> //************************************************************************** public object CopyReport(string pstrReportID, string pstrGroupID, out int ointReportOrder) { const string METHOD_NAME = THIS + ".CopyReport()"; const int REPORT_ID_MAX_LENGTH = 20; const string CODE_DATE_FORMAT = "yyyyMMddHHmmssfff"; UtilsBO boUtils = new UtilsBO(); sys_ReportDS dsReport = new sys_ReportDS(); sys_ReportVO voReport; // use to add new report to selected group sys_ReportAndGroupVO voReportAndGroup = new sys_ReportAndGroupVO(); sys_ReportAndGroupDS dsReportAndGroup = new sys_ReportAndGroupDS(); // use to copy report para sys_ReportParaDS dsReportPara = new sys_ReportParaDS(); // use to copy report fields sys_ReportFieldsDS dsReportFields = new sys_ReportFieldsDS(); // use to copy drill down report sys_ReportDrillDownDS dsReportDrillDown = new sys_ReportDrillDownDS(); // get the data of selected object voReport = (sys_ReportVO)(dsReport.GetObjectVO(pstrReportID)); #region Copy report // make a copy report sys_ReportVO voCopiedReport = new sys_ReportVO(); voCopiedReport = voReport; // get database server date time DateTime dtmDB = boUtils.GetDBDate(); // report ID = yyyyMMddHHmmssfff voCopiedReport.ReportID = dtmDB.ToString(CODE_DATE_FORMAT); if (voCopiedReport.ReportID.Length > REPORT_ID_MAX_LENGTH) { throw new PCSBOException(ErrorCode.MESSAGE_VALUE_TOO_LONG, METHOD_NAME, new Exception()); } voCopiedReport.ReportName = Constants.COPY_OF + voCopiedReport.ReportName; // save new report to database dsReport.Add(voCopiedReport); #endregion #region Add new report to group voReportAndGroup.GroupID = pstrGroupID; voReportAndGroup.ReportID = voCopiedReport.ReportID; // increase report order by one in group. voReportAndGroup.ReportOrder = dsReportAndGroup.GetMaxReportOrder(pstrGroupID) + 1; // save data dsReportAndGroup.Add(voReportAndGroup); ointReportOrder = voReportAndGroup.ReportOrder; #endregion #region Copy all data relative from old report to new report #region ReportPara // get all parameter(s) sys_ReportParaVO voReportPara; ArrayList arrParas = dsReportPara.GetObjectVOs(pstrReportID); // make a copy of each parameter if (arrParas.Count > 0) { for (int i = 0; i < arrParas.Count; i++) { voReportPara = (sys_ReportParaVO)(arrParas[i]); // assign new report id voReportPara.ReportID = voCopiedReport.ReportID; // save new para dsReportPara.Add(voReportPara); } } #endregion #region ReportFields // get all report fields sys_ReportFieldsVO voReportFields; ArrayList arrFields = dsReportFields.GetObjectVOs(pstrReportID); // make a copy of each field if (arrFields.Count > 0) { for (int i = 0; i < arrFields.Count; i++) { voReportFields = (sys_ReportFieldsVO)arrFields[i]; // assign new report id voReportFields.ReportID = voCopiedReport.ReportID; // save new field dsReportFields.Add(voReportFields); } } #endregion #region ReportDrillDown // get all drill down report sys_ReportDrillDownVO voReportDrillDown; ArrayList arrDrillDown = dsReportDrillDown.GetObjectVOs(pstrReportID); // make a copy each drill down report if (arrDrillDown.Count > 0) { for (int i = 0; i < arrDrillDown.Count; i++) { voReportDrillDown = (sys_ReportDrillDownVO)arrDrillDown[i]; // assign new report id voReportDrillDown.MasterReportID = voCopiedReport.ReportID; // save new drill down dsReportDrillDown.Add(voReportDrillDown); } } #endregion #endregion return(voCopiedReport); }
private void dgrdData_AfterColUpdate(object sender, ColEventArgs e) { const string METHOD_NAME = THIS + ".dgrdData_AfterColUpdate()"; try { if (e.Column.DataColumn.DataField == SELECTED_COL) { string strExpression = "(" + PRO_WorkOrderDetailTable.WORKORDERMASTERID_FLD + "=" + dgrdData[dgrdData.Row, PRO_WorkOrderDetailTable.WORKORDERMASTERID_FLD].ToString() + " AND " + PRO_WorkOrderDetailTable.WORKORDERDETAILID_FLD + "=" + dgrdData[dgrdData.Row, PRO_WorkOrderDetailTable.WORKORDERDETAILID_FLD].ToString() + " AND " + PRO_WorkOrderDetailTable.TABLE_NAME + PRO_WorkOrderDetailTable.LINE_FLD + "=" + dgrdData[dgrdData.Row, PRO_WorkOrderDetailTable.TABLE_NAME + PRO_WorkOrderDetailTable.LINE_FLD].ToString() + " AND " + MST_LocationTable.LOCATIONID_FLD + "=" + dgrdData[dgrdData.Row, MST_LocationTable.LOCATIONID_FLD].ToString() + " AND " + MST_BINTable.BINID_FLD + "=" + dgrdData[dgrdData.Row, MST_BINTable.BINID_FLD].ToString() + " AND " + ITM_ProductTable.PRODUCTID_FLD + "=" + dgrdData[dgrdData.Row, ITM_ProductTable.PRODUCTID_FLD].ToString() + ")"; if (dgrdData[dgrdData.Row, SELECTED_COL].Equals(DBNull.Value) || dgrdData[dgrdData.Row, SELECTED_COL].ToString().Trim() == string.Empty) { chkSelectAll.Checked = false; sbCondition.Replace(strExpression + "|", string.Empty); return; } if (!bool.Parse(dgrdData[dgrdData.Row, SELECTED_COL].ToString())) { chkSelectAll.Checked = false; sbCondition.Replace(strExpression + "|", string.Empty); return; } int nViewCount = dtbData.Tables[0].DefaultView.Count; string strFilter = dtbData.Tables[0].DefaultView.RowFilter; if (strFilter == string.Empty) { strFilter = SELECTED_COL + "=1"; } else { strFilter += " AND " + SELECTED_COL + "=1"; } int nSelectedCount = dtbData.Tables[0].Select(strFilter).Length + 1; chkSelectAll.Checked = nViewCount == nSelectedCount; sbCondition.Append(strExpression).Append(" OR "); int i = 0; UtilsBO objUtilBO = new UtilsBO(); int iProductId = 0; int iWorkOrderMasterID = 0; int iWorkOrderDetailID = 0; int iComponentID = 0; bool b = false; if (dgrdData[dgrdData.Row, "ProductID"] != DBNull.Value) { iProductId = Convert.ToInt32(dgrdData[dgrdData.Row, "ProductID"]); } if (dgrdData[dgrdData.Row, "WorkOrderMasterID"] != DBNull.Value) { iWorkOrderMasterID = Convert.ToInt32(dgrdData[dgrdData.Row, "WorkOrderMasterID"]); } if (dgrdData[dgrdData.Row, "WorkOrderDetailID"] != DBNull.Value) { iWorkOrderDetailID = Convert.ToInt32(dgrdData[dgrdData.Row, "WorkOrderDetailID"]); } if (dgrdData[dgrdData.Row, "ComponentID"] != DBNull.Value) { iComponentID = Convert.ToInt32(dgrdData[dgrdData.Row, "ComponentID"]); } if (dgrdData[dgrdData.Row, "SELECTED"] != DBNull.Value) { b = Convert.ToBoolean(dgrdData[dgrdData.Row, "SELECTED"]); } //string strFilter = ((DataTable)dgrdData.DataSource).DefaultView.RowFilter; objUtilBO.UpdateSelectedRow(dtbData.Tables[0].TableName, "", b, iProductId, iWorkOrderMasterID, iWorkOrderDetailID, iComponentID); //LoadDataDetail(dtbData); } } catch (Exception ex) { PCSMessageBox.Show(ErrorCode.OTHER_ERROR, MessageBoxIcon.Error); try { Logger.LogMessage(ex, METHOD_NAME, Level.ERROR); } catch { PCSMessageBox.Show(ErrorCode.LOG_EXCEPTION, MessageBoxIcon.Error); } } }
public UserCCNList(string strTableName) { const string METHOD_NAME = THIS + ".ctor()"; // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // marrReturnsList = new ArrayList(); try { UtilsBO boUtils = new UtilsBO(); switch (strTableName) { case MST_CCNTable.TABLE_NAME: strDisplayMember = MST_CCNTable.CODE_FLD; strValueMember = MST_CCNTable.CCNID_FLD; // list all CCN to list tblData = boUtils.ListCCNForCheckListBox(); break; case Sys_UserTable.TABLE_NAME: strDisplayMember = Sys_UserTable.USERNAME_FLD; strValueMember = Sys_UserTable.USERNAME_FLD; // list all User to list tblData = boUtils.ListUser(); break; } } catch (PCSException ex) { // displays the error message. PCSMessageBox.Show(ex.mCode, MessageBoxIcon.Error); // log message. try { Logger.LogMessage(ex.CauseException, METHOD_NAME, Level.ERROR); } catch { PCSMessageBox.Show(ErrorCode.LOG_EXCEPTION, MessageBoxIcon.Error); } } catch (Exception ex) { // displays the error message. PCSMessageBox.Show(ErrorCode.OTHER_ERROR, MessageBoxIcon.Error); // log message. try { Logger.LogMessage(ex, METHOD_NAME, Level.ERROR); } catch { PCSMessageBox.Show(ErrorCode.LOG_EXCEPTION, MessageBoxIcon.Error); } } }
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); }
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 ImportUpdateMappingData(DataTable dtImpData, int intPartyID, int intCCNID, int intMaxLine, DataSet dstMappingData) { int intResult = 0; const string TEMP_QTY_COL_NAME = "TempQty"; //Add new column for temp qty DataColumn objCol = new DataColumn(TEMP_QTY_COL_NAME); objCol.DataType = typeof(Decimal); objCol.DefaultValue = 0; dstMappingData.Tables[0].Columns.Add(objCol); int intMaxID = 0; dstMappingData.Tables[0].DefaultView.Sort = PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD; try { intMaxID = int.Parse(dstMappingData.Tables[0].Rows[dstMappingData.Tables[0].Rows.Count - 1][PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD].ToString()); } catch { intMaxID = 0; } dstMappingData.Tables[0].DefaultView.Sort = string.Empty; //walk through data ITM_ProductDS dsProduct = new ITM_ProductDS(); for (int i = INT_BEGIN_DATA_ROW; i < dtImpData.Rows.Count; i++) { //findout Item Code string strItemCode = dtImpData.Rows[i][INDEX_CODE].ToString(); string strDescription = dtImpData.Rows[i][INDEX_NAME].ToString(); string strRevision = dtImpData.Rows[i][INDEX_REVISION].ToString(); //find out total quantity at last column decimal dcmOrderQty = int.Parse(dtImpData.Rows[i][dtImpData.Columns.Count - 1].ToString()); //check if this item existed, update quantity only DataRow[] arrRows = dstMappingData.Tables[0].Select(ITM_ProductTable.CODE_FLD + "='" + strItemCode + "'"); if (arrRows.Length > 0) { arrRows[0][TEMP_QTY_COL_NAME] = decimal.Parse(arrRows[0][TEMP_QTY_COL_NAME].ToString()) + dcmOrderQty; continue; } if (dcmOrderQty <= 0) { continue; } ITM_ProductVO voProduct = (ITM_ProductVO)dsProduct.GetObjectVO(strItemCode, strDescription, strRevision); //New row DataRow dr = dstMappingData.Tables[0].NewRow(); UtilsBO boUtils = new UtilsBO(); //fill row dr[TEMP_QTY_COL_NAME] = dcmOrderQty; dr[PO_PurchaseOrderDetailTable.ORDERQUANTITY_FLD] = dcmOrderQty; dr[PO_PurchaseOrderDetailTable.PRODUCTID_FLD] = voProduct.ProductID; dr[ITM_ProductTable.CODE_FLD] = voProduct.Code; dr[ITM_ProductTable.DESCRIPTION_FLD] = voProduct.Description; dr[ITM_ProductTable.REVISION_FLD] = voProduct.Revision; dr[PO_PurchaseOrderDetailTable.BUYINGUMID_FLD] = voProduct.BuyingUMID; dr[PO_PurchaseOrderDetailTable.UNITPRICE_FLD] = voProduct.ListPrice; dr[PO_PurchaseOrderDetailTable.TOTALAMOUNT_FLD] = voProduct.ListPrice * dcmOrderQty; dr[PO_PurchaseOrderDetailTable.UMRATE_FLD] = boUtils.GetUMRate(voProduct.StockUMID, voProduct.BuyingUMID); dr[PO_PurchaseOrderDetailTable.LINE_FLD] = ++intMaxLine; dr[PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD] = ++intMaxID; dr[PO_PurchaseOrderDetailTable.STOCKUMID_FLD] = voProduct.StockUMID; dr[TEMP_QTY_COL_NAME] = dcmOrderQty; dstMappingData.Tables[0].Rows.Add(dr); } if (intResult != 0) { dstMappingData.Tables[0].Columns.Remove(objCol); return(intResult); } //refine data, with correct line int intLine = 1; for (int i = 0; i < dstMappingData.Tables[0].Rows.Count; i++) { if (int.Parse(dstMappingData.Tables[0].Rows[i][TEMP_QTY_COL_NAME].ToString()) == 0) { dstMappingData.Tables[0].Rows[i][PO_PurchaseOrderDetailTable.LINE_FLD] = -1; } else { //Update Line dstMappingData.Tables[0].Rows[i][PO_PurchaseOrderDetailTable.LINE_FLD] = intLine; //Update quantity dstMappingData.Tables[0].Rows[i][PO_PurchaseOrderDetailTable.ORDERQUANTITY_FLD] = dstMappingData.Tables[0].Rows[i][TEMP_QTY_COL_NAME]; intLine++; } } dstMappingData.Tables[0].Columns.Remove(objCol); return(intResult); }
private void txtBeginWO_Leave(object sender, EventArgs e) { const string METHOD_NAME = THIS + ".txtBeginWO_Leave"; try { FormControlComponents.OnLeaveControl(sender, e); if (!btnSearchBeginWO.Enabled || !txtBeginWO.Modified) { return; } txtBeginWO.Text = txtBeginWO.Text.Trim(); if (txtBeginWO.Text == String.Empty) { intWorkOrderMasterID = 0; return; } UtilsBO objUtilsBO = new UtilsBO(); intWorkOrderMasterID = 0; //search for master location id Hashtable hashCondition = new Hashtable(); hashCondition.Add(PRO_WorkOrderMasterTable.MASTERLOCATIONID_FLD, mMasterLocationID); DataTable dtResult = objUtilsBO.GetRows(REMAIN_WO_FOR_ISSUE_VIEW, PRO_WorkOrderMasterTable.WORKORDERNO_FLD, txtBeginWO.Text, hashCondition); if (dtResult.Rows.Count == 0) { txtBeginWO.Text = String.Empty; btnSearchBeginWO_Click(null, null); } else { if (dtResult.Rows.Count > 1) { btnSearchBeginWO_Click(null, null); } else { intWorkOrderMasterID = int.Parse(dtResult.Rows[0][PRO_WorkOrderMasterTable.WORKORDERMASTERID_FLD].ToString()); txtBeginWO.Text = dtResult.Rows[0][PRO_WorkOrderMasterTable.WORKORDERNO_FLD].ToString(); } } if (intWorkOrderMasterID <= 0) { txtBeginWO.Text = String.Empty; } } catch (PCSException ex) { // displays the error message. PCSMessageBox.Show(ex.mCode, MessageBoxIcon.Error); // log message. try { Logger.LogMessage(ex.CauseException, METHOD_NAME, Level.ERROR); } catch { PCSMessageBox.Show(ErrorCode.LOG_EXCEPTION, MessageBoxIcon.Error); } } catch (Exception ex) { // displays the error message. PCSMessageBox.Show(ErrorCode.OTHER_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error); // log message. try { Logger.LogMessage(ex, METHOD_NAME, Level.ERROR); } catch { PCSMessageBox.Show(ErrorCode.LOG_EXCEPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
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 } }
private void CheckOnHandQty(DataSet dstData, PO_ReturnToVendorMasterVO pobjPO_ReturnToVendorMasterVO) { DateTime dtmCurrentDate = new UtilsBO().GetDBDate().AddDays(1); InventoryUtilsBO boIVUtils = new InventoryUtilsBO(); decimal dcmOnHandQty, decOnHandCurrent = 0; for (int i = 0; i < dstData.Tables[0].Rows.Count; i++) { if (dstData.Tables[0].Rows[i].RowState != DataRowState.Deleted) { //get Quantity, location, bin, umrate string strBINID = dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.BINID_FLD].ToString().Trim(); dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.LOCATIONID_FLD].ToString().Trim(); if (strBINID != String.Empty) { IV_BinCacheVO objIV_BinCacheVO = new IV_BinCacheVO(); objIV_BinCacheVO.ProductID = int.Parse(dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()); objIV_BinCacheVO.MasterLocationID = pobjPO_ReturnToVendorMasterVO.MasterLocationID; objIV_BinCacheVO.CCNID = pobjPO_ReturnToVendorMasterVO.CCNID; objIV_BinCacheVO.LocationID = int.Parse(dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.LOCATIONID_FLD].ToString()); objIV_BinCacheVO.BinID = int.Parse(dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.BINID_FLD].ToString()); dcmOnHandQty = boIVUtils.GetAvailableQtyByPostDate(dtmCurrentDate, objIV_BinCacheVO.CCNID, objIV_BinCacheVO.MasterLocationID, objIV_BinCacheVO.LocationID, objIV_BinCacheVO.BinID, objIV_BinCacheVO.ProductID); decOnHandCurrent = boIVUtils.GetAvailableQtyByPostDate(dtmCurrentDate, objIV_BinCacheVO.CCNID, objIV_BinCacheVO.MasterLocationID, objIV_BinCacheVO.LocationID, objIV_BinCacheVO.BinID, objIV_BinCacheVO.ProductID); } else { IV_LocationCacheVO objIV_LocationCacheVO = new IV_LocationCacheVO(); objIV_LocationCacheVO.ProductID = int.Parse(dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.PRODUCTID_FLD].ToString()); objIV_LocationCacheVO.MasterLocationID = pobjPO_ReturnToVendorMasterVO.MasterLocationID; objIV_LocationCacheVO.CCNID = pobjPO_ReturnToVendorMasterVO.CCNID; objIV_LocationCacheVO.LocationID = int.Parse(dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.LOCATIONID_FLD].ToString()); dcmOnHandQty = boIVUtils.GetAvailableQtyByPostDate(dtmCurrentDate, objIV_LocationCacheVO.CCNID, objIV_LocationCacheVO.MasterLocationID, objIV_LocationCacheVO.LocationID, 0, objIV_LocationCacheVO.ProductID); decOnHandCurrent = boIVUtils.GetAvailableQtyByPostDate(dtmCurrentDate, objIV_LocationCacheVO.CCNID, objIV_LocationCacheVO.MasterLocationID, objIV_LocationCacheVO.LocationID, 0, objIV_LocationCacheVO.ProductID); } decimal dcmUMRate = 1; if (pobjPO_ReturnToVendorMasterVO.PurchaseOrderMasterID != 0) { //get the UMRate if (dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.UMRATE_FLD].ToString() != String.Empty) { dcmUMRate = decimal.Parse(dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.UMRATE_FLD].ToString()); } else { dcmUMRate = 1; } } decimal dcmReturnQuantity = decimal.Parse(dstData.Tables[0].Rows[i][PO_ReturnToVendorDetailTable.QUANTITY_FLD].ToString()); if ((dcmOnHandQty - (dcmReturnQuantity * dcmUMRate)) < 0) { throw new PCSBOException(ErrorCode.MESSAGE_RGA_OVERONHANDQTY, i.ToString(), null); } else if (decOnHandCurrent < (dcmReturnQuantity * dcmUMRate)) { throw new PCSBOException(ErrorCode.MESSAGE_AVAILABLE_WAS_USED_AFTER_POSTDATE, i.ToString(), null); } } } }
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 UpdateRelease(ArrayList parrMaster, DataSet pdstCommitDetail, DataSet pdstMasLocCache, DataSet pdstLocCache, DataSet pdstBinCache, DataSet pdstTransaction) { const string METHOD_NAME = THIS + ".UpdateRelease()"; SO_CommitInventoryMasterDS dsMaster = new SO_CommitInventoryMasterDS(); DataSet dstCopyOfDetail = pdstCommitDetail.Clone(); DataSet dstCopyOfTransaction = pdstTransaction.Clone(); UtilsBO boUtils = new UtilsBO(); foreach (SO_CommitInventoryMasterVO voMaster in parrMaster) { int intOldID = voMaster.CommitInventoryMasterID; voMaster.CommitmentNo = boUtils.GetNoByMask(SO_CommitInventoryMasterTable.TABLE_NAME, SO_CommitInventoryMasterTable.COMMITMENTNO_FLD, voMaster.CommitDate, Constants.YYYYMMDD0000); // add new master object and get new id voMaster.CommitInventoryMasterID = dsMaster.AddAndReturnID(voMaster); #region find all detail object to assign new master id DataRow[] drowDetails = pdstCommitDetail.Tables[0].Select(SO_CommitInventoryDetailTable.COMMITINVENTORYMASTERID_FLD + "=" + intOldID); foreach (DataRow drowDetail in drowDetails) { if (drowDetail.RowState != DataRowState.Deleted) { DataRow drowCommitDetail = dstCopyOfDetail.Tables[0].NewRow(); foreach (DataColumn dcol in dstCopyOfDetail.Tables[0].Columns) { drowCommitDetail[dcol.ColumnName] = drowDetail[dcol.ColumnName]; } drowCommitDetail[SO_CommitInventoryDetailTable.COMMITINVENTORYMASTERID_FLD] = voMaster.CommitInventoryMasterID; dstCopyOfDetail.Tables[0].Rows.Add(drowCommitDetail); } } #endregion #region find all transaction history object to assign new master id DataRow[] drowTransaction = pdstTransaction.Tables[0].Select(MST_TransactionHistoryTable.REFMASTERID_FLD + "=" + intOldID); foreach (DataRow drowDetail in drowTransaction) { if (drowDetail.RowState != DataRowState.Deleted) { DataRow drowNewTransaction = dstCopyOfTransaction.Tables[0].NewRow(); foreach (DataColumn dcol in dstCopyOfTransaction.Tables[0].Columns) { drowNewTransaction[dcol.ColumnName] = drowDetail[dcol.ColumnName]; } drowNewTransaction[MST_TransactionHistoryTable.REFMASTERID_FLD] = voMaster.CommitInventoryMasterID; dstCopyOfTransaction.Tables[0].Rows.Add(drowNewTransaction); } } #endregion } // update detail dataset SO_CommitInventoryDetailDS dsCommitDetail = new SO_CommitInventoryDetailDS(); dsCommitDetail.UpdateDataSet(dstCopyOfDetail); // update transaction history MST_TransactionHistoryDS dsTransaction = new MST_TransactionHistoryDS(); dsTransaction.UpdateDataSet(dstCopyOfTransaction); // update bin cache IV_BinCacheDS dsBinCache = new IV_BinCacheDS(); dsBinCache.UpdateDataSet(pdstBinCache); // update location cache IV_LocationCacheDS dsLocCache = new IV_LocationCacheDS(); dsLocCache.UpdateDataSet(pdstLocCache); // update master location cache IV_MasLocCacheDS dsMasLocCache = new IV_MasLocCacheDS(); dsMasLocCache.UpdateDataSet(pdstMasLocCache); }
public int ImportNewMappingData(DataTable dtImpData, int intPartyID, int intCCNID, int intMaxLine, DataSet dstMappingData) { int intResult = 0; int intMaxID = 0; dstMappingData.Tables[0].DefaultView.Sort = PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD; try { intMaxID = int.Parse(dstMappingData.Tables[0].Rows[dstMappingData.Tables[0].Rows.Count - 1][PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD].ToString()); } catch { intMaxID = 0; } dstMappingData.Tables[0].DefaultView.Sort = string.Empty; ITM_ProductDS dsProduct = new ITM_ProductDS(); for (int i = INT_BEGIN_DATA_ROW; i < dtImpData.Rows.Count; i++) { string strItemCode = dtImpData.Rows[i][INDEX_CODE].ToString(); string strDescription = dtImpData.Rows[i][INDEX_NAME].ToString(); string strRevision = dtImpData.Rows[i][INDEX_REVISION].ToString(); //find out total quantity at last column decimal dcmOrderQty = decimal.Parse(dtImpData.Rows[i][dtImpData.Columns.Count - 1].ToString()); //check if this item existed, update quantity only DataRow[] arrRows = dstMappingData.Tables[0].Select(ITM_ProductTable.CODE_FLD + "='" + strItemCode + "'"); if (arrRows.Length > 0) { arrRows[0][PO_PurchaseOrderDetailTable.ORDERQUANTITY_FLD] = decimal.Parse(arrRows[0][PO_PurchaseOrderDetailTable.ORDERQUANTITY_FLD].ToString()) + dcmOrderQty; continue; } if (dcmOrderQty <= 0) { continue; } ITM_ProductVO voProduct = (ITM_ProductVO)dsProduct.GetObjectVO(strItemCode, strDescription, strRevision); //New row DataRow dr = dstMappingData.Tables[0].NewRow(); UtilsBO boUtils = new UtilsBO(); //fill row dr[PO_PurchaseOrderDetailTable.ORDERQUANTITY_FLD] = dcmOrderQty; dr[PO_PurchaseOrderDetailTable.PRODUCTID_FLD] = voProduct.ProductID; dr[ITM_ProductTable.CODE_FLD] = voProduct.Code; dr[ITM_ProductTable.DESCRIPTION_FLD] = voProduct.Description; dr[ITM_ProductTable.REVISION_FLD] = voProduct.Revision; dr[PO_PurchaseOrderDetailTable.BUYINGUMID_FLD] = voProduct.BuyingUMID; dr[PO_PurchaseOrderDetailTable.UNITPRICE_FLD] = voProduct.ListPrice; dr[PO_PurchaseOrderDetailTable.TOTALAMOUNT_FLD] = voProduct.ListPrice * dcmOrderQty; dr[PO_PurchaseOrderDetailTable.UMRATE_FLD] = boUtils.GetUMRate(voProduct.StockUMID, voProduct.BuyingUMID); dr[PO_PurchaseOrderDetailTable.LINE_FLD] = ++intMaxLine; dr[PO_PurchaseOrderDetailTable.PURCHASEORDERDETAILID_FLD] = ++intMaxID; dr[PO_PurchaseOrderDetailTable.STOCKUMID_FLD] = voProduct.StockUMID; dstMappingData.Tables[0].Rows.Add(dr); } return(intResult); }