pub struct CustomerAging {
pub customer_id: String,
pub customer_name: String,
pub credit_limit: Option<Decimal>,
pub total_balance: Decimal,
pub bucket_amounts: HashMap<AgingBucket, Decimal>,
pub invoice_counts: HashMap<AgingBucket, u32>,
pub oldest_invoice_date: Option<NaiveDate>,
pub weighted_avg_days: Decimal,
pub invoices: Vec<AgingInvoiceDetail>,
}Expand description
Aging detail for a single customer.
Fields§
§customer_id: StringCustomer ID.
customer_name: StringCustomer name.
credit_limit: Option<Decimal>Credit limit.
total_balance: DecimalTotal balance.
bucket_amounts: HashMap<AgingBucket, Decimal>Amounts by bucket.
invoice_counts: HashMap<AgingBucket, u32>Invoice count by bucket.
oldest_invoice_date: Option<NaiveDate>Oldest invoice date.
weighted_avg_days: DecimalWeighted average days outstanding.
invoices: Vec<AgingInvoiceDetail>Invoice details.
Implementations§
Source§impl CustomerAging
impl CustomerAging
Sourcepub fn from_invoices(
customer_id: String,
customer_name: String,
invoices: &[&ARInvoice],
as_of_date: NaiveDate,
) -> Self
pub fn from_invoices( customer_id: String, customer_name: String, invoices: &[&ARInvoice], as_of_date: NaiveDate, ) -> Self
Creates customer aging from invoices.
Sourcepub fn with_credit_limit(self, limit: Decimal) -> Self
pub fn with_credit_limit(self, limit: Decimal) -> Self
Sets credit limit.
Sourcepub fn is_over_credit_limit(&self) -> bool
pub fn is_over_credit_limit(&self) -> bool
Checks if over credit limit.
Sourcepub fn credit_utilization(&self) -> Option<Decimal>
pub fn credit_utilization(&self) -> Option<Decimal>
Gets credit utilization percentage.
Sourcepub fn amount_in_bucket(&self, bucket: AgingBucket) -> Decimal
pub fn amount_in_bucket(&self, bucket: AgingBucket) -> Decimal
Gets amount in a specific bucket.
Sourcepub fn percentage_in_bucket(&self, bucket: AgingBucket) -> Decimal
pub fn percentage_in_bucket(&self, bucket: AgingBucket) -> Decimal
Gets percentage in a specific bucket.
Trait Implementations§
Source§impl Clone for CustomerAging
impl Clone for CustomerAging
Source§fn clone(&self) -> CustomerAging
fn clone(&self) -> CustomerAging
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CustomerAging
impl Debug for CustomerAging
Source§impl<'de> Deserialize<'de> for CustomerAging
impl<'de> Deserialize<'de> for CustomerAging
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CustomerAging
impl RefUnwindSafe for CustomerAging
impl Send for CustomerAging
impl Sync for CustomerAging
impl Unpin for CustomerAging
impl UnsafeUnpin for CustomerAging
impl UnwindSafe for CustomerAging
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.