korrektur der Steuerberechnung
This commit is contained in:
parent
676310ae38
commit
d7c9682bfd
6 changed files with 448 additions and 31 deletions
|
|
@ -224,14 +224,10 @@ public class KSeFAdapter implements SignalAdapter {
|
|||
|
||||
// Netto
|
||||
model.setNetTotalAmount(workitem.getItemValueDouble("invoice.total.net"));
|
||||
|
||||
// Tax
|
||||
if (workitem.getItemValueDouble("invoice.total.tax") > 0) {
|
||||
// wir haben eine Steuer!
|
||||
model.setTaxTotalAmount(InvoiceUtil.round(workitem.getItemValueDouble("invoice.total")
|
||||
- workitem.getItemValueDouble("invoice.total.net")));
|
||||
model.setTaxRate(workitem.getItemValueDouble("invoice.total.tax"));
|
||||
}
|
||||
model.setTaxTotalAmount(InvoiceUtil.round(workitem.getItemValueDouble("invoice.total")
|
||||
- workitem.getItemValueDouble("invoice.total.net")));
|
||||
model.setTaxRate(workitem.getItemValueDouble("invoice.total.tax"));
|
||||
// Brutto
|
||||
model.setGrandTotalAmount(workitem.getItemValueDouble("invoice.total"));
|
||||
|
||||
|
|
@ -353,9 +349,14 @@ public class KSeFAdapter implements SignalAdapter {
|
|||
|
||||
tradeLineItem.setName(orderItem.getItemValueString("datev.text"));
|
||||
tradeLineItem.setQuantity(1);
|
||||
tradeLineItem.setNetPrice(orderItem.getItemValueDouble("datev.umsatz"));
|
||||
tradeLineItem.setTotal(orderItem.getItemValueDouble("datev.umsatz"));
|
||||
// tradeLineItem.setTaxRate(orderItem.getItemValueDouble("vat"));
|
||||
|
||||
double vat = orderItem.getItemValueDouble("datev.vatrate"); // 23.00
|
||||
double netto = orderItem.getItemValueDouble("datev.umsatz"); // 970.00
|
||||
double brutto = netto * (1 + (vat / 100));
|
||||
double steuer = brutto - netto;
|
||||
tradeLineItem.setTaxRate(vat);
|
||||
tradeLineItem.setNetPrice(netto);
|
||||
tradeLineItem.setTotal(brutto);
|
||||
|
||||
return tradeLineItem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -612,7 +612,8 @@ public class CargosoftXMLInvoiceImportService {
|
|||
XPathExpression netAmountValueExpr = xPath.compile("InvoiceAmount/NetAmount/Amount/Value/text()");
|
||||
XPathExpression netAmountExchangeRateExpr = xPath
|
||||
.compile("InvoiceAmount/NetAmount/Amount/ExchangeRate/text()");
|
||||
|
||||
XPathExpression vatInformationExpr = xPath
|
||||
.compile("InvoiceAmount/VATInformation/VAT/VATRate/text()");
|
||||
XPathExpression netActivityTypeExpr = xPath.compile("ActivityType/Codes/Code[@Type='cs']/text()");
|
||||
|
||||
NodeList rowList = doc.getElementsByTagName("InvoiceRow");
|
||||
|
|
@ -634,6 +635,14 @@ public class CargosoftXMLInvoiceImportService {
|
|||
String fileNumber = (String) fileNumberExpr.evaluate(rowNode, XPathConstants.STRING);
|
||||
childItemCol.setItemValue("datev.text", fileNumber);
|
||||
|
||||
// get VAT Rate
|
||||
try {
|
||||
String vatRateText = (String) vatInformationExpr.evaluate(rowNode, XPathConstants.STRING);
|
||||
childItemCol.setItemValue("datev.vatrate", Double.valueOf(vatRateText));
|
||||
} catch (Exception e) {
|
||||
// no op
|
||||
}
|
||||
|
||||
// speichere die Position in invoice.positions zur suche nach dem
|
||||
// Positionskennzeichen
|
||||
workitem.appendItemValue("invoice.positions", fileNumber);
|
||||
|
|
|
|||
|
|
@ -48,9 +48,7 @@ public class KSeFAdapterTest {
|
|||
private static Logger logger = Logger.getLogger(KSeFAdapterTest.class.getName());
|
||||
|
||||
private static final String TEMPLATE_FILE = "ksef/ksef.xml";
|
||||
private static final String OUTPUT_FILE = "ksef-output.xml";
|
||||
|
||||
ItemCollection workitem;
|
||||
ItemCollection businessPartner;
|
||||
|
||||
@Mock
|
||||
|
|
@ -69,8 +67,28 @@ public class KSeFAdapterTest {
|
|||
void setup() throws Exception {
|
||||
|
||||
TestLoggerConfig.setupTestLogger();
|
||||
|
||||
// Prepare mock business partner
|
||||
businessPartner = new ItemCollection();
|
||||
businessPartner.setItemValue("partner.name", "Test Sp. z o.o.");
|
||||
businessPartner.setItemValue("partner.country", "PL");
|
||||
businessPartner.setItemValue("partner.city", "Warszawa");
|
||||
businessPartner.setItemValue("partner.zip", "00-001");
|
||||
businessPartner.setItemValue("partner.address", "ul. Testowa 1");
|
||||
businessPartner.setItemValue("partner.vat", "PL1234567890");
|
||||
businessPartner.setItemValue("dbtr.number", "D-12345");
|
||||
}
|
||||
|
||||
/**
|
||||
* Erzeugt ein lokales XML File zum testen
|
||||
*/
|
||||
@Test
|
||||
@DisplayName("Test Simple Invoice")
|
||||
public void testSimpleInvoice() throws Exception {
|
||||
logger.info("==> Test: Upload Invoice XML");
|
||||
|
||||
// Prepare a workitem with typical invoice data
|
||||
workitem = new ItemCollection();
|
||||
ItemCollection workitem = new ItemCollection();
|
||||
workitem.setItemValue("invoice.number", "FV/2025/001");
|
||||
workitem.setItemValue("invoice.date", LocalDate.of(2025, 2, 10));
|
||||
workitem.setItemValue("invoice.duedate", LocalDate.of(2025, 3, 10));
|
||||
|
|
@ -99,25 +117,131 @@ public class KSeFAdapterTest {
|
|||
|
||||
workitem.setItemValue("_childitems", childItems);
|
||||
|
||||
// Prepare mock business partner
|
||||
businessPartner = new ItemCollection();
|
||||
businessPartner.setItemValue("partner.name", "Test Sp. z o.o.");
|
||||
businessPartner.setItemValue("partner.country", "PL");
|
||||
businessPartner.setItemValue("partner.city", "Warszawa");
|
||||
businessPartner.setItemValue("partner.zip", "00-001");
|
||||
businessPartner.setItemValue("partner.address", "ul. Testowa 1");
|
||||
businessPartner.setItemValue("partner.vat", "PL1234567890");
|
||||
businessPartner.setItemValue("dbtr.number", "D-12345");
|
||||
// Arrange
|
||||
when(businessPartnerService.getBusinessPartnerByID("BP-001"))
|
||||
.thenReturn(businessPartner);
|
||||
|
||||
FileData xmlTemplate = loadTemplateFromResources(TEMPLATE_FILE);
|
||||
|
||||
// Act
|
||||
adapter.updateEInvoice(xmlTemplate, workitem);
|
||||
|
||||
// Assert - basic checks
|
||||
assertNotNull(xmlTemplate.getContent(), "XML content should not be null after update");
|
||||
assertTrue(xmlTemplate.getContent().length > 0, "XML content should not be empty");
|
||||
|
||||
// Write output for manual inspection
|
||||
writeOutputToResources(xmlTemplate, "invoice-simple.xml");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Erzeugt ein lokales XML File zum testen
|
||||
*/
|
||||
@Test
|
||||
@DisplayName("Test Transform")
|
||||
public void testTransform() throws Exception {
|
||||
@DisplayName("Test Invoice Korrektur")
|
||||
public void testInvoiceKorektur() throws Exception {
|
||||
logger.info("==> Test: Upload Invoice XML");
|
||||
|
||||
// Prepare a workitem with typical invoice data
|
||||
ItemCollection workitem = new ItemCollection();
|
||||
workitem.setItemValue("invoice.number", "FV/2025/001");
|
||||
workitem.setItemValue("invoice.date", LocalDate.of(2025, 2, 10));
|
||||
workitem.setItemValue("invoice.duedate", LocalDate.of(2025, 3, 10));
|
||||
workitem.setItemValue("invoice.currency", "EUR");
|
||||
workitem.setItemValue("invoice.total.net", 0.00);
|
||||
workitem.setItemValue("invoice.total.tax", 0.0);
|
||||
workitem.setItemValue("invoice.total", 0.00);
|
||||
|
||||
workitem.setItemValue("partner.id", "BP-001");
|
||||
workitem.setItemValue("partner.vat", "PL1234567890");
|
||||
|
||||
// simulation Korrekturrechnung
|
||||
workitem.setItemValue("invoice.correction", true);
|
||||
workitem.setItemValue("invoice.CorrectionInvoiceNumber", "6551");
|
||||
|
||||
// Prepare child items (invoice line items)
|
||||
List<Object> childItems = new ArrayList<>();
|
||||
|
||||
ItemCollection lineItem1 = new ItemCollection()
|
||||
.setItemValue("numpos", "1")
|
||||
.setItemValue("datev.shzeichen", "H")
|
||||
.setItemValue("datev.kurs", 0.236485)
|
||||
.setItemValue("datev.basisumsatz", -3805.74)
|
||||
.setItemValue("datev.text", "Transport Berlin - Warsaw")
|
||||
.setItemValue("billingtext", "usługa spedycyjna / transport w relacji, PL63 - CZ43")
|
||||
.setItemValue("datev.umsatz", -900.00)
|
||||
.setItemValue("datev.wkz", "EUR")
|
||||
.setItemValue("billingcode", "TRANSLKW");
|
||||
|
||||
childItems.add(lineItem1.getAllItems());
|
||||
|
||||
/**
|
||||
* <NrWierszaFa>1</NrWierszaFa>
|
||||
* <UU_ID>7f846436-7c29-48b3-8f5a-fed996ea30a3</UU_ID>
|
||||
* <P_7>IM-POL-2512-008</P_7>
|
||||
* <P_8A>szt.</P_8A>
|
||||
* <P_8B>1</P_8B>
|
||||
* <P_9A>0.00</P_9A>
|
||||
* <P_11>0.00</P_11>
|
||||
* </FaWiersz>
|
||||
* <FaWiersz>
|
||||
* <NrWierszaFa>2</NrWierszaFa>
|
||||
* <UU_ID>f3077e37-9198-4431-a82b-68d9439b587e</UU_ID>
|
||||
* <P_7>IM-POL-2512-008</P_7>
|
||||
* <P_8A>szt.</P_8A>
|
||||
* <P_8B>1</P_8B>
|
||||
* <P_9A>-900.00</P_9A>
|
||||
* <P_11>-900.00</P_11>
|
||||
* </FaWiersz>
|
||||
* <FaWiersz>
|
||||
* <NrWierszaFa>3</NrWierszaFa>
|
||||
* <UU_ID>31fdfe9e-671e-42f6-9f7e-ceb227a3a42c</UU_ID>
|
||||
* <P_7>IM-POL-2512-008</P_7>
|
||||
* <P_8A>szt.</P_8A>
|
||||
* <P_8B>1</P_8B>
|
||||
* <P_9A>0.00</P_9A>
|
||||
* <P_11>0.00</P_11>
|
||||
* </FaWiersz>
|
||||
* <FaWiersz>
|
||||
* <NrWierszaFa>4</NrWierszaFa>
|
||||
* <UU_ID>79ffd1e8-be87-478b-97b5-d37aa302d090</UU_ID>
|
||||
* <P_7>IM-POL-2512-008</P_7>
|
||||
* <P_8A>szt.</P_8A>
|
||||
* <P_8B>1</P_8B>
|
||||
* <P_9A>0.00</P_9A>
|
||||
* <P_11>0.00</P_11>
|
||||
* </FaWiersz>
|
||||
* <FaWiersz>
|
||||
* <NrWierszaFa>5</NrWierszaFa>
|
||||
* <UU_ID>38e8cbd3-e558-4b0e-875c-c4f2d96d1659</UU_ID>
|
||||
* <P_7>IM-POL-2512-008</P_7>
|
||||
* <P_8A>szt.</P_8A>
|
||||
* <P_8B>1</P_8B>
|
||||
* <P_9A>900.00</P_9A>
|
||||
* <P_11>900.00</P_11>
|
||||
* </FaWiersz>
|
||||
* <FaWiersz>
|
||||
* <NrWierszaFa>6</NrWierszaFa>
|
||||
* <UU_ID>3774dab3-b6c4-433e-8298-60ecf6cbab74</UU_ID>
|
||||
* <P_7>IM-POL-2512-008</P_7>
|
||||
* <P_8A>szt.</P_8A>
|
||||
* <P_8B>1</P_8B>
|
||||
* <P_9A>0.00</P_9A>
|
||||
* <P_11>0.00</P_11>
|
||||
* </FaWiersz>
|
||||
* <FaWiersz>
|
||||
* <NrWierszaFa>7</NrWierszaFa>
|
||||
* <UU_ID>f19846ab-3567-4e5d-823b-807d474af062</UU_ID>
|
||||
* <P_7>IM-POL-2512-008</P_7>
|
||||
* <P_8A>szt.</P_8A>
|
||||
* <P_8B>1</P_8B>
|
||||
* <P_9A>0.00</P_9A>
|
||||
* <P_11>0.00</P_11>
|
||||
*/
|
||||
|
||||
workitem.setItemValue("_childitems", childItems);
|
||||
|
||||
// Arrange
|
||||
when(businessPartnerService.getBusinessPartnerByID("BP-001"))
|
||||
.thenReturn(businessPartner);
|
||||
|
|
@ -132,7 +256,7 @@ public class KSeFAdapterTest {
|
|||
assertTrue(xmlTemplate.getContent().length > 0, "XML content should not be empty");
|
||||
|
||||
// Write output for manual inspection
|
||||
writeOutputToResources(xmlTemplate, OUTPUT_FILE);
|
||||
writeOutputToResources(xmlTemplate, "test-korrekturrechnung.xml");
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -159,7 +283,7 @@ public class KSeFAdapterTest {
|
|||
* Write the resulting XML to src/test/resources/output/ for manual inspection.
|
||||
*/
|
||||
private void writeOutputToResources(FileData fileData, String filename) throws IOException {
|
||||
Path outputDir = Paths.get("src", "test", "resources", "output");
|
||||
Path outputDir = Paths.get("src", "test", "resources", "ksef/output");
|
||||
Files.createDirectories(outputDir);
|
||||
Path outputPath = outputDir.resolve(filename);
|
||||
Files.write(outputPath, fileData.getContent());
|
||||
|
|
|
|||
|
|
@ -0,0 +1,164 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/" xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2022/01/05/eD/DefinicjeTypy/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<Naglowek>
|
||||
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
|
||||
<WariantFormularza>3</WariantFormularza>
|
||||
<DataWytworzeniaFa>2026-02-09T16:46:47.217821373Z</DataWytworzeniaFa>
|
||||
<SystemInfo>Imixs eInvoice</SystemInfo>
|
||||
</Naglowek>
|
||||
<!-- Seller (Your Polish Company - Pre-filled) -->
|
||||
<Podmiot1>
|
||||
<DaneIdentyfikacyjne>
|
||||
<NIP>9552521552</NIP>
|
||||
<Nazwa>Alexander Global Logistics</Nazwa>
|
||||
</DaneIdentyfikacyjne>
|
||||
<Adres>
|
||||
<KodKraju>PL</KodKraju>
|
||||
<AdresL1>Gdanska 36</AdresL1>
|
||||
<AdresL2>70-660 Szczecin</AdresL2>
|
||||
</Adres>
|
||||
<DaneKontaktowe>
|
||||
<Email>MBudas@alexander-logistics.com</Email>
|
||||
</DaneKontaktowe>
|
||||
</Podmiot1>
|
||||
<!-- Buyer (Customer - Empty, to be filled) -->
|
||||
<Podmiot2>
|
||||
<DaneIdentyfikacyjne>
|
||||
<!-- NIP falls eine PL Ust Vorliegt
|
||||
ansonsten NrID - geht immer -->
|
||||
<!-- <Nazwa>#Customer Name#</Nazwa> -->
|
||||
<NIP>7851801689</NIP>
|
||||
<Nazwa>DWORCZAK LOGISTICS Sp. z o.o.</Nazwa>
|
||||
</DaneIdentyfikacyjne>
|
||||
<Adres>
|
||||
<KodKraju>PL</KodKraju>
|
||||
<AdresL1>ul. Szkolna 10</AdresL1>
|
||||
<AdresL2>63-100 Niesłabin</AdresL2>
|
||||
</Adres>
|
||||
<!---
|
||||
Contact information from buyer can be left
|
||||
<DaneKontaktowe>
|
||||
<Email></Email>
|
||||
<Telefon></Telefon>
|
||||
</DaneKontaktowe>
|
||||
-->
|
||||
<NrKlienta>D21839</NrKlienta>
|
||||
<JST>2</JST>
|
||||
<!-- fixed -->
|
||||
<GV>2</GV>
|
||||
<!-- fixed -->
|
||||
</Podmiot2>
|
||||
<!-- Invoice Data -->
|
||||
<Fa>
|
||||
<KodWaluty>EUR</KodWaluty>
|
||||
<P_1>2025-12-12</P_1>
|
||||
<!-- Invoice Date -->
|
||||
<P_2>6602</P_2>
|
||||
<!-- Invoice Number -->
|
||||
<P_6>2026-01-11</P_6>
|
||||
<!-- Due Date -->
|
||||
<!-- Totals will only be computed by the EInvoiceModelKSeF Class-->
|
||||
<!--
|
||||
<P_13_1>0.00</P_13_1>
|
||||
<P_14_1>0.00</P_14_1>
|
||||
<P_15>0.00</P_15>
|
||||
-->
|
||||
<P_13_1>0.00</P_13_1>
|
||||
<P_15>0.00</P_15>
|
||||
<Adnotacje>
|
||||
<!-- 1 yes - 2 no -->
|
||||
<P_16>2</P_16>
|
||||
<!-- Keine Selbstfakturierung -->
|
||||
<P_17>2</P_17>
|
||||
<!-- Kein Reverse Charge -->
|
||||
<P_18>2</P_18>
|
||||
<!-- Kein Split Payment (Rechnung unter 15.000 PLN/EUR) -->
|
||||
<P_18A>2</P_18A>
|
||||
<!-- Keine Steuerbefreiung -->
|
||||
<Zwolnienie>
|
||||
<P_19N>1</P_19N>
|
||||
</Zwolnienie>
|
||||
<!-- Keine neuen Verkehrsmittel -->
|
||||
<NoweSrodkiTransportu>
|
||||
<P_22N>1</P_22N>
|
||||
</NoweSrodkiTransportu>
|
||||
<!-- Kein vereinfachtes Verfahren nach Art. 135 -->
|
||||
<P_23>2</P_23>
|
||||
<!-- Keine Margenregelung -->
|
||||
<PMarzy>
|
||||
<P_PMarzyN>1</P_PMarzyN>
|
||||
</PMarzy>
|
||||
</Adnotacje>
|
||||
<!-- Invoice Type (VAT) -->
|
||||
<RodzajFaktury>KOR</RodzajFaktury>
|
||||
<!-- Invoice Positions: FaWiersz -->
|
||||
<DaneFaKorygowanej>
|
||||
<DataWystFaKorygowanej>2025-12-05</DataWystFaKorygowanej>
|
||||
<NrFaKorygowanej>6551</NrFaKorygowanej>
|
||||
<NrKSeFN>1</NrKSeFN>
|
||||
</DaneFaKorygowanej>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>1</NrWierszaFa>
|
||||
<UU_ID>7f846436-7c29-48b3-8f5a-fed996ea30a3</UU_ID>
|
||||
<P_7>IM-POL-2512-008</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>0.00</P_9A>
|
||||
<P_11>0.00</P_11>
|
||||
</FaWiersz>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>2</NrWierszaFa>
|
||||
<UU_ID>f3077e37-9198-4431-a82b-68d9439b587e</UU_ID>
|
||||
<P_7>IM-POL-2512-008</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>-900.00</P_9A>
|
||||
<P_11>-900.00</P_11>
|
||||
</FaWiersz>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>3</NrWierszaFa>
|
||||
<UU_ID>31fdfe9e-671e-42f6-9f7e-ceb227a3a42c</UU_ID>
|
||||
<P_7>IM-POL-2512-008</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>0.00</P_9A>
|
||||
<P_11>0.00</P_11>
|
||||
</FaWiersz>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>4</NrWierszaFa>
|
||||
<UU_ID>79ffd1e8-be87-478b-97b5-d37aa302d090</UU_ID>
|
||||
<P_7>IM-POL-2512-008</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>0.00</P_9A>
|
||||
<P_11>0.00</P_11>
|
||||
</FaWiersz>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>5</NrWierszaFa>
|
||||
<UU_ID>38e8cbd3-e558-4b0e-875c-c4f2d96d1659</UU_ID>
|
||||
<P_7>IM-POL-2512-008</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>900.00</P_9A>
|
||||
<P_11>900.00</P_11>
|
||||
</FaWiersz>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>6</NrWierszaFa>
|
||||
<UU_ID>3774dab3-b6c4-433e-8298-60ecf6cbab74</UU_ID>
|
||||
<P_7>IM-POL-2512-008</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>0.00</P_9A>
|
||||
<P_11>0.00</P_11>
|
||||
</FaWiersz>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>7</NrWierszaFa>
|
||||
<UU_ID>f19846ab-3567-4e5d-823b-807d474af062</UU_ID>
|
||||
<P_7>IM-POL-2512-008</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>0.00</P_9A>
|
||||
<P_11>0.00</P_11>
|
||||
</FaWiersz>
|
||||
</Fa>
|
||||
</Faktura>
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
<Naglowek>
|
||||
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
|
||||
<WariantFormularza>3</WariantFormularza>
|
||||
<DataWytworzeniaFa>2026-02-10T12:46:08.366684Z</DataWytworzeniaFa>
|
||||
<DataWytworzeniaFa>2026-02-24T15:23:18.952460Z</DataWytworzeniaFa>
|
||||
<SystemInfo>Imixs eInvoice</SystemInfo>
|
||||
</Naglowek>
|
||||
<!-- Seller (Your Polish Company - Pre-filled) -->
|
||||
|
|
@ -94,11 +94,16 @@
|
|||
</PMarzy>
|
||||
</Adnotacje>
|
||||
<!-- Invoice Type (VAT) -->
|
||||
<RodzajFaktury>VAT</RodzajFaktury>
|
||||
<RodzajFaktury>KOR</RodzajFaktury>
|
||||
<!-- Invoice Positions: FaWiersz -->
|
||||
<DaneFaKorygowanej>
|
||||
<DataWystFaKorygowanej>2025-02-10</DataWystFaKorygowanej>
|
||||
<NrFaKorygowanej>6551</NrFaKorygowanej>
|
||||
<NrKSeFN>1</NrKSeFN>
|
||||
</DaneFaKorygowanej>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>1</NrWierszaFa>
|
||||
<UU_ID>5a2dd34c-6592-40aa-aafc-80bac9c9b9c4</UU_ID>
|
||||
<UU_ID>f8deaaf2-dfe0-4a7e-801a-c977a4e400ba</UU_ID>
|
||||
<P_7>Transport Berlin - Warsaw</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
|
|
@ -107,7 +112,7 @@
|
|||
</FaWiersz>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>2</NrWierszaFa>
|
||||
<UU_ID>d44bf6a0-758b-415b-b45a-d83052a2f2aa</UU_ID>
|
||||
<UU_ID>29636625-ac8a-47a6-a795-8954d1d106f2</UU_ID>
|
||||
<P_7>Customs handling</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/"
|
||||
xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2022/01/05/eD/DefinicjeTypy/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<Naglowek>
|
||||
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
|
||||
<WariantFormularza>3</WariantFormularza>
|
||||
<DataWytworzeniaFa>2026-02-24T16:11:02.707702Z</DataWytworzeniaFa>
|
||||
<SystemInfo>Imixs eInvoice</SystemInfo>
|
||||
</Naglowek>
|
||||
<!-- Seller (Your Polish Company - Pre-filled) -->
|
||||
<Podmiot1>
|
||||
<DaneIdentyfikacyjne>
|
||||
<NIP>9552521552</NIP>
|
||||
<Nazwa>Alexander Global Logistics</Nazwa>
|
||||
</DaneIdentyfikacyjne>
|
||||
<Adres>
|
||||
<KodKraju>PL</KodKraju>
|
||||
<AdresL1>Gdanska 36</AdresL1>
|
||||
<AdresL2>70-660 Szczecin</AdresL2>
|
||||
</Adres>
|
||||
<DaneKontaktowe>
|
||||
<Email>MBudas@alexander-logistics.com</Email>
|
||||
</DaneKontaktowe>
|
||||
</Podmiot1>
|
||||
<!-- Buyer (Customer - Empty, to be filled) -->
|
||||
<Podmiot2>
|
||||
<DaneIdentyfikacyjne>
|
||||
<!-- NIP falls eine PL Ust Vorliegt
|
||||
ansonsten NrID - geht immer -->
|
||||
<!-- <Nazwa>#Customer Name#</Nazwa> -->
|
||||
<NIP>1234567890</NIP>
|
||||
<Nazwa>Test Sp. z o.o.</Nazwa>
|
||||
</DaneIdentyfikacyjne>
|
||||
<Adres>
|
||||
<KodKraju>PL</KodKraju>
|
||||
<AdresL1>ul. Testowa 1</AdresL1>
|
||||
<AdresL2>00-001 Warszawa</AdresL2>
|
||||
</Adres>
|
||||
<!---
|
||||
Contact information from buyer can be left
|
||||
<DaneKontaktowe>
|
||||
<Email></Email>
|
||||
<Telefon></Telefon>
|
||||
</DaneKontaktowe>
|
||||
-->
|
||||
<NrKlienta>D-12345</NrKlienta>
|
||||
<JST>2</JST>
|
||||
<!-- fixed -->
|
||||
<GV>2</GV>
|
||||
<!-- fixed -->
|
||||
</Podmiot2>
|
||||
<!-- Invoice Data -->
|
||||
<Fa>
|
||||
<KodWaluty>EUR</KodWaluty>
|
||||
<P_1>2025-02-10</P_1>
|
||||
<!-- Invoice Date -->
|
||||
<P_2>FV/2025/001</P_2>
|
||||
<!-- Invoice Number -->
|
||||
<P_6>2025-03-10</P_6>
|
||||
<!-- Due Date -->
|
||||
<!-- Totals will only be computed by the EInvoiceModelKSeF Class-->
|
||||
<!--
|
||||
<P_13_1>0.00</P_13_1>
|
||||
<P_14_1>0.00</P_14_1>
|
||||
<P_15>0.00</P_15>
|
||||
-->
|
||||
<P_13_1>0.00</P_13_1>
|
||||
<P_14_1>0.00</P_14_1>
|
||||
<P_15>0.00</P_15>
|
||||
<Adnotacje>
|
||||
<!-- 1 yes - 2 no -->
|
||||
<P_16>2</P_16>
|
||||
<!-- Keine Selbstfakturierung -->
|
||||
<P_17>2</P_17>
|
||||
<!-- Kein Reverse Charge -->
|
||||
<P_18>2</P_18>
|
||||
<!-- Kein Split Payment (Rechnung unter 15.000 PLN/EUR) -->
|
||||
<P_18A>2</P_18A>
|
||||
<!-- Keine Steuerbefreiung -->
|
||||
<Zwolnienie>
|
||||
<P_19N>1</P_19N>
|
||||
</Zwolnienie>
|
||||
<!-- Keine neuen Verkehrsmittel -->
|
||||
<NoweSrodkiTransportu>
|
||||
<P_22N>1</P_22N>
|
||||
</NoweSrodkiTransportu>
|
||||
<!-- Kein vereinfachtes Verfahren nach Art. 135 -->
|
||||
<P_23>2</P_23>
|
||||
<!-- Keine Margenregelung -->
|
||||
<PMarzy>
|
||||
<P_PMarzyN>1</P_PMarzyN>
|
||||
</PMarzy>
|
||||
</Adnotacje>
|
||||
<!-- Invoice Type (VAT) -->
|
||||
<RodzajFaktury>KOR</RodzajFaktury>
|
||||
<!-- Invoice Positions: FaWiersz -->
|
||||
<DaneFaKorygowanej>
|
||||
<DataWystFaKorygowanej>2025-02-10</DataWystFaKorygowanej>
|
||||
<NrFaKorygowanej>6551</NrFaKorygowanej>
|
||||
<NrKSeFN>1</NrKSeFN>
|
||||
</DaneFaKorygowanej>
|
||||
<FaWiersz>
|
||||
<NrWierszaFa>1</NrWierszaFa>
|
||||
<UU_ID>781e1f16-a86e-452d-b959-01c76743a792</UU_ID>
|
||||
<P_7>Transport Berlin - Warsaw</P_7>
|
||||
<P_8A>szt.</P_8A>
|
||||
<P_8B>1</P_8B>
|
||||
<P_9A>-900.00</P_9A>
|
||||
<P_11>-900.00</P_11>
|
||||
</FaWiersz>
|
||||
</Fa>
|
||||
</Faktura>
|
||||
Loading…
Reference in a new issue