Skip to content

Commit

Permalink
Fixes #12
Browse files Browse the repository at this point in the history
  • Loading branch information
phax committed Dec 20, 2021
1 parent 5a1dba5 commit 78450c4
Show file tree
Hide file tree
Showing 8 changed files with 545 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1215,23 +1215,26 @@ public InvoiceType convertToInvoice (@Nonnull final CrossIndustryInvoiceType aCI
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aBuyerAssignedID));
aUBLItem.setBuyersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setBuyersItemIdentification (aUBLID);
}

final IDType aSellerAssignedID = aLineProduct.getSellerAssignedID ();
if (aSellerAssignedID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aSellerAssignedID));
aUBLItem.setSellersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setSellersItemIdentification (aUBLID);
}

final IDType aGlobalID = aLineProduct.getGlobalID ();
if (aGlobalID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aGlobalID));
aUBLItem.setStandardItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setStandardItemIdentification (aUBLID);
}

final TradeCountryType aOriginCountry = aLineProduct.getOriginTradeCountry ();
Expand Down Expand Up @@ -2022,23 +2025,26 @@ public CreditNoteType convertToCreditNote (@Nonnull final CrossIndustryInvoiceTy
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aBuyerAssignedID));
aUBLItem.setBuyersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setBuyersItemIdentification (aUBLID);
}

final IDType aSellerAssignedID = aLineProduct.getSellerAssignedID ();
if (aSellerAssignedID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aSellerAssignedID));
aUBLItem.setSellersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setSellersItemIdentification (aUBLID);
}

final IDType aGlobalID = aLineProduct.getGlobalID ();
if (aGlobalID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aGlobalID));
aUBLItem.setStandardItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setStandardItemIdentification (aUBLID);
}

final TradeCountryType aOriginCountry = aLineProduct.getOriginTradeCountry ();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1216,23 +1216,26 @@ public InvoiceType convertToInvoice (@Nonnull final CrossIndustryInvoiceType aCI
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aBuyerAssignedID));
aUBLItem.setBuyersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setBuyersItemIdentification (aUBLID);
}

final IDType aSellerAssignedID = aLineProduct.getSellerAssignedID ();
if (aSellerAssignedID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aSellerAssignedID));
aUBLItem.setSellersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setSellersItemIdentification (aUBLID);
}

final IDType aGlobalID = aLineProduct.getGlobalID ();
if (aGlobalID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aGlobalID));
aUBLItem.setStandardItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setStandardItemIdentification (aUBLID);
}

final TradeCountryType aOriginCountry = aLineProduct.getOriginTradeCountry ();
Expand Down Expand Up @@ -2020,23 +2023,26 @@ public CreditNoteType convertToCreditNote (@Nonnull final CrossIndustryInvoiceTy
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aBuyerAssignedID));
aUBLItem.setBuyersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setBuyersItemIdentification (aUBLID);
}

final IDType aSellerAssignedID = aLineProduct.getSellerAssignedID ();
if (aSellerAssignedID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aSellerAssignedID));
aUBLItem.setSellersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setSellersItemIdentification (aUBLID);
}

final IDType aGlobalID = aLineProduct.getGlobalID ();
if (aGlobalID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aGlobalID));
aUBLItem.setStandardItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setStandardItemIdentification (aUBLID);
}

final TradeCountryType aOriginCountry = aLineProduct.getOriginTradeCountry ();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1214,23 +1214,26 @@ public InvoiceType convertToInvoice (@Nonnull final CrossIndustryInvoiceType aCI
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aBuyerAssignedID));
aUBLItem.setBuyersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setBuyersItemIdentification (aUBLID);
}

final IDType aSellerAssignedID = aLineProduct.getSellerAssignedID ();
if (aSellerAssignedID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aSellerAssignedID));
aUBLItem.setSellersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setSellersItemIdentification (aUBLID);
}

final IDType aGlobalID = aLineProduct.getGlobalID ();
if (aGlobalID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aGlobalID));
aUBLItem.setStandardItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setStandardItemIdentification (aUBLID);
}

final TradeCountryType aOriginCountry = aLineProduct.getOriginTradeCountry ();
Expand Down Expand Up @@ -2017,23 +2020,26 @@ public CreditNoteType convertToCreditNote (@Nonnull final CrossIndustryInvoiceTy
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aBuyerAssignedID));
aUBLItem.setBuyersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setBuyersItemIdentification (aUBLID);
}

final IDType aSellerAssignedID = aLineProduct.getSellerAssignedID ();
if (aSellerAssignedID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aSellerAssignedID));
aUBLItem.setSellersItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setSellersItemIdentification (aUBLID);
}

final IDType aGlobalID = aLineProduct.getGlobalID ();
if (aGlobalID != null)
{
final ItemIdentificationType aUBLID = new ItemIdentificationType ();
aUBLID.setID (_copyID (aGlobalID));
aUBLItem.setStandardItemIdentification (aUBLID);
if (StringHelper.hasText (aUBLID.getIDValue ()))
aUBLItem.setStandardItemIdentification (aUBLID);
}

