Example #1
0
function checkMilestone($class, $action)
{
    if (!$class) {
        $action();
        return;
    }
    $milestones = fetchAll("SELECT points FROM milestone ORDER BY points ASC");
    $startPoints = array_pop(calculatePoints($class)["points"]);
    $action();
    $endPoints = array_pop(calculatePoints($class)["points"]);
    $achieved = [];
    foreach ($milestones as $stone) {
        if ($stone->points > $endPoints) {
            break;
        }
        if ($stone->points > $startPoints) {
            array_push($achieved, $stone->points);
        }
    }
    if (empty($achieved)) {
        return;
    }
    $classInfo = fetch("SELECT c.name, u.email FROM class AS c JOIN user AS u ON c.teacher = u.id");
    $n = "";
    if (count($achieved) > 1) {
        $n = "n";
    }
    foreach (fetchAll("SELECT email FROM user WHERE role = :admin", ["admin" => ADMIN]) as $admin) {
        own_mail($admin->email, "Etappe{$n} erreicht", "Guten Tag,\r\nDie Klasse \"{$classInfo->name}\" hat die Etappe{$n} " . implode(", ", $achieved) . " erreicht!\r\nDie Lehrkraft ist: {$classInfo->email} \r\n\r\nNachhaltige Grüße\r\nIhre Weltfairsteher-Website");
    }
    own_mail($classInfo->email, "Etappe{$n} erreicht", "Herzlichen Glückwunsch, Ihre  Klasse \"{$classInfo->name}\" hat bei WeltFAIRsteher die Etappe{$n} " . implode(", ", $achieved) . " erreicht!\r\nSie erhalten demnächst eine Überraschung per Post\r\n\r\nNachhaltige Grüße\r\nIhr WeltFAIRsteher-Team");
}
Example #2
0
 function updatePontuacao($tabela, $id, $col)
 {
     if ($col == 'quantidade_producao' || $col == 'fk_classificacao' || $col == 'recalculate' || $tabela == "tb_producaodecorrente") {
         //echo $tabela.' '.$id.' '.$col."\n";
         $infoPontos = array();
         $updatedProducao = array();
         if ($tabela != "tb_producaodecorrente") {
             $updatedProducao = $this->mproducao->get($id);
             if ($col == "recalculate") {
                 $producoesAssociadas = $this->mproducaodecorrente->getDecorrentes($id);
             }
         } else {
             if ($col != "recalculate") {
                 $decorrencia = $this->mproducaodecorrente->get($id);
                 if (count($decorrencia) > 0) {
                     $updatedProducao = $this->mproducao->get($decorrencia[0]['fk_producao_principal']);
                     $producoesAssociadas = $this->mproducaodecorrente->getDecorrentes($updatedProducao['id_producao']);
                 } else {
                     echo "Erro inesperado.";
                 }
             } else {
                 $updatedProducao = $this->mproducao->get($id);
                 $producoesAssociadas = $this->mproducaodecorrente->getDecorrentes($id);
             }
         }
         $regra = $this->mregra->get($updatedProducao['id_item']);
         $formula = $regra['formula_regra'];
         //echo $updatedProducao['id_producao'].' '.$regra['id_item'].' '.$formula;
         if (isset($updatedProducao['quantidade_producao'])) {
             $infoPontos['valor_informado'] = $updatedProducao['quantidade_producao'];
         }
         if (isset($updatedProducao['id_classificacao'])) {
             $valorClassif = $this->mregraclassificacao->getValor($updatedProducao['id_item'], $updatedProducao['id_classificacao']);
             var_dump($updatedProducao);
             $infoPontos['classif_informado'] = $valorClassif['valor'];
         }
         if ($regra['quantidade_decorrente'] > 0) {
             //echo "oi";
             //var_dump($producoesAssociadas);
             for ($i = 0; $i < count($producoesAssociadas); $i++) {
                 $infoPontos['decorrente_informado'][$i] = $producoesAssociadas[$i]['pontuacao_producao'];
             }
         }
         $pontuacao = calculatePoints($formula, $infoPontos);
         $this->mproducao->updatefield($updatedProducao['id_producao'], 'pontuacao_producao', $pontuacao);
         $producoesInfluenciadas = $this->mproducaodecorrente->getPrincipais($updatedProducao['id_producao']);
         foreach ($producoesInfluenciadas as $producaoInfluenciada) {
             //var_dump($producaoInfluenciada);
             $this->updatePontuacao($tabela, $producaoInfluenciada['fk_producao_principal'], "recalculate");
             //echo "Influencia terminada\n";
         }
     }
 }
Example #3
0
<?php

$sqlClasses = fetchAll("SELECT id, name FROM class");
$classPoints = calculatePoints(array_map(function ($class) {
    return $class->id;
}, $sqlClasses));
$classes = [];
foreach ($sqlClasses as $class) {
    $classPoints[$class->id]["name"] = $class->name;
    array_push($classes, $classPoints[$class->id]);
}
$milestones = fetchAll("SELECT points FROM milestone ORDER BY points ASC");
?>
<script type="text/javascript">
 var classes = <?php 
echo json_encode($classes);
?>
;
 var milestones = <?php 
echo json_encode($milestones);
?>
;
</script>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="js/chart.js"></script>
Example #4
0
function diskGraph($queryInfo, $uid = 0, $label) {

	global $db, $MyData, $query, $info, $myCache;

	calculatePoints($query, $queryInfo, 'diskused', "Disk Used", "%");

	$MyData->loadPalette("pchart/palettes/openstatus.color", TRUE);
	$MyData->setSerieDescription("Labels","Time");
	$MyData->setAbscissa("Labels");
	$MyData->setXAxisDisplay(AXIS_FORMAT_TIME, $queryInfo[3]);
	$MyData->setAxisName(0, "");

	$myPicture = new pImage(700,230,$MyData);
	$ChartHash = $myCache->getHash($MyData);

	if ($myCache->isInCache($ChartHash)) {
		$myCache->strokeFromCache($ChartHash);
	} else {

		$myPicture->Antialias = TRUE;
		$myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));
		$myPicture->setFontProperties(array("FontName"=>"pchart/fonts/calibri.ttf","FontSize"=>11));
		$myPicture->drawText(350,35, $label." - ".$queryInfo[1],array("FontSize"=>14,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
		$myPicture->drawText(350,15,"Server: ".$info['hostname'], array("FontSize"=>14, "Align"=>TEXT_ALIGN_MIDDLEMIDDLE));
		$myPicture->setFontProperties(array("FontName"=>"pchart/fonts/calibri.ttf","FontSize"=>8));
		$myPicture->setGraphArea(60,40,650,200);

		$AxisBoundaries = array(0=>array("Min"=>0,"Max"=>100));
		$scaleSettings = array(
			"XMargin"=>10,
			"YMargin"=>10,
			"Floating"=>TRUE,
			"CycleBackground"=>FALSE,
			"LabelSkip"=>$queryInfo[2],
			"Mode"=>SCALE_MODE_MANUAL,
			"ManualScale"=>$AxisBoundaries,
			"DrawSubTicks"=>TRUE,
			"SkippedTickAlpha"=>0,
			"SubTickR"=>0,
			"SubTickG"=>0,
			"SubTickB"=>0
		);

		$myPicture->drawScale($scaleSettings);
		$myPicture->drawFilledSplineChart();
		$myCache->writeToCache($ChartHash,$myPicture);

	}
	$myPicture->autoOutput("cache/".$info['uid']."/diskused-".$queryInfo[4].".png");

}