Imports System.Globalization Imports System.IO Imports System.Net Imports System.Web.UI.WebControls.Expressions Imports Microsoft.Office.Interop Imports s2industries.ZUGFeRD Imports VERAG_PROG_ALLGEMEIN Public Class cFakturierung Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL Public Shared Function fktSVSRVS(firmaId As Integer, varWert As Object, Optional varWährungscode As Object = "EUR") As Object Select Case firmaId Case 21, 22, 23 fktSVSRVS_UNISPED(varWert, varWährungscode) Case Else fktSVSRVS(varWert, varWährungscode) End Select End Function Public Shared Function fktSVSRVS(varWert As Object, Optional varWährungscode As Object = "EUR") As Object Dim varVersicherungssumme As Object Dim varRechnungswährung As Object ' Versicherungssumme prüfen varVersicherungssumme = varWert If varVersicherungssumme Is Nothing OrElse varVersicherungssumme = 0 Then MsgBox("Die SVS/RVS-Prämie kann nicht ermittelt werden. Der Warenwert zur Bestimmung der Versicherungssumme ist nicht bekannt.", , "fktSVSRVS") fktSVSRVS = Nothing Exit Function ElseIf varVersicherungssumme < 0 Then varVersicherungssumme = 0 - varVersicherungssumme End If ' Die SVS/RVS-Tabelle ist in der Währung ATS geführt. ' Wenn der Wert zur Bestimmung der Versicherungssumme auf einer anderen Währung basiert, ' wird der Wert in ATS umgerechnet. ' Die Versicherungsprämie ist in der Währung ATS angegeben. Lautet die Rechnung auf eine ' andere Währung, wird die Versicherungsprämie auf diese Währung umgerechnet. varRechnungswährung = varWährungscode Select Case VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(varVersicherungssumme, varRechnungswährung, "EUR") Case Is <= 2500 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(2.5, "EUR", varRechnungswährung) Case Is <= 3750 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(3.8, "EUR", varRechnungswährung) Case Is <= 5000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(5, "EUR", varRechnungswährung) Case Is <= 6250 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(6.1, "EUR", varRechnungswährung) Case Is <= 7500 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(7.45, "EUR", varRechnungswährung) Case Is <= 10000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(9.75, "EUR", varRechnungswährung) Case Is <= 15000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(13.95, "EUR", varRechnungswährung) Case Is <= 20000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(18.15, "EUR", varRechnungswährung) Case Is <= 25000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(22.15, "EUR", varRechnungswährung) Case Is <= 50000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(39.15, "EUR", varRechnungswährung) Case Is <= 100000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(64.6, "EUR", varRechnungswährung) Case Is <= 150000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(91.8, "EUR", varRechnungswährung) Case Is <= 200000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(117.3, "EUR", varRechnungswährung) Case Is <= 300000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(140.8, "EUR", varRechnungswährung) Case Is <= 1500000 fktSVSRVS = Int((varVersicherungssumme * 0.00039) * 100 + 0.5) / 100 Case Else 'ab V.193 auf Veranlassung von Andreas Luxbauer. fktSVSRVS = Int((1500000 * 0.00039) * 100 + 0.5) / 100 End Select If False Then Select Case VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(varVersicherungssumme, varRechnungswährung, "ATS") Case Is <= 20000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(18, "ATS", varRechnungswährung) Case Is <= 40000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(28, "ATS", varRechnungswährung) Case Is <= 60000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(39, "ATS", varRechnungswährung) Case Is <= 80000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(50, "ATS", varRechnungswährung) Case Is <= 100000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(61, "ATS", varRechnungswährung) Case Is <= 120000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(78, "ATS", varRechnungswährung) Case Is <= 140000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(89, "ATS", varRechnungswährung) Case Is <= 160000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(100, "ATS", varRechnungswährung) Case Is <= 180000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(111, "ATS", varRechnungswährung) Case Is <= 200000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(122, "ATS", varRechnungswährung) Case Is <= 250000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(138, "ATS", varRechnungswährung) Case Is <= 300000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(160, "ATS", varRechnungswährung) Case Is <= 350000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(182, "ATS", varRechnungswährung) Case Is <= 400000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(204, "ATS", varRechnungswährung) Case Is <= 450000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(226, "ATS", varRechnungswährung) Case Is <= 500000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(248, "ATS", varRechnungswährung) Case Is <= 550000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(282, "ATS", varRechnungswährung) Case Is <= 600000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(304, "ATS", varRechnungswährung) Case Is <= 650000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(326, "ATS", varRechnungswährung) Case Is <= 700000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(348, "ATS", varRechnungswährung) Case Is <= 750000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(370, "ATS", varRechnungswährung) Case Is <= 800000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(392, "ATS", varRechnungswährung) Case Is <= 850000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(409, "ATS", varRechnungswährung) Case Is <= 900000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(426, "ATS", varRechnungswährung) Case Is <= 950000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(443, "ATS", varRechnungswährung) Case Is <= 1000000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(460, "ATS", varRechnungswährung) Case Is <= 1050000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(489, "ATS", varRechnungswährung) Case Is <= 1100000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(506, "ATS", varRechnungswährung) Case Is <= 1150000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(523, "ATS", varRechnungswährung) Case Is <= 1200000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(540, "ATS", varRechnungswährung) Case Is <= 1250000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(557, "ATS", varRechnungswährung) Case Is <= 1300000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(574, "ATS", varRechnungswährung) Case Is <= 1350000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(591, "ATS", varRechnungswährung) Case Is <= 1400000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(608, "ATS", varRechnungswährung) Case Is <= 1450000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(625, "ATS", varRechnungswährung) Case Is <= 1500000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(642, "ATS", varRechnungswährung) Case Is <= 1600000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(669, "ATS", varRechnungswährung) Case Is <= 1700000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(696, "ATS", varRechnungswährung) Case Is <= 1800000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(723, "ATS", varRechnungswährung) Case Is <= 1900000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(750, "ATS", varRechnungswährung) Case Is <= 2000000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(777, "ATS", varRechnungswährung) Case Is <= 2200000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(823, "ATS", varRechnungswährung) Case Is <= 2400000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(857, "ATS", varRechnungswährung) Case Is <= 2600000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(891, "ATS", varRechnungswährung) Case Is <= 2800000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(925, "ATS", varRechnungswährung) Case Is <= 3000000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(959, "ATS", varRechnungswährung) Case Is <= 3200000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(993, "ATS", varRechnungswährung) Case Is <= 3400000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(1027, "ATS", varRechnungswährung) Case Is <= 3600000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(1061, "ATS", varRechnungswährung) Case Is <= 3800000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(1095, "ATS", varRechnungswährung) Case Is <= 4000000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(1129, "ATS", varRechnungswährung) Case Is <= 4500000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(1163, "ATS", varRechnungswährung) Case Is <= 5000000 fktSVSRVS = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(1268, "ATS", varRechnungswährung) Case Else fktSVSRVS = Int((varVersicherungssumme * 0.00024) * 100 + 0.5) / 100 End Select End If End Function Public Shared Function fktSVSRVS_UNISPED(varWert As Object, Optional varWährungscode As Object = "EUR") As Object Dim varVersicherungssumme As Object Dim varRechnungswährung As Object ' Versicherungssumme prüfen varVersicherungssumme = varWert If varVersicherungssumme Is Nothing OrElse varVersicherungssumme = 0 Then MsgBox("Die SVS/RVS-Prämie kann nicht ermittelt werden. Der Warenwert zur Bestimmung der Versicherungssumme ist nicht bekannt.", , "fktSVSRVS") fktSVSRVS_UNISPED = Nothing Exit Function ElseIf varVersicherungssumme < 0 Then varVersicherungssumme = 0 - varVersicherungssumme End If ' Die SVS/RVS-Tabelle ist in der Währung ATS geführt. ' Wenn der Wert zur Bestimmung der Versicherungssumme auf einer anderen Währung basiert, ' wird der Wert in ATS umgerechnet. ' Die Versicherungsprämie ist in der Währung ATS angegeben. Lautet die Rechnung auf eine ' andere Währung, wird die Versicherungsprämie auf diese Währung umgerechnet. varRechnungswährung = varWährungscode Select Case VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(varVersicherungssumme, varRechnungswährung, "EUR") Case Is <= 2500 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(2.91, "EUR", varRechnungswährung) Case Is <= 3750 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(4.42, "EUR", varRechnungswährung) Case Is <= 5000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(5.82, "EUR", varRechnungswährung) Case Is <= 6250 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(7.1, "EUR", varRechnungswährung) Case Is <= 7500 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(8.67, "EUR", varRechnungswährung) Case Is <= 10000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(11.34, "EUR", varRechnungswährung) Case Is <= 15000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(16.24, "EUR", varRechnungswährung) Case Is <= 20000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(21.13, "EUR", varRechnungswährung) Case Is <= 25000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(25.3, "EUR", varRechnungswährung) Case Is <= 50000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(44.73, "EUR", varRechnungswährung) Case Is <= 100000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(73.8, "EUR", varRechnungswährung) Case Is <= 150000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(104.87, "EUR", varRechnungswährung) Case Is <= 200000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(134, "EUR", varRechnungswährung) Case Is <= 300000 fktSVSRVS_UNISPED = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(160.85, "EUR", varRechnungswährung) Case Is <= 1500000 fktSVSRVS_UNISPED = Int((varVersicherungssumme * 0.00055) * 100 + 0.5) / 100 Case Else fktSVSRVS_UNISPED = Int((1500000 * 0.00055) * 100 + 0.5) / 100 End Select End Function Shared Sub setGesamtBetraege(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional Steuersatz_Proz As Object = Nothing, Optional useNettogesatbetrag As Boolean = False) Dim steuerPflichtigerBetrag As Double = 0 Dim steuerFreierBetrag As Double = 0 Dim Abfertigungskosten As Double = 0 Dim vorzeichen = 1 'If(RECHNUNG.Vorzeichen = "-", -1, 1) If Steuersatz_Proz IsNot Nothing Then RECHNUNG.Steuersatz_Proz = CDbl(Steuersatz_Proz) End If ' RECHNUNG.Steuersatz_Proz = If(txtSteuersatz._value, 0) For Each POS In RECHNUNG.POSITIONEN If POS.Anzahl > 0 And POS.Preis <> 0 Then 'HIER WIRD GEFILTERT --> Nur wo etwas zu verrechnen ist! If CBool(POS.Steuerpflichtig) Then steuerPflichtigerBetrag += POS.SteuerpflichtigerBetrag Else steuerFreierBetrag += POS.SteuerfreierBetrag End If If CBool(SQL.DLookup("[Abfertigungskosten]", "Leistungen", "[LeistungsNr]=" & POS.[LeistungsNr], "FMZOLL", False)) Then Abfertigungskosten += VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(POS.[SteuerpflichtigerBetrag], RECHNUNG.Währungscode, "EUR") Abfertigungskosten += VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(POS.[SteuerfreierBetrag], RECHNUNG.Währungscode, "EUR") End If End If Next RECHNUNG.Abfertigungskosten = Abfertigungskosten * vorzeichen steuerFreierBetrag *= vorzeichen steuerPflichtigerBetrag *= vorzeichen steuerFreierBetrag *= vorzeichen Dim steuerBetrag As Double = 0 If RECHNUNG.Steuersatz_Proz <> 0 Then steuerBetrag = steuerPflichtigerBetrag * RECHNUNG.Steuersatz_Proz RECHNUNG.SteuerpflichtigerGesamtbetrag = steuerPflichtigerBetrag + IIf(Not useNettogesatbetrag, steuerBetrag, 0) '+ steuerBetrag RECHNUNG.SteuerfreierGesamtbetrag = steuerFreierBetrag Else RECHNUNG.SteuerpflichtigerGesamtbetrag = 0 RECHNUNG.SteuerfreierGesamtbetrag = steuerFreierBetrag + steuerPflichtigerBetrag End If End Sub Shared Function przRechnungstextZZ(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As String ', ByRef strZahlbar As String, ByRef strText As String) If RECHNUNG Is Nothing Then Exit Function Dim strZahlbar As String = "" Dim strText As String = "" ' Dim varPos As Object Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL ' Dim Nettozahlungsziel Dim ZZTage = 10 If RECHNUNG.RechnungsKundenNr > 0 Then Dim RECHNUNG_AD As New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr) Dim RECHNUNG_KD As New VERAG_PROG_ALLGEMEIN.cKunde(RECHNUNG.RechnungsKundenNr) If RECHNUNG_KD.Zahlungsziel IsNot Nothing AndAlso IsNumeric(RECHNUNG_KD.Zahlungsziel) Then ZZTage = RECHNUNG_KD.Zahlungsziel If ZZTage > 14 AndAlso RECHNUNG.Firma_ID = 19 AndAlso RECHNUNG.FilialenNr = 8001 Then ZZTage = 14 End If End If Select Case RECHNUNG.[BelegartenNr] Case 70 'RECHNUNG Dim VK = VERAG_PROG_ALLGEMEIN.cVorauskasse.LOADByFilialeAbfNr(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr) Dim VK_Tmp = False If RECHNUNG.[Vorkasse] Then VK_Tmp = (VK IsNot Nothing) End If If Not VK_Tmp Then If RECHNUNG.Lastschrift Then Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "The invoice amount was collected by direct debit order." & vbCrLf Case "RO" : strText = strText & "Suma facturii a fost incasata prin ordin de debitare directa." & vbCrLf Case Else : strText = strText & "Der Rechnungsbetrag wurde durch erteilten Abbuchungsauftrag eingezogen." & vbCrLf End Select Else If checkIfKreditaufwendungen(RECHNUNG) Then Select Case RECHNUNG.RechnungSprache 'Case "EN" : strZahlbar = "Payable within " & ZZTage & " days less pos. 750; due net from " & ZZTage & " days." 'Case Else : strZahlbar = "Zahlbar innerhalb " & ZZTage & " Tagen abzüglich Pos. 750; ab " & ZZTage & " Tagen netto fällig." Case "EN" : strZahlbar = "Terms of Payment: " & ZZTage & " days from invoice date; Pos. 750 is deductible within the payment term." Case "RO" : strZahlbar = "Payment term: " & ZZTage & " days from invoice date; Pos. 750 is deductible within the payment term." Case Else : strZahlbar = "Zahlungsziel: " & ZZTage & " Tage ab Rechnungsdatum; Pos. 750 ist innerhalb des Zahlungsziels abzugfähig." End Select Else 'Zahlungsziel allgemein. Select Case RECHNUNG.RechnungSprache Case "EN" : strZahlbar = "Terms of Payment: " & ZZTage & " days as of document date" Case "RO" : strZahlbar = "Termen de plata: " & ZZTage & " zile de la data emiterii facturii" Case Else : strZahlbar = "Zahlungsziel: " & ZZTage & " Tage ab Rechnungsdatum" 'Case "EN" : strZahlbar = "Payable within " & ZZTage & " days from date of invoice." 'Case Else : strZahlbar = "Zahlbar innerhalb " & ZZTage & " Tagen ab Rechnungsdatum." End Select End If If RECHNUNG.Firma_ID = 4 Then strZahlbar &= " ()" End If ' 'Zahlungsziel bei Maut/Diesel. 'DA STIMMT WAS NICHT:::::: 'If RECHNUNG.OffertenNr IsNot Nothing And RECHNUNG.RechnungsKundenNr > 0 And RECHNUNG.RechnungsLandKz IsNot Nothing Then ' Dim ZahlungszielOffert As String = SQL.getValueTxtBySql("SELECT isnull(Zahlungsziel,'') FROM Offertenstamm WHERE OffertenNr='" & RECHNUNG.OffertenNr & "' AND Zahlungsziel Is Not Null", "FMZOLL") ' Dim ZahlungszielKunde As String = If(RECHNUNG_KD.Zahlungsziel, "") ' Dim ZahlungszielText As String = SQL.getValueTxtBySql("SELECT isnull(tblZahlungszieltexte.Text,'') FROM tblZahlungszieltexte WHERE tblZahlungszieltexte.LandKz='" & RECHNUNG.RechnungsLandKz & "' AND tblZahlungszieltexte.Text Is Not Null", "FMZOLL") ' If ZahlungszielKunde <> "" Then 'Zahlungsziel für Kunde verwenden ' RECHNUNG.Nettozahlungsziel = ZahlungszielKunde ' strZahlbar = If(ZahlungszielText <> "", ZahlungszielText, "Rechnung zahlbar spätestens bis") & " " & ZahlungszielKunde & "!" ' ElseIf ZahlungszielOffert <> "" Then 'Zahlungsziel für Offerte verwenden ' RECHNUNG.Nettozahlungsziel = ZahlungszielOffert ' strZahlbar = If(ZahlungszielText <> "", ZahlungszielText, "Rechnung zahlbar spätestens bis") & " " & ZahlungszielOffert & "!" ' End If 'End If '' Text bei Zoll oder EUSt drucken --> UNTEN IM TEXT 'If checkIfcheckIfZollbelege(RECHNUNG) Then ' Select Case RECHNUNG.RechnungSprache ' Case "EN" : strText = strText & "Please check all customs documents immediately for correctness, as objections are only possible 1 month after the date of the customs notification." & vbCrLf ' Case Else : strText = strText & "Alle Zollbelege bitte sofort auf Richtigkeit prüfen da Einspruch gemäß § 355 AO nur 1 Monat nach Datum des Zollbescheides möglich." & vbCrLf ' End Select 'End If End If Else If VK IsNot Nothing AndAlso CDbl(VK.vk_Betrag) > 0 Then If VK.vk_GeldEingetroffen Then ' Wenn 0 dann Fehler Dim diff As Double = CDbl(VK.vk_Betrag) - CDbl(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag) If diff < 0.5 And diff > 0.5 Then ' If diff = 0 Then --> 50ct spielraum ok für diff Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "The invoice was balanced by payment in advance." & vbCrLf Case "RO" : strText = strText & "Suma facturii a fost stinsa prin plata in avans." & vbCrLf Case Else : strText = strText & "Der Rechnungsbetrag wurde bereits per Vorauszahlung beglichen." & vbCrLf End Select Else If diff > 0 Then 'Guthaben 'Select Case RECHNUNG.RechnungSprache ' Case "EN" : strText = strText & "An advance payment has already been made for this invoice, resulting in a credit balance of " & diff.ToString("C2") & "." & vbCrLf ' Case Else : strText = strText & "Zu dieser Rechnung wurde bereits eine Vorauszahlung geleistet, daraus ergibt sich ein Guthaben von " & diff.ToString("C2") & "." & vbCrLf 'End Select Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "Advanced payment to this invoice has already been made." & vbCrLf Case "RO" : strText = strText & "Pentru aceasta factura a fost efectuata deja o plata in avans." & vbCrLf Case Else : strText = strText & "Zu dieser Rechnung wurde bereits eine Vorauszahlung geleistet." & vbCrLf End Select Else 'Nachzahlung Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "Partial payment has already been in advance. Please remit the respective balance." & vbCrLf Case "RO" : strText = strText & "Pentru aceasta factura a fost efectuata deja o plata in avans. Va rugam achitati diferenta." & vbCrLf Case Else : strText = strText & "Zu dieser Rechnung wurde bereits eine Vorauszahlung geleistet, bitte überweisen Sie ggf. den Differenzbetrag." & vbCrLf End Select End If End If End If End If End If Case 71 'GS If RECHNUNG.Lastschrift Then Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "The credit note is being balanced against direct debit order." & vbCrLf Case "RO" : strText = strText & "Creditul a fost compensat cu ordinul de debitare emis." & vbCrLf Case Else : strText = strText & "Der Gutschriftsbetrag wurde mit erteilten Abbuchungsauftrag verrechnet." & vbCrLf End Select Else If RECHNUNG.Firma_ID = 19 Then Select Case RECHNUNG.RechnungSprache Case "EN" : strZahlbar = "Terms of Payment: " & ZZTage & " days" Case "RO" : strZahlbar = "Termen de plata: " & ZZTage & " zile" Case Else : strZahlbar = "Zahlungsziel: " & ZZTage & " Tage" End Select End If End If End Select strText = (strZahlbar & vbNewLine & strText).Trim If strText = "" Then RECHNUNG.TextZZ = Nothing Else strText.Replace("", If(RECHNUNG_AD.E_Mail, " - ")) RECHNUNG.TextZZ = strText End If End If Return strText.Trim End Function Shared Function checkAnlage_Orig(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) If RECHNUNG IsNot Nothing Then If RECHNUNG.Anlage_1 IsNot Nothing Then If (RECHNUNG.Anlage_1.contains("ATR") Or RECHNUNG.Anlage_1.contains("ATR") Or RECHNUNG.Anlage_1.contains("Präf")) And Not (RECHNUNG.Anlage_1.contains("Kopie") Or RECHNUNG.Anlage_1.contains("Copy")) Then Return True If RECHNUNG.Anlage_2 IsNot Nothing Then If (RECHNUNG.Anlage_2.contains("ATR") Or RECHNUNG.Anlage_2.contains("ATR") Or RECHNUNG.Anlage_2.contains("Präf")) And Not (RECHNUNG.Anlage_2.contains("Kopie") Or RECHNUNG.Anlage_2.contains("Copy")) Then Return True If RECHNUNG.Anlage_3 IsNot Nothing Then If (RECHNUNG.Anlage_3.contains("ATR") Or RECHNUNG.Anlage_3.contains("ATR") Or RECHNUNG.Anlage_3.contains("Präf")) And Not (RECHNUNG.Anlage_3.contains("Kopie") Or RECHNUNG.Anlage_3.contains("Copy")) Then Return True If RECHNUNG.Anlage_4 IsNot Nothing Then If (RECHNUNG.Anlage_4.contains("ATR") Or RECHNUNG.Anlage_4.contains("ATR") Or RECHNUNG.Anlage_4.contains("Präf")) And Not (RECHNUNG.Anlage_4.contains("Kopie") Or RECHNUNG.Anlage_4.contains("Copy")) Then Return True If RECHNUNG.Anlage_5 IsNot Nothing Then If (RECHNUNG.Anlage_5.contains("ATR") Or RECHNUNG.Anlage_5.contains("ATR") Or RECHNUNG.Anlage_5.contains("Präf")) And Not (RECHNUNG.Anlage_5.contains("Kopie") Or RECHNUNG.Anlage_5.contains("Copy")) Then Return True If RECHNUNG.Anlage_6 IsNot Nothing Then If (RECHNUNG.Anlage_6.contains("ATR") Or RECHNUNG.Anlage_6.contains("ATR") Or RECHNUNG.Anlage_6.contains("Präf")) And Not (RECHNUNG.Anlage_6.contains("Kopie") Or RECHNUNG.Anlage_6.contains("Copy")) Then Return True End If Return False End Function 'Shared Function przRechnungstext(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As String ', ByRef strZahlbar As String, ByRef strText As String) ' Dim txtZZ = przRechnungstextTXT(RECHNUNG) ' Dim txtTXT = przRechnungstextZZ(RECHNUNG) ' Return (txtZZ & vbNewLine & txtTXT).Trim 'End Function Shared Function przRechnungstextTXT(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch) As String ', ByRef strZahlbar As String, ByRef strText As String) If RECHNUNG Is Nothing Then Exit Function ' Dim strZahlbar As String = "" Dim strText As String = "" ' Dim varPos As Object Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL ' Dim Nettozahlungsziel If RECHNUNG.RechnungsKundenNr > 0 Then Select Case RECHNUNG.[BelegartenNr] Case 70 'RECHNUNG ' Text bei Zoll oder EUSt drucken If checkIfcheckIfZollbelege(RECHNUNG) Then Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "Please check all customs documents immediately for correctness, as objections are only possible 1 month after the date of the customs notification." & vbCrLf Case Else : strText = strText & "Alle Zollbelege bitte sofort auf Richtigkeit prüfen da Einspruch gemäß § 355 AO nur 1 Monat nach Datum des Zollbescheides möglich." & vbCrLf End Select End If End Select 'strText = przRechnungstextZZ(RECHNUNG) Dim RECHNUNG_AD As New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr) Dim RECHNUNG_KD As New VERAG_PROG_ALLGEMEIN.cKunde(RECHNUNG.RechnungsKundenNr) If getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, RECHNUNG.Firma_ID, RECHNUNG.RechnungsLandKz, RECHNUNG.OffertenNr, True) Then ElseIf getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, RECHNUNG.Firma_ID, RECHNUNG.RechnungsLandKz, , True) Then ElseIf getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, RECHNUNG.Firma_ID, ,, True) Then ElseIf getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, , RECHNUNG.RechnungsLandKz, , True) Then ElseIf getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, RECHNUNG.Firma_ID, ,, ) Then ElseIf getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, ,,, True) Then ElseIf getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, ,,, False) Then End If 'Fixtexte die immer angefügt werden (ImmerAnfuegen=1): getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, RECHNUNG.Firma_ID, RECHNUNG.RechnungsLandKz, RECHNUNG.OffertenNr, True, True) getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, RECHNUNG.Firma_ID, RECHNUNG.RechnungsLandKz, , True, True) getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, RECHNUNG.Firma_ID, ,, True, True) getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, , RECHNUNG.RechnungsLandKz, , True, True) getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, ,,, True, True) getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, ,,, False, True) getRTXT_SQL(strText, RECHNUNG, RECHNUNG_AD, ,,, False, True) '' Informations- und Werbetexte drucken 'Dim sqlStr = "SELECT * FROM Rechnungstexte WHERE 1=1" 'If RECHNUNG.Firma_ID > 0 Then sqlStr &= " AND (Firma_ID='" & RECHNUNG.Firma_ID & "' or Firma_ID is null) " 'If If(RECHNUNG_AD.LandKz, "") <> "" Then sqlStr &= " AND (LandKz='" & RECHNUNG_AD.LandKz & "' or LandKz is null) " 'If If(RECHNUNG.OffertenNr, 0) > 0 Then sqlStr &= " AND (OffertenNr='" & RECHNUNG.OffertenNr & "' or OffertenNr is null) " ''Wennn Rechnung als Email geschickt werden sollte Rechnungsdruck=2 'If If(RECHNUNG_AD.Rechnungsdruck, -1) = 2 And If(RECHNUNG_AD.E_Mail, "") <> "" Then sqlStr &= " AND EMailRechnung=1 " 'Select Case RECHNUNG.[BelegartenNr] ' Case 70 ' sqlStr &= " AND (DrucksteuerungsKz='R' OR DrucksteuerungsKz='') " ' Case 71 ' sqlStr &= " AND (DrucksteuerungsKz='G' OR DrucksteuerungsKz='') " 'End Select 'Dim dt_RechnungsTexte As DataTable = SQL.loadDgvBySql(sqlStr & " order by Firma_ID desc,LandKz desc,Offertennr desc", "FMZOLL") 'If dt_RechnungsTexte.Rows.Count > 0 Then ' strText &= dt_RechnungsTexte.Rows(0)("Text") & vbCrLf ' ' MsgBox(dt_RechnungsTexte.Rows(0)("Text") & vbCrLf) 'End If Select Case RECHNUNG.Firma_ID Case 4 Dim PARK = RECHNUNG.POSITIONEN.FindAll(Function(x) (x.LeistungsNr = 313 Or x.LeistungsNr = 312)) If PARK IsNot Nothing AndAlso PARK.Count > 0 Then Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "Place of fulfilment: DE-94152 Neuhaus am Inn " & vbCrLf & "The tax was paid at the tax office DE-94032 Passau under the tax number 153/105/80268 (UID:DE245897610)" & vbCrLf Case Else : strText = strText & "Leistungsort: DE-94152 Neuhaus am Inn " & vbCrLf & "Die Steuer wurde beim Finanzamt DE-94032 Passau unter der Steuernummer 153/105/80268 abgeführt (UID:DE245897610)" & vbCrLf End Select End If Case 21, 22, 23 Dim VORL = RECHNUNG.POSITIONEN.FindAll(Function(x) (x.LeistungsNr = 700 Or x.LeistungsNr = 710)) ' If ZZKdZahlungszielVL <> ZZKdZahlungsziel Then If VORL IsNot Nothing AndAlso VORL.Count > 0 Then Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText.Replace("", "If payment is received by , you can deduct the template commission charged. " & vbCrLf) Case Else : strText = strText.Replace("", "Bei Zahlungseingang bis zum können Sie die verrechnete Vorlageprovision in Abzug bringen. " & vbCrLf) End Select End If ' End If End Select 'strText = strZahlbar & vbNewLine & strText ' Text in Rechnungskopfsatz übernehmen. strText = strText.Replace("", "") If strText = "" Then RECHNUNG.Text = Nothing Else strText.Replace("", If(RECHNUNG_AD.E_Mail, " - ")) RECHNUNG.Text = strText End If End If 'Select Case RECHNUNG.Firma_ID ' Case "21", "22", "23" ' strText = strText.Replace("", "") 'End Select If SPEDBUCH IsNot Nothing Then 'CBAM! Select Case SPEDBUCH.Abfertigungsart Case 1, 2, 3, 4, 23, 28, 26, 38, 39, 47 'If checkAnlage_Orig(RECHNUNG) Then Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "IMPORTANT INFORMATION: From 01.10.2023, a reporting obligation (CBAM) was introduced for the import of certain goods from third countries into EU. The importer is responsible for this notification." & vbCrLf & "Information at www.zoll.de or www.customs-consulting.at keyword CBAM" & vbCrLf & vbCrLf Case Else : strText = strText & "WICHTIGE INFORMATION: Ab 01.10.2023 wurde eine Meldepflicht (CBAM) beim Import bestimmter Waren aus Drittländern in die EU eingeführt. Der Importeur ist für diese Meldung eigenverantwortlich." & vbCrLf & "Informationen unter www.zoll.de oder www.customs-consulting.at Stichwort CBAM" & vbCrLf & vbCrLf End Select 'End If End Select Select Case SPEDBUCH.Abfertigungsart Case 1, 2, 3, 4, 23, 28, 39, 47 If checkAnlage_Orig(RECHNUNG) Then Select Case RECHNUNG.RechnungSprache Case "EN" : strText = strText & "Please keep the original documents (e.g. ATR, EUR1) carefully for at least 7 years, as these will be required for any inspections by the customs authorities!" & vbCrLf Case Else : strText = strText & "Bitte bewahren Sie die Original Dokumente (zB ATR, EUR1) mind. 7 Jahre sorgfältig auf, diese werden bei etwaigen Prüfungen durch die Zollbehörde benötigt!" & vbCrLf End Select End If End Select End If 'MsgBox("Firma:" & RECHNUNG.Firma_ID & " - Land:" & "" & RECHNUNG.RechnungsLandKz & " - OffertenNr:" & RECHNUNG.OffertenNr & " - TXT: " & strText) Return strText End Function Shared Function getRTXT_SQL(ByRef strText, RECHNUNG, RECHNUNG_AD, Optional FIRMA_ID = Nothing, Optional LandKz = Nothing, Optional OffertenNr = Nothing, Optional EMailRechnung = Nothing, Optional ImmerAnfuegen = False) As Boolean ' Informations- und Werbetexte drucken Dim sqlStr = "SELECT * FROM Rechnungstexte WHERE 1=1" If FIRMA_ID IsNot Nothing Then sqlStr &= " AND Firma_ID='" & RECHNUNG.Firma_ID & "' " Else sqlStr &= " AND Firma_ID is null" End If If LandKz IsNot Nothing Then sqlStr &= " AND LandKz='" & LandKz & "' " Else sqlStr &= " AND LandKz is null" End If If OffertenNr IsNot Nothing Then sqlStr &= " AND OffertenNr='" & OffertenNr & "' " Else sqlStr &= " AND OffertenNr is null" End If If ImmerAnfuegen Then sqlStr &= " AND ImmerAnfuegen=1 " Else sqlStr &= " AND ImmerAnfuegen=0 " End If If EMailRechnung IsNot Nothing Then 'Wennn Rechnung als Email geschickt werden sollte Rechnungsdruck=2 If If(RECHNUNG_AD.Rechnungsdruck, -1) = 2 And If(RECHNUNG_AD.E_Mail, "") <> "" Then sqlStr &= " AND EMailRechnung=1 " End If Select Case RECHNUNG.[BelegartenNr] Case 70 sqlStr &= " AND (DrucksteuerungsKz='R' OR DrucksteuerungsKz='') " Case 71 sqlStr &= " AND (DrucksteuerungsKz='G' OR DrucksteuerungsKz='') " End Select ' MsgBox(sqlStr & " order by Firma_ID desc,LandKz desc,Offertennr desc") If RECHNUNG.[Vorkasse] Then sqlStr &= " AND (Textschlüssel<>16) " 'Bei Vorkasse soll dieser Text nicht aufscheinen (AMBAR) End If Dim dt_RechnungsTexte As DataTable = SQL.loadDgvBySql(sqlStr & " order by Firma_ID desc,LandKz desc,Offertennr desc", "FMZOLL") If dt_RechnungsTexte.Rows.Count > 0 Then strText &= dt_RechnungsTexte.Rows(0)("Text") & vbCrLf Return True End If Return False End Function Shared Function checkIfcheckIfZollbelege(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Boolean For Each POS In RECHNUNG.POSITIONEN If (POS.LeistungsNr = 10 Or POS.LeistungsNr = 60 Or POS.LeistungsNr = 70) Then Return True End If Next Return False End Function Shared Function checkIfKreditaufwendungen(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Boolean For Each POS In RECHNUNG.POSITIONEN If POS.LeistungsNr = 750 And POS.BerechnungsartNr = 9 Then Return True End If Next Return False End Function Shared Function getRgDatInput(txt As String, ByRef RechnungsDatum As Date) As Boolean Dim f As New frmRechnungsdatum() f.ShowDialog() RechnungsDatum = f.Datum Return True 'If txt <> "" Then txt &= vbNewLine & vbNewLine 'Dim RechnungsDatumText = InputBox(txt & "Bitte geben Sie das Rechnungsdatum an: ", "Rechnungsdatum", Now.ToShortDateString) 'If IsDate(RechnungsDatumText) Then ' RechnungsDatum = CDate(CDate(RechnungsDatumText).ToShortDateString & Now.ToString(" HH:mm:ss")) ' Return True 'End If 'Return False End Function 'Shared Function Datum_Per_Inpubox(txt) As String ' Datum_Per_Inpubox = InputBox(txt & "Bitte geben Sie das Rechnungsdatum an: ", "Rechnungsdatum", Now.ToShortDateString) ' If Not IsDate(CDate(Datum_Per_Inpubox)) Then Return "" 'End Function Public Shared Function doRechnungsDruck_SRorER(RK_ID As Integer, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printStbVdb As Boolean = False, Optional AnlageEinzelRg As Boolean = False, Optional sammelrechnungKopie As Boolean = False, Optional onlyAsfinagAttach As Boolean = False) As Boolean If RK_ID <= 0 Then Return False Dim RG_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID) If RG_TMP.Sammelrechnung = 0 Then Return doRechnungsDruck(New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID), RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, , printStbVdb) ElseIf RG_TMP.Sammelrechnung = 6 Then Return cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", AnlageEinzelRg, True, Rechnugnsdruck, Path, False,,,,,,,, True, True, sammelrechnungKopie,,, onlyAsfinagAttach, True) Else Return cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", AnlageEinzelRg, , Rechnugnsdruck, Path, True) End If End Function Public Shared Function doRechnungsDruck(RK_ID As Integer, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional ByRef printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False) As Boolean If RK_ID <= 0 Then Return False Return doRechnungsDruck(New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID), RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, printOriginalRg, SammelrechnungAnlagendruck, printStbVdb) End Function Public Shared Function doRechnungsDruck_MAIL(RK_ID As Integer, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False, Optional printRgCopy As Boolean = False) As Boolean If RK_ID <= 0 Then Return False Dim RG_TMP = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID) If RG_TMP Is Nothing Then Return False Dim SPEDBUCH_TMP = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(RG_TMP.FilialenNr, RG_TMP.AbfertigungsNr, RG_TMP.SpeditionsbuchUnterNr) If Rechnugnsdruck <= 0 Then Rechnugnsdruck = 3 ' Default Mail If SPEDBUCH_TMP Is Nothing Then Return False Dim f As New frmFaktEmail(RG_TMP, SPEDBUCH_TMP, Nothing, Rechnugnsdruck, RG_TMP.Firma_ID, RechnungsDatum) f.Show() Return True ' Return doRechnungsDruck(New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID), RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, SammelrechnungAnlagendruck, printStbVdb) End Function Shared Sub initRgFirma(ByRef rpt As rptRechnungDruck, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, Rechnung As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) rpt.lblFirmaOrt.Text = If(FIRMA.Firma_Ort, "") rpt.lblFirmaStrasse.Text = If(FIRMA.Firma_Straße, "") rpt.lblFirmaTel.Text = If(FIRMA.Firma_Telefon, "") rpt.lblFirmaFax.Text = If(FIRMA.Firma_Telefax, "") rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") rpt.lblFirmaWeb.Text = If(FIRMA.Firma_Webadresse, "") rpt.lblFirma.Text = (If(FIRMA.Firma_Bez, "") & ", " & If(FIRMA.Firma_Ort, "")).ToString.Replace(" (DE)", "") If FIRMA.Firma_ID = 1 Then rpt.lblFirma.Text &= vbNewLine & "D-94152 Neuhaus/Inn, Hartham 6" rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim rpt.lblUID.Text = If(FIRMA.Firma_UID, "").ToString.Replace("UID:", "").Trim rpt.lblEORI.Text = If(FIRMA.Firma_EORI, "").ToString.Replace("EORI:", "").Trim If FIRMA.Firma_ID = 4 Then rpt.lblEORIUeberschrift.Text = "St-Nr.:" rpt.lblFirma.Visible = False rpt.Line15.Visible = False End If rpt.txtBank3.Visible = False Select Case FIRMA.Firma_ID'VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case 21 '"UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) Case 22 '"UNISPED DE" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) rpt.lblFirma.Text = If(FIRMA.Firma_Bez, "") ' Ohne Ort gewünscht! Case 23 '"UNISPED ZS" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) Case 24 '"AMBAR DE" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank3.Visible = True 'Änderung Ticket_Nr.: 6983 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR67 0006 2000 5440 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'Änderung Ticket Nr.: 18615 rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: 60 0006 2001 6750 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) rpt.txtDisclaimer.Text = rpt.txtDisclaimer.Text.Replace("Schärding oder Passau", "Bad Reichenhall") Case 26 rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.picVERAG.Size = New SizeF(2.712, 0.61) Case 20 '"IMEX" If Rechnung.RechnungsLandKz = "TR" Then 'rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Beykent Ticari - Hesap: 9098713" ' rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR21 0006 2000 5440 0009 0818 67" & vbNewLine & "BLZ Sube.: 544 - Beykent Ticari - Hesap: 9081867" 'OLD:rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Hadimköy Ticari - Hesap: 9098713" rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR14 0006 2001 6750 0009 0818 67 " & vbNewLine & "BLZ Sube.: 1675 - Hadimköy Ticari - Hesap: 9081867" rpt.txtBank2.Text = "" Else If hasVK(Rechnung) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else If hasEUSTZOLL(Rechnung) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" End If End If End If Case 7 ' ATILLA If Rechnung.RechnungsLandKz = "TR" Then rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) If Not hasEUSTZOLL(Rechnung) Then 'falscher IBAN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 'rpt.txtBank1.Text = "Türkei:" & vbNewLine & "Garanti Bank Hadimköy" & vbNewLine & "EUR-IBAN: TR08 6 2000 5440 0009 0603 73" & vbNewLine & "Hesap Numarası: 544-9060373" rpt.txtBank1.Text = "Türkei:" & vbNewLine & "Garanti Bank Hadimköy" & vbNewLine & "EUR-IBAN: TR08 0006 2000 5440 0009 0603 73" & vbNewLine & "Hesap Numarası: 544-9060373" End If Else rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) End If Case Else 'VERAG If Rechnung.RechnungsLandKz = "TR" Then rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) If Not hasEUSTZOLL(Rechnung) Then rpt.txtBank1.Text = "Türkei:" & vbNewLine & "Garanti Bank Hadimköy " & vbNewLine & "EUR-IBAN: TR96 0006 2000 5440 0009 0672 28" & vbNewLine & "SWIFT: TGBATRISXXX | Kto: 544" End If Else rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) End If 'TR Bankverbindung 'Dim RgBetrag = (Rechnung.SteuerfreierGesamtbetrag + Rechnung.SteuerpflichtigerGesamtbetrag) 'If Rechnung.RechnungsLandKz = "TR" And RgBetrag <= 500 And RgBetrag >= -500 Then ' rpt.txtBank2.Text = "Garanti Bank " & vbNewLine & "Eur Iban: TR 96 0006 2000 5440 0009 0672 28" & vbNewLine & "Kto: 544 Swift kodu: TGBATRISXXX" 'End If End Select End Sub Shared Sub initRgFirma_MDM(ByRef rpt As rptRechnungDruck_MDM, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, Rechnung As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) rpt.lblFirmaOrt.Text = If(FIRMA.Firma_Ort, "") rpt.lblFirmaStrasse.Text = If(FIRMA.Firma_Straße, "") rpt.lblFirmaTel.Text = If(FIRMA.Firma_Telefon, "") rpt.lblFirmaFax.Text = If(FIRMA.Firma_Telefax, "") rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") rpt.lblFirmaWeb.Text = If(FIRMA.Firma_Webadresse, "") rpt.lblFirma.Text = (If(FIRMA.Firma_Bez, "") & ", " & If(FIRMA.Firma_Ort, "")).ToString.Replace(" (DE)", "") If FIRMA.Firma_ID = 1 Then rpt.lblFirma.Text &= vbNewLine & "D-94152 Neuhaus/Inn, Hartham 6" rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim rpt.lblUID.Text = If(FIRMA.Firma_UID, "").ToString.Replace("UID:", "").Trim rpt.lblEORI.Text = If(FIRMA.Firma_EORI, "").ToString.Replace("EORI:", "").Trim If FIRMA.Firma_ID = 4 Then rpt.lblEORIUeberschrift.Text = "St-Nr.:" rpt.lblFirma.Visible = False rpt.Line15.Visible = False End If rpt.txtBank3.Visible = False If hasVK(Rechnung) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else If hasEUSTZOLL(Rechnung) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" End If End If Select Case FIRMA.Firma_ID Case 19 'MDM rpt.txtDisclaimer.Text = "Wir arbeiten ausschließlich aufgrund der Allgemeinen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf unsere Rechnungen, Spesen und Zinsen, zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding. Steuer-, Zoll- und Tarifauskünfte sind unverbindlich." If Rechnung.RechnungsLandKz = "TR" Then rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) If Not hasEUSTZOLL(Rechnung) Then rpt.txtBank1.Text = "Türkei:" & vbNewLine & "Garanti Bank Hadimköy " & vbNewLine & "EUR-IBAN: TR96 0006 2000 5440 0009 0672 28" & vbNewLine & "SWIFT: TGBATRISXXX | Kto: 544" End If Else rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) End If Case Else 'VERAG If Rechnung.RechnungsLandKz = "TR" Then rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) If Not hasEUSTZOLL(Rechnung) Then rpt.txtBank1.Text = "Türkei:" & vbNewLine & "Garanti Bank Hadimköy " & vbNewLine & "EUR-IBAN: TR96 0006 2000 5440 0009 0672 28" & vbNewLine & "SWIFT: TGBATRISXXX | Kto: 544" End If Else rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) End If End Select End Sub Shared Sub initRgFirmaSammelRg(ByRef rpt As rptSammelRechnungDruck, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RechnungsNr As Integer, RechnungsLandKz As String, Buchungsjahr As Object) rpt.lblFirmaOrt.Text = If(FIRMA.Firma_Ort, "") rpt.lblFirmaStrasse.Text = If(FIRMA.Firma_Straße, "") rpt.lblFirmaTel.Text = If(FIRMA.Firma_Telefon, "") rpt.lblFirmaFax.Text = If(FIRMA.Firma_Telefax, "") rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") rpt.lblFirmaWeb.Text = If(FIRMA.Firma_Webadresse, "") rpt.lblFirma.Text = (If(FIRMA.Firma_Bez, "") & ", " & If(FIRMA.Firma_Ort, "")).ToString.Replace(" (DE)", "") If FIRMA.Firma_ID = 1 Then rpt.lblFirma.Text &= vbNewLine & "D-94152 Neuhaus/Inn, Hartham 6" rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim rpt.lblUID.Text = If(FIRMA.Firma_UID, "") rpt.lblEORI.Text = If(FIRMA.Firma_EORI, "") 'Für Vorschau: If Buchungsjahr Is DBNull.Value Then Buchungsjahr = Now.Year If Buchungsjahr Is Nothing Then Buchungsjahr = Now.Year rpt.txtBank3.Visible = False ' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Select Case FIRMA.Firma_ID Case 21, 22, 23 '"UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim Case 24 '"AMABR" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank3.Visible = True 'Änderung Ticket_Nr.: 6983 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR67 0006 2000 5440 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'Änderung Ticket Nr.: 18615 rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: 60 0006 2001 6750 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim rpt.txtDisclaimer.Text = rpt.txtDisclaimer.Text.Replace("Schärding oder Passau", "Bad Reichenhall") Case 26 'VERAG-UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim Case 20 '"IMEX" If RechnungsLandKz = "TR" Then 'rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Beykent Ticari - Hesap: 9098713" 'OLD:rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Hadimköy Ticari - Hesap: 9098713" rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR14 0006 2001 6750 0009 0818 67 " & vbNewLine & "BLZ Sube.: 1675 - Hadimköy Ticari - Hesap: 9081867" rpt.txtBank2.Text = "" Else If hasVK(RechnungsNr, Buchungsjahr) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else If hasEUSTZOLL(RechnungsNr) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" End If End If End If Case Else 'VERAG,ATILLA If RechnungsLandKz = "TR" Then rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) If Not hasEUSTZOLL(RechnungsNr) Then rpt.txtBank1.Text = "Türkei:" & vbNewLine & "Garanti Bank Hadimköy " & vbNewLine & "EUR-IBAN: TR96 0006 2000 5440 0009 0672 28" & vbNewLine & "SWIFT: TGBATRISXXX | Kto: 544" End If Else rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) End If End Select End Sub Shared Sub initRgFirmaSammelRg_Bericht(ByRef rpt As rptSammelRechnungAnlagenDruck, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RechnungsNr As Integer, RechnungsLandKz As String, Buchungsjahr As Object) rpt.lblFirmaOrt.Text = If(FIRMA.Firma_Ort, "") rpt.lblFirmaStrasse.Text = If(FIRMA.Firma_Straße, "") rpt.lblFirmaTel.Text = If(FIRMA.Firma_Telefon, "") rpt.lblFirmaFax.Text = If(FIRMA.Firma_Telefax, "") rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") rpt.lblFirmaWeb.Text = If(FIRMA.Firma_Webadresse, "") rpt.lblFirma.Text = (If(FIRMA.Firma_Bez, "") & ", " & If(FIRMA.Firma_Straße, "").ToString & ", " & If(FIRMA.Firma_Ort, "")).ToString.Replace(" (DE)", "") If FIRMA.Firma_ID = 1 Then rpt.lblFirma.Text &= vbNewLine & "D-94152 Neuhaus/Inn, Hartham 6" 'If FIRMA.Firma_ID = 19 Then rpt.lblFirma.Text &= vbNewLine & "VERAG Spedition GmbH, Hartham 6, D-94152 Neuhaus/Inn" rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim rpt.lblUID.Text = If(FIRMA.Firma_UID, "") rpt.lblEORI.Text = If(FIRMA.Firma_EORI, "") 'Für Vorschau: If Buchungsjahr Is DBNull.Value Then Buchungsjahr = Now.Year If Buchungsjahr Is Nothing Then Buchungsjahr = Now.Year rpt.txtBank3.Visible = False ' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Select Case FIRMA.Firma_ID Case 21, 22, 23 '"UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim Case 26 'VERAG-UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim Case 24 'AMBAR" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank3.Visible = True 'Änderung Ticket_Nr.: 6983 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR67 0006 2000 5440 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: 60 0006 2001 6750 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim rpt.txtDisclaimer.Text = rpt.txtDisclaimer.Text.Replace("Schärding oder Passau", "Bad Reichenhall") Case 20 '"IMEX" If RechnungsLandKz = "TR" Then ' rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Beykent Ticari - Hesap: 9098713" 'OLD:rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Hadimköy Ticari - Hesap: 9098713" rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR14 0006 2001 6750 0009 0818 67 " & vbNewLine & "BLZ Sube.: 1675 - Hadimköy Ticari - Hesap: 9081867" rpt.txtBank2.Text = "" Else If hasVK(RechnungsNr, Buchungsjahr) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else If hasEUSTZOLL(RechnungsNr) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" End If End If End If Case Else 'VERAG,ATILLA, VERAG360 If RechnungsLandKz = "TR" Then rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) If Not hasEUSTZOLL(RechnungsNr) Then rpt.txtBank1.Text = "Türkei:" & vbNewLine & "Garanti Bank Hadimköy " & vbNewLine & "EUR-IBAN: TR96 0006 2000 5440 0009 0672 28" & vbNewLine & "SWIFT: TGBATRISXXX | Kto: 544" End If Else rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) End If End Select End Sub Shared Sub initRgFirmaSammelRg_MDM_Bericht(ByRef rpt As rptSammelRechnungAnlagenDruck_MDM, FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RechnungsNr As Integer, RechnungsLandKz As String, Buchungsjahr As Object) 'ACHTUNG MDM verwedet auch AG und GMBH!!! rpt.lblFirmaOrt.Text = If(FIRMA.Firma_Ort, "") rpt.lblFirmaStrasse.Text = If(FIRMA.Firma_Straße, "") rpt.lblFirmaTel.Text = If(FIRMA.Firma_Telefon, "") rpt.lblFirmaFax.Text = If(FIRMA.Firma_Telefax, "") rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") rpt.lblFirmaWeb.Text = If(FIRMA.Firma_Webadresse, "") rpt.lblFirma.Text = (If(FIRMA.Firma_Bez, "") & ", " & If(FIRMA.Firma_Straße, "").ToString & ", " & If(FIRMA.Firma_Ort, "")).ToString.Replace(" (DE)", "") If FIRMA.Firma_ID = 1 Then rpt.lblFirma.Text &= vbNewLine & "D-94152 Neuhaus/Inn, Hartham 6" 'If FIRMA.Firma_ID = 19 Then rpt.lblFirma.Text &= vbNewLine & "VERAG Spedition GmbH, Hartham 6, D-94152 Neuhaus/Inn" rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch:", "").Trim rpt.lblUID.Text = If(FIRMA.Firma_UID, "") rpt.lblEORI.Text = If(FIRMA.Firma_EORI, "") 'Für Vorschau: If Buchungsjahr Is DBNull.Value Then Buchungsjahr = Now.Year If Buchungsjahr Is Nothing Then Buchungsjahr = Now.Year rpt.txtBank3.Visible = False ' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Select Case FIRMA.Firma_ID Case 21, 22, 23 '"UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim Case 26 'VERAG-UNISPED" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim Case 24 'AMBAR" rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank3.Visible = True 'Änderung Ticket_Nr.: 6983 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim 'rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: TR90 0006 2001 6040 0009 0804 66" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim rpt.txtBank3.Text = "Garanti Bank Türkei – Euro Konto" & vbNewLine & "IBAN: 60 0006 2001 6750 0009 0513 57" & vbNewLine & "BIC/SWIFT: TGBATRISXXX".ToString.Trim rpt.txtDisclaimer.Text = rpt.txtDisclaimer.Text.Replace("Schärding oder Passau", "Bad Reichenhall") Case 20 '"IMEX" If RechnungsLandKz = "TR" Then ' rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Beykent Ticari - Hesap: 9098713" 'OLD:rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Hadimköy Ticari - Hesap: 9098713" rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR14 0006 2001 6750 0009 0818 67 " & vbNewLine & "BLZ Sube.: 1675 - Hadimköy Ticari - Hesap: 9081867" rpt.txtBank2.Text = "" Else If hasVK(RechnungsNr, Buchungsjahr) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else If hasEUSTZOLL(RechnungsNr) Then rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" Else rpt.txtBank1.Text = "Volksbank Oberösterreich AG" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBOEATWWOOE" rpt.txtBank2.Text = "" End If End If End If Case Else 'VERAG,ATILLA, VERAG360 rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "Deutschland:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) End Select End Sub Shared Function hasEUSTZOLL(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Boolean For Each pos In RECHNUNG.POSITIONEN Select Case pos.LeistungsNr Case 10, 20, 60, 67, 66 : Return True End Select Next Return False End Function Shared Function hasEUSTZOLL(RechnungsNr As Integer) As Boolean ' MsgBox(SQL.getValueTxtBySql("SELECT top 1 isnull(count(*),0) FROM [VERAG].[dbo].[RechnungsausgangPositionen] as POS inner join Rechnungsausgang as RA on Ra.RK_ID=pos.RK_ID where RechnungsNr='" & RechnungsNr & "' AND LeistungsNr IN (10, 20, 60, 67, 66 )", "FMZOLL")) Return CBool(CInt(SQL.getValueTxtBySql("SELECT top 1 isnull(count(*),0) FROM [VERAG].[dbo].[RechnungsausgangPositionen] as POS inner join Rechnungsausgang as RA on Ra.RK_ID=pos.RK_ID where RechnungsNr='" & RechnungsNr & "' AND LeistungsNr IN (10, 20, 60, 67, 66 )", "FMZOLL")) > 0) End Function Shared Function hasVK(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Boolean Return CBool(CInt(SQL.getValueTxtBySql("SELECT TOP 1 isnull(count(*),0) FROM [tblVorauskassen] WHERE [vk_FilialeNr]='" & RECHNUNG.FilialenNr & "' AND [vk_AbfertigungsNr]='" & RECHNUNG.AbfertigungsNr & "' AND [vk_KdNr]='" & RECHNUNG.RechnungsKundenNr & "'", "FMZOLL")) > 0) End Function Shared Function hasVK(RechnungsNr As Integer, Buchungsjahr As Integer) As Boolean Return CBool(CInt(SQL.getValueTxtBySql("SELECT TOP 1 isnull(count(*),0) FROM [tblVorauskassen] inner join Rechnungsausgang ON [vk_FilialeNr]=FilialenNr AND [vk_AbfertigungsNr]=AbfertigungsNr AND [vk_KdNr]=RechnungsKundenNr WHERE RechnungsNr='" & RechnungsNr & "' AND Buchungsjahr='" & Buchungsjahr & "'", "FMZOLL")) > 0) End Function Public Shared Function doRechnungsDruck(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False) As Boolean ' MsgBox(Rechnugnsdruck) If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(RECHNUNG.Firma_ID) If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr) If Not SammelrechnungAnlagendruck Then If vorschau = False And RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Return False End If If Not vorschau Then Select Case RECHNUNG.Rechnungsart Case "RU" : MsgBox("Unvollständige Rechnungen können nur mit einem Rechnungskopf in der Sammelrechnung gedruckt werden! Siehe Rechnungsart.") : Return False Case "RK" : MsgBox("Ein Rechnungskopf kann nur mit zumindest einer unvollständigen Rechnung gedruckt werden! Siehe Rechnungsart.") : Return False End Select End If If FIRMA.Firma_ID <> 19 Then Return doRechnungsdruck_allgemein(RECHNUNG, FIRMA, KD_RG, RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, printOriginalRg, SammelrechnungAnlagendruck, printStbVdb) Else Return doRechnungsdruck_MDM(RECHNUNG, FIRMA, KD_RG, RechnungsDatum, vorschau, Rechnugnsdruck, Path, PrinterName, printOriginalRg, SammelrechnungAnlagendruck, printStbVdb) End If Return False End Function Public Shared Function doRechnungsdruck_allgemein(Rechnung As cRechnungsausgang, firma As cFirmen, KD_RG As cAdressen, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False) Try Dim rpt As New rptRechnungDruck(Rechnung.RechnungSprache) If Rechnung.POSITIONEN.Count = 0 Then MsgBox("Keine Daten vorhanden!") : Return False Dim dtDataSource As New DataTable dtDataSource.Columns.Add("LeistungsNr") dtDataSource.Columns.Add("LeistungsBez") dtDataSource.Columns.Add("Anzahl") dtDataSource.Columns.Add("SteuerpflichtigerBetrag") dtDataSource.Columns.Add("SteuerfreierBetrag") dtDataSource.Columns.Add("Belegdaten") Dim gsBetrTmp As Double = 0 For Each r In Rechnung.POSITIONEN ' dtDataSource.Rows.Add(r.LeistungsNr, r.LeistungsBez, r.Anzahl, r.SteuerpflichtigerBetrag, r.SteuerfreierBetrag, (If(r.Belegdaten, "") & " " & If(r.Aufschubfälligkeit, "")).ToString.Trim) dtDataSource.Rows.Add(r.LeistungsNr, r.LeistungsBez, r.Anzahl, r.SteuerpflichtigerBetrag, r.SteuerfreierBetrag, If(r.Belegdaten, "").ToString.Trim) gsBetrTmp += CDbl(r.SteuerpflichtigerBetrag + r.SteuerfreierBetrag) Next If gsBetrTmp = 0 Then MsgBox("Rechnungsbetrag ist EUR 0,- ") : Return False Dim dataView As New DataView(dtDataSource) dataView.Sort = " LeistungsNr " Dim dtTmp As DataTable = dataView.ToTable() ' rpt.DataSource = SQL.loadDgvBySql("SELECT * FROM [Rechnungsausgangpositionen] where RK_ID ='" & RECHNUNG.RK_ID & "' ", "FMZOLL") rpt.DataSource = dtTmp '' MsgBox(rpt.DataSource.rows.count) 'If rpt.DataSource.rows.count = 0 Then ' rpt.Dispose() ' MsgBox("Keine Daten vorhanden!") ' Return False 'End If Dim sum = 0 Select Case Rechnung.RechnungSprache Case "EN" Select Case Rechnung.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "INVOICE" rpt.lblSummeUeberschrift.Text = "Invoice Amount:" rpt.lblRgNrUeberschrift.Text = "Invoice No.:" rpt.lblRgDatumUeberschrift.Text = "Invoice Date:" Case "AG" rpt.lblUeberschriftRG_GS.Text = "CREDIT NOTE" rpt.lblSummeUeberschrift.Text = "Credit Amount:" rpt.lblRgNrUeberschrift.Text = "Credit Note No.:" rpt.lblRgDatumUeberschrift.Text = "Credit Note Date:" End Select Case "RO" Select Case Rechnung.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "FACTURA" rpt.lblSummeUeberschrift.Text = "Total" rpt.lblRgNrUeberschrift.Text = "Nr. factura:" rpt.lblRgDatumUeberschrift.Text = "Data factura:" Case "AG" rpt.lblUeberschriftRG_GS.Text = "NOTA DE CREDIT" rpt.lblSummeUeberschrift.Text = "Total" rpt.lblRgNrUeberschrift.Text = "Nr. nota credit:" rpt.lblRgDatumUeberschrift.Text = "Data nota credit:" End Select Case Else Select Case Rechnung.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "RECHNUNG" Case "AG" rpt.lblUeberschriftRG_GS.Text = "GUTSCHRIFT" rpt.lblSummeUeberschrift.Text = "Gutschriftsbetrag:" rpt.lblRgNrUeberschrift.Text = "Gutschrifts-Nr.:" rpt.lblRgDatumUeberschrift.Text = "Gutschrifts-Datum:" End Select End Select initRgFirma(rpt, firma, Rechnung) Select Case Rechnung.Firma_ID Case 1 ' rpt.picVERAG.Image= My.Resources.Verag_AG_Logo : rpt.Picture1.Image = My.Resources.aeo_AT_imex is eh standard Case 4 : rpt.picVERAG.Image = My.Resources.Verag_AG_Logo : rpt.Picture1.Image = Nothing Case 7 : rpt.picVERAG.Image = My.Resources.Atilla_big_med : rpt.Picture1.Image = Nothing Case 11 : rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo : rpt.Picture1.Image = My.Resources.aeo_CS Case 17 : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal : rpt.Picture1.Image = Nothing 'Case 19 : rpt.picVERAG.Image = My.Resources.VERAG_360 : rpt.Picture1.Image = Nothing Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex Case 21 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT Case 22 : rpt.picVERAG.Image = My.Resources.Unisped_DE_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_DE Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo : rpt.Picture1.Image = Nothing Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT Case 24 : rpt.picVERAG.Image = My.Resources.ambar_boarder : rpt.Picture1.Image = Nothing rpt.txtAvisierer.Visible = False : rpt.lblAvisiererUeberschrift.Visible = False : rpt.txtWarenwert.Visible = False : rpt.lblWarenWertUeberschrift.Visible = False End Select Dim ZZTage = 10 Dim ZZTageVL = 10 Dim ZZKdZahlungsziel = SQL.DLookup("Zahlungsziel", "Kunden", "Kundennr=" & Rechnung.RechnungsKundenNr, "FMZOLL", 10) If ZZKdZahlungsziel IsNot Nothing AndAlso IsNumeric(ZZKdZahlungsziel) Then ZZTage = ZZKdZahlungsziel ZZTageVL = ZZTage End If Dim ZZKdZahlungszielVL = SQL.DLookup("kde_abweichendesZZVL", "tblKundenErweitert", "kde_KundenNr=" & Rechnung.RechnungsKundenNr, "FMZOLL", 10) If ZZKdZahlungszielVL IsNot Nothing AndAlso IsNumeric(ZZKdZahlungszielVL) Then ZZTageVL = ZZKdZahlungszielVL End If Select Case Rechnung.RechnungSprache Case "EN" : rpt.Label2.Text = ZZTage & " Days" : rpt.Label1.Text = "Payment target:" : rpt.lblSendungsdatenUeberschrift.Text = "Service:" Case "RO" : rpt.Label2.Text = ZZTage & " Zile" : rpt.Label1.Text = "Termen de plată:" : rpt.lblSendungsdatenUeberschrift.Text = "Descriere:" Case Else : rpt.Label2.Text = ZZTage & " Tage" : rpt.lblSendungsdatenUeberschrift.Text = "Bezeichnung:" End Select Select Case Rechnung.Firma_ID Case 21, 22, 23, 26 : rpt.Label1.Visible = False : rpt.Label2.Visible = False 'Ka warum End Select rpt.lblKundenNr.Text = If(Rechnung.RechnungsKundenNr > 0, Rechnung.RechnungsKundenNr, "") rpt.lblRgNr.Text = If(Rechnung.RechnungsNr > 0, addYeartoRgNr(firma.Firma_ID, Rechnung.Buchungsjahr) & Rechnung.RechnungsNr, "Vorschau") rpt.lblRgDatum.Text = If(Rechnung.RechnungsDatum IsNot Nothing, CDate(Rechnung.RechnungsDatum).ToShortDateString, "VORSCHAU") 'rpt.lblKundenAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") 'If rpt.lblKundenAuftragsnummer.Text = String.Empty Then rpt.lblKundenAuftragsnummerUeberschrift.Visible = False rpt.lblAbfertigungsNr.Text = Rechnung.FilialenNr & " / " & Rechnung.AbfertigungsNr & " " & Rechnung.UnterNr.ToString("00") rpt.lblAbfertigungsDatum.Text = Rechnung.Abfertigungsdatum.ToShortDateString rpt.lblLKWId.Text = If(Rechnung.AvisoID, "") Dim sachbearbeiterAufRechnung = getSBRgName(Rechnung.Firma_ID, Rechnung.Sachbearbeiter) rpt.lblSachbearbeiter.Text = IIf(sachbearbeiterAufRechnung = "Herr Ordu", "Verrechnung", sachbearbeiterAufRechnung) 'If(RECHNUNG.Sachbearbeiter, "") rpt.txtAbsender.Text = If(Rechnung.AbsenderName_1, "") & " " & If(Rechnung.AbsenderName_2, "") & vbNewLine & If(Rechnung.AbsenderOrt, "").ToString.Trim rpt.txtEmpfaenger.Text = If(Rechnung.EmpfängerName_1, "") & " " & If(Rechnung.EmpfängerName_2, "") & vbNewLine & If(Rechnung.EmpfängerOrt, "").ToString.Trim rpt.txtAvisierer.Text = If(Rechnung.Avisierer, "") If firma.Firma_ID = 4 Then rpt.lblWarenWertUeberschrift.Visible = False rpt.txtWarenwert.Visible = False rpt.txtGrenze.Visible = False rpt.txtGrenzeUeberschrift.Visible = False End If rpt.txtZollbelegNr.Text = If(Rechnung.BelegNr, "") Dim waehrungCode As String = SQL.getValueTxtBySql("SELECT isnull(Währungscode,'') FROM Währungstabelle WHERE Währungsschlüssel = " & If(Rechnung.[WährungsNr], -1) & ";", "FMZOLL") If IsNumeric(If(Rechnung.Wert, "")) Then ' rpt.txtWarenwert.Text = CDbl(RECHNUNG.Wert).ToString("N2") & " " & If(RECHNUNG.Währungscode, "") rpt.txtWarenwert.Text = CDbl(Rechnung.Wert).ToString("N2") & " " & waehrungCode Else ' rpt.txtWarenwert.Text = If(RECHNUNG.Wert, "") & " " & If(RECHNUNG.Währungscode, "") rpt.txtWarenwert.Text = If(Rechnung.Wert, "") & " " & waehrungCode End If rpt.txtSendungsdaten.Text = If(Rechnung.Packstücke_und_Warenbezeichnung, "") If rpt.txtSendungsdaten.Text.Length > 200 Then rpt.txtSendungsdaten.Text = rpt.txtSendungsdaten.Text.Substring(0, 200) rpt.txtSendungsdaten.Text = rpt.txtSendungsdaten.Text.Replace(", 0,0 kg", "") '0kg ausblenden rpt.txtBeförderungsmittel.Text = If(Rechnung.LKW_Kennzeichen, "") rpt.txtGrenze.Text = If(Rechnung.Grenze, "") If rpt.txtGrenze.Text.Trim = String.Empty Then rpt.txtGrenze.Text = SQL.getValueTxtBySql("SELECT TOP 1 isnull([Grenzstelle],'') FROM [Filialen] where FilialenNr='" & Rechnung.FilialenNr & "'", "FMZOLL") If rpt.txtGrenze.Text.Trim = String.Empty Then rpt.txtGrenzeUeberschrift.Visible = False rpt.lblRechnungAn.Text = If(Rechnung.RechnungsName_1, "") & vbNewLine If If(Rechnung.RechnungsName_2, "") <> "" Then rpt.lblRechnungAn.Text &= Rechnung.RechnungsName_2 & vbNewLine If If(Rechnung.RechnungsStraße, "") <> "" Then rpt.lblRechnungAn.Text &= Rechnung.RechnungsStraße & vbNewLine If If(Rechnung.RechnungsName_AdressZusatz, "") <> "" Then rpt.lblRechnungAn.Text &= Rechnung.RechnungsName_AdressZusatz & vbNewLine If If(Rechnung.RechnungsOrt, "") <> "" Then rpt.lblRechnungAn.Text &= Rechnung.RechnungsOrt & vbNewLine If If(Rechnung.RechnungsLandKz, "") <> "" Then rpt.lblRechnungAn.Text &= cProgramFunctions.getLandBez_fromISO1Land(Rechnung.RechnungsLandKz, "", Rechnung.RechnungSprache).ToString.ToUpper 'If If(RECHNUNG.RechnungsName_2, "") = "" Then ' rpt.lblRechnung_Name1.Text = "" ' rpt.lblRechnung_Name2.Text = If(RECHNUNG.RechnungsName_1, "") 'Else ' rpt.lblRechnung_Name1.Text = If(RECHNUNG.RechnungsName_1, "") ' rpt.lblRechnung_Name2.Text = If(RECHNUNG.RechnungsName_2, "") 'End If 'rpt.lblRechnung_Strasse.Text = If(RECHNUNG.RechnungsStraße, "") 'rpt.lblRechnung_Ort.Text = If(RECHNUNG.RechnungsOrt, "") 'rpt.lblRechnung_Land.Text = cProgramFunctions.getLandBez_fromISO1Land(RECHNUNG.RechnungsLandKz, "", RECHNUNG.RechnungSprache).ToString.ToUpper If KD_RG IsNot Nothing AndAlso If(KD_RG.Steuernummer, "") <> String.Empty Then If Rechnung.Firma_ID = 4 Then rpt.lblRechnung_Steuernummer.Text = If(KD_RG.Steuernummer, "").ToString.Trim 'ohne LandKz gewünscht Else rpt.lblRechnung_Steuernummer.Text = If(KD_RG.LandKz, "") & " " & If(KD_RG.Steuernummer, "").ToString.Trim End If ' rpt.lblRechnung_UID.Text = If(KD_RG.UstIdKz, "") & " " & If(KD_RG.UstIdNr, "").ToString.Trim Else rpt.lblRechnung_Steuernummer.Text = "" ' rpt.lblRechnung_UID.Text = "" End If rpt.lblRechnung_Steuernummer.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_Steuernummer_Ueberschrift.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_UID.Text = If(Rechnung.RechnungsUstIdKz, "") & If(Rechnung.RechnungsUstIdNr, "") rpt.lblRechnung_UID.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.lblRechnung_UID_Ueberschrift.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.txtKdAuftragsNr.Text = If(Rechnung.KdAuftragsNr, "") rpt.txtKdAuftragsNr_Ueberschrift.Visible = (rpt.txtKdAuftragsNr.Text <> String.Empty) rpt.TextBox1.Text = If(Rechnung.TextZZ, "").ToString.Replace("; ", vbNewLine).Trim rpt.txtVermerk.Text = (If(Rechnung.Text, "").ToString.Trim & vbNewLine & vbNewLine & If(Rechnung.Notiz, "").ToString.Trim).ToString.Trim ' REVERSE CHARGE (Übergang der Steuerschuld in EU-Ländern). ' Dies hat zur Folge, dass steuerfreie Rechnungsbeträge für Leistungen, ' die in der Leistungstabelle als ReverseCharge gekennzeichnet sind, ' summiert und auf der Rechnung ausgewiesen werden. If isReverseChargeSumme(firma, Rechnung) Then Select Case Rechnung.RechnungSprache Case "RO" : rpt.txtInfo.Text = "Obligația de TVA este transferată beneficiarului serviciului (Reverse Charge)." Case "EN" : rpt.txtInfo.Text = "VAT liability is transferred to the recipient (Reverse Charge)." Case Else : rpt.txtInfo.Text = "Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren)." End Select 'End If Else : rpt.txtInfo.Text = "" : End If rpt.txtAnlagen.Text = "" If If(Rechnung.Anlage_1, "") <> "" Then rpt.txtAnlagen.Text &= Rechnung.Anlage_1 If If(Rechnung.Anlage_2, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & Rechnung.Anlage_2 If If(Rechnung.Anlage_3, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & Rechnung.Anlage_3 If If(Rechnung.Anlage_4, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & Rechnung.Anlage_4 If If(Rechnung.Anlage_5, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & Rechnung.Anlage_5 If If(Rechnung.Anlage_6, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & Rechnung.Anlage_6 rpt.txtAnlagen.Text = rpt.txtAnlagen.Text.Trim If rpt.txtAnlagen.Text.Replace(" ", "") = "" Then rpt.lblAnlagenUeberschrift.Visible = False Else Select Case Rechnung.RechnungSprache Case "EN" : rpt.lblAnlagenUeberschrift.Text = "Attachment:" Case "RO" : rpt.lblAnlagenUeberschrift.Text = "Anexa:" Case Else : rpt.lblAnlagenUeberschrift.Text = "Anlagen:" End Select End If rpt.txtHandlingATA.Text = If(Rechnung.Handling, "") If rpt.txtHandlingATA.Text.Replace(" ", "") = "" Then rpt.lblHandlingATA.Visible = False End If If rpt.txtAbsender.Text.Trim = String.Empty Then rpt.lblAbsenderUeberschrift.Visible = False If rpt.txtEmpfaenger.Text.Trim = String.Empty Then rpt.lblEmpfaengerUeberschrift.Visible = False If rpt.txtAvisierer.Text.Trim = String.Empty Then rpt.lblAvisiererUeberschrift.Visible = False If rpt.lblLKWId.Text.Trim = String.Empty Then rpt.lblLKWIdUebeschrift.Visible = False If rpt.txtWarenwert.Text.Trim = String.Empty Then rpt.lblWarenWertUeberschrift.Visible = False If rpt.txtZollbelegNr.Text.Trim = String.Empty Then rpt.lblZollbelegNr.Visible = False If rpt.txtBeförderungsmittel.Text.Trim = String.Empty Then rpt.txtBeförderungsmittelUeberschrift.Visible = False 'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung 'ANLAGE ZUR RECHNUNG: If Rechnung.Status = 3 Or Rechnung.Sammelrechnung <> 0 Then rpt.txtAnlagen.Visible = False rpt.lblAnlagenUeberschrift.Visible = False rpt.lblRgDatumUeberschrift.Visible = False rpt.lblRgNrUeberschrift.Visible = False rpt.lblRgDatum.Visible = False rpt.lblRgNr.Visible = False rpt.lblSummeUeberschrift.Visible = False rpt.lblSumme.Visible = False rpt.lblZWSumme.Visible = False rpt.lblZwText.Visible = False rpt.lblSteuersatz.Visible = False rpt.lblSteuerbetrag.Visible = False rpt.Label46.Visible = False rpt.Line1.Visible = False rpt.Line5.Visible = False rpt.Line14.Visible = False rpt.Line8.Visible = False rpt.Line7.Visible = False Select Case Rechnung.RechnungSprache Case "EN" Select Case Rechnung.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "Attachment to invoice" Case "AG" rpt.lblUeberschriftRG_GS.Text = "Attachment to CREDIT NOTE" End Select Case "RO" Select Case Rechnung.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "Anexa la factura colectiva" Case "AG" rpt.lblUeberschriftRG_GS.Text = "Anexa la nota de credit" End Select Case Else Select Case Rechnung.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "Anlage zur Sammelrechnung" Case "AG" rpt.lblUeberschriftRG_GS.Text = "Anlage zur Gutschrift" End Select End Select End If If Not printOriginalRg Then 'sonst wird der originaldruck erzwungen If Rechnung.DruckDatumZeit IsNot Nothing Then Select Case Rechnung.RechnungSprache Case "EN" : rpt.lblUeberschriftRG_GS.Text &= " - COPY" Case "RO" : rpt.lblUeberschriftRG_GS.Text &= " - COPIE" Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" End Select End If End If Dim sumSteuerpflichtig As Double = 0 Dim sumSteuerfrei As Double = 0 Dim vorzeichen = If(If(Rechnung.Vorzeichen, "") = "-", -1, 1) AddHandler rpt.Detail.Format, Sub() rpt.lblLeistungNr.Text = checkNull(rpt.Fields.Item("LeistungsNr").Value) rpt.txtLeistung.Text = checkNull(rpt.Fields.Item("LeistungsBez").Value) If rpt.Fields.Item("Belegdaten").Value IsNot Nothing Then rpt.txtLeistung.Text &= vbNewLine & checkNull(rpt.Fields.Item("Belegdaten").Value) End If rpt.lblAnzahl.Text = checkNull(rpt.Fields.Item("Anzahl").Value) ' rpt.lblBetrag.Text = rpt.Fields.Item("betrag").Value Dim stPfl As Double = 0 Dim stFrei As Double = 0 If IsNumeric(checkNull(rpt.Fields.Item("SteuerpflichtigerBetrag").Value)) Then stPfl = CDbl(rpt.Fields.Item("SteuerpflichtigerBetrag").Value()) rpt.lblSteuerpflichtig.Text = If(stPfl <> 0, CDbl(stPfl * vorzeichen).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") If IsNumeric(checkNull(rpt.Fields.Item("SteuerfreierBetrag").Value)) Then stFrei = CDbl(rpt.Fields.Item("SteuerfreierBetrag").Value()) rpt.lblSteuerfrei.Text = If(stFrei <> 0, CDbl(stFrei * vorzeichen).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") sumSteuerpflichtig += stPfl sumSteuerfrei += stFrei End Sub AddHandler rpt.ReportFooter1.Format, Sub() rpt.lblSteuerpflichtigGes.Text = If(sumSteuerpflichtig <> 0, CDbl(sumSteuerpflichtig * vorzeichen).ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblSteuerfreiGes.Text = If(sumSteuerfrei <> 0, CDbl(sumSteuerfrei * vorzeichen).ToString("N2", CultureInfo.CurrentCulture), "") Dim steuerProz As Double = 0 Dim steuerBez As String = "" Dim dt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & Rechnung.Steuerschlüssel & "'", "FMZOLL") If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then steuerProz = dt.Rows(0)(0) steuerBez = dt.Rows(0)(1) End If Dim tmpSteuerbetrag = CDbl((sumSteuerpflichtig * steuerProz) * vorzeichen) rpt.lblSteuersatz.Text = steuerBez rpt.lblSteuerbetrag.Text = If((sumSteuerpflichtig * steuerProz) <> 0, tmpSteuerbetrag.ToString("N2", CultureInfo.CurrentCulture), "") If tmpSteuerbetrag = 0 Then rpt.lblSteuerbetrag.Visible = False End If rpt.lblZWSumme.Text = CDbl((sumSteuerpflichtig + sumSteuerfrei) * vorzeichen).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSumme.Text = CDbl((sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)) * vorzeichen).ToString("N2", CultureInfo.CurrentCulture) rpt.Label46.Text = If(Rechnung.Währungscode, "EUR") If isSTARK(Rechnung) Then rpt.lblZwText.Text = "Summe EUST" rpt.lblZWSumme.Text = CDbl(getSTARK_EUST(firma, Rechnung)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblZwText.Visible = True rpt.lblZWSumme.Visible = True rpt.lblSteuersatz.Text = "Summe ohne EUST" rpt.lblSteuerbetrag.Text = CDbl(getSTARK_ohneEUST(firma, Rechnung)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSteuersatz.Visible = True rpt.lblSteuerbetrag.Visible = True Else If isReverseChargeSumme(firma, Rechnung) Then Select Case Rechnung.RechnungSprache Case "DE" : rpt.lblZwText.Text = "Summe Steuerfrei" : rpt.lblSteuersatz.Text = "Summe Reverse Charge" Case "EN" : rpt.lblZwText.Text = "Sum Taxfree" : rpt.lblSteuersatz.Text = "Sum Reverse Charge" Case "RO" : rpt.lblZwText.Text = "Suma neimpozabila" : rpt.lblSteuersatz.Text = "Suma Reverse Charge" End Select rpt.lblZWSumme.Text = CDbl(getSteuerfreiEUSTZOLL(firma, Rechnung)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblZwText.Visible = True rpt.lblZWSumme.Visible = True rpt.lblSteuerbetrag.Text = CDbl(getReverseChargeSummeRKID(firma, Rechnung)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSteuersatz.Visible = True rpt.lblSteuerbetrag.Visible = True Else If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False End If End If End If End Sub 'DruckDatumUhrzeit wird gesetzt, falls noch ungedruckt... 'If RECHNUNG.DruckDatumZeit Is Nothing Then ' RECHNUNG.SET_DruckdatumUhrzeit() 'End If If vorschau Then rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) cProgramFunctions.showRpt(rpt, "Rechnungsdruck", False) Return True Else Dim Kopie = True 'ORIGINAL Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(Rechnung.RechnungsKundenNr) If Rechnung.Status = 0 Then If AD IsNot Nothing Then Kopie = False 'Aktualisierung und speichern: If Abrechnugsdaten_AKTUALISIEREN(Rechnung, RechnungsDatum) Then rpt.lblRgNr.Text = If(Rechnung.RechnungsNr > 0, addYeartoRgNr(Rechnung.Firma_ID, Rechnung.Buchungsjahr) & Rechnung.RechnungsNr, "Vorschau") rpt.lblRgDatum.Text = CDate(Rechnung.RechnungsDatum).ToShortDateString If Rechnung.RechnungsDatum IsNot Nothing Then 'Muss zweimal vorkommen, Erstmaliger Druck rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) Else rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) End If Else MsgBox("Fehler bei der Vergabe der Rg-Nr.!") Return False End If Else MsgBox("Fehler: Kein Rechnungsempfänger gefunden!") Return False End If Else If Rechnung.RechnungsDatum IsNot Nothing Then 'Muss zweimal vorkommen, Wiederholungsdruck rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) Else rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) End If If Rechnung.[DruckDatumZeit] Is Nothing Then Rechnung.[DruckDatumZeit] = Now 'Wenn Rg-Nr schon vergeben wird das neu gesetzt Rechnung.SAVE_DruckDatumZeit() ' Nur SAVE_DruckDatumZeit ändern/setzen End If End If If Not Rechnung.checkRechnungsNrIsSet() Then MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen") Return False End If 'Rechnugnsdruck = Individuell für deise Rechnung, wird optional mitgegeben ' Dim RG_Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Rechnung_" & If(RECHNUNG.RechnungsNr, "") & ".pdf" Dim RG_Bezeichnung = If(Rechnung.[BelegartenKz] = "AR", "Rechnung_", "Gutschrift_") & If(Rechnung.RechnungsNr, "") & ".pdf" '-------------------------------- ' --> TEST wegen Size Problem '-------------------------------- If PrinterName <> "" Then rpt.Document.Printer.PrinterName = PrinterName End If rpt.Document.Printer.PaperSize = rpt.Document.Printer.PrinterSettings.DefaultPageSettings.PaperSize 'Immer Exportieren, da in Therefore speichern Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport rpt.Run(False) p.NeverEmbedFonts = "" p.Export(rpt.Document, tmpPath) Dim Paramslist As New cParameterList(VERAG_PROG_ALLGEMEIN.cAllgemein.PROGID) Dim enableZugpferd = Paramslist.GET_PARAMETER_VALUE_BOOL("ZUGFeRD") If enableZugpferd Then tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.addAttachementToPDF(tmpPath, createZUGFeRD(True, Rechnung,), "ZUGFeRD-invoice.xml") Else Dim Zugferdpath = createZUGFeRD(True, Rechnung) Dim fileInfo_ZP As New FileInfo(Zugferdpath) Dim ZUGF_DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "ZUGFERD", Now().Year, "", "", fileInfo_ZP.Name, -1, False) ZUGF_DS.uploadDataToDATENSERVER(Zugferdpath, fileInfo_ZP.Name, fileInfo_ZP.Extension,,,, True) End If Path = tmpPath 'THEREFORE IMPORT: '------------------------------------------------------------------------------- Try If Not Kopie And (Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM OrElse vbYes = MsgBox("TEST - in Therefore speichern?", vbYesNoCancel)) Then VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(tmpPath, Rechnung.FilialenNr & Rechnung.AbfertigungsNr, If(Rechnung.AvisoID, ""), Rechnung.Firma_ID, False) End If Catch ex As Exception MsgBox("Therefore-Import fehlgeschlagen!" & ex.Message & ex.StackTrace) End Try '------------------------------------------------------------------------------- 'ABRECHNUNGS API: '------------------------------------------------------------------------------- If Not Kopie Then Try Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(Rechnung.RechnungsKundenNr) If KUNDE_ERW IsNot Nothing Then 'TRADESHIFT: Try If KUNDE_ERW.kde_API_Tradeshift Then Select Case Rechnung.Firma_ID Case 21, 22, 23 'System.IO.File.Copy(tmpPath, "\\srv01.unisu.at\Unisped\___AR_PDF\" & RG_Bezeichnung, True) System.IO.File.Copy(tmpPath, "\\unidc01.unisu.at\Unisped\___AR_PDF\" & RG_Bezeichnung, True) End Select End If Catch ex As Exception MsgBox("Tradeshift Export fehlgeschlagen! " & ex.Message & ex.StackTrace) End Try End If If Rechnung.Firma_ID = 24 Then Dim API As New DataTable Dim Program = "DATEV-PDF" API = SQL.loadDgvBySql("SELECT top(1) * FROM tblAPIEinstellungen WHERE api_program='" & Program & "' and api_productive ='" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "0", "1") & "'", "ADMIN") If API.Rows.Count = 0 Then MsgBox("keine gültigen API-Einstellungen für " & Program & " gefunden!") Else Dim client As WebClient = New WebClient client.Credentials = New NetworkCredential(API.Rows(0).Item("api_user").ToString, API.Rows(0).Item("api_password").ToString) client.UploadFile(API.Rows(0).Item("api_url") & "/" & RG_Bezeichnung, tmpPath) End If End If Catch ex As Exception MsgBox("API Fehler!" & ex.Message & ex.StackTrace) End Try End If '------------------------------------------------------------------------------- ' MsgBox(Rechnugnsdruck) Dim RD_DRUCK = If(Rechnugnsdruck >= 0, Rechnugnsdruck, If(AD.Rechnungsdruck, 0)) 'If(AD.Rechnungsdruck, 0) ' MsgBox(RD_DRUCK) Select Case RD_DRUCK Case 0, 1 'DRUCKEN Dim ret = cProgramFunctions.printRpt(rpt, PrinterName, False) If printStbVdb AndAlso Rechnung.Firma_ID <> 1 Then If (Rechnung.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Zollbeleg drucken?", vbYesNoCancel)) Then printSpedBuchAnhaenge(Rechnung, True, True) End If End If If Rechnung.ANHAENGE.Count > 0 AndAlso Rechnung.Firma_ID <> 1 Then If (Rechnung.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Anhänge drucken?", vbYesNoCancel)) Then printRGAnhaenge(Rechnung) End If End If Return ret 'Case 1 'FAX Case 2, 5 'MAIL 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(False) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) ' rpt.Dispose() Path = tmpPath Try Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) Select Case Rechnung.RechnungsLandKz Case "TR" Mail.Subject = "Invoice No. " & Rechnung.RechnungsNr Mail.HTMLBody = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." Mail.HTMLBody &= "


Saygilarimizla

" & getSignature(Rechnung) Case "A", "AT", "D", "DE", "CH" Mail.Subject = "Rechnung Nr. " & Rechnung.RechnungsNr Mail.HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen die o.g. Rechnung." Mail.HTMLBody &= "


Mit freundlichen Grüßen

" & getSignature(Rechnung) Case Else Mail.Subject = "Invoice No. " & Rechnung.RechnungsNr Mail.HTMLBody = "Dear Sir or Madam,

attached we send you the invoice mentioned above." Mail.HTMLBody &= "


Best regards

" & getSignature(Rechnung) End Select Mail.HTMLBody = "
" & Mail.HTMLBody & "
" Dim emai_receipt As String = "" If Rechnung.FilialenNr = "4801" Or Rechnung.FilialenNr = "4802" Then emai_receipt = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(Rechnung.RechnungsKundenNr, "Rechnung an (ATILLA)") Mail.To = IIf(emai_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(Rechnung.RechnungsKundenNr, "Rechnung an"), emai_receipt) Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Rechnung.pdf") Mail.Display() If RD_DRUCK = 5 Then ' --> RPOT KOPIE DRUCKEN Select Case Rechnung.RechnungSprache Case "EN" : rpt.lblUeberschriftRG_GS.Text &= " - COPY" Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" End Select Dim ret = cProgramFunctions.printRpt(rpt, PrinterName, False) If printStbVdb Then If (Rechnung.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Zollbeleg drucken?", vbYesNoCancel)) Then printSpedBuchAnhaenge(Rechnung, True, True) End If End If If Rechnung.ANHAENGE.Count > 0 Then 'wird nicht mehr benötigt! TicketNr: 953 ----- wird doch wieder benötigt! If (Rechnung.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Anhänge drucken?", vbYesNoCancel)) Then printRGAnhaenge(Rechnung) End If End If End If Catch ex As Exception MsgBox("Fehler beim Öffnen des Mail-Programmes. PDF wird geladen!") Process.Start(tmpPath) End Try rpt.Dispose() Return True Case 3 'PDF + öffnen 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(False) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) If Rechnung.ANHAENGE.Count > 0 Then If (Rechnung.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Anhänge öffnen?", vbYesNoCancel)) Then openRgAnhaenge(Rechnung) End If End If ' rpt.Dispose() Path = tmpPath Process.Start(tmpPath) rpt.Dispose() Return True Case 4 'PDF _ für Mail Funktion--> nur PDFpfad benötigt 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(False) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) 'rpt.Dispose() Path = tmpPath rpt.Dispose() Return True End Select End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Function Public Shared Function doRechnungsdruck_MDM(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, firma As cFirmen, KD_RG As cAdressen, Optional RechnungsDatum As Object = Nothing, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional ByRef PrinterName As String = "", Optional printOriginalRg As Boolean = False, Optional SammelrechnungAnlagendruck As Boolean = False, Optional printStbVdb As Boolean = False) As Boolean Dim rpt As New rptRechnungDruck_MDM(RECHNUNG.RechnungSprache, IIf(RECHNUNG.OffertenNr = 95, RECHNUNG.OffertenNr, Nothing), RECHNUNG.Firma_ID) If RECHNUNG.POSITIONEN.Count = 0 Then MsgBox("Keine Daten vorhanden!") : Return False Dim dtDataSource As New DataTable dtDataSource.Columns.Add("LeistungsNr") dtDataSource.Columns.Add("LeistungsBez") dtDataSource.Columns.Add("Anzahl") dtDataSource.Columns.Add("SteuerpflichtigerBetrag") dtDataSource.Columns.Add("SteuerfreierBetrag") dtDataSource.Columns.Add("Belegdaten") Dim gsBetrTmp As Double = 0 For Each r In RECHNUNG.POSITIONEN ' dtDataSource.Rows.Add(r.LeistungsNr, r.LeistungsBez, r.Anzahl, r.SteuerpflichtigerBetrag, r.SteuerfreierBetrag, (If(r.Belegdaten, "") & " " & If(r.Aufschubfälligkeit, "")).ToString.Trim) dtDataSource.Rows.Add(r.LeistungsNr, r.LeistungsBez, r.Anzahl, r.SteuerpflichtigerBetrag, r.SteuerfreierBetrag, If(r.Belegdaten, "").ToString.Trim) gsBetrTmp += CDbl(r.SteuerpflichtigerBetrag + r.SteuerfreierBetrag) Next If gsBetrTmp = 0 Then MsgBox("Rechnungsbetrag ist EUR 0,- ") : Return False Dim dataView As New DataView(dtDataSource) dataView.Sort = " LeistungsNr " Dim dtTmp As DataTable = dataView.ToTable() ' rpt.DataSource = SQL.loadDgvBySql("SELECT * FROM [Rechnungsausgangpositionen] where RK_ID ='" & RECHNUNG.RK_ID & "' ", "FMZOLL") rpt.DataSource = dtTmp '' MsgBox(rpt.DataSource.rows.count) 'If rpt.DataSource.rows.count = 0 Then ' rpt.Dispose() ' MsgBox("Keine Daten vorhanden!") ' Return False 'End If Dim sum = 0 Select Case RECHNUNG.RechnungSprache Case "EN" Select Case RECHNUNG.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "INVOICE" rpt.lblSummeUeberschrift.Text = "Invoice Amount:" rpt.lblRgNrUeberschrift.Text = "Invoice No.:" rpt.lblRgDatumUeberschrift.Text = "Invoice Date:" Case "AG" rpt.lblUeberschriftRG_GS.Text = "CREDIT NOTE" rpt.lblSummeUeberschrift.Text = "Credit Amount:" rpt.lblRgNrUeberschrift.Text = "Credit Note No.:" rpt.lblRgDatumUeberschrift.Text = "Credit Note Date:" End Select Case "RO" Select Case RECHNUNG.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "FACTURA" rpt.lblSummeUeberschrift.Text = "Total" rpt.lblRgNrUeberschrift.Text = "Nr. factura:" rpt.lblRgDatumUeberschrift.Text = "Data factura:" Case "AG" rpt.lblUeberschriftRG_GS.Text = "NOTA DE CREDIT" rpt.lblSummeUeberschrift.Text = "Total" rpt.lblRgNrUeberschrift.Text = "Nr. nota credit:" rpt.lblRgDatumUeberschrift.Text = "Data nota credit:" End Select Case Else Select Case RECHNUNG.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "RECHNUNG" Case "AG" rpt.lblUeberschriftRG_GS.Text = "GUTSCHRIFT" rpt.lblSummeUeberschrift.Text = "Gutschriftsbetrag:" rpt.lblRgNrUeberschrift.Text = "Gutschrifts-Nr.:" rpt.lblRgDatumUeberschrift.Text = "Gutschrifts-Datum:" End Select End Select initRgFirma_MDM(rpt, firma, RECHNUNG) Select Case RECHNUNG.Firma_ID Case 1 ' rpt.picVERAG.Image= My.Resources.Verag_AG_Logo : rpt.Picture1.Image = My.Resources.aeo_AT_imex is eh standard Case 4 : rpt.picVERAG.Image = My.Resources.Verag_AG_Logo : rpt.Picture1.Image = Nothing Case 7 : rpt.picVERAG.Image = My.Resources.Atilla_big_med : rpt.Picture1.Image = Nothing Case 11 : rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo : rpt.Picture1.Image = My.Resources.aeo_CS Case 17 : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal : rpt.Picture1.Image = Nothing Case 19 : rpt.picVERAG.Image = My.Resources.VERAG_360 : rpt.Picture1.Image = Nothing Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex Case 21 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT Case 22 : rpt.picVERAG.Image = My.Resources.Unisped_DE_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_DE Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo : rpt.Picture1.Image = Nothing Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT Case 24 : rpt.picVERAG.Image = My.Resources.ambar_boarder : rpt.Picture1.Image = Nothing rpt.txtWarenwert.Visible = False : rpt.lblWarenWertUeberschrift.Visible = False End Select Dim ZZTage = 10 Dim ZZTageVL = 10 Dim ZZKdZahlungsziel = SQL.DLookup("Zahlungsziel", "Kunden", "Kundennr=" & RECHNUNG.RechnungsKundenNr, "FMZOLL", 10) If ZZKdZahlungsziel IsNot Nothing AndAlso IsNumeric(ZZKdZahlungsziel) Then ZZTage = ZZKdZahlungsziel ZZTageVL = ZZTage End If Dim ZZKdZahlungszielVL = SQL.DLookup("kde_abweichendesZZVL", "tblKundenErweitert", "kde_KundenNr=" & RECHNUNG.RechnungsKundenNr, "FMZOLL", 10) If ZZKdZahlungszielVL IsNot Nothing AndAlso IsNumeric(ZZKdZahlungszielVL) Then ZZTageVL = ZZKdZahlungszielVL End If Select Case RECHNUNG.RechnungSprache Case "EN" : rpt.Label2.Text = ZZTage & " Days" : rpt.Label1.Text = "Payment target:" : rpt.lblSendungsdatenUeberschrift.Text = "Service:" Case "TR" : rpt.Label2.Text = ZZTage & " gün" ': rpt.Label1.Text = "Payment target:" : rpt.lblSendungsdatenUeberschrift.Text = "Service:" Case "RO" : rpt.Label2.Text = ZZTage & " Zile" : rpt.Label1.Text = "Termen de plată:" : rpt.lblSendungsdatenUeberschrift.Text = "Descriere:" Case Else : rpt.Label2.Text = ZZTage & " Tage" : rpt.lblSendungsdatenUeberschrift.Text = "Bezeichnung:" End Select Select Case RECHNUNG.Firma_ID Case 21, 22, 23, 26 : rpt.Label1.Visible = False : rpt.Label2.Visible = False 'Ka warum Case 19 rpt.txtGrenze.Visible = False rpt.txtGrenzeUeberschrift.Visible = False rpt.lblWarenWertUeberschrift.Visible = False rpt.txtWarenwert.Visible = False End Select rpt.lblKundenNr.Text = If(RECHNUNG.RechnungsKundenNr > 0, RECHNUNG.RechnungsKundenNr, "") rpt.lblRgNr.Text = If(RECHNUNG.RechnungsNr > 0, addYeartoRgNr(firma.Firma_ID, RECHNUNG.Buchungsjahr) & RECHNUNG.RechnungsNr, "Vorschau") rpt.lblRgDatum.Text = If(RECHNUNG.RechnungsDatum IsNot Nothing, CDate(RECHNUNG.RechnungsDatum).ToShortDateString, "VORSCHAU") 'rpt.lblKundenAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") 'If rpt.lblKundenAuftragsnummer.Text = String.Empty Then rpt.lblKundenAuftragsnummerUeberschrift.Visible = False rpt.lblAbfertigungsNr.Text = RECHNUNG.FilialenNr & " / " & RECHNUNG.AbfertigungsNr & " " & RECHNUNG.UnterNr.ToString("00") rpt.lblAbfertigungsDatum.Text = RECHNUNG.Abfertigungsdatum.ToShortDateString rpt.lblLKWId.Text = If(RECHNUNG.AvisoID, "") Dim sachbearbeiterAufRechnung = getSBRgName(RECHNUNG.Firma_ID, RECHNUNG.Sachbearbeiter) rpt.lblSachbearbeiter.Text = IIf(sachbearbeiterAufRechnung = "Herr Ordu", "Verrechnung", sachbearbeiterAufRechnung) 'If(RECHNUNG.Sachbearbeiter, "") If firma.Firma_ID = 4 Then rpt.lblWarenWertUeberschrift.Visible = False rpt.txtWarenwert.Visible = False rpt.txtGrenze.Visible = False rpt.txtGrenzeUeberschrift.Visible = False End If rpt.txtZollbelegNr.Text = If(RECHNUNG.BelegNr, "") Dim waehrungCode As String = SQL.getValueTxtBySql("SELECT isnull(Währungscode,'') FROM Währungstabelle WHERE Währungsschlüssel = " & If(RECHNUNG.[WährungsNr], -1) & ";", "FMZOLL") If IsNumeric(If(RECHNUNG.Wert, "")) Then ' rpt.txtWarenwert.Text = CDbl(RECHNUNG.Wert).ToString("N2") & " " & If(RECHNUNG.Währungscode, "") rpt.txtWarenwert.Text = CDbl(RECHNUNG.Wert).ToString("N2") & " " & waehrungCode Else ' rpt.txtWarenwert.Text = If(RECHNUNG.Wert, "") & " " & If(RECHNUNG.Währungscode, "") rpt.txtWarenwert.Text = If(RECHNUNG.Wert, "") & " " & waehrungCode End If rpt.txtSendungsdaten.Text = If(RECHNUNG.Packstücke_und_Warenbezeichnung, "") If rpt.txtSendungsdaten.Text.Length > 200 Then rpt.txtSendungsdaten.Text = rpt.txtSendungsdaten.Text.Substring(0, 200) rpt.txtSendungsdaten.Text = rpt.txtSendungsdaten.Text.Replace(", 0,0 kg", "") '0kg ausblenden rpt.txtBeförderungsmittel.Text = If(RECHNUNG.LKW_Kennzeichen, "") rpt.txtGrenze.Text = If(RECHNUNG.Grenze, "") If rpt.txtGrenze.Text.Trim = String.Empty Then rpt.txtGrenze.Text = SQL.getValueTxtBySql("SELECT TOP 1 isnull([Grenzstelle],'') FROM [Filialen] where FilialenNr='" & RECHNUNG.FilialenNr & "'", "FMZOLL") If rpt.txtGrenze.Text.Trim = String.Empty Then rpt.txtGrenzeUeberschrift.Visible = False rpt.lblRechnungAn.Text = If(RECHNUNG.RechnungsName_1, "") & vbNewLine If If(RECHNUNG.RechnungsName_2, "") <> "" Then rpt.lblRechnungAn.Text &= RECHNUNG.RechnungsName_2 & vbNewLine If If(RECHNUNG.RechnungsStraße, "") <> "" Then rpt.lblRechnungAn.Text &= RECHNUNG.RechnungsStraße & vbNewLine If If(RECHNUNG.RechnungsName_AdressZusatz, "") <> "" Then rpt.lblRechnungAn.Text &= RECHNUNG.RechnungsName_AdressZusatz & vbNewLine If If(RECHNUNG.RechnungsOrt, "") <> "" Then rpt.lblRechnungAn.Text &= RECHNUNG.RechnungsOrt & vbNewLine If If(RECHNUNG.RechnungsLandKz, "") <> "" Then rpt.lblRechnungAn.Text &= cProgramFunctions.getLandBez_fromISO1Land(RECHNUNG.RechnungsLandKz, "", RECHNUNG.RechnungSprache).ToString.ToUpper 'If If(RECHNUNG.RechnungsName_2, "") = "" Then ' rpt.lblRechnung_Name1.Text = "" ' rpt.lblRechnung_Name2.Text = If(RECHNUNG.RechnungsName_1, "") 'Else ' rpt.lblRechnung_Name1.Text = If(RECHNUNG.RechnungsName_1, "") ' rpt.lblRechnung_Name2.Text = If(RECHNUNG.RechnungsName_2, "") 'End If 'rpt.lblRechnung_Strasse.Text = If(RECHNUNG.RechnungsStraße, "") 'rpt.lblRechnung_Ort.Text = If(RECHNUNG.RechnungsOrt, "") 'rpt.lblRechnung_Land.Text = cProgramFunctions.getLandBez_fromISO1Land(RECHNUNG.RechnungsLandKz, "", RECHNUNG.RechnungSprache).ToString.ToUpper rpt.txtAbsender.Text = If(RECHNUNG.AbsenderName_1, "") & " " & If(RECHNUNG.AbsenderName_2, "") & vbNewLine & If(RECHNUNG.AbsenderOrt, "").ToString.Trim rpt.txtEmpfaenger.Text = If(RECHNUNG.EmpfängerName_1, "") & " " & If(RECHNUNG.EmpfängerName_2, "") & vbNewLine & If(RECHNUNG.EmpfängerOrt, "").ToString.Trim If KD_RG IsNot Nothing AndAlso If(KD_RG.Steuernummer, "") <> String.Empty Then If RECHNUNG.Firma_ID = 4 Then rpt.lblRechnung_Steuernummer.Text = If(KD_RG.Steuernummer, "").ToString.Trim 'ohne LandKz gewünscht Else rpt.lblRechnung_Steuernummer.Text = If(KD_RG.LandKz, "") & " " & If(KD_RG.Steuernummer, "").ToString.Trim End If ' rpt.lblRechnung_UID.Text = If(KD_RG.UstIdKz, "") & " " & If(KD_RG.UstIdNr, "").ToString.Trim Else rpt.lblRechnung_Steuernummer.Text = "" ' rpt.lblRechnung_UID.Text = "" End If rpt.lblRechnung_Steuernummer.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_Steuernummer_Ueberschrift.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_UID.Text = If(RECHNUNG.RechnungsUstIdKz, "") & If(RECHNUNG.RechnungsUstIdNr, "") rpt.lblRechnung_UID.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.lblRechnung_UID_Ueberschrift.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.txtKdAuftragsNr.Text = If(RECHNUNG.KdAuftragsNr, "") rpt.txtKdAuftragsNr_Ueberschrift.Visible = (rpt.txtKdAuftragsNr.Text <> String.Empty) rpt.TextBox1.Text = If(RECHNUNG.TextZZ, "").ToString.Replace("; ", vbNewLine).Trim rpt.txtVermerk.Text = (If(RECHNUNG.Text, "").ToString.Trim & vbNewLine & vbNewLine & If(RECHNUNG.Notiz, "").ToString.Trim).ToString.Trim ' REVERSE CHARGE (Übergang der Steuerschuld in EU-Ländern). ' Dies hat zur Folge, dass steuerfreie Rechnungsbeträge für Leistungen, ' die in der Leistungstabelle als ReverseCharge gekennzeichnet sind, ' summiert und auf der Rechnung ausgewiesen werden. If isReverseChargeSumme(firma, RECHNUNG) Then If RECHNUNG.Firma_ID = 19 Then Select Case RECHNUNG.RechnungSprache Case "RO" : rpt.txtInfo.Text = "*Taxare inversa" Case "EN" : rpt.txtInfo.Text = "*Reverse Charge" Case Else : rpt.txtInfo.Text = "*Reverse Charge" End Select Else Select Case RECHNUNG.RechnungSprache Case "RO" : rpt.txtInfo.Text = "Obligația de TVA este transferată beneficiarului serviciului (Reverse Charge)." Case "EN" : rpt.txtInfo.Text = "VAT liability is transferred to the recipient (Reverse Charge)." Case Else : rpt.txtInfo.Text = "Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren)." End Select End If Else : rpt.txtInfo.Text = "" : End If rpt.txtAnlagen.Text = "" If If(RECHNUNG.Anlage_1, "") <> "" Then rpt.txtAnlagen.Text &= RECHNUNG.Anlage_1 If If(RECHNUNG.Anlage_2, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & RECHNUNG.Anlage_2 If If(RECHNUNG.Anlage_3, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & RECHNUNG.Anlage_3 If If(RECHNUNG.Anlage_4, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & RECHNUNG.Anlage_4 If If(RECHNUNG.Anlage_5, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & RECHNUNG.Anlage_5 If If(RECHNUNG.Anlage_6, "") <> "" Then rpt.txtAnlagen.Text &= vbNewLine & RECHNUNG.Anlage_6 rpt.txtAnlagen.Text = rpt.txtAnlagen.Text.Trim If rpt.txtAnlagen.Text.Replace(" ", "") = "" Then rpt.lblAnlagenUeberschrift.Visible = False Else Select Case RECHNUNG.RechnungSprache Case "EN" : rpt.lblAnlagenUeberschrift.Text = "Attachment:" Case "RO" : rpt.lblAnlagenUeberschrift.Text = "Anexa:" Case Else : rpt.lblAnlagenUeberschrift.Text = "Anlagen:" End Select End If rpt.txtHandlingATA.Text = If(RECHNUNG.Handling, "") If rpt.txtHandlingATA.Text.Replace(" ", "") = "" Then rpt.lblHandlingATA.Visible = False End If If rpt.txtAbsender.Text.Trim = String.Empty Then rpt.lblAbsenderUeberschrift.Visible = False If rpt.txtEmpfaenger.Text.Trim = String.Empty Then rpt.lblEmpfaengerUeberschrift.Visible = False If rpt.lblLKWId.Text.Trim = String.Empty Then rpt.lblLKWIdUebeschrift.Visible = False If rpt.txtWarenwert.Text.Trim = String.Empty Then rpt.lblWarenWertUeberschrift.Visible = False If rpt.txtZollbelegNr.Text.Trim = String.Empty Then rpt.lblZollbelegNr.Visible = False If rpt.txtBeförderungsmittel.Text.Trim = String.Empty Then rpt.txtBeförderungsmittelUeberschrift.Visible = False If RECHNUNG.FilialenNr = 8001 AndAlso RECHNUNG.OffertenNr = 95 Then rpt.lblLeistungNr.Visible = False rpt.lblAnzahl.Visible = False rpt.lblSteuerfrei.Visible = False rpt.lblSteuerpflichtig.Visible = False rpt.lblLeistungUeberschrift.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Left Select Case RECHNUNG.RechnungSprache ' Case "EN" ' rpt.lblLeistungUeberschrift.Text = "Inv. No." ' rpt.lblAnzahlUeberschrift.Text = "OD days" ' rpt.lblSteuerpflichtigUeberschrift.Text = "Payment Amount" ' rpt.lblSteuerfreiUeberschrift.Text = "Default Interest" ' 'rpt.lbl_onlyZR_ZinsenUeberschrift.Text = "Interest p.a." ' Case "TR" ' rpt.lblLeistungUeberschrift.Text = "Belge" ' rpt.lblAnzahlUeberschrift.Text = "Günler" ' rpt.lblSteuerpflichtigUeberschrift.Text = "Ödeme tutarı" ' rpt.lblSteuerfreiUeberschrift.Text = "Geç ödeme faizi" ' ' rpt.lbl_onlyZR_ZinsenUeberschrift.Text = "Zinsen p.a." ' Case "RO" ' rpt.lblLeistungUeberschrift.Text = "Nr. fact." ' rpt.lblAnzahlUeberschrift.Text = "Nr. zile" ' rpt.lblSteuerpflichtigUeberschrift.Text = "Suma de plata" ' rpt.lblSteuerfreiUeberschrift.Text = "Penalitati" ' 'rpt.lbl_onlyZR_ZinsenUeberschrift.Text = "Dobândă p.a." Case Else rpt.lblLeistungUeberschrift.Text = "RENR" rpt.lblAnzahlUeberschrift.Text = "VZ Tage" rpt.lblSteuerpflichtigUeberschrift.Text = "Zahlungsbetrag" rpt.lblSteuerfreiUeberschrift.Text = "Verzugszinsen" 'rpt.lbl_onlyZR_ZinsenUeberschrift.Text = "Zinsen p.a." End Select rpt.lblSteuerpflichtigUeberschrift.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Center rpt.lblSteuerfreiUeberschrift.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Right rpt.lbl_onlyZR_ZinsenUeberschrift.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Left rpt.lbl_onlyZR_ReDatUeberschrift.Visible = True rpt.lbl_onlyZR_FaelligUeberschrift.Visible = True rpt.lbl_onlyZR_ZinsenUeberschrift.Visible = True rpt.lbl_onlyZR_ZahlungsDatUeberschrift.Visible = True rpt.txtLeistung.Visible = False Else 'rpt.lblLeistungUeberschrift.Text = "Leistung" 'rpt.lblAnzahlUeberschrift.Text = "Anzahl" 'rpt.lblSteuerfreiUeberschrift.Text = "Steuerfrei" 'rpt.lblSteuerpflichtigUeberschrift.Text = "Steuerpflichtig" rpt.lblSteuerpflichtigUeberschrift.Alignment = GrapeCity.ActiveReports.Document.Section.TextAlignment.Right rpt.lbl_onlyZR_ReDatUeberschrift.Visible = False rpt.lbl_onlyZR_FaelligUeberschrift.Visible = False rpt.lbl_onlyZR_ZinsenUeberschrift.Visible = False rpt.lbl_onlyZR_ZahlungsDatUeberschrift.Visible = False rpt.txtLeistung.Visible = True End If 'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung 'ANLAGE ZUR RECHNUNG: If RECHNUNG.Status = 3 Or RECHNUNG.Sammelrechnung <> 0 Then rpt.txtAnlagen.Visible = False rpt.lblAnlagenUeberschrift.Visible = False rpt.lblRgDatumUeberschrift.Visible = False rpt.lblRgNrUeberschrift.Visible = False rpt.lblRgDatum.Visible = False rpt.lblRgNr.Visible = False rpt.lblSummeUeberschrift.Visible = False rpt.lblSumme.Visible = False rpt.lblZWSumme.Visible = False rpt.lblZwText.Visible = False rpt.lblSteuersatz.Visible = False rpt.lblSteuerbetrag.Visible = False rpt.Label46.Visible = False rpt.Line1.Visible = False rpt.Line5.Visible = False rpt.Line14.Visible = False rpt.Line8.Visible = False rpt.Line7.Visible = False Select Case RECHNUNG.RechnungSprache Case "EN" Select Case RECHNUNG.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "Attachment to invoice" Case "AG" rpt.lblUeberschriftRG_GS.Text = "Attachment to CREDIT NOTE" End Select Case "RO" Select Case RECHNUNG.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "Anexa la factura colectiva" Case "AG" rpt.lblUeberschriftRG_GS.Text = "Anexa la nota de credit" End Select Case Else Select Case RECHNUNG.BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "Anlage zur Sammelrechnung" Case "AG" rpt.lblUeberschriftRG_GS.Text = "Anlage zur Gutschrift" End Select End Select End If If Not printOriginalRg Then 'sonst wird der originaldruck erzwungen If RECHNUNG.DruckDatumZeit IsNot Nothing Then Select Case RECHNUNG.RechnungSprache Case "EN" : rpt.lblUeberschriftRG_GS.Text &= " - COPY" Case "RO" : rpt.lblUeberschriftRG_GS.Text &= " - COPIE" Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" End Select End If End If 'Dim cnt As Integer = 0 If RECHNUNG.Firma_ID = 19 Then 'rpt.lblSteuersatz.Visible = False 'rpt.lblSteuerbetrag.Visible = False rpt.lblSteuerpflichtigGes.Visible = False rpt.lblSteuerfreiGes.Visible = False rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False rpt.lblRechnung_Steuernummer.Visible = False rpt.lblRechnung_Steuernummer_Ueberschrift.Visible = False End If Dim sumSteuerpflichtig As Double = 0 Dim sumSteuerfrei As Double = 0 'Dim Anz As Double = 0 'Dim gesSumBt As Double = 0 'Dim gesAnz As Double = 0 Dim vorzeichen = If(If(RECHNUNG.Vorzeichen, "") = "-", -1, 1) ' Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(RECHNUNG.RechnungsKundenNr) ' rpt.Line10.AnchorBottom = True ' rpt.Line10.Height = rpt.Detail.Height AddHandler rpt.Detail.Format, Sub() ' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString ' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString rpt.lblLeistungNr.Text = checkNull(rpt.Fields.Item("LeistungsNr").Value) rpt.txtLeistung.Text = checkNull(rpt.Fields.Item("LeistungsBez").Value) If firma.Firma_ID = 19 Then If RECHNUNG.FilialenNr = 8001 AndAlso RECHNUNG.OffertenNr = 95 Then 'dann ist es eine Zinsnachberechnungs-Rechnung Dim steuerfrei As Double = 0 Dim steuerpfl As Double = 0 If IsNumeric(checkNull(rpt.Fields.Item("SteuerfreierBetrag").Value)) Then steuerfrei = CDbl(rpt.Fields.Item("SteuerfreierBetrag").Value) If IsNumeric(checkNull(rpt.Fields.Item("SteuerpflichtigerBetrag").Value)) Then steuerpfl = CDbl(rpt.Fields.Item("SteuerpflichtigerBetrag").Value) Dim subRpt = New rptRechnungMDM_AnlagenDruck_Zinsennachberechnung(rpt._LAN, RECHNUNG, rpt.txtLeistung.Text.Replace("*", ""), CInt(rpt.lblAnzahl.Text), steuerfrei + steuerpfl) rpt.SubReport.Report = subRpt rpt.lblSteuerfrei.Font = New Font(rpt.lblSteuerfrei.Font, FontStyle.Bold) rpt.lblSteuerpflichtig.Font = New Font(rpt.lblSteuerfrei.Font, FontStyle.Bold) 'txtPackstuecke.Top += SubReport.Height 'txtKdAuftragsnummer.Top += SubReport.Height 'txtSendungsdetails.Top += SubReport.Height Else rpt.SubReport.Report = Nothing End If Dim isReverseCharge As Boolean = SQL.getValueTxtBySql("SELECT ReverseCharge as Bit from Leistungen where LeistungsNr= " & rpt.lblLeistungNr.Text, "FMZOLL") If isReverseCharge Then rpt.txtLeistung.Text &= IIf(Not rpt.txtLeistung.Text.Contains("*"), "*", "") End If If rpt.txtLeistung.Text.Contains("00/23") Or rpt.txtLeistung.Text.Contains("DL/23") Then If RECHNUNG.FilialenNr = 4817 AndAlso RECHNUNG.AbfertigungsNr > 0 AndAlso (RECHNUNG.OffertenNr = 14 Or RECHNUNG.OffertenNr = 15 Or RECHNUNG.OffertenNr = 31) Then Dim antragsID As Integer = CInt(SQL.getValueTxtBySql("SELECT UStVAn_ID FROM tblUStVAntrag WHERE FilialenNr = " & RECHNUNG.FilialenNr & " AND AbfertigungsNr = " & RECHNUNG.AbfertigungsNr, "FMZOLL",,, "-1")) If antragsID > 0 Then Dim MWSTAntrag As New cUSTVAntrag(antragsID) Dim MonthStart As String = IIf(CDate(MWSTAntrag.UStVAn_ReDatVon).Month < 10, "0", "") & CDate(MWSTAntrag.UStVAn_ReDatVon).Month Dim MonthEnd As String = IIf(CDate(MWSTAntrag.UStVAn_ReDatBis).Month < 10, "0", "") & CDate(MWSTAntrag.UStVAn_ReDatBis).Month If MonthStart = MonthEnd Then MonthEnd = "" Dim listVZMonth As New List(Of Integer) If RECHNUNG.RK_ID > 0 Then For Each pos As cUStVPositionen In MWSTAntrag.POSITIONEN.OrderBy(Function(x) If(IsDate(x.UStVPo_ReDat), CDate(x.UStVPo_ReDat), Nothing)) If Not IsDBNull(pos.UStVPo_VZ) AndAlso pos.UStVPo_VZ AndAlso pos.UStVPo_VZ_RKID = RECHNUNG.RK_ID AndAlso IsDate(pos.UStVPo_ReDat) Then If Not listVZMonth.Contains(CDate(pos.UStVPo_ReDat).Month) Then listVZMonth.Add(CDate(pos.UStVPo_ReDat).Month) End If Next End If If listVZMonth.Count > 0 Then If listVZMonth.Count = 1 Then MonthStart = IIf(CDate(MWSTAntrag.UStVAn_ReDatVon).Month < 10, "0", "") & listVZMonth(0).ToString MonthEnd = "" Else MonthStart = IIf(CDate(MWSTAntrag.UStVAn_ReDatVon).Month < 10, "0", "") & listVZMonth(0).ToString MonthEnd = IIf(CDate(MWSTAntrag.UStVAn_ReDatBis).Month < 10, "0", "") & listVZMonth(listVZMonth.Count - 1).ToString End If End If If rpt.txtLeistung.Text.Contains("00-00/23") Then rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("00/23", "/" & CDate(MWSTAntrag.UStVAn_ReDatBis).Year.ToString.Substring(2)) ElseIf rpt.txtLeistung.Text.Contains("DL/23") Then rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("DL/23", "/" & CDate(MWSTAntrag.UStVAn_ReDatBis).Year.ToString.Substring(2)) Else rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("/23", "/" & CDate(MWSTAntrag.UStVAn_ReDatBis).Year.ToString.Substring(2)) End If If rpt.txtLeistung.Text.Contains("-00") Then rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("-00", MonthStart & IIf(MonthEnd <> "", "-" & MonthEnd, "")) ElseIf rpt.txtLeistung.Text.Contains("00-") Then rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("00-", MonthStart & IIf(MonthEnd <> "", "-" & MonthEnd, "")) ElseIf rpt.txtLeistung.Text.Contains("00") Then rpt.txtLeistung.Text = rpt.txtLeistung.Text.Replace("00", MonthStart & IIf(MonthEnd <> "", "-" & MonthEnd, "")) End If End If End If End If End If If rpt.Fields.Item("Belegdaten").Value IsNot Nothing Then rpt.txtLeistung.Text &= vbNewLine & checkNull(rpt.Fields.Item("Belegdaten").Value) End If rpt.lblAnzahl.Text = checkNull(rpt.Fields.Item("Anzahl").Value) ' rpt.lblBetrag.Text = rpt.Fields.Item("betrag").Value Dim stPfl As Double = 0 Dim stFrei As Double = 0 If IsNumeric(checkNull(rpt.Fields.Item("SteuerpflichtigerBetrag").Value)) Then stPfl = CDbl(rpt.Fields.Item("SteuerpflichtigerBetrag").Value()) rpt.lblSteuerpflichtig.Text = If(stPfl <> 0, CDbl(stPfl * vorzeichen).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") If IsNumeric(checkNull(rpt.Fields.Item("SteuerfreierBetrag").Value)) Then stFrei = CDbl(rpt.Fields.Item("SteuerfreierBetrag").Value()) rpt.lblSteuerfrei.Text = If(stFrei <> 0, CDbl(stFrei * vorzeichen).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") sumSteuerpflichtig += stPfl sumSteuerfrei += stFrei ' Anz += 1 ' gesAnz += 1 ' If Anz Mod 2 = 0 Then ' rpt.Detail.BackColor = Color.FromArgb(240, 240, 240) 'Else ' rpt.Detail.BackColor = Color.White ' End If 'rpt.Line10.Height = rpt.Detail.Height End Sub AddHandler rpt.ReportFooter1.Format, Sub() rpt.lblSteuerpflichtigGes.Text = If(sumSteuerpflichtig <> 0, CDbl(sumSteuerpflichtig * vorzeichen).ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblSteuerfreiGes.Text = If(sumSteuerfrei <> 0, CDbl(sumSteuerfrei * vorzeichen).ToString("N2", CultureInfo.CurrentCulture), "") Dim steuerProz As Double = 0 Dim steuerBez As String = "" Dim dt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & RECHNUNG.Steuerschlüssel & "'", "FMZOLL") If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then steuerProz = dt.Rows(0)(0) steuerBez = dt.Rows(0)(1) End If Dim tmpSteuerbetrag = CDbl((sumSteuerpflichtig * steuerProz) * vorzeichen) rpt.lblSteuersatz.Text = steuerBez rpt.lblSteuerbetrag.Text = If((sumSteuerpflichtig * steuerProz) <> 0, tmpSteuerbetrag.ToString("N2", CultureInfo.CurrentCulture), "") If tmpSteuerbetrag = 0 Then rpt.lblSteuerbetrag.Visible = False End If ' rpt.lblZWSumme.Text = (sumSteuerpflichtig + sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture) ' rpt.lblSumme.Text = (sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblZWSumme.Text = CDbl((sumSteuerpflichtig + sumSteuerfrei) * vorzeichen).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSumme.Text = CDbl((sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)) * vorzeichen).ToString("N2", CultureInfo.CurrentCulture) rpt.Label46.Text = If(RECHNUNG.Währungscode, "EUR") If isSTARK(RECHNUNG) Then rpt.lblZwText.Text = "Summe EUST" rpt.lblZWSumme.Text = CDbl(getSTARK_EUST(firma, RECHNUNG)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblZwText.Visible = True rpt.lblZWSumme.Visible = True rpt.lblSteuersatz.Text = "Summe ohne EUST" rpt.lblSteuerbetrag.Text = CDbl(getSTARK_ohneEUST(firma, RECHNUNG)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSteuersatz.Visible = True rpt.lblSteuerbetrag.Visible = True Else If isReverseChargeSumme(firma, RECHNUNG) Then Select Case RECHNUNG.RechnungSprache Case "DE" : rpt.lblZwText.Text = "Summe Steuerfrei" : rpt.lblSteuersatz.Text = "Summe Reverse Charge" Case "EN" : rpt.lblZwText.Text = "Sum Taxfree" : rpt.lblSteuersatz.Text = "Sum Reverse Charge" Case "RO" : rpt.lblZwText.Text = "Suma neimpozabila" : rpt.lblSteuersatz.Text = "Suma Reverse Charge" End Select rpt.lblZWSumme.Text = CDbl(getSteuerfreiEUSTZOLL(firma, RECHNUNG)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblZwText.Visible = True rpt.lblZWSumme.Visible = True If RECHNUNG.Firma_ID = 19 Then 'Bei MDM ausblenden! rpt.lblSteuersatz.Text = "" rpt.lblSteuerbetrag.Visible = False Else rpt.lblSteuerbetrag.Text = CDbl(getReverseChargeSummeRKID(firma, RECHNUNG)).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSteuersatz.Visible = True rpt.lblSteuerbetrag.Visible = True End If Else If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False End If End If End If If RECHNUNG.Firma_ID = 19 Then If rpt.lblSteuerbetrag.Text = "" Then rpt.lblSteuersatz.Text = "" 'rpt.lblSteuersatz.Visible = False 'rpt.lblSteuerbetrag.Visible = False rpt.lblSteuerpflichtigGes.Visible = False rpt.lblSteuerfreiGes.Visible = False rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False End If End Sub 'DruckDatumUhrzeit wird gesetzt, falls noch ungedruckt... 'If RECHNUNG.DruckDatumZeit Is Nothing Then ' RECHNUNG.SET_DruckdatumUhrzeit() 'End If If vorschau Then rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) cProgramFunctions.showRpt(rpt, "Rechnungsdruck", False) Return True Else Dim Kopie = True 'ORIGINAL Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr) If RECHNUNG.Status = 0 Then If AD IsNot Nothing Then Kopie = False 'Aktualisierung und speichern: If Abrechnugsdaten_AKTUALISIEREN(RECHNUNG, RechnungsDatum) Then rpt.lblRgNr.Text = If(RECHNUNG.RechnungsNr > 0, addYeartoRgNr(RECHNUNG.Firma_ID, RECHNUNG.Buchungsjahr) & RECHNUNG.RechnungsNr, "Vorschau") rpt.lblRgDatum.Text = CDate(RECHNUNG.RechnungsDatum).ToShortDateString If RECHNUNG.RechnungsDatum IsNot Nothing Then 'Muss zweimal vorkommen, Erstmaliger Druck rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) Else rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) End If Else MsgBox("Fehler bei der Vergabe der Rg-Nr.!") Return False End If Else MsgBox("Fehler: Kein Rechnungsempfänger gefunden!") Return False End If Else If RECHNUNG.RechnungsDatum IsNot Nothing Then 'Muss zweimal vorkommen, Wiederholungsdruck rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString) Else rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(10).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTage).ToShortDateString) rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("", Now.AddDays(ZZTageVL).ToShortDateString) End If If RECHNUNG.[DruckDatumZeit] Is Nothing Then RECHNUNG.[DruckDatumZeit] = Now 'Wenn Rg-Nr schon vergeben wird das neu gesetzt RECHNUNG.SAVE_DruckDatumZeit() ' Nur SAVE_DruckDatumZeit ändern/setzen End If End If If Not RECHNUNG.checkRechnungsNrIsSet() Then MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen") Return False End If 'Rechnugnsdruck = Individuell für deise Rechnung, wird optional mitgegeben ' Dim RG_Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Rechnung_" & If(RECHNUNG.RechnungsNr, "") & ".pdf" Dim RG_Bezeichnung = If(RECHNUNG.[BelegartenKz] = "AR", "Rechnung_", "Gutschrift_") & If(RECHNUNG.RechnungsNr, "") & ".pdf" '-------------------------------- ' --> TEST wegen Size Problem '-------------------------------- If PrinterName <> "" Then rpt.Document.Printer.PrinterName = PrinterName End If rpt.Document.Printer.PaperSize = rpt.Document.Printer.PrinterSettings.DefaultPageSettings.PaperSize 'Immer Exportieren, da in Therefore speichern Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport rpt.Run(False) p.NeverEmbedFonts = "" p.Export(rpt.Document, tmpPath) Dim Paramslist As New cParameterList(VERAG_PROG_ALLGEMEIN.cAllgemein.PROGID) Dim enableZugpferd = Paramslist.GET_PARAMETER_VALUE_BOOL("ZUGFeRD") If enableZugpferd Then tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.addAttachementToPDF(tmpPath, createZUGFeRD(True, RECHNUNG,), "ZUGFeRD-invoice.xml") Else Dim Zugferdpath = createZUGFeRD(True, RECHNUNG) Dim fileInfo_ZP As New FileInfo(Zugferdpath) Dim ZUGF_DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "ZUGFERD", Now().Year, "", "", fileInfo_ZP.Name, -1, False) ZUGF_DS.uploadDataToDATENSERVER(Zugferdpath, fileInfo_ZP.Name, fileInfo_ZP.Extension,,,, True) End If Path = tmpPath 'THEREFORE IMPORT: '------------------------------------------------------------------------------- Try If Not Kopie And (Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM OrElse vbYes = MsgBox("TEST - in Therefore speichern?", vbYesNoCancel)) Then VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(tmpPath, RECHNUNG.FilialenNr & RECHNUNG.AbfertigungsNr, If(RECHNUNG.AvisoID, ""), RECHNUNG.Firma_ID, False) End If Catch ex As Exception MsgBox("Therefore-Import fehlgeschlagen!" & ex.Message & ex.StackTrace) End Try '------------------------------------------------------------------------------- ' MsgBox(Rechnugnsdruck) Dim RD_DRUCK = If(Rechnugnsdruck >= 0, Rechnugnsdruck, If(AD.Rechnungsdruck, 0)) 'If(AD.Rechnungsdruck, 0) ' MsgBox(RD_DRUCK) Select Case RD_DRUCK Case 0, 1 'DRUCKEN Dim ret = cProgramFunctions.printRpt(rpt, PrinterName, False) If printStbVdb AndAlso RECHNUNG.Firma_ID <> 1 Then If (RECHNUNG.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Zollbeleg drucken?", vbYesNoCancel)) Then printSpedBuchAnhaenge(RECHNUNG, True, True) End If End If If RECHNUNG.ANHAENGE.Count > 0 AndAlso RECHNUNG.Firma_ID <> 1 Then If (RECHNUNG.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Anhänge drucken?", vbYesNoCancel)) Then printRGAnhaenge(RECHNUNG) End If End If Return ret Case 2, 5 'MAIL Path = tmpPath Try Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) Select Case RECHNUNG.RechnungsLandKz Case "TR" Mail.Subject = "Invoice No. " & RECHNUNG.RechnungsNr Mail.HTMLBody = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." Mail.HTMLBody &= "


