optimierung Cargosoft Export Report für Polen
This commit is contained in:
parent
2d77ee846c
commit
3a4f14ece6
3 changed files with 450 additions and 165 deletions
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
### 1.2.15 (Development)
|
||||
|
||||
- kleinere Layout Anpassungen in den Formualren und input Feldern (Positionstabelle, Sachbearbeiter Auswahl...)
|
||||
- invoice.exchangerate Input ersetzt nun , durch . damit der Wert richtig gespeichert wird.
|
||||
- Fix Cargosoft DATEV Import - Korektur des Rechnungsdatums / Jahr
|
||||
- Neuer Rest Service für Korrektur von Cargsoft Ausgangsrechnungen
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
233
reports/cargosoft/cargosoft-1.0.1-pl.xsl
Normal file
233
reports/cargosoft/cargosoft-1.0.1-pl.xsl
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
version="2.0">
|
||||
<xsl:strip-space elements="*" />
|
||||
<xsl:output method="xml" indent="yes" encoding="UTF-8"
|
||||
standalone="yes" />
|
||||
|
||||
<xsl:template match="/">
|
||||
|
||||
<xsl:variable name="date"
|
||||
select="/data/document/item[@name='$modified']/value" />
|
||||
|
||||
<Invoices version="2020.2"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
|
||||
<Message>
|
||||
<SenderID>Imixs-Office-Workflow</SenderID>
|
||||
<ReceiverID>Cargosoft</ReceiverID>
|
||||
<MessageID>
|
||||
<xsl:value-of select="/data/document/item[@name='$uniqueid']/value" />
|
||||
</MessageID>
|
||||
<MessageDate>
|
||||
<DateTime>
|
||||
<xsl:value-of select="$date" />
|
||||
</DateTime>
|
||||
</MessageDate>
|
||||
</Message>
|
||||
|
||||
<xsl:apply-templates
|
||||
select="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'Cargosoft-Export']" />
|
||||
</Invoices>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<!-- This template builds invoice info -->
|
||||
<xsl:template
|
||||
match="/data/document[normalize-space(item[@name = '$workflowgroup']/value) = 'Cargosoft-Export']">
|
||||
|
||||
<xsl:variable name="date" select="item[@name='$modified']/value" />
|
||||
<xsl:variable
|
||||
name="currency" select="item[@name='invoice.currency']/value" />
|
||||
|
||||
|
||||
<Invoice>
|
||||
<InvoiceHeader>
|
||||
<Client>
|
||||
<Codes>
|
||||
<!-- Als Typ muss „cs“ übermittelt werden und im Code wird
|
||||
dann der Cargosoft Mandant erwartet. -->
|
||||
<Code Type="cs">003</Code>
|
||||
</Codes>
|
||||
</Client>
|
||||
<!-- Hier muss eine eindeutige Belegnummer für jeden einzelnen
|
||||
Beleg übermittelt werden. Es muss sich um eine Nummer
|
||||
handeln, die pro Beleg hochgezählt wird und darf sich nicht
|
||||
überschneiden mit dem CargoSoft Belegnummernkreis.
|
||||
Daher den Nummernkreis vorher mit CargoSoft absprechen. -->
|
||||
<InvoiceNumber>
|
||||
<xsl:value-of select="item[@name='numsequencenumber']/value" />
|
||||
</InvoiceNumber>
|
||||
|
||||
<!-- Belegart - bei Gutschriften 'CREDIT' andernfalls 'INVOICE -->
|
||||
<InvoiceType>
|
||||
<Codes>
|
||||
<xsl:choose>
|
||||
<xsl:when test="item[@name='payment.type']/value = 'credit'">
|
||||
<Code Type="cs">CREDIT</Code>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<Code Type="cs">INVOICE</Code>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</Codes>
|
||||
</InvoiceType>
|
||||
<InvoiceCurrency>
|
||||
<Codes>
|
||||
<Code Type="cs">
|
||||
<xsl:value-of select="$currency" />
|
||||
</Code>
|
||||
</Codes>
|
||||
</InvoiceCurrency>
|
||||
<InvoiceAmount>
|
||||
<NetAmount>
|
||||
<Amount>
|
||||
<Currency>
|
||||
<Codes>
|
||||
<Code Type="cs">
|
||||
<xsl:value-of select="$currency" />
|
||||
</Code>
|
||||
</Codes>
|
||||
</Currency>
|
||||
<Value>
|
||||
<xsl:value-of select="item[@name='order.total.netto']/value" />
|
||||
</Value>
|
||||
<!-- exchange rate nur ausgeben wenn vorhanden -->
|
||||
<xsl:if
|
||||
test="string-length(item[@name='invoice.exchangerate']/value) > 0">
|
||||
<ExchangeRate>
|
||||
<xsl:value-of select="item[@name='invoice.exchangerate']/value" />
|
||||
</ExchangeRate>
|
||||
</xsl:if>
|
||||
</Amount>
|
||||
</NetAmount>
|
||||
<VATInformation>
|
||||
<VATAmount>
|
||||
<Amount>
|
||||
<Currency>
|
||||
<Codes>
|
||||
<Code Type="cs">
|
||||
<xsl:value-of select="$currency" />
|
||||
</Code>
|
||||
</Codes>
|
||||
</Currency>
|
||||
<Value>
|
||||
<xsl:value-of select="item[@name='order.total.tax']/value" />
|
||||
</Value>
|
||||
<!-- exchange rate nur ausgeben wenn vorhanden -->
|
||||
<xsl:if
|
||||
test="string-length(item[@name='invoice.exchangerate']/value) > 0">
|
||||
<ExchangeRate>
|
||||
<xsl:value-of
|
||||
select="item[@name='invoice.exchangerate']/value" />
|
||||
</ExchangeRate>
|
||||
</xsl:if>
|
||||
</Amount>
|
||||
</VATAmount>
|
||||
</VATInformation>
|
||||
</InvoiceAmount>
|
||||
<CollectionInvoice>false</CollectionInvoice>
|
||||
<xsl:if test="string-length(item[@name='invoice.period']/value) > 0">
|
||||
<BookingPeriod>
|
||||
<xsl:value-of select="item[@name='invoice.period']/value" />
|
||||
</BookingPeriod>
|
||||
</xsl:if>
|
||||
<Booked>false</Booked>
|
||||
<InvoiceDate>
|
||||
<xsl:value-of select="item[@name='invoice.date']/value" />
|
||||
</InvoiceDate>
|
||||
<!-- optional service date -->
|
||||
<xsl:if
|
||||
test="string-length(item[@name='invoice.servicedate']/value) > 0">
|
||||
<PerformanceDate>
|
||||
<xsl:value-of select="item[@name='invoice.servicedate']/value" />
|
||||
</PerformanceDate>
|
||||
</xsl:if>
|
||||
<InvoiceAddress type="CN">
|
||||
<Codes>
|
||||
<Code Type="cs">
|
||||
<xsl:value-of select="item[@name='cdtr.number']/value" />
|
||||
</Code>
|
||||
</Codes>
|
||||
</InvoiceAddress>
|
||||
<References>
|
||||
<Reference type="cs">
|
||||
<xsl:value-of select="item[@name='invoice.number']/value" />
|
||||
</Reference>
|
||||
</References>
|
||||
<!-- Attachements -->
|
||||
<xsl:if test="item[@name='$file.count']/value > 0">
|
||||
<Attachments>
|
||||
<xsl:for-each
|
||||
select="item[@name='$file']/value/item">
|
||||
<Attachment>
|
||||
<xsl:attribute name="id"><xsl:value-of
|
||||
select="./value/item[@name='md5checksum']/value" /></xsl:attribute>
|
||||
<xsl:attribute name="version">1</xsl:attribute>
|
||||
<Filename>
|
||||
<xsl:value-of select="lower-case(./@name)" />
|
||||
</Filename>
|
||||
<Description>Imixs-Office-Workflow</Description>
|
||||
<Content>
|
||||
<xsl:value-of select="./value[2]" />
|
||||
</Content>
|
||||
</Attachment>
|
||||
</xsl:for-each>
|
||||
</Attachments>
|
||||
</xsl:if>
|
||||
|
||||
</InvoiceHeader>
|
||||
<InvoiceRows>
|
||||
|
||||
<xsl:for-each
|
||||
select="item[@name='_childitems']/value">
|
||||
<InvoiceRow>
|
||||
<Row>
|
||||
<xsl:value-of select="./item[@name='numpos']/value" />
|
||||
</Row>
|
||||
<FileNumber>
|
||||
<xsl:value-of select="./item[@name='name']/value" />
|
||||
</FileNumber>
|
||||
<InvoiceAmount>
|
||||
<NetAmount>
|
||||
<Amount>
|
||||
<Currency>
|
||||
<Codes>
|
||||
<Code Type="cs">
|
||||
<xsl:value-of select="$currency" />
|
||||
</Code>
|
||||
</Codes>
|
||||
</Currency>
|
||||
<Value>
|
||||
<xsl:value-of select="./item[@name='amount']/value" />
|
||||
</Value>
|
||||
</Amount>
|
||||
</NetAmount>
|
||||
<VATInformation>
|
||||
<VAT>
|
||||
<Codes>
|
||||
<Code Type="cs">
|
||||
<xsl:value-of select="./item[@name='tax']/value" />
|
||||
</Code>
|
||||
</Codes>
|
||||
</VAT>
|
||||
</VATInformation>
|
||||
</InvoiceAmount>
|
||||
<ActivityType>
|
||||
<Codes>
|
||||
<Code Type="cs">
|
||||
<xsl:value-of select="./item[@name='category']/value" />
|
||||
</Code>
|
||||
</Codes>
|
||||
</ActivityType>
|
||||
</InvoiceRow>
|
||||
</xsl:for-each>
|
||||
</InvoiceRows>
|
||||
</Invoice>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
|
||||
</xsl:stylesheet>
|
||||
Loading…
Reference in a new issue