|
|
|
|
@@ -1,3 +1,4 @@
|
|
|
|
|
import _csv
|
|
|
|
|
import csv
|
|
|
|
|
import os
|
|
|
|
|
import sys
|
|
|
|
|
@@ -20,7 +21,7 @@ class Application:
|
|
|
|
|
y_offset = 200
|
|
|
|
|
width = 1050
|
|
|
|
|
height = 700
|
|
|
|
|
VERSION = '0.2.1b'
|
|
|
|
|
VERSION = '0.2.3b'
|
|
|
|
|
title = f"Brovski Adress-Etiketten Verwaltung {VERSION}"
|
|
|
|
|
|
|
|
|
|
self.root = tk.Tk(className="BrovskiAdressEtiketten")
|
|
|
|
|
@@ -51,6 +52,7 @@ class Application:
|
|
|
|
|
self.statusbar = tk.StringVar()
|
|
|
|
|
self.length_address_list = None
|
|
|
|
|
self.length_address_list_active = None
|
|
|
|
|
self.count_coffee = None
|
|
|
|
|
|
|
|
|
|
# leave application if settings are bad
|
|
|
|
|
if not self.config_good:
|
|
|
|
|
@@ -142,7 +144,7 @@ class Application:
|
|
|
|
|
"name": "Name",
|
|
|
|
|
"strasse": "Strasse",
|
|
|
|
|
"plzort": "Plz/Ort",
|
|
|
|
|
"anzahl": "Anzahl"
|
|
|
|
|
"anzahl": "1"
|
|
|
|
|
}
|
|
|
|
|
self.model.create_new(values)
|
|
|
|
|
self.populate_table()
|
|
|
|
|
@@ -254,24 +256,29 @@ class Application:
|
|
|
|
|
if address["aktiv"] != "x":
|
|
|
|
|
continue
|
|
|
|
|
for index in range(int(address["anzahl"])):
|
|
|
|
|
line = []
|
|
|
|
|
if address["firma"] != "":
|
|
|
|
|
line.append(address["firma"])
|
|
|
|
|
line.append(address["name"])
|
|
|
|
|
line.append(address["strasse"])
|
|
|
|
|
line.append(address["plzort"])
|
|
|
|
|
writer.writerow(line)
|
|
|
|
|
# todo: add "absender" to config parameters
|
|
|
|
|
line = []
|
|
|
|
|
for idx in range(4):
|
|
|
|
|
line.append(self.config.get("absender", f"{idx}"))
|
|
|
|
|
writer.writerow(line)
|
|
|
|
|
self.write_sender_to_csv(address, writer)
|
|
|
|
|
self.write_receiver_to_csv(address, writer)
|
|
|
|
|
except FileNotFoundError:
|
|
|
|
|
show_error(message_title="Unexpected error",
|
|
|
|
|
message=f"Could not write file {self.csv_file}",
|
|
|
|
|
parent=self.root
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def write_receiver_to_csv(self, address: dict, csv_writer: _csv.writer):
|
|
|
|
|
receiver_line = []
|
|
|
|
|
if address["firma"] != "":
|
|
|
|
|
receiver_line.append(address["firma"])
|
|
|
|
|
receiver_line.append(address["name"])
|
|
|
|
|
receiver_line.append(address["strasse"])
|
|
|
|
|
receiver_line.append(address["plzort"])
|
|
|
|
|
csv_writer.writerow(receiver_line)
|
|
|
|
|
|
|
|
|
|
def write_sender_to_csv(self, address: dict, csv_writer: _csv.writer):
|
|
|
|
|
sender_line = []
|
|
|
|
|
for idx in range(4):
|
|
|
|
|
sender_line.append(self.config.get("absender", f"{idx}"))
|
|
|
|
|
csv_writer.writerow(sender_line)
|
|
|
|
|
|
|
|
|
|
def populate_table(self, reload=True):
|
|
|
|
|
if reload:
|
|
|
|
|
self.address_list = self.model.get_all()
|
|
|
|
|
@@ -316,15 +323,21 @@ class Application:
|
|
|
|
|
|
|
|
|
|
def update_status_bar(self):
|
|
|
|
|
self._count_address_records()
|
|
|
|
|
self.statusbar.set(f"Adressen: {self.length_address_list} | Aktive Adressen: {self.length_address_list_active}")
|
|
|
|
|
self.statusbar.set(
|
|
|
|
|
f"Adressen: {self.length_address_list} | "
|
|
|
|
|
f"Aktive Adressen: {self.length_address_list_active} | "
|
|
|
|
|
f"Total Kaffee: {self.count_coffee}")
|
|
|
|
|
|
|
|
|
|
def _count_address_records(self):
|
|
|
|
|
self.length_address_list = len(self.address_list)
|
|
|
|
|
count = 0
|
|
|
|
|
count_coffee = 0
|
|
|
|
|
for address in self.address_list:
|
|
|
|
|
if address["aktiv"] == "x":
|
|
|
|
|
count += 1
|
|
|
|
|
count_coffee += count_coffee + int(address["anzahl"])
|
|
|
|
|
self.length_address_list_active = count
|
|
|
|
|
self.count_coffee = count_coffee
|
|
|
|
|
|
|
|
|
|
def first_sort_after_start(self):
|
|
|
|
|
self.address_list.sort(key=lambda x: (x["firma"], x["name"]))
|
|
|
|
|
|