accounting period

This commit is contained in:
Priec
2026-07-26 17:29:54 +02:00
parent 8146bce654
commit 5f910fb071
7 changed files with 106 additions and 6 deletions

View File

@@ -256,14 +256,19 @@ pub struct Journal {
pub struct ConfigureAccountingPeriodRequest {
#[prost(string, tag = "1")]
pub profile_name: ::prost::alloc::string::String,
/// Inclusive range in YYYY-MM-DD.
/// First day of the period, YYYY-MM-DD. Must be the first day of a month.
#[prost(string, tag = "2")]
pub period_start: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub period_end: ::prost::alloc::string::String,
/// Optional link to the preceding period in a carry chain.
#[prost(int64, optional, tag = "4")]
pub previous_period_id: ::core::option::Option<i64>,
/// Required. Decides the length of the period.
#[prost(enumeration = "AccountingPeriodType", tag = "5")]
pub period_type: i32,
/// Last day of the period, YYYY-MM-DD. Required for PARTIAL and rejected for
/// every other type, whose end follows from the start.
#[prost(string, tag = "6")]
pub period_end: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CloseAccountingPeriodRequest {
@@ -317,6 +322,8 @@ pub struct AccountingPeriod {
pub approved_at: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub approved_by_user_id: ::prost::alloc::string::String,
#[prost(enumeration = "AccountingPeriodType", tag = "11")]
pub period_type: i32,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListPeriodBalancesRequest {
@@ -407,6 +414,47 @@ impl AccountingPeriodStatus {
}
}
}
/// How long one accounting period lasts. MONTH and YEAR span whole months, so
/// the caller states only the start and the end is derived. PARTIAL is the
/// exception for periods real life cut short.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AccountingPeriodType {
Unspecified = 0,
/// One calendar month.
Month = 1,
/// Twelve consecutive months, aligned to the profile's fiscal year. Starting
/// in January gives the calendar year; any other start month gives a business
/// year (hospodársky rok).
Year = 2,
/// Neither a whole month nor a whole year, because the entity was formed or
/// terminated part-way through one. The only type carrying an explicit end.
Partial = 3,
}
impl AccountingPeriodType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "ACCOUNTING_PERIOD_TYPE_UNSPECIFIED",
Self::Month => "ACCOUNTING_PERIOD_TYPE_MONTH",
Self::Year => "ACCOUNTING_PERIOD_TYPE_YEAR",
Self::Partial => "ACCOUNTING_PERIOD_TYPE_PARTIAL",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"ACCOUNTING_PERIOD_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"ACCOUNTING_PERIOD_TYPE_MONTH" => Some(Self::Month),
"ACCOUNTING_PERIOD_TYPE_YEAR" => Some(Self::Year),
"ACCOUNTING_PERIOD_TYPE_PARTIAL" => Some(Self::Partial),
_ => None,
}
}
}
/// Generated client implementations.
pub mod accounting_client {
#![allow(