diff options
-rw-r--r-- | ledger_process.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ledger_process.py b/ledger_process.py index 1c9d5f7..51d4fa6 100644 --- a/ledger_process.py +++ b/ledger_process.py @@ -86,20 +86,26 @@ class LedgerProcess: date_sold = eur_trade.date if eur_amount < 0: # Purchase of cryptocurrency - stake_amount = -eur_amount - eur_fee # Account for EUR fees + assert crypto_amount > 0 + assert eur_fee >= 0 + assert crypto_fee >= 0 + + cost = -eur_amount - eur_fee # Account for EUR fees crypto_amount -= crypto_fee # Adjust for crypto fees self.fifo_queues[crypto_asset].add_trade( - Trade(crypto_amount, stake_amount, date_sold, refid=refid) + Trade(crypto_amount, cost, date_sold, refid=refid) ) elif eur_amount > 0: # Sale of cryptocurrency + # simply add to queue, don't process it yet + assert crypto_amount < 0 + assert eur_fee >= 0 + assert crypto_fee >= 0 + proceeds = eur_amount - eur_fee + crypto_amount += crypto_fee # Adjust for crypto fees self.fifo_queues[crypto_asset].add_trade( Trade(crypto_amount, -proceeds, date_sold, refid=refid) ) - # sale_entries = fifo_queues[crypto_asset].remove_coins(-crypto_amount) - # report.extend( - # generate_report(sale_entries, proceeds, crypto_asset, date_sold) - # ) else: raise ValueError(f"Unexpected trade grouping for refid {refid}") else: |