Enhancements
This commit is contained in:
@@ -1,18 +1,25 @@
|
||||
# Importing libraries
|
||||
from numpy import genfromtxt
|
||||
#from numpy import genfromtxt
|
||||
import pandas as pd
|
||||
from time import time
|
||||
from datetime import datetime
|
||||
from datetime import date, datetime
|
||||
from models import models
|
||||
from models.database import engine, SessionLocal
|
||||
|
||||
import os, glob
|
||||
from pytz import timezone
|
||||
|
||||
def Load_Data(file_name):
|
||||
""" def Load_Data(file_name):
|
||||
#data = genfromtxt(file_name, delimiter=';', skip_header=1, converters={0: lambda s: str(s)})
|
||||
#str2date = lambda x: datetime.strptime(x, '%d-%m-%y')
|
||||
data = genfromtxt(file_name, delimiter=';', dtype=None, skip_header=1, encoding='utf-8') #
|
||||
return data.tolist()
|
||||
"""
|
||||
|
||||
#use pandas instead of genfromtxt for better performance and handling of csv files
|
||||
def Load_Data(file_name):
|
||||
df = pd.read_csv(file_name, delimiter=',', encoding='utf-8')
|
||||
return df.values.tolist()
|
||||
|
||||
if __name__ == "__main__":
|
||||
t = time()
|
||||
@@ -25,24 +32,31 @@ if __name__ == "__main__":
|
||||
source_path = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "import_csv", "*_out.csv")
|
||||
for source_csv in glob.glob(source_path):
|
||||
#source_csv = os.path.join(home_directory, "OneDrive", "Dokumente", "SUST", "UmsatzListe_AT493443700000113407_20250529_091945_mod_out.csv")
|
||||
data = Load_Data(source_csv)
|
||||
|
||||
datas = Load_Data(source_csv)
|
||||
tz = timezone('UTC') # Replace with your desired timezone
|
||||
dt = datetime.strptime(data[8], '%d.%m.%Y %H:%M:%S:%f') # type: ignore
|
||||
ts_timestamp = tz.localize(dt)
|
||||
for data in datas:
|
||||
dt = datetime.strptime(data[8], '%d.%m.%Y %H:%M:%S:%f') # type: ignore
|
||||
ts_timestamp = tz.localize(dt)
|
||||
|
||||
record = models.Payments_CSV(**{
|
||||
'pc_valuta_date' : datetime.strptime(data[0], '%d.%m.%Y').date(),
|
||||
'pc_client' : data[1],
|
||||
'pc_reference' : data[2],
|
||||
'pc_intended' : data[3],
|
||||
'pc_iban' : data[4],
|
||||
'pc_entry_date' : datetime.strptime(data[5], '%d.%m.%Y').date(),
|
||||
'pc_amount' : float(data[6]),
|
||||
'pc_currency' : data[7],
|
||||
'pc_timestamp' : ts_timestamp
|
||||
})
|
||||
db.add(record) #Add all the records
|
||||
# Parse year - data[9] is now the year (from convert_payment_export_csv.py)
|
||||
# Convert year string to a valid date (January 1st of that year)
|
||||
year_value = data[9] # This is '2025' from the CSV
|
||||
pc_year = date(int(year_value), 1, 1) # Convert to date: 2025-01-01
|
||||
|
||||
#TODO: Check if amout is valid!
|
||||
record = models.Payments_CSV(**{
|
||||
'pc_valuta_date' : datetime.strptime(data[0], '%d.%m.%Y').date(),
|
||||
'pc_client' : data[1],
|
||||
'pc_reference' : data[2],
|
||||
'pc_intended' : data[3],
|
||||
'pc_iban' : data[4],
|
||||
'pc_entry_date' : datetime.strptime(data[5], '%d.%m.%Y').date(),
|
||||
'pc_amount' : float(data[6]),
|
||||
'pc_currency' : data[7],
|
||||
'pc_timestamp' : ts_timestamp,
|
||||
'pc_year' : pc_year
|
||||
})
|
||||
db.add(record) #Add all the records
|
||||
|
||||
try:
|
||||
db.commit() #Attempt to commit all the records
|
||||
|
||||
Reference in New Issue
Block a user