Saygilarimizla

" & getSignature(RECHNUNG) Case "A", "AT", "D", "DE", "CH" Mail.Subject = "Rechnung Nr. " & RECHNUNG.RechnungsNr Mail.HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen die o.g. Rechnung." Mail.HTMLBody &= "


Mit freundlichen Grüßen

" & getSignature(RECHNUNG) Case Else Mail.Subject = "Invoice No. " & RECHNUNG.RechnungsNr Mail.HTMLBody = "Dear Sir or Madam,

attached we send you the invoice mentioned above." Mail.HTMLBody &= "


Best regards

" & getSignature(RECHNUNG) End Select Mail.HTMLBody = "
" & Mail.HTMLBody & "
" Dim emai_receipt As String = "" If RECHNUNG.FilialenNr = "4801" Or RECHNUNG.FilialenNr = "4802" Then emai_receipt = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(RECHNUNG.RechnungsKundenNr, "Rechnung an (ATILLA)") Mail.To = IIf(emai_receipt = "", VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(RECHNUNG.RechnungsKundenNr, "Rechnung an"), emai_receipt) Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Rechnung.pdf") Mail.Display() If RD_DRUCK = 5 Then ' --> RPOT KOPIE DRUCKEN Select Case RECHNUNG.RechnungSprache Case "EN" : rpt.lblUeberschriftRG_GS.Text &= " - COPY" Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" End Select Dim ret = cProgramFunctions.printRpt(rpt, PrinterName, False) If printStbVdb Then If (RECHNUNG.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Zollbeleg drucken?", vbYesNoCancel)) Then printSpedBuchAnhaenge(RECHNUNG, True, True) End If End If If RECHNUNG.ANHAENGE.Count > 0 Then 'wird nicht mehr benötigt! TicketNr: 953 ----- wird doch wieder benötigt! If (RECHNUNG.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Anhänge drucken?", vbYesNoCancel)) Then printRGAnhaenge(RECHNUNG) End If End If End If Catch ex As Exception MsgBox("Fehler beim Öffnen des Mail-Programmes. PDF wird geladen!") Process.Start(tmpPath) End Try rpt.Dispose() Return True Case 3 'PDF + öffnen If RECHNUNG.ANHAENGE.Count > 0 Then If (RECHNUNG.[DruckDatumZeit] Is Nothing OrElse vbYes = MsgBox("Anhänge öffnen?", vbYesNoCancel)) Then openRgAnhaenge(RECHNUNG) End If End If ' rpt.Dispose() Path = tmpPath Process.Start(tmpPath) rpt.Dispose() Return True Case 4 'PDF _ für Mail Funktion--> nur PDFpfad benötigt Path = tmpPath rpt.Dispose() Return True End Select End If Return False End Function Shared Function createZUGFeRD(einzelrechnung As Boolean, Optional RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang = Nothing, Optional SR_DT As DataTable = Nothing, Optional rpt As rptSammelRechnungDruck = Nothing, Optional rptAnl As rptSammelRechnungAnlagenDruck = Nothing) As String Dim ZZTage = 10 Dim vatSeller As ElectronicAddressSchemeIdentifiers Dim vatBuyer As ElectronicAddressSchemeIdentifiers If einzelrechnung AndAlso RECHNUNG IsNot Nothing Then '--------------------------------------------------------------------------------- '--------------------------------EINZELRECHNUNG----------------------------------- '--------------------------------------------------------------------------------- Dim RECHNUNG_AD As cAdressen Dim RECHNUNG_KD As cKunde If RECHNUNG.RechnungsKundenNr > 0 Then RECHNUNG_AD = New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr) RECHNUNG_KD = New VERAG_PROG_ALLGEMEIN.cKunde(RECHNUNG.RechnungsKundenNr) If RECHNUNG_KD.Zahlungsziel IsNot Nothing AndAlso IsNumeric(RECHNUNG_KD.Zahlungsziel) Then ZZTage = RECHNUNG_KD.Zahlungsziel End If End If Dim zahlungszieldatum As Date = CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(RECHNUNG.Firma_ID) Dim desc As InvoiceDescriptor = InvoiceDescriptor.CreateInvoice(RECHNUNG.RechnungsNr, RECHNUNG.RechnungsDatum, IIf(FIRMA.Firma_ID = 26, CurrencyCodes.GBP, CurrencyCodes.EUR)) Select Case RECHNUNG.BelegartenKz Case "AR" desc.Name = "SPEDITIONSRECHNUNG" desc.Type = InvoiceType.ForwardersInvoice Case "AG" desc.Name = "GUTSCHRIFT" desc.Type = InvoiceType.CreditNote End Select 'Die „Berechnung BT-10“ bezieht sich auf das Feld BT-10 „Buyer reference“ (Käuferreferenz) in der elektronischen Rechnung, speziell im XRechnung-Standard. Dieses Feld dient zur Angabe der Leitweg-ID 'für öffentliche Auftraggeber oder anderer Referenzinformationen für interne Zuordnungsprozesse. 'Die Leitweg-ID ist in Deutschland eine Pflichtangabe für elektronische Rechnungen an die Bundesverwaltung und muss vom Rechnungssteller vom Auftraggeber erhalten werden. desc.ReferenceOrderNo = IIf(RECHNUNG.KdAuftragsNr Is Nothing, "-", RECHNUNG.KdAuftragsNr) If RECHNUNG.Besonderheiten IsNot Nothing Then desc.AddNote(RECHNUNG.Besonderheiten.ToString, SubjectCodes.AAI) If RECHNUNG.Text IsNot Nothing Then desc.AddNote(RECHNUNG.Text.ToString, SubjectCodes.AAI) desc.AddNote("Es bestehen Rabatt- und Bonusvereinbarungen.", SubjectCodes.AAK) Dim KundePLZ As String = "" Dim KundeOrt As String = "" If RECHNUNG_AD IsNot Nothing Then If RECHNUNG_AD.PLZ IsNot Nothing Then KundePLZ = RECHNUNG_AD.PLZ ElseIf RECHNUNG_AD.PLZPF IsNot Nothing Then KundePLZ = RECHNUNG_AD.PLZPF End If If RECHNUNG_AD.Ort IsNot Nothing Then KundeOrt = RECHNUNG_AD.Ort ElseIf RECHNUNG_AD.Postfach IsNot Nothing Then KundeOrt = RECHNUNG_AD.Postfach End If End If 'im RECHNUNG.RechnungsOrt befinden sich Ort und PLZ kombiniert! desc.SetBuyer(RECHNUNG.RechnungsName_1 & IIf(RECHNUNG.RechnungsName_2 <> "", " " & RECHNUNG.RechnungsName_2, ""), IIf(KundePLZ <> "", KundePLZ, RECHNUNG.RechnungsOrt), IIf(KundeOrt <> "", KundeOrt, RECHNUNG.RechnungsOrt), RECHNUNG.RechnungsStraße, GetCountryCodeFromLandKZ(RECHNUNG.RechnungsLandKz, vatBuyer), IIf(Not IsDBNull(RECHNUNG.KundenNrZentrale), RECHNUNG.KundenNrZentrale, "")) Dim FirmaOrt = FIRMA.Firma_Ort FirmaOrt = FirmaOrt.Replace(FIRMA.Firma_LandKz & "-" & FIRMA.Firma_PLZ & " ", "") desc.SetSeller(FIRMA.Firma_Bez, FIRMA.Firma_PLZ, FirmaOrt, FIRMA.Firma_Straße, GetCountryCodeFromLandKZ(FIRMA.Firma_LandKz, vatSeller)) desc.AddSellerTaxRegistration(FIRMA.Firma_UID.ToString.Replace("UID: ", ""), TaxRegistrationSchemeID.VA) ' Optionally, to support Peppol----------------------------- If Not IsDBNull(RECHNUNG.RechnungsUstIdNr) AndAlso RECHNUNG.RechnungsUstIdNr IsNot Nothing AndAlso Not IsDBNull(RECHNUNG.RechnungsUstIdKz) AndAlso RECHNUNG.RechnungsUstIdKz IsNot Nothing Then desc.AddBuyerTaxRegistration(RECHNUNG.RechnungsUstIdKz & RECHNUNG.RechnungsUstIdNr, TaxRegistrationSchemeID.VA) If vatBuyer Then desc.SetBuyerElectronicAddress(RECHNUNG.RechnungsUstIdKz & RECHNUNG.RechnungsUstIdNr, vatBuyer) desc.SetSellerElectronicAddress(FIRMA.Firma_UID.ToString.Replace("UID: ", ""), vatSeller) End If End If '----------------------------- desc.ActualDeliveryDate = (RECHNUNG.Abfertigungsdatum) Dim steuerProzent As Double = SQL.DLookup(" isnull([Steuersatz %],0)", "[Steuertabelle] ", "[Steuerschlüssel]='" & checkNull(RECHNUNG.Steuerschlüssel) & "'", "FMZOLL", 0) Dim steuerProzenFaktor As Double = 0 If steuerProzent > 0 AndAlso steuerProzent < 1 Then steuerProzenFaktor = steuerProzent * 100 End If Dim sumNetto As Double = 0 For Each p In RECHNUNG.POSITIONEN Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem( name:=p.LeistungsBez, billedQuantity:=Convert.ToDecimal(p.Anzahl), unitCode:=QuantityCodes.C62, ' immer in Stück netUnitPrice:=Convert.ToDecimal(p.Preis), grossUnitPrice:=Convert.ToDecimal(p.Preis), categoryCode:=IIf(p.Steuerpflichtig, TaxCategoryCodes.S, TaxCategoryCodes.Z), taxPercent:=IIf(p.Steuerpflichtig, Convert.ToDecimal(RECHNUNG.Steuersatz_Proz * 100), 0), taxType:=IIf(p.Steuerpflichtig, TaxTypes.VAT, TaxTypes.VAT) ) Dim netUnitPrice = Convert.ToDecimal(p.Preis) Dim grossUnitPrice = IIf(p.Steuerpflichtig, Convert.ToDecimal(p.Preis * (1 + RECHNUNG.Steuersatz_Proz)), Convert.ToDecimal(p.Preis)) Dim netPricePos = netUnitPrice * Convert.ToDecimal(p.Anzahl) sumNetto += netPricePos Next 'Summe aller Rechnungspositions-Nettobeträge der Rechnung Dim lineTotalAmont = sumNetto 'Der Gesamtbetrag der Umsatzsteuer für die Rechnung, 'IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100 + steuerProzenFaktor) * steuerProzenFaktor, 2), 0) ?????????????????? Dim taxTotalAmount = IIf(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, Math.Round(Convert.ToDecimal(RECHNUNG.SteuerpflichtigerGesamtbetrag) / (100 + steuerProzenFaktor) * steuerProzenFaktor, 2), 0) ' Die Gesamtsumme der Rechnung ohne Umsatzsteuer ' RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0 Dim taxBasisAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0 - taxTotalAmount) 'Der Gesamtbetrag der Rechnung mit Umsatzsteuer 'Dim grandTotalAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + taxTotalAmount) Dim grandTotalAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag) 'Der ausstehende Betrag, um dessen Zahlung gebeten wird. Dieser Betrag ist der Rechnungsgesamtbetrag einschließlich Umsatzsteuer abzüglich des im Voraus gezahlten Betrages.Im Falle einer vollständig beglichenen Rechnung ist dieser Betrag gleich null. Der Betrag kann negativ sein; In diesem Fall schuldet der Verkäufer dem Käufer den Betrag 'Dim duePayableAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + taxTotalAmount) Dim duePayableAmount = Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag) desc.SetTotals( lineTotalAmount:=Convert.ToDecimal(lineTotalAmont), chargeTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Zuschläge der Dokumentenebene allowanceTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Abschläge der Dokumenteneben taxBasisAmount:=Convert.ToDecimal(taxBasisAmount), taxTotalAmount:=Convert.ToDecimal(taxTotalAmount), grandTotalAmount:=Convert.ToDecimal(grandTotalAmount), totalPrepaidAmount:=0, 'Die Summe der im Voraus gezahlten Beträge duePayableAmount:=Convert.ToDecimal(duePayableAmount), roundingAmount:=0 'Der Betrag, der dem Rechnungsgesamtbetrag hinzuzufügen ist, um den zu zahlenden Betrag zu runden ) desc.AddTradePaymentTerms(RECHNUNG.TextZZ, zahlungszieldatum) 'If RECHNUNG.TextZZ.ToString.Contains("Abbuchungsauftrag") Then ' desc.SetPaymentMeansSepaDirectDebit("", "") 'Else desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, RECHNUNG.TextZZ) 'End If Dim isReverseCharge = isReverseChargeSumme(FIRMA, RECHNUNG) If isReverseCharge Then Select Case RECHNUNG.RechnungSprache Case "EN" : desc.AddNote("The VAT liability is transferred to the recipient of the service (reverse charge system).", SubjectCodes.AAI) Case Else : desc.AddNote("Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren).", SubjectCodes.AAI) End Select End If If RECHNUNG.SteuerfreierGesamtbetrag > 0 Then desc.AddApplicableTradeTax(Convert.ToDecimal(RECHNUNG.SteuerfreierGesamtbetrag), 0, 0, TaxTypes.VAT, TaxCategoryCodes.Z) End If If RECHNUNG.SteuerpflichtigerGesamtbetrag > 0 Then desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - RECHNUNG.SteuerfreierGesamtbetrag), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S)) End If Select Case FIRMA.Firma_ID Case 21, 22, 23 '"UNISPED" If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) Case 26 'VERAG-UNISPED" If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) Case 24 'AMBAR" If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) 'Änderung Ticket_Nr.: 6983 'desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") desc.AddCreditorFinancialAccount("TR67 0006 2000 5440 0009 0513 57", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") Case 20 '"IMEX" If RECHNUNG.RechnungsLandKz = "TR" Then desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank") Else If hasVK(RECHNUNG) Then desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG") Else If hasEUSTZOLL(RECHNUNG.RechnungsNr) Then desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", ) Else desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG") End If End If End If Case 19 If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) Case Else 'VERAG,ATILLA If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) End Select Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RECHNUNG.RechnungsNr, ".xml", True, False) Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write) desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) stream.Flush() stream.Close() Return tmpPathZugpferd ElseIf Not einzelrechnung AndAlso SR_DT IsNot Nothing Then '--------------------------------------------------------------------------------- '--------------------------------SAMMELRECHNUNG----------------------------------- '--------------------------------------------------------------------------------- Dim ROW As DataRow = SR_DT.Rows(0) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID")) Dim RECHNUNG_AD As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) Dim RECHNUNG_KD As New VERAG_PROG_ALLGEMEIN.cKunde(ROW("RechnungsKundenNr")) If RECHNUNG_KD.Zahlungsziel IsNot Nothing AndAlso IsNumeric(RECHNUNG_KD.Zahlungsziel) Then ZZTage = RECHNUNG_KD.Zahlungsziel End If Dim Gesamt_RG_BetragSteuerfrei As Double = CDbl(SR_DT.Compute("SUM(SteuerFreierBetrag)", "")) Dim Gesamt_RG_BetragSteuerpflichtig As Double = CDbl(SR_DT.Compute("SUM(SteuerpflichtigerBetrag)", "")) Dim Gesamt_RG_Betrag As Double = Gesamt_RG_BetragSteuerfrei + Gesamt_RG_BetragSteuerpflichtig Dim BelegartenKz = If(Gesamt_RG_Betrag < 0, "AG", "AR") If ROW("RechnungsNr") Is DBNull.Value Then Return "" Dim RechnungsNr = If(ROW("RechnungsNr") IsNot DBNull.Value, addYeartoRgNr(FIRMA.Firma_ID, ROW("Buchungsjahr")) & ROW("RechnungsNr"), "Vorschau") Dim RechnungsDatum = If(ROW("RechnungsDatum") IsNot DBNull.Value, ROW("RechnungsDatum"), "Vorschau") Dim zahlungszieldatum As Date = CDate(RechnungsDatum).AddDays(ZZTage) Dim desc As InvoiceDescriptor = InvoiceDescriptor.CreateInvoice(RechnungsNr, RechnungsDatum, IIf(FIRMA.Firma_ID = 26, CurrencyCodes.GBP, CurrencyCodes.EUR)) Select Case BelegartenKz Case "AR" desc.Name = "SPEDITIONSRECHNUNG" desc.Type = InvoiceType.ForwardersInvoice Case "AG" desc.Name = "GUTSCHRIFT" desc.Type = InvoiceType.CreditNote End Select 'Die „Berechnung BT-10“ bezieht sich auf das Feld BT-10 „Buyer reference“ (Käuferreferenz) in der elektronischen Rechnung, speziell im XRechnung-Standard. Dieses Feld dient zur Angabe der Leitweg-ID 'für öffentliche Auftraggeber oder anderer Referenzinformationen für interne Zuordnungsprozesse. 'Die Leitweg-ID ist in Deutschland eine Pflichtangabe für elektronische Rechnungen an die Bundesverwaltung und muss vom Rechnungssteller vom Auftraggeber erhalten werden. Dim BestellungsRefNr As String = "" If ROW("KdAuftragsNr") IsNot DBNull.Value AndAlso ROW("KdAuftragsNr") <> "" Then desc.ReferenceOrderNo = ROW("KdAuftragsNr") Else desc.ReferenceOrderNo = "-" End If Dim Rechnugnsname2 As String = "" If ROW("RechnungsName 2") IsNot DBNull.Value AndAlso ROW("RechnungsName 2") <> "" Then Rechnugnsname2 = ROW("RechnungsName 2") End If Dim RechnungsName_AdressZusatz As String = "" If ROW("RechnungsName_AdressZusatz") IsNot DBNull.Value AndAlso ROW("RechnungsName_AdressZusatz") <> "" Then RechnungsName_AdressZusatz = ROW("RechnungsName_AdressZusatz") End If Dim RechnungsStraße As String = "" If ROW("RechnungsStraße") IsNot DBNull.Value AndAlso ROW("RechnungsStraße") <> "" Then RechnungsStraße = ROW("RechnungsStraße") End If Dim RechnungsOrt As String = "" If ROW("RechnungsOrt") IsNot DBNull.Value AndAlso ROW("RechnungsOrt") <> "" Then RechnungsOrt = ROW("RechnungsOrt") End If Dim RechnungsLandKz As String = "" If ROW("RechnungsLandKz") IsNot DBNull.Value AndAlso ROW("RechnungsLandKz") <> "" Then RechnungsLandKz = ROW("RechnungsLandKz") 'cProgramFunctions.getLandBez_fromISO1Land(ROW("RechnungsLandKz"), "", ROW("RechnungSprache")).ToString.ToUpper End If Dim RE_UID As String = If(ROW("RechnungsUstIdKz") IsNot DBNull.Value, ROW("RechnungsUstIdKz"), "") & If(ROW("RechnungsUstIdNr") IsNot DBNull.Value, ROW("RechnungsUstIdNr"), "") 'If RECHNUNG.Besonderheiten IsNot Nothing Then ' desc.AddNote(RECHNUNG.Besonderheiten.ToString, SubjectCodes.AAI) 'End If If rpt IsNot Nothing Then If rpt.txtVermerk.Text IsNot Nothing AndAlso rpt.txtVermerk.Text <> "" Then desc.AddNote(rpt.txtVermerk.Text.ToString, SubjectCodes.AAI) If rpt.txtInfo.Text IsNot Nothing AndAlso rpt.txtInfo.Text <> "" Then desc.AddNote(rpt.txtInfo.Text.ToString, SubjectCodes.AAI) ElseIf rptAnl IsNot Nothing Then If rptAnl.txtInfo.Text IsNot Nothing AndAlso rptAnl.txtInfo.Text <> "" Then desc.AddNote(rptAnl.txtInfo.Text.ToString, SubjectCodes.AAI) End If desc.AddNote("Es bestehen Rabatt- und Bonusvereinbarungen.", SubjectCodes.AAK) If ROW("AbfertigungsdatumVon") IsNot DBNull.Value Then Dim dt As DateTime = CType(ROW("AbfertigungsdatumVon"), DateTime) If IsDate(dt) Then desc.ActualDeliveryDate = (CDate(dt)) End If Dim FirmaOrt = FIRMA.Firma_Ort FirmaOrt = FirmaOrt.Replace(FIRMA.Firma_LandKz & "-" & FIRMA.Firma_PLZ & " ", "") Dim KundePLZ As String = "" Dim KundeOrt As String = "" If RECHNUNG_AD IsNot Nothing Then If RECHNUNG_AD.PLZ IsNot Nothing AndAlso RECHNUNG_AD.PLZ <> "" Then KundePLZ = RECHNUNG_AD.PLZ ElseIf RECHNUNG_AD.PLZPF IsNot Nothing AndAlso RECHNUNG_AD.PLZPF <> "" Then KundePLZ = RECHNUNG_AD.PLZPF End If If RECHNUNG_AD.Ort IsNot Nothing AndAlso RECHNUNG_AD.Ort <> "" Then KundeOrt = RECHNUNG_AD.Ort ElseIf RECHNUNG_AD.Postfach IsNot Nothing AndAlso RECHNUNG_AD.Postfach <> "" Then KundeOrt = RECHNUNG_AD.Postfach End If Else 'Rechnungsort ist kombination aus PLZ und Ort! KundePLZ = RechnungsOrt KundeOrt = RechnungsOrt End If desc.SetBuyer(ROW("RechnungsName 1") & " " & Rechnugnsname2, KundePLZ, KundeOrt, RechnungsStraße, GetCountryCodeFromLandKZ(RechnungsLandKz, vatBuyer), IIf(Not IsDBNull(ROW("RechnungsKundenNr")), ROW("RechnungsKundenNr"), "")) desc.SetSeller(FIRMA.Firma_Bez, FIRMA.Firma_PLZ, FirmaOrt, FIRMA.Firma_Straße, GetCountryCodeFromLandKZ(FIRMA.Firma_LandKz, vatSeller)) If FIRMA.Firma_Steuernummer IsNot Nothing Then desc.AddSellerTaxRegistration(FIRMA.Firma_Steuernummer, TaxRegistrationSchemeID.FC) desc.AddSellerTaxRegistration(FIRMA.Firma_UID.ToString.Replace("UID: ", ""), TaxRegistrationSchemeID.VA) ' Optionally, to support Peppol----------------------------- If RE_UID <> "" Then desc.AddBuyerTaxRegistration(RE_UID, TaxRegistrationSchemeID.VA) If vatBuyer Then desc.SetBuyerElectronicAddress(RE_UID, vatBuyer) desc.SetSellerElectronicAddress(FIRMA.Firma_UID.ToString.Replace("UID: ", ""), vatSeller) End If End If Dim steuerProzent As Double = SQL.DLookup(" isnull([Steuersatz %],0)", "[Steuertabelle] ", "[Steuerschlüssel]='" & ROW("Steuerschlüssel") & "'", "FMZOLL", 0) Dim steuerProzenFaktor As Double = 0 If steuerProzent > 0 AndAlso steuerProzent < 1 Then steuerProzenFaktor = steuerProzent * 100 End If Dim einzelpreis As Double = 0 Dim sumNetto As Double = 0 For Each pos As DataRow In SR_DT.Rows Dim SteuerpflichtigerBetrag As Double = 0 Dim SteuerfreierBetrag As Double = 0 Dim anzahl As Double = 0 Dim bez As String = "" einzelpreis = 0 If IsNumeric(checkNull(pos.Item("Anzahl"))) Then anzahl = CDbl(checkNull(pos.Item("Anzahl"))) einzelpreis = IIf(pos.Item("SteuerpflichtigerBetrag") > 0, pos.Item("SteuerpflichtigerBetrag") / anzahl, pos.Item("SteuerfreierBetrag") / anzahl) If Double.IsNaN(einzelpreis) Then einzelpreis = 0 End If Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem( name:=checkNull(pos.Item("LeistungsBez")), billedQuantity:=IIf(anzahl <> 0, Convert.ToDecimal(anzahl), 0), unitCode:=QuantityCodes.C62, ' immer in Stück netUnitPrice:=Convert.ToDecimal(einzelpreis), grossUnitPrice:=Convert.ToDecimal(einzelpreis), categoryCode:=IIf(pos.Item("SteuerpflichtigerBetrag") > 0, TaxCategoryCodes.S, TaxCategoryCodes.Z), taxPercent:=IIf(pos.Item("SteuerpflichtigerBetrag") > 0, Convert.ToDecimal(steuerProzent * 100), 0), taxType:=IIf(pos.Item("SteuerpflichtigerBetrag") > 0, TaxTypes.VAT, TaxTypes.VAT) ) Dim netUnitPrice = Convert.ToDecimal(einzelpreis) Dim netPricePos = netUnitPrice * IIf(anzahl <> 0, Convert.ToDecimal(anzahl), 0) sumNetto += netPricePos 'For Each search As GrapeCity.ActiveReports.SectionReportModel.ARControl In rpt.Detail.Controls ' If search.Name = "lblAnzahl" Then ' anzahl = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text], 0) ' End If ' If search.Name = "lblSteuerpflichtig" Then ' SteuerpflichtigerBetrag = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text], 0) ' End If ' If search.Name = "lblSteuerfrei" Then ' SteuerfreierBetrag = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text], 0) ' End If ' If search.Name = "txtLeistung" Then ' bez = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.TextBox).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.TextBox).[Text], 0) ' End If 'If bez <> "" Then ' einzelpreis = IIf(SteuerpflichtigerBetrag > 0, SteuerpflichtigerBetrag / checkNull(anzahl), SteuerfreierBetrag / checkNull(anzahl)) ' Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem( ' name:=checkNull(bez), ' billedQuantity:=Convert.ToDecimal(checkNull(anzahl)), ' unitCode:=QuantityCodes.C62, ' immer in Stück ' netUnitPrice:=Convert.ToDecimal(einzelpreis), ' grossUnitPrice:=Convert.ToDecimal(einzelpreis), ' categoryCode:=IIf(SteuerpflichtigerBetrag > 0, TaxCategoryCodes.S, TaxCategoryCodes.Z), ' taxPercent:=IIf(SteuerpflichtigerBetrag > 0, Convert.ToDecimal(steuerProzent * 100), 0), ' taxType:=IIf(SteuerpflichtigerBetrag > 0, TaxTypes.VAT, TaxTypes.VAT) ' ) ' Dim netUnitPrice = Convert.ToDecimal(einzelpreis) ' Dim netPricePos = netUnitPrice * Convert.ToDecimal(checkNull(anzahl)) ' sumNetto += netPricePos ' bez = "" ' End If 'Next Next 'Summe aller Rechnungspositions-Nettobeträge der Rechnung Dim lineTotalAmont = sumNetto 'Der Gesamtbetrag der Umsatzsteuer für die Rechnung, 'IIf(Gesamt_RG_BetragSteuerpflichtig <> 0, Math.Round(Convert.ToDecimal(Gesamt_RG_BetragSteuerpflichtig) / (100 + steuerProzenFaktor) * steuerProzenFaktor, 2), 0) Dim taxTotalAmount = IIf(Gesamt_RG_BetragSteuerpflichtig <> 0, Math.Round(Convert.ToDecimal(Gesamt_RG_BetragSteuerpflichtig) / (100) * steuerProzenFaktor, 2), 0) ' Die Gesamtsumme der Rechnung ohne Umsatzsteuer ' RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag + 0 - 0 Dim taxBasisAmount = Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei + Gesamt_RG_BetragSteuerpflichtig + 0 - 0) 'Der Gesamtbetrag der Rechnung mit Umsatzsteuer Dim grandTotalAmount = Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei + Gesamt_RG_BetragSteuerpflichtig + taxTotalAmount) 'Der ausstehende Betrag, um dessen Zahlung gebeten wird. Dieser Betrag ist der Rechnungsgesamtbetrag einschließlich Umsatzsteuer abzüglich des im Voraus gezahlten Betrages.Im Falle einer vollständig beglichenen Rechnung ist dieser Betrag gleich null. Der Betrag kann negativ sein; In diesem Fall schuldet der Verkäufer dem Käufer den Betrag Dim duePayableAmount = Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei + Gesamt_RG_BetragSteuerpflichtig + taxTotalAmount) desc.SetTotals( lineTotalAmount:=Convert.ToDecimal(lineTotalAmont), chargeTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Zuschläge der Dokumentenebene allowanceTotalAmount:=0, 'Summe aller in der Rechnung enthaltenen Abschläge der Dokumenteneben taxBasisAmount:=Convert.ToDecimal(taxBasisAmount), taxTotalAmount:=Convert.ToDecimal(taxTotalAmount), grandTotalAmount:=Convert.ToDecimal(grandTotalAmount), totalPrepaidAmount:=0, 'Die Summe der im Voraus gezahlten Beträge duePayableAmount:=Convert.ToDecimal(duePayableAmount), roundingAmount:=0 'Der Betrag, der dem Rechnungsgesamtbetrag hinzuzufügen ist, um den zu zahlenden Betrag zu runden ) If rpt IsNot Nothing Then desc.AddTradePaymentTerms(rpt.Label2.Text, zahlungszieldatum) desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, rpt.Label2.Text) ElseIf rptAnl IsNot Nothing Then desc.AddTradePaymentTerms(rptAnl.Label2.Text, zahlungszieldatum) desc.SetPaymentMeans(PaymentMeansTypeCodes.SEPACreditTransfer, rptAnl.Label2.Text) End If 'If RECHNUNG.TextZZ.ToString.Contains("Abbuchungsauftrag") Then ' desc.SetPaymentMeansSepaDirectDebit("", ,"") 'Else 'desc.SetPaymentMeans(PaymentMeansTypeCodes.PaymentToBankAccount, rpt.Label2.Text) 'End If Select Case FIRMA.Firma_ID Case 21, 22, 23 '"UNISPED" If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) Case 26 'VERAG-UNISPED" If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) Case 24 'AMBAR" If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) 'Änderung Ticket_Nr.: 6983 'desc.AddCreditorFinancialAccount("TR90 0006 2001 6040 0009 0804 66", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") desc.AddCreditorFinancialAccount("TR67 0006 2000 5440 0009 0513 57", "TGBATRISXXX",,, "Garanti Bank Türkei – Euro Konto") Case 20 '"IMEX" If RechnungsLandKz = "TR" Then desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "",,, "Garanti Bank") Else If hasVK(RechnungsNr, ROW("Buchungsjahr")) Then desc.AddCreditorFinancialAccount("AT35 4480 0365 7822 0002", "VBOEATWWOOE",,, "Volksbank Oberösterreich AG") Else If hasEUSTZOLL(RechnungsNr) Then desc.AddCreditorFinancialAccount("AT62 4480 0365 7822 0001", "VBOEATWWOOE", ) Else desc.AddCreditorFinancialAccount("TR84 0006 2001 6040 0009 0987 13", "VBOEATWWOOE", ,, "Volksbank Oberösterreich AG") End If End If End If Case 19 If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) Case Else 'VERAG,ATILLA If FIRMA.Firma_IBAN1 IsNot Nothing AndAlso FIRMA.Firma_BIC1 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung1 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN1 IsNot Nothing, FIRMA.Firma_IBAN1.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC1 IsNot Nothing, FIRMA.Firma_BIC1.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung1 IsNot Nothing, FIRMA.Firma_Bankverbindung1, "")) If FIRMA.Firma_IBAN2 IsNot Nothing AndAlso FIRMA.Firma_BIC2 IsNot Nothing AndAlso FIRMA.Firma_Bankverbindung2 IsNot Nothing Then desc.AddCreditorFinancialAccount(IIf(FIRMA.Firma_IBAN2 IsNot Nothing, FIRMA.Firma_IBAN2.ToString.Replace("IBAN: ", ""), ""), IIf(FIRMA.Firma_BIC2 IsNot Nothing, FIRMA.Firma_BIC2.ToString.Replace("BIC: ", ""), ""),,, IIf(FIRMA.Firma_Bankverbindung2 IsNot Nothing, FIRMA.Firma_Bankverbindung2, "")) End Select Dim isReverseCharge = IIf(getReverseChargeSumme(FIRMA, ROW("RechnungsLandKz"), ROW("RechnungsNr"), ROW("RechnungsDatum"), "") > 0, True, False) If Gesamt_RG_BetragSteuerfrei > 0 Then desc.AddApplicableTradeTax(Convert.ToDecimal(Gesamt_RG_BetragSteuerfrei), 0, 0, TaxTypes.VAT, TaxCategoryCodes.Z) End If If Gesamt_RG_BetragSteuerpflichtig > 0 Then desc.AddApplicableTradeTax(Convert.ToDecimal(taxBasisAmount - Gesamt_RG_BetragSteuerfrei), Convert.ToDecimal(steuerProzenFaktor), Convert.ToDecimal(taxTotalAmount), TaxTypes.VAT, IIf(isReverseCharge, TaxCategoryCodes.AE, TaxCategoryCodes.S)) End If Dim tmpPathZugpferd = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("ZUGFeRD_Invoice_" & RechnungsNr, ".xml", True, False) Dim stream As FileStream = New FileStream(tmpPathZugpferd, FileMode.Create, FileAccess.Write) desc.Save(stream, ZUGFeRDVersion.Version20, Profile.Comfort) stream.Flush() stream.Close() Return tmpPathZugpferd End If End Function Public Shared Function GetCountryCodeFromLandKZ(LandKZ As String, easi As ElectronicAddressSchemeIdentifiers) As CountryCodes If LandKZ = "" Then Return Nothing Dim landKZISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2Land(LandKZ) Dim cc As CountryCodes Select Case landKZISO2 Case "AT" : cc = CountryCodes.AT : easi = ElectronicAddressSchemeIdentifiers.AustriaVatNumber Case "BE" : cc = CountryCodes.BE : easi = ElectronicAddressSchemeIdentifiers.BelgiumVatNumber Case "DE" : cc = CountryCodes.DE : easi = ElectronicAddressSchemeIdentifiers.GermanyVatNumber Case "TR" : cc = CountryCodes.TR : easi = ElectronicAddressSchemeIdentifiers.TurkeyVatNumber Case "GB" : cc = CountryCodes.GB : easi = ElectronicAddressSchemeIdentifiers.UnitedKingdomVatNumber Case "AL" : cc = CountryCodes.AL : easi = ElectronicAddressSchemeIdentifiers.AlbaniaVatNumber Case "AZ" : cc = CountryCodes.AZ Case "BG" : cc = CountryCodes.BG : easi = ElectronicAddressSchemeIdentifiers.BulgariaVatNumber Case "BA" : cc = CountryCodes.BA : easi = ElectronicAddressSchemeIdentifiers.BosniaAndHerzegovinaVatNumber Case "CH" : cc = CountryCodes.CH : easi = ElectronicAddressSchemeIdentifiers.SwitzerlandVatNumber Case "CO" : cc = CountryCodes.CO Case "CY" : cc = CountryCodes.CY : easi = ElectronicAddressSchemeIdentifiers.CyprusVatNumber Case "CZ" : cc = CountryCodes.CZ : easi = ElectronicAddressSchemeIdentifiers.CzechRepublicVatNumber Case "DK" : cc = CountryCodes.DK Case "DZ" : cc = CountryCodes.DZ Case "ES" : cc = CountryCodes.ES : easi = ElectronicAddressSchemeIdentifiers.AgenciaEspaOlaDeAdministraciNTributaria Case "FR" : cc = CountryCodes.FR : easi = ElectronicAddressSchemeIdentifiers.FrenchVatNumber Case "FN" : cc = CountryCodes.FI Case "HR" : cc = CountryCodes.HR : easi = ElectronicAddressSchemeIdentifiers.CroatiaVatNumber Case "GE" : cc = CountryCodes.GE Case "HK" : cc = CountryCodes.HK Case "IN" : cc = CountryCodes.IN Case "IR" : cc = CountryCodes.IR : easi = ElectronicAddressSchemeIdentifiers.UnitedKingdomVatNumber Case "IQ" : cc = CountryCodes.IQ Case "LT" : cc = CountryCodes.LT : easi = ElectronicAddressSchemeIdentifiers.LithuaniaVatNumber Case "LV" : cc = CountryCodes.LV : easi = ElectronicAddressSchemeIdentifiers.LatviaVatNumber Case "US" : cc = CountryCodes.US Case "MK" : cc = CountryCodes.MK : easi = ElectronicAddressSchemeIdentifiers.MacedoniaVatNumber Case "PL" : cc = CountryCodes.PL : easi = ElectronicAddressSchemeIdentifiers.PolandVatNumber Case "RS" : cc = CountryCodes.RS : easi = ElectronicAddressSchemeIdentifiers.SerbiaVatNumber Case "AE" : cc = CountryCodes.AE Case "SI" : cc = CountryCodes.SI : easi = ElectronicAddressSchemeIdentifiers.SloveniaVatNumber Case "SK" : cc = CountryCodes.SK : easi = ElectronicAddressSchemeIdentifiers.SlovakiaVatNumber Case Else cc = Nothing End Select Return cc End Function Shared Sub printSpedBuchAnhaenge(RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional printStb As Boolean = False, Optional printVbD As Boolean = False) Try Dim SPEDBCUH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(RG.FilialenNr, RG.AbfertigungsNr, RG.SpeditionsbuchUnterNr) If SPEDBCUH.hasEntry Then If printStb Then If SPEDBCUH.DokumentId_Steuerbeleg IsNot Nothing Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBCUH.DokumentId_Steuerbeleg)}) End If End If If printVbD Then If SPEDBCUH.DokumentId_VBD IsNot Nothing Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBCUH.DokumentId_VBD)}) End If End If End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Sub Shared Sub printRGAnhaenge(RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) Try If RG.ANHAENGE IsNot Nothing AndAlso RG.ANHAENGE.Count > 0 Then For Each ANH In RG.ANHAENGE If ANH.dsId > 0 Then VERAG_PROG_ALLGEMEIN.cFormularManager.PrintViaSpirePDF({VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId)}) Next End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Sub Shared Sub openRgAnhaenge(RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) Try Dim list As New List(Of String) If RG.ANHAENGE IsNot Nothing AndAlso RG.ANHAENGE.Count > 0 Then For Each ANH In RG.ANHAENGE Dim path As String = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId) If RG IsNot Nothing AndAlso RG.Firma_ID = 19 Then If path.Contains("POS_LISTE") Or path.Contains("POS-LISTE") Then Dim PATH_Org = path Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(PATH_Org) Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) For page As Integer = 1 To pdfReader.NumberOfPages If page = 1 Then listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(RG.RechnungsNr, 7, 23.5, 100, 20, "bold", 12, , itextsharp.text.Element.ALIGN_LEFT, page)) Else listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(RG.RechnungsNr, 7, 0.5, 100, 20, "bold", 10, , itextsharp.text.Element.ALIGN_LEFT, page)) End If Next pdfReader.Close() path = fm.fillPDFVorhandenesLokalesPDF_Path(PATH_Org, listTowrite, , ,, False) End If End If If ANH.dsId > 0 Then list.Add(path) Next End If Dim pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("RG_Anhänge_" & Now.ToString("ddMMyyyyHHmmss") & ".pdf", ".pdf", False, False) If FormularManagerNEU.MergePdfFiles(list, pathPDF) Then Process.Start(pathPDF) End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Sub Shared Function getSpedBuchAnhaenge_Path(FilialenNr As Integer, AbfertigungsNr As Integer, SpeditionsbuchUnterNr As Integer) As String Try Dim SPEDBCUH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(FilialenNr, AbfertigungsNr, SpeditionsbuchUnterNr) If SPEDBCUH.hasEntry Then If SPEDBCUH.DokumentId_Steuerbeleg IsNot Nothing Then Return VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBCUH.DokumentId_Steuerbeleg) End If If SPEDBCUH.DokumentId_VBD IsNot Nothing Then Return VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(SPEDBCUH.DokumentId_VBD) End If End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return "" End Function Shared Function getFirmaNr(Optional firma = -1) As String If firma < 0 Then 'Falls keine Firma Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "VERAG" : firma = 1 Case "IMEX" : firma = 20 Case "ATILLA" : firma = 7 Case "UNISPED" : firma = 21 Case "AMBAR" : firma = 24 Case "FRONTOFFICE" : firma = 17 Case Else : firma = 1 End Select End If Return firma End Function Shared Function getSignature(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As String Return getSignature(RECHNUNG.RechnungsLandKz, RECHNUNG.Firma_ID) End Function Shared Function getSignature(Optional landKz = "", Optional firma = -1, Optional individuell = False, Optional displayFirmenmane = True, Optional special = "", Optional additionalLine = "", Optional departmentmailadress = True, Optional fakturierung = False, Optional firmenSignature = False) As String getSignature = "" firma = getFirmaNr(firma) Dim imgsrc = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\").Replace("\", "/") Dim emailindividuell As String = "" If Not firmenSignature Then emailindividuell = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email If additionalLine <> "" Then additionalLine = "
" & additionalLine & "
" Select Case special Case "BREXIT_VERAG" getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG Spedition AG
" getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-885 | F +43 7711 31 073 | @ " & If(individuell, emailindividuell, "brexit@verag.ag") & " | www.verag.ag | FN 216714y
" Case Else Select Case firma Case 1 'VERAG getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG Spedition AG
" getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, emailindividuell, "rechnungsversand@verag.ag") & " | www.verag.ag | FN 216714y
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 4 'VERAG AG (DE) getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG Spedition AG
" getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-947 | F +43 7711 31 073 | @ " & If(individuell, emailindividuell, "s.kriegner@verag.ag") & " | www.verag.ag | FN 216714y
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 7 'ATILLA getSignature &= "" If displayFirmenmane Then getSignature &= "
ATILLA Spedition GmbH
" getSignature &= "
A 4975 Suben, Nr. 15
T +43 7711 2845-0 | @ " & If(individuell, emailindividuell, "rechnungsversand@verag.ag") & " | www.verag.ag | FN 288916b
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 11 'VERAG CS getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG Customs Service
" getSignature &= "
A 4975 Suben, Nr. 14
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, emailindividuell, "versand@verag.com") & " | www.verag.ag | FN 406316z
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 20 'Imex getSignature &= "" If displayFirmenmane Then getSignature &= "
Imex Customs Service GmbH
" getSignature &= "
A 4975 Suben, Autobahngrenze 15
T +43 7711 31630 | F +43 7711 31630-1 | @ " & If(individuell, emailindividuell, "info@imex-group.at") & " | www.imex-group.at | FN 410356s
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 24 'AMBAR Dim defaultMail = getDefaultMail("AMBAR", departmentmailadress, fakturierung) getSignature &= "" If displayFirmenmane Then getSignature &= "
AMBAR | IMPORT ZOLL
" getSignature &= "
D 83435 Bad Reichenhall, Reichenhallerstrasse 62
T +49 8651 9962492 | F +49 8651 9962493 | @ " & If(individuell, emailindividuell, defaultMail) & " | www.ambarlog.com | DE309105428
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 21 'UNISPED getSignature &= "" If displayFirmenmane Then getSignature &= "
Unisped Speditions GmbH
" getSignature &= "
A 4975 Suben, Nr. 15
T +43 7711 2677-0 | F +43 7711 2677-27 | @ " & If(individuell, emailindividuell, "office@unisped.at") & " | www.unisped.at | FN 375838d
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 19 'VERAG360 getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG 360 GmbH
" getSignature &= "
A 4975 Suben, Nr. 100
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, If(firmenSignature, "mmdabrechnung@verag.ag", emailindividuell), "mmd@verag.ag") & " | www.verag.ag | FN 544732b
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 26 'VERAG-UNISPED getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG-UNISPED LTD
" getSignature &= "
Kent CT16 1BY Dover, 1 Cannon Street
T +44 1304 272475 | @ invoice@verag-unisped.uk | www.verag-unisped.uk | Company-No. 13107151 | VAT GB389356931
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 99 'GmbH getSignature &= "" If displayFirmenmane Then getSignature &= "
VERAG Spedition GmbH
" getSignature &= "
D 94152 Neuhaus/Inn, Hartham 6
T +43 7711 2777-0 | F +43 7711 31 073 | @ " & If(individuell, emailindividuell, "rechnungsversand@verag.ag") & " | www.verag.ag
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine Case 17 'Front-Office getSignature &= "" If displayFirmenmane Then getSignature &= "
Front Office Suben eG
" getSignature &= "
A 4975 Suben, Nr. 14
T +43 7711 31636 -0 | @ " & If(individuell, emailindividuell, "suben@front-office.eu") & " | www.front-office.eu
" If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine End Select End Select getSignature &= "
" 'BREXIT If True Then Select Case firma Case 21, 22, 23 'UNISPED Exit Select ' nicht mehr! getSignature &= "
" getSignature &= "
" getSignature &= "Sind Sie bereits auf den BREXIT vorbereitet?
" getSignature &= "Weiter Infos finden Sie unter: http://www.brexit.at
" getSignature &= "

