regis

<back to all web services

DropRegistrationsBillingPlanPreviewRequest

Requires Authentication
Required role:REGISUserRole
The following routes are available for this service:
POST/Registration/{uuid}/Drop/{reporting_term}/BillingPlanPreview
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 InvoiceItemResponse:
    response_status: Optional[ResponseStatus] = None
    invoice_item_u_u_i_d: Optional[str] = None
    rate_id: int = 0
    rate_code: Optional[str] = None
    rate_description: Optional[str] = None
    reporting_term: Optional[str] = None
    charge: Optional[Decimal] = None
    credit: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class InstructorResponse:
    response_status: Optional[ResponseStatus] = None
    regent_id: int = 0
    regent_login: Optional[str] = None
    preferred_name: Optional[str] = None
    first_name: Optional[str] = None
    last_name: Optional[str] = None
    full_name: Optional[str] = None
    email: Optional[str] = None
    image_base64: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DocumentResponse:
    code: Optional[str] = None
    document_name: Optional[str] = None
    document_description: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SectionResponse:
    response_status: Optional[ResponseStatus] = None
    sec_u_u_i_d: Optional[str] = None
    course_name: Optional[str] = None
    section_code: Optional[str] = None
    course_title: Optional[str] = None
    course_short_title: Optional[str] = None
    course_description: Optional[str] = None
    crosslist_description: Optional[str] = None
    crosslist_course_name: Optional[str] = None
    location_long_name: Optional[str] = None
    room: Optional[str] = None
    instructors: Optional[List[InstructorResponse]] = None
    required_documents: Optional[List[DocumentResponse]] = None
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    first_meeting_date: Optional[datetime.datetime] = None
    last_meeting_date: Optional[datetime.datetime] = None
    meeting_days: Optional[str] = None
    start_times: Optional[List[str]] = None
    end_times: Optional[List[str]] = None
    is_online_only: bool = False
    is_weekend: bool = False
    is_weekday: bool = False
    is_evening: bool = False
    is_waitlist: bool = False
    has_special_requirements: bool = False
    special_requirements: Optional[str] = None
    is_unlisted: bool = False
    credit_amounts: Optional[List[Decimal]] = None
    audit_amounts: Optional[List[Decimal]] = None
    audits_short_name: Optional[str] = None
    audits_long_name: Optional[str] = None
    credits_short_name: Optional[str] = None
    credits_long_name: Optional[str] = None
    distance_ed_materials: Optional[str] = None
    prerequisites: Optional[str] = None
    corequisites: Optional[str] = None
    capacity: Optional[int] = None
    flat_fee_amount: Optional[Decimal] = None
    additional_fee_amount: Optional[Decimal] = None
    registered_students: int = 0
    three_credit_plus: int = 0
    two_credit: int = 0
    one_credit: int = 0
    three_audit_plus: int = 0
    two_audit: int = 0
    one_audit: int = 0
    crosslist_registered_students: int = 0
    grades_received: int = 0
    crosslist_grades_received: int = 0
    registration_start_date: Optional[datetime.datetime] = None
    registration_end_date: Optional[datetime.datetime] = None
    add_start_date: Optional[datetime.datetime] = None
    add_end_date: Optional[datetime.datetime] = None
    drop_start_date: Optional[datetime.datetime] = None
    drop_end_date: Optional[datetime.datetime] = None
    grading_end_date: Optional[datetime.datetime] = None
    term: Optional[str] = None
    reporting_term: Optional[str] = None
    reporting_year: int = 0
    current_status: Optional[str] = None
    added_by: Optional[str] = None
    added_date: Optional[datetime.datetime] = None
    changed_by: Optional[str] = None
    changed_date: Optional[datetime.datetime] = None
    timestamp: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentSectionResponse(SectionResponse):
    student_section_u_u_i_d: Optional[str] = None
    registered_amount: Decimal = decimal.Decimal(0)
    is_provisional: bool = False
    is_audit: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StudentSectionInvoiceItemResponse(InvoiceItemResponse):
    student_section: Optional[StudentSectionResponse] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingPlanInvoiceItemGroupResponse:
    name: Optional[str] = None
    description: Optional[str] = None
    rate_code: Optional[str] = None
    rate_description: Optional[str] = None
    total_charges: Optional[Decimal] = None
    total_credits: Optional[Decimal] = None
    student_section_invoice_items: Optional[List[StudentSectionInvoiceItemResponse]] = None
    invoice_items: Optional[List[InvoiceItemResponse]] = None
    other_invoice_items: Optional[List[InvoiceItemResponse]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingPlanTermResponse:
    reporting_term: Optional[str] = None
    term_name: Optional[str] = None
    due_date: Optional[datetime.datetime] = None
    total_charges: Optional[Decimal] = None
    total_credits: Optional[Decimal] = None
    invoice_item_groups: Optional[List[RegistrationBillingPlanInvoiceItemGroupResponse]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RegistrationBillingPlanResponse:
    transaction_uuid: Optional[str] = None
    uuid: Optional[str] = None
    regent_id: int = 0
    reporting_term: Optional[str] = None
    total_charges: Optional[Decimal] = None
    total_credits: Optional[Decimal] = None
    terms: Optional[List[RegistrationBillingPlanTermResponse]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DropRegistrationSubmitRequest:
    student_section_uuid: Optional[str] = None
    tuition_refund_amount: Decimal = decimal.Decimal(0)
    description: Optional[str] = None
    additional_rate_id: Optional[int] = None
    additional_rate_amount: Optional[Decimal] = None
    benefit_rate_id: Optional[int] = None
    second_benefit_rate_id: Optional[int] = None
    benefit_charge_amount: Optional[Decimal] = None
    second_benefit_charge_amount: Optional[Decimal] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DropRegistrationsBillingPlanPreviewRequest:
    transaction_uuid: Optional[str] = None
    uuid: Optional[str] = None
    reporting_term: Optional[str] = None
    registrations: Optional[List[DropRegistrationSubmitRequest]] = None
    description: Optional[str] = None
    drop_fee: Optional[Decimal] = None
    drop_description: Optional[str] = None
    refund_student_fees: bool = False
    authorizing_uuid: Optional[str] = None

Python DropRegistrationsBillingPlanPreviewRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Registration/{uuid}/Drop/{reporting_term}/BillingPlanPreview HTTP/1.1 
Host: data.regent-college.edu 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	transaction_uuid: String,
	uuid: String,
	reporting_term: String,
	registrations: 
	[
		{
			student_section_uuid: String,
			tuition_refund_amount: 0,
			description: String,
			additional_rate_id: 0,
			additional_rate_amount: 0,
			benefit_rate_id: 0,
			second_benefit_rate_id: 0,
			benefit_charge_amount: 0,
			second_benefit_charge_amount: 0
		}
	],
	description: String,
	drop_fee: 0,
	drop_description: String,
	refund_student_fees: False,
	authorizing_uuid: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	transaction_uuid: String,
	uuid: String,
	regent_id: 0,
	reporting_term: String,
	total_charges: 0,
	total_credits: 0,
	terms: 
	[
		{
			reporting_term: String,
			term_name: String,
			due_date: 0001-01-01,
			total_charges: 0,
			total_credits: 0,
			invoiceItemGroups: 
			[
				{
					name: String,
					description: String,
					rate_code: String,
					rate_description: String,
					total_charges: 0,
					total_credits: 0,
					studentSectionInvoiceItems: 
					[
						{
							studentSection: 
							{
								studentSectionUUID: String,
								registered_amount: 0,
								is_provisional: False,
								is_audit: False,
								responseStatus: 
								{
									errorCode: String,
									message: String,
									stackTrace: String,
									errors: 
									[
										{
											errorCode: String,
											fieldName: String,
											message: String,
											meta: 
											{
												String: String
											}
										}
									],
									meta: 
									{
										String: String
									}
								},
								secUUID: String,
								course_name: String,
								section_code: String,
								course_title: String,
								course_short_title: String,
								course_description: String,
								crosslist_description: String,
								crosslist_course_name: String,
								location_long_name: String,
								room: String,
								instructors: 
								[
									{
										responseStatus: 
										{
											errorCode: String,
											message: String,
											stackTrace: String,
											errors: 
											[
												{
													errorCode: String,
													fieldName: String,
													message: String,
													meta: 
													{
														String: String
													}
												}
											],
											meta: 
											{
												String: String
											}
										},
										regent_id: 0,
										regent_login: String,
										preferred_name: String,
										first_name: String,
										last_name: String,
										full_name: String,
										email: String,
										image_base64: String
									}
								],
								required_documents: 
								[
									{
										code: String,
										document_name: String,
										document_description: String
									}
								],
								start_date: 0001-01-01,
								end_date: 0001-01-01,
								first_meeting_date: 0001-01-01,
								last_meeting_date: 0001-01-01,
								meeting_days: String,
								start_times: 
								[
									String
								],
								end_times: 
								[
									String
								],
								is_online_only: False,
								is_weekend: False,
								is_weekday: False,
								is_evening: False,
								is_waitlist: False,
								has_special_requirements: False,
								special_requirements: String,
								is_unlisted: False,
								credit_amounts: 
								[
									0
								],
								audit_amounts: 
								[
									0
								],
								audits_short_name: String,
								audits_long_name: String,
								credits_short_name: String,
								credits_long_name: String,
								distance_ed_materials: String,
								prerequisites: String,
								corequisites: String,
								capacity: 0,
								flat_fee_amount: 0,
								additional_fee_amount: 0,
								registered_students: 0,
								three_credit_plus: 0,
								two_credit: 0,
								one_credit: 0,
								three_audit_plus: 0,
								two_audit: 0,
								one_audit: 0,
								crosslist_registered_students: 0,
								grades_received: 0,
								crosslist_grades_received: 0,
								registration_start_date: 0001-01-01,
								registration_end_date: 0001-01-01,
								add_start_date: 0001-01-01,
								add_end_date: 0001-01-01,
								drop_start_date: 0001-01-01,
								drop_end_date: 0001-01-01,
								grading_end_date: 0001-01-01,
								term: String,
								reporting_term: String,
								reporting_year: 0,
								current_status: String,
								added_by: String,
								added_date: 0001-01-01,
								changed_by: String,
								changed_date: 0001-01-01,
								timestamp: 0001-01-01
							},
							responseStatus: 
							{
								errorCode: String,
								message: String,
								stackTrace: String,
								errors: 
								[
									{
										errorCode: String,
										fieldName: String,
										message: String,
										meta: 
										{
											String: String
										}
									}
								],
								meta: 
								{
									String: String
								}
							},
							invoiceItemUUID: String,
							rate_id: 0,
							rate_code: String,
							rate_description: String,
							reporting_term: String,
							charge: 0,
							credit: 0
						}
					],
					invoiceItems: 
					[
						{
							responseStatus: 
							{
								errorCode: String,
								message: String,
								stackTrace: String,
								errors: 
								[
									{
										errorCode: String,
										fieldName: String,
										message: String,
										meta: 
										{
											String: String
										}
									}
								],
								meta: 
								{
									String: String
								}
							},
							invoiceItemUUID: String,
							rate_id: 0,
							rate_code: String,
							rate_description: String,
							reporting_term: String,
							charge: 0,
							credit: 0
						}
					],
					otherInvoiceItems: 
					[
						{
							responseStatus: 
							{
								errorCode: String,
								message: String,
								stackTrace: String,
								errors: 
								[
									{
										errorCode: String,
										fieldName: String,
										message: String,
										meta: 
										{
											String: String
										}
									}
								],
								meta: 
								{
									String: String
								}
							},
							invoiceItemUUID: String,
							rate_id: 0,
							rate_code: String,
							rate_description: String,
							reporting_term: String,
							charge: 0,
							credit: 0
						}
					]
				}
			]
		}
	]
}