Update documentation
This commit is contained in:
parent
98018bb4bc
commit
1bed0f269e
@ -16,6 +16,10 @@
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
//! This module contains implementations of dynamic step builders
|
||||
//!
|
||||
//! See [ReportingContext::register_dynamic_builder][super::types::ReportingContext::register_dynamic_builder].
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::fmt::Display;
|
||||
|
||||
@ -39,13 +43,13 @@ pub fn register_dynamic_builders(context: &mut ReportingContext) {
|
||||
BalancesAtToBalancesBetween::register_dynamic_builder(context);
|
||||
}
|
||||
|
||||
/// This dynamic builder automatically generates a [BalancesBetween] by subtracting [BalancesAt] between two dates
|
||||
#[derive(Debug)]
|
||||
pub struct BalancesAtToBalancesBetween {
|
||||
step_name: &'static str,
|
||||
args: DateStartDateEndArgs,
|
||||
}
|
||||
|
||||
/// This dynamic builder automatically generates a [BalancesBetween] by subtracting [BalancesAt] between two dates
|
||||
impl BalancesAtToBalancesBetween {
|
||||
// Implements BalancesAt, BalancesAt -> BalancesBetween
|
||||
|
||||
@ -205,7 +209,7 @@ impl ReportingStep for BalancesAtToBalancesBetween {
|
||||
}
|
||||
}
|
||||
|
||||
/// This dynamic builder automatically generates a [BalancesAt] from a step which has no dependencies and generates [Transactions] (e.g. [super::steps::PostUnreconciledStatementLines])
|
||||
/// This dynamic builder automatically generates a [BalancesAt] from a step which has no dependencies and generates [Transactions] (e.g. [PostUnreconciledStatementLines][super::steps::PostUnreconciledStatementLines])
|
||||
#[derive(Debug)]
|
||||
pub struct GenerateBalances {
|
||||
step_name: &'static str,
|
||||
|
@ -23,7 +23,7 @@ use super::types::{
|
||||
ReportingStepFromArgsFn, ReportingStepId,
|
||||
};
|
||||
|
||||
/// List of dependencies between [ReportingStep]s and [ReportingProduct]s
|
||||
/// List of dependencies between [ReportingStep]s and [ReportingProduct][super::types::ReportingProduct]s
|
||||
#[derive(Debug)]
|
||||
pub struct ReportingGraphDependencies {
|
||||
vec: Vec<Dependency>,
|
||||
@ -35,7 +35,7 @@ impl ReportingGraphDependencies {
|
||||
&self.vec
|
||||
}
|
||||
|
||||
/// Record that the [ReportingStep] depends on the [ReportingProduct]
|
||||
/// Record that the [ReportingStep] depends on the [ReportingProduct][super::types::ReportingProduct]
|
||||
pub fn add_dependency(&mut self, step: ReportingStepId, product: ReportingProductId) {
|
||||
if !self
|
||||
.vec
|
||||
@ -52,7 +52,7 @@ impl ReportingGraphDependencies {
|
||||
}
|
||||
}
|
||||
|
||||
/// Represents that a [ReportingStep] depends on a [ReportingProduct]
|
||||
/// Represents that a [ReportingStep] depends on a [ReportingProduct][super::types::ReportingProduct]
|
||||
#[derive(Debug)]
|
||||
pub struct Dependency {
|
||||
pub step: ReportingStepId,
|
||||
@ -74,7 +74,7 @@ pub enum HasStepOrCanBuild<'a, 'b> {
|
||||
None,
|
||||
}
|
||||
|
||||
/// Determines whether the [ReportingProduct] is generated by a known step, or can be generated by a lookup function or dynamic builder
|
||||
/// Determines whether the [ReportingProduct][super::types::ReportingProduct] is generated by a known step, or can be generated by a lookup function or dynamic builder
|
||||
pub fn has_step_or_can_build<'a, 'b>(
|
||||
product: &ReportingProductId,
|
||||
steps: &'a Vec<Box<dyn ReportingStep>>,
|
||||
|
@ -45,6 +45,11 @@ pub fn register_lookup_fns(context: &mut ReportingContext) {
|
||||
RetainedEarningsToEquity::register_lookup_fn(context);
|
||||
}
|
||||
|
||||
/// Target representing all transactions except charging retained earnings to equity
|
||||
///
|
||||
/// By default, this is [CombineOrdinaryTransactions] and, if requested, [CalculateIncomeTax].
|
||||
///
|
||||
/// Used as the basis for the income statement.
|
||||
#[derive(Debug)]
|
||||
pub struct AllTransactionsExceptRetainedEarnings {
|
||||
pub product_kinds: &'static [ReportingProductKind], // Must have single member
|
||||
@ -157,6 +162,11 @@ impl ReportingStep for AllTransactionsExceptRetainedEarnings {
|
||||
}
|
||||
}
|
||||
|
||||
/// Target representing all transactions including charging retained earnings to equity
|
||||
///
|
||||
/// In other words, this is [AllTransactionsExceptRetainedEarnings] and [RetainedEarningsToEquity].
|
||||
///
|
||||
/// Used as the basis for the balance sheet.
|
||||
#[derive(Debug)]
|
||||
pub struct AllTransactionsIncludingRetainedEarnings {
|
||||
pub args: DateArgs,
|
||||
@ -262,6 +272,7 @@ impl ReportingStep for AllTransactionsIncludingRetainedEarnings {
|
||||
}
|
||||
}
|
||||
|
||||
/// Calculates income tax
|
||||
#[derive(Debug)]
|
||||
pub struct CalculateIncomeTax {}
|
||||
|
||||
@ -358,6 +369,9 @@ impl ReportingStep for CalculateIncomeTax {
|
||||
}
|
||||
}
|
||||
|
||||
/// Combines all steps producing ordinary transactions
|
||||
///
|
||||
/// By default, these are [DBBalances] and [PostUnreconciledStatementLines]
|
||||
#[derive(Debug)]
|
||||
pub struct CombineOrdinaryTransactions {
|
||||
pub args: DateArgs,
|
||||
@ -455,6 +469,7 @@ impl ReportingStep for CombineOrdinaryTransactions {
|
||||
}
|
||||
}
|
||||
|
||||
/// Look up account balances from the database
|
||||
#[derive(Debug)]
|
||||
pub struct DBBalances {
|
||||
pub args: DateArgs,
|
||||
@ -522,6 +537,7 @@ impl ReportingStep for DBBalances {
|
||||
}
|
||||
}
|
||||
|
||||
/// Generate transactions for unreconciled statement lines
|
||||
#[derive(Debug)]
|
||||
pub struct PostUnreconciledStatementLines {
|
||||
pub args: DateArgs,
|
||||
@ -589,6 +605,7 @@ impl ReportingStep for PostUnreconciledStatementLines {
|
||||
}
|
||||
}
|
||||
|
||||
/// Transfer historical balances in income and expense accounts to the retained earnings equity account
|
||||
#[derive(Debug)]
|
||||
pub struct RetainedEarningsToEquity {
|
||||
pub args: DateArgs,
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
use chrono::{Datelike, NaiveDate};
|
||||
|
||||
/// Return the start date of the financial year, given the end date of the financial year
|
||||
pub fn sofy_from_eofy(date_eofy: NaiveDate) -> NaiveDate {
|
||||
// Return the start date of the financial year, given the end date of the financial year
|
||||
return date_eofy.with_year(date_eofy.year() - 1).unwrap().succ_opt().unwrap();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user