--- trunk/tntnet/dynamic/critical.ecpp 2007/11/27 14:28:59 68 +++ trunk/tntnet/dynamic/critical.ecpp 2007/12/03 07:56:35 129 @@ -1,11 +1,97 @@ +<%pre> +#include +#include +#include +#include + + + <%config> dburl; <&header title="Critical systems"> +

Critical systems

+ +<{ + +tntdb::Connection conn = tntdb::connect(dburl); + + +std::string query1; +query1 += "SELECT c.name, i.description, i.id "; +query1 += "FROM installation i INNER JOIN customer c "; +query1 += "ON i.customerid = c.id"; + + +tntdb::Result inst_res = conn.select(query1); + + +std::string query2; +query2 += "SELECT commerror,temperature,flamedetector,conveyorerror,powerfailure "; +query2 += "FROM logtable "; +query2 += "INNER JOIN installation "; +query2 += "ON logtable.installationnr = installation.id "; +query2 += "WHERE installationnr = :v1 "; +query2 += "ORDER BY messagenr DESC "; +query2 += "LIMIT 1"; + +tntdb::Statement st = conn.prepare(query2); + +std::ostream& out = reply.out(); + +bool hasCritical = false; + +for (unsigned i=0; i 0) + { + bool commerror = res[0].getBool(0); + int temperature = res[0].getInt(1); + bool flameDetector = res[0].getBool(2); + bool conveyorError = res[0].getBool(3); + bool powerFailure = res[0].getBool(4); + + if (commerror || temperature > 90 || flameDetector == false || conveyorError || powerFailure) + { + out << "" << inst_res[i].getString(0) << " : " << inst_res[i].getString(1) << "
\n"; + out << "
    "; + + if (temperature > 90) + out << "
  • High temperature
  • \n"; + + if (commerror) + out << "
  • Communication error
  • \n"; + + if (flameDetector == false) + out << "
  • No flames
  • \n"; + + if (conveyorError) + out << "
  • Conveyor error
  • \n"; + + if (powerFailure) + out << "
  • Power failure
  • \n"; + + out << "
\n"; + + hasCritical = true; + } + } +} + +if (hasCritical == false) +{ + out << "No critical installations found\n"; +} -<$ dburl $> +}> <&footer>