#6: General enhancements
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
{'maintainer': 'Markus Zimmerberger',
|
||||||
|
'year': 2025,
|
||||||
|
'map_params': {'metrics': ['euclidean', 'l1', 'manhattan'],
|
||||||
|
'min_dist': [0.01, 0.1, 0.5],
|
||||||
|
'spread': 1.0},
|
||||||
|
'visualize_params': {'median_threshold': 6},
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import yaml
|
||||||
|
|
||||||
|
def load_config(config_path="./sustApp/config.yaml"):
|
||||||
|
with open(config_path, encoding='utf8') as f:
|
||||||
|
return yaml.load(f, Loader=yaml.FullLoader)
|
||||||
@@ -8,6 +8,11 @@ import datetime
|
|||||||
import locale
|
import locale
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
from config_loader import load_config
|
||||||
|
|
||||||
|
cfg = load_config()
|
||||||
|
year = cfg['year']
|
||||||
|
|
||||||
|
|
||||||
def print_multiple_lines(lines: int, text):
|
def print_multiple_lines(lines: int, text):
|
||||||
cnt = 1
|
cnt = 1
|
||||||
@@ -32,7 +37,7 @@ def create_payment_slip(member: models.Members = None):
|
|||||||
qrcode = helpers.make_epc_qr(name='Sportunion St. Thomas',
|
qrcode = helpers.make_epc_qr(name='Sportunion St. Thomas',
|
||||||
iban='AT493443700000113407',
|
iban='AT493443700000113407',
|
||||||
amount=15*member.member_count,
|
amount=15*member.member_count,
|
||||||
reference=f'2025-4732-{member.id:03}-{member.member_count}')
|
reference=f'{year}-4732-{member.id:03}-{member.member_count}')
|
||||||
qrcode.save("epc_qr.png", scale=2)
|
qrcode.save("epc_qr.png", scale=2)
|
||||||
|
|
||||||
subfolder = "mail" if member.member_email else ""
|
subfolder = "mail" if member.member_email else ""
|
||||||
@@ -88,7 +93,7 @@ def create_payment_slip(member: models.Members = None):
|
|||||||
print_multiple_lines(2, text)
|
print_multiple_lines(2, text)
|
||||||
text.textLines("* Skigymnastik\n* Radfahren\n* Stockschiessen\n* Pilates\n* Tagesskifahrt\n* uvam")
|
text.textLines("* Skigymnastik\n* Radfahren\n* Stockschiessen\n* Pilates\n* Tagesskifahrt\n* uvam")
|
||||||
print_multiple_lines(5, text)
|
print_multiple_lines(5, text)
|
||||||
text.textLines(f"Wir möchten das Einheben des Mitgliedsbeitrags zuküntig einfacher machen, daher bitten wir {salutation3},\nuns eine Mail mit dem Betreff \"Zahlschein oder Abbucher\" an unsere Mail-Adresse sv.stthomas@gmx.at zu senden!")
|
text.textLines(f"Wir möchten das Zustellen des Mitgliedsbeitrags-Zahlscheines zuküntig auf Mail umstellen, daher bitten wir {salutation3},\nuns eine Mail mit dem Betreff \"Zahlschein\" an unsere Mail-Adresse sv.stthomas@gmx.at zu senden!")
|
||||||
print_multiple_lines(3, text)
|
print_multiple_lines(3, text)
|
||||||
text.textLines(f"{salutation2.capitalize()} Sportverein-Team!")
|
text.textLines(f"{salutation2.capitalize()} Sportverein-Team!")
|
||||||
c.drawText(text)
|
c.drawText(text)
|
||||||
@@ -112,17 +117,21 @@ def create_payment_slip(member: models.Members = None):
|
|||||||
text = c.beginText(188, 103)
|
text = c.beginText(188, 103)
|
||||||
c.setFont("Helvetica", 8)
|
c.setFont("Helvetica", 8)
|
||||||
if not member is None:
|
if not member is None:
|
||||||
text.textLine(f"Bei Online-Zahlung bitte die Zahlungsreferenz 2025-4732-{member.id:03}-{member.member_count} eintragen")
|
text.textLine(f"Bei Online-Zahlung bitte die Zahlungsreferenz {year}-4732-{member.id:03}-{member.member_count} eintragen")
|
||||||
print_multiple_lines(1, text)
|
print_multiple_lines(1, text)
|
||||||
if member.member_count > 1:
|
if member.member_count > 1:
|
||||||
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03} {member.member_firstname_spouse} {member.member_suffix} {member.member_firstname} {member.member_surname}")
|
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03}, {member.member_firstname_spouse} {member.member_suffix} {member.member_firstname} {member.member_surname}")
|
||||||
else:
|
else:
|
||||||
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03} {member.member_firstname} {member.member_surname}")
|
text.textLine(f"Mitgliedsnummer: 4732-{member.id:03}, {member.member_firstname} {member.member_surname}")
|
||||||
c.drawText(text)
|
c.drawText(text)
|
||||||
|
|
||||||
|
c.setFont("Helvetica", 12)
|
||||||
|
c.drawString(77, 50, f"{year}")
|
||||||
|
c.drawString(300, 120, f"{year}")
|
||||||
|
|
||||||
c.setFont("Helvetica", 10)
|
c.setFont("Helvetica", 10)
|
||||||
c.drawString(188, h - 696, f'2024-4732-{member.id:03}-{member.member_count}') # Zahlungsreferenz Zahlungsanweisung
|
c.drawString(188, h - 696, f'{year}-4732-{member.id:03}-{member.member_count}') # Zahlungsreferenz Zahlungsanweisung
|
||||||
c.drawString(11, 120, f'2024-4732-{member.id:03}-{member.member_count}') # Zahlungsreferenz Auftragsbestätigung
|
c.drawString(11, 120, f'{year}-4732-{member.id:03}-{member.member_count}') # Zahlungsreferenz Auftragsbestätigung
|
||||||
c.drawString(130, h - 694, (locale.format_string('%.2f', 15 * member.member_count))) # Betrag Auftragsbestätigung
|
c.drawString(130, h - 694, (locale.format_string('%.2f', 15 * member.member_count))) # Betrag Auftragsbestätigung
|
||||||
c.drawString(w - 30, 170, (locale.format_string('%.2f', 15 * member.member_count))) # Betrag Zahlungsanweisung
|
c.drawString(w - 30, 170, (locale.format_string('%.2f', 15 * member.member_count))) # Betrag Zahlungsanweisung
|
||||||
c.save()
|
c.save()
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
select * from members m where m.member_firstname like 'Josef'
|
||||||
update members m set member_geo_latitude = null, member_geo_longitude = null
|
update members m set member_geo_latitude = null, member_geo_longitude = null
|
||||||
where id in (110,107,45,21,19,108,36,24,22,18,35,162,90,3,142,122,121,115,9,128,79,78,50,186,183,180,176,157,148,98);
|
where id in (110,107,45,21,19,108,36,24,22,18,35,162,90,3,142,122,121,115,9,128,79,78,50,186,183,180,176,157,148,98);
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ update members set member_city = 'Sankt Thomas' where member_city = 'St. Thomas'
|
|||||||
update members set member_city = trim(member_city)
|
update members set member_city = trim(member_city)
|
||||||
|
|
||||||
insert into deliveries (delivery_date, member_id, delivered_by_id, delivery_year)
|
insert into deliveries (delivery_date, member_id, delivered_by_id, delivery_year)
|
||||||
values (now(), 78, 186, '2024-01-01'),
|
values (now(), 204, 186, '2025-01-01') --,
|
||||||
(now(), 79, 186, '2024-01-01'),
|
(now(), 79, 186, '2024-01-01'),
|
||||||
(now(), 3, 186, '2024-01-01'),
|
(now(), 3, 186, '2024-01-01'),
|
||||||
(now(), 4, 186, '2024-01-01'),
|
(now(), 4, 186, '2024-01-01'),
|
||||||
@@ -69,13 +70,24 @@ select mp.member_surname, mp.member_firstname, mp.member_firstname_spouse from m
|
|||||||
select * from members_paid mp where id = 8
|
select * from members_paid mp where id = 8
|
||||||
|
|
||||||
-- already paid? TODO: Member "active since?" attribute missing in "member"
|
-- already paid? TODO: Member "active since?" attribute missing in "member"
|
||||||
select m.* from members_active m
|
select m.*
|
||||||
|
from members_active m
|
||||||
join deliveries d on d.member_id = m.id
|
join deliveries d on d.member_id = m.id
|
||||||
where m.id in (select id from members_delivered md
|
where m.id in (select id from members_delivered md
|
||||||
except
|
except
|
||||||
select id from members_paid mp where mp.payment_year = '2024-01-01')
|
select id from members_paid mp where mp.payment_year = '2024-01-01')
|
||||||
order by delivery_date asc
|
order by delivery_date asc
|
||||||
|
|
||||||
|
-- already delivered
|
||||||
|
select m.*, d.*
|
||||||
|
from members_active m
|
||||||
|
right join deliveries d on d.member_id = m.id
|
||||||
|
where d.delivery_year = '2025-01-01'
|
||||||
|
order by delivery_date asc
|
||||||
|
|
||||||
|
select * from deliveries d
|
||||||
|
where d.delivery_year = '2025-01-01'
|
||||||
|
|
||||||
insert into deliveries (delivery_date, member_id, delivery_year)
|
insert into deliveries (delivery_date, member_id, delivery_year)
|
||||||
select now(), ss.id, '2024-01-01' from
|
select now(), ss.id, '2024-01-01' from
|
||||||
(select id from members_active m
|
(select id from members_active m
|
||||||
|
|||||||
+10
-4
@@ -9,7 +9,7 @@ from sqlalchemy import *
|
|||||||
import logging
|
import logging
|
||||||
import webbrowser
|
import webbrowser
|
||||||
import re
|
import re
|
||||||
|
from config_loader import load_config
|
||||||
|
|
||||||
def payment_slip_delivered(member: models.Members, year: int):
|
def payment_slip_delivered(member: models.Members, year: int):
|
||||||
return db.query(models.Deliveries.delivery_date)\
|
return db.query(models.Deliveries.delivery_date)\
|
||||||
@@ -52,6 +52,9 @@ def checkEmail(email):
|
|||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
cfg = load_config()
|
||||||
|
year = cfg['year']
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
#geolocator = Nominatim(user_agent="sust", timeout=10)
|
#geolocator = Nominatim(user_agent="sust", timeout=10)
|
||||||
@@ -92,8 +95,8 @@ marker_cluster = MarkerCluster().add_to(map)
|
|||||||
#folium.Marker([lat, lon], popup=str(name)+': '+color+'-'+str(clname), icon=folium.Icon(color='black',icon_color='#FFFF00')).add_to(feature_group)
|
#folium.Marker([lat, lon], popup=str(name)+': '+color+'-'+str(clname), icon=folium.Icon(color='black',icon_color='#FFFF00')).add_to(feature_group)
|
||||||
for member in members:
|
for member in members:
|
||||||
if member.member_geo_latitude != None and member.member_geo_latitude != None:
|
if member.member_geo_latitude != None and member.member_geo_latitude != None:
|
||||||
delivered = payment_slip_delivered(member, 2024)
|
delivered = payment_slip_delivered(member, year)
|
||||||
paid = payment_made(member, 2024)
|
paid = payment_made(member, year)
|
||||||
|
|
||||||
iconColor = "blue"
|
iconColor = "blue"
|
||||||
hasMail = checkEmail(member.member_email)
|
hasMail = checkEmail(member.member_email)
|
||||||
@@ -111,7 +114,10 @@ for member in members:
|
|||||||
location = (member.member_geo_latitude, member.member_geo_longitude)
|
location = (member.member_geo_latitude, member.member_geo_longitude)
|
||||||
folium.Marker(location=location,
|
folium.Marker(location=location,
|
||||||
popup=f'{member.member_firstname} {member.member_surname}',
|
popup=f'{member.member_firstname} {member.member_surname}',
|
||||||
tooltip=f'\nZugestellt & bezahlt' if (delivered and paid) else 'Nicht bezahlt' if not paid else 'Nicht zugestellt',
|
tooltip=f'\nZugestellt & bezahlt' if (delivered and paid) else
|
||||||
|
'Nicht zugestellt' if not delivered else
|
||||||
|
'Zugestellt, aber nicht bezahlt' if delivered and not paid else
|
||||||
|
'Weder zugestellt, noch bezahlt',
|
||||||
icon=folium.Icon(color=iconColor))\
|
icon=folium.Icon(color=iconColor))\
|
||||||
.add_to(marker_cluster)
|
.add_to(marker_cluster)
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ models.Base.metadata.create_all(bind=engine)
|
|||||||
#members = db.query(models.Members).filter(models.Members.member_email == None).all()
|
#members = db.query(models.Members).filter(models.Members.member_email == None).all()
|
||||||
#members = db.query(models.Members).filter(models.Members.member_active == True).all()
|
#members = db.query(models.Members).filter(models.Members.member_active == True).all()
|
||||||
#members = db.query(models.Members).filter(models.Members.id.in_([2,3,9,199]), models.Members.member_active == True, models.Members.member_printed == False).all()
|
#members = db.query(models.Members).filter(models.Members.id.in_([2,3,9,199]), models.Members.member_active == True, models.Members.member_printed == False).all()
|
||||||
members = db.query(models.Members).filter(models.Members.id.in_([200])).all()
|
members = db.query(models.Members).filter(models.Members.id.in_([50])).all()
|
||||||
|
|
||||||
for member in members:
|
for member in members:
|
||||||
create_payment_slip(member=member)
|
create_payment_slip(member=member)
|
||||||
|
|||||||
Reference in New Issue
Block a user