profile=COMFORT,
_d="Steuerkategorie (Wert)",
)
- applicable_percent = DecimalField(
- NS_RAM, "ApplicablePercent", required=True, profile=BASIC
+ rate_applicable_percent = DecimalField(
+ NS_RAM, "RateApplicablePercent", required=True, profile=BASIC
)
class Meta:
profile=EXTENDED,
_d="Grund der Steuerbefreiung (Code)",
)
+ tax_point_date = DateTimeField(
+ NS_RAM,
+ "TaxPointDate",
+ required=False,
+ profile=COMFORT
+ )
+ due_date_type_code = StringField(
+ NS_RAM,
+ "DueDateTypeCode",
+ required=False,
+ profile=BASIC,
+ )
basis_amount = DecimalField(
NS_RAM,
"BasisAmount",
id = StringField(
NS_RAM, "ID", required=True, profile=EXTENDED, _d="Buchungsreferenz"
)
+ type_code = StringField(
+ NS_RAM, "TypeCode", required=True, profile=EXTENDED
+ )
class Meta:
namespace = NS_RAM
tax_total_other_currency = MultiCurrencyField(
NS_RAM, "TaxTotalAmount", profile=EXTENDED, _d="Steuergesamtbetrag"
)
+ rounding_amount = DecimalField(
+ NS_RAM, "RoundingAmount", required=False, profile=COMFORT,
+ )
grand_total = CurrencyField(
NS_RAM, "GrandTotalAmount", required=True, profile=BASIC, _d="Bruttosumme"
)
class AppliedTradeTax(Element):
type_code = StringField(NS_RAM, "TypeCode", required=True, profile=COMFORT)
category_code = StringField(NS_RAM, "CategoryCode", required=True, profile=COMFORT)
- rate_applicable_percent = StringField(
+ rate_applicable_percent = DecimalField(
NS_RAM, "RateApplicablePercent", required=True, profile=COMFORT
)
profile=EXTENDED,
_d="Berechnungsreihenfolge",
)
- calculation_percent = DecimalField(
+ calculation_percent = DecimalField( # TODO: Should be deprecated?
NS_RAM,
"CalculationPercent",
required=False,
profile=EXTENDED,
_d="Rabatt in Prozent",
)
- basis_amount = DecimalField(
+ basis_amount = DecimalField( # TODO: Should be deprecated?
NS_RAM,
"BasisAmount",
required=False,
tag = "SpecifiedLogisticsTransportMovement"
-class SupplyChainConsignment(Element):
+class SupplyChainConsignment(Element): # TODO: Deprecated?
movement = Field(LogisticsTransportMovement, required=False, profile=EXTENDED)
class Meta:
postcode = StringField(NS_RAM, "PostcodeCode", required=False, profile=BASIC)
line_one = StringField(NS_RAM, "LineOne", required=False, profile=BASIC)
line_two = StringField(NS_RAM, "LineTwo", required=False, profile=BASIC)
+ line_three = StringField(NS_RAM, "LineThree", required=False, profile=BASIC)
city_name = StringField(NS_RAM, "CityName", required=False, profile=BASIC)
+ country_subdivision = StringField(NS_RAM, "CountrySubDivisionName", required=False, profile=EXTENDED)
country_id = StringField(NS_RAM, "CountryID", required=False, profile=BASIC)
class Meta:
_d="Globaler Identifier des Verkäufers",
)
name = StringField(NS_RAM, "Name", required=False, profile=BASIC)
+ # TODO: SpecifiedLegalOrganization
description = StringField(
NS_RAM,
"Description",
tag = "PayeeTradeParty"
+class InvoicerTradeParty(TradeParty):
+ class Meta:
+ namespace = NS_RAM
+ tag = "InvoicerTradeParty"
+
+
class InvoiceeTradeParty(TradeParty):
class Meta:
namespace = NS_RAM
)
+class FinancialCard(Element):
+ id = StringField(NS_RAM, "ID")
+ cardholder_name = StringField(NS_RAM, "CardholderName")
+
+ class Meta:
+ namespace = NS_RAM
+ tag = "ApplicableTradeSettlementFinancialCard"
+
+
class PayerFinancialAccount(Element):
iban = StringField(NS_RAM, "IBANID")
tag = "PayeePartyCreditorFinancialAccount"
-class PayerFinancialInstitution(Element):
- bic = StringField(NS_RAM, "BICID")
-
- class Meta:
- namespace = NS_RAM
- tag = "PayerSpecifiedDebtorFinancialInstitution"
-
-
class PayeeFinancialInstitution(Element):
bic = StringField(NS_RAM, "BICID")
information = MultiStringField(
NS_RAM, "Information", required=False, profile=COMFORT
)
+ financial_card = Field(FinancialCard)
payer_account = Field(PayerFinancialAccount)
- payer_institution = Field(PayerFinancialInstitution)
payee_account = Field(PayeeFinancialAccount)
payee_institution = Field(PayeeFinancialInstitution)
issuer_assigned_id = StringField(
NS_RAM, "IssuerAssignedID", required=False, profile=COMFORT
)
+ uri_id = StringField(NS_RAM, "URIID", required=False, profile=EXTENDED)
line_id = StringField(NS_RAM, "LineID", required=False, profile=EXTENDED)
+ type_code = StringField(
+ NS_RAM, "TypeCode", required=False, profile=EXTENDED
+ )
+ name = StringField(
+ NS_RAM, "Name", required=False, profile=EXTENDED
+ )
date_time_string = DirectDateTimeField(
- NS_RAM, "DateTimeString", required=False, profile=COMFORT
+ NS_RAM, "FormattedIssueDateTime", required=False, profile=COMFORT
)
reference_type_code = StringField(
NS_RAM, "ReferenceTypeCode", profile=EXTENDED, required=True
)
+ # todo: AttachmentBinaryObject
class Meta:
namespace = NS_RAM
)
from .delivery import TradeDelivery
from .elements import Element
-from .fields import DecimalField, Field, MultiField, StringField
+from .fields import DecimalField, Field, MultiField, StringField, DateTimeField
from .party import (
BuyerTradeParty,
EndUserTradeParty,
InvoiceeTradeParty,
PayeeTradeParty,
SellerTradeParty,
- SellerTaxRepresentativeTradeParty,
+ SellerTaxRepresentativeTradeParty, InvoicerTradeParty,
)
from .payment import PaymentMeans, PaymentTerms, TaxApplicableTradeCurrencyExchange
from .references import (
AdditionalReferencedDocument,
- BuyerOrderReferencedDocument,
ContractReferencedDocument,
UltimateCustomerOrderReferencedDocument,
ProcuringProjectType,
- InvoiceReferencedDocument,
+ InvoiceReferencedDocument, BuyerOrderReferencedDocument,
)
from .tradelines import LineItem
EndUserTradeParty, required=False, _d="Abweichender Endverbraucher"
)
delivery_terms = Field(DeliveryTerms, required=False, profile=EXTENDED)
- buyer_order = Field(BuyerOrderReferencedDocument, required=False, profile=COMFORT)
+ seller_order = Field(SellerOrderReferencedDocument, required=False, profile=COMFORT)
+ buyer_order = Field(BuyerOrderReferencedDocument, required=False)
customer_order = Field(
UltimateCustomerOrderReferencedDocument, required=False, profile=COMFORT
)
contract = Field(ContractReferencedDocument, required=False, profile=COMFORT)
- order_document = Field(SellerOrderReferencedDocument, required=False)
additional_references = MultiField(
AdditionalReferencedDocument, required=False, profile=COMFORT
)
tag = "SpecifiedLogisticsServiceCharge"
+class IncludedTradeTax(Element):
+ calculated_amount = DecimalField(
+ NS_RAM, "CalculatedAmount", required=True, profile=BASIC, _d="Steuerbetrag"
+ )
+ type_code = StringField(
+ NS_RAM, "TypeCode", required=True, profile=BASIC, _d="Steuerart (Code)"
+ )
+ exemption_reason = StringField(
+ NS_RAM,
+ "ExemptionReason",
+ required=False,
+ profile=COMFORT,
+ _d="Grund der Steuerbefreiung (Freitext)",
+ )
+ exemption_reason_code = StringField(
+ NS_RAM,
+ "ExemptionReasonCode",
+ required=False,
+ profile=EXTENDED,
+ _d="Grund der Steuerbefreiung (Code)",
+ )
+ category_code = StringField(
+ NS_RAM,
+ "CategoryCode",
+ required=False,
+ profile=COMFORT,
+ _d="Steuerkategorie (Wert)",
+ )
+ rate_applicable_percent = DecimalField(
+ NS_RAM, "RateApplicablePercent", required=True, profile=BASIC
+ )
+
+ class Meta:
+ namespace = NS_RAM
+ tag = "IncludedTradeTax"
+
+
+class AdvancePayment(Element):
+ paid_amount = DecimalField(NS_RAM, "PaidAmount")
+ received_date = DateTimeField(NS_RAM, "FormattedReceivedDateTime")
+ included_trade_tax = MultiField(IncludedTradeTax)
+
+ class Meta:
+ namespace = NS_RAM
+ tag = "SpecifiedAdvancePayment"
+
+
class TradeSettlement(Element):
- creditor_reference_ID = StringField(NS_RAM, "CreditorReferenceID")
+ creditor_reference_id = StringField(NS_RAM, "CreditorReferenceID")
payment_reference = StringField(NS_RAM, "PaymentReference")
tax_currency_code = StringField(
NS_RAM, "TaxCurrencyCode", required=False, profile=COMFORT
)
currency_code = StringField(NS_RAM, "InvoiceCurrencyCode")
+ issuer_reference = StringField(NS_RAM, "InvoiceIssuerReference", profile=EXTENDED)
+ invoicer = Field(
+ InvoicerTradeParty, required=False, profile=COMFORT, _d="Rechnungsaussteller"
+ )
invoicee = Field(
InvoiceeTradeParty, required=False, profile=COMFORT, _d="Rechnungsempfänger"
)
profile=EXTENDED,
_d="Detailinformationen zur Buchungsreferenz",
)
+ advance_payment = MultiField(
+ AdvancePayment, required=False, profile=EXTENDED
+ )
invoice_referenced_document = Field(
InvoiceReferencedDocument, required=False, profile=BASIC
)
)
from .delivery import SupplyChainEvent
from .elements import Element
-from .fields import DecimalField, Field, MultiField, QuantityField, StringField
+from .fields import DecimalField, Field, MultiField, QuantityField, StringField, DateTimeField
from .note import IncludedNote
from .party import ShipToTradeParty, UltimateShipToTradeParty
from .product import TradeProduct
basis_quantity = QuantityField(
NS_RAM, "BasisQuantity", required=False, profile=COMFORT, _d="Preisbasismenge"
)
+ # TODO: IncludedTradeTax missing
class Meta:
namespace = NS_RAM
class LineDocument(Element):
line_id = StringField(NS_RAM, "LineID")
+ line_status_code = StringField(NS_RAM, "LineStatusCode")
+ line_status_reason_code = StringField(NS_RAM, "LineStatusReasonCode")
notes = MultiField(IncludedNote)
class Meta:
class LineSettlement(Element):
trade_tax = Field(ApplicableTradeTax, required=False, profile=COMFORT)
- accounting_account = Field(
- AccountingAccount, required=False, profile=EXTENDED, _d="Kostenstelle"
- )
period = Field(BillingSpecifiedPeriod, required=False, profile=COMFORT)
allowance_charge = MultiField(
TradeAllowanceCharge,
invoice_referenced_document = Field(
InvoiceReferencedDocument, required=False, profile=EXTENDED
)
+ additional_referenced_document = Field(
+ LineAdditionalReferencedDocument, required=False, profile=EXTENDED
+ )
accounting_account = Field(
ReceivableAccountingAccount,
required=False,