final TradeCountryType aOriginCountry = aLineProduct.getOriginTradeCountry ();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ final class MockSettings
"CII_example7.xml",
"CII_example8.xml",
"CII_example9.xml" };
private static final String [] TEST_FILES_ISSUES = new String [] { "issue7.xml" };
private static final String [] TEST_FILES_ISSUES = new String [] { "issue7.xml", "issue12.xml" };
private static final String [] TEST_FILES_XRECHNUNG_122 = new String [] { "01.01a-INVOICE_uncefact.xml",
"01.02a-INVOICE_uncefact.xml",
"01.03a-INVOICE_uncefact.xml",
Expand Down
142 changes: 142 additions & 0 deletions en16931-cii2ubl/src/test/resources/cii/issues/issue12.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100 ../../../schemas/UN_CEFACT/CrossIndustryInvoice_100pD16B.xsd">
<rsm:ExchangedDocumentContext>
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.0</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ram:ID>0059871354</ram:ID>
<ram:TypeCode>380</ram:TypeCode>
<ram:IssueDateTime>
<udt:DateTimeString format="102">20210331</udt:DateTimeString>
</ram:IssueDateTime>
<ram:IncludedNote>
<ram:Content>Das ist lediglich eine Testrechnung des XRechnungsgenerators der Nortal AG.
Wussten Sie, dass sich Ihre XRechnungen jetzt auch ganz einfach mit unserem XRechnungs-Viewer visualisieren lassen?
Hier können Sie den praktischen Dienst gleich kostenlos testen: https://xr-viewer.nortal.com/</ram:Content>
<ram:SubjectCode>ADU</ram:SubjectCode>
</ram:IncludedNote>
</rsm:ExchangedDocument>
<rsm:SupplyChainTradeTransaction>
<ram:IncludedSupplyChainTradeLineItem>
<ram:AssociatedDocumentLineDocument>
<ram:LineID>0</ram:LineID>
</ram:AssociatedDocumentLineDocument>
<ram:SpecifiedTradeProduct>
<!--
<ram:SellerAssignedID>1234567890</ram:SellerAssignedID>
-->
<ram:SellerAssignedID/>
<ram:Name>Homepage</ram:Name>
<ram:Description />
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>15000.00</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="XPP">1
</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
<ram:ApplicableTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>15000.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
<ram:ApplicableHeaderTradeAgreement>
<ram:BuyerReference>36 5 88914 - 34578 - 33</ram:BuyerReference>
<ram:SellerTradeParty>
<ram:GlobalID>Homepage Design GmbH</ram:GlobalID>
<ram:Name>Homepage Design GmbH</ram:Name>
<ram:DefinedTradeContact>
<ram:PersonName>Anna Blume </ram:PersonName>
<ram:TelephoneUniversalCommunication>
<ram:CompleteNumber>0000 0000 0000</ram:CompleteNumber>
</ram:TelephoneUniversalCommunication>
<ram:EmailURIUniversalCommunication>
<ram:URIID>a.blume@takeaway.de</ram:URIID>
</ram:EmailURIUniversalCommunication>
</ram:DefinedTradeContact>
<ram:PostalTradeAddress>
<ram:PostcodeCode>10409</ram:PostcodeCode>
<ram:LineOne>Musterstr. 60</ram:LineOne>
<ram:LineTwo />
<ram:CityName>Berlin</ram:CityName>
<ram:CountryID>DE</ram:CountryID>
</ram:PostalTradeAddress>
<ram:SpecifiedTaxRegistration>
<ram:ID schemeID="FC">DE123456789</ram:ID>
</ram:SpecifiedTaxRegistration>
</ram:SellerTradeParty>
<ram:BuyerTradeParty>
<ram:ID>Lampenlager GmbH </ram:ID>
<ram:Name>Anne Mach</ram:Name>
<ram:PostalTradeAddress>
<ram:PostcodeCode>15856</ram:PostcodeCode>
<ram:LineOne>Industriestr. 21</ram:LineOne>
<ram:LineTwo />
<ram:CityName>Berlin </ram:CityName>
<ram:CountryID>DE</ram:CountryID>
</ram:PostalTradeAddress>
</ram:BuyerTradeParty>
<ram:BuyerOrderReferencedDocument>
<ram:IssuerAssignedID />
</ram:BuyerOrderReferencedDocument>
<ram:ContractReferencedDocument>
<ram:IssuerAssignedID />
</ram:ContractReferencedDocument>
<ram:SpecifiedProcuringProject>
<ram:ID />
<ram:Name />
</ram:SpecifiedProcuringProject>
</ram:ApplicableHeaderTradeAgreement>
<ram:ApplicableHeaderTradeDelivery />
<ram:ApplicableHeaderTradeSettlement>
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
<ram:SpecifiedTradeSettlementPaymentMeans>
<ram:TypeCode>30</ram:TypeCode>
<ram:PayeePartyCreditorFinancialAccount>
<ram:IBANID>DE02120300000000202051</ram:IBANID>
<ram:AccountName>Homepage Design GmbH</ram:AccountName>
</ram:PayeePartyCreditorFinancialAccount>
<ram:PayeeSpecifiedCreditorFinancialInstitution>
<ram:BICID>BYLADEM1001</ram:BICID>
</ram:PayeeSpecifiedCreditorFinancialInstitution>
</ram:SpecifiedTradeSettlementPaymentMeans>
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>2850.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>15000.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradePaymentTerms>
<ram:Description />
<ram:DueDateDateTime>
<udt:DateTimeString format="102">20210428</udt:DateTimeString>
</ram:DueDateDateTime>
</ram:SpecifiedTradePaymentTerms>
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>15000.00</ram:LineTotalAmount>
<ram:TaxBasisTotalAmount>15000.00</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">2850.00
</ram:TaxTotalAmount>
<ram:GrandTotalAmount>17850.00</ram:GrandTotalAmount>
<ram:DuePayableAmount>17850.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>
</rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>
Loading

0 comments on commit 78450c4

Please sign in to comment.