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;
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    public void buttonr1_a_click(Object sender, System.EventArgs e)
    {
        LogFiles logFiles = new LogFiles(this.username);

        logFiles.RunLog();

        if (DbUse.InRunProcess(userDir))
        {
            Master.ShowErrorMessage("Cannot start verification and calculations. The verification and calculations are still in process from the previous run. Please wait.");
            logFiles.DuplicateRunEndLog();
            return;
        }
        CreateRunFile();

        int ret;

        try {
            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


            //-----------------------------------------------------------------

            // count all whatifs to be calculated and write it to the main mysql database
            ADODB.Recordset recWhatifs  = new ADODB.Recordset();
            bool            recOpened   = DbUse.OpenAdoRec(classE1_1.globaldb, recWhatifs, "SELECT tblWhatIf.*, tblWhatIf.recalc  FROM tblWhatIf WHERE FamilyID = 0;");
            int             totalCalc   = 1;
            int             currentCalc = 0;
            while (!recWhatifs.EOF)
            {
                totalCalc++;
                recWhatifs.MoveNext();
            }
            DbUse.CloseAdoRec(recWhatifs);


            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 = " + totalCalc + ", calc = " + currentCalc + ", lastCheck = " + DateTime.Now.Ticks + ", cancel = 0 WHERE userlist.sessionid = '" + HttpContext.Current.Session.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.runall_from_display();
            }


            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();
                }
            }
            ;


            //-----------------------------------------------------------------

            MPXRunChoices.SetActiveView(viewResults);
            SetActiveView(2);
            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);
            }

            /*  todaytoday    if ...  public const short LAB_OVER_U = 1;
             *            public const short EQ_OVER_U = 2;
             *   show ....
             *
             */
            string errorsMessage = GetErrorMessage();
            txtResults.Text = resultsMessage;
            txtErrors.Text  = errorsMessage;
            save_errors_results(resultsMessage, errorsMessage);
            pnlResults.Visible = true;
            pnlErrors.Visible  = !errorsMessage.Trim().Equals(String.Empty);


            classE1_1.runsqlado("UPDATE zs0tblWhatif SET display = -1 WHERE WID = " + classE1_1.glngwid + ";");
        } catch (Exception ex) {
            logFiles.ErrorLog(ex);
            Master.ShowErrorMessage("MPX internal error has occured. " + classE1_1.errorMessageGlobal);
        }
        classE1_1.Close();
        DbUse.RunMysql("DELETE usercalc.* FROM usercalc INNER JOIN userlist ON usercalc.id = userlist.id WHERE userlist.sessionid = '" + HttpContext.Current.Session.SessionID + "';");
        DeleteRunFile();
        logFiles.RunEndLog();
    }
    public void Button_replace_Click(Object sender, System.EventArgs e)
    {
        int    wid2;
        string str1;

        try {
            classE1_1.Open();
            //  add code    del current whatif results, //zstblwhatifaudit, clear glngwid, set recalc / save indicators
            wid2 = classE1_1.glngwid;

            // replace results
            classE1_1.runsqlado("DELETE tblRsEquip.WID, tblRsEquip.* FROM tblRsEquip WHERE (((tblRsEquip.WID)=0));");
            classE1_1.runsqlado("DELETE tblRsProd.WID, tblRsProd.* FROM tblRsProd WHERE (((tblRsProd.WID)=0));");
            classE1_1.runsqlado("DELETE tblRsSummary.WID, tblRsSummary.* FROM tblRsSummary WHERE (((tblRsSummary.WID)=0));");
            classE1_1.runsqlado("DELETE tblRsOper.WID, tblRsOper.* FROM tblRsOper WHERE (((tblRsOper.WID)=0));");
            classE1_1.runsqlado("DELETE tblRsLabor.WID, tblRsLabor.* FROM tblRsLabor WHERE (((tblRsLabor.WID)=0));");

            classE1_1.runsqlado("UPDATE tblRsEquip SET tblRsEquip.WID = 0, tblRsEquip.Whatif = 'Base Case' WHERE (((tblRsEquip.WID)=" + wid2 + ")); ");
            classE1_1.runsqlado("UPDATE tblRsLabor SET tblRsLabor.WID = 0, tblRsLabor.Whatif = 'Base Case' WHERE (((tblRsLabor.WID)=" + wid2 + ")); ");
            classE1_1.runsqlado("UPDATE tblRsOper SET tblRsOper.WID = 0, tblRsOper.Whatif = 'Base Case' WHERE (((tblRsOper.WID)=" + wid2 + ")); ");
            classE1_1.runsqlado("UPDATE tblRsSummary SET tblRsSummary.WID = 0, tblRsSummary.Whatif = 'Base Case' WHERE (((tblRsSummary.WID)=" + wid2 + ")); ");
            classE1_1.runsqlado("UPDATE tblRsProd SET tblRsProd.WID = 0, tblRsProd.Whatif = 'Base Case' WHERE (((tblRsProd.WID)=" + wid2 + ")); ");

            classE1_1.DeleteWhatIfAudit(wid2);
            str1 = "DELETE [ZstblwhatifAudit].* FROM [ZstblwhatifAudit];";
            classE1_1.runsqlado(str1);



            classE1_1.glngwid = 0;
            classE1_1.saveWid();
            classE1_1.saveRecalcNeeded(0, -1);
            classE1_1.model_modified = -1;
            classE1_1.saveModel_modified();
            Master.PassCurrentWhatifName("");
            Master.SetCurrentWhatifLabel();
            updatingdatasource();
            ShowWhatifs();
            classE1_1.dowhatif_all_start();
            classE1_1.runsqlado("UPDATE zs0tblWhatif SET display = -1 WHERE WID = 0;");
            MPXWhatfcontrolChoices.SetActiveView(PageR1);
            classE1_1.Close();
        } catch (Exception ex) {
            logFiles.ErrorLog(ex);
            Master.ShowErrorMessage("MPX internal error has occured.");
        }
    }
    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);
    }