From 2186d5447523de02a891317f9a300e8be00cd83e Mon Sep 17 00:00:00 2001 From: Snapshot-HristoIvanov Date: Fri, 21 Feb 2025 10:51:16 +0200 Subject: [PATCH] Init --- main.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..f5d567f --- /dev/null +++ b/main.py @@ -0,0 +1,67 @@ +class ProfitTaxCalculator: + def __init__(self, income_tax_rate=0.1): + self.transactions = [] + self.income_tax_rate = income_tax_rate + + def add_transaction(self, amount, is_income=True, vat_rate=0.0, includes_vat=True): + """ + Add a transaction. + :param amount: The amount billed (positive number). + :param is_income: True if it is revenue, False if it is an expense. + :param vat_rate: VAT rate applied (e.g., 0.2 for 20% VAT). + :param includes_vat: True if the amount provided includes VAT, False if it's net. + """ + if vat_rate > 0: + if includes_vat: + vat_amount = amount * vat_rate / (1 + vat_rate) + net_amount = amount / (1 + vat_rate) + else: + vat_amount = amount * vat_rate + net_amount = amount + else: + vat_amount = 0 + net_amount = amount + + self.transactions.append((net_amount, vat_amount, is_income)) + + def calculate_results(self): + total_income = sum(t[0] for t in self.transactions if t[2]) + total_expenses = sum(t[0] for t in self.transactions if not t[2]) + total_vat_collected = sum(t[1] for t in self.transactions if t[2]) + total_vat_paid = sum(t[1] for t in self.transactions if not t[2]) + net_profit = total_income - total_expenses + income_tax_due = net_profit * self.income_tax_rate if net_profit > 0 else 0 + final_profit = net_profit - income_tax_due + + return { + "Total Revenue": total_income, + "Total Expenses": total_expenses, + "VAT Collected": total_vat_collected, + "VAT Paid": total_vat_paid, + "Net Profit (Taxable)": net_profit, + "Income Tax Due": income_tax_due, + "Final Profit (After Tax)": final_profit + } + + def display_summary(self): + results = self.calculate_results() + print("\n--- Financial Summary ---") + for key, value in results.items(): + print(f"{key}: {value:.2f} BGN") + print("--------------------------\n") + +if __name__ == "__main__": + calc = ProfitTaxCalculator() + while True: + try: + amount = float(input("Enter transaction amount (or 0 to finish): ")) + if amount == 0: + break + type_choice = input("Is this income? (y/n): ").strip().lower() == 'y' + vat_rate = float(input("Enter VAT rate (e.g., 0.2 for 20% or 0 for none): ")) + includes_vat = input("Does the amount include VAT? (y/n): ").strip().lower() == 'y' + calc.add_transaction(amount, type_choice, vat_rate, includes_vat) + except ValueError: + print("Invalid input. Please enter numbers correctly.") + + calc.display_summary()