1038 lines
49 KiB
VB.net
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 |