///|
pub fn AccountMapping::new(
account : String,
line : String,
kind : StatementKind,
factor? : Int = 1,
) -> AccountMapping {
{ account, line, kind, factor }
}
///|
pub fn Entry::new(
account : String,
period : String,
debit : Amount,
credit : Amount,
cash? : Bool = false,
) -> Entry {
{ account, period, debit, credit, cash, dimension: "" }
}
///|
pub fn Entry::new_with_dimension(
account : String,
period : String,
debit : Amount,
credit : Amount,
dimension : String,
cash? : Bool = false,
) -> Entry {
{ account, period, debit, credit, cash, dimension }
}
///|
fn Entry::balance(self : Entry, kind : StatementKind) -> Amount {
match kind {
IncomeStatement => self.credit - self.debit
_ => self.debit - self.credit
}
}
///|
fn find_mapping(
mappings : Array[AccountMapping],
account : String,
) -> AccountMapping? {
for mapping in mappings {
if mapping.account == account {
return Some(mapping)
}
}
None
}
///|