Files
SDL/SDL/Fakturierung/cFakturierung.vb
2020-11-05 07:59:47 +01:00

2113 lines
132 KiB
VB.net

Imports System.Globalization
Imports Microsoft.Office.Interop
Public Class cFakturierung
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
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
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 przRechnungstext(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As String ', ByRef strZahlbar As String, ByRef strText As String)
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
Dim RECHNUNG_AD As New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr)
Dim RECHNUNG_KD As New VERAG_PROG_ALLGEMEIN.cKunde(RECHNUNG.RechnungsKundenNr)
Select Case RECHNUNG.[BelegartenNr]
Case 70 'RECHNUNG
If Not RECHNUNG.Vorkasse Then
If RECHNUNG.Lastschrift Then
strText = strText & "Der Rechnungsbetrag wurde durch erteilten Abbuchungsauftrag eingezogen." & vbCrLf
Else
If checkIfKreditaufwendungen(RECHNUNG) Then
strZahlbar = "Zahlbar innerhalb 10 Tagen abzüglich Pos. 750; ab 10 Tagen netto fällig."
Else
'Zahlungsziel allgemein.
strZahlbar = "Zahlbar innerhalb 10 Tagen ab Rechnungsdatum."
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
If checkIfcheckIfZollbelege(RECHNUNG) Then
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 If
End If
Else
Dim VK = VERAG_PROG_ALLGEMEIN.cVorauskasse.LOADByFilialeAbfNr(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr)
If VK IsNot Nothing AndAlso CDbl(VK.vk_Betrag) > 0 Then
If VK.vk_GeldEingetroffen Then ' Wenn 0 dann Fehler
If CDbl(VK.vk_Betrag) = CDbl(RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag) Then
strText = strText & "Der Rechnungsbetrag wurde bereits per Vorauszahlung beglichen." & vbCrLf
Else
strText = strText & "Zu dieser Rechnung wurde bereits eine Vorauszahlung geleistet, bitte überweisen Sie den Differenzbetrag." & vbCrLf
End If
End If
End If
End If
Case 71 'GS
If RECHNUNG.Lastschrift Then
strText = strText & "Der Gutschriftsbetrag wurde mit erteilten Abbuchungsauftrag verrechnet." & vbCrLf
End If
End Select
' 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
strText = strZahlbar & vbNewLine & strText
' Text in Rechnungskopfsatz übernehmen.
If strText = "" Then
RECHNUNG.Text = Nothing
Else
strText.Replace("<EMailAdresse>", If(RECHNUNG_AD.E_Mail, " - "))
' varPos = InStr(1, strText, "<EMailAdresse>")
' If varPos > 0 And Not rstAdr.EOF And Not IsNull(rstAdr![E-Mail]) Then
'If Len(strText) > (varPos - 1 + Len("<EMailAdresse>")) Then
' strText = Left(strText, varPos - 1) & rstAdr![E-Mail] & Right(strText, Len(strText) - (varPos - 1 + Len("<EMailAdresse>")))
' Else
' strText = Left(strText, varPos - 1) & rstAdr![E-Mail]
' End If
' End If
' Me![Text] = strText
RECHNUNG.Text = strText
End If
End If
Return strText
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 = "") 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)
Else
Return cFakturierung.doSAMMELRechnungsDruck_Abschnitt(RG_TMP.RechnungsNr, -1, -1, RG_TMP.DruckDatumZeit, "", False, , 3,, 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 SammelrechnungAnlagendruck 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,, SammelrechnungAnlagendruck)
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, "")
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
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"
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 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
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.txtBank2.Text = ""
Else
If hasVK(Rechnung) Then
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBWEAT2WXXX"
rpt.txtBank2.Text = ""
Else
If hasEUSTZOLL(Rechnung) Then
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBWEAT2WXXX"
rpt.txtBank2.Text = ""
Else
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBWEAT2WXXX"
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: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine)
rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine)
'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 Integer)
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, "")
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, "")
' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Select Case FIRMA.Firma_ID
Case 21 '"UNISPED"
rpt.txtBank1.Text = "????"
rpt.txtBank2.Text = "????"
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.txtBank2.Text = ""
Else
If hasVK(RechnungsNr, Buchungsjahr) Then
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBWEAT2WXXX"
rpt.txtBank2.Text = ""
Else
If hasEUSTZOLL(RechnungsNr) Then
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBWEAT2WXXX"
rpt.txtBank2.Text = ""
Else
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBWEAT2WXXX"
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: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine)
rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "BRD:" & 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 Integer)
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, "")
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, "")
' Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Select Case FIRMA.Firma_ID
Case 21 '"UNISPED"
rpt.txtBank1.Text = "????"
rpt.txtBank2.Text = "????"
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.txtBank2.Text = ""
Else
If hasVK(RechnungsNr, Buchungsjahr) Then
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT35 4480 0365 7822 0002" & vbNewLine & "BIC: VBWEAT2WXXX"
rpt.txtBank2.Text = ""
Else
If hasEUSTZOLL(RechnungsNr) Then
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT62 4480 0365 7822 0001" & vbNewLine & "BIC: VBWEAT2WXXX"
rpt.txtBank2.Text = ""
Else
rpt.txtBank1.Text = "Volksbank Schärding" & vbNewLine & "IBAN:AT89 4480 0365 7822 0000" & vbNewLine & "BIC: VBWEAT2WXXX"
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: ", "BRD:" & vbNewLine).Replace("Deutschland: ", "Deutschland:" & vbNewLine)
rpt.txtBank2.Text = rpt.txtBank2.Text.Replace("Österreich: ", "Österreich:" & vbNewLine).Replace("BRD: ", "BRD:" & 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) As Boolean
If RECHNUNG Is Nothing Then MsgBox("Fehler beim Laden der Rechnungsdaten!") : Return False
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Try
' MsgBox(RECHNUNG.Firma_ID)
Dim rpt As New rptRechnungDruck
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)
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.[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
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 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 = Nothing
Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex
Case 21, 22, 23 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT
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
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 rpt.txtAbsender.Text = String.Empty Then rpt.lblAbsenderUeberschrift.Visible = False
If rpt.txtEmpfaenger.Text = String.Empty Then rpt.lblEmpfaengerUeberschrift.Visible = False
If rpt.txtAvisierer.Text = String.Empty Then rpt.lblAvisiererUeberschrift.Visible = False
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.txtBeförderungsmittel.Text = If(RECHNUNG.LKW_Kennzeichen, "")
rpt.txtGrenze.Text = SQL.getValueTxtBySql("SELECT TOP 1 isnull([Grenzstelle],'') FROM [Filialen] where FilialenNr='" & RECHNUNG.FilialenNr & "'", "FMZOLL")
If rpt.txtGrenze.Text = String.Empty Then rpt.txtGrenzeUeberschrift.Visible = False
rpt.lblRechnung_Name1.Text = If(RECHNUNG.RechnungsName_1, "")
rpt.lblRechnung_Name2.Text = If(RECHNUNG.RechnungsName_2, "")
rpt.lblRechnung_Strasse.Text = If(RECHNUNG.RechnungsStraße, "")
rpt.lblRechnung_Ort.Text = If(RECHNUNG.RechnungsOrt, "")
rpt.lblRechnung_Land.Text = cProgramFunctions.getLandBez_fromISO1Land(RECHNUNG.RechnungsLandKz, "").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(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.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 RECHNUNG.isReverseChargeSumme Then
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."
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
'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
rpt.lblUeberschriftRG_GS.Text = "Anlage zur Sammelrechnung"
End If
If Not printOriginalRg Then 'sonst wird der originaldruck erzwungen
If RECHNUNG.DruckDatumZeit IsNot Nothing Then rpt.lblUeberschriftRG_GS.Text &= " - KOPIE"
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
rpt.lblSteuersatz.Text = steuerBez
rpt.lblSteuerbetrag.Text = If((sumSteuerpflichtig * steuerProz) <> 0, CDbl((sumSteuerpflichtig * steuerProz) * vorzeichen).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.lblZWSumme.Text = CDbl((sumSteuerpflichtig + sumSteuerfrei) * vorzeichen).ToString("N2", CultureInfo.CurrentCulture)
rpt.lblSumme.Text = CDbl((sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)) * vorzeichen).ToString("N2", CultureInfo.CurrentCulture)
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 vorschau Then
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 = addYeartoRgNr(FIRMA.Firma_ID, RECHNUNG.Buchungsjahr) & RECHNUNG.RechnungsNr
rpt.lblRgDatum.Text = CDate(RECHNUNG.RechnungsDatum).ToShortDateString
Else
MsgBox("Fehler bei der Vergabe der Rg-Nr.!")
Return False
End If
Else
MsgBox("Fehler: Kein Rechnugsempfänger gefunden!")
Return False
End If
Else
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
'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"
'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
'-------------------------------------------------------------------------------
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
'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 = "Rechnung Nr. " & 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 = "Rechnung Nr. " & RECHNUNG.RechnungsNr
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<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()
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(False)
'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(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 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 = 22
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) As String
getSignature = ""
firma = getFirmaNr(firma)
Dim imgsrc = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\").Replace("\", "/")
Select Case firma
Case 1 'VERAG
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "VERAG_AEO_MailSig.jpg""/>"
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, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email, "rechnungsversand@verag.ag") & " | www.verag.ag | FN 216714y</div>"
Case 7 'ATILLA
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Atilla.jpg""/>"
getSignature &= "<div style=""font-size:12px"">A 4975 Suben, Nr. 15 <br><b>T</b> +43 7711 2845-0 | <b>@</b> " & If(individuell, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email, "rechnungsversand@verag.ag") & " | www.verag.ag | FN 288916b</div>"
Case 11 'VERAG CS
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Verag-Customs-Service-GMBH-Logo_sig.png""/>"
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, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email, "versand@verag.com") & " | www.verag.ag | FN 406316z</div>"
Case 20 'Imex
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "IMEX-LOGO-AEO_sig.jpg""/>"
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, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email, "info@imex-group.at") & " | www.imex-group.at | FN 410356s</div>"
Case 21 'UNISPED
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Unisped_logo.jpg""/>"
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, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email, "office@unisped.at") & " | www.unisped.at | FN 375838d</div>"
Case 99 'GmbH
getSignature &= "<img width=""250"" height=""50"" src=""" & imgsrc & "Verag-Spedition-GMBH-Logo1.png""/>"
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, VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_email, "rechnungsversand@verag.ag") & " | www.verag.ag </div>"
End Select
getSignature &= "<br>"
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 Austrian 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 Ö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>"
getSignature &= "<br>"
getSignature &= "<span style=""font-size:9px"">We operate exclusively on the basis of the General Austrian 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 Abrechnugsdaten_AKTUALISIEREN(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, Optional RechnungsDatum As Object = Nothing) As Boolean
RECHNUNG.[DruckDatumZeit] = Now
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
' RECHNUNG.Buchungsjahr = If(Now.Month = 1, Now.Year - 1, Now.Year)
End If
RECHNUNG.Buchungsjahr = cRKSV.getGJ(RECHNUNG.[RechnungsDatum]) ' 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
Dim RG_NR As New VERAG_PROG_ALLGEMEIN.cRechnungsnummern(RECHNUNG.Firma_ID, RECHNUNG.Buchungsjahr)
' Prüfung, ob RgNr schon vergeben wurde --> dann +1, bis freie Nr. (sollte EÜGENTLICH nicht vorkommen)
RG_NR.CHECK_RGNR()
' Nächste Rechnungsnummer speichern.
RECHNUNG.[RechnungsNr] = RG_NR.LfdRechnungsNr
'RECHNUNG.[LfdRechnungsNr] = RG_NR.LfdRechnungsNr
RG_NR.INCREASE_RGNR()
'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
Shared Function getReverseChargeSumme(RechnungsNr As String, RechnungsDatum As Date) 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 INNER JOIN
dbo.[Länderverzeichnis für die Außenhandelsstatistik] ON dbo.Rechnungsausgang.RechnungsUstIdKz = dbo.[Länderverzeichnis für die Außenhandelsstatistik].LandKz
WHERE (dbo.Rechnungsausgang.RechnungsNr = '" & RechnungsNr & "') AND (dbo.Rechnungsausgang.RechnungsDatum = '" & RechnungsDatum.ToShortDateString & "') 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
' 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) As DataTable
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,Rechnungsausgang.AbfertigungsNr,Rechnungsausgang.SpeditionsbuchUnterNr
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 & "' ", "") & "" & 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
Dim dt = SQL.loadDgvBySql(sqlStr, "FMZOLL")
Return dt
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) 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 = DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "_" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & "_" & Firma_ID
End If
Dim dt = GET_SR_SQLDT(Firma_ID, SammelrechungArt, DatumBis, whereKdNr, SB, AvisoIds) '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
Dim Buchungsjahr = cRKSV.getGJ(Rechnungsdatum) 'IIf(Rechnungsdatum.Month = 1, Rechnungsdatum.Year - 1, Rechnungsdatum.Year)
Dim Aktuelle_RgNr As Integer = getNewRgNr(Firma_ID, Buchungsjahr) 'Nimmt die aktuelle RgNr und zählt eine Pos. hoch.
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) '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)
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()
found = True
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)
If path <> "" Then listPDFs.Add(path)
End If
lastAktuelle_RgNr = Aktuelle_RgNr
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
RG_NR.INCREASE_RGNR() 'für die nächste Rechnung
' Prüfung, ob RgNr schon vergeben wurde --> dann +1, bis freie Nr. (sollte EÜGENTLICH nicht vorkommen)
RG_NR.CHECK_RGNR()
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 = "") 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) ' 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 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
'-------------- 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
'-------------------------------------------------------------------------------
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 = 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")
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 dt As DataTable = SQL.loadDgvBySql(" 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 Rechnungsausgang.Status IN(3) And CONVERT(datetime,DruckDatumZeit ,104)='" & DruckdatumUhrzeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "'
ORDER BY Rechnungsausgang.FilialenNr, Rechnungsausgang.AbfertigungsNr", "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
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 rpt As New rptSammelRechnungAnlagenDruck
Dim dt As DataTable = 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")
rpt.DataSource = dt
Dim ROW As DataRow = dt.Rows(0)
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"
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 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 = Nothing
Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex
Case 21, 22, 23 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT
End Select
rpt.lblKundenNr.Text = If(ROW("RechnungsKundenNr") > 0, ROW("RechnungsKundenNr"), "")
rpt.lblRgNr.Text = addYeartoRgNr(FIRMA.Firma_ID, ROW("Buchungsjahr")) & ROW("RechnungsNr")
rpt.lblRgDatum.Text = ROW("RechnungsDatum")
'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.lblRechnung_Name1.Text = ROW("RechnungsName 1")
rpt.lblRechnung_Name2.Text = If(ROW("RechnungsName 2") IsNot DBNull.Value, ROW("RechnungsName 2"), "")
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"), "").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
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
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)
If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then
rpt.lblZwText.Visible = False
rpt.lblZWSumme.Visible = False
End If
If CDbl((sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz))) < 0 Then
rpt.Label9.Text = "Gutschriftsbetrag:"
rpt.Label16.Text = "Gutschrifts-Nr.:"
End If
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")
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
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 rpt As New rptSammelRechnungDruck
Dim ROW As DataRow = dt.Rows(0)
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"
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 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 = Nothing
Case 20 : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Picture1.Image = My.Resources.aeo_AT_imex
Case 21, 22, 23 : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Picture1.Image = My.Resources.unisped_aeo_AT
End Select
Dim strText = ""
If ROW("Lastschrift") Then
strText = "Der Rechnungsbetrag wurde durch Lastschrift eingezogen."
End If
rpt.txtVermerk.Text = strText
rpt.lblKundenNr.Text = If(ROW("RechnungsKundenNr") > 0, ROW("RechnungsKundenNr"), "")
rpt.lblRgNr.Text = addYeartoRgNr(FIRMA.Firma_ID, ROW("Buchungsjahr")) & ROW("RechnungsNr")
rpt.lblRgDatum.Text = ROW("RechnungsDatum")
'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.Label24.Visible = (rpt.lblLKWId.Text <> "")
rpt.lblRechnung_Name1.Text = ROW("RechnungsName 1")
rpt.lblRechnung_Name2.Text = If(ROW("RechnungsName 2") IsNot DBNull.Value, ROW("RechnungsName 2"), "")
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"), "").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(ROW("RechnungsNr"), CDate(ROW("RechnungsDatum"))) > 0 Then
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."
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)
If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then
rpt.lblZwText.Visible = False
rpt.lblZWSumme.Visible = False
End If
If CDbl((sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz))) < 0 Then
rpt.lblUeberschriftRG_GS.Text = "GUTSCHRIFT"
rpt.Label9.Text = "Gutschriftsbetrag:"
rpt.Label16.Text = "Gutschrifts-Nr.:"
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.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) 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(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
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 Status IN (" & Status & ") and CONVERT(datetime,DruckDatumZeit ,104)='" & DruckDatumZeit.ToString("dd.MM.yyyy HH:mm:ss.fff") & "' and RechnungsNr='" & RechnungsNr & "'
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