From 309a441318f63eaef3205d5c077796b4170169b2 Mon Sep 17 00:00:00 2001 From: JakubAndrysek Date: Tue, 9 Feb 2021 19:38:06 +0100 Subject: [PATCH] Working ThisStatusNumbersControl --- .idea/workspace.xml | 20 ++++-- .../ThisStatusNumbersControl.latte | 69 ++++++++++--------- .../ThisStatusNumbersControl.php | 58 +++++++++++----- ...e => ThisStatusNumbersControlSingle.latte} | 21 +++--- .../Model/DatabaseSelectionManager.php | 15 +++- .../templates/Overview/default.latte | 9 ++- .../Utils/DatabaseDataExtractorPretty.php | 4 ++ 7 files changed, 124 insertions(+), 72 deletions(-) rename app/CoreModule/Component/ThisStatusNumbersControl/{ThisStatusNumbersControlOne.latte => ThisStatusNumbersControlSingle.latte} (59%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 31919be1..6a5b87be 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,10 +2,12 @@ - - + + + + @@ -294,7 +303,8 @@ - diff --git a/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.latte b/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.latte index 7f2c0922..fd4c4309 100644 --- a/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.latte +++ b/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.latte @@ -3,10 +3,10 @@
- {var $date = "Přehled"} +{* {var $thisNumberBox[$type]->msg = "Přehled"}*} @@ -62,11 +62,11 @@
- {var $date = "Dnes"} +{* {var $thisNumberBox[$type]->msg = "Dnes"}*} {var $type = "DAY"} @@ -76,42 +76,42 @@
Doba pletení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeStr}
Upleteno
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->finishedCount} párů
Úspěšnost
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->rating}%
Pr. doba běhu
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeAvgStr}
Počet zastavení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopCount}
Pr. doba stání
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopTimeAvgStr}
@@ -120,11 +120,11 @@
- {var $date = "Poslední týden"} +{* {var $thisNumberBox[$type]->msg = "Poslední týden"}*} {var $type = "WEEK"}
@@ -133,42 +133,42 @@
Doba pletení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeStr}
Upleteno
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->finishedCount} párů
Úspěšnost
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->rating}%
Pr. doba běhu
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeAvgStr}
Počet zastavení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopCount}
Pr. doba stání
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopTimeAvgStr}
@@ -177,11 +177,11 @@
- {var $date = "Poslední měsíc"} +{* {var $thisNumberBox[$type]->msg = "Poslední měsíc"}*} {var $type = "MONTH"}
@@ -190,42 +190,42 @@
Doba pletení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeStr}
Upleteno
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->finishedCount} párů
Úspěšnost
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->rating}%
Pr. doba běhu
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeAvgStr}
Počet zastavení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopCount}
Pr. doba stání
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopTimeAvgStr}
@@ -234,11 +234,12 @@
- {var $date = "Poslední rok"} +{* {var $thisNumberBox[$type]->msg = "Poslední rok"}*} {var $type = "YEAR"}
@@ -247,42 +248,42 @@
Doba pletení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeStr}
Upleteno
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->finishedCount} párů
Úspěšnost
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->rating}%
Pr. doba běhu
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->workTimeAvgStr}
Počet zastavení
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopCount}
Pr. doba stání
-
{$date}
+
{$thisNumberBox[$type]->msg}
{$thisNumberBox[$type]->stopTimeAvgStr}
diff --git a/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.php b/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.php index 5a3aab9b..6fabd2ed 100644 --- a/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.php +++ b/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControl.php @@ -152,9 +152,28 @@ public function getClassName(string $sting): string return "bubble-".strtolower($sting); } + /** + * @param $string + * @return string + */ + public function clean($string): string + { + $string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens. + $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. + + return preg_replace('/-+/', '-', $string); // Replaces multiple hyphens with single one. + } - public function prepareThisNumberBox(int $number, string $workShift, DateTime $from, DateTime $to, string $dateText): DatabaseDataExtractorPretty + /** + * @param int $number + * @param string $workShift + * @param DateTime $from + * @param DateTime $to + * @param string $dateText + * @return DatabaseDataExtractorPretty + */ + public function prepareThisNumberBox(int $number, string $workShift, DateTime $from, DateTime $to, string $dateText): DatabaseDataExtractorPretty { $selectionTo = new DateTime(); @@ -235,18 +254,19 @@ public function prepareThisNumberBox(int $number, string $workShift, DateTime $f } - public function prepareNumberBox(Nette\Database\Table\Selection | null $sensorNumbers, string $workShift, DateTime $from, DateTime $to, string $dateText): DatabaseDataExtractorPretty + public function prepareNumberBox(Nette\Database\Table\Selection $sensorNumbers, string $workShift, DateTime $from, DateTime $to, string $dateText): DatabaseDataExtractorPretty { $numberBox = new DatabaseDataExtractorPretty(); foreach ($sensorNumbers as $sensorNumber) { - $sensor = $this->prepareThisNumberBox($sensorNumber->number, $workShift, $from, $to, $dateText); + $sensor = $this->prepareThisNumberBox($sensorNumber->number, $workShift, $from, $to, ""); if($sensor->status) { $numberBox->add($sensor); } } + $numberBox->msg = $dateText; $numberBox->stopTimeStr = $this->humanTimeShort($numberBox->stopTime); $numberBox->workTimeStr= $this->humanTimeShort($numberBox->workTime); $numberBox->allTimeStr= $this->humanTimeShort($numberBox->allTime); @@ -257,8 +277,6 @@ public function prepareNumberBox(Nette\Database\Table\Selection | null $sensorNu $numberBox->stopTimeAvg = intval($this->safeDivision($numberBox->stopTime, $numberBox->stopCount)); $numberBox->stopTimeAvgStr = $this->humanTimeShort($numberBox->stopTimeAvg); - - return $numberBox; } @@ -313,7 +331,7 @@ public function numberBoxes(Nette\Database\Table\Selection | null $sensorNumbers $fromDay->setTimestamp(strtotime("today")); $toDay = new DateTime(); $toDay->setTimestamp(strtotime("tomorrow")-1); - $thisNumberBoxes["DAY"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromDay, $toDay); + $thisNumberBoxes["DAY"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromDay, $toDay, "Dnes"); $fromWeek = new DateTime(); @@ -321,21 +339,21 @@ public function numberBoxes(Nette\Database\Table\Selection | null $sensorNumbers $fromWeek->sub(DateInterval::createFromDateString("1 week")); $toWeek = new DateTime(); $toWeek->setTimestamp(strtotime("tomorrow")-1); - $thisNumberBoxes["WEEK"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromWeek, $toWeek); + $thisNumberBoxes["WEEK"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromWeek, $toWeek, "Poslední týden"); $fromMonth = new DateTime(); $fromMonth->setTimestamp(strtotime("today")); $fromMonth->sub(DateInterval::createFromDateString("1 month")); $toMonth = new DateTime(); $toMonth->setTimestamp(strtotime("tomorrow")-1); - $thisNumberBoxes["MONTH"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromMonth, $toMonth); + $thisNumberBoxes["MONTH"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromMonth, $toMonth, "Poslední měsíc"); $fromMonth = new DateTime(); $fromMonth->setTimestamp(strtotime("today")); $fromMonth->sub(DateInterval::createFromDateString("1 year")); $toMonth = new DateTime(); $toMonth->setTimestamp(strtotime("tomorrow")-1); - $thisNumberBoxes["YEAR"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromMonth, $toMonth); + $thisNumberBoxes["YEAR"] = $this->prepareNumberBox($sensorNumbers, $workShift, $fromMonth, $toMonth, "Poslední rok"); return $thisNumberBoxes; } @@ -351,7 +369,7 @@ public function render(int $number, string $workShift) * @param Nette\Database\Table\Selection $sensorNumbers * @param string $workShift */ - public function renderOverview(Nette\Database\Table\Selection | null $sensorNumbers, string $workShift) + public function renderAllOverview(Nette\Database\Table\Selection | null $sensorNumbers, string $workShift) { $thisNumberBox = $this->numberBoxes($sensorNumbers, $workShift); // dump($thisNumberBox); @@ -365,16 +383,24 @@ public function renderOverview(Nette\Database\Table\Selection | null $sensorNumb /** * @param Nette\Database\Table\Selection $sensorNumbers * @param string $workShift + * @param string $pastTime + * @param string $dateText */ - public function renderYear(Nette\Database\Table\Selection | null $sensorNumbers, string $workShift) + public function renderAllSingle(Nette\Database\Table\Selection $sensorNumbers, string $workShift, string $pastTime, string $dateText) { - $thisNumberBox = $this->numberBoxes($sensorNumbers, $workShift); - dump($thisNumberBox); - $this->template->thisNumberBox = $thisNumberBox; + $fromMonth = new DateTime(); + $fromMonth->setTimestamp(strtotime("today")); +// $fromMonth->sub(DateInterval::createFromDateString("1 month")); + $fromMonth->sub(DateInterval::createFromDateString($pastTime)); + $toMonth = new DateTime(); + $toMonth->setTimestamp(strtotime("tomorrow")-1); + $numberBox = $this->prepareNumberBox($sensorNumbers, $workShift, $fromMonth, $toMonth, $dateText); + +// dump($numberBox); + $this->template->numberBox = $numberBox; // - $this->template->render(__DIR__ . '/ThisStatusNumbersControlOne.latte'); + $this->template->render(__DIR__ . '/ThisStatusNumbersControlSingle.latte'); -// dump($sensorNumbers); } diff --git a/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControlOne.latte b/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControlSingle.latte similarity index 59% rename from app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControlOne.latte rename to app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControlSingle.latte index a134bd2a..d7e797b1 100644 --- a/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControlOne.latte +++ b/app/CoreModule/Component/ThisStatusNumbersControl/ThisStatusNumbersControlSingle.latte @@ -1,45 +1,42 @@
+
+

{$numberBox->msg}

+
Doba pletení
-
{$date}
-
{$thisNumberBox[$type]->workTimeStr}
+
{$numberBox->workTimeStr}
Upleteno
-
{$date}
-
{$thisNumberBox[$type]->finishedCount} párů
+
{$numberBox->finishedCount} párů
Úspěšnost
-
{$date}
-
{$thisNumberBox[$type]->rating}%
+
{$numberBox->rating}%
Pr. doba běhu
-
{$date}
-
{$thisNumberBox[$type]->workTimeAvgStr}
+
{$numberBox->workTimeAvgStr}
Počet zastavení
-
{$date}
-
{$thisNumberBox[$type]->stopCount}
+
{$numberBox->stopCount}
Pr. doba stání
-
{$date}
-
{$thisNumberBox[$type]->stopTimeAvgStr}
+
{$numberBox->stopTimeAvgStr}
diff --git a/app/CoreModule/Model/DatabaseSelectionManager.php b/app/CoreModule/Model/DatabaseSelectionManager.php index 172f3cfd..e40234e4 100644 --- a/app/CoreModule/Model/DatabaseSelectionManager.php +++ b/app/CoreModule/Model/DatabaseSelectionManager.php @@ -500,11 +500,20 @@ public function createSelections(object $sensors, string $selection, DateTime $f public function getSelectionData(int $number, string $selection, string $workShift, DateTime $from, DateTime $to): DatabaseDataExtractorPretty { $dsPretty = new DatabaseDataExtractorPretty($number); - $dsPretty->workShift = $workShift; - $dSelection = $this->database->table("A".$number."_".$selection)->where("time >= ? AND time < ? AND workShift = ?", $from, $to, $workShift)->fetchAll(); + if($workShift == "") + { + $dsPretty->workShift = ""; + $dSelection = $this->database->table("A".$number."_".$selection)->where("time >= ? AND time < ?", $from, $to)->fetchAll(); + } + else + { + $dsPretty->workShift = $workShift; + $dSelection = $this->database->table("A".$number."_".$selection)->where("time >= ? AND time < ? AND workShift = ?", $from, $to, $workShift)->fetchAll(); + } - if(!$dSelection) + + if(!$dSelection) { return new DatabaseDataExtractorPretty(-555, false, "No input data"); } diff --git a/app/CoreModule/Presenters/templates/Overview/default.latte b/app/CoreModule/Presenters/templates/Overview/default.latte index 7079bb2a..308ebbbd 100644 --- a/app/CoreModule/Presenters/templates/Overview/default.latte +++ b/app/CoreModule/Presenters/templates/Overview/default.latte @@ -13,12 +13,17 @@

{$ws}

- {control thisStatusNumbers:Overview, $sensors, $ws} + {control thisStatusNumbers:AllOverview, $sensors, $ws}
{/foreach}
-{* {control thisStatusNumbers:Year, $sensors, ""}*} + + {* {control thisStatusNumbers:All, $sensors, $ws}*} + + +
+ {control thisStatusNumbers:AllSingle, $sensors, "", "1 year", "Poslední rok"}
\ No newline at end of file diff --git a/app/CoreModule/Utils/DatabaseDataExtractorPretty.php b/app/CoreModule/Utils/DatabaseDataExtractorPretty.php index 03c3c857..eb7de915 100644 --- a/app/CoreModule/Utils/DatabaseDataExtractorPretty.php +++ b/app/CoreModule/Utils/DatabaseDataExtractorPretty.php @@ -396,6 +396,10 @@ public function add(DatabaseDataExtractorPretty $var) $this->workTimeStr = "-"; $this->stopTimeAvgStr = "-"; $this->workTimeAvgStr = "-"; + if($this->msg == "") + { + $this->msg = $var->msg; + } $this->allTime += $var->stopTime; $this->stopTime += $var->stopTime;