daniels/fuellogger

0.3.1 2022-05-02 09:03 UTC

This package is auto-updated.

Last update: 2024-04-30 00:28:33 UTC


README

Dashboard und Preisbenachrichtigungen anhand der Benzinpreisinformationen von https://creativecommons.tankerkoenig.de/

Installation

./vendor/bin/doctrine-migrations migrations:migrate --configuration ./src/Migrations/migrations.php --db-configuration ./src/Migrations/migrations_db.php

importieren von Bestandsdaten

Tankerkönig stellt in der Historie unter https://creativecommons.tankerkoenig.de/ Bestandsdaten zur Verfügung. Diese können importiert werden. Lege dazu eine Importtabelle an:

CREATE TABLE `import` (
  `datetime` datetime NOT NULL,
  `stationid` char(36) NOT NULL,
  `diesel` float(4,3) NOT NULL,
  `e5` float(4,3) NOT NULL,
  `e10` float(4,3) NOT NULL,
  `dieselchange` int(1) NOT NULL,
  `e5change` int(1) NOT NULL,
  `e10change` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

ALTER TABLE `import`
  ADD KEY `stationid` (`stationid`);

Importiere die CSV-Daten in diese Tabelle.

Mit den folgenden Abfragen werden die Preisdaten in die Struktur dieses Pakets übertragen:

-- E5

INSERT INTO prices (
SELECT UUID(), st.ID, 'e5', im.e5, im.datetime, im.datetime FROM `import` im 
LEFT JOIN stations st ON im.stationid = st.TKID
WHERE e5change = 1 AND st.TKID IS NOT NULL
);

-- E10

INSERT INTO prices (
SELECT UUID(), st.ID, 'e10', im.e10, im.datetime, im.datetime FROM `import` im 
LEFT JOIN stations st ON im.stationid = st.TKID
WHERE e10change = 1 AND st.TKID IS NOT NULL
);

-- Diesel

INSERT INTO prices (
SELECT UUID(), st.ID, 'diesel', im.diesel, im.datetime, im.datetime FROM `import` im 
LEFT JOIN stations st ON im.stationid = st.TKID
WHERE dieselchange = 1 AND st.TKID IS NOT NULL
);

Im Anschluss kann die import Tabelle wieder gelöscht werden.