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
|
// Netto
|
||||||
model.setNetTotalAmount(workitem.getItemValueDouble("invoice.total.net"));
|
model.setNetTotalAmount(workitem.getItemValueDouble("invoice.total.net"));
|
||||||
|
|
||||||
// Tax
|
// Tax
|
||||||
if (workitem.getItemValueDouble("invoice.total.tax") > 0) {
|
|
||||||
// wir haben eine Steuer!
|
|
||||||
model.setTaxTotalAmount(InvoiceUtil.round(workitem.getItemValueDouble("invoice.total")
|
model.setTaxTotalAmount(InvoiceUtil.round(workitem.getItemValueDouble("invoice.total")
|
||||||
- workitem.getItemValueDouble("invoice.total.net")));
|
- workitem.getItemValueDouble("invoice.total.net")));
|
||||||
model.setTaxRate(workitem.getItemValueDouble("invoice.total.tax"));
|
model.setTaxRate(workitem.getItemValueDouble("invoice.total.tax"));
|
||||||
}
|
|
||||||
// Brutto
|
// Brutto
|
||||||
model.setGrandTotalAmount(workitem.getItemValueDouble("invoice.total"));
|
model.setGrandTotalAmount(workitem.getItemValueDouble("invoice.total"));
|
||||||
|
|
||||||
|
|
@ -353,9 +349,14 @@ public class KSeFAdapter implements SignalAdapter {
|
||||||
|
|
||||||
tradeLineItem.setName(orderItem.getItemValueString("datev.text"));
|
tradeLineItem.setName(orderItem.getItemValueString("datev.text"));
|
||||||
tradeLineItem.setQuantity(1);
|
tradeLineItem.setQuantity(1);
|
||||||
tradeLineItem.setNetPrice(orderItem.getItemValueDouble("datev.umsatz"));
|
|
||||||
tradeLineItem.setTotal(orderItem.getItemValueDouble("datev.umsatz"));
|
double vat = orderItem.getItemValueDouble("datev.vatrate"); // 23.00
|
||||||
// tradeLineItem.setTaxRate(orderItem.getItemValueDouble("vat"));
|
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;
|
return tradeLineItem;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -612,7 +612,8 @@ public class CargosoftXMLInvoiceImportService {
|
||||||
XPathExpression netAmountValueExpr = xPath.compile("InvoiceAmount/NetAmount/Amount/Value/text()");
|
XPathExpression netAmountValueExpr = xPath.compile("InvoiceAmount/NetAmount/Amount/Value/text()");
|
||||||
XPathExpression netAmountExchangeRateExpr = xPath
|
XPathExpression netAmountExchangeRateExpr = xPath
|
||||||
.compile("InvoiceAmount/NetAmount/Amount/ExchangeRate/text()");
|
.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()");
|
XPathExpression netActivityTypeExpr = xPath.compile("ActivityType/Codes/Code[@Type='cs']/text()");
|
||||||
|
|
||||||
NodeList rowList = doc.getElementsByTagName("InvoiceRow");
|
NodeList rowList = doc.getElementsByTagName("InvoiceRow");
|
||||||
|
|
@ -634,6 +635,14 @@ public class CargosoftXMLInvoiceImportService {
|
||||||
String fileNumber = (String) fileNumberExpr.evaluate(rowNode, XPathConstants.STRING);
|
String fileNumber = (String) fileNumberExpr.evaluate(rowNode, XPathConstants.STRING);
|
||||||
childItemCol.setItemValue("datev.text", fileNumber);
|
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
|
// speichere die Position in invoice.positions zur suche nach dem
|
||||||
// Positionskennzeichen
|
// Positionskennzeichen
|
||||||
workitem.appendItemValue("invoice.positions", fileNumber);
|
workitem.appendItemValue("invoice.positions", fileNumber);
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,7 @@ public class KSeFAdapterTest {
|
||||||
private static Logger logger = Logger.getLogger(KSeFAdapterTest.class.getName());
|
private static Logger logger = Logger.getLogger(KSeFAdapterTest.class.getName());
|
||||||
|
|
||||||
private static final String TEMPLATE_FILE = "ksef/ksef.xml";
|
private static final String TEMPLATE_FILE = "ksef/ksef.xml";
|
||||||
private static final String OUTPUT_FILE = "ksef-output.xml";
|
|
||||||
|
|
||||||
ItemCollection workitem;
|
|
||||||
ItemCollection businessPartner;
|
ItemCollection businessPartner;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
|
|
@ -69,8 +67,28 @@ public class KSeFAdapterTest {
|
||||||
void setup() throws Exception {
|
void setup() throws Exception {
|
||||||
|
|
||||||
TestLoggerConfig.setupTestLogger();
|
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
|
// Prepare a workitem with typical invoice data
|
||||||
workitem = new ItemCollection();
|
ItemCollection workitem = new ItemCollection();
|
||||||
workitem.setItemValue("invoice.number", "FV/2025/001");
|
workitem.setItemValue("invoice.number", "FV/2025/001");
|
||||||
workitem.setItemValue("invoice.date", LocalDate.of(2025, 2, 10));
|
workitem.setItemValue("invoice.date", LocalDate.of(2025, 2, 10));
|
||||||
workitem.setItemValue("invoice.duedate", LocalDate.of(2025, 3, 10));
|
workitem.setItemValue("invoice.duedate", LocalDate.of(2025, 3, 10));
|
||||||
|
|
@ -99,25 +117,131 @@ public class KSeFAdapterTest {
|
||||||
|
|
||||||
workitem.setItemValue("_childitems", childItems);
|
workitem.setItemValue("_childitems", childItems);
|
||||||
|
|
||||||
// Prepare mock business partner
|
// Arrange
|
||||||
businessPartner = new ItemCollection();
|
when(businessPartnerService.getBusinessPartnerByID("BP-001"))
|
||||||
businessPartner.setItemValue("partner.name", "Test Sp. z o.o.");
|
.thenReturn(businessPartner);
|
||||||
businessPartner.setItemValue("partner.country", "PL");
|
|
||||||
businessPartner.setItemValue("partner.city", "Warszawa");
|
FileData xmlTemplate = loadTemplateFromResources(TEMPLATE_FILE);
|
||||||
businessPartner.setItemValue("partner.zip", "00-001");
|
|
||||||
businessPartner.setItemValue("partner.address", "ul. Testowa 1");
|
// Act
|
||||||
businessPartner.setItemValue("partner.vat", "PL1234567890");
|
adapter.updateEInvoice(xmlTemplate, workitem);
|
||||||
businessPartner.setItemValue("dbtr.number", "D-12345");
|
|
||||||
|
// 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
|
* Erzeugt ein lokales XML File zum testen
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("Test Transform")
|
@DisplayName("Test Invoice Korrektur")
|
||||||
public void testTransform() throws Exception {
|
public void testInvoiceKorektur() throws Exception {
|
||||||
logger.info("==> Test: Upload Invoice XML");
|
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
|
// Arrange
|
||||||
when(businessPartnerService.getBusinessPartnerByID("BP-001"))
|
when(businessPartnerService.getBusinessPartnerByID("BP-001"))
|
||||||
.thenReturn(businessPartner);
|
.thenReturn(businessPartner);
|
||||||
|
|
@ -132,7 +256,7 @@ public class KSeFAdapterTest {
|
||||||
assertTrue(xmlTemplate.getContent().length > 0, "XML content should not be empty");
|
assertTrue(xmlTemplate.getContent().length > 0, "XML content should not be empty");
|
||||||
|
|
||||||
// Write output for manual inspection
|
// 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.
|
* Write the resulting XML to src/test/resources/output/ for manual inspection.
|
||||||
*/
|
*/
|
||||||
private void writeOutputToResources(FileData fileData, String filename) throws IOException {
|
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);
|
Files.createDirectories(outputDir);
|
||||||
Path outputPath = outputDir.resolve(filename);
|
Path outputPath = outputDir.resolve(filename);
|
||||||
Files.write(outputPath, fileData.getContent());
|
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>
|
<Naglowek>
|
||||||
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
|
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
|
||||||
<WariantFormularza>3</WariantFormularza>
|
<WariantFormularza>3</WariantFormularza>
|
||||||
<DataWytworzeniaFa>2026-02-10T12:46:08.366684Z</DataWytworzeniaFa>
|
<DataWytworzeniaFa>2026-02-24T15:23:18.952460Z</DataWytworzeniaFa>
|
||||||
<SystemInfo>Imixs eInvoice</SystemInfo>
|
<SystemInfo>Imixs eInvoice</SystemInfo>
|
||||||
</Naglowek>
|
</Naglowek>
|
||||||
<!-- Seller (Your Polish Company - Pre-filled) -->
|
<!-- Seller (Your Polish Company - Pre-filled) -->
|
||||||
|
|
@ -94,11 +94,16 @@
|
||||||
</PMarzy>
|
</PMarzy>
|
||||||
</Adnotacje>
|
</Adnotacje>
|
||||||
<!-- Invoice Type (VAT) -->
|
<!-- Invoice Type (VAT) -->
|
||||||
<RodzajFaktury>VAT</RodzajFaktury>
|
<RodzajFaktury>KOR</RodzajFaktury>
|
||||||
<!-- Invoice Positions: FaWiersz -->
|
<!-- Invoice Positions: FaWiersz -->
|
||||||
|
<DaneFaKorygowanej>
|
||||||
|
<DataWystFaKorygowanej>2025-02-10</DataWystFaKorygowanej>
|
||||||
|
<NrFaKorygowanej>6551</NrFaKorygowanej>
|
||||||
|
<NrKSeFN>1</NrKSeFN>
|
||||||
|
</DaneFaKorygowanej>
|
||||||
<FaWiersz>
|
<FaWiersz>
|
||||||
<NrWierszaFa>1</NrWierszaFa>
|
<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_7>Transport Berlin - Warsaw</P_7>
|
||||||
<P_8A>szt.</P_8A>
|
<P_8A>szt.</P_8A>
|
||||||
<P_8B>1</P_8B>
|
<P_8B>1</P_8B>
|
||||||
|
|
@ -107,7 +112,7 @@
|
||||||
</FaWiersz>
|
</FaWiersz>
|
||||||
<FaWiersz>
|
<FaWiersz>
|
||||||
<NrWierszaFa>2</NrWierszaFa>
|
<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_7>Customs handling</P_7>
|
||||||
<P_8A>szt.</P_8A>
|
<P_8A>szt.</P_8A>
|
||||||
<P_8B>1</P_8B>
|
<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