
com.sap.cloud.sdk.s4hana.datamodel.bapi.structures.TaxItem Maven / Gradle / Ivy
/*
* Copyright (c) 2018 SAP SE or an SAP affiliate company. All rights reserved.
*/
package com.sap.cloud.sdk.s4hana.datamodel.bapi.structures;
import java.time.LocalDate;
import javax.annotation.Nullable;
import com.sap.cloud.sdk.result.ElementName;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.AccountingDocumentLineItemNumber;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.ConditionType;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.DocumentItemNumberReferingToTaxDocument;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.GeneralLedgerAccount;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.TaxJurisdiction;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.TaxJurisdictionCodeJurisdictionForLowestLevelTax;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.TaxOnSalesPurchasesCode;
import com.sap.cloud.sdk.s4hana.datamodel.bapi.types.TaxRate;
import com.sap.cloud.sdk.s4hana.serialization.ErpBoolean;
import lombok.Builder;
import lombok.Data;
/**
* Tax item
*
* Structure: BAPIACTX09
*
*
*/
@Builder
@Data
public class TaxItem {
/**
* Field name: ACCT_KEY
*
* Type element: KTOSL
* Domain name: CHAR3
* Internal type: CHAR
* Description: Transaction Key
* Max length: 3
*
*
*/
@ElementName("ACCT_KEY")
@Nullable
private String acctKey;
/**
* Field name: COND_KEY
*
* Type element: KSCHL
* Domain name: KSCHL
* Internal type: CHAR
* Description: Condition Type
* Max length: 4
*
*
*/
@ElementName("COND_KEY")
@Nullable
private ConditionType condKey;
/**
* Field name: DIRECT_TAX
*
* Type element: BAPI_FLG_DIR
* Domain name: XFELD
* Internal type: CHAR
* Description: Indicator: Direct Tax Posting
* Max length: 1
*
*
*/
@ElementName("DIRECT_TAX")
@Nullable
private ErpBoolean directTax;
/**
* Field name: GL_ACCOUNT
*
* Type element: HKONT
* Domain name: SAKNR
* Internal type: CHAR
* Description: General Ledger Account
* Max length: 10
*
*
*/
@ElementName("GL_ACCOUNT")
@Nullable
private GeneralLedgerAccount glAccount;
/**
* Field name: ITEMNO_ACC
*
* Type element: POSNR_ACC
* Domain name: POSNR_ACC
* Internal type: NUMC
* Description: Accounting Document Line Item Number
* Max length: 10
*
*
*/
@ElementName("ITEMNO_ACC")
@Nullable
private AccountingDocumentLineItemNumber itemnoAcc;
/**
* Field name: ITEMNO_TAX
*
* Type element: TAXPS
* Domain name: NUM6
* Internal type: NUMC
* Description: Document item number refering to tax document.
* Max length: 6
*
*
*/
@ElementName("ITEMNO_TAX")
@Nullable
private DocumentItemNumberReferingToTaxDocument itemnoTax;
/**
* Field name: TAXJURCODE
*
* Type element: TXJCD
* Domain name: TXJCD
* Internal type: CHAR
* Description: Tax Jurisdiction
* Max length: 15
*
*
*/
@ElementName("TAXJURCODE")
@Nullable
private TaxJurisdiction taxjurcode;
/**
* Field name: TAXJURCODE_DEEP
*
* Type element: ACPI_TXJCD_DEEP
* Domain name: TXJCD
* Internal type: CHAR
* Description: Tax jurisdiction code - jurisdiction for lowest level tax
* Max length: 15
*
*
*/
@ElementName("TAXJURCODE_DEEP")
@Nullable
private TaxJurisdictionCodeJurisdictionForLowestLevelTax taxjurcodeDeep;
/**
* Field name: TAXJURCODE_LEVEL
*
* Type element: ACPI_TXJCD_LEVEL
* Domain name: CHAR1
* Internal type: CHAR
* Description: Tax Jurisdiction Code Level
* Max length: 1
*
*
*/
@ElementName("TAXJURCODE_LEVEL")
@Nullable
private String taxjurcodeLevel;
/**
* Field name: TAX_CODE
*
* Type element: MWSKZ
* Domain name: MWSKZ
* Internal type: CHAR
* Description: Tax on Sales/Purchases Code
* Max length: 2
*
*
*/
@ElementName("TAX_CODE")
@Nullable
private TaxOnSalesPurchasesCode taxCode;
/**
* Field name: TAX_DATE
*
* Type element: ACPI_TXDAT
* Domain name: DATUM
* Internal type: DATS
* Description: Date Relevant for Determining the Tax Rate
* Max length: 8
*
*
*/
@ElementName("TAX_DATE")
@Nullable
private LocalDate taxDate;
/**
* Field name: TAX_RATE
*
* Type element: MSATZ_F05L
* Domain name: PRZ43V
* Internal type: DEC
* Description: Tax rate
* Max length: 4
*
*
*/
@ElementName("TAX_RATE")
@Nullable
private TaxRate taxRate;
public void validate()
throws IllegalArgumentException
{
if ((acctKey!= null)&&(acctKey.length()> 3)) {
throw new IllegalArgumentException("Bapi method parameter \"acctKey\" contains an invalid structure. Structure attribute \"ACCT_KEY\" / Function parameter \"acctKey\" must have at most 3 characters. The given value is too long.");
}
if ((taxjurcodeLevel!= null)&&(taxjurcodeLevel.length()> 1)) {
throw new IllegalArgumentException("Bapi method parameter \"taxjurcodeLevel\" contains an invalid structure. Structure attribute \"TAXJURCODE_LEVEL\" / Function parameter \"taxjurcodeLevel\" must have at most 1 characters. The given value is too long.");
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy