diff --git a/src/export_txt.rs b/src/export_txt.rs index faf6dcd..9978cf9 100644 --- a/src/export_txt.rs +++ b/src/export_txt.rs @@ -27,35 +27,35 @@ pub fn _1_account_lot_detail_to_txt( // Account balance: 0.5000000 BTC; Total cost basis: 450.0000000 // ------------------------- // Lot 1 - // • Σ: 0E-7, with remaining cost basis of 0E-7 and basis date of 2016-01-01 + // • Σ: 0.00, with remaining cost basis of 0.00 and basis date of 2016-01-01 // Movements: - // 1. 0.2500000 BTC (Txn #1) Exchange txn on 1/1/16. - FIRST + // 1. 0.2500000 BTC (Txn #1) Exchange txn on 2016-01-01. - FIRST // Proceeds: 0.0; Cost basis: 220.0000000; for Gain/loss: LT 0; Inc.: 0; Exp.: 0. - // 2. -0.2500000 BTC (Txn #2) Exchange txn on 2/1/16. - SECOND + // 2. -0.2500000 BTC (Txn #2) Exchange txn on 2016-02-01. - SECOND // Proceeds: 250.0; Cost basis: -220.0; for Gain/loss: ST 30.0; Inc.: 0; Exp.: 0. // ------------------------- // Lot 2 - // • Σ: 0E-7, with remaining cost basis of 0.0 and basis date of 2016-03-01 + // • Σ: 0.00, with remaining cost basis of 0.00 and basis date of 2016-03-01 // Movements: - // 1. 0.3000000 BTC (Txn #3) Exchange txn on 3/1/16. - THIRD + // 1. 0.3000000 BTC (Txn #3) Exchange txn on 2016-03-01. - THIRD // Proceeds: 0.0; Cost basis: 160.0; for Gain/loss: LT 0; Inc.: 0; Exp.: 0. - // 2. -0.3 BTC (Txn #5) Exchange txn on 7/1/16. - FIFTH + // 2. -0.3 BTC (Txn #5) Exchange txn on 2016-07-01. - FIFTH // Proceeds: 100.0; Cost basis: -160.0; for Gain/loss: ST -60.0; Inc.: 0; Exp.: 0. // ------------------------- // Lot 3 - // • Σ: 0E-7, with remaining cost basis of 0.0 and basis date of 2016-04-01 + // • Σ: 0.00, with remaining cost basis of 0.00 and basis date of 2016-04-01 // Movements: - // 1. 0.3000000 BTC (Txn #4) Exchange txn on 4/1/16. - FOURTH + // 1. 0.3000000 BTC (Txn #4) Exchange txn on 2016-04-01. - FOURTH // Proceeds: 0.0; Cost basis: 210.0; for Gain/loss: LT 0; Inc.: 0; Exp.: 0. - // 2. -0.3 BTC (Txn #5) Exchange txn on 7/1/16. - FIFTH + // 2. -0.3 BTC (Txn #5) Exchange txn on 2016-07-01. - FIFTH // Proceeds: 100.0; Cost basis: -210.0; for Gain/loss: ST -110.0; Inc.: 0; Exp.: 0. // ------------------------- // Lot 4 // • Σ: 0.5000000, with remaining cost basis of 450.0 and basis date of 2016-10-01 // Movements: - // 1. 1.0000000 BTC (Txn #6) Exchange txn on 10/1/16. - SIXTH + // 1. 1.0000000 BTC (Txn #6) Exchange txn on 2016-10-01. - SIXTH // Proceeds: 0.0; Cost basis: 900.0; for Gain/loss: LT 0; Inc.: 0; Exp.: 0. - // 2. -0.5000000 BTC (Txn #7) ToSelf txn on 1/1/18. - SEVENTH + // 2. -0.5000000 BTC (Txn #7) ToSelf txn on 2018-01-01. - SEVENTH // Proceeds: 0.0; Cost basis: -450.0; for Gain/loss: LT 0; Inc.: 0; Exp.: 0. @@ -109,15 +109,26 @@ Enable like-kind treatment: {}", for (lot_idx, lot) in acct.list_of_lots.borrow().iter().enumerate() { let lk_lot_basis = lot.get_sum_of_lk_basis_in_lot(); + + let formatted_basis: String; + if lk_lot_basis == d128!(0) { + formatted_basis = "0.00".to_string() + } else { formatted_basis = lk_lot_basis.to_string() } + let movements_sum = lot.get_sum_of_amts_in_lot(); + let formatted_sum: String; + if movements_sum == d128!(0) { + formatted_sum = "0.00".to_string() + } else { formatted_sum = movements_sum.to_string() } + if acct.list_of_lots.borrow().len() > 0 { writeln!(file, "-------------------------")?; writeln!(file, " Lot {}", (lot_idx+1))?; writeln!(file, "\t• Σ: {}, with remaining cost basis of {} and basis date of {}", - movements_sum, - lk_lot_basis, + formatted_sum, + formatted_basis, lot.date_for_basis_purposes )?; writeln!(file, "\t Movements:")?; @@ -133,7 +144,7 @@ Enable like-kind treatment: {}", raw_acct.ticker, mvmt.transaction_key, tx_type, - mvmt.date_as_string, + mvmt.date, txn.user_memo ); @@ -168,17 +179,6 @@ Enable like-kind treatment: {}", writeln!(file, "{}", activity_str)?; - // if settings.enable_like_kind_treatment { - // let dg_prev = mvmt.proceeds_lk.get(); - // let dg_curr = mvmt.cost_basis_lk.get(); - - // let activity_str = format!("\t\t\tGain deferred in this txn: {}; Accumulated in prior txns: {}", - // dg_curr, - // dg_prev, - // ); - - // writeln!(file, "{}", activity_str)? - // } } } } @@ -196,15 +196,15 @@ pub fn _2_account_lot_summary_to_txt( // ===================================== // Bank USD // Account balance: -220.0000000 USD; Total cost basis: -220.0000000 -// Lot 1 • Σ: -220.0000000, with remaining cost basis of -220.0000000 and basis date of 2016-01-01 +// Lot 1 created 2016-01-01 w/ basis date 2016-01-01 • Σ: -220.0000000, and cost basis of -220.0000000 // ===================================== // Exchange BTC // Account balance: 0.5000000 BTC; Total cost basis: 450.0000000 -// Lot 1 • Σ: 0E-7, with remaining cost basis of 0E-7 and basis date of 2016-01-01 -// Lot 2 • Σ: 0E-7, with remaining cost basis of 0.0 and basis date of 2016-03-01 -// Lot 3 • Σ: 0E-7, with remaining cost basis of 0.0 and basis date of 2016-04-01 -// Lot 4 • Σ: 0.5000000, with remaining cost basis of 450.0 and basis date of 2016-10-01 +// Lot 1 created 2016-01-01 w/ basis date 2016-01-01 • Σ: 0.00, and cost basis of 0.00 +// Lot 2 created 2016-03-01 w/ basis date 2016-03-01 • Σ: 0.00, and cost basis of 0.00 +// Lot 3 created 2016-04-01 w/ basis date 2016-04-01 • Σ: 0.00, and cost basis of 0.00 +// Lot 4 created 2016-10-01 w/ basis date 2016-10-01 • Σ: 0.5000000, and cost basis of 450.00 @@ -255,16 +255,27 @@ Enable like-kind treatment: {}", for (lot_idx, lot) in acct.list_of_lots.borrow().iter().enumerate() { let lk_lot_basis = lot.get_sum_of_lk_basis_in_lot(); + + let formatted_basis: String; + if lk_lot_basis == d128!(0) { + formatted_basis = "0.00".to_string() + } else { formatted_basis = lk_lot_basis.to_string() } + let movements_sum = lot.get_sum_of_amts_in_lot(); + let formatted_sum: String; + if movements_sum == d128!(0) { + formatted_sum = "0.00".to_string() + } else { formatted_sum = movements_sum.to_string() } + if acct.list_of_lots.borrow().len() > 0 { writeln!(file, " Lot {} created {} w/ basis date {} • Σ: {}, and cost basis of {}", (lot_idx+1), lot.date_of_first_mvmt_in_lot, lot.date_for_basis_purposes, - movements_sum, - lk_lot_basis, + formatted_sum, + formatted_basis, )?; } } @@ -282,12 +293,12 @@ pub fn _3_account_lot_summary_non_zero_to_txt( // ===================================== // Exchange BTC // Account balance: 0.5000000 BTC; Total cost basis: 450.0000000 -// Lot 4 • Σ: 0.5000000, with remaining cost basis of 450.0 and basis date of 2016-10-01 +// Lot 4 created 2016-10-01 w/ basis date 2016-10-01 • Σ: 0.5000000, and cost basis of 450.00 // ===================================== // Simplewallet XMR // Account balance: 400.0000000 XMR; Total cost basis: 2000.0 -// Lot 1 • Σ: 400.0000000, with remaining cost basis of 2000.0 and basis date of 2018-02-01 +// Lot 1 created 2018-02-01 w/ basis date 2018-02-01 • Σ: 400.0000000, and cost basis of 2000.00 @@ -343,6 +354,12 @@ Enable like-kind treatment: {}", for (lot_idx, lot) in acct.list_of_lots.borrow().iter().enumerate() { let lk_lot_basis = lot.get_sum_of_lk_basis_in_lot(); + + let formatted_basis: String; + if lk_lot_basis == d128!(0) { + formatted_basis = "0.00".to_string() + } else { formatted_basis = lk_lot_basis.to_string() } + let movements_sum = lot.get_sum_of_amts_in_lot(); if acct.list_of_lots.borrow().len() > 0 { @@ -353,7 +370,7 @@ Enable like-kind treatment: {}", lot.date_of_first_mvmt_in_lot, lot.date_for_basis_purposes, movements_sum, - lk_lot_basis, + formatted_basis, )?; } }