Files
SDL/SDL/kassenbuch/frmNacherfassungLeihgeld.vb

1038 lines
49 KiB
VB.net

Imports GrapeCity.ActiveReports
Imports VERAG_PROG_ALLGEMEIN
Public Class frmNacherfassungLeihgeld
Dim cOptionenDAL As New cOptionenDAL
Public FMZollPersID As Integer = -1
Dim PERSONAL As cPersonal
Dim PERSONAL_LG As cPersonal
Public BELEG As EABeleg
Public KASSE As cRKSV_Kasse
Public AvisoID = Nothing
Public Event LOADED()
Dim formLoaded = False
' Dim allowPrint = False
Dim newEntry = True
Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal)
Me.PERSONAL = PERSONAL
Me.PERSONAL_LG = PERSONAL_LG
InitializeComponent()
End Sub
Public Sub New(PERSONAL As cPersonal, PERSONAL_LG As cPersonal, Mandant As String, Niederlassung As String, Benutzer As Integer, BelegNr As Integer, BelegDat As Date)
InitializeComponent()
Me.PERSONAL = PERSONAL
Me.PERSONAL_LG = PERSONAL_LG
Me.BELEG = New EABeleg("LOAD", Mandant, Niederlassung, Benutzer, BelegNr, BelegDat)
End Sub
Dim SQL As New SQL
Dim VERAG_SQL As New VERAG_PROG_ALLGEMEIN.SQL
Private Sub frmNacherfassungLeihgeld_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txtDatum.Text = Now.ToShortDateString
cProgramFunctions.initDrucker(cboPrinter)
cProgramFunctions.initBONDrucker(cboPrinterProvisionBeleg, "EPSON")
lblGesperrt.Visible = False
cboProvisionStaffelArt.fillWithSQL("SELECT [PreislistenNr],[PreislistenBez] FROM [VERAG].[dbo].[tblPreislisten] WHERE Art='E' ORDER BY Preislistenbez", False, "FMZOLL", False)
'cbxProvision.Checked = True
If BELEG Is Nothing Then
BELEG = New EABeleg(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID)
BELEG.Beleg_TYP = "L"
BELEG.Belegart = "2" 'AUSGANG
Else
If IsNumeric(BELEG.rksv_id) Then KASSE = New cRKSV_Kasse(BELEG.rksv_id)
' If BELEG.gebucht Then
btnPrint.Text = "Beleg-Kopie" & vbNewLine & "drucken"
init()
cboFiliale.Enabled = False
txtAbfertigungsnummer.Enabled = False
' txtUnterNr.Enabled = False
txtAuftraggeber.Enabled = False
MyTextBoxLKWKz.Enabled = False
txtFahrer.Enabled = False
txtPassnummer.Enabled = False
txtBarzahlungsbetrag.Enabled = False
' cboSachbearbeiter.Enabled = False
' txtBemerkung.Enabled = False
Panel1.Enabled = False
txtKdAuftragsnummer.Enabled = False
'End If
newEntry = False
End If
cboProvisionStaffelArt.changeItem("5")
' Dim filialen = "4806"
Dim stammfiliale = "4803"
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX"
cboProvisionStaffelArt.changeItem("14")
stammfiliale = "5501"
cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr IN (5501) ORDER BY FilialenNr ", False, "FMZOLL", True)
Case "ATILLA"
stammfiliale = "4806"
cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr IN (4806) ORDER BY FilialenNr ", False, "FMZOLL", True)
cbxOP_sofort_buchen.Checked = PERSONAL_LG.automFIBUBuchung
Case Else
cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr IN (4803,5103,5003,5303) ORDER BY FilialenNr ", False, "FMZOLL", True)
Select Case PERSONAL.Niederlassung
Case "SUA" : stammfiliale = "4801" ' "4801,4803,4806,5103,5003,5303" : stammfiliale = 4801
Case "SUB" : stammfiliale = "4803" '"4801,4803,4806,5103,5003,5303" : stammfiliale = 4806
Case "WAI" : stammfiliale = "5103" '"4801,4803,4806,5103,5003,5303" : stammfiliale = 4806
Case "NKD" : stammfiliale = "5303" '"4801,4803,4806,5103,5003,5303" : stammfiliale = 4806
Case "SBG" : stammfiliale = "5003" '"4801,4803,4806,5103,5003,5303" : stammfiliale = 4806
Case "NEU" : stammfiliale = "4819" '"4801,4803,4806,5103,5003,5303" : stammfiliale = 4806
' Case Else : filialen = "4806" '"4801,4803,4806,5103,5003,5303" : stammfiliale = 4806
End Select
End Select
'If AvisoId <= 0 Then MsgBox("Fehler") : Me.Close() : Exit Sub
'cboFiliale.fillWithSQL("SELECT FilialenNr, cast(FilialenNr as varchar(4)) + ' ' + Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr IN (" & filialen & ") ORDER BY FilialenNr ", False, "FMZOLL", True)
' cboSachbearbeiter.fillWithSQL("SELECT ID,cast(ID as nvarchar(3)) +' ' + Name as Name FROM Personal WHERE [Status]<>'L' ORDER BY Name ", False, "FMZOLL", True)
' If cboSachbearbeiter.Text = "" Then
' If FMZollPersID > 0 Then cboSachbearbeiter._value = FMZollPersID
' End If
cboFiliale.changeItem(stammfiliale)
'If stammfiliale <> "" Then
' cboFiliale.changeItem(CStr(stammfiliale))
' End If
txtAuftraggeber.initKdBox(Me, txtAuftraggeberKdNr)
kdFrachtführer.initKdBox(Me, ksFrachtführerKdNr)
AddHandler txtAuftraggeber.PropertyChanged, Sub()
Label11.ForeColor = Color.Black
Label11.Font = New Font(Me.Font, FontStyle.Regular)
If newEntry Then
If txtAuftraggeber.KdData_KUNDE_ERW IsNot Nothing Then
' If txtAuftraggeber.KdData_KUNDE_ERW.kde_VerwendetAuftragsNr IsNot Nothing Then
If txtAuftraggeber.KdData_KUNDE_ERW.kde_VerwendetAuftragsNr Then
Label11.ForeColor = Color.Red
Label11.Font = New Font(Me.Font, FontStyle.Bold)
' End If
End If
If txtAuftraggeber.KdData_KUNDE_ERW.kde_VerwendetAuftragsNr Then
If txtKdAuftragsnummer.Text = "" Then txtKdAuftragsnummer.Text = If(txtAuftraggeber.KdData_KUNDE_ERW.kde_FixeAuftragsNr, "")
End If
If txtAuftraggeber.KdData_KUNDE_ERW.kde_Leihgeld_Provision IsNot Nothing Then
cbxProvision.Checked = True
cboProvisionStaffelArt.changeItem(If(txtAuftraggeber.KdData_KUNDE_ERW.kde_Leihgeld_ProvisionPreisstaffel, ""))
cboProvisionStaffel.changeItem(If(txtAuftraggeber.KdData_KUNDE_ERW.kde_Leihgeld_Provision, ""))
If txtAuftraggeber.KdData_KUNDE_ERW.kde_Leihgeld_ProvisionAuftraggeber IsNot Nothing Then
txtAuftrProvision._value = If(txtAuftraggeber.KdData_KUNDE_ERW.kde_Leihgeld_ProvisionAuftraggeber, "")
cbxProvisionAuftraggeber.Checked = True
End If
End If
End If
End If
End Sub
End Sub
Sub init()
If BELEG.FilialenNr > 0 Then cboFiliale.Text = BELEG.FilialenNr
If BELEG.AbfertigungsNr > 0 Then txtAbfertigungsnummer.Text = BELEG.AbfertigungsNr
'txtUnterNr.Text =
txtDatum.Text = BELEG.BelegDat.ToShortDateString
btnNeueAbfertigungNrVergeben.Visible = False
MyTextBoxLKWKz.Text = BELEG.LKW_Kennzeichen
txtFahrer.Text = BELEG.Fahrer
txtPassnummer.Text = BELEG.Passnummer
Dim sum As Double = 0
For Each p In BELEG.POS : sum += p.Betrag : Next
txtBarzahlungsbetrag.Text = sum
txtKdAuftragsnummer.Text = If(BELEG.Auftraggeber_KdAuftragsnummer, "")
txtAuftrProvision._value = If(BELEG.Auftraggeber_Provision, "")
' cboSachbearbeiter.changeItem(BELEG.Benutzer)
'txtBemerkung.Text = BELEG
If BELEG.FrachtführerKundenNr = BELEG.KundenNr Then cbxFrachter.Checked = True
txtAuftraggeber.Text = BELEG.Ordnungsbegriff
If BELEG.KundenNr > 0 Then txtAuftraggeber.KdNr = BELEG.KundenNr
kdFrachtführer.Text = BELEG.Frachtführer
If BELEG.FrachtführerKundenNr > 0 Then kdFrachtführer.KdNr = BELEG.FrachtführerKundenNr
End Sub
Function validValues() As Boolean
If Not IsNumeric(cboFiliale._value) Then MsgBox("Bitte die Filiale angeben!") : Return False
If cboFiliale._value <= 0 Then MsgBox("Bitte die Filiale angeben!") : Return False
If Not IsNumeric(txtAbfertigungsnummer.Text) Then MsgBox("Bitte die Abfertigungsnummer angeben!") : Return False
If txtAbfertigungsnummer.Text <= 0 Then MsgBox("Bitte die Abfertigungsnummer angeben!") : Return False
If txtAuftraggeber.Text = "" Then MsgBox("Bitte den Auftraggeber angeben!") : Return False
If MyTextBoxLKWKz.Text = "" Then MsgBox("Bitte das LKW-Kennzeichen angeben!") : Return False
If txtBarzahlungsbetrag.Text = "" Then MsgBox("Bitte den Betrag angeben!") : Return False
If cbxProvision.Checked Then
If Not IsNumeric(cboProvisionStaffelArt._value) Then MsgBox("Provision: Preisliste auswählen!") : Return False
If Not IsNumeric(cboProvisionStaffel._value) Then MsgBox("Provision: Leistung auswählen!") : Return False
If Not IsNumeric(cboProvisionBetrag._value) Then MsgBox("Provision: Betrag auswählen!") : Return False
If IsNumeric(cboProvisionBetrag._value) AndAlso cboProvisionBetrag._value <= 0 Then MsgBox("Bitte Provisionsbetrag angeben!") : Return False
If IsNumeric(cboProvisionBetrag._value) AndAlso cboProvisionBetrag._value < 10 Then Return (vbYes = MsgBox("Provision: Betrag ist kleiner als 10€. Möchten Sie fortfahren?", vbYesNoCancel))
End If
' If cboSachbearbeiter.Text = "" Then MsgBox("Bitte den Sachbearbeiter angeben!") : Return False
Return True
End Function
Sub datatoBeleg()
BELEG.BelegDat = Now
BELEG.KundenNr = IIf(txtAuftraggeber.KdNr > 0, txtAuftraggeber.KdNr, Nothing)
BELEG.Ordnungsbegriff = (txtAuftraggeber.Text).Trim
BELEG.LKW_Id = AvisoID
BELEG.LKW_Beleg = False
If BELEG.Ordnungsbegriff.Length > 40 Then
BELEG.Name1 = BELEG.Ordnungsbegriff.Substring(0, 40)
Else
BELEG.Name1 = BELEG.Ordnungsbegriff
End If
BELEG.Name2 = ""
If txtAuftraggeber.KdNr > 0 AndAlso txtAuftraggeber.KdData_ADRESSEN IsNot Nothing Then ' Überschreiben wenn vorhanden
Try
BELEG.Name1 = IIf(txtAuftraggeber.KdData_ADRESSEN.Name_1 IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.Name_1, BELEG.Ordnungsbegriff)
BELEG.Name2 = IIf(txtAuftraggeber.KdData_ADRESSEN.Name_2 IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.Name_2, "")
BELEG.Straße = IIf(txtAuftraggeber.KdData_ADRESSEN.Straße IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.Straße, "")
BELEG.LandKz = IIf(txtAuftraggeber.KdData_ADRESSEN.LandKz IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.LandKz, "")
BELEG.Ort = IIf(txtAuftraggeber.KdData_ADRESSEN.Ort IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.Ort, "")
BELEG.PLZ = IIf(txtAuftraggeber.KdData_ADRESSEN.PLZ IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.PLZ, "")
BELEG.UstIdKz = IIf(txtAuftraggeber.KdData_ADRESSEN.UstIdKz IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.UstIdKz, "")
BELEG.UstIdNr = IIf(txtAuftraggeber.KdData_ADRESSEN.UstIdNr IsNot Nothing, txtAuftraggeber.KdData_ADRESSEN.UstIdNr, "")
Catch ex As Exception
End Try
End If
BELEG.LKW_Kennzeichen = MyTextBoxLKWKz.Text.Trim.ToUpper
BELEG.Fahrer = txtFahrer.Text
BELEG.Passnummer = txtPassnummer.Text
BELEG.FrachtführerKundenNr = IIf(kdFrachtführer.KdNr > 0, kdFrachtführer.KdNr, Nothing)
BELEG.Frachtführer = (kdFrachtführer.Text).Trim
BELEG.Auftraggeber_KdAuftragsnummer = If(txtKdAuftragsnummer.Text <> "", txtKdAuftragsnummer.Text, Nothing)
BELEG.Auftraggeber_Provision = If(txtAuftrProvision._value <> "", CDbl(txtAuftrProvision._value), Nothing)
BELEG.Steuerschlüssel = 0
BELEG.SgutKompl = Nothing
BELEG.FilialenNr = IIf(IsNumeric(cboFiliale._value), cboFiliale._value, -1)
BELEG.AbfertigungsNr = IIf(IsNumeric(txtAbfertigungsnummer.Text), txtAbfertigungsnummer.Text, -1)
If PERSONAL.isLeihgeldkasse AndAlso PERSONAL_LG IsNot Nothing Then
BELEG.Benutzer_LG = PERSONAL_LG.ID
End If
End Sub
Public Sub AddPOS()
' Dim anz = IIf(IsNumeric(txtAnzahl.Text), txtAnzahl.Text, 1)
Dim p As EABelegPositionen
' cboSteuerschlüssel.changeItem(2512)
p = New EABelegPositionen
p.Mandant = PERSONAL.Mandant
p.Niederlassung = PERSONAL.Niederlassung
p.Benutzer = PERSONAL.ID
'p.Benutzer = BenutzerNr
p.BelegDat = BELEG.BelegDat
p.BelegNr = BELEG.BelegNr
p.PreislistenNr = 7
p.PreislistenPos = 1
p.LeistungsNr = 110
p.LeistungsBez = "AUSZAHLUNG"
p.Leistungsbeschreibung = "Leihgeld Auszahlungsbeleg mit Pos.Nr."
p.Preis = IIf(IsNumeric(txtBarzahlungsbetrag._value), txtBarzahlungsbetrag._value, 0)
p.Abfertigungsart = 9
p.Anzahl = 1
p.Betrag = p.Anzahl * p.Preis
BELEG.POS.Add(p)
' cntr.BackColor = Color.Yellow
End Sub
Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
Try
If BELEG.gebucht Or BELEG.gebuchtStorno Then
If BELEG.rksv_id > 0 Then KASSE.LOAD(BELEG.rksv_id)
cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG")
If cboPrintAktendeckel.Checked Then printLGAktendeckel("PRINT")
Else
If cRKSV.isforbiddenDate Then
MsgBox("Die Kasse wird am Monatsende abgeschlossen. Es dürfen keine weiteren Belege erstellt werden. Bitte veruchen Sie den Vorgang nach Mitternacht erneut.")
Exit Sub
End If
If btnNeueAbfertigungNrVergeben.Visible Then btnNeueAbfertigungNrVergeben.PerformClick()
Me.Cursor = Cursors.WaitCursor
If PERSONAL.cRKSV_KasseID <= 0 Then MsgBox("Keine Stamm-Kasse gefunden!") : Me.Cursor = Cursors.Default : Exit Sub
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
KASSE = New cRKSV_Kasse(6)
Else
KASSE = New cRKSV_Kasse(PERSONAL.cRKSV_KasseID)
'Laden der Kasse anhand der Auswahlbox
End If
If Not validValues() Then Me.Cursor = Cursors.Default : Exit Sub
datatoBeleg() 'Daten werden in "BELEG" geldaen
If BELEG.KundenNr > 0 AndAlso cbxOP_sofort_buchen.Checked Then
Dim KundenKontoArchiv As String = (New VERAG_PROG_ALLGEMEIN.SQL).getValueTxtBySql("SELECT isnull(c_archiv,'A') FROM [FIBU2].dbo.fibu_konto WHERE i_konto = " & BELEG.KundenNr & " AND i_firm_refid = " & IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "9", "7"), "FIBU") 'ATILLA MANDANT!'
Select Case KundenKontoArchiv
Case "I" : MsgBox("ACHTUNG, der Debitor mit der Nr: " & BELEG.KundenNr & " ist in der Syska-FIBU inaktiv, bitte andere KundenNr verwenden (799999)!") : Exit Sub 'inaktiv
Case "" : MsgBox("ACHTUNG, der Debitor mit der Nr: " & BELEG.KundenNr & " ist in der Syska-FIBU nicht vorhanden, bitte andere KundenNr verwenden (799999)!") : Exit Sub 'nicht vorhanden
Case Else 'aktiv -> OK
End Select
End If
BELEG.POS.Clear()
AddPOS()
' If Not allowPrint Then Me.Cursor = Cursors.Default : Exit Sub
If Not vbYes = MsgBox("Beim Druckvorgang werden die Beleg-Daten ins Kassenbuch eingetragen. Danach sind keine Änderungen mehr möglich." & vbNewLine & vbNewLine & "Soll der Vorgang gestartet werden?", vbYesNoCancel) Then Me.Cursor = Cursors.Default : Exit Sub
Dim summeNETTO As Double = 0
For Each p In BELEG.POS : summeNETTO += p.Betrag : Next
Dim summeBRUTTO = summeNETTO
Dim steuersatz As Double = SQL.getValueTxtBySql("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & BELEG.Steuerschlüssel & "' ", "FMZOLL")
If IsNumeric(steuersatz) Then summeBRUTTO += (summeNETTO * steuersatz)
Dim oldBelegZaehler = KASSE.rksv_BelegIdZaehler
Dim TESTBUCHUNG = False
Dim RKSV_Beleg_Id = KASSE.INCREASE_BELEG_UMSATZ(If(TESTBUCHUNG, 0, summeBRUTTO))
Dim JournalNr = 0
If Not cRKSV.insertKB(PERSONAL, BELEG, KASSE.rksv_id, RKSV_Beleg_Id, (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv), JournalNr, KASSE.rksv_firma, -1,, cbxOP_sofort_buchen.Checked) Then
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
If RKSV_Beleg_Id < 0 Then
BELEG = cRKSV.STORNO(BELEG, "Programmfehler bei der Erstellung der RKSV-Beleg-Id.", KASSE.rksv_firma)
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
' QR_Image = Nothing
Dim QR_CodeString As String = ""
Dim LastJWS As String = ""
If KASSE.rksv_aktiv Then ' WENN für die Kasse die RKSV gilt
Dim answer = ""
If Not cRKSV.insertRKSV(KASSE, KASSE.rksv_CompanyGUID, KASSE.rksv_Umsatzzaehler, BELEG.BelegDat, BELEG.Steuerschlüssel, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
End If
If KASSE.rksvDE_aktiv Then ' WENN für die Kasse die RKSV gilt
Dim answer = ""
If Not cRKSV_DE.insertRKSV_DE(PERSONAL, BELEG, KASSE, RKSV_Beleg_Id, summeBRUTTO, QR_CodeString, LastJWS, TESTBUCHUNG, answer) Then 'Digitale Signierung und Erfassung in die RKSV-Datenbank mittels ITG-Service
If Not TESTBUCHUNG Then
KASSE.DECREASE_BELEG_UMSATZ(oldBelegZaehler, summeBRUTTO * -1)
cRKSV.DELETE(BELEG, KASSE.rksv_firma)
End If
MsgBox("Programmfehler bei der digitalen Signatur." & vbNewLine & vbNewLine & answer, MsgBoxStyle.Critical)
' Me.Cursor = Cursors.Default
'BELEG = cRKSV.STORNO(BELEG, "Programmfehler")
' MsgBox("Programmfehler bei der digitalen Signatur.")
Me.Cursor = Cursors.Default : Me.Close() : Exit Sub
End If
KASSE.SET_LAST_QR_JWS(LastJWS, QR_CodeString)
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
If KASSE.rksv_KassaGuid = "KASSE_01" Then
BELEG.rksv_jws = Nothing
BELEG.rksv_qr = Nothing
End If
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
End If
'RKSV-Daten beim Beleg ergänzen:
BELEG.rksv_jws = LastJWS
BELEG.rksv_qr = QR_CodeString
BELEG.rksv_BelegId = RKSV_Beleg_Id
BELEG.rksv_id = KASSE.rksv_id
BELEG.rksv_umsatz = summeBRUTTO
BELEG.rksv_aktiv = (KASSE.rksv_aktiv Or KASSE.rksvDE_aktiv)
BELEG.SAVE()
'Zuerst, damit Provisionsbetrag auf Aktendeckel gedruckt wird...
Dim barbetrag As Double = 0
Dim BelegNrProvision = 0
If cbxProvision.Checked Then
printProvision(barbetrag, BelegNrProvision)
End If
'printBeleg(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString) 'Beleg drucken
cRKSV.printKundenBelegLG(BELEG, KASSE, PERSONAL, cboPrinter.SelectedItem.ToString, "LG") 'Beleg drucken
If cboPrintAktendeckel.Checked Then printLGAktendeckel("PRINT", barbetrag, BelegNrProvision)
'nur bei VERAG die fragen
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "IMEX" OrElse VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" OrElse vbYes = MsgBox("Daten ins Speditionsbuch eintragen?", vbYesNoCancel) Then
Dim abbruch As Boolean = False
If cRKSV.SpedBuchExists(BELEG) Then
If vbYes = MsgBox("Speditionsbuch Eintrag existiert bereits - Daten überschreiben?", vbYesNoCancel) Then
abbruch = True
End If
End If
If Not abbruch Then
cRKSV.insertToSpedBuch(PERSONAL, PERSONAL_LG, BELEG, AvisoID, , barbetrag, BelegNrProvision)
Dim spedBuchExisting As Boolean = cRKSV.SpedBuchExists(BELEG)
If Not spedBuchExisting Then
MsgBox("Speditionsbuch-Eintrag fehlgeschlagen!!")
Else
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then 'nur bei VERAG
If vbYes = MsgBox("Speditionsbuch anzeigen?", vbYesNoCancel) Then
Dim frmNacherfassung As New frmNacherfassungNEU()
frmNacherfassung.srchFiliale = BELEG.FilialenNr
frmNacherfassung.srchAbfertigungsnummer = BELEG.AbfertigungsNr
frmNacherfassung.srchUnterNr = 0
frmNacherfassung.ShowDialog(Me)
End If
End If
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" AndAlso spedBuchExisting Then
'create Rechnung für ATILLA
Dim verarbOK As Boolean = True
Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(BELEG.FilialenNr, BELEG.AbfertigungsNr)
Dim RK_ID As Integer = -1
If Not gen_RECHNUNG_BySPEDBUCH(BELEG.KundenNr, SPEDBUCH, RK_ID, cbxOP_sofort_buchen.Checked, summeBRUTTO, summeNETTO) Then verarbOK = False
If RK_ID > 0 Then
Dim RECHNUNG As New cRechnungsausgang(RK_ID)
'rechnungsNr vergeben, aber nicht gedruckt!
If Not cFakturierung.doRechnungsDruck(RECHNUNG, Today(),, 4) Then verarbOK = False
If RECHNUNG.[DruckDatumZeit] IsNot Nothing Then
RECHNUNG.[DruckDatumZeit] = Nothing
RECHNUNG.SAVE_DruckDatumZeit()
End If
End If
If verarbOK Then
'MsgBox("Rechnung erstellt!")
Else
MsgBox("Fehler bei Rechnungserstellung!")
End If
End If
End If
End If
Me.Close()
Me.DialogResult = Windows.Forms.DialogResult.OK
Me.Cursor = Cursors.Default
End If
Catch ex As Exception
Me.Cursor = Cursors.Default
MsgBox("Allgemeiner Programmfehler - Belegerfassung wird geschlossen!" & If(BELEG.rksv_BelegId > 0, "ACHTUNG: BELEG BEREITS SIGNIERT!!!", "") & vbNewLine & vbNewLine & ex.Message & ex.StackTrace)
Me.Close()
End Try
End Sub
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, ByRef RK_ID As Integer, ByRef trdin As Boolean, ByRef summeBRUTTO As Double, ByRef summeNETTO As Double)
Try
If KdNr = "" Then Return False
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(KdNr)
Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang
Dim OffertenNr As Integer
Dim Abfertigungsart As Integer
'TODO. Setzen!
OffertenNr = 9 : Abfertigungsart = 10 : RG.Anlage_1 = ""
RG.Firma_ID = 7
RG.FilialenNr = SPEDBUCH.FilialenNr
RG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr
RG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr
RG.UnterNr = RG.getMaxRGUnterNr()
RG.Buchungsjahr = cRKSV.getGJ(SPEDBUCH.Abfertigungsdatum, RG.Firma_ID) 'If(Now.Month = 1, Now.Year - 1, Now.Year)
RG.FilialenNr = SPEDBUCH.FilialenNr
RG.Abfertigungsdatum = SPEDBUCH.Abfertigungsdatum
RG.Sammelrechnung = 0
RG.BelegartenKz = "AR"
RG.BelegartenNr = 70
RG.BelegartenBez = "Rechnung"
RG.Vorzeichen = "+"
RG.VermittlerKundenNr = AD.AdressenNr
RG.VermittlerLandKz = AD.LandKz
RG.VermittlerName_1 = AD.Name_1
RG.VermittlerName_2 = AD.Name_2
RG.VermittlerOffertenNr = OffertenNr
RG.VermittlerOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, ""))
RG.VermittlerStraße = AD.Straße
RG.Rechnung_an = 3
RG.OffertenNr = OffertenNr
RG.KundenNrZentrale = KD.KundenNrZentrale
RG.RechnungsKundenNr = AD.AdressenNr
RG.RechnungsLandKz = AD.LandKz
RG.RechnungsName_1 = AD.Name_1
RG.RechnungsName_2 = AD.Name_2
RG.RechnungsOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, ""))
RG.RechnungsStraße = AD.Straße
RG.RechnungsUstIdKz = AD.UstIdKz
RG.RechnungsUstIdNr = AD.UstIdNr
RG.RechnungsUstIdGeprüft = AD.UstIdGeprüft
RG.Lastschrift = KD.Lastschrift
RG.Kunden_SVS = KD.SVS
RG.Steuerschlüssel = 0 'Immer 0 % weil durchlaufposten!
RG.Vorkasse = KD.Vorkasse
RG.Vorlageprovision_Proz = KD.Vorlageprovision
RG.Kreditaufwendungen_Proz = KD.Kreditaufwendungen
RG.RechnungSprache = "DE"
RG.Anlage_2 = ""
RG.Anlage_3 = ""
RG.Anlage_4 = ""
RG.Anlage_5 = ""
RG.Anlage_6 = ""
RG.Packstücke_und_Warenbezeichnung = SPEDBUCH.Vermerk
'RG.EMailRechnungstext = Fusstext
If Not IsDBNull(KD.Zahlungsziel) AndAlso IsNumeric(KD.Zahlungsziel) Then
Dim Zahlungsziel As Integer = CInt(KD.Zahlungsziel)
RG.Nettozahlungsziel = IIf(Zahlungsziel > 14, 14, KD.Zahlungsziel)
End If
RG.SteuerpflichtigerGesamtbetrag = 0
RG.SteuerfreierGesamtbetrag = 0
RG.Status = 0
RG.[Vorkosten] = 0
RG.[Erlös] = 0
'RG.[Buchungsjahr] = 0
RG.[Währungscode] = "EUR"
RG.ReErfZeitstempel = Now
RG.Vermerk = SPEDBUCH.Vermerk
RG.Trdin = trdin
RG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
Dim sqlstr As String = ""
Dim useNettogesamtbetrag As Boolean = False
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
allPos(RG, OFFERTE, 110, summeBRUTTO, summeNETTO, (summeBRUTTO - summeNETTO))
Dim dtSt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & RG.Steuerschlüssel & "'", "FMZOLL")
If dtSt IsNot Nothing AndAlso dtSt.Rows.Count > 0 Then
RG.Steuersatz_Proz = dtSt.Rows(0)(0)
End If
cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim
If RG.SAVE Then
RK_ID = RG.RK_ID
Return True
Else
Return False
End If
Catch ex As System.Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
Function allPos(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, LeistungsNr As Integer, NettoBetrag As Double, BruttoBetrag As Double, Optional UstBetrag As Double = 0)
Try
For Each o In OFFERTE.POSITIONEN
If o.LeistungsNr = LeistungsNr Then
Dim POS As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen()
Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(o.LeistungsNr)
POS.LeistungsNr = o.LeistungsNr
POS.LeistungsBez = o.LeistungsBez
POS.BerechnungsartNr = o.BerechnungsartNr
'POS.Preis = BruttoBetrag
POS.Anzahl = 1
POS.Steuerpflichtig = LEISTUNG.Steuerpflichtig
'Berrechnunggebühr wird immer vom übergebenen Betrag abzüglich UST berechnet (Nettobetrag), außer bei UTA!
POS.BGebBgl = NettoBetrag - UstBetrag
If POS.Steuerpflichtig Then
POS.SteuerpflichtigerBetrag = NettoBetrag
POS.Preis = NettoBetrag
Else
POS.SteuerfreierBetrag = BruttoBetrag
POS.Preis = BruttoBetrag
End If
'POS.NachzahlungsID = nachzahlungsID 'nix gut
POS.BGebLeistungsNr = o.BGebLeistungsNr
POS.BGebProzent = o.BGebProzent
POS.BGebMinBetrag = o.BGebMinBetrag
RG.POSITIONEN.Add(POS)
Return True
End If
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return False
End Function
Function printProvision(ByRef barBetrag As Double, ByRef BelegNrProvision As Integer) As Boolean
printProvision = False
Dim BELEG_Prov As New EABeleg(PERSONAL.Mandant, PERSONAL.Niederlassung, PERSONAL.ID)
'lblRgNr.Text = "12345 / TR"
BELEG_Prov.BelegDat = BELEG.BelegDat
BELEG_Prov.Beleg_TYP = "K"
BELEG_Prov.KundenNr = BELEG.FrachtführerKundenNr
BELEG_Prov.Ordnungsbegriff = BELEG.Frachtführer
BELEG_Prov.LandKz = BELEG.LandKz
BELEG_Prov.Ort = BELEG.Ort
BELEG_Prov.PLZ = BELEG.PLZ
BELEG_Prov.UstIdKz = BELEG.UstIdKz
BELEG_Prov.UstIdNr = BELEG.UstIdNr
BELEG_Prov.Frachtführer = BELEG.Frachtführer
BELEG_Prov.FrachtführerKundenNr = BELEG.FrachtführerKundenNr
BELEG_Prov.Fahrer = BELEG.Fahrer
BELEG_Prov.LKW_Kennzeichen = BELEG.LKW_Kennzeichen
BELEG_Prov.Steuerschlüssel = 0 'BELEG.Steuerschlüssel
BELEG_Prov.FilialenNr = BELEG.FilialenNr
BELEG_Prov.AbfertigungsNr = BELEG.AbfertigungsNr
BELEG_Prov.LKW_Id = BELEG.LKW_Id
'BELEG_Prov.LKW_Beleg = BELEG.LKW_Beleg
BELEG_Prov.LKW_Beleg = True ' Sonst Problem mit AbfertigungsNr
If PERSONAL.isLeihgeldkasse AndAlso PERSONAL_LG IsNot Nothing Then
BELEG_Prov.Benutzer_LG = PERSONAL_LG.ID
End If
Dim BELEG_Prov_POS = New List(Of EABelegPositionen)
Dim p = New EABelegPositionen
p.Mandant = PERSONAL.Mandant
p.Niederlassung = PERSONAL.Niederlassung
p.Benutzer = PERSONAL.ID
'p.Benutzer = BenutzerNr
p.BelegDat = Now
p.BelegNr = BELEG.BelegNr
p.PreislistenNr = cboProvisionStaffelArt._value
p.PreislistenPos = cboProvisionStaffel._value
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [VERAG].[dbo].[tblPreislistenpositionen] where PreislistenNr='" & p.PreislistenNr & "' and PreislistenPos='" & p.PreislistenPos & "'", "FMZOLL")
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
p.LeistungsNr = dt.Rows(0)("LeistungsNr")
p.LeistungsBez = dt.Rows(0)("LeistungsBez")
p.Leistungsbeschreibung = dt.Rows(0)("Leistungsbeschreibung")
End If
p.Preis = cboProvisionBetrag._value
p.Abfertigungsart = 9
p.Anzahl = 1
p.Betrag = p.Anzahl * p.Preis
BELEG_Prov_POS.Add(p)
Dim f As New frmBelegNeu(PERSONAL, Nothing, "E")
's f.Visible = False
f.defaultPrinter = cboPrinterProvisionBeleg.Text
f.warnClose = False
AddHandler f.Shown, Sub()
If f.AddLeihgeld(True, BELEG_Prov, BELEG_Prov_POS) Then
End If
End Sub
f.WindowState = FormWindowState.Minimized
If f.ShowDialog() Then
barBetrag = f.BELEG.rksv_umsatz
BelegNrProvision = f.BELEG.rksv_BelegId
printProvision = f.printErfolgreich
End If
' f.Close()
End Function
Sub printLGAktendeckel(art, Optional barbetrag = Nothing, Optional BelegNrProvision = Nothing)
Try
Dim imgpath = ""
Dim resPath As String = System.IO.Path.GetFullPath(Application.StartupPath & "\Resources\")
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : imgpath = resPath & "IMEX.png"
Case "ATILLA" : imgpath = resPath & "SUB.png"
Case Else
Select Case PERSONAL.Niederlassung
Case "SUB" : imgpath = resPath & "SUB.png"
Case "WAI" : imgpath = resPath & "WAI.png"
Case "NKD" : imgpath = resPath & "NKD.png"
Case "SBG" : imgpath = resPath & "SBG.png"
Case Else
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_niederlassung
Case "SUB" : imgpath = resPath & "SUB.png"
Case "WAI" : imgpath = resPath & "WAI.png"
Case "NKD" : imgpath = resPath & "NKD.png"
Case "SBG" : imgpath = resPath & "SBG.png"
Case Else : imgpath = resPath & "SUB.png"
End Select
End Select
End Select
Dim VALUES As New Gemeinsames.rptSendungenValues
VALUES.Abfertigungsart = "LEIHGELD Auszahlung"
VALUES.FilialeNr = BELEG.FilialenNr
VALUES.Abfertigungsnummer = BELEG.AbfertigungsNr
VALUES.Auftraggeber_KdNr = BELEG.KundenNr
VALUES.Auftraggeber_Firma = BELEG.Name1 & " " & BELEG.Name2
VALUES.Frachtfuehrer_KdNr = BELEG.FrachtführerKundenNr
VALUES.Frachtfuehrer_Firma = BELEG.Frachtführer
VALUES.KdAuftrNr = If(BELEG.Auftraggeber_KdAuftragsnummer, "")
VALUES.Auftraggeber_Leistung1 = "Leihgeld"
Dim betrag As Double = 0
For Each p In BELEG.POS
betrag += p.Preis
Next
VALUES.Auftraggeber_Betrag = CDbl(betrag).ToString("N2")
If If(BELEG.Auftraggeber_Provision, 0) > 0 Then
VALUES.Auftraggeber_Leistung2 = "Provision Erstattung"
VALUES.Auftraggeber_Betrag2 = CDbl(-1 * betrag * BELEG.Auftraggeber_Provision).ToString("N2")
End If
VALUES.LKWKennzeichen = BELEG.LKW_Kennzeichen
VALUES.Anmerkungen = "Fahrername: " & BELEG.Fahrer & vbNewLine & "Passnummer: " & BELEG.Passnummer & vbNewLine & (If(BELEG.DruckDatumUhrzeit IsNot Nothing, vbNewLine & "Beleg-Datum: " & BELEG.DruckDatumUhrzeit, "Beleg-Datum: " & BELEG.BelegDat.ToShortDateString))
' VALUES.Ankunft = BELEG.BelegDat.ToShortDateString
' If BELEG.DruckDatumUhrzeit IsNot Nothing Then VALUES.Abfahrt = (BELEG.DruckDatumUhrzeit)
VALUES.Frachtfuehrer_Bar_BelegNr = BELEG.rksv_BelegId
VALUES.Frachtfuehrer_Bar_Betrag = (betrag * -1).ToString("N2")
If barbetrag IsNot Nothing AndAlso IsNumeric(barbetrag) Then VALUES.Frachtfuehrer_Bar_Betrag2 = CDbl(barbetrag).ToString("N2")
If BelegNrProvision IsNot Nothing AndAlso IsNumeric(BelegNrProvision) Then VALUES.Frachtfuehrer_Bar_BelegNr2 = CInt(BelegNrProvision) '& "/"
Dim barcode As Image = Code128Rendering.MakeBarcodeImage("/" & BELEG.FilialenNr & "-" & BELEG.AbfertigungsNr & "-0/", 1, True, 25)
barcode.RotateFlip(RotateFlipType.Rotate90FlipNone)
Dim barcodeLKW As Image = Nothing
If AvisoID IsNot Nothing Then barcodeLKW = Code128Rendering.MakeBarcodeImage("/" & AvisoID & "/", 1, True, 20)
If barcodeLKW IsNot Nothing Then VALUES.barcodeLKW = barcodeLKW
If barcode IsNot Nothing Then VALUES.barcodeSendung = barcode
Dim rpt As New Gemeinsames.rptSendungen(VALUES, imgpath, Nothing, Nothing, Nothing)
' rpt.Document.CacheToDisk = True
'rpt.Document.CacheToDiskLocation = "C:\\Temp"
' rpt.Run()
' System.Diagnostics.Process pc = System.Diagnostics.Process.GetCurrentProcess();
'pc.MaxWorkingSet = pc.MinWorkingSet;
If art = "" Or art = "PDF" Then ' Wird angezeigt, nicht gedruckt
Dim printForm As New SDL.frmPrintLayout
printForm.Viewer.LoadDocument(rpt)
printForm.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
printForm.Show()
' printForm.BringToFront()
ElseIf art = "PRINT" Or art = "DIALOG" Then
rpt.Run(False)
' If Printername = "" Then rpt.Dispose() : Exit Sub
rpt.Document.Printer.PrinterName = cboPrinter.SelectedItem.ToString
rpt.Document.Print((art = "DIALOG"), False)
rpt.Dispose()
'rpt.Document.Dispose()
' rpt.Dispose()
' rpt = Nothing
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs)
Me.Close()
End Sub
Private Sub FillByToolStripButton_Click(sender As Object, e As EventArgs)
End Sub
Private Sub btnNeueAbfertigungNrVergeben_Click(sender As Object, e As EventArgs) Handles btnNeueAbfertigungNrVergeben.Click
If Not IsNumeric(cboFiliale._value) OrElse CInt(cboFiliale._value) <= 0 Then
MsgBox("Bitte Filiale auswählen!") : Exit Sub
End If
txtAbfertigungsnummer.Enabled = True
txtAbfertigungsnummer.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(cboFiliale._value, Now.Year)
cboFiliale.Enabled = False
btnNeueAbfertigungNrVergeben.Visible = False
txtAuftraggeber.Focus()
End Sub
Private Sub cboFiliale_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFiliale.SelectedIndexChanged
'btnNeueAbfertigungNrVergeben.PerformClick()
If Not formLoaded Then Exit Sub
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then
txtAbfertigungsnummer.Text = ""
txtAbfertigungsnummer.Enabled = False
btnNeueAbfertigungNrVergeben.Visible = True
End If
End Sub
Private Sub txtBetrag_TextChanged(sender As Object, e As KeyEventArgs) Handles txtBarzahlungsbetrag.KeyDown
If e.KeyCode = Keys.Return Then
btnPrint.Focus() 'damit txtBetrag._value passt
btnPrint.PerformClick()
End If
End Sub
Private Sub frmNacherfassungLeihgeld_Shown(sender As Object, e As EventArgs) Handles Me.Shown
RaiseEvent LOADED()
cboFiliale.Focus()
If cboFiliale._value <> "" Then txtAuftraggeberKdNr.Focus()
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
'btnNeueAbfertigungNrVergeben.Visible = False
'txtAbfertigungsnummer.Enabled = True
Else
If Not VERAG_PROG_ALLGEMEIN.cAllgemein.AUTO_ABF_NR Then
btnNeueAbfertigungNrVergeben.Visible = False
cboFiliale.Enabled = True
txtAbfertigungsnummer.Enabled = True
End If
End If
' btnNeueAbfertigungNrVergeben.Visible = Not (BELEG.gebucht Or BELEG.gebuchtStorno)
kdFrachtführer.Focus()
formLoaded = True
End Sub
Private Sub txtAbfertigungsnummer_Leave(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.Leave
If txtAbfertigungsnummer.Text.Length > 8 Then Exit Sub
If txtAbfertigungsnummer.Text.Length <= 6 Then
If IsNumeric(txtAbfertigungsnummer.Text) Then
txtAbfertigungsnummer.Text = Now.ToString("yy") & CInt(txtAbfertigungsnummer.Text).ToString("000000")
End If
End If
End Sub
Private Sub cbxFrachter_CheckedChanged(sender As Object, e As EventArgs) Handles cbxFrachter.CheckedChanged
txtAuftraggeber.Enabled = Not sender.checked
kdFrachtführer_TextChanged(kdFrachtführer, New EventArgs)
End Sub
Private Sub kdFrachtführer_Leave(sender As Object, e As EventArgs) Handles kdFrachtführer.Leave
If cbxFrachter.Checked Then
If kdFrachtführer.KdNr = "" Or (IsNumeric(kdFrachtführer.KdNr) AndAlso kdFrachtführer.KdNr <= 0) Then
txtAuftraggeber.KdNr = ""
txtAuftraggeber.Text = kdFrachtführer.Text
End If
End If
End Sub
Private Sub kdFrachtführer_TextChanged(sender As Object, e As EventArgs) Handles kdFrachtführer.PropertyChanged
If cbxFrachter.Checked Then
If kdFrachtführer.KdNr <> "" AndAlso (IsNumeric(kdFrachtführer.KdNr) AndAlso kdFrachtführer.KdNr > 0) Then
txtAuftraggeber.KdNr = kdFrachtführer.KdNr
Else
txtAuftraggeber.Text = kdFrachtführer.Text
End If
End If
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX"
Dim op_tmp = ""
If kdFrachtführer.KdNr <> "" AndAlso (IsNumeric(kdFrachtführer.KdNr) AndAlso kdFrachtführer.KdNr > 0) Then
Label44.Visible = True
txtOpLeihgeld.Visible = True
op_tmp = SQL.getValueTxtBySql("SELECT isnull(sum(Saldo),0) as OP FROM [Offene_Posten_DVO] where KundenNr=" & kdFrachtführer.KdNr & " AND konto like '5%'", "FMZOLL")
End If
If IsNumeric(op_tmp) Then
txtOpLeihgeld.Text = CDbl(op_tmp).ToString("C2")
Else
txtOpLeihgeld.Text = ""
End If
Case "ATILLA"
If kdFrachtführer.KdNr <> "" AndAlso (IsNumeric(kdFrachtführer.KdNr) AndAlso kdFrachtführer.KdNr > 0) Then
Dim vorhandesOffert As Boolean = SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) from Offertenpositionen where KundenNr = " & kdFrachtführer.KdNr & " AND OffertenNr = 9 and LeistungsNr = 110 and LeistungsBez = 'Leihgeldauszahlung'", "FMZOLL") > 0
If Not vorhandesOffert Then
If vbYes = MsgBox("Der ausgewählte Kunde " & kdFrachtführer.KdNr & " besitzt kein Offerte für Leihgeldauszahlungen!" & vbNewLine & "Leihgeldoffert anlegen?", vbYesNoCancel) Then
Dim o As New VERAG_PROG_ALLGEMEIN.cOfferte(kdFrachtführer.KdNr, 9, False)
o.Art = "Neuanlage"
o.SAVE() 'speichern
o.LOAD_POSITIONEN() 'positionen Laden
If o.POSITIONEN.Count = 0 Then 'wenn keine POS --> neues Offert
o.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, "", "DE") '--> Standartofferten laden
End If
Else
Exit Sub
End If
Else
Dim OffertGesperrt As Boolean = SQL.getValueTxtBySql("SELECT TOP 1 COUNT(*) from Offerten where OffertenNr = 9 AND isnull(gesperrt,0) <> 0 AND KundenNr = " & kdFrachtführer.KdNr, "FMZOLL") > 0
lblGesperrt.Visible = OffertGesperrt
btnPrint.Enabled = Not OffertGesperrt
End If
End If
End Select
End Sub
Private Sub kdFrachtführer_TextChanged2(sender As Object, e As EventArgs) Handles kdFrachtführer.TextChanged
txtOpLeihgeld.Text = ""
End Sub
Private Sub cbxProvision_CheckedChanged(sender As Object, e As EventArgs) Handles cbxProvision.CheckedChanged
cboProvisionStaffel.Enabled = cbxProvision.Checked
cboProvisionBetrag.Enabled = cbxProvision.Checked
cboPrinterProvisionBeleg.Enabled = cbxProvision.Checked
cboProvisionStaffelArt.Enabled = cbxProvision.Checked
txtProvisionProzent.Enabled = cbxProvision.Checked
End Sub
Private Sub cboProvisionStaffelArt_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboProvisionStaffelArt.SelectedIndexChanged
cboProvisionStaffel.Items.Clear()
If IsNumeric(cboProvisionStaffelArt._value) Then
cboProvisionStaffel.fillWithSQL("Select [PreislistenPos], [Leistungsbeschreibung] FROM [VERAG].[dbo].[tblPreislistenpositionen] where LeistungsNr In (357, 355) And PreislistenNr ='" & cboProvisionStaffelArt._value & "'", False, "FMZOLL", False)
End If
End Sub
Private Function getProvFromString(str As String) As Double
Try
Dim cnt = 0
For Each s In str
If IsNumeric(s) Then
For i = cnt + 1 To str.Length
If IsNumeric(str.Substring(cnt, i - cnt)) Then
getProvFromString = CDbl(str.Substring(cnt, i - cnt).Trim)
End If
Next
Return getProvFromString
End If
cnt += 1
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
getProvFromString = 0
End Function
Private Sub cboProvisionStaffel_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboProvisionStaffel.SelectedIndexChanged, txtBarzahlungsbetrag.TextChanged, txtBarzahlungsbetrag.Leave, txtProvisionProzent.TextChanged
initProv()
End Sub
Sub initProv()
cboProvisionBetrag._value = 0
If cboProvisionStaffel.Text.Trim.EndsWith("%") Then
txtProvisionProzent._value = getProvFromString(cboProvisionStaffel.Text) / 100
End If
If IsNumeric(txtBarzahlungsbetrag._value) And IsNumeric(txtProvisionProzent._value) Then
cboProvisionBetrag._value = txtBarzahlungsbetrag._value * txtProvisionProzent._value
End If
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles cbxProvisionAuftraggeber.CheckedChanged
txtAuftrProvision.Enabled = sender.checked
End Sub
End Class