Skip to content

Instantly share code, notes, and snippets.

@izikeros
Last active March 15, 2023 15:56
Show Gist options
  • Save izikeros/d05debc9c99d9bed32d2c2519c280f08 to your computer and use it in GitHub Desktop.
Save izikeros/d05debc9c99d9bed32d2c2519c280f08 to your computer and use it in GitHub Desktop.
skrypt obliczający odsetki ustawowe od należności podanych w pliku csv
"""
Skrypt obliczający odsetki ustawowe od należności podanych w pliku csv
Przykladowa zawartość pliku:
required_payment_date,payment_amount
2023-02-10,2700
2023-03-10,1200
"""
import csv
import datetime
# Load CSV file
with open('payments.csv') as csv_file:
csv_reader = csv.DictReader(csv_file)
payments = [row for row in csv_reader]
# Input date for calculating interest (today)
input_date = datetime.datetime.now().date()
# Calculate interest for each payment
total_amount = 0
total_interest = 0
interest_rate = 0.12 # Example interest rate of 12% per annum
for payment in payments:
required_payment_date = datetime.datetime.strptime(payment['required_payment_date'], '%Y-%m-%d').date()
payment_amount = float(payment['payment_amount'])
if input_date > required_payment_date:
delay_days = (input_date - required_payment_date).days
interest = (payment_amount * interest_rate * delay_days) / 365
print(f"Płatność {payment_amount} PLN wymagana do dnia: {required_payment_date} jest opóźniona {delay_days} dni - {interest:.2f} PLN odsetek urzędowych.")
total_amount = total_amount + payment_amount
total_interest = total_interest + interest
print("Należność: ", total_amount, "Odsetki: ",round(total_interest,2))
print("W sumie: ", round(total_amount + total_interest, 2))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment