reports1
This commit is contained in:
@@ -585,3 +585,178 @@ message ListOpeningBalanceAccountsResponse {
|
||||
repeated UnmappedSourceDenominationBalance
|
||||
unmapped_source_denomination_balances = 3;
|
||||
}
|
||||
|
||||
// Implemented by financial_reports_basic. Module approvals and user read
|
||||
// permissions for both the journal and account catalogue are required.
|
||||
service FinancialReports {
|
||||
rpc PreviewFinancialReports(FinancialReportRequest) returns (FinancialReportBundle);
|
||||
// Saves immutable source data and results; requires a closed, reconciled period.
|
||||
rpc FinalizeFinancialReports(FinancialReportRequest) returns (SavedFinancialReport);
|
||||
rpc GetFinancialReport(GetFinancialReportRequest) returns (SavedFinancialReport);
|
||||
rpc ListFinancialReports(ListFinancialReportsRequest) returns (ListFinancialReportsResponse);
|
||||
}
|
||||
|
||||
enum ReportStatementClass {
|
||||
REPORT_STATEMENT_CLASS_UNSPECIFIED = 0;
|
||||
REPORT_STATEMENT_CLASS_ASSETS = 1;
|
||||
REPORT_STATEMENT_CLASS_EQUITY_AND_LIABILITIES = 2;
|
||||
REPORT_STATEMENT_CLASS_EXPENSES = 3;
|
||||
REPORT_STATEMENT_CLASS_REVENUE = 4;
|
||||
}
|
||||
|
||||
enum ReportBalanceSide {
|
||||
REPORT_BALANCE_SIDE_UNSPECIFIED = 0;
|
||||
REPORT_BALANCE_SIDE_DEBIT = 1;
|
||||
REPORT_BALANCE_SIDE_CREDIT = 2;
|
||||
REPORT_BALANCE_SIDE_EITHER = 3;
|
||||
}
|
||||
|
||||
enum FinancialReportBasis {
|
||||
FINANCIAL_REPORT_BASIS_UNSPECIFIED = 0;
|
||||
FINANCIAL_REPORT_BASIS_POSTED = 1;
|
||||
FINANCIAL_REPORT_BASIS_BEFORE_TECHNICAL_CLOSING = 2;
|
||||
}
|
||||
|
||||
message FinancialReportRequest {
|
||||
string profile_name = 1;
|
||||
int64 period_id = 2;
|
||||
// Must be chosen explicitly. The server never guesses closing journals.
|
||||
FinancialReportBasis basis = 3;
|
||||
// Verified technical transfers removed from all three reports.
|
||||
repeated TechnicalClosingJournal closing_journals = 4;
|
||||
// Zero selects period_id alone; otherwise report consecutive periods through period_id.
|
||||
int64 first_period_id = 5;
|
||||
}
|
||||
|
||||
enum TechnicalClosingKind {
|
||||
TECHNICAL_CLOSING_KIND_UNSPECIFIED = 0;
|
||||
TECHNICAL_CLOSING_KIND_INCOME_TRANSFER = 1;
|
||||
TECHNICAL_CLOSING_KIND_BALANCE_TRANSFER = 2;
|
||||
}
|
||||
|
||||
message TechnicalClosingJournal {
|
||||
int64 journal_id = 1;
|
||||
TechnicalClosingKind kind = 2;
|
||||
// Explicit account identity, never inferred from account numbers or descriptions.
|
||||
string closing_account = 3;
|
||||
}
|
||||
|
||||
message FinancialReportSourceRow {
|
||||
repeated string account_segments = 1;
|
||||
string denomination_currency = 2;
|
||||
ReportStatementClass statement_class = 3;
|
||||
ReportBalanceSide balance_side = 4;
|
||||
// Aggregate amounts include descendants, in the profile bookkeeping currency.
|
||||
string opening_balance = 5;
|
||||
string period_debit = 6;
|
||||
string period_credit = 7;
|
||||
string closing_balance = 8;
|
||||
// Direct movements of the explicitly selected closing journals only.
|
||||
string excluded_debit = 9;
|
||||
string excluded_credit = 10;
|
||||
}
|
||||
|
||||
message FinancialReportSource {
|
||||
AccountingPeriod period = 1;
|
||||
string currency = 2;
|
||||
string account_catalogue = 3;
|
||||
int64 account_catalogue_id = 4;
|
||||
FinancialReportBasis basis = 5;
|
||||
repeated TechnicalClosingJournal closing_journals = 6;
|
||||
repeated FinancialReportSourceRow rows = 7;
|
||||
// Actual period generations; period above describes their combined range.
|
||||
repeated AccountingPeriod periods = 8;
|
||||
}
|
||||
|
||||
message FinancialStatementRow {
|
||||
string account = 1;
|
||||
ReportStatementClass statement_class = 2;
|
||||
// Direct account amount, excluding descendants. Contra balances stay signed.
|
||||
string amount = 3;
|
||||
}
|
||||
|
||||
message BalanceSheet {
|
||||
repeated FinancialStatementRow rows = 1;
|
||||
string assets = 2;
|
||||
string equity_and_liabilities = 3;
|
||||
// Negative N/V balances on the selected report basis.
|
||||
string untransferred_result = 4;
|
||||
// Assets minus equity/liabilities minus untransferred result.
|
||||
string difference = 5;
|
||||
}
|
||||
|
||||
message ProfitAndLoss {
|
||||
repeated FinancialStatementRow rows = 1;
|
||||
string expenses = 2;
|
||||
string revenue = 3;
|
||||
string result = 4;
|
||||
}
|
||||
|
||||
enum FinancialReportIssueKind {
|
||||
FINANCIAL_REPORT_ISSUE_KIND_UNSPECIFIED = 0;
|
||||
FINANCIAL_REPORT_ISSUE_KIND_UNEXPECTED_BALANCE_SIDE = 1;
|
||||
FINANCIAL_REPORT_ISSUE_KIND_UNBALANCED_OPENING = 2;
|
||||
FINANCIAL_REPORT_ISSUE_KIND_UNBALANCED_MOVEMENT = 3;
|
||||
FINANCIAL_REPORT_ISSUE_KIND_UNBALANCED_CLOSING = 4;
|
||||
FINANCIAL_REPORT_ISSUE_KIND_UNADJUSTED_OPEN_PERIOD = 5;
|
||||
}
|
||||
|
||||
message FinancialReportIssue {
|
||||
FinancialReportIssueKind kind = 1;
|
||||
string account = 2;
|
||||
string message = 3;
|
||||
}
|
||||
|
||||
message FinancialReportBundle {
|
||||
uint32 calculation_version = 1;
|
||||
FinancialReportSource source = 2;
|
||||
GetTrialBalanceResponse trial_balance = 3;
|
||||
BalanceSheet balance_sheet = 4;
|
||||
ProfitAndLoss profit_and_loss = 5;
|
||||
repeated FinancialReportIssue issues = 6;
|
||||
}
|
||||
|
||||
enum FinancialReportPeriodState {
|
||||
FINANCIAL_REPORT_PERIOD_STATE_UNSPECIFIED = 0;
|
||||
FINANCIAL_REPORT_PERIOD_STATE_SAME_CLOSED_PERIOD = 1;
|
||||
FINANCIAL_REPORT_PERIOD_STATE_REOPENED_OR_CHANGED = 2;
|
||||
FINANCIAL_REPORT_PERIOD_STATE_REMOVED = 3;
|
||||
}
|
||||
|
||||
message SavedFinancialReport {
|
||||
int64 id = 1;
|
||||
string created_at = 2;
|
||||
string created_by_user_id = 3;
|
||||
FinancialReportBundle report = 4;
|
||||
// Only describes the period generation. Saved classifications are immutable
|
||||
// even when the current account catalogue is edited later.
|
||||
FinancialReportPeriodState period_state = 5;
|
||||
}
|
||||
|
||||
message GetFinancialReportRequest {
|
||||
string profile_name = 1;
|
||||
int64 report_id = 2;
|
||||
}
|
||||
|
||||
message ListFinancialReportsRequest {
|
||||
string profile_name = 1;
|
||||
// Exclusive cursor; zero starts at the newest report.
|
||||
int64 before_id = 2;
|
||||
uint32 limit = 3;
|
||||
}
|
||||
|
||||
message FinancialReportSummary {
|
||||
int64 id = 1;
|
||||
int64 period_id = 2;
|
||||
string period_start = 3;
|
||||
string period_end = 4;
|
||||
string created_at = 5;
|
||||
string created_by_user_id = 6;
|
||||
uint32 calculation_version = 7;
|
||||
}
|
||||
|
||||
message ListFinancialReportsResponse {
|
||||
repeated FinancialReportSummary reports = 1;
|
||||
// Pass as before_id for the next page; zero when no more rows remain.
|
||||
int64 next_before_id = 2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user