Files
SDL/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb
2021-01-19 20:27:19 +01:00

617 lines
32 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Reflection
Public Class cRechnungsausgang
Property RK_ID As Integer
Property FilialenNr As Integer
Property AbfertigungsNr As Integer
Property UnterNr As Integer = -1
Property Abfertigungsdatum As Date
Property RechnungsNr As Object = Nothing
Property RechnungsDatum As Object = Nothing
Property Sammelrechnung As Integer
Property BelegartenNr As Integer = 70 'Nothing
Property BelegartenKz As String = ""
Property BelegartenBez As String = ""
Property Vorzeichen As String = ""
Property BelegNr As Object = Nothing
Property AbsenderLandKz As Object = Nothing
Property AbsenderKundenNr As Object = Nothing
Property AbsenderName_1 As Object = Nothing '!!!!
Property AbsenderName_2 As Object = Nothing '!!!!
Property AbsenderStraße As Object = Nothing
Property AbsenderOrt As Object = Nothing
Property AbsenderOffertenNr As Object = Nothing
Property EmpfängerLandKz As Object = Nothing
Property EmpfängerKundenNr As Object = Nothing
Property EmpfängerName_1 As Object = Nothing '!!!!
Property EmpfängerName_2 As Object = Nothing '!!!!
Property EmpfängerStraße As Object = Nothing
Property EmpfängerOrt As Object = Nothing
Property EmpfängerOffertenNr As Object = Nothing
Property VermittlerLandKz As Object = Nothing
Property VermittlerKundenNr As Object = Nothing
Property VermittlerName_1 As Object = Nothing '!!!!
Property VermittlerName_2 As Object = Nothing '!!!!
Property VermittlerStraße As Object = Nothing
Property VermittlerOrt As Object = Nothing
Property VermittlerOffertenNr As Object = Nothing
Property Rechnung_an As Integer
Property KundenNrZentrale As Object = Nothing
Property RechnungsLandKz As Object = Nothing
Property RechnungsKundenNr As Integer
Property RechnungsName_1 As Object = Nothing '!!!!
Property RechnungsName_2 As Object = Nothing '!!!!
Property RechnungsStraße As Object = Nothing
Property RechnungsOrt As Object = Nothing
Property RechnungsUstIdKz As Object = Nothing
Property RechnungsUstIdNr As Object = Nothing
Property RechnungsUstIdGeprüft As Object = Nothing 'Date = CDate("01.01.2000")
Property Lastschrift As Boolean = False
Property Kunden_SVS As Boolean = False
Property Steuerschlüssel As Integer
Property Steuersatz_Proz As Double
Property LKW_Kennzeichen As Object = Nothing '!!!!
Property WährungsNr As Object = Nothing
Property Wert As Object = Nothing
Property Umrechnungskurs As Object = Nothing
Property Packstücke_und_Warenbezeichnung As Object = Nothing '!!!!
Property Vermerk As Object = Nothing
Property Anlage_1 As Object = Nothing '!!!!
Property Anlage_2 As Object = Nothing '!!!!
Property Anlage_3 As Object = Nothing '!!!!
Property Anlage_4 As Object = Nothing '!!!!
Property Anlage_5 As Object = Nothing '!!!!
Property Anlage_6 As Object = Nothing '!!!!
Property OffertenNr As Object = Nothing
Property Vorlageprovision_Proz As Object = Nothing '!!!!%
Property Kreditaufwendungen_Proz As Object = Nothing '!!!!%
Property Besonderheiten As Object = Nothing
Property Vorkasse As Boolean = False
Property Text As Object = Nothing
Property SteuerpflichtigerGesamtbetrag As Decimal = 0
Property SteuerfreierGesamtbetrag As Decimal = 0
Property Status As Object = 0
Property DruckDatumZeit As Object = Nothing
Property Abfertigungskosten As Object = Nothing
Property Vorkosten As Object = Nothing
Property Erlös As Object = Nothing
Property Buchungsjahr As Object = Nothing
Property Währungscode As Object = "EUR"
Property Sachbearbeiter As Object = Nothing
Property Trdin As Boolean = False
Property KartenNr As Object = Nothing
Property RefFilialenNr As Object = Nothing
Property RefAbfertigungsNr As Object = Nothing
Property RefUnterNr As Object = Nothing
Property Notiz As Object = Nothing
Property Zucker_MRN_Nr As Object = Nothing
Property Zucker_MRN_Datum As Object = Nothing
Property Zucker_Aufschub As Object = Nothing
Property ReErfZeitstempel As Object = Nothing
Property Nettozahlungsziel As Object = Nothing
Property Firma_ID As Integer = 0
Property SpeditionsbuchUnterNr As Object = Nothing
Property ErfassungsNr As Object = Nothing
'Property upsize_ts As Object = Nothing
Property AvisiererKundenNr As Object = Nothing
Property Avisierer As Object = Nothing
Property EMailRechnungstext As Object = Nothing
Property AvisoID As Object = Nothing
Property KdAuftragsNr As Object = Nothing
Property Handling As Object = Nothing
Property VorschauID As Object = Nothing
Property Grenze As Object = Nothing
' FROM [VERAG as object=nothing.[dbo as object=nothing.[Rechnungsausgang as object=nothing
Public POSITIONEN As New List(Of cRechnungsausgangPositionen)
Shared SQL As New SQL
Sub New()
End Sub
Sub New(RK_ID)
Me.RK_ID = RK_ID
LOAD() : LOAD_POSITIONEN()
End Sub
Sub New(FilialenNr, AbfertigungsNr)
Me.FilialenNr = FilialenNr
Me.AbfertigungsNr = AbfertigungsNr
LOAD(FilialenNr, AbfertigungsNr)
End Sub
Public Function getMaxRGUnterNr() As Integer
Return getMaxRGUnterNr(FilialenNr, AbfertigungsNr, SpeditionsbuchUnterNr)
End Function
Public Shared Function getMaxRGUnterNr(FilialenNr As Integer, AbfertigungsNr As Integer, SpeditionsbuchUnterNr As Integer) As Integer
' Dim Nr = SQL.getValueTxtBySql("Select isnull([UnterNr], -1) + 1 FROM [Rechnungsausgang] where [FilialenNr]='" & FilialenNr & "' And AbfertigungsNr='" & AbfertigungsNr & "' And SpeditionsbuchUnterNr='" & SpeditionsbuchUnterNr & "' ORDER BY [UnterNr] desc", "FMZOLL")
Dim Nr = SQL.getValueTxtBySql("Select TOP 1 isnull([UnterNr], -1) + 1 FROM [Rechnungsausgang] where [FilialenNr]='" & FilialenNr & "' And AbfertigungsNr='" & AbfertigungsNr & "' ORDER BY [UnterNr] desc", "FMZOLL")
Return If(IsNumeric(Nr), Nr, 0)
End Function
Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RK_ID", RK_ID, , True, True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", FilialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr", AbfertigungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UnterNr", UnterNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abfertigungsdatum", Abfertigungsdatum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsNr", RechnungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsDatum", RechnungsDatum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sammelrechnung", Sammelrechnung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BelegartenNr", BelegartenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BelegartenKz", BelegartenKz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BelegartenBez", BelegartenBez))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorzeichen", Vorzeichen))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BelegNr", BelegNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderLandKz", AbsenderLandKz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderKundenNr", AbsenderKundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderName 1", AbsenderName_1, "AbsenderName_1")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderName 2", AbsenderName_2, "AbsenderName_2")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderStraße", AbsenderStraße))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderOrt", AbsenderOrt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderOffertenNr", AbsenderOffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerLandKz", EmpfängerLandKz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerKundenNr", EmpfängerKundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerName 1", EmpfängerName_1, "EmpfängerName_1")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerName 2", EmpfängerName_2, "EmpfängerName_2")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerStraße", EmpfängerStraße))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerOrt", EmpfängerOrt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerOffertenNr", EmpfängerOffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerLandKz", VermittlerLandKz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerKundenNr", VermittlerKundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerName 1", VermittlerName_1, "VermittlerName_1")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerName 2", VermittlerName_2, "VermittlerName_2")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerStraße", VermittlerStraße))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerOrt", VermittlerOrt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerOffertenNr", VermittlerOffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Rechnung an", Rechnung_an, "Rechnung_an")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KundenNrZentrale", KundenNrZentrale))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsLandKz", RechnungsLandKz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsKundenNr", RechnungsKundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsName 1", RechnungsName_1, "RechnungsName_1")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsName 2", RechnungsName_2, "RechnungsName_2")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsStraße", RechnungsStraße))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsOrt", RechnungsOrt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsUstIdKz", RechnungsUstIdKz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsUstIdNr", RechnungsUstIdNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RechnungsUstIdGeprüft", RechnungsUstIdGeprüft))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Lastschrift", Lastschrift))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kunden-SVS", Kunden_SVS, "Kunden_SVS")) '!!!!-
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerschlüssel", Steuerschlüssel))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuersatz %", Steuersatz_Proz, "Steuersatz_Proz")) '!!!! %
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LKW Kennzeichen", LKW_Kennzeichen, "LKW_Kennzeichen")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("WährungsNr", WährungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Wert", Wert))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Umrechnungskurs", Umrechnungskurs))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Packstücke und Warenbezeichnung", Packstücke_und_Warenbezeichnung, "Packstücke_und_Warenbezeichnung")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vermerk", Vermerk))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anlage 1", Anlage_1, "Anlage_1")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anlage 2", Anlage_2, "Anlage_2")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anlage 3", Anlage_3, "Anlage_3")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anlage 4", Anlage_4, "Anlage_4")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anlage 5", Anlage_5, "Anlage_5")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anlage 6", Anlage_6, "Anlage_6")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OffertenNr", OffertenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorlageprovision %", Vorlageprovision_Proz, "Vorlageprovision_Proz")) '!!!!%
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kreditaufwendungen %", Kreditaufwendungen_Proz, "Kreditaufwendungen_Proz")) '!!!!%
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Besonderheiten", Besonderheiten))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorkasse", Vorkasse))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Text", Text))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SteuerpflichtigerGesamtbetrag", SteuerpflichtigerGesamtbetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SteuerfreierGesamtbetrag", SteuerfreierGesamtbetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Status", Status))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("DruckDatumZeit", DruckDatumZeit))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abfertigungskosten", Abfertigungskosten))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vorkosten", Vorkosten))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Erlös", Erlös))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungsjahr", Buchungsjahr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Währungscode", Währungscode))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Trdin", Trdin))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KartenNr", KartenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RefFilialenNr", RefFilialenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RefAbfertigungsNr", RefAbfertigungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RefUnterNr", RefUnterNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Notiz", Notiz))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zucker_MRN_Nr", Zucker_MRN_Nr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zucker_MRN_Datum", Zucker_MRN_Datum))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Zucker_Aufschub", Zucker_Aufschub))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ReErfZeitstempel", ReErfZeitstempel))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Nettozahlungsziel", Nettozahlungsziel))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_ID", Firma_ID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SpeditionsbuchUnterNr", SpeditionsbuchUnterNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ErfassungsNr", ErfassungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AvisiererKundenNr", AvisiererKundenNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Avisierer", Avisierer))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EMailRechnungstext", EMailRechnungstext))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AvisoID", AvisoID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KdAuftragsNr", KdAuftragsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Handling", Handling))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VorschauID", VorschauID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Grenze", Grenze))
Return list
End Function
Public Sub LOAD(FilialeNr As Integer, AbfertigungsNr As Integer, Optional loadPos As Boolean = True)
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM Rechnungsausgang WHERE FilialeNr=@FilialeNr AND AbfertigungsNr=@AbfertigungsNr ", conn)
cmd.Parameters.AddWithValue("@FilialeNr", FilialeNr)
cmd.Parameters.AddWithValue("@AbfertigungsNr", AbfertigungsNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each l In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(l.Scalarvariable)
If dr.Item(l.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(l.Text))
End If
Next
If loadPos Then LOAD_POSITIONEN()
End If
dr.Close()
End Using
doVorzeichen()
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Public Shared Function LOADByFilialeAbfNrsssasdssssssssss(FilialeNr As Integer, AbfertigungsNr As Integer) As cVorauskasse
Try
Dim VK As New cVorauskasse
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM Rechnungsausgang WHERE vk_AbfertigungsNr=@vk_AbfertigungsNr AND vk_FilialeNr=@vk_FilialeNr ", conn)
cmd.Parameters.AddWithValue("@vk_FilialeNr", FilialeNr)
cmd.Parameters.AddWithValue("@vk_AbfertigungsNr", AbfertigungsNr)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each l In VK.getParameterList()
Dim propInfo As PropertyInfo = VK.GetType.GetProperty(l.Scalarvariable)
If dr.Item(l.Text) Is DBNull.Value Then
propInfo.SetValue(VK, Nothing)
Else
propInfo.SetValue(VK, dr.Item(l.Text))
End If
Next
dr.Close()
Return VK
End If
dr.Close()
End Using
'VOREZEICHENCNENCNECNENCN!!!
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return Nothing
End Function
Public Function SAVE(Optional saveAll As Boolean = True) As Boolean
doVorzeichen()
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM Rechnungsausgang WHERE RK_ID=@RK_ID) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
RK_ID = SQL.doSQLVarListID(RK_ID, sqlstr, "FMZOLL", , list)
If RK_ID > 0 Then
doVorzeichenPOS()
If saveAll Then SAVE_POSITIONEN(RK_ID) ' positionen speicehrn
doVorzeichenPOS()
End If
doVorzeichen()
Return RK_ID > 0
End Function
Public Function SAVE_DruckDatumZeit() As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " UPDATE Rechnungsausgang SET DruckDatumZeit=@DruckDatumZeit WHERE RK_ID=@RK_ID "
Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list)
End Function
Public Sub doVorzeichen()
Dim vz = If(Vorzeichen = "-", -1, 1)
Me.SteuerfreierGesamtbetrag *= vz
Me.SteuerpflichtigerGesamtbetrag *= vz
Me.Abfertigungskosten *= vz
End Sub
Public Sub doVorzeichenPOS()
Dim vz = If(Vorzeichen = "-", -1, 1)
For Each p In POSITIONEN
p.doVorzeichen(Vorzeichen)
Next
End Sub
Public Function CHECK_Validation(ByRef errMsg As String) As Boolean
If Firma_ID <= 0 Then errMsg = "ERROR: Firma auswählen!" : Return False
If Rechnung_an = 0 OrElse CStr(Rechnung_an) = "" Then errMsg = "ERROR: Rechnungsempfänger auswählen!" : Return False
If SpeditionsbuchUnterNr Is Nothing Then errMsg = "ERROR: Speditionsbuch-UnterNr auswählen!" : Return False
' If Steuerschlüssel Then errMsg = "ERROR: Steuerschlüssel muss angegeben werden!" : Return False
Return True
End Function
Public Function SAVE_POSITIONEN(RK_ID) As Boolean
If DELETE_POSITIONEN() Then ' zuerst Einträge löschen...
For Each p In POSITIONEN
If Not p.INSERT(RK_ID) Then Return False ' ... dann insert
Next
Else : Return False
End If
Return True
End Function
Public Sub LOAD()
Try
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM Rechnungsausgang WHERE RK_ID=@RK_ID ", conn)
cmd.Parameters.AddWithValue("@RK_ID", RK_ID)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each l In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(l.Scalarvariable)
If dr.Item(l.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(l.Text))
End If
Next
End If
dr.Close()
End Using
doVorzeichen()
End Using
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
Public Function getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [Rechnungsausgang] SET " & str & " WHERE RK_ID=@RK_ID ")
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return ""
End Function
Public Function getInsertCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO Rechnungsausgang (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return ""
End Function
Public Function SET_DruckdatumUhrzeit() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim sqlstr = " UPDATE [Rechnungsausgang] SET DruckDatumZeit=GETDATE WHERE RK_ID=" & Me.RK_ID
Return SQL.doSQL(sqlstr, "FMZOLL")
End Function
Public Function isReverseChargeSumme() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
'Wenn selbes Land --> Kein Reversecharge
Dim FIRMA As New VERAG_PROG_ALLGEMEIN.cFirmen(Firma_ID)
' MsgBox(RechnungsLandKz & " - " & FIRMA.Firma_LandKz)
If RechnungsLandKz = FIRMA.Firma_LandKz Then
Return False
End If
Dim sqlstr = " SELECT SUM(POS.SteuerfreierBetrag) AS ReverseChargeSumme "
sqlstr &= " FROM Rechnungsausgang as RA INNER JOIN RechnungsausgangPositionen as POS ON RA.RK_ID = POS.RK_ID INNER JOIN Leistungen ON POS.LeistungsNr = Leistungen.LeistungsNr INNER JOIN [Länderverzeichnis für die Außenhandelsstatistik] AS LD ON RA.RechnungsUstIdKz = LD.LandKz"
sqlstr &= " WHERE RA.rk_id='" & Me.RK_ID & "' AND LD.ReverseCharge = 1 AND Leistungen.ReverseCharge = 1"
'MsgBox(SQL.getValueTxtBySql(sqlstr, "FMZOLL",,, 0))
If Not CBool(SQL.DLookup("isnull([MitgliedslandEU],0)", "Währungstabelle", "LandKz='" & If(RechnungsLandKz, "") & "'", "FMZOLL", 0)) Then
Return False
End If
Return If(SQL.getValueTxtBySql(sqlstr, "FMZOLL",,, 0) = 0, False, True)
End Function
Public Function setSPEDBUCH_FAKTURIERT(Optional wert As Boolean = True) As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim sqlstr = " UPDATE Speditionsbuch SET Fakturiert='" & If(wert, 1, 0) & "' WHERE FilialenNr = '" & Me.FilialenNr & "' AND AbfertigungsNr = '" & Me.[AbfertigungsNr] & "' AND UnterNr = '" & Me.[SpeditionsbuchUnterNr] & "'"
Return SQL.doSQL(sqlstr, "FMZOLL")
End Function
Public Function DELETE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim sqlstr = " DELETE FROM [Rechnungsausgang] WHERE RK_ID=" & Me.RK_ID
Return SQL.doSQL(sqlstr, "FMZOLL")
End Function
Public Function DELETE_POSITIONEN() As Boolean 'obj As Object, tablename As String, where As String) As Boolean
Dim sqlstr = " DELETE FROM [RechnungsausgangPositionen] WHERE RK_ID=" & Me.RK_ID
Return SQL.doSQL(sqlstr, "FMZOLL")
End Function
Public Sub LOAD_POSITIONEN()
Try
POSITIONEN.Clear()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("Select * FROM RechnungsausgangPositionen WHERE RK_ID=@RK_ID ", conn)
cmd.Parameters.AddWithValue("@RK_ID", Me.RK_ID)
Dim dr = cmd.ExecuteReader()
While dr.Read
Dim l As New cRechnungsausgangPositionen
For Each i In l.getParameterList()
Dim propInfo As PropertyInfo = l.GetType.GetProperty(i.Scalarvariable)
If dr.Item(i.Text) Is DBNull.Value Then
propInfo.SetValue(l, Nothing)
Else
propInfo.SetValue(l, dr.Item(i.Text))
End If
Next
POSITIONEN.Add(l)
End While
dr.Close()
End Using
End Using
doVorzeichenPOS()
Catch ex As Exception
MsgBox("Fehler In der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
End Sub
End Class
Public Class cRechnungsausgangPositionen
Property RK_ID As Integer
Property LeistungsNr As Integer
Property Steuerpflichtig As Boolean
Property LeistungsBez As String = Nothing
Property IndexZkteing As Integer = 0
Property BerechnungsartNr As Integer = 1
Property Preis As Object = Nothing
Property Anzahl As Object = Nothing
Property SteuerpflichtigerBetrag As Decimal = 0
Property SteuerfreierBetrag As Decimal = 0
Property AufschubkontoNr As Object = Nothing
Property Aufschubfälligkeit As Object = Nothing
Property Prüfsumme_berechnen As Boolean '!!!!
Property DateiNameAufschub As Object = Nothing
Property Preisbindung As Boolean '!!!!
Property Belegdaten As Object = Nothing
Property Fremdwährung As Object = Nothing
Property BGebLeistungsNr As Object = Nothing
Property BGebProzent As Object = Nothing
Property BGebBgl As Object = Nothing
Property BGebMinBetrag As Object = Nothing
Property RePosZeitstempel As Object = Nothing
'FROM [VERAG].[dbo].[RechnungsausgangPositionen]
Dim SQL As New SQL
Sub New()
End Sub
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RK_ID", RK_ID))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsNr", LeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Steuerpflichtig", Steuerpflichtig))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez", LeistungsBez))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("IndexZkteing", IndexZkteing))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartNr", BerechnungsartNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preis", Preis))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anzahl", Anzahl))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SteuerpflichtigerBetrag", SteuerpflichtigerBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SteuerfreierBetrag", SteuerfreierBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AufschubkontoNr", AufschubkontoNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Aufschubfälligkeit", Aufschubfälligkeit))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Prüfsumme berechnen", Prüfsumme_berechnen, "Prüfsumme_berechnen")) '!!!!
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("DateiNameAufschub", DateiNameAufschub))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preisbindung", Preisbindung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegdaten", Belegdaten))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fremdwährung", Fremdwährung))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebLeistungsNr", BGebLeistungsNr))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebProzent", BGebProzent))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebBgl", BGebBgl))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebMinBetrag", BGebMinBetrag))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RePosZeitstempel", RePosZeitstempel))
'list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("upsize_ts", XXXXXXXXXXXXX))
Return list
End Function
Public Function INSERT(RK_ID) As Boolean
Me.RK_ID = RK_ID
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Return SQL.doSQLVarList(getInsertCmd, "FMZOLL", , list)
End Function
Public Sub doVorzeichen(Vorzeichen)
Dim vz = If(Vorzeichen = "-", -1, 1)
Me.Preis *= vz
Me.SteuerfreierBetrag *= vz
Me.SteuerpflichtigerBetrag *= vz
End Sub
Public Function getInsertCmd() As String
Try
'Me.Eingegeben_am = Now
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO RechnungsausgangPositionen (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace)
End Try
Return ""
End Function
End Class