" getSignature &= "BREXIT Hotline: +43 7711 2677 - 27| @ brexit@unisped.at
" getSignature &= "
" getSignature &= "
" getSignature &= "
" Case Else Exit Select ' nicht mehr! getSignature &= "
" getSignature &= "
" getSignature &= "Sind Sie bereits auf den BREXIT vorbereitet?
" getSignature &= "Weiter Infos finden Sie unter: http://www.brexit.at
" getSignature &= "

" getSignature &= "BREXIT Hotline: +43 7711 2777 - 885 | @ brexit@verag.ag
" getSignature &= "
" getSignature &= "
" getSignature &= "
" End Select End If Select Case firma Case 24 'AMBAR Select Case landKz Case "D", "A", "DE", "AT", "CH" getSignature &= "Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen Spediteurbedingungen 2017 – ADSp 2017 –." Case Else getSignature &= "Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen Spediteurbedingungen 2017 – ADSp 2017 –." End Select Case Else Select Case landKz Case "D", "A", "DE", "AT", "CH" getSignature &= "Wir arbeiten ausschließlich auf Grund der Allgemeinen Österreichischen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf Frachten,
Spesen und Zinsen zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding. Steuer-Zoll - und Tarifauskünfte sind unverbindlich.
" Case "E", "GB" getSignature &= "We operate exclusively on the basis of the General Freight Forwarding Terms and Conditions in the respectively applicable version. Payments are initially
charged on freight, fees and interests and at last on customs duties. The place of jurisdiction is Schärding or Ried. Tax, customs and tariff information are not binding.
" Case Else getSignature &= "Wir arbeiten ausschließlich auf Grund der Allgemeinen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf Frachten,
Spesen und Zinsen zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding. Steuer-Zoll - und Tarifauskünfte sind unverbindlich.
" getSignature &= "
" getSignature &= "We operate exclusively on the basis of the General Freight Forwarding Terms and Conditions in the respectively applicable version. Payments are initially
charged on freight, fees and interests and at last on customs duties. The place of jurisdiction is Schärding or Ried. Tax, customs and tariff information are not binding.
" End Select End Select End Function Shared Function getDefaultMail(firma, Optional useDepartmentmailadress = True, Optional fakturierung = False) As String Dim defaultMail = "" Select Case firma Case "AMBAR" defaultMail = "import@ambarlog.de" If useDepartmentmailadress Then If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "BH" Then defaultMail = "buchhaltung@ambarlog.de" If VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG = "EXPORT" Then defaultMail = "office@ambarlog.de" End If If fakturierung Then defaultMail = "buchhaltung@ambarlog.de" End Select Return defaultMail End Function Shared Function Abrechnugsdaten_AKTUALISIEREN(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional RechnungsDatum As Object = Nothing) As Boolean RECHNUNG.[DruckDatumZeit] = Now If RECHNUNG.checkAlreadyPrinted Then 'Rechnung wurde bereits gedruck - evtl. bei überschneidenden Rechnungslauf --> Druck abbrechen! MsgBox("Die Rechnung '" & RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr & "' an '" & RECHNUNG.RechnungsName_1 & "' wurde bereits gedruckt!") Return False End If If RECHNUNG.Sammelrechnung = 0 Then ' Rechnungsdaten im RK eintragen. RECHNUNG.[Status] = 1 If RECHNUNG.RechnungsNr Is Nothing OrElse RECHNUNG.RechnungsNr <= 0 Then 'Falls Druck neu durchgeführt.. --> nicht nochaml RgNr vergeben! If RechnungsDatum IsNot Nothing AndAlso IsDate(RechnungsDatum) AndAlso CDate(RechnungsDatum) > CDate("01.01.2001") Then RECHNUNG.[RechnungsDatum] = RechnungsDatum.ToShortDateString Else 'RECHNUNG.[RechnungsDatum] = Now.ToShortDateString If Not getRgDatInput("", RECHNUNG.[RechnungsDatum]) Then 'Now.ToShortDateString RECHNUNG.[RechnungsDatum] = Now End If RechnungsDatum = RECHNUNG.[RechnungsDatum] ' RECHNUNG.Buchungsjahr = If(Now.Month = 1, Now.Year - 1, Now.Year) End If RECHNUNG.Buchungsjahr = cRKSV.getGJ(RechnungsDatum, RECHNUNG.Firma_ID) ' If(CDate(RECHNUNG.[RechnungsDatum]).Month = 1, CDate(RECHNUNG.[RechnungsDatum]).Year - 1, CDate(RECHNUNG.[RechnungsDatum]).Year) If RECHNUNG.Buchungsjahr < 2000 Then MsgBox("Buchungsjahr im falschen Format!") Return False End If RECHNUNG.[RechnungsNr] = getNewRgNr(RECHNUNG.Firma_ID, RECHNUNG.Buchungsjahr) 'Dim RG_NR As New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(RECHNUNG.Firma_ID, RECHNUNG.Buchungsjahr) '' Nächste Rechnungsnummer speichern. 'RG_NR.INCREASE_RGNR() ' SOFORT Speichern, Sonst gibt es wieder eine Doppelvergabe! '' Prüfung, ob RgNr schon vergeben wurde --> dann +1, bis freie Nr. (sollte EÜGENTLICH nicht vorkommen) 'RG_NR.CHECK_RGNR() 'RECHNUNG.[RechnungsNr] = RG_NR.LfdRechnungsNr 'RECHNUNG.[LfdRechnungsNr] = RG_NR.LfdRechnungsNr If RECHNUNG.SAVE Then Else VERAG_PROG_ALLGEMEIN.cRechnungsnummern.DECREASE_RGNR_NEW(RECHNUNG.Firma_ID, RECHNUNG.Buchungsjahr) ' Bei Fehler --> LfdRgNr um eins mindern. Return False End If 'Rechnungsnummer UPDATEN '..................... End If Else ' Anlage zur Sammelrechnung RECHNUNG.[Status] = 2 End If ' Diese Rechnung wurde zum Drucken ausgewählt, ' deshalb kann der Status der Zollkontrolle auf 'F' gesetzt werden. For Each p In RECHNUNG.POSITIONEN If p.IndexZkteing > 0 Then 'p.IndexZkteing IsNot Nothing AndAlso ' Dim ZK As New VERAG_PROG_ALLGEMEIN.cAbgaben(RECHNUNG.POSITIONEN(0).IndexZkteing) ' If ZK.Status = "X" Then ZK.Status = "F" : ZK.SAVE() VERAG_PROG_ALLGEMEIN.cZkteing.UPDATE_Status("F", RECHNUNG.POSITIONEN(0).IndexZkteing) End If Next Return RECHNUNG.SAVE(True) End Function Shared Function checkNull(o As Object, Optional ret As String = "") As Object If o Is Nothing Then Return ret If o Is DBNull.Value Then Return ret Return o End Function Public Shared Function isSTARK(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Boolean 'obj As Object, tablename As String, where As String) As Boolean Select Case RECHNUNG.RechnungsKundenNr Case 714875, 751634 Return True Case Else Return False End Select End Function Public Shared Function isReverseChargeSumme(FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Boolean 'obj As Object, tablename As String, where As String) As Boolean 'Wenn selbes Land --> Kein Reversecharge If RECHNUNG.RechnungsLandKz = FIRMA.Firma_LandKz Then Return False End If If Not cProgramFunctions.isEULand(RECHNUNG.RechnungsLandKz) Then Return False End If If FIRMA IsNot Nothing Then 'Nur EU_länder If Not cProgramFunctions.isEULand(FIRMA.Firma_LandKz) Then Return False End If End If Dim sqlstr = " SELECT SUM(POS.SteuerfreierBetrag) AS ReverseChargeSumme " sqlstr &= " FROM Rechnungsausgang as RA INNER JOIN RechnungsausgangPositionen as POS ON RA.RK_ID = POS.RK_ID INNER JOIN Leistungen ON POS.LeistungsNr = Leistungen.LeistungsNr INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] AS LD ON RA.RechnungsUstIdKz = LD.LandKz" sqlstr &= " WHERE RA.rk_id='" & RECHNUNG.RK_ID & "' AND LD.ReverseCharge = 1 AND Leistungen.ReverseCharge = 1" 'If Not CBool(SQL.DLookup("isnull([MitgliedslandEU],0)", "Währungstabelle", "LandKz='" & If(RECHNUNG.RechnungsLandKz, "") & "'", "FMZOLL", 0)) Then ' Return False 'End If Return If(SQL.getValueTxtBySql(sqlstr, "FMZOLL",,, 0) = 0, False, True) End Function Shared Function getReverseChargeSumme(FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RechnungsLandKz As String, RechnungsNr As Object, RechnungsDatum As Object, Optional VorschauID As String = "") As Double 'Wenn selbes Land --> Kein Reversecharge ' MsgBox(RechnungsLandKz & " - " & FIRMA.Firma_LandKz) If RechnungsLandKz = FIRMA.Firma_LandKz Then Return False End If If Not cProgramFunctions.isEULand(RechnungsLandKz) Then Return 0 End If If FIRMA IsNot Nothing Then 'Nur EU_länder If Not cProgramFunctions.isEULand(FIRMA.Firma_LandKz) Then Return 0 End If End If Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SqlStr = "SELECT SUM(dbo.RechnungsausgangPositionen.SteuerfreierBetrag) AS ReverseChargeSumme FROM dbo.Rechnungsausgang INNER JOIN dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID INNER JOIN dbo.Leistungen ON dbo.RechnungsausgangPositionen.LeistungsNr = dbo.Leistungen.LeistungsNr INNER JOIN dbo.[Länderverzeichnis für die Außenhandelsstatistik] ON dbo.Rechnungsausgang.RechnungsUstIdKz = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandKz WHERE 1=1 " If VorschauID = "" Then SqlStr &= " AND (dbo.Rechnungsausgang.RechnungsNr = '" & RechnungsNr & "') AND (dbo.Rechnungsausgang.RechnungsDatum = '" & CDate(RechnungsDatum).ToShortDateString & "') " Else SqlStr &= " AND (dbo.Rechnungsausgang.VorschauID = '" & VorschauID & "') " End If SqlStr &= " AND (dbo.[Länderverzeichnis für die Außenhandelsstatistik].ReverseCharge = 1) AND (dbo.Leistungen.ReverseCharge = 1)" Dim sum = SQL.getValueTxtBySql(SqlStr, "FMZOLL") If sum Is DBNull.Value Or sum = "" Then Return 0 Return sum End Function Shared Function getReverseChargeSummeRKID(FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Double 'Wenn selbes Land --> Kein Reversecharge ' MsgBox(RechnungsLandKz & " - " & FIRMA.Firma_LandKz) If RECHNUNG.RechnungsLandKz = FIRMA.Firma_LandKz Then Return False End If If Not cProgramFunctions.isEULand(RECHNUNG.RechnungsLandKz) Then Return 0 End If If FIRMA IsNot Nothing Then 'Nur EU_länder If Not cProgramFunctions.isEULand(FIRMA.Firma_LandKz) Then Return 0 End If End If Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SqlStr = "SELECT SUM(dbo.RechnungsausgangPositionen.SteuerfreierBetrag) AS ReverseChargeSumme FROM dbo.Rechnungsausgang INNER JOIN dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID INNER JOIN dbo.Leistungen ON dbo.RechnungsausgangPositionen.LeistungsNr = dbo.Leistungen.LeistungsNr INNER JOIN dbo.[Länderverzeichnis für die Außenhandelsstatistik] ON dbo.Rechnungsausgang.RechnungsUstIdKz = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandKz WHERE 1=1 " SqlStr &= " AND (dbo.Rechnungsausgang.RK_ID = '" & RECHNUNG.RK_ID & "') " SqlStr &= " AND (dbo.[Länderverzeichnis für die Außenhandelsstatistik].ReverseCharge = 1) AND (dbo.Leistungen.ReverseCharge = 1)" Dim sum = SQL.getValueTxtBySql(SqlStr, "FMZOLL") If sum Is DBNull.Value Or sum = "" Then Return 0 Return sum End Function Shared Function getSteuerfreiEUSTZOLL(FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Double Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SqlStr = "SELECT SUM(dbo.RechnungsausgangPositionen.SteuerfreierBetrag) AS ReverseChargeSumme FROM dbo.Rechnungsausgang INNER JOIN dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID INNER JOIN dbo.Leistungen ON dbo.RechnungsausgangPositionen.LeistungsNr = dbo.Leistungen.LeistungsNr WHERE 1=1 " SqlStr &= " AND (dbo.Rechnungsausgang.RK_ID = '" & RECHNUNG.RK_ID & "') " SqlStr &= " AND Leistungen.Steuerpflichtig=0 " Dim sum = SQL.getValueTxtBySql(SqlStr, "FMZOLL") If sum Is DBNull.Value Or sum = "" Then Return 0 Return sum End Function Shared Function getSTARK_EUST(FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Double Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SqlStr = "SELECT SUM(dbo.RechnungsausgangPositionen.SteuerfreierBetrag) AS ohneEUST FROM dbo.Rechnungsausgang INNER JOIN dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID WHERE 1=1 " SqlStr &= " AND (dbo.Rechnungsausgang.RK_ID = '" & RECHNUNG.RK_ID & "') " SqlStr &= " AND LeistungsNr IN (20,77) " Dim sum = SQL.getValueTxtBySql(SqlStr, "FMZOLL") If sum Is DBNull.Value Or sum = "" Then Return 0 Return sum End Function Shared Function getSTARK_ohneEUST(FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Double Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim SqlStr = "SELECT SUM(dbo.RechnungsausgangPositionen.SteuerfreierBetrag) AS ohneEUST FROM dbo.Rechnungsausgang INNER JOIN dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID WHERE 1=1 " SqlStr &= " AND (dbo.Rechnungsausgang.RK_ID = '" & RECHNUNG.RK_ID & "') " SqlStr &= " AND LeistungsNr NOT IN (20,77) " Dim sum = SQL.getValueTxtBySql(SqlStr, "FMZOLL") If sum Is DBNull.Value Or sum = "" Then Return 0 Return sum End Function 'Shared Function getSteuerfreiEUSTZOLL(FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, RechnungsNr As String, RechnungsDatum As String, Firma_ID As Integer, Optional VorschauID As String = "") As Double ' Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL ' Dim SqlStr = "SELECT SUM(dbo.RechnungsausgangPositionen.SteuerfreierBetrag) AS ReverseChargeSumme ' FROM dbo.Rechnungsausgang INNER JOIN ' dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID INNER JOIN ' dbo.Leistungen ON dbo.RechnungsausgangPositionen.LeistungsNr = dbo.Leistungen.LeistungsNr ' WHERE 1=1 " ' If VorschauID = "" Then ' SqlStr &= " AND (dbo.Rechnungsausgang.RechnungsNr = '" & RechnungsNr & "') AND (dbo.Rechnungsausgang.RechnungsDatum = '" & CDate(RechnungsDatum).ToShortDateString & "') " ' Else ' SqlStr &= " AND (dbo.Rechnungsausgang.VorschauID = '" & VorschauID & "') " ' End If ' SqlStr &= " AND Leistungen.Steuerpflichtig=0 " ' SqlStr &= " and Firma_ID= '" & Firma_ID & "' " ' Dim sum = SQL.getValueTxtBySql(SqlStr, "FMZOLL") ' If sum Is DBNull.Value Or sum = "" Then Return 0 ' Return sum 'End Function ' 0-_> Rechnung angelegt ' 1-_> Einzel-Rg gedruckt ' 2-_> Anlagen zur Rg gedruckt ' 3-_> Sammel-Rg gedruckt ' 4-_> ? irgendwas mit SR 6 Maut/Diesel?? Public Shared Function GET_SR_SQLDT(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Optional whereKdNr As String = "", Optional SB As String = "", Optional AvisoIds As List(Of Integer) = Nothing, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional AUTOMailversand As String = "") As DataTable If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") " Dim whereAbfArt = "" If Abfertigungsart <> "" Then whereAbfArt = " AND (SELECT TOP 1 Abfertigungsart FROM Speditionsbuch WHERE Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr)='" & Abfertigungsart & "' " Dim whereAutoMailversand = "" If AUTOMailversand <> "" Then whereAutoMailversand = " AND isnull(Rechnungsausgang.Automailversand,0) = 1 " Dim sqlStr = " SELECT Rechnungsausgang.RK_ID, Rechnungsausgang.Firma_ID, Rechnungsausgang.FilialenNr, Rechnungsausgang.RechnungsKundenNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID, Rechnungsausgang.RechnungsNr, Rechnungsausgang.RechnungsDatum, Rechnungsausgang.DruckDatumZeit, Rechnungsausgang.Status, Rechnungsausgang.Sammelrechnung, Rechnungsausgang.Abfertigungsdatum, Rechnungsausgang.Buchungsjahr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.SpeditionsbuchUnterNr,[SteuerpflichtigerGesamtbetrag],[SteuerfreierGesamtbetrag],Rechnungsausgang.Rechnungsart From Rechnungsausgang WHERE Rechnungsausgang.Status IN(0, 2) And Rechnungsausgang.Firma_ID = " & Firma_ID & " And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And Rechnungsausgang.FakturierungsGruppe = '" & FakturierungsGruppe & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & DatumBis.ToShortDateString & "' " & whereKdNr & whereAbfArt & " " & If(SammelrechungArt = 7 And SB <> "", " AND Sachbearbeiter='" & SB & "' ", "") & "" & getWhereAvisoId(AvisoIds) & whereAutoMailversand 'Rechnungsausgang.Status IN(0, 2) --> vorher nur 2, da Anlagen vor der SR gedruckt wurden... If SammelrechungArt = 7 Then sqlStr &= " ORDER BY Rechnungsausgang.AvisoID,Rechnungsausgang.Firma_ID,Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, CASE Rechnungsausgang.Rechnungsart WHEN 'RK' THEN 1 WHEN 'RU' THEN 2 WHEN 'RG' THEN 3 ELSE 4 END " Else sqlStr &= " ORDER BY Rechnungsausgang.Firma_ID, Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID, CASE Rechnungsausgang.Rechnungsart WHEN 'RK' THEN 1 WHEN 'RU' THEN 2 WHEN 'RG' THEN 3 ELSE 4 END " End If ' MsgBox(sqlStr) Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL") Return dt End Function Public Shared Function CHECK_SR_SQLDT(dt As DataTable) As Boolean For Each r In dt.Rows If r("Rechnungsart") <> "RU" Then 'Sofern es sich nicht um eine unvollständige RG handelt, muss der Steuerpflichtige Gesamtbetrag <> 0 sein. If (CDbl(r("SteuerpflichtigerGesamtbetrag")) + CDbl(r("SteuerfreierGesamtbetrag"))) = 0 Then Return False End If End If Next Return True End Function Public Shared Function CHECK_SR_GESSUM_SQLDT(dt As DataTable) As Boolean Dim sum As Double = 0 For Each r In dt.Rows If r("Rechnungsart") <> "RU" Then 'Sofern es sich nicht um eine unvollständige RG handelt, muss der Steuerpflichtige Gesamtbetrag <> 0 sein. sum += (CDbl(r("SteuerpflichtigerGesamtbetrag")) + CDbl(r("SteuerfreierGesamtbetrag"))) End If Next If sum = 0 Then Return False Return True End Function Public Shared Function CHECK_SR_RU_RK_SQLDT(dt As DataTable) As Boolean Dim sum As Double = 0 Dim RU_found = False Dim RK_found = False For Each r In dt.Rows If r("Rechnungsart") = "RU" Then 'Sofern mind. eine unvollständige RG vorhanden ist, muss auch ein Kopfeintrag vorhanden sein RU_found = True End If If r("Rechnungsart") = "RK" Then 'Sofern mind. eine unvollständige RG vorhanden ist, muss auch ein Kopfeintrag vorhanden sein RK_found = True End If Next 'MsgBox(RU_found) 'MsgBox(RK_found) 'MsgBox(RU_found And RK_found) If RU_found And RK_found Then Return True If Not RU_found And Not RK_found Then Return True Return False End Function Public Shared Function getWhereAvisoId(ids As List(Of Integer)) As String If ids Is Nothing Then Return "" If ids.Count = 0 Then Return "" getWhereAvisoId = " AND AvisoId IN (" For Each i In ids getWhereAvisoId &= "'" & i & "'," Next getWhereAvisoId = getWhereAvisoId.Substring(0, getWhereAvisoId.Length - 1) ' "," getWhereAvisoId &= ") " End Function Public Shared Function doSAMMELRechnungsDruck(Firma_ID As Integer, SammelrechungArt As Integer, DatumBis As Date, Rechnungsdatum As Date, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional whereKdNr As String = "", Optional RechnungsdruckArt As Integer = -1, Optional ByRef listPDFs As List(Of String) = Nothing, Optional SB As String = "", ByRef Optional lastAktuelle_RgNr As Integer = -1, ByRef Optional DruckdatumUhrzeit As DateTime = Nothing, Optional AvisoIds As List(Of Integer) = Nothing, Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional vorschau As Boolean = False, Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional MDMRENrvoarhanden As Boolean = False, Optional MDMREkopie As Boolean = False, Optional setAutoMailversand As Boolean = False, Optional saveInThereFore As Boolean = True, Optional showError As Boolean = True) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean 'If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False Try 'If whereKdNr <> "" Then whereKdNr = " AND RechnungsKundenNr IN(" & whereKdNr & ") " 'Dim sqlStr = " SELECT Rechnungsausgang.RK_ID, Rechnungsausgang.Firma_ID, Rechnungsausgang.FilialenNr, Rechnungsausgang.RechnungsKundenNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID, Rechnungsausgang.RechnungsNr, Rechnungsausgang.RechnungsDatum, Rechnungsausgang.DruckDatumZeit, Rechnungsausgang.Status, Rechnungsausgang.Sammelrechnung, Rechnungsausgang.Abfertigungsdatum, Rechnungsausgang.Buchungsjahr ' From Rechnungsausgang ' WHERE Rechnungsausgang.Status IN(0, 2) And Rechnungsausgang.Firma_ID = " & Firma_ID & " And Rechnungsausgang.Sammelrechnung = '" & SammelrechungArt & "' And CONVERT(DATE,Rechnungsausgang.Abfertigungsdatum,104) <= '" & DatumBis.ToShortDateString & "' " & whereKdNr & " ' " & If(SammelrechungArt = 7 And SB <> "", " AND Sachbearbeiter='" & SB & "' ", "") & "" ''Rechnungsausgang.Status IN(0, 2) --> vorher nur 2, da Anlagen vor der SR gedruckt wurden... 'If SammelrechungArt = 7 Then ' sqlStr &= " ORDER BY Rechnungsausgang.AvisoID,Rechnungsausgang.Firma_ID,Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode " 'Else ' sqlStr &= " ORDER BY Rechnungsausgang.Firma_ID, Rechnungsausgang.RechnungsKundenNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.AbfertigungsNr, Rechnungsausgang.BelegartenNr, Rechnungsausgang.[Steuersatz %], Rechnungsausgang.Lastschrift, Rechnungsausgang.Währungscode, Rechnungsausgang.AvisoID " 'End If Dim VorschauID = "" If vorschau Then VorschauID = Now.ToString("dd.MM.yyyy HH:mm:ss.fff") & "_" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "_" & Firma_ID End If If SammelrechungArt = 7 And (AvisoIds IsNot Nothing AndAlso AvisoIds.Count = 0) Then Return False 'Prüfung, ob Daten vorhanden; Abbruch ZB wenn keine AvisoId Dim dt = GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, whereKdNr, SB, AvisoIds, FakturierungsGruppe, Abfertigungsart) 'SQL.loadDgvBySql(sqlStr, "FMZOLL") If dt Is Nothing Then MsgBox("ERR01: Keine Daten") : Return True If dt.Rows.Count = 0 Then MsgBox("ERR02: Keine Daten") : Return True If Not CHECK_SR_SQLDT(dt) Then MsgBox("ERR03: Es wurden Rechnungen mit einem 0-Betrag gefunden. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True If Not CHECK_SR_GESSUM_SQLDT(dt) Then MsgBox("ERR04: Summe der Rechnungen in Sammelrechnung ist '0'. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True 'Rechnungsart prüfen, ob Sammelrechnung oder unvollständige SRG / If Not CHECK_SR_RU_RK_SQLDT(dt) Then MsgBox("ERR05: Bei Kopf-Sammelrechnung müssen Kopfdaten und unvollständige Rg-Einträge vorhanden sein. Bitte prüfen Sie die Eingaben und starten Sie die Sammelabrechnung erneut.") : Return True Dim Buchungsjahr = cRKSV.getGJ(Rechnungsdatum, Firma_ID) 'IIf(Rechnungsdatum.Month = 1, Rechnungsdatum.Year - 1, Rechnungsdatum.Year) Dim Aktuelle_RgNr As Integer = -1 If Not vorschau Then If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) 'Nimmt die aktuelle RgNr und zählt eine Pos. hoch. nur wenn keine Vorschau oder keine Re.Nr vergeben!!! End If End If DruckdatumUhrzeit = Now.ToString("dd.MM.yyyy HH:mm:ss.fff") If listPDFs Is Nothing Then listPDFs = New List(Of String) If SonstAnlagen Is Nothing Then SonstAnlagen = New List(Of String) Dim kdTmp = -1 Dim AvisoIdTmp = -1 Dim FilialeTmp = -1 Dim FIRMATmp = -1 Dim found = False For Each r In dt.Rows Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(r("RK_ID")) If RG IsNot Nothing Then Select Case SammelrechungArt Case 7 'LKW Abrechnung If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal If AvisoIdTmp < 0 Then AvisoIdTmp = RG.AvisoID 'erstes Mal ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr 'erstes Mal If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal If kdTmp <> RG.RechnungsKundenNr Or AvisoIdTmp <> RG.AvisoID Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr Dim path = "" doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) 'hier wird auch die RG Nr erhöht! Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) If path <> "" Then listPDFs.Add(path) End If kdTmp = RG.RechnungsKundenNr AvisoIdTmp = RG.AvisoID FilialeTmp = RG.FilialenNr FIRMATmp = RG.Firma_ID Case 6 'MDM Abrechnung If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr 'erstes Mal If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr ' KEIN doSAMMELRechnungsDruck_Abschnitt!!!! If Not MDMRENrvoarhanden Then Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) End If kdTmp = RG.RechnungsKundenNr FilialeTmp = RG.FilialenNr FIRMATmp = RG.Firma_ID Case Else If kdTmp < 0 Then kdTmp = RG.RechnungsKundenNr 'erstes Mal ' If FilialeTmp < 0 Then FilialeTmp = RG.FilialenNr 'erstes Mal If FIRMATmp < 0 Then FIRMATmp = RG.Firma_ID 'erstes Mal If kdTmp <> RG.RechnungsKundenNr Or FIRMATmp <> RG.Firma_ID Then 'Or FilialeTmp <> RG.FilialenNr Dim path = "" doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,,,,,, saveInThereFore) Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) If path <> "" Then listPDFs.Add(path) End If kdTmp = RG.RechnungsKundenNr FilialeTmp = RG.FilialenNr FIRMATmp = RG.Firma_ID End Select If vorschau Then RG.[VorschauID] = VorschauID Else If SammelrechungArt = 6 Then If RechnungsdruckArt = 7 Then 'RechnungsdruckArt = 7 ist die Erstellung per MDM-Sammelabrechnung! RG.[Status] = 2 'Bei MDM Abrechnung; Druck später!! RG.Automailversand = setAutoMailversand Else RG.[Status] = 4 ' Beim finalen Versenden der Sammelrechnung keine neue ReNr vergeben. If RG.RechnungsNr >= 0 Then Aktuelle_RgNr = RG.RechnungsNr End If Else RG.[Status] = 3 End If RG.[RechnungsNr] = Aktuelle_RgNr RG.[RechnungsDatum] = Rechnungsdatum.ToShortDateString RG.[Buchungsjahr] = Buchungsjahr RG.[DruckDatumZeit] = DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") End If RG.SAVE() If RechnungsdruckArt <> 7 Then If Not RG.checkRechnungsNrIsSet() AndAlso Not vorschau Then If showError Then MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen") Return False Else found = True End If End If End If Next 'Letzter Abschnitt: If found Then Dim path = "" If Not (SammelrechungArt = 6 And RechnungsdruckArt = 7) Then doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart,,, MDMREkopie,,,, saveInThereFore) If path <> "" Then listPDFs.Add(path) End If lastAktuelle_RgNr = Aktuelle_RgNr Return True Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Shared Function getNewRgNr(Firma_ID, Buchungsjahr) Dim RG_NR As New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(Firma_ID, Buchungsjahr) getNewRgNr = RG_NR.LfdRechnungsNr ' --> Die in der DB gespeicherte RgNr wird verwendet ' Nächste Rechnungsnummer speichern. 'RG_NR.INCREASE_RGNR() ' SOFORT Speichern, Sonst gibt es wieder eine Doppelvergabe! ' Prüfung, ob RgNr schon vergeben wurde --> dann +1, bis freie Nr. (sollte EÜGENTLICH nicht vorkommen) getNewRgNr = VERAG_PROG_ALLGEMEIN.cRechnungsnummern.CHECK_RGNR_NEW(getNewRgNr, Firma_ID, Buchungsjahr) End Function Public Shared Function doSAMMELRechnungsDruck_Abschnitt(ByRef RechnungsNr As Integer, Firma_ID As Integer, Buchungsjahr As Integer, DruckdatumUhrzeit As DateTime, PrinterName As String, Optional AnlageEinzelRg As Boolean = True, Optional Sammelrechnungsbericht As Boolean = True, Optional RechnungsdruckArt As Integer = -1, Optional ByRef pathPDF As String = "", Optional SRDruckWiederholen As Boolean = False, Optional SB As String = "", Optional AnlageExcelEvolog As Boolean = False, Optional ByRef SonstAnlagen As List(Of String) = Nothing, Optional VorschauID As String = "", Optional AnlageExcelTransferry360 As Boolean = False, Optional FakturierungsGruppe As String = "", Optional Abfertigungsart As String = "", Optional mergePDF As Boolean = False, Optional RechnungsanhangPDF As Boolean = False, Optional RechnugnskopieMDMSammelrechnung As Boolean = False, Optional AnhList As List(Of String) = Nothing, Optional RechnungsanhangCSV As Boolean = False, Optional onlyAsfinagAnhang As Boolean = False, Optional saveInTherefore As Boolean = True) As Boolean 'SB Nicht mehr benötigt, da RG-Nr und DruckdatumUhrzeit Dim dt As DataTable If SRDruckWiederholen Then dt = getSAMMELRechnung_Dt(RechnungsNr, DruckdatumUhrzeit, "3,4,5", ) ' 3,4,5-_> irgendebbs Else 'Dim RG_NR = New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(Firma_ID, Buchungsjahr) 'RG_NR.INCREASE_RGNR() 'für die nächste Rechnung dt = getSAMMELRechnung_Dt(RechnungsNr, DruckdatumUhrzeit, IIf(RechnungsdruckArt = 7, "2", "2, 3, 4"), [VorschauID]) End If ' 3-_> Anlagen gedruckt If dt Is Nothing OrElse dt.Rows.Count <= 0 Then MsgBox("ERR03: Keine Daten!") : Return False '-------------- für PDF-Sammel-Rechnung -------------- Dim pathPDF_SammelRg = "" Dim pathPDF_SammelBericht = "" Dim xls_Evolog = "" Dim xls_Transferry360 = "" Dim pathPDF_Anlage As New List(Of String) '-------------- ENDE -------------- doSAMMELRechnungsDruck_Abschnitt = doSAMMELRechnungDruck_Rechnungsdruck(dt, RechnungsNr, DruckdatumUhrzeit, 3, RechnungsdruckArt, pathPDF_SammelRg, PrinterName, SRDruckWiederholen, VorschauID) 'Sammelrechnung drucken If Sammelrechnungsbericht Then If Not doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr, DruckdatumUhrzeit, RechnungsdruckArt, pathPDF_SammelBericht, PrinterName, VorschauID, dt, RechnugnskopieMDMSammelrechnung) Then doSAMMELRechnungsDruck_Abschnitt = False 'Sammelrechnungsbericht drucken If AnlageEinzelRg Then If Not doSAMMELRechnungDruck_Rechnungsdruck_Anlagen(RechnungsNr, DruckdatumUhrzeit, PrinterName, pathPDF_Anlage, RechnungsdruckArt, VorschauID) Then doSAMMELRechnungsDruck_Abschnitt = False 'Anlagen drucken If RechnungsanhangPDF Then getRechnungsanshang(dt, pathPDF_Anlage, "pdf", onlyAsfinagAnhang) If RechnungsanhangCSV Then getRechnungsanshang(dt, AnhList, "csv") 'SONSTIGE ANLAGEN: If AnlageExcelEvolog Then 'Sammelrechnungsbericht EVOLOG If doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelEvolog(RechnungsNr, DruckdatumUhrzeit, RechnungsdruckArt, xls_Evolog, PrinterName, VorschauID) Then If xls_Evolog <> "" Then SonstAnlagen.Add(xls_Evolog) Else doSAMMELRechnungsDruck_Abschnitt = False End If End If If AnlageExcelTransferry360 Then 'Sammelrechnungsbericht EVOLOG If doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelTransFerry360(RechnungsNr, DruckdatumUhrzeit, RechnungsdruckArt, xls_Transferry360, PrinterName, VorschauID) Then If xls_Transferry360 <> "" Then SonstAnlagen.Add(xls_Transferry360) Else doSAMMELRechnungsDruck_Abschnitt = False End If End If 'ZOLLBELEGE: If RechnungsdruckArt = 0 Or RechnungsdruckArt = 1 Then 'DRUCK If VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("FAKTURIERUNG_PRINT_Zollbeleg") Then Try Dim pathZollbeleg = getSpedBuchAnhaenge_Path(dt.Rows(0)("FilialenNr"), dt.Rows(0)("AbfertigungsNr"), dt.Rows(0)("SpeditionsbuchUnterNr")) If pathZollbeleg <> "" Then SonstAnlagen.Add(pathZollbeleg) Catch ex As Exception MsgBox("ERR ZOLLBELEG-ANHNAG: " & ex.Message & ex.StackTrace) End Try End If End If '-------------- für PDF-Sammel-Rechnung -------------- Dim list As New List(Of String) ' Sammlung PDFs If pathPDF_SammelRg <> "" Then list.Add(pathPDF_SammelRg) If pathPDF_SammelBericht <> "" Then list.Add(pathPDF_SammelBericht) If pathPDF_Anlage.Count > 0 Then For Each l In pathPDF_Anlage list.Add(l) Next End If If list.Count > 0 Then ' pathPDF = "" 'PAD Pfad zurückgeben!!!!!! pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Sammelrechnung_" & RechnungsNr & ".pdf", ".pdf", False, False) 'pathPDF = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Sammelrechnung_" & RechnungsNr & ".pdf", ".pdf", False, False) If Not FormularManagerNEU.MergePdfFiles(list, pathPDF) Then pathPDF = "" : MsgBox("Fehler PDF") ' Else ' Process.Start(pathPDF) End If 'THEREFORE IMPORT: '------------------------------------------------------------------------------- Try If RechnungsdruckArt <> 7 Then If Not SRDruckWiederholen And saveInTherefore Then If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then If vbYes = MsgBox("TEST - in Therefore speichern?", vbYesNo) Then VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(pathPDF, "SA " & RechnungsNr & " " & dt.Rows(0)("RechnungsName 1"), "", Firma_ID, False) End If Else VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(pathPDF, "SA " & RechnungsNr & " " & dt.Rows(0)("RechnungsName 1"), "", Firma_ID, False) End If End If End If Catch ex As Exception MsgBox("Therefore-Import fehlgeschlagen!" & ex.Message & ex.StackTrace) End Try '------------------------------------------------------------------------------- 'ABRECHNUNGS API: '------------------------------------------------------------------------------- Try If Not SRDruckWiederholen Then Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(dt.Rows(0)("RechnungsKundenNr")) If KUNDE_ERW IsNot Nothing Then 'TRADESHIFT: Try If KUNDE_ERW.kde_API_Tradeshift Then Select Case dt.Rows(0)("Firma_ID") Case 21, 22, 23 ' System.IO.File.Copy(pathPDF, "\\srv01.unisu.at\Unisped\___AR_PDF\Sammelrechnung_" & RechnungsNr & ".pdf", True) System.IO.File.Copy(pathPDF, "\\unidc01.unisu.at\Unisped\___AR_PDF\Sammelrechnung_" & RechnungsNr & ".pdf", True) End Select End If Catch ex As Exception MsgBox("Tradeshift Export fehlgeschlagen! " & ex.Message & ex.StackTrace) End Try If dt.Rows(0)("Firma_ID") = 24 Then Dim API As New DataTable Dim Program = "DATEV-PDF" API = SQL.loadDgvBySql("SELECT top(1) * FROM tblAPIEinstellungen WHERE api_program='" & Program & "' and api_productive ='" & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "0", "1") & "'", "ADMIN") If API.Rows.Count = 0 Then MsgBox("keine gültigen API-Einstellungen für " & Program & " gefunden!") Else Dim client As WebClient = New WebClient client.Credentials = New NetworkCredential(API.Rows(0).Item("api_user").ToString, API.Rows(0).Item("api_password").ToString) client.UploadFile(API.Rows(0).Item("api_url") & "/Sammelrechnung_" & RechnungsNr & ".pdf", pathPDF) End If End If End If End If Catch ex As Exception MsgBox("API Fehler!" & ex.Message & ex.StackTrace) End Try '------------------------------------------------------------------------------- End If '-------------- ENDE -------------- End Function Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Anlagen(RechnungsNr As Integer, DruckDatumZeit As Date, PrinterName As String, Optional ByRef pathPDF_Anlage As List(Of String) = Nothing, Optional RechnungsdruckArt As Integer = -1, Optional VorschauID As String = "") As Boolean Dim dt As DataTable If VorschauID = "" Then SQL.loadDgvBySql("Select RK_ID FROM Rechnungsausgang WHERE Rechnungsausgang.Status In(" & IIf(RechnungsdruckArt = 7, "2", "2, 3, 4") & ") And Convert(DateTime, DruckDatumZeit, 104) ='" & DruckDatumZeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL") Else SQL.loadDgvBySql("SELECT RK_ID FROM Rechnungsausgang WHERE RechnungsNr is null AND VorschauID='" & VorschauID & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL") End If If dt IsNot Nothing Then For Each r In dt.Rows Dim Path = "" If Not doRechnungsDruck(r("RK_ID"),, False, RechnungsdruckArt, Path, PrinterName, True) Then MsgBox("Fehler beim Sammel-Rechnungsdruck - Anlage zur Rechnung: " & RechnungsNr) Return False End If If Path <> "" Then pathPDF_Anlage.Add(Path) Next End If Return True End Function Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelEvolog(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional VorschauID As String = "") As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean Try Dim sqlStr = " SELECT RechnungsNr,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,Abfertigungsarten.Abfertigungsbezeichnung, (SELECT SUM([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) FROM RechnungsausgangPositionen where RechnungsausgangPositionen.RK_ID=Rechnungsausgang.RK_ID) as Betrag FROM Rechnungsausgang INNER JOIN Speditionsbuch on Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr INNER JOIN Abfertigungsarten ON Abfertigungsarten .Abfertigungsart=Speditionsbuch.Abfertigungsart WHERE 1=1 " If VorschauID = "" Then sqlStr &= " AND Rechnungsausgang.Status IN(3) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' " Else sqlStr &= " AND RechnungsNr is null AND VorschauID='" & VorschauID & "' " End If sqlStr &= " ORDER BY Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr" Dim dt As DataTable = SQL.loadDgvBySql(sqlStr, "FMZOLL") If dt IsNot Nothing And dt.Rows.Count > 0 Then Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\" ' My.Computer.FileSystem.GetTempFileName If Not My.Computer.FileSystem.DirectoryExists(sPath) Then My.Computer.FileSystem.CreateDirectory(sPath) End If Dim exclApp As Object 'as Application Dim Datei As Object 'as WorkBook Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet exclApp = CreateObject("Excel.Application") ' Dim nWeek As Integer ' nWeek = DatePart(DateInterval.WeekOfYear, New Date(2004, 3, 22), _ ' FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays) With exclApp .Visible = False Try Path = sPath & "SR_" & dt.Rows(0)("RechnungsKundenNr") & ".xlsx" While System.IO.File.Exists(Path) Path = sPath & "SR_" & dt.Rows(0)("RechnungsKundenNr") & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx" End While My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.SR_EVOLOG, False) Catch ex As System.Exception ' MsgBox(ex.Message) MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace) Return False End Try Datei = .Workbooks.Open(Path) 'Anpassen Blatt = Datei.Worksheets(1) 'Anpassen Dim cnt = 2 For Each r In dt.Rows Blatt.Range("A" & cnt).Value = cnt - 1 Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum") Blatt.Range("C" & cnt).Value = r("KdAuftragsNr") Blatt.Range("D" & cnt).Value = r("AbfertigungsNr") Blatt.Range("E" & cnt).Value = r("Kennzeichen") Blatt.Range("F" & cnt).Value = r("Abfertigungsbezeichnung") Blatt.Range("G" & cnt).Value = r("Betrag") cnt += 1 Next Datei.Save If Rechnugnsdruck = -1 Then Blatt.PrintOutEx() ElseIf Rechnugnsdruck = 3 Then 'Process.Start(Path) .Visible = True Else Datei.close End If End With Return True End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht_ExcelTransFerry360(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional VorschauID As String = "") As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean Try 'Dim sqlStr = " SELECT [RechnungsName 1],[AbsenderName 1],[EmpfängerName 1],Abfertigungsarten.Abfertigungsart,RechnungsNr,RechnungsDatum,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.SpeditionsbuchUnterNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,Abfertigungsarten.Abfertigungsbezeichnung, (SELECT SUM([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) FROM RechnungsausgangPositionen where RechnungsausgangPositionen.RK_ID=Rechnungsausgang.RK_ID) as Betrag ' ,isnull((SELECT cast(Sum(Anzahl)as varchar(5)) FROM RechnungsausgangPositionen AS POS2 where POS2.RK_ID=Rechnungsausgang.RK_ID and POS2.[BerechnungsartNr]=10),'') As POSAnz ' FROM Rechnungsausgang INNER JOIN Speditionsbuch on Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr ' INNER JOIN Abfertigungsarten ON Abfertigungsarten .Abfertigungsart=Speditionsbuch.Abfertigungsart ' WHERE 1=1 " Dim sqlStr = " SELECT [RechnungsName 1],[AbsenderName 1],[EmpfängerName 1],Abfertigungsarten.Abfertigungsart,RechnungsNr,RechnungsDatum,RechnungsKundenNr,Rechnungsausgang.Abfertigungsdatum,Rechnungsausgang.KdAuftragsNr, Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.FilialenNr,Rechnungsausgang.SpeditionsbuchUnterNr,Rechnungsausgang.[LKW Kennzeichen] as Kennzeichen,POS.LeistungsBez,([SteuerpflichtigerBetrag]+[SteuerfreierBetrag]) Betrag ,CASE WHEN [BerechnungsartNr]=10 THEN '' ELSE pos.Anzahl END as [Count],CASE WHEN [BerechnungsartNr]=10 THEN pos.Anzahl ELSE '' END as POSCnt FROM Rechnungsausgang INNER JOIN RechnungsausgangPositionen as POS ON pos.RK_ID=Rechnungsausgang.RK_ID INNER JOIN Speditionsbuch on Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr INNER JOIN Abfertigungsarten ON Abfertigungsarten .Abfertigungsart=Speditionsbuch.Abfertigungsart WHERE 1=1 " If VorschauID = "" Then sqlStr &= " AND Rechnungsausgang.Status IN(3) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' " Else sqlStr &= " AND RechnungsNr is null AND VorschauID='" & VorschauID & "' " End If 'sqlStr &= " ORDER BY Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr" sqlStr &= " order by Rechnungsausgang.AvisoID desc, FilialenNr,AbfertigungsNr,POS.[BerechnungsartNr]" Dim dt As DataTable = SQL.loadDgvBySql(sqlStr, "FMZOLL") If dt IsNot Nothing And dt.Rows.Count > 0 Then Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\" ' My.Computer.FileSystem.GetTempFileName If Not My.Computer.FileSystem.DirectoryExists(sPath) Then My.Computer.FileSystem.CreateDirectory(sPath) End If Dim exclApp As Object 'as Application Dim Datei As Object 'as WorkBook Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet exclApp = CreateObject("Excel.Application") ' Dim nWeek As Integer ' nWeek = DatePart(DateInterval.WeekOfYear, New Date(2004, 3, 22), _ ' FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays) With exclApp .Visible = False Try Path = sPath & "SR_" & dt.Rows(0)("RechnungsKundenNr") & ".xlsx" While System.IO.File.Exists(Path) Path = sPath & "SR_" & dt.Rows(0)("RechnungsKundenNr") & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx" End While My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.SR_TransFerry360, False) Catch ex As System.Exception ' MsgBox(ex.Message) MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace) Return False End Try Datei = .Workbooks.Open(Path) 'Anpassen Blatt = Datei.Worksheets(1) 'Anpassen Dim cnt = 2 For Each r In dt.Rows Blatt.Range("A" & cnt).Value = cnt - 1 Blatt.Range("B" & cnt).Value = r("RechnungsNr") Blatt.Range("C" & cnt).Value = r("RechnungsDatum") Blatt.Range("D" & cnt).Value = r("FilialenNr") Blatt.Range("E" & cnt).Value = r("AbfertigungsNr") Blatt.Range("F" & cnt).Value = r("Abfertigungsdatum") Blatt.Range("G" & cnt).Value = r("RechnungsName 1") Blatt.Range("H" & cnt).Value = r("AbsenderName 1") Blatt.Range("I" & cnt).Value = r("EmpfängerName 1") Blatt.Range("J" & cnt).Value = r("Kennzeichen") Blatt.Range("K" & cnt).Value = r("LeistungsBez") Blatt.Range("L" & cnt).Value = If(r("Count") = "0", "", r("Count")) Blatt.Range("M" & cnt).Value = If(r("POSCnt") = "0", "", r("POSCnt")) Blatt.Range("N" & cnt).Value = r("Betrag") Blatt.Range("O" & cnt).Value = r("KdAuftragsNr") cnt += 1 Next Datei.Save If Rechnugnsdruck = -1 Then Blatt.PrintOutEx() ElseIf Rechnugnsdruck = 3 Then 'Process.Start(Path) .Visible = True End If End With Return True End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Shared Function doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(RechnungsNr As Integer, DruckdatumUhrzeit As Date, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional VorschauID As String = "", Optional SammelrechnungsDT As DataTable = Nothing, Optional Sammelrechnungskopie As Boolean = False, Optional RG_LIST As List(Of Integer) = Nothing, Optional Firma_ID As Integer = -1) As Boolean Try Dim dt As DataTable If VorschauID = "" Then If Rechnugnsdruck = 7 Then dt = SQL.loadDgvBySql("Select * FROM Rechnungsausgang WHERE Rechnungsausgang.Status In(2) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL") Else dt = SQL.loadDgvBySql("Select * FROM Rechnungsausgang WHERE Rechnungsausgang.Status In(2,3,4) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL") End If ElseIf RG_LIST IsNot Nothing Then ' MsgBox("Select * FROM Rechnungsausgang WHERE Firma_ID='" & Firma_ID & "' And RechnungsNr IN (" & String.Join(",", RG_LIST) & ") ORDER BY FilialenNr, AbfertigungsNr") dt = SQL.loadDgvBySql("Select * FROM Rechnungsausgang WHERE Firma_ID='" & Firma_ID & "' And RechnungsNr IN (" & String.Join(",", RG_LIST) & ") ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL") Else dt = SQL.loadDgvBySql("Select * FROM Rechnungsausgang WHERE RechnungsNr is null AND VorschauID='" & VorschauID & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL") End If Dim ROW As DataRow = IIf(dt.Rows.Count > 0, dt.Rows(0), Nothing) Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status")) Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(ROW("Firma_ID")) Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False Dim sum = 0 Dim BelegartenKz = "AR" 'If(Gesamt_RG_Betrag < 0, "AG", "AR") Dim rpt As GrapeCity.ActiveReports.SectionReport Dim tmpPath As String = "" 'ORIGINAL Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) 'Dim RG_Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & " _Rechnung_" & RechnungsNr & ".pdf" 'Rechnugnsdruck = Individuell für deise Rechnung, wird optional mitgegeben Dim RG_Bezeichnung = "Rechnung_" & RechnungsNr & ".pdf" If VorschauID = "PROVISIONSABRECHNUNG" Then RG_Bezeichnung = "Provisionsabrechnung_" & Now.ToString("yyyyMMdd_HHmmss") & ".pdf" End If If isMDMRechnungsdruck Then rpt = SammelRechnungAnlagenDruck_MDM(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath) Else rpt = SammelRechnungAnlagenDruck(ROW, isMDMRechnungsdruck, dt, FIRMA, Rechnugnsdruck, KD_RG, RechnungsNr, VorschauID, Sammelrechnungskopie, RG_Bezeichnung, SammelrechnungsDT, tmpPath) End If Path = tmpPath Select Case If(Rechnugnsdruck > 0, Rechnugnsdruck, If(AD.Rechnungsdruck, 0))'If(AD.Rechnungsdruck, 0) Case 0, 1 'DRUCKEN Return cProgramFunctions.printRpt(rpt, PrinterName, False) 'Case 1 'FAX Case 2 'MAIL rpt.Dispose() Try Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) ' Mail.Subject = " Rechnung Nr. " & ROW("RechnungsNr") ' Mail.Subject = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & " Rechnung Nr. " & ROW("RechnungsNr") Select Case ROW("RechnungsLandKz") Case "TR" Mail.Subject = "Invoice No. " & ROW("RechnungsNr") Mail.HTMLBody = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." Mail.HTMLBody &= "


