protected override void OnInit(EventArgs e) { base.OnInit(e); srcOptimizeTable.DataFile = GetDirectory() + userDir + MAIN_USER_DATABASE; classE1_1 = new ClassF(GetDirectory() + userDir); classE1_1.Close(); }
public static bool isReCalcNecessary(string username, string path) { Boolean resultMessage; if (isCalculating(path)) { resultMessage = false; } else { ClassF classE1_1 = new ClassF(path); classE1_1.Open(); try { int totalCalc = 0; classE1_1.username = username; classE1_1.SetBasicModelInfo(); classE1_1.calc_return = 0; //0 - none, 1 labor, 2 eq over util, 4 warnings 8 errors ADODB.Recordset recNeedCalc = new ADODB.Recordset(); //check if basecase needs recalc and add to totalCalc DbUse.open_ado_rec(classE1_1.globaldb, ref recNeedCalc, "SELECT * FROM zs0tblWhatIf WHERE zs0tblWhatIf.WID=0;"); int basecaserecalc = Convert.ToInt32(recNeedCalc.Fields["recalc"].Value); if (basecaserecalc != 0) { totalCalc++; } bool recOpened = DbUse.OpenAdoRec(classE1_1.globaldb, recNeedCalc, "SELECT * FROM tblWhatIf WHERE FamilyID = 0 AND recalc = true AND display = -1;"); while (!recNeedCalc.EOF) { totalCalc++; recNeedCalc.MoveNext(); } DbUse.CloseAdoRec(recNeedCalc); if (totalCalc > 0) { resultMessage = true; } else { resultMessage = false; } } catch (Exception) { resultMessage = false; } classE1_1.Close(); } return(resultMessage); }
protected void ReturnToBasecase() { ClassF mpxClass = new ClassF(GetDirectory() + userDir); mpxClass.LoadBaseCase(); //mpxClass.dowhatif_all_end(); // don't know if that's of any use... mpxClass.Close(); Master.PassCurrentWhatifName(""); // hide the current whatif label in master page Master.SetCurrentWhatifLabel(); }
protected void btnDefaultRoutingPart_Click(object sneder, EventArgs e) { ClassF classF = new ClassF(GetDirectory() + userDir); try { classF.addfromto_part(int.Parse(dropListProducts.SelectedValue)); tableSync.SyncTablesOnDefaultRouting(int.Parse(dropListProducts.SelectedValue)); } catch (Exception) { } classF.Close(); SetData(); }
protected override void OnInit(EventArgs e) { base.OnInit(e); if (!LocalTablesLinked()) { ResetModelGoToModels(); } try { classE1_1 = new ClassF(GetDirectory() + userDir); classE1_1.Close(); SetWhatifRecordsCommands(); } catch (Exception ex) { logFiles.ErrorLog(ex); } }
protected void btnRoutingShowTimes_Click(object sender, EventArgs e) { btnRoutingShowTimes.Enabled = false; if (btnRoutingShowTimes.Text.Equals("Show Real Percentage")) { gridRouting.Columns[0].Visible = false; this.TABLE_NAME_ROUTING = "tblOpFrTo_d"; btnRoutingShowTimes.Text = "Edit Routings"; { ClassF calc = new ClassF(GetDirectory() + userDir); try { calc = new ClassF(GetDirectory() + userDir); calc.setGlobalVar(); calc.runsqlado("DELETE * FROM tblOpFrTo_d;"); calc.runsqlado("DELETE * FROM zstblerrors;"); calc.inOperRoutingPages = true; calc.MakeActualroute_all(); string errorMsg = calc.GetErrorMessage(); lblErrorRealTimesRouting.Text = "Errors in calculating expressions in routing table:<br/>" + errorMsg; lblErrorRealTimesRouting.Visible = !errorMsg.Trim().Equals(String.Empty); } catch (Exception ex) { logFiles.ErrorLog(ex); Master.ShowErrorMessage("An error has occured while calculating expressions."); } finally { calc.Close(); } } } else { gridRouting.Columns[0].Visible = true; this.TABLE_NAME_ROUTING = "tblOperFrTo"; btnRoutingShowTimes.Text = "Show Real Percentage"; } this.SetData(); btnRoutingShowTimes.Enabled = true; }
protected bool SaveModel(int saveMode, string name, bool showMessage) { string currDbDir = GetDirectory() + userDir; string modelDir = currDbDir + MODELS + "\\"; string modelName = modelDir + name; string modelInitialName; string originalModel = Master.GetCurrentModel(); if (saveMode == SaveMode.CURRENT_MODEL || saveMode == SaveMode.RENAME_MODEL) { modelInitialName = modelDir + CURRENT_DATABASE; { ClassF classF = new ClassF(GetDirectory() + userDir); classF.Open(); classF.eliminate_nulls0(); classF.check_dock_stock(); //classF.checkDOCKSTOCK(); //classF.clear_all_id_name_flags(); ????? CANNOT FIND classF.set_ids2names(); classF.Close(); } } else if (saveMode == SaveMode.NEW_MODEL) { modelInitialName = modelDir + NEW_MODEL_DATABASE; } string message = "Model '" + name + "'"; try { if (saveMode == SaveMode.NEW_MODEL) { if (!File.Exists(currDbDir + NEW_MODEL_DATABASE)) { File.Copy(GetDirectory() + NEW_MODEL_DATABASE, currDbDir + NEW_MODEL_DATABASE, true); } File.Copy(currDbDir + NEW_MODEL_DATABASE, modelName, true); // save the model message += " was created "; //File.Move(modelInitialName, modelName); } else { if (saveMode == SaveMode.CURRENT_MODEL) { File.Copy(currDbDir + CURRENT_DATABASE, modelName, true); // save the model } else if (saveMode == SaveMode.RENAME_MODEL) { File.Copy(currDbDir + CURRENT_DATABASE, modelName, true); // save the model File.Delete(modelDir + originalModel); // delete the original model } message += " saved successfuly."; } SetModelModified(false); } catch (Exception ex) { logFiles.ErrorLog(ex); if (showMessage) { message += " could not save. "; Master.ShowErrorMessage("An error has occured." + message); } return(false); } CleanUpAfterSave(saveMode, originalModel, name, message, showMessage); return(true); }
protected void DeleteRow(int rowIndex) { GridViewRow row = grid.Rows[rowIndex]; var newValues = this.GetValues(row); connec = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + GetDirectory() + userDir + MAIN_USER_DATABASE + ";"); OleDbCommand cmd = new OleDbCommand(GetCommandString(Command.DELETE), connec); cmd.Parameters.AddWithValue(FIELDS[0], grid.DataKeys[row.RowIndex][FIELDS[0]]); int key = int.Parse(grid.DataKeys[row.RowIndex][FIELDS[0]].ToString()); try { int prodid = -1; string opname = ""; bool issueRoutingWarning = false; ClassF classA = null; if (TABLE_NAME.Equals("tbloper")) { try { prodid = int.Parse(GetDatabaseField("Prodfore", "OpID", key, "tblOper")); opname = GetDatabaseField("OpNam", "OpID", key, "tblOper"); try { classA = new ClassF(GetDirectory() + userDir); issueRoutingWarning = classA.repair_routings(key, opname, prodid); classA.Close(); } catch (Exception) { } } catch (Exception) { } } connec.Open(); try { int result = cmd.ExecuteNonQuery(); } catch (Exception excep) { Exception excepNew = new Exception("Error in executing delete query. Command string: " + cmd.CommandText + ". Exception message: " + excep.Message, excep); throw excepNew; } connec.Close(); grid.EditIndex = -1; this.SetData(); if (classA == null) { classA = new ClassF(GetDirectory() + userDir); } else { classA.Open(); } if (TABLE_NAME.Equals("tbllabor")) { classA.del_labor_res(key); classA.del_lab_ref(key); } else if (TABLE_NAME.Equals("tblequip")) { classA.del_eq_res(key); classA.del_eq_ref(key); } else if (TABLE_NAME.Equals("tblprodfore")) { classA.del_pt_res(key); } else if (TABLE_NAME.Equals("tbloper")) { // delete oper results ??? ask Greg classA.del_op_res(key); } classA.Close(); if (TABLE_NAME.Equals("tbloper")) { tableSync.UpdateOpNumbers(); } if (issueRoutingWarning) { Master.ShowInfoMessage("Routings for the operation were deleted. Please check out '" + opname + "' routing deleted does not leave a hole in the routings."); } } catch (Exception ex) { logFiles.ErrorLog(ex); try { connec.Close(); connec = null; } catch { } Master.ShowErrorMessage("An error has occured and the record could not get deleted."); } }
public static string RunAll(string username, string path, string sessionID) { string resultMessage = ""; var resultArray = new List <string[]>(); if (isCalculating(path)) { resultMessage = "Calculations are still in process from the previous run, please wait"; } else { int ret; DbUse.CreateRunFile(path, username); ClassF classE1_1 = new ClassF(path); classE1_1.Open(); try { int totalCalc = 0; int currentCalc = -1; classE1_1.username = username; classE1_1.SetBasicModelInfo(); classE1_1.calc_return = 0; //0 - none, 1 labor, 2 eq over util, 4 warnings 8 errors ADODB.Recordset recNeedCalc = new ADODB.Recordset(); //check if basecase needs recalc and add to totalCalc DbUse.open_ado_rec(classE1_1.globaldb, ref recNeedCalc, "SELECT * FROM zs0tblWhatIf WHERE zs0tblWhatIf.WID=0;"); totalCalc++; bool recOpened = DbUse.OpenAdoRec(classE1_1.globaldb, recNeedCalc, "SELECT * FROM tblWhatIf WHERE FamilyID = 0 AND display = -1;"); //bool recOpened = DbUse.OpenAdoRec(classE1_1.globaldb, recNeedCalc, "SELECT * FROM tblWhatIf;"); while (!recNeedCalc.EOF) { totalCalc++; recNeedCalc.MoveNext(); } DbUse.CloseAdoRec(recNeedCalc); DbUse.RunMysql("INSERT INTO usercalc (id) SELECT userlist.id FROM userlist WHERE userlist.sessionid = '" + sessionID + "';"); DbUse.RunMysql("UPDATE usercalc INNER JOIN userlist ON usercalc.id = userlist.id SET total = " + totalCalc + ", calc = " + currentCalc + ", lastCheck = " + DateTime.Now.Ticks + ", cancel = 0, timePerCalc = 100000000 WHERE userlist.sessionid = '" + sessionID + "';"); classE1_1.global_runalldone = false; classE1_1.global_initwid = classE1_1.glngwid; classE1_1.errorMessageGlobal = ""; while (classE1_1.global_runalldone == false) { classE1_1.calc_return = 0; //classE1_1.Run_All_ReCalc(1); resultArray = classE1_1.CalculateResults(1, sessionID); } if (classE1_1.global_initwid != classE1_1.glngwid) { if (classE1_1.global_initwid != 0) { classE1_1.LoadBaseCase(); ret = classE1_1.LoadWhatIf(classE1_1.global_initwid); } else { classE1_1.LoadBaseCase(); } } ; resultMessage = CalcClass.GetErrorMessage(classE1_1); if (resultMessage.Trim().Equals(String.Empty)) { foreach (var result in resultArray) { if (result[4].Equals("true")) { resultMessage += "<span style='color:#27ae60;'>"; } else { resultMessage += "<span style='color:#c0392b;'>"; } resultMessage += result[0] + ": "; if (!String.IsNullOrEmpty(result[1])) { resultMessage += result[1]; } if (!String.IsNullOrEmpty(result[2])) { resultMessage += result[2]; } if (!String.IsNullOrEmpty(result[3])) { resultMessage += result[3]; } resultMessage += "</span>"; } } //if (resultMessage.Trim().Equals(String.Empty)) //{ // if ((classE1_1.calc_return & CalcClass.ERR_FLAG) > 0) // { // resultMessage = CalcClass.do_calc_msg(classE1_1.calc_return, 0); // } // else // { // resultMessage = CalcClass.do_calc_msg(classE1_1.calc_return, 1); // } //} classE1_1.runsqlado("UPDATE zs0tblWhatif SET display = -1 WHERE WID = " + classE1_1.glngwid + ";"); } catch (Exception) { resultMessage = "MPX internal error has occured"; } classE1_1.Close(); DbUse.RunMysql("DELETE usercalc.* FROM usercalc INNER JOIN userlist ON usercalc.id = userlist.id WHERE userlist.sessionid = '" + sessionID + "';"); DbUse.DeleteRunFile(path, username); } return(resultMessage); }
// GREG - please add dowhatif_all_start() and dowhatif_all_end() where applicable protected void Page_Load(object sender, EventArgs e) { base.Page_Load(sender, e); string str1 = ""; short x1; int ret; //if (DbUse.InRunProcess(userDir)) { // ShowWhatifs(); // Master.ShowErrorMessage("Cannot load information about What-If Scenarios because calculations are still running in the current model. Please wait and come back later."); // return; //} try { classE1_1.Open(); ret = classE1_1.testresetwid(classE1_1.glngwid); /// sees if glngwid has a record in tblwhatif ... if (ret == 0) { classE1_1.glngwid = 0; // duplicate here !!! } if (!Page.IsPostBack) { // add test for glngwid in tblwhatif!!!! else set to 0 // when saving model, closing, ... check if glngwid != 0 give user choice of save, quit or new whatif name ShowWhatifs(); if (classE1_1.glngwid == 0) { classE1_1.dowhatif_all_start(); MPXWhatfcontrolChoices.SetActiveView(PageR1); } else { set_page2_words(); RefreshWhatifRecords(); SetWhatifRecordsData(); MPXWhatfcontrolChoices.SetActiveView(PageR2); //set words for whatif name, comment etc... } } else { updatingdatasource(); SetWhatifRecordsData(); /* // notupdating datasource!!! * * AccessDataSource1.UpdateCommand = "SELECT [WID], [Name] FROM [tblWhatIf]"; * AccessDataSource1.DataFile = classE1_1.varlocal + "\\mpxmdb.mdb"; * AccessDataSource1.Update(); * AccessDataSource1.DataBind(); * AccessDataSource1.Update(); */ } classE1_1.Close(); } catch (Exception ex) { logFiles.ErrorLog(ex); Master.ShowErrorMessage("MPX internal error has occured."); } }
protected void Page_Load(Object sender, System.EventArgs e) //Handles Me.Load { base.Page_Load(sender, e); classE1_1.Open(); classE1_1.username = username; // Load the first page string str1; if (!Page.IsPostBack) { SetLotsizesData(); } //test //classE1_1.UpdateMPX(); try { classE1_1.SetBasicModelInfo(); // sets glngwid etc. whatif_err = CalcClass.WHATIFSTOP_FLAG; if (!Page.IsPostBack) { MPXRunChoices.SetActiveView(PageR1); SetActiveView(0); SetCalculationLabels(); RadioButtonList1.Items[0].Selected = true; RadioButtonList2.Items[0].Selected = true; RadioButtonList3.Items[0].Selected = true; } } catch (Exception ex) { Master.ShowErrorMessage("MPX internal error has occured."); } classE1_1.Close(); if (!Page.IsPostBack) { txtResults.Text = GetResMessage(); txtErrors.Text = GetErrMessage(); pnlResults.Visible = true; bool vis1 = !txtErrors.Text.Equals(String.Empty); if (vis1 == true) { pnlErrors.Visible = true; pnlResults.BorderColor = Color.Black; pnlResults.BorderWidth = 3; pnlResults.BorderStyle = BorderStyle.Solid; } else { pnlErrors.Visible = false; pnlResults.BorderStyle = BorderStyle.None; } } } // end sub
public static CalculationResult CalculateResults(ClassF classE1_1) { LogFiles logFiles = new LogFiles(classE1_1.username); if (DbUse.InRunProcess(classE1_1.varlocal, true)) { logFiles.DuplicateRunEndLog(); throw new Exception("Cannot start verification and calculations. The verification and calculations are still in process from the previous run. Please wait."); } DbUse.RunMysql("INSERT INTO usercalc (id) SELECT userlist.id FROM userlist WHERE userlist.sessionid = '" + HttpContext.Current.Session.SessionID + "';"); DbUse.RunMysql("UPDATE usercalc INNER JOIN userlist ON usercalc.id = userlist.id SET total = 1, calc = 1, lastCheck = " + DateTime.Now.Ticks + ", cancel = 0 WHERE userlist.sessionid = '" + HttpContext.Current.Session.SessionID + "';"); DbUse.CreateRunFile(classE1_1.varlocal, classE1_1.username); classE1_1.Open(); classE1_1.SetBasicModelInfo(); // sets glngwid etc. classE1_1.calc_return = 0; //0 - none, 1 labor, 2 eq over util, 4 warnings 8 errors string errorsMessage = ""; string resultsMessage = ""; try { classE1_1.RunDLL(); if (!classE1_1.errorMessageGlobal.Equals("")) { string errorMessageGlobal = classE1_1.errorMessageGlobal; classE1_1.errorMessageGlobal = ""; throw new Exception("The calculations were unsuccessful. " + errorMessageGlobal); } if ((classE1_1.calc_return & CalcClass.ERR_FLAG) > 0) { resultsMessage = do_calc_msg(classE1_1.calc_return, 0); } else { resultsMessage = do_calc_msg(classE1_1.calc_return, 1); } errorsMessage = GetErrorMessage(classE1_1); save_errors_results(classE1_1, resultsMessage, errorsMessage); classE1_1.runsqlado("UPDATE zs0tblWhatif SET display = -1 WHERE WID = " + classE1_1.glngwid + ";"); classE1_1.Close(); } catch (Exception ex) { logFiles.ErrorLog(ex); classE1_1.Close(); DbUse.DeleteRunFile(classE1_1.varlocal, classE1_1.username); logFiles.RunEndLog(); DbUse.RunMysql("DELETE usercalc.* FROM usercalc INNER JOIN userlist ON usercalc.id = userlist.id WHERE userlist.sessionid = '" + HttpContext.Current.Session.SessionID + "';"); throw new Exception("MPX internal error has occured in calculations. Cannot calculate results. " + classE1_1.errorMessageGlobal); } DbUse.DeleteRunFile(classE1_1.varlocal, classE1_1.username); DbUse.RunMysql("DELETE usercalc.* FROM usercalc INNER JOIN userlist ON usercalc.id = userlist.id WHERE userlist.sessionid = '" + HttpContext.Current.Session.SessionID + "';"); logFiles.RunEndLog(); CalculationResult calcResult = new CalculationResult(resultsMessage, errorsMessage); return(calcResult); }