2113 lines
132 KiB
VB.net
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
|