All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sap.cloud.sdk.s4hana.datamodel.bapi.structures.TaxItem Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2020 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_CALC_DT_FROM *
     *  Type element: FOT_TXDAT_FROM
     *  Domain name: 
     *  Internal type: DATS
     *  Description: Valid-From Date of the Tax Rate
     *  Max length: 8
     * 
* */ @ElementName("TAX_CALC_DT_FROM") @Nullable private LocalDate taxCalcDtFrom; /** * 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