Compare commits
2 Commits
cabb6c5010
...
f6e9b5525b
Author | SHA1 | Date |
---|---|---|
scoobybejesus | f6e9b5525b | |
scoobybejesus | f7f9926e5e |
|
@ -200,7 +200,6 @@ but be sure not to include the ticker or symbol of the currency
|
||||||
(i.e., for `$14,567.27 USD`, enter `14567.27` or `14,567.27`).
|
(i.e., for `$14,567.27 USD`, enter `14567.27` or `14,567.27`).
|
||||||
|
|
||||||
* **memo**: This can be a string of characters of any length, though fewer than 20-30 characters is advised.
|
* **memo**: This can be a string of characters of any length, though fewer than 20-30 characters is advised.
|
||||||
Currently, **commas** in the memo field are **not** supported.
|
|
||||||
|
|
||||||
* *quantity*: This is similar to **proceeds**, in that the **decimal separator** must be a **period**,
|
* *quantity*: This is similar to **proceeds**, in that the **decimal separator** must be a **period**,
|
||||||
and you *cannot* include the ticker or symbol of the currency in that field.
|
and you *cannot* include the ticker or symbol of the currency in that field.
|
||||||
|
|
|
@ -34,7 +34,7 @@ so it can be successfully imported into `cryptools`.
|
||||||
|
|
||||||
* Two methods each of LIFO or FIFO (compatible w/ the concept of "specific identification")
|
* Two methods each of LIFO or FIFO (compatible w/ the concept of "specific identification")
|
||||||
|
|
||||||
* Ability to perform like-kind exchange treatment through a particular date
|
* Ability to perform like-kind exchange treatment through a particular date (must use wizard or `.env` file)
|
||||||
|
|
||||||
* Compatible with any (single) home currency
|
* Compatible with any (single) home currency
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ pub fn import_and_process_final(
|
||||||
&mut transactions_map,
|
&mut transactions_map,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
println!(" Successfully imported csv file.");
|
println!(" Successfully imported CSV Input File.");
|
||||||
println!("Processing the data...");
|
println!("Processing the data...");
|
||||||
|
|
||||||
transactions_map = create_lots_mvmts::create_lots_and_movements(
|
transactions_map = create_lots_mvmts::create_lots_and_movements(
|
||||||
|
|
|
@ -28,7 +28,7 @@ pub fn import_from_csv(
|
||||||
|
|
||||||
let file = match File::open(import_file_path) {
|
let file = match File::open(import_file_path) {
|
||||||
Ok(x) => {
|
Ok(x) => {
|
||||||
println!("\nCSV ledger file opened successfully.\n");
|
// println!("\nCSV ledger file opened successfully.\n");
|
||||||
x
|
x
|
||||||
},
|
},
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
@ -90,7 +90,7 @@ ordered chronologically (i.e., beginning in column 4 - the 1st account column -
|
||||||
The next column's value should be 2, then 3, etc, until the final account).";
|
The next column's value should be 2, then 3, etc, until the final account).";
|
||||||
|
|
||||||
// Header row variables have been set. It's now time to set up the accounts.
|
// Header row variables have been set. It's now time to set up the accounts.
|
||||||
println!("Attempting to create accounts...");
|
println!("\nCreating accounts...");
|
||||||
|
|
||||||
let length = &headerstrings.len();
|
let length = &headerstrings.len();
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ fn import_transactions(
|
||||||
let mut changed_action_records = 0;
|
let mut changed_action_records = 0;
|
||||||
let mut changed_txn_num = Vec::new();
|
let mut changed_txn_num = Vec::new();
|
||||||
|
|
||||||
println!("Attempting to create transactions...");
|
println!("Creating transactions...");
|
||||||
|
|
||||||
for result in rdr.records() {
|
for result in rdr.records() {
|
||||||
|
|
||||||
|
@ -243,9 +243,9 @@ fn import_transactions(
|
||||||
let tx_date = NaiveDate::parse_from_str(this_tx_date, &format_yy)
|
let tx_date = NaiveDate::parse_from_str(this_tx_date, &format_yy)
|
||||||
.unwrap_or_else(|_| NaiveDate::parse_from_str(this_tx_date, &format_yyyy)
|
.unwrap_or_else(|_| NaiveDate::parse_from_str(this_tx_date, &format_yyyy)
|
||||||
.expect("
|
.expect("
|
||||||
Failed to parse date in input file. Confirm your choice of the separator character, which is expected to be a hyphen \
|
FATAL: Transaction date parsing failed. You must tell the program the format of the date in your CSV Input File. The date separator \
|
||||||
unless otherwise set via command line flag, environment variable or .env file. Also confirm your choice of dating format \
|
is expected to be a hyphen. The dating format is expected to be \"American\" (%m-%d-%y), not ISO 8601 (%y-%m-%d). You may set different \
|
||||||
whether it be American (%m-%d-%y) or ISO (%y-%m-%d). Run with `--help` or see `.env.example.`\n")
|
date format options via command line flag, environment variable or .env file. Perhaps first run with `--help` or see `.env.example.`\n")
|
||||||
);
|
);
|
||||||
|
|
||||||
let transaction = Transaction {
|
let transaction = Transaction {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
## CONFIGURATION
|
## CONFIGURATION
|
||||||
##
|
##
|
||||||
## If the defaults below are not suitable, copy this .env.example into a new .env file,
|
## The defaults are shown below. If the defaults are not suitable, copy this .env.example into a new .env file,
|
||||||
## uncomment the respective enviroment variable, and set the value according to your needs.
|
## uncomment the respective enviroment variable, and set the value according to your needs.
|
||||||
## Alternatively, command line flags are available for ISO_DATE and DATE_SEPARATOR_SWITCH.
|
## Alternatively, command line flags are available for ISO_DATE and DATE_SEPARATOR_SWITCH.
|
||||||
## Command line flags will override enviroment variables.
|
## Command line flags will override enviroment variables.
|
||||||
|
@ -26,6 +26,7 @@
|
||||||
# (Optional; default is not set)
|
# (Optional; default is not set)
|
||||||
#LK_CUTOFF_DATE=YYYY-mm-DD
|
#LK_CUTOFF_DATE=YYYY-mm-DD
|
||||||
|
|
||||||
|
# These are the options available for choosing in which order lots are chosen for disposals.
|
||||||
#1. LIFO according to the order the lot was created.
|
#1. LIFO according to the order the lot was created.
|
||||||
#2. LIFO according to the basis date of the lot.
|
#2. LIFO according to the basis date of the lot.
|
||||||
#3. FIFO according to the order the lot was created.
|
#3. FIFO according to the order the lot was created.
|
||||||
|
|
|
@ -119,8 +119,7 @@ This software will import your csv file's ledger of cryptocurrency transactions.
|
||||||
It will then process it by creating 'lots' and posting 'movements' to those lots.
|
It will then process it by creating 'lots' and posting 'movements' to those lots.
|
||||||
Along the way, it will keep track of income, expenses, gains, and losses.
|
Along the way, it will keep track of income, expenses, gains, and losses.
|
||||||
|
|
||||||
See .env.example for environment variables that may be set in a .env file in order to
|
See examples/.env.example or run with --help to learn how to change default program behavior.
|
||||||
change default program behavior.
|
|
||||||
|
|
||||||
Note: The software is designed to import a full history. Gains and losses may be incorrect otherwise.
|
Note: The software is designed to import a full history. Gains and losses may be incorrect otherwise.
|
||||||
");
|
");
|
||||||
|
|
|
@ -20,10 +20,12 @@ use crate::wizard;
|
||||||
pub fn get_env(cmd_args: &super::Cli) -> Result<super::Cfg, Box<dyn Error>> {
|
pub fn get_env(cmd_args: &super::Cli) -> Result<super::Cfg, Box<dyn Error>> {
|
||||||
|
|
||||||
match dotenv::dotenv() {
|
match dotenv::dotenv() {
|
||||||
Ok(_path) => { println!("Setting environment variables from .env file.") },
|
Ok(_path) => { println!("Exporting temporary environment variables from .env file.") },
|
||||||
Err(_e) => println!("Did not find .env file.")
|
Err(_e) => println!("Did not find .env file.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
println!(" Setting runtime variables according to command line options or environment variables (the former take precedent).");
|
||||||
|
|
||||||
let iso_date: bool = if cmd_args.iso_date {
|
let iso_date: bool = if cmd_args.iso_date {
|
||||||
println!(" Command line flag for ISO_DATE was set. Using YY-mm-dd or YY/mm/dd.");
|
println!(" Command line flag for ISO_DATE was set. Using YY-mm-dd or YY/mm/dd.");
|
||||||
true
|
true
|
||||||
|
|
Loading…
Reference in New Issue