public class InvoiceDOM extends Object
Modifier and Type | Field and Description |
---|---|
static CountryCode |
COUNTRY_CODE |
static CurrencyCode |
CURR_CODE |
static NumberChecker |
DEC2 |
static NumberChecker |
DEC4 |
static DateFormatCode |
DF_CODE |
protected Document |
doc |
static GlobalIdentifierCode |
GI_CODE |
static MeasurementUnitCode |
M_UNIT_CODE |
static PaymentMeansCode |
PM_CODE |
static TaxCategoryCode |
TC_CODE |
static TaxIDTypeCode |
TIDT_CODE |
static TaxTypeCode |
TT_CODE |
Constructor and Description |
---|
InvoiceDOM(BasicProfile data)
Creates an object that will import data into an XML template.
|
Modifier and Type | Method and Description |
---|---|
protected void |
check(String s, String message)
Checks if a string is empty and throws a DataIncompleteException if so.
|
protected void |
importAppliedTradeAllowanceCharge(Element parent, boolean indicator, String actualAmount, String currencyID, String reason)
Imports applied trade allowance charge data (line items).
|
protected void |
importBuyerTradeParty(Element parent, BasicProfile data)
Gets the buyer trade party data to import this data.
|
protected void |
importContent(Element parent, String tag, String content, String... attributes)
Helper method to set the content of a tag.
|
protected void |
importDateTime(Element parent, String tag, String dateTimeFormat, Date dateTime)
Set the content of a date tag along with the attribute that defines the format.
|
protected void |
importHeaderExchangedDocument(Element element, BasicProfile data)
Imports the data for the following tag: rsm:HeaderExchangedDocument
|
protected void |
importIncludedNotes(Element parent, int level, String[][] notes, String[] notesCodes)
Includes notes and (in case of the COMFORT profile) the subject codes for those notes.
|
protected void |
importInvoiceeTradeParty(Element parent, ComfortProfile data)
Gets the invoicee party data to import this data.
|
protected void |
importLineItemBasic(Element parent, String quantity, String code, String name)
Imports the data for a line item (basic profile)
|
protected void |
importLineItemComfort(Element parent, String lineID, String[][] note, String grossPriceChargeAmount, String grossPriceChargeAmountCurrencyID, String grossPriceBasisQuantity, String grossPriceBasisQuantityCode, Boolean[] grossPriceTradeAllowanceChargeIndicator, String[] grossPriceTradeAllowanceChargeActualAmount, String[] grossPriceTradeAllowanceChargeActualAmountCurrencyID, String[] grossPriceTradeAllowanceChargeReason, String netPriceChargeAmount, String netPriceChargeAmountCurrencyID, String netPriceBasisQuantity, String netPriceBasisQuantityCode, String billedQuantity, String billedQuantityCode, String[] settlementTaxTypeCode, String[] settlementTaxExemptionReason, String[] settlementTaxCategoryCode, String[] settlementTaxApplicablePercent, String totalAmount, String totalAmountCurrencyID, String specifiedTradeProductGlobalID, String specifiedTradeProductSchemeID, String specifiedTradeProductSellerAssignedID, String specifiedTradeProductBuyerAssignedID, String specifiedTradeProductName, String specifiedTradeProductDescription)
Imports line item data (comfort profile).
|
protected void |
importLineItemsBasic(Element parent, BasicProfile data)
Gets line data to import the this data (basic profile).
|
protected void |
importLineItemsComfort(Element parent, ComfortProfile data)
Gets line item data to import the this data (comfort profile).
|
protected void |
importPaymentMeans(Element parent, BasicProfile data)
Gets the payment means data to imports this data.
|
protected void |
importPaymentMeans(Element parent, String typeCode, String[] information, String id, String scheme, String payerIban, String payerProprietaryID, String iban, String accName, String accID, String payerBic, String payerBank, String payerInst, String bic, String bank, String inst)
Imports payment means data.
|
protected void |
importSellerTradeParty(Element parent, BasicProfile data)
Gets the seller trade party data to import this data.
|
protected void |
importSpecifiedExchangedDocumentContext(Element element, BasicProfile data)
Imports the data for the following tag: rsm:SpecifiedExchangedDocumentContext
|
protected void |
importSpecifiedLogisticsServiceCharge(Element parent, ComfortProfile data)
Gets specified logistics service charge data to import the this data.
|
protected void |
importSpecifiedLogisticsServiceCharge(Element parent, String[] description, String appliedAmount, String currencyID, String[] typeCode, String[] categoryCode, String[] percent)
Imports specified logistics service charge data.
|
protected void |
importSpecifiedSupplyChainTradeTransaction(Element element, BasicProfile data)
Imports the data for the following tag: rsm:SpecifiedSupplyChainTradeTransaction
|
protected void |
importSpecifiedTradeAllowanceCharge(Element parent, boolean indicator, String actualAmount, String actualAmountCurrency, String reason, String[] typeCode, String[] categoryCode, String[] percent)
Imports specified trade allowance charge.
|
protected void |
importSpecifiedTradeAllowanceCharge(Element parent, ComfortProfile data)
Gets specified trade allowance charge data to import the this data.
|
protected void |
importSpecifiedTradePaymentTerms(Element parent, ComfortProfile data)
Gets specified trade payment terms data to import the this data.
|
protected void |
importSpecifiedTradePaymentTerms(Element parent, String[] description, Date dateTime, String dateTimeFormat)
Imports specified trade payment terms.
|
protected void |
importTax(Element parent, BasicProfile data)
Gets tax data to import the this data.
|
protected void |
importTax(Element parent, String typeCode, String exemptionReason, String category, String percent)
Imports tax data.
|
protected void |
importTax(Element parent, String calculatedAmount, String currencyID, String typeCode, String exemptionReason, String basisAmount, String basisAmountCurr, String category, String percent)
Imports tax data.
|
protected void |
importTradeParty(Element parent, String id, String[] globalID, String[] globalIDScheme, String name, String postcode, String lineOne, String lineTwo, String cityName, String countryID, String[] taxRegistrationID, String[] taxRegistrationSchemeID)
Imports trade party information (could be seller, buyer or invoicee).
|
protected static void |
removeEmptyNodes(Node node)
It is forbidden for a ZUGFeRD XML to contain empty tags, hence we use this method recursively to remove empty nodes.
|
byte[] |
toXML()
Exports the Document as an XML file.
|
public static final CountryCode COUNTRY_CODE
public static final CurrencyCode CURR_CODE
public static final DateFormatCode DF_CODE
public static final GlobalIdentifierCode GI_CODE
public static final MeasurementUnitCode M_UNIT_CODE
public static final NumberChecker DEC2
public static final NumberChecker DEC4
public static final PaymentMeansCode PM_CODE
public static final TaxCategoryCode TC_CODE
public static final TaxIDTypeCode TIDT_CODE
public static final TaxTypeCode TT_CODE
protected final Document doc
public InvoiceDOM(BasicProfile data) throws ParserConfigurationException, SAXException, IOException, DataIncompleteException, InvalidCodeException
data
- If this is an instance of BASICInvoice, the BASIC profile will be used; If this is an instance of COMFORTInvoice, the COMFORT profile will be used.
ParserConfigurationException
SAXException
IOException
DataIncompleteException
InvalidCodeException
protected void importSpecifiedExchangedDocumentContext(Element element, BasicProfile data)
element
- the rsm:SpecifiedExchangedDocumentContext element
data
- the invoice data
protected void importHeaderExchangedDocument(Element element, BasicProfile data) throws DataIncompleteException, InvalidCodeException
element
- the rsm:HeaderExchangedDocument element
data
- the invoice data
DataIncompleteException
InvalidCodeException
protected void importContent(Element parent, String tag, String content, String... attributes)
parent
- the parent element of the tag
tag
- the tag for which we want to set the content
content
- the new content for the tag
attributes
- a sequence of attributes of which the odd elements are keys, the even elements the corresponding value.
protected void importDateTime(Element parent, String tag, String dateTimeFormat, Date dateTime) throws InvalidCodeException
parent
- the parent element that holds the date tag
tag
- the date tag we want to change
dateTimeFormat
- the format that will be used as an attribute
dateTime
- the actual date
InvalidCodeException
protected void importIncludedNotes(Element parent, int level, String[][] notes, String[] notesCodes) throws DataIncompleteException, InvalidCodeException
parent
- the parent element of the tag we want to change
level
- the level where the notices are added (header or line)
notes
- array of notes
notesCodes
- array of codes for the notes. If not null, notes and notesCodes need to have an equal number of elements.
DataIncompleteException
InvalidCodeException
protected void importSpecifiedSupplyChainTradeTransaction(Element element, BasicProfile data) throws DataIncompleteException, InvalidCodeException
element
-
data
- the invoice data
DataIncompleteException
InvalidCodeException
protected void importSellerTradeParty(Element parent, BasicProfile data) throws DataIncompleteException, InvalidCodeException
parent
- the parent element
data
- the data
DataIncompleteException
InvalidCodeException
protected void importBuyerTradeParty(Element parent, BasicProfile data) throws DataIncompleteException, InvalidCodeException
parent
- the parent element
data
- the data
DataIncompleteException
InvalidCodeException
protected void importInvoiceeTradeParty(Element parent, ComfortProfile data) throws DataIncompleteException, InvalidCodeException
parent
- the parent element
data
- the data
DataIncompleteException
InvalidCodeException
protected void importTradeParty(Element parent, String id, String[] globalID, String[] globalIDScheme, String name, String postcode, String lineOne, String lineTwo, String cityName, String countryID, String[] taxRegistrationID, String[] taxRegistrationSchemeID) throws DataIncompleteException, InvalidCodeException
parent
- the parent element
id
-
globalID
-
globalIDScheme
-
name
-
postcode
-
lineOne
-
lineTwo
-
countryID
-
cityName
-
taxRegistrationID
-
taxRegistrationSchemeID
-
DataIncompleteException
InvalidCodeException
protected void importPaymentMeans(Element parent, BasicProfile data) throws InvalidCodeException
parent
- the parent element
data
- the data
InvalidCodeException
protected void importPaymentMeans(Element parent, String typeCode, String[] information, String id, String scheme, String payerIban, String payerProprietaryID, String iban, String accName, String accID, String payerBic, String payerBank, String payerInst, String bic, String bank, String inst) throws InvalidCodeException
parent
- the parent element
typeCode
-
information
-
id
-
scheme
-
payerIban
-
payerProprietaryID
-
iban
-
accID
-
accName
-
payerBic
-
payerBank
-
inst
-
bic
-
bank
-
payerInst
-
InvalidCodeException
protected void importTax(Element parent, BasicProfile data) throws InvalidCodeException, DataIncompleteException
parent
- the parent element
data
- the data
DataIncompleteException
InvalidCodeException
protected void importTax(Element parent, String calculatedAmount, String currencyID, String typeCode, String exemptionReason, String basisAmount, String basisAmountCurr, String category, String percent) throws InvalidCodeException, DataIncompleteException
parent
-
calculatedAmount
-
currencyID
-
typeCode
-
exemptionReason
-
basisAmount
-
basisAmountCurr
-
category
-
percent
-
InvalidCodeException
DataIncompleteException
protected void importSpecifiedTradeAllowanceCharge(Element parent, ComfortProfile data) throws InvalidCodeException
parent
- the parent element
data
- the data
InvalidCodeException
protected void importSpecifiedTradeAllowanceCharge(Element parent, boolean indicator, String actualAmount, String actualAmountCurrency, String reason, String[] typeCode, String[] categoryCode, String[] percent) throws InvalidCodeException
parent
-
indicator
-
actualAmount
-
actualAmountCurrency
-
reason
-
typeCode
-
categoryCode
-
percent
-
InvalidCodeException
protected void importSpecifiedLogisticsServiceCharge(Element parent, ComfortProfile data) throws InvalidCodeException
parent
- the parent element
data
- the data
InvalidCodeException
protected void importSpecifiedLogisticsServiceCharge(Element parent, String[] description, String appliedAmount, String currencyID, String[] typeCode, String[] categoryCode, String[] percent) throws InvalidCodeException
parent
- the parent element
description
-
appliedAmount
-
currencyID
-
typeCode
-
categoryCode
-
percent
-
InvalidCodeException
protected void importSpecifiedTradePaymentTerms(Element parent, ComfortProfile data) throws InvalidCodeException
parent
- the parent element
data
- the data
InvalidCodeException
protected void importSpecifiedTradePaymentTerms(Element parent, String[] description, Date dateTime, String dateTimeFormat) throws InvalidCodeException
parent
- the parent element
description
-
dateTime
-
dateTimeFormat
-
InvalidCodeException
protected void importLineItemsComfort(Element parent, ComfortProfile data) throws DataIncompleteException, InvalidCodeException
parent
- the parent element
data
- the data
DataIncompleteException
InvalidCodeException
protected void importLineItemComfort(Element parent, String lineID, String[][] note, String grossPriceChargeAmount, String grossPriceChargeAmountCurrencyID, String grossPriceBasisQuantity, String grossPriceBasisQuantityCode, Boolean[] grossPriceTradeAllowanceChargeIndicator, String[] grossPriceTradeAllowanceChargeActualAmount, String[] grossPriceTradeAllowanceChargeActualAmountCurrencyID, String[] grossPriceTradeAllowanceChargeReason, String netPriceChargeAmount, String netPriceChargeAmountCurrencyID, String netPriceBasisQuantity, String netPriceBasisQuantityCode, String billedQuantity, String billedQuantityCode, String[] settlementTaxTypeCode, String[] settlementTaxExemptionReason, String[] settlementTaxCategoryCode, String[] settlementTaxApplicablePercent, String totalAmount, String totalAmountCurrencyID, String specifiedTradeProductGlobalID, String specifiedTradeProductSchemeID, String specifiedTradeProductSellerAssignedID, String specifiedTradeProductBuyerAssignedID, String specifiedTradeProductName, String specifiedTradeProductDescription) throws DataIncompleteException, InvalidCodeException
parent
- the parent element
lineID
-
note
-
grossPriceChargeAmount
-
grossPriceChargeAmountCurrencyID
-
grossPriceBasisQuantity
-
grossPriceBasisQuantityCode
-
grossPriceTradeAllowanceChargeIndicator
-
grossPriceTradeAllowanceChargeActualAmount
-
grossPriceTradeAllowanceChargeActualAmountCurrencyID
-
grossPriceTradeAllowanceChargeReason
-
netPriceChargeAmount
-
netPriceChargeAmountCurrencyID
-
netPriceBasisQuantity
-
netPriceBasisQuantityCode
-
billedQuantity
-
billedQuantityCode
-
settlementTaxTypeCode
-
settlementTaxExemptionReason
-
settlementTaxCategoryCode
-
settlementTaxApplicablePercent
-
totalAmount
-
totalAmountCurrencyID
-
specifiedTradeProductGlobalID
-
specifiedTradeProductSchemeID
-
specifiedTradeProductSellerAssignedID
-
specifiedTradeProductBuyerAssignedID
-
specifiedTradeProductName
-
specifiedTradeProductDescription
-
DataIncompleteException
InvalidCodeException
protected void importAppliedTradeAllowanceCharge(Element parent, boolean indicator, String actualAmount, String currencyID, String reason) throws DataIncompleteException, InvalidCodeException
parent
- the parent element
indicator
-
actualAmount
-
currencyID
-
reason
-
DataIncompleteException
InvalidCodeException
protected void importTax(Element parent, String typeCode, String exemptionReason, String category, String percent) throws InvalidCodeException, DataIncompleteException
parent
- the parent element
typeCode
-
exemptionReason
-
category
-
percent
-
InvalidCodeException
DataIncompleteException
protected void importLineItemsBasic(Element parent, BasicProfile data) throws DataIncompleteException, InvalidCodeException
parent
-
data
-
DataIncompleteException
InvalidCodeException
protected void importLineItemBasic(Element parent, String quantity, String code, String name) throws InvalidCodeException
parent
- the parent element
quantity
-
code
-
name
-
InvalidCodeException
public byte[] toXML() throws TransformerException
TransformerException
protected static void removeEmptyNodes(Node node)
node
- the node from which we want to remove the empty nodes
protected void check(String s, String message) throws DataIncompleteException
s
- the String to check
message
- the message if an exception is thrown
DataIncompleteException
Copyright © 2016. All rights reserved.