initial commit
this is a copy ;3
This commit is contained in:
BIN
PfandApplication/wiki/__pycache__/main.cpython-313.pyc
Normal file
BIN
PfandApplication/wiki/__pycache__/main.cpython-313.pyc
Normal file
Binary file not shown.
19
PfandApplication/wiki/listeHOFER.csv
Normal file
19
PfandApplication/wiki/listeHOFER.csv
Normal file
@@ -0,0 +1,19 @@
|
||||
Kategorie,Produkt,Einzeln (€),Kiste inkl. aller Flaschen (€)
|
||||
Bier,"Bierflasche 0,5l",0.20,
|
||||
Bier,"Bierkiste 0,5l (LogiPack, Gösser, Stiegl, Puntigamer, Egger) 20er leer",3.00,7.00
|
||||
Alkoholfreie Getränke,Römerquelle 1l,0.29,
|
||||
Alkoholfreie Getränke,Splitkiste Römerquelle 1l 6er leer,2.00,3.74
|
||||
Alkoholfreie Getränke,Splitkiste Römerquelle 1l 12er leer,4.00,7.48
|
||||
Alkoholfreie Getränke,Coca Cola 1l,0.29,
|
||||
Alkoholfreie Getränke,Splitkiste Coca Cola 1l 6er leer,2.00,3.74
|
||||
Alkoholfreie Getränke,Splitkiste Coca Cola 1l 12er leer,4.00,7.48
|
||||
Alkoholfreie Getränke,Kiste Coca Cola 1l 12er leer,3.00,6.48
|
||||
Alkoholfreie Getränke,Normflasche 1l,0.29,
|
||||
Alkoholfreie Getränke,Normkiste 1l 6er leer,3.00,4.74
|
||||
Alkoholfreie Getränke,Exklusivmarken-Flasche 1l,0.29,
|
||||
Alkoholfreie Getränke,Exklusivmarken-Kiste 1l 6er leer,3.00,4.74
|
||||
Molkerei,Milchflasche 1l,0.22,
|
||||
Molkerei,Milchkiste 1l 6er leer,5.50,6.82
|
||||
Molkerei,Joghurtglas,0.17,
|
||||
Einweg,Kunststoffflaschen,0.25,
|
||||
Einweg,Metalldosen,0.25,
|
||||
|
27
PfandApplication/wiki/listeSPAR.csv
Normal file
27
PfandApplication/wiki/listeSPAR.csv
Normal file
@@ -0,0 +1,27 @@
|
||||
"Bierflasche Longneck 0,33 Liter","0,36"
|
||||
"Bierflasche 0,5 Liter oder 0,33 Liter","0,20"
|
||||
"Bierflasche Bügelflasche 0,5 Liter","0,36"
|
||||
"Bierflasche Bügelflasche 0,33 Liter","0,36"
|
||||
"Bierkiste 20 x 0,5 Liter","7,-"
|
||||
"Bierkiste 20 x 0,33 Liter","7,-"
|
||||
"Bierkiste 24 x 0,33 Liter","7,80"
|
||||
"Bierkiste 12 x 0,33 Liter","5,40"
|
||||
Kiste Gasteiner 6 x 1 Liter,"4,74"
|
||||
Kiste 12 x 1 Liter (AF-Getränke),"6,48"
|
||||
Kiste Vöslauer 9 x 1 Liter (PET-Flasche),"5,61"
|
||||
Kiste Vöslauer 8 x 1 Liter,"6,32"
|
||||
Kiste Vöslauer 4 x 1 Liter,"3,16"
|
||||
Getränkeflasche 1 Liter (AF),"0,29"
|
||||
Römerquelle Splitbox 6er,"3,74"
|
||||
Römerquelle Splitbox 12er,"7,48"
|
||||
"Kiste leer (20 x 0,5 Liter, 6 x 1 Liter, 12 x 1 Liter, 12 x 0,33 Liter, 24 x 0,33 Liter)","3,-"
|
||||
Kiste Bügelflasche leer 6 x 2 Liter,"3,-"
|
||||
Kiste Bügelflasche 6 x 2 Liter,"8,10"
|
||||
"Kiste Bügelflasche leer 20 x 0,5 Liter","3,-"
|
||||
"Kiste Bügelflasche 20 x 0,5 Liter","10,20"
|
||||
Bügelflasche 2 Liter,"0,85"
|
||||
Landliebe Joghurtglas 500 g,"0,17"
|
||||
"Fruchtsaftflaschen/AF-Getränke: 0,2 Liter, 0,25 Liter oder 0,33 Liter","0,14"
|
||||
Bierfass 25 Liter oder 50 Liter,"36,-"
|
||||
Milch-Glasflasche 1 Liter,"0,22"
|
||||
Original Mostflasche,"0,55"
|
||||
|
133
PfandApplication/wiki/main.py
Normal file
133
PfandApplication/wiki/main.py
Normal file
@@ -0,0 +1,133 @@
|
||||
import tkinter as tk
|
||||
from tkinter import ttk
|
||||
import csv
|
||||
import os
|
||||
import re
|
||||
|
||||
def select_file(callback=None):
|
||||
def set_choice(choice):
|
||||
select_window.destroy()
|
||||
if choice == "Wiki":
|
||||
open_wiki()
|
||||
else:
|
||||
filename = os.path.join("wiki", "listeSPAR.csv" if choice == "SPAR" else "listeHOFER.csv")
|
||||
if callback:
|
||||
callback(filename)
|
||||
else:
|
||||
start_app(filename)
|
||||
|
||||
select_window = tk.Tk()
|
||||
select_window.title("Wähle eine Liste")
|
||||
select_window.geometry("300x200")
|
||||
|
||||
label = tk.Label(select_window, text="Bitte eine Liste wählen:", font=("Arial", 12))
|
||||
label.pack(pady=10)
|
||||
|
||||
spar_button = tk.Button(select_window, text="SPAR", command=lambda: set_choice("SPAR"), width=15)
|
||||
spar_button.pack(pady=5)
|
||||
|
||||
hofer_button = tk.Button(select_window, text="HOFER", command=lambda: set_choice("HOFER"), width=15)
|
||||
hofer_button.pack(pady=5)
|
||||
|
||||
wiki_button = tk.Button(select_window, text="Wiki", command=lambda: set_choice("Wiki"), width=15)
|
||||
wiki_button.pack(pady=5)
|
||||
|
||||
select_window.mainloop()
|
||||
|
||||
class CSVViewerApp:
|
||||
def __init__(self, root, filename):
|
||||
self.root = root
|
||||
title = "PFANDLISTE - SPAR" if "SPAR" in filename else "PFANDLISTE - HOFER"
|
||||
self.root.title(title)
|
||||
self.root.geometry("600x400")
|
||||
|
||||
self.label = tk.Label(root, text=title, font=("Arial", 16, "bold"))
|
||||
self.label.pack(pady=10)
|
||||
|
||||
self.frame = tk.Frame(root)
|
||||
self.frame.pack(fill=tk.BOTH, expand=True)
|
||||
|
||||
self.tree = ttk.Treeview(self.frame)
|
||||
self.tree.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
|
||||
|
||||
self.scrollbar = ttk.Scrollbar(self.frame, orient="vertical", command=self.tree.yview)
|
||||
self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
|
||||
|
||||
self.tree.configure(yscroll=self.scrollbar.set)
|
||||
|
||||
self.load_csv(filename)
|
||||
|
||||
def load_csv(self, filename):
|
||||
try:
|
||||
with open(filename, newline='', encoding='utf-8') as file:
|
||||
reader = csv.reader(file)
|
||||
headers = next(reader, None)
|
||||
|
||||
self.tree['columns'] = headers
|
||||
self.tree.heading("#0", text="#") # First column for index
|
||||
self.tree.column("#0", width=50)
|
||||
|
||||
for header in headers:
|
||||
self.tree.heading(header, text=header)
|
||||
self.tree.column(header, anchor="center")
|
||||
|
||||
for i, row in enumerate(reader, start=1):
|
||||
self.tree.insert("", "end", text=i, values=row)
|
||||
except FileNotFoundError:
|
||||
print(f"Error: {filename} not found!")
|
||||
except Exception as e:
|
||||
print(f"Error loading CSV: {e}")
|
||||
|
||||
## Doesnt really work yet
|
||||
## In the Future maybe
|
||||
def format_markdown(text_area, text):
|
||||
text_area.tag_configure("bold", font=("Arial", 10, "bold"))
|
||||
text_area.tag_configure("center", justify="center")
|
||||
|
||||
text_area.delete("1.0", tk.END)
|
||||
|
||||
segments = []
|
||||
last_end = 0
|
||||
|
||||
for match in re.finditer(r'<p align="center">(.*?)</p>|\*\*(.*?)\*\*', text, re.DOTALL):
|
||||
segments.append((text[last_end:match.start()], None))
|
||||
|
||||
if match.group(1): # Centered text
|
||||
segments.append((match.group(1), "center"))
|
||||
elif match.group(2): # Bold text
|
||||
segments.append((match.group(2), "bold"))
|
||||
|
||||
last_end = match.end()
|
||||
|
||||
segments.append((text[last_end:], None))
|
||||
|
||||
for segment, tag in segments:
|
||||
text_area.insert(tk.END, segment, tag if tag else "")
|
||||
|
||||
def open_wiki():
|
||||
wiki_window = tk.Tk()
|
||||
wiki_window.title("Wiki")
|
||||
wiki_window.geometry("500x400")
|
||||
|
||||
text_area = tk.Text(wiki_window, wrap=tk.WORD)
|
||||
text_area.pack(expand=True, fill=tk.BOTH)
|
||||
|
||||
filename = os.path.join("wiki", "wiki.md")
|
||||
|
||||
try:
|
||||
with open(filename, "r", encoding="utf-8") as file:
|
||||
content = file.read()
|
||||
format_markdown(text_area, content)
|
||||
except FileNotFoundError:
|
||||
text_area.insert(tk.END, f"Fehler: '{filename}' nicht gefunden!")
|
||||
|
||||
wiki_window.mainloop()
|
||||
|
||||
def start_app(filename):
|
||||
root = tk.Tk()
|
||||
app = CSVViewerApp(root, filename)
|
||||
root.mainloop()
|
||||
|
||||
if __name__ == "__main__":
|
||||
select_file()
|
||||
|
||||
3
PfandApplication/wiki/readme.md
Normal file
3
PfandApplication/wiki/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
big thank you to spar and hofer for the lists!
|
||||
|
||||
großes danke and spar und hofer für die listen!
|
||||
27
PfandApplication/wiki/wiki.md
Normal file
27
PfandApplication/wiki/wiki.md
Normal file
@@ -0,0 +1,27 @@
|
||||
**Pfand in Österreich**
|
||||
|
||||
Pfand bezeichnet in Österreich ein System zur Rückgabe und Wiederverwertung von Einweg- und Mehrwegverpackungen, insbesondere bei Getränkebehältern. Es dient der Reduktion von Verpackungsmüll und der Förderung nachhaltiger Kreislaufwirtschaft.
|
||||
|
||||
**Mehrwegpfand**
|
||||
|
||||
Mehrwegflaschen aus Glas oder Kunststoff werden in Österreich seit Jahrzehnten genutzt. Diese Flaschen können mehrfach wiederbefüllt werden und sind durch ein Pfandsystem in den Handel integriert. Verbraucher zahlen beim Kauf eines Produkts mit Mehrwegverpackung ein Pfand, das sie bei der Rückgabe zurückerhalten.
|
||||
|
||||
**Einwegpfand**
|
||||
|
||||
Seit dem 1. Januar 2025 gibt es in Österreich ein Pfandsystem für Einweggetränkeflaschen und -dosen. PET-Flaschen und Aluminiumdosen mit einem Volumen zwischen 0,1 und 3 Litern sind pfandpflichtig. Das Ziel dieses Systems ist es, die Recyclingquote zu erhöhen und die Umweltbelastung durch achtlos weggeworfene Verpackungen (Littering) zu verringern.
|
||||
|
||||
**Pfandhöhe und Rückgabe**
|
||||
|
||||
Die Pfandhöhe beträgt je nach Verpackungsgröße und Material zwischen 25 und 30 Cent. Die Rückgabe erfolgt in Supermärkten und anderen Verkaufsstellen, die pfandpflichtige Getränke anbieten. Dort stehen Rücknahmeautomaten zur Verfügung, die das Pfand auszahlen oder als Einkaufsgutschrift verrechnen.
|
||||
|
||||
**Umweltauswirkungen und Vorteile**
|
||||
|
||||
Das Pfandsystem trägt wesentlich zur Reduktion von Plastik- und Metallabfällen bei und steigert die Recyclingquote. Es sorgt für eine effizientere Nutzung von Ressourcen und verringert die Umweltverschmutzung. Gleichzeitig wird durch das System ein wirtschaftlicher Anreiz geschaffen, leere Verpackungen nicht achtlos wegzuwerfen.
|
||||
|
||||
**Gesetzliche Grundlagen**
|
||||
|
||||
Die Einführung des Einwegpfands basiert auf dem Abfallwirtschaftsgesetz (AWG) und entsprechenden Verordnungen der österreichischen Bundesregierung. Es orientiert sich an erfolgreichen Pfandsystemen anderer europäischer Länder wie Deutschland oder Schweden.
|
||||
|
||||
Mit dem neuen Pfandsystem macht Österreich einen wichtigen Schritt in Richtung nachhaltiger Ressourcennutzung und Kreislaufwirtschaft.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user