Files
SDL/SDL/Fakturierung/cFakturierung.vb

3454 lines
218 KiB
VB.net

Imports System.Globalization
Imports awt.ShellApi
Imports com.sun.org.apache.xerces.internal.impl.dv.xs
Imports java.awt.geom
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
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)
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 + 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
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 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 = "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 = "Payment term: " & ZZTage & " days from invoice date"
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+10T>)"
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 Then
Select Case RECHNUNG.RechnungSprache
Case "EN" : strText = strText & "The invoice amount has already been paid in advance." & 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 & "An advance payment has already been made for this invoice." & 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 & "An advance payment has already been made for this invoice, please transfer the difference." & vbCrLf
Case Else : strText = strText & "Zu dieser Rechnung wurde bereits eine Vorauszahlung geleistet, bitte überweisen Sie 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 amount was offset against the debit order issued." & vbCrLf
Case Else : strText = strText & "Der Gutschriftsbetrag wurde mit erteilten Abbuchungsauftrag verrechnet." & vbCrLf
End Select
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 VORL IsNot Nothing AndAlso VORL.Count > 0 Then
Select Case RECHNUNG.RechnungSprache
Case "EN" : strText = strText.Replace("<Vorlageprovision>", "If payment is received by <Rechnungsdatum+10T>, you can deduct the template commission charged. " & vbCrLf)
Case Else : strText = strText.Replace("<Vorlageprovision>", "Bei Zahlungseingang bis zum <Rechnungsdatum+10T> können Sie die verrechnete Vorlageprovision in Abzug bringen. " & vbCrLf)
End Select
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")
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) 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)
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, 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)", "")
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
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.picVERAG.Size = New SizeF(2.712, 0.61)
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"
rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR21 0006 2000 5440 0009 0818 67" & vbNewLine & "BLZ Sube.: 544 - 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 Else 'VERAG,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
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 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)", "")
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
' 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
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"
rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Hadimköy Ticari - Hesap: 9098713"
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
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 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_Ort, "")).ToString.Replace(" (DE)", "")
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
' 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 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"
rpt.txtBank1.Text = "Garanti Bank " & vbNewLine & "IBAN:TR84 0006 2001 6040 0009 0987 13 " & vbNewLine & "BLZ Sube.: 1604 - Hadimköy Ticari - Hesap: 9098713"
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
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
Try
Dim rpt As New rptRechnungDruck(RECHNUNG.RechnungSprache)
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(RECHNUNG.Firma_ID)
Dim KD_RG As New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr)
If FIRMA Is Nothing Then MsgBox("Keine Firma gewählt!") : Return False
If Not SammelrechnungAnlagendruck Then
If vorschau = False And RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Return False
End If
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 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 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_simple : rpt.Picture1.Image = Nothing
rpt.txtAvisierer.Visible = False : rpt.lblAvisiererUeberschrift.Visible = False : rpt.txtWarenwert.Visible = False : rpt.lblWarenWertUeberschrift.Visible = False
Case 17 : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal : rpt.Picture1.Image = Nothing
End Select
Dim ZZTage = 10
Dim ZZKdZahlungsziel = SQL.DLookup("Zahlungsziel", "Kunden", "Kundennr=" & RECHNUNG.RechnungsKundenNr, "FMZOLL", 10)
If ZZKdZahlungsziel IsNot Nothing AndAlso IsNumeric(ZZKdZahlungsziel) Then
ZZTage = ZZKdZahlungsziel
End If
Select Case RECHNUNG.RechnungSprache
Case "EN" : rpt.Label2.Text = ZZTage & " Days" : rpt.Label1.Text = "Payment target:"
Case Else : rpt.Label2.Text = ZZTage & " Tage"
End Select
Select Case RECHNUNG.Firma_ID
Case 21, 22, 23, 26, 24 : rpt.Label1.Visible = False : rpt.Label2.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, "")
rpt.lblSachbearbeiter.Text = getSBRgName(RECHNUNG.Firma_ID, RECHNUNG.Sachbearbeiter) '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.RechnungsName_AdressZusatz, "") <> "" Then rpt.lblRechnungAn.Text &= RECHNUNG.RechnungsName_AdressZusatz & vbNewLine
If If(RECHNUNG.RechnungsStraße, "") <> "" Then rpt.lblRechnungAn.Text &= RECHNUNG.RechnungsStraße & 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 "EN" : rpt.txtInfo.Text = "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 = "Achtung! Für EU-Kunden! Seit 1.1.2010 unterliegen Leistungen der Anwendung des Reverse Charge Verfahrens. Übergang der Steuerschuld an den Leistungsempfänger."
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.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
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 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 Else : rpt.lblUeberschriftRG_GS.Text &= " - KOPIE"
End Select
End If
End If
'Dim cnt As Integer = 0
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)
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 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
rpt.lblZwText.Text = "Summe Steuerfrei"
rpt.lblZWSumme.Text = CDbl(getSteuerfreiEUSTZOLL(FIRMA, RECHNUNG)).ToString("N2", CultureInfo.CurrentCulture)
rpt.lblZwText.Visible = True
rpt.lblZWSumme.Visible = True
rpt.lblSteuersatz.Text = "Summe Reverse Charge"
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(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(ZZTage).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(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
Else
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(ZZTage).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(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", CDate(RECHNUNG.RechnungsDatum).AddDays(ZZTage).ToShortDateString)
Else
rpt.txtVermerk.Text = rpt.txtVermerk.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(ZZTage).ToShortDateString)
rpt.TextBox1.Text = rpt.TextBox1.Text.Replace("<Rechnungsdatum+10T>", Now.AddDays(ZZTage).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)
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
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 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
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>"
Mail.To = VERAG_PROG_ALLGEMEIN.cKundenKontakte.getMailAdress(RECHNUNG.RechnungsKundenNr, "Rechnung an")
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
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
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
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
MsgBox(ex.Message & ex.StackTrace)
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
MsgBox(ex.Message & ex.StackTrace)
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
If ANH.dsId > 0 Then list.Add(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(ANH.dsId))
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
MsgBox(ex.Message & ex.StackTrace)
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
MsgBox(ex.Message & ex.StackTrace)
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 = "") As String
getSignature = ""
firma = getFirmaNr(firma)
Dim imgsrc = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\").Replace("\", "/")
Dim 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")
getSignature &= "<img width=""250"" height=""70"" src=""" & imgsrc & "ambar_simple.png""/>"
If displayFirmenmane Then getSignature &= "<br><b>AMBAR Logistic Services GmbH</b><br>"
getSignature &= "<div style=""font-size:12px"">D 83435 Bad Reichenhall, Reichenhallerstrasse 62<br><b>T</b> +49 8651 99624911 | <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 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 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 Function
Shared Function getDefaultMail(firma)
Dim defaultMail = ""
Select Case firma
Case "AMBAR"
defaultMail = "import@ambarlog.de"
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 Select
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 = "") 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 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]
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)
'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
' 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 (CDbl(r("SteuerpflichtigerGesamtbetrag")) + CDbl(r("SteuerfreierGesamtbetrag"))) = 0 Then
Return False
End If
Next
Return True
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 = "") 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
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
Aktuelle_RgNr = getNewRgNr(Firma_ID, Buchungsjahr) 'Nimmt die aktuelle RgNr und zählt eine Pos. hoch.
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) '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 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)
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
RG.[RechnungsNr] = Aktuelle_RgNr
RG.[Status] = 3
RG.[RechnungsDatum] = Rechnungsdatum.ToShortDateString
RG.[Buchungsjahr] = Buchungsjahr
RG.[DruckDatumZeit] = DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff")
End If
RG.SAVE()
If Not RG.checkRechnungsNrIsSet() AndAlso Not vorschau Then
MsgBox("Rechnungsnummer wurde nicht in Datenbank eingetragen" & vbNewLine & "Vorgang wird abgebrochen")
Return False
Else
found = True
End If
End If
Next
'Letzter Abschnitt:
If found Then
Dim path = ""
doSAMMELRechnungsDruck_Abschnitt(Aktuelle_RgNr, Firma_ID, Buchungsjahr, DruckdatumUhrzeit, PrinterName, AnlageEinzelRg, Sammelrechnungsbericht, RechnungsdruckArt, path,, SB, AnlageExcelEvolog, SonstAnlagen, VorschauID, AnlageExcelTransferry360, FakturierungsGruppe, Abfertigungsart)
If path <> "" Then listPDFs.Add(path)
End If
lastAktuelle_RgNr = Aktuelle_RgNr
Return True
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
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 = "") 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, 3, [VorschauID]) ' 3-_> Anlagen gedruckt
End If
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) 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
'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 Not SRDruckWiederholen And (Not VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM OrElse vbYes = MsgBox("TEST - in Therefore speichern?", vbYesNoCancel)) Then
VERAG_PROG_ALLGEMEIN.cTherefore.saveFileTo_ImportFolder(pathPDF, "SA " & RechnungsNr & " " & dt.Rows(0)("RechnungsName 1"), "", Firma_ID, False)
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 fehlgeschalgen! " & ex.Message & ex.StackTrace)
End Try
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(3) 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
MsgBox(ex.Message & ex.StackTrace)
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
MsgBox(ex.Message & ex.StackTrace)
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 = "") 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 dt As DataTable
If VorschauID = "" Then
dt = SQL.loadDgvBySql("Select * FROM Rechnungsausgang WHERE Rechnungsausgang.Status In(3) 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 RechnungsNr is null AND VorschauID='" & VorschauID & "' ORDER BY FilialenNr, AbfertigungsNr", "FMZOLL")
End If
Dim ROW As DataRow = dt.Rows(0)
Dim rpt As New rptSammelRechnungAnlagenDruck(ROW("RechnungSprache"))
rpt.DataSource = dt
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 dataView As New DataView(dtDataSource)
' dataView.Sort = " LeistungsNr "
' Dim dtTmp As DataTable = dataView.ToTable()
'' 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 = 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 = "AR" 'If(Gesamt_RG_Betrag < 0, "AG", "AR")
Select Case ROW("RechnungSprache")
Case "EN"
Select Case BelegartenKz
Case "AR"
rpt.lblUeberschriftRG_GS.Text = "Attatchment to INVOICE"
rpt.lblSummeUeberschrift.Text = "Invoice Amount:"
rpt.lblRgNrUeberschrift.Text = "Invoice No.:"
rpt.lblRgDatumUeberschrift.Text = "Invoice Date:"
Case "AG"
rpt.lblUeberschriftRG_GS.Text = "Attatchment to 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 = "Anlage zur 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_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 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, "")
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, "")
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 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)
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)
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 Then
Dim subRpt = New rptSammelRechnungAnlagenDruck_Leistungen(rpt._LAN, RECHNUNG)
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
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
'Dim BelegartenKz = If(CDbl((sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz))) < 0, "AG", "AR")
End Sub
'DruckDatumUhrzeit wird gesetzt, falls noch ungedruckt...
'If RECHNUNG.DruckDatumZeit Is Nothing Then
' RECHNUNG.SET_DruckdatumUhrzeit()
'End If
'ORIGINAL
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(ROW("RechnungsKundenNr"))
'Dim RG_Bezeichnung = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & " _Rechnung_" & RechnungsNr & ".pdf"
Dim RG_Bezeichnung = "Rechnung_" & RechnungsNr & ".pdf"
'Rechnugnsdruck = Individuell für deise Rechnung, wird optional mitgegeben
Dim 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)
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
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function
Shared Function getSBRgName(Firma_id As Integer, USRKURZNAME As String) As String
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 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 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 = "") 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 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 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 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
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, 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, "")
rpt.lblSachbearbeiter.Text = getSBRgName(ROW("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, "")
'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)
Select Case If(Rechnugnsdruck > 0, Rechnugnsdruck, If(AD.Rechnungsdruck, 0))'If(AD.Rechnungsdruck, 0)
Case 0, 1 'DRUCKEN
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()
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()
Path = tmpPath
rpt.Dispose()
Return True
End Select
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
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 Rechnungsausgang.Firma_ID = 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
End Class