Saygilarimizla

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) Case "A", "AT", "D", "DE", "CH" Mail.Subject = "Rechnung Nr. " & ROW("RechnungsNr") Mail.HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen die o.g. Rechnung." Mail.HTMLBody &= "


Mit freundlichen Grüßen

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) Case Else Mail.Subject = "Invoice No. " & ROW("RechnungsNr") Mail.HTMLBody = "Dear Sir or Madam,

attached we send you the invoice mentioned above." Mail.HTMLBody &= "


Best regards

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) End Select Mail.HTMLBody = "
" & Mail.HTMLBody & "
" ' Mail.HTMLBody = "Sehr geehrte Damen und Herren,

anbei erhalten Sie die Rechnung Nr. " & ROW("RechnungsNr") & "." ' Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Formular.pdf") Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Formular.pdf") Mail.Display() Catch ex As Exception MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!") Process.Start(tmpPath) End Try Return True Case 3 'PDF + öffnen 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(False) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) rpt.Dispose() Path = tmpPath Process.Start(tmpPath) Return True Case 4 'PDF 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(False) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) rpt.Dispose() Path = tmpPath Return True End Select Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Shared Function SammelRechnungAnlagenDruck(Row As DataRow, isMDMRechnungsdruck As Boolean, dt As DataTable, Firma As cFirmen, Rechnugnsdruck As Integer, KD_RG As cAdressen, RechnungsNr As Integer, VorschauID As String, Sammelrechnungskopie As Boolean, RG_Bezeichnung As String, SammelrechnungsDT As DataTable, ByRef tmpPath As String) As GrapeCity.ActiveReports.SectionReport Dim rpt As New rptSammelRechnungAnlagenDruck(Row("RechnungSprache")) rpt.DataSource = dt Select Case Row("RechnungSprache") Case "EN" Select Case Row("BelegartenKz") Case "AR" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Attatchment to INVOICE", "INVOICE") rpt.lblSummeUeberschrift.Text = "Invoice Amount:" rpt.lblRgNrUeberschrift.Text = "Invoice No.:" rpt.lblRgDatumUeberschrift.Text = "Invoice Date:" Case "AG" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Attatchment to CREDIT NOTE", "CREDIT NOTE") rpt.lblSummeUeberschrift.Text = "Credit Amount:" rpt.lblRgNrUeberschrift.Text = "Credit Note No.:" rpt.lblRgDatumUeberschrift.Text = "Credit Note Date:" End Select Case Else Select Case Row("BelegartenKz") Case "AR" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Anlage zur Sammelrechnung", "Rechnung") Case "AG" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Anlage zur Sammelgutschrift", "GUTSCHRIFT") rpt.lblSummeUeberschrift.Text = "Gutschriftsbetrag:" rpt.lblRgNrUeberschrift.Text = "Gutschrifts-Nr.:" rpt.lblRgDatumUeberschrift.Text = "Gutschrifts-Datum:" End Select End Select initRgFirmaSammelRg_Bericht(rpt, Firma, RechnungsNr, Row("RechnungsLandKz"), Row("Buchungsjahr")) Select Case Row("Firma_ID") Case 1 ' rpt.picVERAG.Image= My.Resources.Verag_AG_Logo : rpt.Picture1.Image = My.Resources.aeo_AT_imex is eh standard Case 4 : rpt.picVERAG.Image = My.Resources.Verag_AG_Logo : rpt.Picture1.Image = Nothing Case 7 : rpt.picVERAG.Image = My.Resources.Atilla_big_med : rpt.Picture1.Image = Nothing Case 11 : rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo : rpt.Picture1.Image = My.Resources.aeo_CS Case 19 : rpt.picVERAG.Image = My.Resources.VERAG_360 : rpt.Picture1.Image = Nothing Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex Case 21 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT Case 22 : rpt.picVERAG.Image = My.Resources.Unisped_DE_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_DE Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT Case 24 : rpt.picVERAG.Image = My.Resources.ambar_simple : rpt.Picture1.Image = Nothing Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo : rpt.Picture1.Image = Nothing Case 17 : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal : rpt.Picture1.Image = Nothing End Select rpt.lblKundenNr.Text = If(Row("RechnungsKundenNr") > 0, Row("RechnungsKundenNr"), "") rpt.lblRgNr.Text = If(Row("RechnungsNr") IsNot DBNull.Value, addYeartoRgNr(Firma.Firma_ID, Row("Buchungsjahr")) & Row("RechnungsNr"), "Vorschau") rpt.lblRgDatum.Text = If(Row("RechnungsDatum") IsNot DBNull.Value, Row("RechnungsDatum"), "Vorschau") 'rpt.lblKundenAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") 'If rpt.lblKundenAuftragsnummer.Text = String.Empty Then rpt.lblKundenAuftragsnummerUeberschrift.Visible = False 'rpt.lblAbfertigungsNr.Text = ROW("FilialenNr") & " / " & ROW("AbfertigungsNr") & " " & ROW("SpeditionsbuchUnterNr").ToString("00") 'rpt.lblAbfertigungsDatum.Text = RECHNUNG.Abfertigungsdatum.ToShortDateString 'rpt.lblLKWId.Text = If(RECHNUNG.AvisoID, "") Dim sachbearbeiterAufRechnung = getSBRgName(Row("Firma_ID"), VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, Row("Sachbearbeiter")) rpt.lblSachbearbeiter.Text = IIf(sachbearbeiterAufRechnung = "Herr Ordu", "Verrechnung", sachbearbeiterAufRechnung) 'könnten ja mehrerer SB die Rg-Anlagen geschreiben haben - NEU 'rpt.lblSachbearbeiter.Text = getSBRgName(Firma.Firma_ID, VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) 'könnten ja mehrerer SB die Rg-Anlagen geschreiben haben rpt.lblFirmenbuch.Text = If(Firma.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch: ", "").Trim rpt.lblUID.Text = If(Firma.Firma_UID, "").ToString.Replace("UID: ", "").Trim rpt.lblEORI.Text = If(Firma.Firma_EORI, "") rpt.txtKdAuftragsnummer.Text = If(Row("KdAuftragsNr") IsNot DBNull.Value, Row("KdAuftragsNr"), "") rpt.lblRechnungAn.Text = Row("RechnungsName 1") & vbNewLine If Row("RechnungsName 2") IsNot DBNull.Value AndAlso Row("RechnungsName 2") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsName 2") & vbNewLine If Row("RechnungsName_AdressZusatz") IsNot DBNull.Value AndAlso Row("RechnungsName_AdressZusatz") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsName_AdressZusatz") & vbNewLine If Row("RechnungsStraße") IsNot DBNull.Value AndAlso Row("RechnungsStraße") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsStraße") & vbNewLine If Row("RechnungsOrt") IsNot DBNull.Value AndAlso Row("RechnungsOrt") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsOrt") & vbNewLine If Row("RechnungsLandKz") IsNot DBNull.Value AndAlso Row("RechnungsLandKz") <> "" Then rpt.lblRechnungAn.Text &= cProgramFunctions.getLandBez_fromISO1Land(Row("RechnungsLandKz"), "", Row("RechnungSprache")).ToString.ToUpper '--------PROVISIONSABRECHNUNG---------------------------------------- Dim ADR_PROV As cAdressen = Nothing Dim KD_ERW_PROV As cKundenErweitert = Nothing If VorschauID = "PROVISIONSABRECHNUNG" Then rpt.lblUeberschriftRG_GS.Text = "PROVISIONSABRECHNUNG" rpt.lblSummeUeberschrift.Text = "Rechnungsbetrag:" rpt.lblRgNrUeberschrift.Visible = False rpt.lblRgNr.Visible = False rpt.lblRgDatumUeberschrift.Text = "Datum:" rpt.lblRgDatum.Text = Now.ToShortDateString '-------- Dim ProvisionAn = "" KD_ERW_PROV = New cKundenErweitert(Row("RechnungsKundenNr")) If KD_ERW_PROV IsNot Nothing AndAlso KD_ERW_PROV.kde_Provisionsverguetung Then ADR_PROV = New cAdressen(KD_ERW_PROV.kde_Provisionsverguetung_GSAnKdNr) If ADR_PROV Is Nothing Then Return Nothing ProvisionAn = If(ADR_PROV.Name_1, "") & vbNewLine If If(ADR_PROV.Name_2, "") <> "" Then ProvisionAn &= ADR_PROV.Name_2 & vbNewLine If If(ADR_PROV.Straße, "") <> "" Then ProvisionAn &= ADR_PROV.Straße & vbNewLine If If(ADR_PROV.Ort, "") <> "" Then ProvisionAn &= ADR_PROV.Ort & vbNewLine If If(ADR_PROV.LandKz, "") <> "" Then ProvisionAn &= cProgramFunctions.getLandBez_fromISO1Land(ADR_PROV.LandKz, "", Row("RechnungSprache")).ToString.ToUpper rpt.lblRechnungAn.Text = ProvisionAn & "" & vbNewLine & "-- Provisionsabrechnung für Kunde: --" & vbNewLine & rpt.lblRechnungAn.Text rpt.lblRechnungAn.Height += 0.5 Else Return Nothing End If End If '-------------------------------------------------------------- If isMDMRechnungsdruck Then If getReverseChargeSumme(Firma, Row("RechnungsLandKz"), Row("RechnungsNr"), Row("RechnungsDatum"), VorschauID) > 0 Then Select Case Row("RechnungSprache") Case "EN" : rpt.txtInfo.Text = vbNewLine & vbNewLine & "The VAT liability is transferred to the recipient of the service (reverse charge system)." '"Attention! For EU customers! Since 1.1.2010, services are subject to the application of the reverse charge procedure. Transfer of the tax liability to the recipient of the service." Case Else : rpt.txtInfo.Text = vbNewLine & vbNewLine & "Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren)." '"Achtung! Für EU-Kunden! Seit 1.1.2010 unterliegen Leistungen der Anwendung des Reverse Charge Verfahrens. Übergang der Steuerschuld an den Leistungsempfänger." End Select Else : rpt.txtInfo.Text = "" : End If If Row("Nettozahlungsziel") IsNot DBNull.Value AndAlso IsNumeric(Row("Nettozahlungsziel")) Then rpt.Label2.Text = Row("Nettozahlungsziel") Else rpt.Label2.Text = "" End If If Row("Text") IsNot DBNull.Value AndAlso Row("Text") <> "" Then rpt.txtInfo.Text &= vbNewLine & vbNewLine & Row("Text") rpt.txtVermerk.Text = (If(Row("Text"), "").ToString.Trim & vbNewLine & vbNewLine & If(Row("Notiz"), "").ToString.Trim).ToString.Trim Else rpt.txtInfo.Text = "" rpt.txtVermerk.Text = "" End If Else rpt.txtInfo.Text = "" rpt.txtVermerk.Text = "" End If 'If If(ROW("RechnungsName 2") IsNot DBNull.Value, ROW("RechnungsName 2"), "") = "" Then ' rpt.lblRechnung_Name1.Text = "" ' rpt.lblRechnung_Name2.Text = ROW("RechnungsName 1") 'Else ' rpt.lblRechnung_Name1.Text = ROW("RechnungsName 1") ' rpt.lblRechnung_Name2.Text = If(ROW("RechnungsName 2") IsNot DBNull.Value, ROW("RechnungsName 2"), "") 'End If 'rpt.lblRechnung_Strasse.Text = If(ROW("RechnungsStraße") IsNot DBNull.Value, ROW("RechnungsStraße"), "") 'rpt.lblRechnung_Ort.Text = If(ROW("RechnungsOrt") IsNot DBNull.Value, ROW("RechnungsOrt"), "") 'rpt.lblRechnung_Land.Text = cProgramFunctions.getLandBez_fromISO1Land(ROW("RechnungsLandKz"), "", ROW("RechnungSprache")).ToString.ToUpper If KD_RG IsNot Nothing AndAlso If(KD_RG.Steuernummer, "") <> String.Empty Then If isMDMRechnungsdruck Then rpt.lblRechnung_Steuernummer.Text = If(KD_RG.Steuernummer, "").ToString.Trim Else rpt.lblRechnung_Steuernummer.Text = If(KD_RG.LandKz, "") & " " & If(KD_RG.Steuernummer, "").ToString.Trim ' rpt.lblRechnung_UID.Text = If(KD_RG.UstIdKz, "") & " " & If(KD_RG.UstIdNr, "").ToString.Trim End If Else rpt.lblRechnung_Steuernummer.Text = "" ' rpt.lblRechnung_UID.Text = "" End If rpt.lblRechnung_Steuernummer.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_Steuernummer_Ueberschrift.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_UID.Text = If(Row("RechnungsUstIdKz") IsNot DBNull.Value, Row("RechnungsUstIdKz"), "") & If(Row("RechnungsUstIdNr") IsNot DBNull.Value, Row("RechnungsUstIdNr"), "") rpt.lblRechnung_UID.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.lblRechnung_UID_Ueberschrift.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.lblSteuerfreiUeberschrift.Visible = Not isMDMRechnungsdruck rpt.lblSteuerpflichtigUeberschrift.Visible = Not isMDMRechnungsdruck rpt.lblDurchlaufposten.Visible = isMDMRechnungsdruck rpt.lblSteuerplichtUeberschriftMDM.Visible = isMDMRechnungsdruck rpt.lblEORI.Visible = Not isMDMRechnungsdruck rpt.lblEORIUeberschrift.Visible = Not isMDMRechnungsdruck rpt.txtAbfertigungsart.Visible = Not isMDMRechnungsdruck Dim sumSteuerpflichtig As Double = 0 Dim sumSteuerfrei As Double = 0 If Sammelrechnungskopie Then Dim imageForWatermark As Image Select Case Row("RechnungSprache") Case "EN" : rpt.lblUeberschriftRG_GS.Text &= " - COPY" : imageForWatermark = My.Resources.ungueltig_en Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" : imageForWatermark = My.Resources.ungueltig_de End Select If False Then 'deaktiviert weil nun doch nicht benötigt If Rechnugnsdruck = 7 Then 'nur bei "Vorschaudruck" rpt.Watermark = imageForWatermark rpt.WatermarkSizeMode = GrapeCity.ActiveReports.SectionReportModel.SizeModes.Zoom End If End If End If 'AddHandler rpt.ReportStart, Sub() ' If VorschauID = "PROVISIONSABRECHNUNG" Then ' Dim subRptProv = New rptSammelRechnungAnlagenDruck_ProvSum(rpt._LAN, VorschauID) ' rpt.SubReport1.Report = subRptProv ' rpt.SubReport1.Visible = True ' End If ' End Sub AddHandler rpt.Detail.Format, Sub() ' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString ' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString ' rpt.lblLeistungNr.Text = checkNull(rpt.Fields.Item("LeistungsNr").Value) ' rpt.txtLeistung.Text = checkNull(rpt.Fields.Item("LeistungsBez").Value) Dim RECHNUNG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(rpt.Fields.Item("RK_ID").Value) If RECHNUNG IsNot Nothing Then rpt.lblPosNr.Text = RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr & "/" & CDbl(If(RECHNUNG.SpeditionsbuchUnterNr, 0)).ToString("000") rpt.lblDatum.Text = RECHNUNG.Abfertigungsdatum.ToShortDateString Dim AbfertigungsBez = SQL.getValueTxtBySql("SELECT TOP 1 isnull(Abfertigungsbezeichnung,'') FROM [Speditionsbuch] inner join Abfertigungsarten ON Abfertigungsarten.Abfertigungsart=Speditionsbuch.Abfertigungsart WHERE FilialenNr='" & RECHNUNG.FilialenNr & "' AND AbfertigungsNr='" & RECHNUNG.AbfertigungsNr & "' AND UnterNr='" & RECHNUNG.SpeditionsbuchUnterNr & "'", "FMZOLL") AbfertigungsBez = AbfertigungsBez.Replace("ZA", "Zollabfertigung") AbfertigungsBez = AbfertigungsBez.Replace("AE", "Ausfuhrabfertigung") AbfertigungsBez = AbfertigungsBez.Replace("T1", "T1 Versandschein") AbfertigungsBez = AbfertigungsBez.Replace("T2", "T2 Versandschein") rpt.txtAbfertigungsart.Text = AbfertigungsBez rpt.txtPackstuecke.Text = "" If If(RECHNUNG.Packstücke_und_Warenbezeichnung, "") <> "" Then rpt.txtPackstuecke.Text = RECHNUNG.Packstücke_und_Warenbezeichnung.replace(vbNewLine, ", ") rpt.txtSendungsdetails.Text = "" If RECHNUNG.AbsenderName_1 <> "" Then rpt.txtSendungsdetails.Text &= "Absender: " & RECHNUNG.AbsenderName_1 & " " & If(RECHNUNG.AbsenderName_2, "") & " " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine If RECHNUNG.EmpfängerName_1 <> "" Then rpt.txtSendungsdetails.Text &= "Empfänger: " & RECHNUNG.EmpfängerName_1 & " " & If(RECHNUNG.EmpfängerName_2, "") & " " & If(RECHNUNG.EmpfängerOrt, "") & vbNewLine If RECHNUNG.LKW_Kennzeichen <> "" Then rpt.txtSendungsdetails.Text &= "LKW-Kennzeichen: " & RECHNUNG.LKW_Kennzeichen & vbNewLine If RECHNUNG.BelegNr <> "" Then rpt.txtSendungsdetails.Text &= "Zollbeleg-Nr.: " & RECHNUNG.BelegNr & vbNewLine If If(RECHNUNG.Handling, "") <> "" Then rpt.txtSendungsdetails.Text &= "Handling: " & RECHNUNG.Handling.ToString.Replace(vbNewLine, ", ").Replace(vbCr, ", ").Replace(vbLf, ", ") & vbNewLine End If If True Then 'ANLAGEN Dim Anlagen = "" If If(RECHNUNG.Anlage_1, "") <> "" Then Anlagen &= RECHNUNG.Anlage_1 & ", " If If(RECHNUNG.Anlage_2, "") <> "" Then Anlagen &= RECHNUNG.Anlage_2 & ", " If If(RECHNUNG.Anlage_3, "") <> "" Then Anlagen &= RECHNUNG.Anlage_3 & ", " If If(RECHNUNG.Anlage_4, "") <> "" Then Anlagen &= RECHNUNG.Anlage_4 & ", " If If(RECHNUNG.Anlage_5, "") <> "" Then Anlagen &= RECHNUNG.Anlage_5 & ", " If If(RECHNUNG.Anlage_6, "") <> "" Then Anlagen &= RECHNUNG.Anlage_6 & ", " If Anlagen.EndsWith(", ") Then Anlagen = Anlagen.Substring(0, Anlagen.Length - 2) If Anlagen.Replace(" ", "").Trim <> "" Then rpt.txtSendungsdetails.Text &= "Anlagen: " & Anlagen End If rpt.txtSendungsdetails.Text = rpt.txtSendungsdetails.Text.Trim rpt.txtKdAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") Dim stPfl As Double = 0 Dim stFrei As Double = 0 Dim vorzeichen = If(If(RECHNUNG.Vorzeichen, "") = "-", -1, 1) 'Bei Rechnung als Klasse ist der Betrag immer positiv! For Each p In RECHNUNG.POSITIONEN If VorschauID = "PROVISIONSABRECHNUNG" Then 'Bei ProvAbr _> Nur Leistungen die als Provisionsabrechnung zählen! If CBool(SQL.DLookup("Provisionsabrechnung", "Leistungen", "LeistungsNr='" & p.LeistungsNr & "'", "FMZOLL")) Then stPfl += CDbl(p.SteuerpflichtigerBetrag) stFrei += CDbl(p.SteuerfreierBetrag) End If Else stPfl += CDbl(p.SteuerpflichtigerBetrag) stFrei += CDbl(p.SteuerfreierBetrag) End If Next stPfl *= vorzeichen rpt.lblSteuerpflichtig.Text = If(stPfl <> 0, CDbl(stPfl).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") ' stFrei = CDbl(RECHNUNG.SteuerfreierGesamtbetrag) * vorzeichen stFrei = stFrei * vorzeichen rpt.lblSteuerfrei.Text = If(stFrei <> 0, CDbl(stFrei).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") sumSteuerpflichtig += stPfl sumSteuerfrei += stFrei Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(RECHNUNG.RechnungsKundenNr) If VorschauID = "PROVISIONSABRECHNUNG" Or KUNDE_ERW.kde_FakturierungSR_Details Or isMDMRechnungsdruck Then Dim subRpt = New rptSammelRechnungAnlagenDruck_Leistungen(rpt._LAN, RECHNUNG, VorschauID) rpt.SubReport.Report = subRpt rpt.lblSteuerfrei.Font = New Font(rpt.lblSteuerfrei.Font, FontStyle.Bold) rpt.lblSteuerpflichtig.Font = New Font(rpt.lblSteuerfrei.Font, FontStyle.Bold) 'txtPackstuecke.Top += SubReport.Height 'txtKdAuftragsnummer.Top += SubReport.Height 'txtSendungsdetails.Top += SubReport.Height Else rpt.SubReport.Report = Nothing End If ' rpt.Line10.AnchorBottom = True ' rpt.Line10.Height = rpt.Detail.Height End If End Sub AddHandler rpt.ReportFooter1.Format, Sub() rpt.lblSteuerpflichtigGes.Text = If(sumSteuerpflichtig <> 0, (sumSteuerpflichtig).ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblSteuerfreiGes.Text = If(sumSteuerfrei <> 0, (sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture), "") Dim steuerProz As Double = 0 Dim steuerBez As String = "" Dim dt2 As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & checkNull(rpt.Fields.Item("Steuerschlüssel").Value) & "'", "FMZOLL") If dt2 IsNot Nothing AndAlso dt2.Rows.Count > 0 Then steuerProz = dt2.Rows(0)(0) steuerBez = dt2.Rows(0)(1) End If Dim tmpSteuerbetrag = CDbl((sumSteuerpflichtig * steuerProz)) If tmpSteuerbetrag = 0 Then rpt.lblSteuerbetrag.Visible = False rpt.lblSteuersatz.Visible = False End If rpt.lblSteuersatz.Text = steuerBez rpt.lblSteuerbetrag.Text = If((sumSteuerpflichtig * steuerProz) <> 0, tmpSteuerbetrag.ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblZWSumme.Text = (sumSteuerpflichtig + sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSumme.Text = (sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)).ToString("N2", CultureInfo.CurrentCulture) rpt.Label46.Text = If(Row("Währungscode") IsNot DBNull.Value, Row("Währungscode"), "EUR") If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False End If If VorschauID = "PROVISIONSABRECHNUNG" Then Dim NettoGes = sumSteuerpflichtig + sumSteuerfrei Dim ProvProzent As Double = KD_ERW_PROV.kde_Provisionsverguetung_ProzentDL Dim ProvBetrag = NettoGes * ProvProzent Dim subRptProv = New rptSammelRechnungAnlagenDruck_ProvSum(rpt._LAN, VorschauID) subRptProv.lblNettoGes.Value = NettoGes.ToString("N2", CultureInfo.CurrentCulture) subRptProv.lblProvProzent.Value = (ProvProzent * 100).ToString("N2", CultureInfo.CurrentCulture) subRptProv.lblProvBetrag.Value = ProvBetrag.ToString("N2", CultureInfo.CurrentCulture) subRptProv.lblProvBetragWaehr.Value = If(Row("Währungscode") IsNot DBNull.Value, CStr(Row("Währungscode")), "EUR") rpt.SubReport1.Report = subRptProv rpt.SubReport1.Visible = True 'DirectCast(rpt.SubReport1.Report, rptSammelRechnungAnlagenDruck_ProvSum).lblNettoGes.Value = NettoGes.ToString("N2", CultureInfo.CurrentCulture) 'DirectCast(rpt.SubReport1.Report, rptSammelRechnungAnlagenDruck_ProvSum).lblProvProzent.Value = (ProvProzent * 100).ToString("N2", CultureInfo.CurrentCulture) 'DirectCast(rpt.SubReport1.Report, rptSammelRechnungAnlagenDruck_ProvSum).lblProvBetrag.Value = ProvBetrag.ToString("N2", CultureInfo.CurrentCulture) 'DirectCast(rpt.SubReport1.Report, rptSammelRechnungAnlagenDruck_ProvSum).lblProvBetragWaehr.Value = If(Row("Währungscode") IsNot DBNull.Value, CStr(Row("Währungscode")), "EUR") 'rpt.SubReport1.Height = 100 ' nur falls nötig; sonst per Layout Else rpt.SubReport1.Report = Nothing rpt.SubReport1.Visible = False End If End Sub tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) Dim pEx As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport rpt.Run(False) pEx.NeverEmbedFonts = "" pEx.Export(rpt.Document, tmpPath) If isMDMRechnungsdruck AndAlso SammelrechnungsDT IsNot Nothing AndAlso SammelrechnungsDT.Rows.Count > 0 Then Dim Paramslist As New cParameterList(VERAG_PROG_ALLGEMEIN.cAllgemein.PROGID) Dim enableZugpferd = Paramslist.GET_PARAMETER_VALUE_BOOL("ZUGFeRD") If enableZugpferd Then tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.addAttachementToPDF(tmpPath, createZUGFeRD(False, Nothing, SammelrechnungsDT, , rpt), "ZUGFeRD-invoice.xml") Else Dim Zugferdpath = createZUGFeRD(False, Nothing, SammelrechnungsDT,, rpt) If Zugferdpath IsNot Nothing AndAlso Zugferdpath <> "" Then Dim fileInfo_ZP As New FileInfo(Zugferdpath) Dim ZUGF_DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "ZUGFERD", Now().Year & "_SR", "", "", fileInfo_ZP.Name, -1, False) ZUGF_DS.uploadDataToDATENSERVER(Zugferdpath, fileInfo_ZP.Name, fileInfo_ZP.Extension,,,, True) End If End If End If Return rpt End Function Shared Function SammelRechnungAnlagenDruck_MDM(Row As DataRow, isMDMRechnungsdruck As Boolean, dt As DataTable, Firma As cFirmen, Rechnugnsdruck As Integer, KD_RG As cAdressen, RechnungsNr As Integer, VorschauID As String, Sammelrechnungskopie As Boolean, RG_Bezeichnung As String, SammelrechnungsDT As DataTable, ByRef tmpPath As String) As GrapeCity.ActiveReports.SectionReport Dim rpt As New rptSammelRechnungAnlagenDruck_MDM(Row("RechnungSprache")) rpt.DataSource = dt Select Case Row("RechnungSprache") Case "EN" Select Case Row("BelegartenKz") Case "AR" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Attatchment to INVOICE", "INVOICE") rpt.lblSummeUeberschrift.Text = "Invoice Amount:" rpt.lblRgNrUeberschrift.Text = "Invoice No.:" rpt.lblRgDatumUeberschrift.Text = "Invoice Date:" Case "AG" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Attatchment to CREDIT NOTE", "CREDIT NOTE") rpt.lblSummeUeberschrift.Text = "Credit Amount:" rpt.lblRgNrUeberschrift.Text = "Credit Note No.:" rpt.lblRgDatumUeberschrift.Text = "Credit Note Date:" End Select Case Else Select Case Row("BelegartenKz") Case "AR" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Anlage zur Sammelrechnung", "Rechnung") Case "AG" rpt.lblUeberschriftRG_GS.Text = IIf(Not isMDMRechnungsdruck, "Anlage zur Sammelgutschrift", "GUTSCHRIFT") rpt.lblSummeUeberschrift.Text = "Gutschriftsbetrag:" rpt.lblRgNrUeberschrift.Text = "Gutschrifts-Nr.:" rpt.lblRgDatumUeberschrift.Text = "Gutschrifts-Datum:" End Select End Select initRgFirmaSammelRg_MDM_Bericht(rpt, Firma, RechnungsNr, Row("RechnungsLandKz"), Row("Buchungsjahr")) Select Case Row("Firma_ID") Case 1 ' rpt.picVERAG.Image= My.Resources.Verag_AG_Logo : rpt.Picture1.Image = My.Resources.aeo_AT_imex is eh standard Case 4 : rpt.picVERAG.Image = My.Resources.Verag_AG_Logo : rpt.Picture1.Image = Nothing Case 7 : rpt.picVERAG.Image = My.Resources.Atilla_big_med : rpt.Picture1.Image = Nothing Case 11 : rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo : rpt.Picture1.Image = My.Resources.aeo_CS Case 19 : rpt.picVERAG.Image = My.Resources.VERAG_360 : rpt.Picture1.Image = Nothing Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex Case 21 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT Case 22 : rpt.picVERAG.Image = My.Resources.Unisped_DE_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_DE Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT Case 24 : rpt.picVERAG.Image = My.Resources.ambar_simple : rpt.Picture1.Image = Nothing Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo : rpt.Picture1.Image = Nothing Case 17 : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal : rpt.Picture1.Image = Nothing End Select rpt.lblKundenNr.Text = If(Row("RechnungsKundenNr") > 0, Row("RechnungsKundenNr"), "") rpt.lblRgNr.Text = If(Row("RechnungsNr") IsNot DBNull.Value, addYeartoRgNr(Firma.Firma_ID, Row("Buchungsjahr")) & Row("RechnungsNr"), "Vorschau") rpt.lblRgDatum.Text = If(Row("RechnungsDatum") IsNot DBNull.Value, Row("RechnungsDatum"), "Vorschau") 'rpt.lblKundenAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") 'If rpt.lblKundenAuftragsnummer.Text = String.Empty Then rpt.lblKundenAuftragsnummerUeberschrift.Visible = False 'rpt.lblAbfertigungsNr.Text = ROW("FilialenNr") & " / " & ROW("AbfertigungsNr") & " " & ROW("SpeditionsbuchUnterNr").ToString("00") 'rpt.lblAbfertigungsDatum.Text = RECHNUNG.Abfertigungsdatum.ToShortDateString 'rpt.lblLKWId.Text = If(RECHNUNG.AvisoID, "") Dim sachbearbeiterAufRechnung = getSBRgName(Row("Firma_ID"), VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, Row("Sachbearbeiter").ToString.ToUpper) If sachbearbeiterAufRechnung = "" Then rpt.lblSachbearbeiter.Text = getSBRgName(Row("Firma_ID"), Row("Sachbearbeiter").ToString.ToUpper) Else rpt.lblSachbearbeiter.Text = sachbearbeiterAufRechnung End If 'könnten ja mehrerer SB die Rg-Anlagen geschreiben haben - NEU 'könnten ja mehrerer SB die Rg-Anlagen geschreiben haben rpt.lblFirmenbuch.Text = If(Firma.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch: ", "").Trim rpt.lblUID.Text = If(Firma.Firma_UID, "").ToString.Replace("UID: ", "").Trim rpt.lblEORI.Text = If(Firma.Firma_EORI, "") 'rpt.txtKdAuftragsnummer.Text = If(Row("KdAuftragsNr") IsNot DBNull.Value, Row("KdAuftragsNr"), "") rpt.lblRechnungAn.Text = Row("RechnungsName 1") & vbNewLine If Row("RechnungsName 2") IsNot DBNull.Value AndAlso Row("RechnungsName 2") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsName 2") & vbNewLine If Row("RechnungsName_AdressZusatz") IsNot DBNull.Value AndAlso Row("RechnungsName_AdressZusatz") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsName_AdressZusatz") & vbNewLine If Row("RechnungsStraße") IsNot DBNull.Value AndAlso Row("RechnungsStraße") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsStraße") & vbNewLine If Row("RechnungsOrt") IsNot DBNull.Value AndAlso Row("RechnungsOrt") <> "" Then rpt.lblRechnungAn.Text &= Row("RechnungsOrt") & vbNewLine If Row("RechnungsLandKz") IsNot DBNull.Value AndAlso Row("RechnungsLandKz") <> "" Then rpt.lblRechnungAn.Text &= cProgramFunctions.getLandBez_fromISO1Land(Row("RechnungsLandKz"), "", Row("RechnungSprache")).ToString.ToUpper If isMDMRechnungsdruck Then If getReverseChargeSumme(Firma, Row("RechnungsLandKz"), Row("RechnungsNr"), Row("RechnungsDatum"), VorschauID) > 0 Then Select Case Row("RechnungSprache") Case "EN" : rpt.txtInfo.Text = vbNewLine & vbNewLine & "The VAT liability is transferred to the recipient of the service (reverse charge system)." '"Attention! For EU customers! Since 1.1.2010, services are subject to the application of the reverse charge procedure. Transfer of the tax liability to the recipient of the service." Case Else : rpt.txtInfo.Text = vbNewLine & vbNewLine & "Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren)." '"Achtung! Für EU-Kunden! Seit 1.1.2010 unterliegen Leistungen der Anwendung des Reverse Charge Verfahrens. Übergang der Steuerschuld an den Leistungsempfänger." End Select Else : rpt.txtInfo.Text = "" : End If If Row("Nettozahlungsziel") IsNot DBNull.Value AndAlso IsNumeric(Row("Nettozahlungsziel")) Then rpt.Label2.Text = Row("Nettozahlungsziel") Else rpt.Label2.Text = "" End If If Row("Text") IsNot DBNull.Value AndAlso Row("Text") <> "" Then rpt.txtInfo.Text &= vbNewLine & vbNewLine & Row("Text") rpt.txtVermerk.Text = (If(Row("Text"), "").ToString.Trim & vbNewLine & vbNewLine & If(Row("Notiz"), "").ToString.Trim).ToString.Trim Else rpt.txtInfo.Text = "" rpt.txtVermerk.Text = "" End If Else rpt.txtInfo.Text = "" rpt.txtVermerk.Text = "" End If If KD_RG IsNot Nothing AndAlso If(KD_RG.Steuernummer, "") <> String.Empty Then If isMDMRechnungsdruck Then rpt.lblRechnung_Steuernummer.Text = If(KD_RG.Steuernummer, "").ToString.Trim Else rpt.lblRechnung_Steuernummer.Text = If(KD_RG.LandKz, "") & " " & If(KD_RG.Steuernummer, "").ToString.Trim ' rpt.lblRechnung_UID.Text = If(KD_RG.UstIdKz, "") & " " & If(KD_RG.UstIdNr, "").ToString.Trim End If Else rpt.lblRechnung_Steuernummer.Text = "" ' rpt.lblRechnung_UID.Text = "" End If rpt.lblRechnung_Steuernummer.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_Steuernummer_Ueberschrift.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_UID.Text = If(Row("RechnungsUstIdKz") IsNot DBNull.Value, Row("RechnungsUstIdKz"), "") & If(Row("RechnungsUstIdNr") IsNot DBNull.Value, Row("RechnungsUstIdNr"), "") rpt.lblRechnung_UID.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.lblRechnung_UID_Ueberschrift.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.lblDurchlaufposten.Visible = isMDMRechnungsdruck rpt.lblSteuerplichtUeberschriftMDM.Visible = isMDMRechnungsdruck rpt.lblEORI.Visible = Not isMDMRechnungsdruck rpt.lblEORIUeberschrift.Visible = Not isMDMRechnungsdruck 'rpt.txtAbfertigungsart.Visible = Not isMDMRechnungsdruck Dim sumSteuerpflichtig As Double = 0 Dim sumSteuerfrei As Double = 0 If Sammelrechnungskopie Then Dim imageForWatermark As Image Select Case Row("RechnungSprache") Case "EN" : rpt.lblUeberschriftRG_GS.Text &= " - COPY" : imageForWatermark = My.Resources.ungueltig_en Case Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" : imageForWatermark = My.Resources.ungueltig_de End Select If False Then 'deaktiviert weil nun doch nicht benötigt If Rechnugnsdruck = 7 Then 'nur bei "Vorschaudruck" rpt.Watermark = imageForWatermark rpt.WatermarkSizeMode = GrapeCity.ActiveReports.SectionReportModel.SizeModes.Zoom End If End If End If AddHandler rpt.Detail.Format, Sub() ' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString ' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString ' rpt.lblLeistungNr.Text = checkNull(rpt.Fields.Item("LeistungsNr").Value) ' rpt.txtLeistung.Text = checkNull(rpt.Fields.Item("LeistungsBez").Value) Dim RECHNUNG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(rpt.Fields.Item("RK_ID").Value) If RECHNUNG IsNot Nothing Then rpt.lblPosNr.Text = RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr & "/" & CDbl(If(RECHNUNG.SpeditionsbuchUnterNr, 0)).ToString("000") rpt.lblDatum.Text = RECHNUNG.Abfertigungsdatum.ToShortDateString Dim AbfertigungsBez = SQL.getValueTxtBySql("SELECT TOP 1 isnull(Abfertigungsbezeichnung,'') FROM [Speditionsbuch] inner join Abfertigungsarten ON Abfertigungsarten.Abfertigungsart=Speditionsbuch.Abfertigungsart WHERE FilialenNr='" & RECHNUNG.FilialenNr & "' AND AbfertigungsNr='" & RECHNUNG.AbfertigungsNr & "' AND UnterNr='" & RECHNUNG.SpeditionsbuchUnterNr & "'", "FMZOLL") AbfertigungsBez = AbfertigungsBez.Replace("ZA", "Zollabfertigung") AbfertigungsBez = AbfertigungsBez.Replace("AE", "Ausfuhrabfertigung") AbfertigungsBez = AbfertigungsBez.Replace("T1", "T1 Versandschein") AbfertigungsBez = AbfertigungsBez.Replace("T2", "T2 Versandschein") 'rpt.txtAbfertigungsart.Text = AbfertigungsBez 'rpt.txtPackstuecke.Text = "" 'If If(RECHNUNG.Packstücke_und_Warenbezeichnung, "") <> "" Then rpt.txtPackstuecke.Text = RECHNUNG.Packstücke_und_Warenbezeichnung.replace(vbNewLine, ", ") 'rpt.txtSendungsdetails.Text = "" 'If RECHNUNG.AbsenderName_1 <> "" Then rpt.txtSendungsdetails.Text &= "Absender: " & RECHNUNG.AbsenderName_1 & " " & If(RECHNUNG.AbsenderName_2, "") & " " & If(RECHNUNG.AbsenderOrt, "") & vbNewLine 'If RECHNUNG.EmpfängerName_1 <> "" Then rpt.txtSendungsdetails.Text &= "Empfänger: " & RECHNUNG.EmpfängerName_1 & " " & If(RECHNUNG.EmpfängerName_2, "") & " " & If(RECHNUNG.EmpfängerOrt, "") & vbNewLine 'If RECHNUNG.LKW_Kennzeichen <> "" Then rpt.txtSendungsdetails.Text &= "LKW-Kennzeichen: " & RECHNUNG.LKW_Kennzeichen & vbNewLine 'If RECHNUNG.BelegNr <> "" Then rpt.txtSendungsdetails.Text &= "Zollbeleg-Nr.: " & RECHNUNG.BelegNr & vbNewLine If If(RECHNUNG.Handling, "") <> "" Then ' rpt.txtSendungsdetails.Text &= "Handling: " & RECHNUNG.Handling.ToString.Replace(vbNewLine, ", ").Replace(vbCr, ", ").Replace(vbLf, ", ") & vbNewLine End If If True Then 'ANLAGEN Dim Anlagen = "" If If(RECHNUNG.Anlage_1, "") <> "" Then Anlagen &= RECHNUNG.Anlage_1 & ", " If If(RECHNUNG.Anlage_2, "") <> "" Then Anlagen &= RECHNUNG.Anlage_2 & ", " If If(RECHNUNG.Anlage_3, "") <> "" Then Anlagen &= RECHNUNG.Anlage_3 & ", " If If(RECHNUNG.Anlage_4, "") <> "" Then Anlagen &= RECHNUNG.Anlage_4 & ", " If If(RECHNUNG.Anlage_5, "") <> "" Then Anlagen &= RECHNUNG.Anlage_5 & ", " If If(RECHNUNG.Anlage_6, "") <> "" Then Anlagen &= RECHNUNG.Anlage_6 & ", " If Anlagen.EndsWith(", ") Then Anlagen = Anlagen.Substring(0, Anlagen.Length - 2) 'If Anlagen.Replace(" ", "").Trim <> "" Then 'rpt.txtSendungsdetails.Text &= "Anlagen: " & Anlagen End If 'rpt.txtSendungsdetails.Text = rpt.txtSendungsdetails.Text.Trim 'rpt.txtKdAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") Dim stPfl As Double = 0 Dim stFrei As Double = 0 Dim vorzeichen = If(If(RECHNUNG.Vorzeichen, "") = "-", -1, 1) 'Bei Rechnung als Klasse ist der Betrag immer positiv! For Each p In RECHNUNG.POSITIONEN stPfl += CDbl(p.SteuerpflichtigerBetrag) Next stPfl *= vorzeichen rpt.lblSteuerpflichtig.Text = If(stPfl <> 0, CDbl(stPfl).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") stFrei = CDbl(RECHNUNG.SteuerfreierGesamtbetrag) * vorzeichen rpt.lblSteuerfrei.Text = If(stFrei <> 0, CDbl(stFrei).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") sumSteuerpflichtig += stPfl sumSteuerfrei += stFrei Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(RECHNUNG.RechnungsKundenNr) If KUNDE_ERW.kde_FakturierungSR_Details OrElse isMDMRechnungsdruck Then Dim subRpt = New rptSammelRechnungAnlagenDruck_Leistungen(rpt._LAN, RECHNUNG, VorschauID) rpt.SubReport.Report = subRpt rpt.lblSteuerfrei.Font = New Font(rpt.lblSteuerfrei.Font, FontStyle.Bold) rpt.lblSteuerpflichtig.Font = New Font(rpt.lblSteuerfrei.Font, FontStyle.Bold) 'txtPackstuecke.Top += SubReport.Height 'txtKdAuftragsnummer.Top += SubReport.Height 'txtSendungsdetails.Top += SubReport.Height Else rpt.SubReport.Report = Nothing End If ' rpt.Line10.AnchorBottom = True ' rpt.Line10.Height = rpt.Detail.Height End If End Sub AddHandler rpt.ReportFooter1.Format, Sub() rpt.lblSteuerpflichtigGes.Text = If(sumSteuerpflichtig <> 0, (sumSteuerpflichtig).ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblSteuerfreiGes.Text = If(sumSteuerfrei <> 0, (sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture), "") Dim steuerProz As Double = 0 Dim steuerBez As String = "" Dim dt2 As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & checkNull(rpt.Fields.Item("Steuerschlüssel").Value) & "'", "FMZOLL") If dt2 IsNot Nothing AndAlso dt2.Rows.Count > 0 Then steuerProz = dt2.Rows(0)(0) steuerBez = dt2.Rows(0)(1) End If Dim tmpSteuerbetrag = CDbl((sumSteuerpflichtig * steuerProz)) If tmpSteuerbetrag = 0 Then rpt.lblSteuerbetrag.Visible = False rpt.lblSteuersatz.Visible = False End If rpt.lblSteuersatz.Text = steuerBez rpt.lblSteuerbetrag.Text = If((sumSteuerpflichtig * steuerProz) <> 0, tmpSteuerbetrag.ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblZWSumme.Text = (sumSteuerpflichtig + sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSumme.Text = (sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)).ToString("N2", CultureInfo.CurrentCulture) rpt.Label46.Text = If(Row("Währungscode") IsNot DBNull.Value, Row("Währungscode"), "EUR") If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False End If End Sub If Rechnugnsdruck = 4 Or Rechnugnsdruck = 2 Then If Row("RechnungsLandKz") IsNot DBNull.Value AndAlso Row("RechnungsLandKz") <> "" AndAlso rpt.lblSteuerbetrag.Text = "" Then rpt.txtInfo.Text &= vbNewLine & vbNewLine & (New SQL).getValueTxtBySql("SELECT Text FROM Rechnungstexte WHERE Firma_ID=0 AND EMailRechnung=1 AND Rechnungstexte.DrucksteuerungsKz='R' AND LandKZ='" & Row("RechnungsLandKz") & "'", "FMZOLL") End If End If tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) Dim pEx As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport rpt.Run(False) pEx.NeverEmbedFonts = "" pEx.Export(rpt.Document, tmpPath) Return rpt End Function Shared Function getSBRgName(Firma_id As Integer, USRKURZNAME As String, Optional NameAufBeleg As String = "") As String If USRKURZNAME Is Nothing Then Return "" If USRKURZNAME Is DBNull.Value Then Return "" If NameAufBeleg <> "" Then USRKURZNAME = NameAufBeleg End If If USRKURZNAME = "" Then USRKURZNAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME Dim txt = SQL.getValueTxtBySql("SELECT top 1 CASE WHEN mit_geschlecht='w' THEN 'Frau ' ELSE (CASE WHEN mit_geschlecht='m' THEN 'Herr ' ELSE '' END ) END + mit_nname FROM [tblMitarbeiter] WHERE [mit_username]='" & USRKURZNAME & "' ", "ADMIN") If txt <> "" Then Return txt Return USRKURZNAME End Function Shared Function getSBRgNameByMaId(Firma_id As Integer, MAID As Integer) As String If MAID <= 0 Then Return "" Dim txt = SQL.getValueTxtBySql("SELECT top 1 CASE WHEN mit_geschlecht='w' THEN 'Frau ' ELSE (CASE WHEN mit_geschlecht='m' THEN 'Herr ' ELSE '' END ) END + mit_nname FROM [tblMitarbeiter] WHERE [mit_id]='" & MAID & "' ", "ADMIN") Return txt End Function Shared Function getSBRgName_FirmaPruef(Firma_id As Integer, USRKURZNAME As String) As String Dim firma = "" Select Case Firma_id Case 20 firma = "'IMEX'" Case 21 firma = "'UNISPED'" Case Else firma = "'VERAG','ALL'" End Select If USRKURZNAME Is Nothing Then Return "" If USRKURZNAME Is DBNull.Value Then Return "" If USRKURZNAME = "" Then USRKURZNAME = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME Dim txt = SQL.getValueTxtBySql("SELECT CASE WHEN mit_geschlecht='w' THEN 'Frau ' ELSE (CASE WHEN mit_geschlecht='m' THEN 'Herr ' ELSE '' END ) END + mit_nname FROM [tblMitarbeiter] WHERE [mit_username]='" & USRKURZNAME & "' AND [mit_firma] IN (" & firma & ")", "ADMIN") If txt <> "" Then Return txt Return USRKURZNAME End Function Shared Function addYeartoRgNr(Firma_ID, Buchungsjahr) Select Case Firma_ID Case "21", "22", "23" : Return Buchungsjahr.ToString.Substring(2) & "-" End Select Return "" End Function Shared Function doSAMMELRechnungDruck_Rechnungsdruck(dt As DataTable, RechnungsNr As Integer, DruckdatumUhrzeit As Date, Rgstatus As Integer, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "", Optional PrinterName As String = "", Optional SRDruckWiederholen As Boolean = False, Optional VorschauID As String = "", Optional mergePDF As Boolean = False) As Boolean 'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional vorschau As Boolean = False, Optional Rechnugnsdruck As Integer = -1, Optional ByRef Path As String = "") As Boolean Try Dim ROW As DataRow = dt.Rows(0) Dim rpt As New rptSammelRechnungDruck(ROW("RechnungSprache")) Dim firmaID = ROW("Firma_ID") Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(firmaID) Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) Dim isMDMRechnungsdruck = checkIfMDMSammelrechnung(Rechnugnsdruck, ROW("Status")) If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False ' Dim dataView As New DataView(dtDataSource) ' dataView.Sort = " LeistungsNr " ' Dim dtTmp As DataTable = dataView.ToTable() ' rpt.DataSource = SQL.loadDgvBySql("SELECT * FROM [Rechnungsausgangpositionen] where RK_ID ='" & RECHNUNG.RK_ID & "' ", "FMZOLL") rpt.DataSource = dt '' MsgBox(rpt.DataSource.rows.count) 'If rpt.DataSource.rows.count = 0 Then ' rpt.Dispose() ' MsgBox("Keine Daten vorhanden!") ' Return False 'End If Dim sum = 0 'Select Case RECHNUNG.[BelegartenKz] ' Case "AR" ' rpt.lblUeberschriftRG_GS.Text = "RECHNUNG" ' Case "AG" ' rpt.lblUeberschriftRG_GS.Text = "GUTSCHRIFT" ' rpt.Label9.Text = "Gutschriftsbetrag:" ' rpt.Label16.Text = "Gutschrifts-Nr.:" 'End Select 'If RECHNUNG.DruckDatumZeit IsNot Nothing Then rpt.lblUeberschriftRG_GS.Text &= " - KOPIE" ' Dim Gesamt_RG_Betrag As Double = 0 Dim Gesamt_RG_Betrag As Double = CDbl(dt.Compute("SUM(SteuerFreierBetrag)", "")) + CDbl(dt.Compute("SUM(SteuerpflichtigerBetrag)", "")) ' If ROW("SteuerFreierBetrag") IsNot DBNull.Value AndAlso IsNumeric(ROW("SteuerFreierBetrag")) Then Gesamt_RG_Betrag += ROW("SteuerFreierBetrag") 'If ROW("SteuerpflichtigerBetrag") IsNot DBNull.Value AndAlso IsNumeric(ROW("SteuerpflichtigerBetrag")) Then Gesamt_RG_Betrag += ROW("SteuerpflichtigerBetrag") Dim BelegartenKz = If(Gesamt_RG_Betrag < 0, "AG", "AR") Select Case ROW("RechnungSprache") Case "EN" ' MsgBox(("EN")) Select Case BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "COLLECTIVE INVOICE" rpt.lblSummeUeberschrift.Text = "Invoice Amount:" rpt.lblRgNrUeberschrift.Text = "Invoice No.:" rpt.lblRgDatumUeberschrift.Text = "Invoice Date:" Case "AG" rpt.lblUeberschriftRG_GS.Text = "CREDIT NOTE" rpt.lblSummeUeberschrift.Text = "Credit Amount:" rpt.lblRgNrUeberschrift.Text = "Credit Note No.:" rpt.lblRgDatumUeberschrift.Text = "Credit Note Date:" End Select Case Else Select Case BelegartenKz Case "AR" rpt.lblUeberschriftRG_GS.Text = "SAMMELRECHNUNG" Case "AG" rpt.lblUeberschriftRG_GS.Text = "GUTSCHRIFT" rpt.lblSummeUeberschrift.Text = "Gutschriftsbetrag:" rpt.lblRgNrUeberschrift.Text = "Gutschrifts-Nr.:" rpt.lblRgDatumUeberschrift.Text = "Gutschrifts-Datum:" End Select End Select initRgFirmaSammelRg(rpt, FIRMA, RechnungsNr, ROW("LandKz"), ROW("Buchungsjahr")) 'rpt.lblFirmaOrt.Text = If(FIRMA.Firma_Ort, "") 'rpt.lblFirmaStrasse.Text = If(FIRMA.Firma_Straße, "") 'rpt.lblFirmaTel.Text = If(FIRMA.Firma_Telefon, "") 'rpt.lblFirmaFax.Text = If(FIRMA.Firma_Telefax, "") 'rpt.lblFirmaEmail.Text = If(FIRMA.Firma_E_Mail, "") Select Case ROW("Firma_ID") Case 1 ' rpt.picVERAG.Image= My.Resources.Verag_AG_Logo : rpt.Picture1.Image = My.Resources.aeo_AT_imex is eh standard Case 4 : rpt.picVERAG.Image = My.Resources.Verag_AG_Logo : rpt.Picture1.Image = Nothing Case 7 : rpt.picVERAG.Image = My.Resources.Atilla_big_med : rpt.Picture1.Image = Nothing Case 11 : rpt.picVERAG.Image = My.Resources.Verag_Customs_Service_GMBH_Logo : rpt.Picture1.Image = My.Resources.aeo_CS Case 19 : rpt.picVERAG.Image = My.Resources.VERAG_360 : rpt.Picture1.Image = Nothing Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex Case 21 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT Case 22 : rpt.picVERAG.Image = My.Resources.Unisped_DE_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_DE Case 23 : rpt.picVERAG.Image = My.Resources.Unisped_ZS_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_ZS_AT Case 24 : rpt.picVERAG.Image = My.Resources.ambar_boarder : rpt.Picture1.Image = Nothing Case 26 : rpt.picVERAG.Image = My.Resources.VERAG_UNISPED_Logo : rpt.Picture1.Image = Nothing Case 17 : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal : rpt.Picture1.Image = Nothing End Select Dim strText = "" If ROW("Lastschrift") Then strText = "Der Rechnungsbetrag wurde durch Lastschrift eingezogen." End If rpt.txtVermerk.Text = strText Dim ZZTage = 10 Dim ZZKdZahlungsziel = SQL.DLookup("Zahlungsziel", "Kunden", "Kundennr=" & ROW("RechnungsKundenNr"), "FMZOLL", 10) If ZZKdZahlungsziel IsNot Nothing AndAlso IsNumeric(ZZKdZahlungsziel) Then ZZTage = ZZKdZahlungsziel End If Select Case ROW("RechnungSprache") Case "EN" : rpt.Label2.Text = ZZTage & " Days" : rpt.Label1.Text = "Payment target:" Case Else : rpt.Label2.Text = ZZTage & " Tage" End Select Select Case ROW("Firma_ID") Case 21, 22, 23, 24, 26 : rpt.Label1.Visible = False : rpt.Label2.Visible = False End Select rpt.lblKundenNr.Text = If(ROW("RechnungsKundenNr") > 0, ROW("RechnungsKundenNr"), "") rpt.lblRgNr.Text = If(ROW("RechnungsNr") IsNot DBNull.Value, addYeartoRgNr(FIRMA.Firma_ID, ROW("Buchungsjahr")) & ROW("RechnungsNr"), "Vorschau") rpt.lblRgDatum.Text = If(ROW("RechnungsDatum") IsNot DBNull.Value, ROW("RechnungsDatum"), "Vorschau") 'rpt.lblKundenAuftragsnummer.Text = If(RECHNUNG.KdAuftragsNr, "") 'If rpt.lblKundenAuftragsnummer.Text = String.Empty Then rpt.lblKundenAuftragsnummerUeberschrift.Visible = False 'rpt.lblAbfertigungsNr.Text = ROW("FilialenNr") & " / " & ROW("AbfertigungsNr") & " " & ROW("SpeditionsbuchUnterNr").ToString("00") 'rpt.lblAbfertigungsDatum.Text = RECHNUNG.Abfertigungsdatum.ToShortDateString 'rpt.lblLKWId.Text = If(RECHNUNG.AvisoID, "") Dim sachbearbeiterAufRechnung = getSBRgName(ROW("Firma_ID"), VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, ROW("Sachbearbeiter")) rpt.lblSachbearbeiter.Text = IIf(sachbearbeiterAufRechnung = "Herr Ordu", "Verrechnung", sachbearbeiterAufRechnung) 'könnten ja mehrerer SB die Rg-Anlagen geschreiben haben - NEU 'rpt.lblSachbearbeiter.Text = getSBRgName(ROW("Firma_ID"), VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) 'könnten ja mehrerer SB die Rg-Anlagen geschreiben haben - ALT 'rpt.lblFirmenbuch.Text = If(FIRMA.Firma_Firmenbuch, "").ToString.Replace("Firmenbuch: ", "").Trim 'rpt.lblUID.Text = If(FIRMA.Firma_UID, "") 'rpt.lblEORI.Text = If(FIRMA.Firma_EORI, "") rpt.lblLKWId.Text = getLKWID(RechnungsNr, DruckdatumUhrzeit, Rgstatus) rpt.lblLKWIdUebeschrift.Visible = (rpt.lblLKWId.Text.Trim <> "") rpt.lblRechnungAn.Text = ROW("RechnungsName 1") & vbNewLine If ROW("RechnungsName 2") IsNot DBNull.Value AndAlso ROW("RechnungsName 2") <> "" Then rpt.lblRechnungAn.Text &= ROW("RechnungsName 2") & vbNewLine If ROW("RechnungsName_AdressZusatz") IsNot DBNull.Value AndAlso ROW("RechnungsName_AdressZusatz") <> "" Then rpt.lblRechnungAn.Text &= ROW("RechnungsName_AdressZusatz") & vbNewLine If ROW("RechnungsStraße") IsNot DBNull.Value AndAlso ROW("RechnungsStraße") <> "" Then rpt.lblRechnungAn.Text &= ROW("RechnungsStraße") & vbNewLine If ROW("RechnungsOrt") IsNot DBNull.Value AndAlso ROW("RechnungsOrt") <> "" Then rpt.lblRechnungAn.Text &= ROW("RechnungsOrt") & vbNewLine If ROW("RechnungsLandKz") IsNot DBNull.Value AndAlso ROW("RechnungsLandKz") <> "" Then rpt.lblRechnungAn.Text &= cProgramFunctions.getLandBez_fromISO1Land(ROW("RechnungsLandKz"), "", ROW("RechnungSprache")).ToString.ToUpper 'If If(ROW("RechnungsName 2") IsNot DBNull.Value, ROW("RechnungsName 2"), "") = "" Then ' rpt.lblRechnung_Name1.Text = "" ' rpt.lblRechnung_Name2.Text = ROW("RechnungsName 1") 'Else ' rpt.lblRechnung_Name1.Text = ROW("RechnungsName 1") ' rpt.lblRechnung_Name2.Text = If(ROW("RechnungsName 2") IsNot DBNull.Value, ROW("RechnungsName 2"), "") 'End If 'rpt.lblRechnung_Strasse.Text = If(ROW("RechnungsStraße") IsNot DBNull.Value, ROW("RechnungsStraße"), "") 'rpt.lblRechnung_Ort.Text = If(ROW("RechnungsOrt") IsNot DBNull.Value, ROW("RechnungsOrt"), "") 'rpt.lblRechnung_Land.Text = cProgramFunctions.getLandBez_fromISO1Land(ROW("RechnungsLandKz"), "", ROW("RechnungSprache")).ToString.ToUpper If KD_RG IsNot Nothing AndAlso If(KD_RG.Steuernummer, "") <> String.Empty Then rpt.lblRechnung_Steuernummer.Text = If(KD_RG.LandKz, "") & " " & If(KD_RG.Steuernummer, "").ToString.Trim ' rpt.lblRechnung_UID.Text = If(KD_RG.UstIdKz, "") & " " & If(KD_RG.UstIdNr, "").ToString.Trim Else rpt.lblRechnung_Steuernummer.Text = "" ' rpt.lblRechnung_UID.Text = "" End If rpt.lblRechnung_Steuernummer.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_Steuernummer_Ueberschrift.Visible = (rpt.lblRechnung_Steuernummer.Text <> String.Empty) rpt.lblRechnung_UID.Text = If(ROW("RechnungsUstIdKz") IsNot DBNull.Value, ROW("RechnungsUstIdKz"), "") & If(ROW("RechnungsUstIdNr") IsNot DBNull.Value, ROW("RechnungsUstIdNr"), "") rpt.lblRechnung_UID.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) rpt.lblRechnung_UID_Ueberschrift.Visible = (rpt.lblRechnung_UID.Text <> String.Empty) ' REVERSE CHARGE (Übergang der Steuerschuld in EU-Ländern). ' Dies hat zur Folge, dass steuerfreie Rechnungsbeträge für Leistungen, ' die in der Leistungstabelle als ReverseCharge gekennzeichnet sind, ' summiert und auf der Rechnung ausgewiesen werden. If getReverseChargeSumme(FIRMA, ROW("RechnungsLandKz"), ROW("RechnungsNr"), ROW("RechnungsDatum"), VorschauID) > 0 Then Select Case ROW("RechnungSprache") Case "EN" : rpt.txtInfo.Text = "The VAT liability is transferred to the recipient of the service (reverse charge system)." '"Attention! For EU customers! Since 1.1.2010, services are subject to the application of the reverse charge procedure. Transfer of the tax liability to the recipient of the service." Case Else : rpt.txtInfo.Text = "Die Umsatzsteuerschuld geht auf den Leistungsempfänger über (Reverse Charge Verfahren)." '"Achtung! Für EU-Kunden! Seit 1.1.2010 unterliegen Leistungen der Anwendung des Reverse Charge Verfahrens. Übergang der Steuerschuld an den Leistungsempfänger." End Select Else : rpt.txtInfo.Text = "" : End If 'rpt.txtBank1.Text = If(FIRMA.Firma_Bankverbindung1, "") & vbNewLine & If(FIRMA.Firma_IBAN1, "") & vbNewLine & If(FIRMA.Firma_BIC1, "").ToString.Trim 'rpt.txtBank2.Text = If(FIRMA.Firma_Bankverbindung2, "") & vbNewLine & If(FIRMA.Firma_IBAN2, "") & vbNewLine & If(FIRMA.Firma_BIC2, "").ToString.Trim 'rpt.txtBank1.Text = rpt.txtBank1.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) 'rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine) Dim sumSteuerpflichtig As Double = 0 Dim sumSteuerfrei As Double = 0 AddHandler rpt.Detail.Format, Sub() ' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString ' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString rpt.lblLeistungNr.Text = checkNull(rpt.Fields.Item("LeistungsNr").Value) rpt.txtLeistung.Text = checkNull(rpt.Fields.Item("LeistungsBez").Value) If Not ROW("Lastschrift") Then If checkNull(rpt.Fields.Item("LeistungsNr").Value) = "750" Then strText = "Pos. 750 kann bei Zahlung innerhalb 10 Tagen gekürzt werden." End If End If If rpt.Fields.Item("Belegdaten") IsNot Nothing AndAlso rpt.Fields.Item("Belegdaten").Value IsNot Nothing Then rpt.txtLeistung.Text &= vbNewLine & checkNull(rpt.Fields.Item("Belegdaten").Value) End If rpt.lblAnzahl.Text = checkNull(rpt.Fields.Item("Anzahl").Value) ' rpt.lblBetrag.Text = rpt.Fields.Item("betrag").Value Dim stPfl As Double = 0 Dim stFrei As Double = 0 If IsNumeric(checkNull(rpt.Fields.Item("SteuerpflichtigerBetrag").Value)) Then stPfl = CDbl(rpt.Fields.Item("SteuerpflichtigerBetrag").Value()) rpt.lblSteuerpflichtig.Text = If(stPfl <> 0, CDbl(stPfl).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") If IsNumeric(checkNull(rpt.Fields.Item("SteuerfreierBetrag").Value)) Then stFrei = CDbl(rpt.Fields.Item("SteuerfreierBetrag").Value()) rpt.lblSteuerfrei.Text = If(stFrei <> 0, CDbl(stFrei).ToString("N2", Globalization.CultureInfo.CurrentCulture), "") sumSteuerpflichtig += stPfl sumSteuerfrei += stFrei ' Anz += 1 ' gesAnz += 1 ' If Anz Mod 2 = 0 Then ' rpt.Detail.BackColor = Color.FromArgb(240, 240, 240) 'Else ' rpt.Detail.BackColor = Color.White ' End If 'rpt.Line10.Height = rpt.Detail.Height End Sub AddHandler rpt.ReportFooter1.Format, Sub() rpt.lblSteuerpflichtigGes.Text = If(sumSteuerpflichtig <> 0, (sumSteuerpflichtig).ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblSteuerfreiGes.Text = If(sumSteuerfrei <> 0, (sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture), "") Dim steuerProz As Double = 0 Dim steuerBez As String = "" Dim dt2 As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & ROW("Steuerschlüssel") & "'", "FMZOLL") If dt2 IsNot Nothing AndAlso dt2.Rows.Count > 0 Then steuerProz = dt2.Rows(0)(0) steuerBez = dt2.Rows(0)(1) End If rpt.lblSteuersatz.Text = steuerBez rpt.lblSteuerbetrag.Text = If((sumSteuerpflichtig * steuerProz) <> 0, (sumSteuerpflichtig * steuerProz).ToString("N2", CultureInfo.CurrentCulture), "") rpt.lblZWSumme.Text = (sumSteuerpflichtig + sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture) rpt.lblSumme.Text = (sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)).ToString("N2", CultureInfo.CurrentCulture) rpt.Label46.Text = If(ROW("Währungscode") IsNot DBNull.Value, ROW("Währungscode"), "EUR") If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then rpt.lblZwText.Visible = False rpt.lblZWSumme.Visible = False End If End Sub 'DruckDatumUhrzeit wird gesetzt, falls noch ungedruckt... 'If RECHNUNG.DruckDatumZeit Is Nothing Then ' RECHNUNG.SET_DruckdatumUhrzeit() 'End If If False Then Else 'ORIGINAL Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr")) Dim RG_Bezeichnung = "Rechnung_" & RechnungsNr & ".pdf" ' Dim RG_Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "_Rechnung_" & RechnungsNr & ".pdf" 'Rechnugnsdruck = Individuell für deise Rechnung, wird optional mitgegeben ' MsgBox("RechnungsdruckArt2: " & If(Rechnugnsdruck > 0, Rechnugnsdruck, If(AD.Rechnungsdruck, 0))) Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport rpt.Run(True) p.NeverEmbedFonts = "" p.Export(rpt.Document, tmpPath) If Not isMDMRechnungsdruck Then Dim Paramslist As New cParameterList(VERAG_PROG_ALLGEMEIN.cAllgemein.PROGID) Dim enableZugpferd = Paramslist.GET_PARAMETER_VALUE_BOOL("ZUGFeRD") If enableZugpferd Then tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.addAttachementToPDF(tmpPath, createZUGFeRD(False, Nothing, dt, rpt), "ZUGFeRD-invoice.xml") Else Dim Zugferdpath = createZUGFeRD(False, Nothing, dt, rpt) If Zugferdpath IsNot Nothing AndAlso Zugferdpath <> "" Then Dim fileInfo_ZP As New FileInfo(Zugferdpath) Dim ZUGF_DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "ZUGFERD", Now().Year & "_SR", "", "", fileInfo_ZP.Name, -1, False) ZUGF_DS.uploadDataToDATENSERVER(Zugferdpath, fileInfo_ZP.Name, fileInfo_ZP.Extension,,,, True) End If End If End If Select Case If(Rechnugnsdruck > 0, Rechnugnsdruck, If(AD.Rechnungsdruck, 0))'If(AD.Rechnungsdruck, 0) Case 0, 1 'DRUCKEN If isMDMRechnungsdruck Then Return True 'MDM-Sammelrechnungen nicht mitgeben! Path = tmpPath 'wird für Therefore benötigt Return cProgramFunctions.printRpt(rpt, PrinterName, False) 'Case 1 'FAX Case 2 'MAIL 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(True) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) 'rpt.Dispose() If isMDMRechnungsdruck Then Return True 'MDM-Sammelrechnungen nicht mitgeben! Path = tmpPath Try Dim outl As New Outlook.Application Dim Mail As Microsoft.Office.Interop.Outlook.MailItem Mail = outl.CreateItem(0) ' Mail.Subject = "Rechnung Nr. " & ROW("RechnungsNr") ' Mail.HTMLBody = "Sehr geehrte Damen und Herren,

anbei erhalten Sie die Rechnung Nr. " & ROW("RechnungsNr") & "." ' Mail.Subject = " Rechnung Nr. " & ROW("RechnungsNr") ' Mail.Subject = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & " Rechnung Nr. " & ROW("RechnungsNr") Select Case ROW("RechnungsLandKz") Case "TR" Mail.Subject = "Invoice NO. " & ROW("RechnungsNr") Mail.HTMLBody = "Sayin Bayanlar ve Baylar,

ekte baslikta yazan faturayi bulabilirsinz." Mail.HTMLBody &= "


Saygilarimizla

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) Case "A", "AT", "D", "DE", "CH" Mail.Subject = "Rechnung Nr. " & ROW("RechnungsNr") Mail.HTMLBody = "Sehr geehrte Damen und Herren,

