billecta 1.14.0

Generated Billecta API
Documentation
use crate::{Amount, Date, DateTime, Debtor, Request, RequestBuilder, Uuid};

#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct OutstandingInvoice {
    pub action_public_id: String,
    pub invoice_number: String,
    pub debtor: Debtor,
    pub invoice_date: DateTime,
    pub due_date: DateTime,
    pub invoiced_amount_including_tax: Amount,
    pub remaining_amount_including_tax: Amount,
    pub period_start: Option<DateTime>,
    pub period_end: Option<DateTime>,
    pub your_reference: Option<String>,
}

pub fn get_outstanding_invoices(
    creditor_id: Uuid,
    date: Date,
    exclude_invoices_with_period_outside_date: Option<bool>,
    only_show_financed_invoices: Option<bool>,
    is_period_specific: Option<bool>,
) -> Request<Vec<OutstandingInvoice>> {
    RequestBuilder::new(
        http::Method::GET,
        "/v1/Analysis/AgeAnalysisAccountReceivables/",
    )
    .path_param(creditor_id)
    .query_param("date", date)
    .query_param(
        "excludeInvoicesWithPeriodOutsideDate",
        exclude_invoices_with_period_outside_date.unwrap_or(false),
    )
    .query_param(
        "showOnlyFinancedInvoices",
        only_show_financed_invoices.unwrap_or(false),
    )
    .query_param("isPeriodSpecific", is_period_specific.unwrap_or(false))
    .build()
}