Files
SDL/SDL/Fakturierung/cFakturierung.vb
2025-11-04 16:18:57 +01:00

6163 lines
395 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 &= " (<Rechnungsdatum+ZZ>)"
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("<EMailAdresse>", 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("<Vorlageprovision>", "If payment is received by <Rechnungsdatum+ZZVL>, you can deduct the template commission charged. " & vbCrLf)
Case Else : strText = strText.Replace("<Vorlageprovision>", "Bei Zahlungseingang bis zum <Rechnungsdatum+ZZVL> 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("<Vorlageprovision>", "")
If strText = "" Then
RECHNUNG.Text = Nothing
Else
strText.Replace("<EMailAdresse>", 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("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", Now.AddDays(ZZTageVL).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", 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("<Rechnungsdatum+10T>", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
Else
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", Now.AddDays(ZZTageVL).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", 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("<Rechnungsdatum+10T>", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", CDate(Rechnung.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(Rechnung.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
Else
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", Now.AddDays(ZZTageVL).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", 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,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
Mail.HTMLBody &= "<br><br><br>Saygilarimizla<br><br>" & getSignature(Rechnung)
Case "A", "AT", "D", "DE", "CH"
Mail.Subject = "Rechnung Nr. " & Rechnung.RechnungsNr
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & getSignature(Rechnung)
Case Else
Mail.Subject = "Invoice No. " & Rechnung.RechnungsNr
Mail.HTMLBody = "Dear Sir or Madam,<br><br>attached we send you the invoice mentioned above."
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>" & getSignature(Rechnung)
End Select
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & Mail.HTMLBody & "</div>"
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("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", Now.AddDays(ZZTageVL).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", 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("<Rechnungsdatum+10T>", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
Else
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", Now.AddDays(ZZTageVL).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", 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("<Rechnungsdatum+10T>", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", CDate(RECHNUNG.RechnungsDatum).AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTageVL).ToShortDateString)
Else
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(10).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZ>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+ZZVL>", Now.AddDays(ZZTageVL).ToShortDateString)
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+ZZVL>", 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,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
Mail.HTMLBody &= "<br><br><br>Saygilarimizla<br><br>" & getSignature(RECHNUNG)
Case "A", "AT", "D", "DE", "CH"
Mail.Subject = "Rechnung Nr. " & RECHNUNG.RechnungsNr
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & getSignature(RECHNUNG)
Case Else
Mail.Subject = "Invoice No. " & RECHNUNG.RechnungsNr
Mail.HTMLBody = "Dear Sir or Madam,<br><br>attached we send you the invoice mentioned above."
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>" & getSignature(RECHNUNG)
End Select
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & Mail.HTMLBody & "</div>"
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 = "<div style=""font-size:12px"">" & additionalLine & "</div>"
Select Case special
Case "BREXIT_VERAG"
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "VERAG_AEO_MailSig.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG Spedition AG</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 100 <br><b>T</b> +43 7711 2777-885 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, emailindividuell, "brexit@verag.ag") & " | www.verag.ag | FN 216714y</div>"
Case Else
Select Case firma
Case 1 'VERAG
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "VERAG_AEO_MailSig.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG Spedition AG</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 100 <br><b>T</b> +43 7711 2777-0 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, emailindividuell, "rechnungsversand@verag.ag") & " | www.verag.ag | FN 216714y</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 4 'VERAG AG (DE)
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Verag-AG-Logo21.png""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG Spedition AG</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 100 <br><b>T</b> +43 7711 2777-947 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, emailindividuell, "s.kriegner@verag.ag") & " | www.verag.ag | FN 216714y</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 7 'ATILLA
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Atilla.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>ATILLA Spedition GmbH</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 15 <br><b>T</b> +43 7711 2845-0 | <b>@</b> " & If(individuell, emailindividuell, "rechnungsversand@verag.ag") & " | www.verag.ag | FN 288916b</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 11 'VERAG CS
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Verag_Customs_Service_AEO.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG Customs Service</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 14 <br><b>T</b> +43 7711 2777-0 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, emailindividuell, "versand@verag.com") & " | www.verag.ag | FN 406316z</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 20 'Imex
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "IMEX-LOGO-AEO_sig.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>Imex Customs Service GmbH</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Autobahngrenze 15 <br><b>T</b> +43 7711 31630 | <b>F</b> +43 7711 31630-1 | <b>@</b> " & If(individuell, emailindividuell, "info@imex-group.at") & " | www.imex-group.at | FN 410356s</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 24 'AMBAR
Dim defaultMail = getDefaultMail("AMBAR", departmentmailadress, fakturierung)
getSignature &= "<img width=""250"" height=""70"" src=""" & imgsrc & "ambar_boarder.png""/>"
If displayFirmenmane Then getSignature &= "<br><b>AMBAR | IMPORT ZOLL</b><br>"
getSignature &= "<div style=""font-size:12px"">D 83435 Bad Reichenhall, Reichenhallerstrasse 62<br><b>T</b> +49 8651 9962492 | <b>F</b> +49 8651 9962493 | <b>@</b> " & If(individuell, emailindividuell, defaultMail) & " | www.ambarlog.com | DE309105428</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 21 'UNISPED
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Unisped_logo.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>Unisped Speditions GmbH</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 15 <br><b>T</b> +43 7711 2677-0 | <b>F</b> +43 7711 2677-27 | <b>@</b> " & If(individuell, emailindividuell, "office@unisped.at") & " | www.unisped.at | FN 375838d</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 19 'VERAG360
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "VERAG_360.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG 360 GmbH</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 100 <br><b>T</b> +43 7711 2777-0 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, If(firmenSignature, "mmdabrechnung@verag.ag", emailindividuell), "mmd@verag.ag") & " | www.verag.ag | FN 544732b</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 26 'VERAG-UNISPED
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "VERAG-UNISPED-Logo.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG-UNISPED LTD</b><br>"
getSignature &= "<div style=""font-size:12px"">Kent CT16 1BY Dover, 1 Cannon Street<br><b>T</b> +44 1304 272475 | <b>@</b> invoice@verag-unisped.uk | www.verag-unisped.uk | Company-No. 13107151 | VAT GB389356931</div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 99 'GmbH
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Verag-Spedition-GMBH-Logo1.png""/>"
If displayFirmenmane Then getSignature &= "<br><b>VERAG Spedition GmbH</b><br>"
getSignature &= "<div style=""font-size:12px"">D 94152 Neuhaus/Inn, Hartham 6 <br><b>T</b> +43 7711 2777-0 | <b>F</b> +43 7711 31 073 | <b>@</b> " & If(individuell, emailindividuell, "rechnungsversand@verag.ag") & " | www.verag.ag </div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
Case 17 'Front-Office
getSignature &= "<img width=""170"" height=""50"" src=""" & imgsrc & "Logo_blue_globe_Horizontal.jpg""/>"
If displayFirmenmane Then getSignature &= "<br><b>Front Office Suben eG</b><br>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 14<br><b>T</b> +43 7711 31636 -0 | <b>@</b> " & If(individuell, emailindividuell, "suben@front-office.eu") & " | www.front-office.eu </div>"
If additionalLine <> "" Then getSignature &= vbNewLine & additionalLine & vbNewLine
End Select
End Select
getSignature &= "<br>"
'BREXIT
If True Then
Select Case firma
Case 21, 22, 23 'UNISPED
Exit Select ' nicht mehr!
getSignature &= "<br>"
getSignature &= "<div style=""font-size:14px"">"
getSignature &= "Sind Sie bereits auf den BREXIT vorbereitet?<br/>"
getSignature &= "Weiter Infos finden Sie unter: <a href=""http://www.brexit.at"">http://www.brexit.at<br/>"
getSignature &= "<img width=""250"" height=""80"" src=""" & imgsrc & "bexit.png""/></a><br/>"
getSignature &= "<b>BREXIT Hotline:</b> +43 7711 2677 - 27| <b>@</b> <a href=""mailto:brexit@unisped.at"">brexit@unisped.at</a> <br/>"
getSignature &= "</div>"
getSignature &= "<br>"
getSignature &= "<br>"
Case Else
Exit Select ' nicht mehr!
getSignature &= "<br>"
getSignature &= "<div style=""font-size:14px"">"
getSignature &= "Sind Sie bereits auf den BREXIT vorbereitet?<br/>"
getSignature &= "Weiter Infos finden Sie unter: <a href=""http://www.brexit.at"">http://www.brexit.at<br/>"
getSignature &= "<img width=""250"" height=""80"" src=""" & imgsrc & "brexit.png""/></a><br/>"
getSignature &= "<b>BREXIT Hotline:</b> +43 7711 2777 - 885 | <b>@</b> <a href=""mailto:brexit@verag.ag"">brexit@verag.ag</a> <br/>"
getSignature &= "</div>"
getSignature &= "<br>"
getSignature &= "<br>"
End Select
End If
Select Case firma
Case 24 'AMBAR
Select Case landKz
Case "D", "A", "DE", "AT", "CH"
getSignature &= "<span style=""font-size:9px"">Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen Spediteurbedingungen 2017 ADSp 2017 .</span>"
Case Else
getSignature &= "<span style=""font-size:9px"">Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen Spediteurbedingungen 2017 ADSp 2017 .</span>"
End Select
Case Else
Select Case landKz
Case "D", "A", "DE", "AT", "CH"
getSignature &= "<span style=""font-size:9px"">Wir arbeiten ausschließlich auf Grund der Allgemeinen Österreichischen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf Frachten,<br>
Spesen und Zinsen zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding. Steuer-Zoll - und Tarifauskünfte sind unverbindlich.</span>"
Case "E", "GB"
getSignature &= "<span style=""font-size:9px"">We operate exclusively on the basis of the General Freight Forwarding Terms and Conditions in the respectively applicable version. Payments are initially<br>
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.</span>"
Case Else
getSignature &= "<span style=""font-size:9px"">Wir arbeiten ausschließlich auf Grund der Allgemeinen Spediteurbedingungen in der jeweils geltenden Fassung. Zahlungen werden zunächst auf Frachten,<br>
Spesen und Zinsen zuletzt auf Zölle angerechnet. Zahlbar und klagbar in Schärding. Steuer-Zoll - und Tarifauskünfte sind unverbindlich.</span>"
getSignature &= "<br>"
getSignature &= "<span style=""font-size:9px"">We operate exclusively on the basis of the General Freight Forwarding Terms and Conditions in the respectively applicable version. Payments are initially<br>
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.</span>"
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,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
Mail.HTMLBody &= "<br><br><br>Saygilarimizla<br><br>" & 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,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID"))
Case Else
Mail.Subject = "Invoice No. " & ROW("RechnungsNr")
Mail.HTMLBody = "Dear Sir or Madam,<br><br>attached we send you the invoice mentioned above."
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID"))
End Select
Mail.HTMLBody = "<div style=""font-family:Calibri, Arial"">" & Mail.HTMLBody & "</div>"
' Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>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,<br><br>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,<br><br>ekte baslikta yazan faturayi bulabilirsinz."
Mail.HTMLBody &= "<br><br><br>Saygilarimizla<br><br>" & 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,<br><br>im Anhang senden wir Ihnen die o.g. Rechnung."
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>" & getSignature(ROW("RechnungsLandKz"), ROW("Firma_ID"))
Case Else
Mail.Subject = "Invoice No. " & ROW("RechnungsNr")
Mail.HTMLBody = "Dear Sir or Madam,<br><br>attached we send you the invoice mentioned above."
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>" & 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