Feedback von Taxman
This commit is contained in:
parent
47fc7e151e
commit
f8c13c5b2b
5 changed files with 66 additions and 8 deletions
25
doc/KSeF/FEEDBACK.md
Normal file
25
doc/KSeF/FEEDBACK.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# Feedback zum PDF FIle
|
||||
|
||||
## 1. Podmiot 1 — Daten des Rechnungsausstellers (AGLP)
|
||||
|
||||
- `<Nazwa>` FIXED
|
||||
- `<AdresL1>` FIXED
|
||||
- `<PrefiksPodatnika>PL</PrefiksPodatnika>` FIXED
|
||||
|
||||
## 2. Podmiot 2 — Daten des Rechnungsempfängers
|
||||
|
||||
- `<NrID> <NIP>` - ALREADY IMPLEMENTED
|
||||
- EU-Rechnungsempfänger - UNCLEAR!
|
||||
- Anschrift des Rechnungsempfängers - CARGOSOFT TOPIC
|
||||
|
||||
## 3. Abschnitt <Fa> — Rechnungskopf (außer Standardfelder P_1, P_2, P_6)
|
||||
|
||||
- `<P_1M>` - FIXED
|
||||
- `<KursWalutyZ>` - FIXED
|
||||
|
||||
# 4. Rechnungspositionen <FaWiersz> — Pflichtfelder je Position
|
||||
|
||||
- `<P_7>` - FIXED
|
||||
- `<P_8B>` - IGNORED - NOT FIXED!
|
||||
|
||||
ab `<P_11A>` wird es krimminell
|
||||
BIN
doc/KSeF/Feld-Mapping Cargo Soft zu KSeF (DE).pdf
Normal file
BIN
doc/KSeF/Feld-Mapping Cargo Soft zu KSeF (DE).pdf
Normal file
Binary file not shown.
|
|
@ -292,6 +292,26 @@ public class KSeFAdapter implements SignalAdapter {
|
|||
*/
|
||||
model.setGrandTotalAmount(workitem.getItemValueDouble("invoice.total"));
|
||||
|
||||
/*
|
||||
* KursWalutyZ
|
||||
*
|
||||
* Für Rechnungen in Fremdwährung obligatorisch. Anzuwenden ist der NBP-
|
||||
* Durchschnittskurs des Tages vor Entstehen der Steuerpflicht (Art. 31a
|
||||
* UStG-PL).
|
||||
* Dezimalformat mit Punkt.
|
||||
*/
|
||||
String currency = workitem.getItemValueString("invoice.currency");
|
||||
if (!currency.isBlank() && !"PLN".equals(currency)) {
|
||||
Element p15 = model.findChildNode(elementFa, EInvoiceNS.KSEF, "P_15");
|
||||
if (p15 != null) {
|
||||
Double rate = workitem.getItemValueDouble("invoice.rate");
|
||||
logger.info("│ ├── set KursWalutyZ = " + rate);
|
||||
Element element = model.findOrCreateChildNodeAfter(elementFa, EInvoiceNS.KSEF, "KursWalutyZ",
|
||||
"P_15");
|
||||
element.setTextContent(rate.toString());
|
||||
}
|
||||
}
|
||||
|
||||
// finally set the due date at the end of the XML tree
|
||||
model.setDueDateTime(workitem.getItemValueLocalDate("invoice.duedate"));
|
||||
|
||||
|
|
@ -460,7 +480,18 @@ public class KSeFAdapter implements SignalAdapter {
|
|||
|
||||
// Herrn Grzegorz Grzelczyk möchte hier BillingText
|
||||
// tradeLineItem.setName(orderItem.getItemValueString("datev.text"));
|
||||
tradeLineItem.setName(orderItem.getItemValueString("billingtext"));
|
||||
// tradeLineItem.setName(orderItem.getItemValueString("billingtext"));
|
||||
// Herr Grzelczyk will das alle billing texte aus der liste, verkettet
|
||||
// ausgegeben werden.
|
||||
List<String> billingTexts = orderItem.getItemValue("billingtext");
|
||||
String billingTextName = billingTexts == null
|
||||
? ""
|
||||
: String.join(", ", billingTexts);
|
||||
final int MAX_LENGTH = 512;
|
||||
if (billingTextName.length() > MAX_LENGTH) {
|
||||
billingTextName = billingTextName.substring(0, MAX_LENGTH);
|
||||
}
|
||||
tradeLineItem.setName(billingTextName);
|
||||
|
||||
tradeLineItem.setQuantity(1);
|
||||
|
||||
|
|
|
|||
|
|
@ -13,14 +13,14 @@
|
|||
|
||||
<!-- Seller (Your Polish Company - Pre-filled) -->
|
||||
<Podmiot1>
|
||||
<PrefiksPodatnika>PL</PrefiksPodatnika>
|
||||
<DaneIdentyfikacyjne>
|
||||
<NIP>9552521552</NIP>
|
||||
<Nazwa>Alexander Global Logistics</Nazwa>
|
||||
<Nazwa>ALEXANDER GLOBAL LOGISTICS POLAND sp. z o.o.</Nazwa>
|
||||
</DaneIdentyfikacyjne>
|
||||
<Adres>
|
||||
<KodKraju>PL</KodKraju>
|
||||
<AdresL1>Gdanska 36</AdresL1>
|
||||
<AdresL2>70-660 Szczecin</AdresL2>
|
||||
<AdresL1>ul. Gdańska 36, 70-660 Szczecin</AdresL1>
|
||||
</Adres>
|
||||
<DaneKontaktowe>
|
||||
<Email>MBudas@alexander-logistics.com</Email>
|
||||
|
|
@ -57,6 +57,7 @@
|
|||
<KodWaluty>#CURRENCY#</KodWaluty>
|
||||
|
||||
<P_1></P_1> <!-- Invoice Date -->
|
||||
<P_1M>Szczecin</P_1M>
|
||||
<P_2></P_2> <!-- Invoice Number -->
|
||||
<P_6></P_6> <!-- Due Date -->
|
||||
|
||||
|
|
|
|||
|
|
@ -2878,7 +2878,8 @@ AGL Poland Team
|
|||
<imixs:value/>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="comment" ignore="true"/>]]></imixs:value>
|
||||
<imixs:value><![CDATA[<item name="comment" ignore="true"/>
|
||||
<item name="action">home</item>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Speichern]]></imixs:value>
|
||||
|
|
@ -3193,13 +3194,13 @@ AGL Poland Team
|
|||
<bpmndi:BPMNShape bpmnElement="event_nQBQjw" id="BPMNShape_093C9Q">
|
||||
<dc:Bounds height="36.0" width="36.0" x="897.0" y="407.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_OMsueg">
|
||||
<dc:Bounds height="20.0" width="100.0" x="865.0" y="436.0"/>
|
||||
<dc:Bounds height="20.0" width="100.0" x="865.0" y="446.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="event_0YONsg" id="BPMNShape_PuiuLA">
|
||||
<dc:Bounds height="36.0" width="36.0" x="1307.0" y="407.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_wi6IGg">
|
||||
<dc:Bounds height="20.0" width="100.0" x="1275.0" y="436.0"/>
|
||||
<dc:Bounds height="20.0" width="100.0" x="1275.0" y="446.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="event_NIn1DQ" id="BPMNShape_rAwIzQ">
|
||||
|
|
@ -3301,7 +3302,7 @@ AGL Poland Team
|
|||
<bpmndi:BPMNShape bpmnElement="event_3FDnsA" id="BPMNShape_bRk7og">
|
||||
<dc:Bounds height="36.0" width="36.0" x="1717.0" y="407.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_XhmDNA">
|
||||
<dc:Bounds height="20.0" width="100.0" x="1685.0" y="436.0"/>
|
||||
<dc:Bounds height="20.0" width="100.0" x="1685.0" y="446.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="gateway_S4b22A" id="BPMNShape_whGktg">
|
||||
|
|
|
|||
Loading…
Reference in a new issue