im Anhang senden wir Ihnen die o.g. Rechnung." Mail.HTMLBody &= "


Mit freundlichen Grüßen

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) Case Else Mail.Subject = "Invoice No. " & ROW("RechnungsNr") Mail.HTMLBody = "Dear Sir or Madam,

attached we send you the invoice mentioned above." Mail.HTMLBody &= "


Best regards

" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID")) End Select Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , "Formular.pdf") Mail.Display() Catch ex As Exception MsgBox("Fehler bim Öffnen des Mail-Programmes. PDF wird geladen!") Process.Start(tmpPath) End Try rpt.Dispose() Return True Case 3 'PDF + öffnen 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(True) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) 'rpt.Dispose() Path = tmpPath Process.Start(tmpPath) rpt.Dispose() Return True Case 4 'PDF 'Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(RG_Bezeichnung, ".pdf", , False) 'Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport 'rpt.Run(True) 'p.NeverEmbedFonts = "" 'p.Export(rpt.Document, tmpPath) 'rpt.Dispose() If isMDMRechnungsdruck Then Return True 'MDM-Sammelrechnungen nicht mitgeben! Path = tmpPath rpt.Dispose() Return True End Select End If Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return False End Function Shared Function getSAMMELRechnung_Dt(RechnungsNr As Integer, DruckDatumZeit As DateTime, Status As String, Optional VorschauID As String = "") As DataTable Dim SQLStr = "SELECT DISTINCT MIN(Rechnungsausgang.RK_ID) as RK_ID,Rechnungsausgang.RechnungsNr, Rechnungsausgang.RechnungsDatum, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.Steuerpflichtig, RechnungsausgangPositionen.LeistungsBez, Rechnungsausgang.Status, Rechnungsausgang.DruckDatumZeit ,MIN(Filialen.Speditionsbuch) AS Speditionsbuch, Min(Rechnungsausgang.Abfertigungsdatum) AS AbfertigungsdatumVon, Max(Rechnungsausgang.Abfertigungsdatum) AS AbfertigungsdatumBis, Min(Rechnungsausgang.AbfertigungsNr) AS AbfertigungsNr, Min(Rechnungsausgang.UnterNr) AS UnterNr, Min(Rechnungsausgang.FilialenNr) AS FilialenNr, Min(Filialen.[Name 1]) AS FilialenName1, MIN(Filialen.[Name 2]) AS FilialenName2, Min(Filialen.Straße) AS FilialenStraße, --Min(([Filialen].[LandKz] + ' ' + [Filialen].[PLZ] + ' ' - [Filialen].[Ort])) AS FilialenOrt, Min(Filialen.Telefon) AS FilialenTelefon, Min(Filialen.Telefax) AS FilialenTelefax, Min(Filialen.[E-Mail]) AS [FilialenE-Mail], Min(Filialen.UstIdKz) AS FilialenUstIdKz, MIN(Filialen.UstIdNr) AS FilialenUstIdNr, MIN(Filialen.Absender) AS Absender, MIN(Rechnungsausgang.BelegartenNr) AS BelegartenNr, MIN(Rechnungsausgang.BelegartenKz) AS BelegartenKz, MIN(Rechnungsausgang.BelegartenBez) AS BelegartenBez, MIN(Rechnungsausgang.KundenNrZentrale) AS KundenNrZentrale, MIN(Rechnungsausgang.RechnungsKundenNr) AS RechnungsKundenNr, MIN(Rechnungsausgang.[RechnungsName 1]) AS [RechnungsName 1], MIN(Rechnungsausgang.[RechnungsName 2]) AS [RechnungsName 2],MIN(RechnungsName_AdressZusatz) as RechnungsName_AdressZusatz, MIN(Rechnungsausgang.RechnungsStraße) AS RechnungsStraße, MIN(Rechnungsausgang.RechnungsOrt) AS RechnungsOrt, MIN(Rechnungsausgang.RechnungsUstIdKz) AS RechnungsUstIdKz, MIN(Rechnungsausgang.RechnungsUstIdNr) AS RechnungsUstIdNr, MIN(cast(Rechnungsausgang.Lastschrift as int)) AS Lastschrift, Sum(RechnungsausgangPositionen.Anzahl) AS Anzahl, Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag) AS SteuerpflichtigerBetrag, Sum(RechnungsausgangPositionen.SteuerfreierBetrag) AS SteuerfreierBetrag, Rechnungsausgang.Buchungsjahr, Rechnungsausgang.Währungscode, Rechnungsausgang.Steuerschlüssel, MIN(Rechnungsausgang.[Steuersatz %]) AS [Steuersatz %], MIN(Steuertabelle.Steuerbezeichnung) AS Steuerbezeichnung, Adressen.LandKz AS LandKz, Adressen.Steuernummer AS Steuernummer, MIN(Rechnungsausgang.Sachbearbeiter) AS Sachbearbeiter, Rechnungsausgang.Firma_ID, tblFirma.Firma_Firmenbuch, tblFirma.Firma_UID, tblFirma.Firma_EORI, tblFirma.Firma_Bankverbindung1, tblFirma.Firma_BLZ1, tblFirma.Firma_KTO1, tblFirma.Firma_IBAN1, tblFirma.Firma_BIC1, tblFirma.Firma_Bankverbindung2, tblFirma.Firma_BLZ2, tblFirma.Firma_KTO2, tblFirma.Firma_IBAN2, tblFirma.Firma_BIC2, tblFirma.Firma_Ort, tblFirma.Firma_Straße, tblFirma.Firma_Telefon, tblFirma.Firma_Telefax, tblFirma.[Firma_E-Mail], tblFirma.Firma_Webadresse, MIN(Rechnungsausgang.KdAuftragsNr) as KdAuftragsNr, MIN(Rechnungsausgang.RechnungsLandKz) AS RechnungsLandKz, MIN(Rechnungsausgang.RechnungSprache) AS RechnungSprache FROM ((Adressen INNER JOIN ((Rechnungsausgang INNER JOIN Filialen ON Rechnungsausgang.FilialenNr = Filialen.FilialenNr) INNER JOIN Steuertabelle ON Rechnungsausgang.Steuerschlüssel = Steuertabelle.Steuerschlüssel) ON Adressen.AdressenNr = Rechnungsausgang.RechnungsKundenNr) INNER JOIN tblFirma ON REPLACE(Rechnungsausgang.Firma_ID,15,19)= tblFirma.Firma_ID) INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID where 1=1 " If VorschauID = "" Then SQLStr &= " AND Status IN (" & Status & ") And Convert(DateTime, DruckDatumZeit, 104) ='" & DruckDatumZeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "'" Else SQLStr &= " AND RechnungsNr is null And VorschauID='" & VorschauID & "' " End If SQLStr &= " GROUP BY Rechnungsausgang.RechnungsNr, Rechnungsausgang.RechnungsDatum, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.Steuerpflichtig, RechnungsausgangPositionen.LeistungsBez, Rechnungsausgang.Status, Rechnungsausgang.DruckDatumZeit, Rechnungsausgang.Buchungsjahr, Rechnungsausgang.Währungscode, Rechnungsausgang.Steuerschlüssel, Adressen.LandKz, Adressen.Steuernummer, Rechnungsausgang.Firma_ID, tblFirma.Firma_Firmenbuch, tblFirma.Firma_UID, tblFirma.Firma_EORI, tblFirma.Firma_Bankverbindung1, tblFirma.Firma_BLZ1, tblFirma.Firma_KTO1, tblFirma.Firma_IBAN1, tblFirma.Firma_BIC1, tblFirma.Firma_Bankverbindung2, tblFirma.Firma_BLZ2, tblFirma.Firma_KTO2, tblFirma.Firma_IBAN2, tblFirma.Firma_BIC2, tblFirma.Firma_Ort, tblFirma.Firma_Straße, tblFirma.Firma_Telefon, tblFirma.Firma_Telefax, tblFirma.[Firma_E-Mail], tblFirma.Firma_Webadresse ORDER BY Rechnungsausgang.RechnungsNr, RechnungsausgangPositionen.LeistungsNr, RechnungsausgangPositionen.Steuerpflichtig, RechnungsausgangPositionen.LeistungsBez; " Return SQL.loadDgvBySql(SQLStr, "FMZOLL") End Function Shared Function getLKWID(RechnungsNr As Integer, DruckDatumZeit As Date, Status As Integer) As String Dim SQLStr = "SELECT DISTINCT(AvisoId) FROM Rechnungsausgang WHERE Status='" & Status & "' and CONVERT(datetime,DruckDatumZeit ,104)='" & DruckDatumZeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "' " Dim dt = SQL.loadDgvBySql(SQLStr, "FMZOLL") If dt.Rows.Count = 1 Then Return dt.Rows(0)("AvisoId").ToString End If Return "" End Function Shared Function checkIfMDMSammelrechnung(Rechnungsdruck As Integer, Status As Integer) 'If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4)) Then Return True If (Rechnungsdruck = 7 OrElse Rechnungsdruck = 8 OrElse Rechnungsdruck = 4 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 3 AndAlso (Status = 2 Or Status = 4) OrElse Rechnungsdruck = 2 AndAlso (Status = 2 Or Status = 4)) Then Return True Return False End Function Public Shared Function getRechnungsanshang(dt As DataTable, listAnh As List(Of String), extTyp As String, Optional onlyAsfinagMautanhang As Boolean = False) Dim displayView = New DataView(dt, "", "RK_ID", DataViewRowState.CurrentRows) Dim distinctDT_RK As DataTable = displayView.ToTable(True, "RK_ID") For Each r In distinctDT_RK.Rows Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(r("RK_ID")) If RG IsNot Nothing Then RG.LOAD_ANHAENGE() Dim PDFList As New List(Of String) Dim mergedPDFList = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Attachment_" & RG.RechnungsNr & ".pdf", "pdf",, False, "Zusammenfassung") For Each RG_AH In RG.ANHAENGE.Where(Function(x) x.Bezeichnung.ToLower.EndsWith(extTyp)) Select Case extTyp Case "pdf" If onlyAsfinagMautanhang Then If RG_AH.Bezeichnung.ToUpper.Contains("MAUT_AT") Then Dim Path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(RG_AH.dsId) If Path <> "" Then listAnh.Add(Path) End If Else If RG.Firma_ID = 19 AndAlso RG.Sammelrechnung = 6 AndAlso RG.FilialenNr = 4817 Then 'in diesem Fall PDFs zusammenfassen! Dim Path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(RG_AH.dsId) If Not (Path.ToString.ToLower.Contains("sammelrechnung") OrElse Path.ToString.Contains("Maut") OrElse Path.ToString.Contains("POS") OrElse Path.ToString.ToLower.Contains("invoice") OrElse Path.ToString.ToLower.Contains("rechnung")) Then If Path <> "" Then PDFList.Add(Path) Else If Path <> "" Then listAnh.Add(Path) End If Else If RG_AH.Bezeichnung.ToUpper.Contains("MAUT") Or RG_AH.Bezeichnung.ToUpper.Contains("DIESEL") Or RG_AH.Bezeichnung.ToUpper.Contains("INVOICE") Then Dim Path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(RG_AH.dsId) If Not listAnh.Contains(Path) Then If Not (listAnh.Any(Function(f) f.Contains("COPY_INVOICE")) And Path.ToUpper.Contains("COPY_INVOICE")) Then 'damit diesel IDS-Rechnung nicht doppelt hinzugefügt wird. If Path <> "" Then listAnh.Add(Path) End If End If End If End If End If Case "csv" If RG_AH.Bezeichnung.ToUpper.Contains("MAUT") Then Dim Path = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(RG_AH.dsId) If Not listAnh.Contains(Path) Then If Path <> "" Then listAnh.Add(Path) End If End If End Select Next If PDFList.Count = 1 Then listAnh.Add(PDFList.First()) ElseIf PDFList.Count > 1 Then If FormularManagerNEU.MergePdfFiles(PDFList, mergedPDFList) Then listAnh.Add(mergedPDFList) End If End If End If Next End Function End Class