| Required role: | REGISUserRole |
| POST | /registration/billing-audit-reports |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingParityAuditResponse:
execution_id: int = 0
reporting_term: Optional[str] = None
timestamp: datetime.datetime = datetime.datetime(1, 1, 1)
workflow: Optional[str] = None
execution_mode: Optional[str] = None
regent_id: int = 0
transaction_id: Optional[int] = None
matches: bool = False
legacy_succeeded: Optional[bool] = None
composed_succeeded: Optional[bool] = None
differences: Optional[str] = None
request_summary_json: Optional[str] = None
legacy_summary_json: Optional[str] = None
composed_summary_json: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingCompletenessAuditResponse:
transaction_id: int = 0
transaction_uuid: Optional[str] = None
reporting_term: Optional[str] = None
finished_datetime: datetime.datetime = datetime.datetime(1, 1, 1)
operation: Optional[str] = None
regent_id: int = 0
student_uuid: Optional[str] = None
student_name: Optional[str] = None
invoice_count: int = 0
invoice_net: Decimal = decimal.Decimal(0)
item_net: Decimal = decimal.Decimal(0)
gp_success_count: int = 0
gp_failure_count: int = 0
calculation_status: Optional[str] = None
calculation_findings: Optional[str] = None
status: Optional[str] = None
findings: Optional[str] = None
resolved_datetime: Optional[datetime.datetime] = None
resolved_by_uuid: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingFailureAuditResponse:
source: Optional[str] = None
reporting_term: Optional[str] = None
id: int = 0
timestamp: datetime.datetime = datetime.datetime(1, 1, 1)
workflow: Optional[str] = None
regent_id: int = 0
transaction_id: Optional[int] = None
invoice_id: Optional[str] = None
gp_document_number: Optional[str] = None
amount: Optional[Decimal] = None
error: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingDriftAuditResponse:
transaction_id: int = 0
reporting_term: Optional[str] = None
regent_id: int = 0
workflow: Optional[str] = None
calculation_count: int = 0
first_calculation: datetime.datetime = datetime.datetime(1, 1, 1)
final_calculation: datetime.datetime = datetime.datetime(1, 1, 1)
changed: bool = False
persistence_status: Optional[str] = None
persistence_findings: Optional[str] = None
first_summary_json: Optional[str] = None
final_summary_json: Optional[str] = None
section_course_codes: Optional[Dict[int, str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingAuditReportResponse:
parity: Optional[List[RegistrationBillingParityAuditResponse]] = None
completeness: Optional[List[RegistrationBillingCompletenessAuditResponse]] = None
failures: Optional[List[RegistrationBillingFailureAuditResponse]] = None
drift: Optional[List[RegistrationBillingDriftAuditResponse]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingAuditReportRequest:
reporting_term: Optional[str] = None
from_date: datetime.datetime = datetime.datetime(1, 1, 1)
to_date: datetime.datetime = datetime.datetime(1, 1, 1)
authorizing_uuid: Optional[str] = None
Python RegistrationBillingAuditReportRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /registration/billing-audit-reports HTTP/1.1
Host: data.regent-college.edu
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
reporting_term: String,
from_date: 0001-01-01,
to_date: 0001-01-01,
authorizing_uuid: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
parity:
[
{
execution_id: 0,
reporting_term: String,
timestamp: 0001-01-01,
workflow: String,
execution_mode: String,
regent_id: 0,
transaction_id: 0,
matches: False,
legacy_succeeded: False,
composed_succeeded: False,
differences: String,
request_summary_json: String,
legacy_summary_json: String,
composed_summary_json: String
}
],
completeness:
[
{
transaction_id: 0,
transaction_uuid: String,
reporting_term: String,
finished_datetime: 0001-01-01,
operation: String,
regent_id: 0,
student_uuid: String,
student_name: String,
invoice_count: 0,
invoice_net: 0,
item_net: 0,
gp_success_count: 0,
gp_failure_count: 0,
calculation_status: String,
calculation_findings: String,
status: String,
findings: String,
resolved_datetime: 0001-01-01,
resolved_by_uuid: String
}
],
failures:
[
{
source: String,
reporting_term: String,
id: 0,
timestamp: 0001-01-01,
workflow: String,
regent_id: 0,
transaction_id: 0,
invoice_id: String,
gp_document_number: String,
amount: 0,
error: String
}
],
drift:
[
{
transaction_id: 0,
reporting_term: String,
regent_id: 0,
workflow: String,
calculation_count: 0,
first_calculation: 0001-01-01,
final_calculation: 0001-01-01,
changed: False,
persistence_status: String,
persistence_findings: String,
first_summary_json: String,
final_summary_json: String,
section_course_codes:
{
0: String
}
}
]
}