tktax_analysis/
account_analysis.rs

1// ---------------- [ File: tktax-analysis/src/account_analysis.rs ]
2crate::ix!();
3
4impl<TxCat:TransactionCategory + 'static> AccountAnalysisInterface<TxCat> for Account {
5
6    fn analyze(&self, analysis: &AccountAnalysis<TxCat>) 
7        -> Result<(),AccountError> 
8    {
9        let flags                      = analysis.flags();
10        let category_map               = analysis.category_map();
11        let histogram_display_strategy = analysis.histogram_display_strategy();
12
13        info!("will analyze account {:#?}", self.kind());
14
15        print_thick_header("[ACCOUNT_ANALYSIS]");
16
17        println!("performing account analysis for year={}, account={}", self.year(), self.kind());
18        println!(" ");
19
20        if flags.contains(AccountAnalysisFlags::SHOW_ACCOUNT_SUMMARY) {
21            self.show_account_summary();
22        }
23
24        if flags.contains(AccountAnalysisFlags::SHOW_HISTOGRAM) {
25            self.show_histogram(histogram_display_strategy);
26        }
27
28        if flags.contains(AccountAnalysisFlags::SHOW_BURSTS) {
29            self.show_account_bursts();
30        }
31
32        if flags.contains(AccountAnalysisFlags::SHOW_MONTHLY_SUMMARY) {
33            self.show_monthly_summary();
34        }
35
36        if flags.contains(AccountAnalysisFlags::SHOW_BUSINESS_TRANSACTIONS) {
37            self.show_business_transactions(category_map);
38        }
39
40        if flags.contains(AccountAnalysisFlags::SHOW_MEDICAL_AND_INSURANCE_TRANSACTIONS) {
41            self.show_medical_and_insurance_expenditures(category_map);
42        }
43
44        if flags.contains(AccountAnalysisFlags::SHOW_TREASURY_TRANSACTIONS_AND_CHECKS) {
45            self.show_treasury_transactions_and_checks(category_map);
46        }
47
48        if flags.contains(AccountAnalysisFlags::SHOW_CATEGORY_MAP) {
49            self.show_category_map(category_map);
50        }
51
52        if flags.contains(AccountAnalysisFlags::SHOW_CATEGORIZED_FULL) {
53            self.show_categorized_debug(category_map);
54        }
55
56        if flags.contains(AccountAnalysisFlags::SHOW_CATEGORIZED_SHORT) {
57            self.show_categorized_short(category_map);
58        }
59
60        if flags.contains(AccountAnalysisFlags::SHOW_QUARTERLY_SUMMARY) {
61            self.show_quarterly_summary();
62        }
63
64        Ok(())
65    }
66}