Move all to subDir sustApp

This commit is contained in:
2025-01-19 17:10:56 +01:00
parent 408e282fdc
commit b63f4ef370
23 changed files with 12875 additions and 2656 deletions
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

+4620 -2641
View File
File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 250 KiB

+4
View File
@@ -0,0 +1,4 @@
# from .models import Base
__version__ = "0.0.1"
__author__ = "zisco"
@@ -23,7 +23,7 @@ def assign_by_reference(payments: Payments_CSV):
for reference in referenceList:
referenceItem = reference.split('-')
addPayment(payment, referenceItem[2], referenceItem[0], amount/number_of_references*int(referenceItem[3]))
addPayment(payment, referenceItem[2], year=referenceItem[0], amount=amount/number_of_references*int(referenceItem[3]))
try:
db.commit()
@@ -32,10 +32,10 @@ def assign_by_reference(payments: Payments_CSV):
db.rollback()
def assign_by_name(payments: Payments_CSV):
year = 2024
year = 2025 # pc_reference is empty
removables = ('Dipl.', 'Ing.', 'Mag.')
for payment in payments:
logging.debug(f'payment.pc_reference {payment.pc_intended}')
logging.debug(f'payment.pc_intended {payment.pc_intended}')
name = payment.pc_client.split(' ')
for removeable in removables:
while removeable in name: name.remove(removeable)
@@ -51,7 +51,7 @@ if __name__ == "__main__":
try:
home_directory = os.path.expanduser('~')
source_csv = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "UmsatzListe_AT493443700000113407 (7)_org.csv")
source_csv = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "UmsatzListe_AT493443700000113407_20241212_095142_mod.csv")
target_csv = source_csv.replace(".csv", "_out.csv")
data = Load_Data(source_csv)
View File
@@ -51,11 +51,15 @@ CREATE UNIQUE INDEX payments_ukey_member_year ON sust.payments USING btree (memb
select count(*) from payments_csv where pc_processed = true
select * from payments_csv pc where id = 168
select * from payments_csv pc where PC.pc_client like '%Anna%';
select * from members mem where mem.member_firstname like '%Anna%';
select * from payments p where p.member_id = 58;
ALTER TABLE payments_csv ADD PRIMARY KEY (id);
select * from payments p where p.member_id in (132)
select * from payments p where p.member_id in (205,206);
select * from payments p where date_part('year', p.payment_year) = 2025;
select pc.pc_reference from payments_csv pc where pc_processed =false order by pc_reference asc
select m.member_surname, m.member_firstname, m.member_firstname_spouse from members m
@@ -64,12 +68,12 @@ select mp.member_surname, mp.member_firstname, mp.member_firstname_spouse from m
select * from members_paid mp where id = 8
-- already paid?
select * from members_active m
-- already paid? TODO: Member "active since?" attribute missing in "member"
select m.* from members_active m
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
select id from members_paid mp)
select id from members_paid mp where mp.payment_year = '2024-01-01')
order by delivery_date asc
insert into deliveries (delivery_date, member_id, delivery_year)
@@ -21,7 +21,7 @@ if __name__ == "__main__":
try:
home_directory = os.path.expanduser('~')
source_csv = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "UmsatzListe_AT493443700000113407_v7.csv")
source_csv = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "UmsatzListe_AT493443700000113407_20241212_095142_mod_out.csv")
data = Load_Data(source_csv)
tz = timezone('UTC') # Replace with your desired timezone
View File
+7959
View File
File diff suppressed because it is too large Load Diff
+2 -4
View File
@@ -17,8 +17,8 @@ def payment_slip_delivered(member: models.Members, year: int):
.count()
def payment_made(member: models.Members, year: int):
return db.query(models.Payments.payment_date)\
.filter(models.Payments.member_id == member.id, extract('year', models.Deliveries.delivery_date) == year)\
return db.query(models.Payments.payment_year)\
.filter(models.Payments.member_id == member.id, extract('year', models.Payments.payment_year) == year)\
.count()
def update_missing_locs():
@@ -53,8 +53,6 @@ def checkEmail(email):
return False
logger = logging.getLogger(__name__)
logger.info("An info")
logger.warning("A warning")
#geolocator = Nominatim(user_agent="sust", timeout=10)
geolocator = Bing(api_key='ApbTfEJ024nQCu6DC7TPIlqAcRMfZT8lPjAyMnVRcmo9rqxde5x-IS4fW-nGu0FI')
+2
View File
@@ -3,6 +3,7 @@ from sqlalchemy.types import TypeDecorator, VARCHAR, Integer
from sqlalchemy_utils import EmailType
from sqlalchemy.orm import relationship
from database import Base
import datetime
class NullCatchingString(TypeDecorator):
@@ -41,6 +42,7 @@ class Members(Base):
created_date = Column(DateTime, default=datetime.datetime.utcnow)
updated_date = Column(DateTime, default=datetime.datetime.utcnow)
member_died = Column(DateTime)
member_membership_start = Column(DateTime)
member_printed = Column(Boolean, default=False)
#member_coordinates = Column(Geometry(geometry_type='POINT'))
member_geo_latitude = Column(Float, nullable=True)
View File
+273
View File
@@ -0,0 +1,273 @@
table "deliveries" {
schema = schema.sust
column "id" {
null = false
type = serial
}
column "delivery_date" {
null = true
type = timestamp
}
column "member_id" {
null = true
type = integer
}
column "delivered_by_id" {
null = true
type = integer
}
column "delivery_year" {
null = true
type = date
}
primary_key {
columns = [column.id]
}
foreign_key "deliveries_member_id_delivered_by_fkey" {
columns = [column.delivered_by_id]
ref_columns = [table.members.column.id]
on_update = NO_ACTION
on_delete = NO_ACTION
}
foreign_key "deliveries_member_id_fkey" {
columns = [column.member_id]
ref_columns = [table.members.column.id]
on_update = NO_ACTION
on_delete = NO_ACTION
}
index "ix_deliveries_delivery_date" {
columns = [column.delivery_date]
}
index "ix_deliveries_id" {
columns = [column.id]
}
unique "deliveries_ukey_member_year" {
columns = [column.member_id, column.delivery_year]
}
}
table "members" {
schema = schema.sust
column "id" {
null = false
type = serial
}
column "member_count" {
null = true
type = integer
default = 1
}
column "member_firstname" {
null = true
type = character_varying
}
column "member_firstname_spouse" {
null = true
type = character_varying
}
column "member_surname" {
null = true
type = character_varying
}
column "member_suffix" {
null = true
type = character_varying
}
column "member_street" {
null = true
type = character_varying
}
column "member_streetnumber" {
null = true
type = character_varying
}
column "member_email" {
null = true
type = character_varying(255)
}
column "member_zip" {
null = true
type = integer
}
column "member_city" {
null = true
type = character_varying
}
column "member_active" {
null = true
type = boolean
default = true
}
column "member_connected" {
null = true
type = integer
}
column "created_date" {
null = true
type = timestamp
default = sql("CURRENT_TIMESTAMP")
}
column "updated_date" {
null = true
type = timestamp
}
column "member_gender" {
null = true
type = enum.gender
}
column "member_died" {
null = true
type = timestamp
}
column "member_membership_start" {
null = true
type = timestamp
}
column "member_printed" {
null = true
type = boolean
}
column "member_coordinates" {
null = true
type = point
comment = "UNUSED"
}
column "member_geo_latitude" {
null = true
type = numeric
}
column "member_geo_longitude" {
null = true
type = numeric
}
primary_key {
columns = [column.id]
}
foreign_key "members_member_connected_fkey" {
columns = [column.member_connected]
ref_columns = [table.members.column.id]
on_update = NO_ACTION
on_delete = NO_ACTION
}
index "ix_members_id" {
columns = [column.id]
}
index "ix_members_member_city" {
columns = [column.member_city]
}
index "ix_members_member_email" {
columns = [column.member_email]
}
index "ix_members_member_firstname" {
columns = [column.member_firstname]
}
index "ix_members_member_street" {
columns = [column.member_street]
}
index "ix_members_member_surname" {
columns = [column.member_surname]
}
index "ix_members_member_zip" {
columns = [column.member_zip]
}
}
table "payments" {
schema = schema.sust
column "id" {
null = false
type = serial
}
column "payment_date" {
null = true
type = date
}
column "member_id" {
null = true
type = integer
}
column "payment_amount" {
null = true
type = numeric
}
column "payment_year" {
null = true
type = date
comment = "Year, for which the payment is intended for."
}
primary_key {
columns = [column.id]
}
foreign_key "payments_member_id_fkey" {
columns = [column.member_id]
ref_columns = [table.members.column.id]
on_update = NO_ACTION
on_delete = NO_ACTION
}
index "ix_payments_id" {
columns = [column.id]
}
index "ix_payments_payment_date" {
columns = [column.payment_date]
}
index "payments_ukey_member_year" {
unique = true
columns = [column.member_id, column.payment_year]
}
}
table "payments_csv" {
schema = schema.sust
column "id" {
null = false
type = serial
}
column "pc_valuta_date" {
null = true
type = date
}
column "pc_client" {
null = true
type = character_varying(50)
}
column "pc_reference" {
null = true
type = character_varying(50)
}
column "pc_intended" {
null = true
type = character_varying(100)
}
column "pc_iban" {
null = true
type = character_varying(50)
}
column "pc_entry_date" {
null = true
type = date
}
column "pc_amount" {
null = true
type = numeric
}
column "pc_currency" {
null = true
type = character_varying(3)
}
column "pc_timestamp" {
null = true
type = timestamp
}
column "pc_processed" {
null = true
type = boolean
default = false
}
primary_key {
columns = [column.id]
}
}
enum "gender" {
schema = schema.sust
values = ["male", "female", "divers"]
}
schema "sust" {
comment = "standard public schema"
}