Files
SDL/SDL/kunden/Vorauskasse/frmVorauskasse.vb
2024-05-16 22:12:43 +02:00

742 lines
35 KiB
VB.net

Public Class frmVorauskasse
Public KundenNr As Integer = -1
Public GeldEingang As Object = Nothing
Dim MONAT As Date = CDate("01." & Now.Month & "." & Now.Year) '.AddMonths(-1)
Dim srcTAG As Date = CDate(Now.ToShortDateString)
Dim JAHR As Date = CDate("01.01." & Now.Year)
Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Dim FilialenNr = Nothing
Dim AbfertigungsNr = Nothing
Dim DatumVon = Nothing
Sub New(FilialenNr, AbfertigungsNr, DatumVon)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
Me.FilialenNr = FilialenNr
Me.AbfertigungsNr = AbfertigungsNr
Me.DatumVon = DatumVon
End Sub
Private Sub frmVorauskasse_Load(sender As Object, e As EventArgs) Handles Me.Load
txtAbfertDat.Text = Now.ToShortDateString 'CDate("01." & Now.ToString("MM.yyyy")).AddMonths(-1).ToShortDateString
txtAbfertDatBis.Text = Now.ToShortDateString
btnMonat.Text = MONAT.ToString("MMMM")
btnJahr.Text = JAHR.Year
Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGIMEX", "SDL") Then
FirmaTmp = "VERAGIMEX"
End If
Dim QSwhere = ""
Select Case FirmaTmp
Case "UNISPED" : QSwhere = " AND mit_firma IN ('UNISPED') "
Case "ATILLA" : QSwhere = ""
Case "VERAGIMEX" : QSwhere = " AND mit_firma IN ('IMEX','BEIDE','VERAG','ATILLA') "
Case "IMEX" : QSwhere = " AND mit_firma IN ('IMEX','BEIDE') "
Case Else
QSwhere = " AND mit_firma <> 'IMEX' "
End Select
' cboSachbearbeiterQS.fillWithSQL("SELECT ID,/*cast(ID as nvarchar(3)) +' ' + Name as*/ Name FROM Personal WHERE [Status]<>'L' " & QSwhere & " ORDER BY Name ", False, "FMZOLL", True)
Dim where = ""
Select Case FirmaTmp
Case "IMEX"
where = " AND FilialenNr IN (5501) "
Case "ATILLA"
where = " AND FilialenNr IN (4801) "
Case "UNISPED"
where = " AND FilialenNr IN (5601) "
Case "AMBAR"
where = " AND FilialenNr IN (5701) "
Case "FRONTOFFICE"
where = " AND FilialenNr IN (5801) "
Case "VERAGIMEX"
where = ""
Case Else
where = " AND FilialenNr NOT IN (5501) "
End Select
cboFiliale.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' " & where & " ORDER BY FilialenNr ", True, "FMZOLL", True)
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX"
cboFiliale._allowedValuesFreiText = {"5501"}
cboFiliale.changeItem("5501")
Case "ATILLA"
cboFiliale._allowedValuesFreiText = {"4801"}
cboFiliale.changeItem("4801")
Case "UNISPED"
cboFiliale._allowedValuesFreiText = {"5601"}
cboFiliale.changeItem("5601")
Case "AMBAR"
cboFiliale._allowedValuesFreiText = {"5701"}
cboFiliale.changeItem("5701")
Case "FRONTOFFICE"
cboFiliale._allowedValuesFreiText = {"5801"}
cboFiliale.changeItem("5801")
Case Else
cboFiliale.Items.Insert(1, New VERAG_PROG_ALLGEMEIN.MyListItem("alle VERAG", "VERAG"))
cboFiliale.changeItem("VERAG")
End Select
cboSachbearbeiterQS.fillWithSQL("SELECT [mit_id],[mit_vname] + ' '+ [mit_nname] as NAME " &
" FROM tblMitarbeiter WHERE mit_niederlassung IN ('SUB','Suben') AND mit_abteilung='QS' AND [mit_gekuendigt]=0 " & QSwhere & " order by name", False, "ADMIN", True)
cboSachbearbeiterBH.fillWithSQL("SELECT [mit_id],[mit_vname] + ' '+ [mit_nname] as NAME " &
" FROM tblMitarbeiter WHERE mit_niederlassung IN ('SUB','Suben') AND mit_abteilung='BH' AND [mit_gekuendigt]=0 " & QSwhere & " order by name", False, "ADMIN", True)
btnMonat.PerformClick()
btnSuche.PerformClick()
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("BH_Vorauskasse_buchen", Me) Then
pnlBH.Visible = True
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", Me) Then
btnDel.Visible = True
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VORAUSKASSE_Bank_Login_VERAG", Me) Then
btnVK_VERAG_VR.Visible = True
End If
If Me.FilialenNr IsNot Nothing Then
cboFiliale.changeItem(FilialenNr)
End If
If Me.AbfertigungsNr IsNot Nothing Then
txtAbfertigungsnummer.Text = AbfertigungsNr
End If
If Me.DatumVon IsNot Nothing Then
DateTimePicker1.Value = CDate(DatumVon)
End If
If KundenNr > 0 Then
txtFirma.Text = KundenNr
If GeldEingang IsNot Nothing Then
If GeldEingang Then
cbxGeldEingang.CheckState = CheckState.Checked
Else
cbxGeldEingang.CheckState = CheckState.Unchecked
End If
End If
DateTimePicker1.Value = Now.AddYears(-1)
DateTimePicker2.Value = Now
btnSuche.PerformClick()
End If
End Sub
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
txtAbfertDat._value = CDate(sender.value).ToShortDateString
End Sub
Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.ValueChanged
txtAbfertDatBis._value = CDate(sender.value).ToShortDateString
End Sub
Sub initBtns(MonatJahr)
btnMonat.Text = MONAT.ToString("MMMM")
btnJahr.Text = JAHR.Year
Select Case MonatJahr
Case "Monat"
DateTimePicker1.Value = MONAT
DateTimePicker2.Value = MONAT.AddMonths(1).AddDays(-1)
Case "Jahr"
' If cbxGeschaftsjahr.Checked Then
'DateTimePicker1.Value = JAHR.AddMonths(1)
' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1)
' Else
DateTimePicker1.Value = JAHR
DateTimePicker2.Value = JAHR.AddYears(1).AddDays(-1)
'End If
Case "Tag"
' If cbxGeschaftsjahr.Checked Then
'DateTimePicker1.Value = JAHR.AddMonths(1)
' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1)
' Else
DateTimePicker1.Value = srcTAG
DateTimePicker2.Value = srcTAG
If srcTAG = Now.ToShortDateString Then
Button5.Text = "Heute"
ElseIf srcTAG = Now.AddDays(-1).ToShortDateString Then
Button5.Text = "Gestern"
ElseIf srcTAG = Now.AddDays(-2).ToShortDateString Then
Button5.Text = "Vorgestern"
Else
Button5.Text = srcTAG.ToString("dd.MM")
End If
'End If
Case ""
DateTimePicker1.Value = ("01." & Now.Month & "." & Now.Year)
DateTimePicker2.Value = Now
End Select
btnSuche.PerformClick()
End Sub
Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click, cbxLKWAnkunft.CheckedChanged
'If sender Is cbxLKWAnkunft Then
' If vbYes = MsgBox("Achtung - komplexe Abfrage: ", vbYesNoCancel) Then
'End If
If cbxLKWAnkunft.Checked Then
txtMaxSrch.Text = 50
txtAbfertDat.Enabled = False
txtAbfertDatBis.Enabled = False
DateTimePicker1.Enabled = False
DateTimePicker2.Enabled = False
Else
txtAbfertDat.Enabled = True
txtAbfertDatBis.Enabled = True
DateTimePicker1.Enabled = True
DateTimePicker2.Enabled = True
End If
Me.Cursor = Cursors.WaitCursor
Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "")
Dim sqlstr As String = ""
Dim LKWAnkunft = " WHERE 1=1 "
If cbxLKWAnkunft.Checked Then
' LKWAnkunft = " , (SELECT TOP 1 Count(*) FROM " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".AVISO.dbo.AVISO INNER JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".AVISO.dbo.tblSendungen on AVISO.AvisoId=tblSendungen.tblSnd_AvisoID where Status=1 and FilialenNr=[vk_FilialeNr] and AbfertigungsNr=[vk_AbfertigungsNr] ) LKW_Ankunft "
'LKWAnkunft = " and (SELECT TOP 1 Count(*) FROM " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".AVISO.dbo.AVISO INNER JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".AVISO.dbo.tblSendungen on AVISO.AvisoId=tblSendungen.tblSnd_AvisoID where Status=" & VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft & " and FilialenNr=[vk_FilialeNr] and AbfertigungsNr=[vk_AbfertigungsNr] ) >0 "
LKWAnkunft = " inner join " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".AVISO.dbo.tblSendungen on FilialenNr=[vk_FilialeNr] and AbfertigungsNr=[vk_AbfertigungsNr] inner join " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".AVISO.dbo.AVISO on AVISO.AvisoId=tblSendungen.tblSnd_AvisoID WHERE 1=1 and Status=3 "
End If
'sqlstr &= " SELECT " & TopMax & " [vk_id],[vk_FilialeNr],[vk_AbfertigungsNr],[vk_Datum],[vk_LKW],[vk_KdNr],[vk_Firma],[vk_QS_Sachbearbeiter],[vk_QS_Bemerkung],vk_Betrag,[vk_GeldEingetroffen],[vk_BH_Sachbearbeiter],[vk_BH_Bemerkung],[vk_BH_DatumGeldeingang],vk_storno,vk_Freigegeben " & LKWAnkunft & " FROM tblVorauskassen WHERE 1=1 "
sqlstr &= " SELECT " & TopMax & " [vk_id],[vk_FilialeNr],[vk_AbfertigungsNr],[vk_Datum],[vk_LKW],[vk_KdNr],[vk_Firma],[vk_QS_Sachbearbeiter],vk_QS_SachbearbeiterId,[vk_QS_Bemerkung],vk_Betrag,[vk_GeldEingetroffen],[vk_BH_Sachbearbeiter],[vk_BH_Bemerkung],[vk_BH_DatumGeldeingang],vk_storno,vk_Freigegeben FROM tblVorauskassen " & LKWAnkunft & " "
' MsgBox(sqlstr & getVorauskasseWhere() & " ORDER BY vk_Datum desc ")
With MyDatagridview1
' .DataSource = myTable
.SET_SQL(sqlstr & getVorauskasseWhere() & " ORDER BY vk_Datum desc ", "FMZOLL", getVorauskasseList)
.LOAD()
setDGVOptions()
End With
showDGV()
Me.Cursor = Cursors.Default
End Sub
Function getVorauskasseWhere() As String
Dim sqlstr = ""
If Not cbxLKWAnkunft.Checked Then
If txtAbfertDat.Text <> "" Then
If txtAbfertDatBis.Text <> "" Then
sqlstr &= " AND ([vk_Datum] BETWEEN @Abfertigungsdatum AND @Abfertigungsdatum_bis ) "
Else
sqlstr &= " AND ([vk_Datum] BETWEEN @Abfertigungsdatum AND @Abfertigungsdatum ) "
End If
End If
End If
If txtAbfertigungsnummer.Text <> "" Then
' If txtAbfertigungsnummerBis.Text <> "" Then
'sqlstr &= " AND ([vk_AbfertigungsNr] BETWEEN @AbfertigungsNr AND @AbfertigungsNr_bis ) "
'Else
'sqlstr &= " AND vk_AbfertigungsNr LIKE @AbfertigungsNr "
'End If
sqlstr &= " AND vk_AbfertigungsNr LIKE @AbfertigungsNr "
End If
' If txtUnterNr.Text <> "" Then sqlstr &= " AND [UnterNr] LIKE @UnterNr "
If cboFiliale._value = "VERAG" Then : sqlstr &= " AND [vk_FilialeNr] IN (SELECT [FilialenNr] FROM [Filialen] where Firma ='VERAG') "
ElseIf cboFiliale._value <> "" Then : sqlstr &= " AND [vk_FilialeNr] LIKE @FilialenNr "
End If
If cboSachbearbeiterQS._value <> "" Then sqlstr &= " AND [vk_QS_SachbearbeiterId] = @PersonalnummerQS "
If cboSachbearbeiterBH._value <> "" Then sqlstr &= " AND [vk_BH_SachbearbeiterId] = @PersonalnummerBH "
If MyTextBox1.Text <> "" Then sqlstr &= " AND [vk_LKW] LIKE @LKW "
If txtFirma.Text <> "" Then sqlstr &= " AND ([vk_Firma] LIKE @Firma or vk_KdNr=@Firma) "
Select Case cbxGeldEingang.CheckState
Case CheckState.Unchecked : sqlstr &= " AND vk_GeldEingetroffen=0 "
Case CheckState.Checked : sqlstr &= " AND vk_GeldEingetroffen=1 "
End Select
If IsNumeric(txtBetrag._value) Then sqlstr &= " AND vk_Betrag = cast(@Betrag as float) "
Return sqlstr
End Function
Function getVorauskasseList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
If Not cbxLKWAnkunft.Checked Then
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abfertigungsdatum", txtAbfertDat.Text & " 00:00:00"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abfertigungsdatum_bis", txtAbfertDatBis.Text & " 23:59:59"))
End If
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr", txtAbfertigungsnummer.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", cboFiliale._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PersonalnummerBH", cboSachbearbeiterBH._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PersonalnummerQS", cboSachbearbeiterQS._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LKW", MyTextBox1.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma", txtFirma.Text.Replace("*", "%")))
If IsNumeric(txtBetrag._value) Then list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Betrag", CDbl(txtBetrag._value)))
Return list
End Function
Sub showDGV()
With MyDatagridview1
If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.Columns("vk_id").Visible = False
.Columns("vk_QS_SachbearbeiterId").Visible = False
.Columns("vk_FilialeNr").Width = 45
.Columns("vk_FilialeNr").HeaderText = "Filiale"
.Columns("vk_FilialeNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("vk_AbfertigungsNr").Width = 80
.Columns("vk_AbfertigungsNr").HeaderText = "Abf-Nr"
.Columns("vk_AbfertigungsNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("vk_Datum").Width = 100
.Columns("vk_Datum").HeaderText = "Datum"
.Columns("vk_Datum").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("vk_LKW").Width = 120
.Columns("vk_LKW").HeaderText = "LKW Kennz."
.Columns("vk_KdNr").HeaderText = "KdNr"
.Columns("vk_KdNr").Width = 50
.Columns("vk_Firma").HeaderText = "Firma"
.Columns("vk_Firma").Width = 150
.Columns("vk_QS_Bemerkung").HeaderText = "QS Vermerk"
.Columns("vk_QS_Bemerkung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("vk_Betrag").HeaderText = "Betrag"
.Columns("vk_Betrag").Width = 75
.Columns("vk_Betrag").DefaultCellStyle.Format = "C2"
.Columns("vk_GeldEingetroffen").HeaderText = "€-Eing."
.Columns("vk_GeldEingetroffen").Width = 45
.Columns("vk_BH_Bemerkung").HeaderText = "BH Vermerk"
.Columns("vk_BH_Bemerkung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("vk_BH_DatumGeldeingang").HeaderText = "Geldeingang"
.Columns("vk_BH_DatumGeldeingang").Width = 80
.Columns("vk_QS_Sachbearbeiter").MinimumWidth = 100
.Columns("vk_QS_Sachbearbeiter").HeaderText = "QS Sachb."
.Columns("vk_BH_Sachbearbeiter").MinimumWidth = 100
.Columns("vk_BH_Sachbearbeiter").HeaderText = "BH Sachb."
.Columns("vk_Freigegeben").HeaderText = "Freigeg."
.Columns("vk_Freigegeben").Width = 45
.Columns("vk_storno").HeaderText = "Storno"
.Columns("vk_storno").Width = 45
' lblErgebnis.Text = "Ergebnise: " & .RowCount
End With
End Sub
Private Sub FlatButton7_Click(sender As Object, e As EventArgs) Handles FlatButton7.Click
MyDatagridview1.RELOAD()
setDGVOptions()
End Sub
Sub setDGVOptions()
Try
With MyDatagridview1
For Each r As DataGridViewRow In .Rows
If r.Cells("vk_storno").Value IsNot DBNull.Value AndAlso r.Cells("vk_storno").Value Then
r.DefaultCellStyle.ForeColor = Color.Red
ElseIf r.Cells("vk_GeldEingetroffen").Value IsNot DBNull.Value AndAlso r.Cells("vk_GeldEingetroffen").Value Then
r.DefaultCellStyle.ForeColor = Color.DarkGreen
End If
Next
End With
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False)
Me.Cursor = Cursors.Default
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
Dim VK As New VERAG_PROG_ALLGEMEIN.cVorauskasse(MyDatagridview1.SelectedRows(0).Cells("vk_id").Value)
VK.SET_GELDEINGANG(True, txtBemerkung.Text)
Dim VermerkIDNew = -1
cVorauskasseOptions.insertVermerk(MyDatagridview1.SelectedRows(0).Cells("vk_FilialeNr").Value, MyDatagridview1.SelectedRows(0).Cells("vk_AbfertigungsNr").Value, 14,,, VermerkIDNew,,, MyDatagridview1.SelectedRows(0).Cells("vk_id").Value, MyDatagridview1.SelectedRows(0).Cells("vk_QS_SachbearbeiterId").Value)
If VK.vk_VermerkId IsNot Nothing AndAlso VermerkIDNew > 0 Then
Dim cVermerkeDAL As New VERAG_PROG_ALLGEMEIN.cVermerkeDAL
cVermerkeDAL.SpeichernVermerkIDAufgehoben(VK.vk_VermerkId, VermerkIDNew)
End If
txtBemerkung.Text = ""
MyDatagridview1.RELOAD()
setDGVOptions()
End If
End Sub
Private Sub MyDatagridview1_SelectionChanged(sender As Object, e As EventArgs) Handles MyDatagridview1.SelectionChanged
btnBuchungAufheben.Visible = False
txtAuswahlAbfNr.Text = ""
If MyDatagridview1.SelectedRows.Count > 0 Then
If MyDatagridview1.SelectedRows(0).Cells("vk_GeldEingetroffen").Value Or MyDatagridview1.SelectedRows(0).Cells("vk_Freigegeben").Value Then
btnBuchungAufheben.Visible = True
End If
txtAuswahlAbfNr.Text = MyDatagridview1.SelectedRows(0).Cells("vk_FilialeNr").Value & "/" & MyDatagridview1.SelectedRows(0).Cells("vk_AbfertigungsNr").Value
End If
End Sub
Private Sub btnBuchungAufheben_Click(sender As Object, e As EventArgs) Handles btnBuchungAufheben.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
Dim VK As New VERAG_PROG_ALLGEMEIN.cVorauskasse(MyDatagridview1.SelectedRows(0).Cells("vk_id").Value)
VK.SET_GELDEINGANG(False, txtBemerkung.Text)
txtBemerkung.Text = ""
cVorauskasseOptions.delTop1Vermerk(VK.vk_FilialeNr, VK.vk_AbfertigungsNr, 14)
cVorauskasseOptions.delTop1Vermerk(VK.vk_FilialeNr, VK.vk_AbfertigungsNr, 59)
MyDatagridview1.RELOAD()
setDGVOptions()
End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
Dim VK As New VERAG_PROG_ALLGEMEIN.cVorauskasse(MyDatagridview1.SelectedRows(0).Cells("vk_id").Value)
If VK.vk_storno Then
If vbYes <> MsgBox("Möchten Sie die Stornierung auflösen?", vbYesNoCancel) Then Exit Sub
cVorauskasseOptions.insertVermerk(VK.vk_FilialeNr, VK.vk_AbfertigungsNr, 13, VK.vk_Datum)
'Wenn Storinierung aufgehoben und Geld eingtroffen, dann auch Vermerk Vorauskassse erhalten:
If VK.vk_GeldEingetroffen Then
cVorauskasseOptions.insertVermerk(VK.vk_FilialeNr, VK.vk_AbfertigungsNr, 14, VK.vk_BH_DatumGeldeingang)
End If
Else
If vbYes <> MsgBox("Möchten Sie die Vorauskasse wirklich stornieren?", vbYesNoCancel) Then Exit Sub
cVorauskasseOptions.delAllVKVermerk(VK.vk_FilialeNr, VK.vk_AbfertigungsNr)
End If
VK.SET_STORNO()
MyDatagridview1.RELOAD()
setDGVOptions()
End If
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
srcTAG = srcTAG.AddDays(-1)
initBtns("Tag")
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
srcTAG = srcTAG.AddDays(1)
initBtns("Tag")
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
initBtns("Tag")
End Sub
Private Sub btnMonat_Click(sender As Object, e As EventArgs) Handles btnMonat.Click
initBtns("Monat")
End Sub
Private Sub btnJahr_Click(sender As Object, e As EventArgs) Handles btnJahr.Click
initBtns("Jahr")
End Sub
Private Sub btnBisMonat_Click(sender As Object, e As EventArgs) Handles btnBisMonat.Click
MONAT = MONAT.AddMonths(1)
initBtns("Monat")
End Sub
Private Sub btnVonMonat_Click(sender As Object, e As EventArgs) Handles btnVonMonat.Click
MONAT = MONAT.AddMonths(-1)
initBtns("Monat")
End Sub
Private Sub btnBisJahr_Click(sender As Object, e As EventArgs) Handles btnBisJahr.Click
JAHR = JAHR.AddYears(1)
initBtns("Jahr")
End Sub
Private Sub btnVonJahr_Click(sender As Object, e As EventArgs) Handles btnVonJahr.Click
JAHR = JAHR.AddYears(-1)
initBtns("Jahr")
End Sub '
Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
Dim VK As New VERAG_PROG_ALLGEMEIN.cVorauskasse(MyDatagridview1.SelectedRows(0).Cells("vk_id").Value)
If vbYes <> MsgBox("Möchten Sie die Vorauskasse wirklich löschen?", vbYesNoCancel) Then Exit Sub
VK.DELETE()
MyDatagridview1.RELOAD()
setDGVOptions()
End If
End Sub
Private Sub gridAviso_DoubleClick(sender As Object, e As System.EventArgs) Handles MyDatagridview1.DoubleClick
If MyDatagridview1.SelectedRows.Count = 0 And MyDatagridview1.SelectedRows.Count = 0 Then Exit Sub
Dim kdnr = MyDatagridview1.SelectedRows(0).Cells("vk_KdNr").Value
SDL.FormularManagerNEU.OPEN_FORM(SDL.FormularManagerArten.Importaviso_VK, kdnr, {kdnr, Nothing, Nothing, Nothing, "", MyDatagridview1.SelectedRows(0).Cells("vk_id").Value})
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If MyDatagridview1.SelectedRows.Count > 0 Then
Dim VK As New VERAG_PROG_ALLGEMEIN.cVorauskasse(MyDatagridview1.SelectedRows(0).Cells("vk_id").Value)
VK.SET_FREIGEGEBEN(True, txtBemerkung.Text)
cVorauskasseOptions.insertVermerk(MyDatagridview1.SelectedRows(0).Cells("vk_FilialeNr").Value, MyDatagridview1.SelectedRows(0).Cells("vk_AbfertigungsNr").Value, 59,, True, If(VK.vk_VermerkId, -1), If(VK.vk_SendungId, -1),, MyDatagridview1.SelectedRows(0).Cells("vk_id").Value)
txtBemerkung.Text = ""
MyDatagridview1.RELOAD()
setDGVOptions()
End If
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles btnVK_VERAG_VR.Click
Dim f As New frmInfo
f.Controls.Clear()
Dim f_EORI As Form
Dim WebBrowser As New VERAG_PROG_ALLGEMEIN.Kleinma.Controls.WebBrowserEx
f.Controls.Add(WebBrowser)
f.Visible = True
'f.Visible = false
'f.WindowState = FormWindowState.Minimized
f.Show()
f_EORI = f
WebBrowser.Dock = DockStyle.Fill
WebBrowser.Navigate(New Uri("https://www.vr-bank-passau.de/banking-business/entry"))
f.Size = New Size(1000, 1300)
f.StartPosition = FormStartPosition.CenterScreen
f.Top = 0
WebBrowser.AllowNavigation = True
Dim doFilling = True
Dim doFilling2 = False
WebBrowser.ScriptErrorsSuppressed = True
Dim cnt = 0
AddHandler WebBrowser.DocumentCompleted, Sub()
cnt += 1
If cnt > 1 Then Exit Sub
' Print the document now that it is fully loaded.
If WebBrowser.ReadyState = WebBrowserReadyState.Complete Then
Try
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "VERAG"
WebBrowser.Document.GetElementById("txtBenutzerkennung").SetAttribute("value", "260896385")
WebBrowser.Document.GetElementById("pwdPin").SetAttribute("value", "Frjuverag361224!")
WebBrowser.Document.GetElementById("xview-anmelden").InvokeMember("click")
Case "FRONTOFFICE"
WebBrowser.Document.GetElementById("txtBenutzerkennung").SetAttribute("value", "261016389")
WebBrowser.Document.GetElementById("pwdPin").SetAttribute("value", "Frontoffice2020")
WebBrowser.Document.GetElementById("xview-anmelden").InvokeMember("click")
End Select
Catch ex As Exception
End Try
End If
End Sub
End Sub
Private Sub frmVorauskasse_Shown(sender As Object, e As EventArgs) Handles Me.Shown
If FilialenNr IsNot Nothing Or AbfertigungsNr IsNot Nothing Or DatumVon IsNot Nothing Then btnSuche.PerformClick()
End Sub
End Class
Public Class cVorauskasseOptions
Shared Sub insertVermerk(FilialenNr, AbfertigungsNr, VermerkCodeId, Optional DatumTmp = Nothing, Optional Freigegeben = False, Optional ByRef VermerkId = -1, Optional tblSnd_SendungID = -1, Optional vk_Betrag = Nothing, Optional VorauskasseId = Nothing, Optional vk_QS_SachbearbeiterId = Nothing)
Try
If vk_Betrag Is Nothing Then vk_Betrag = 0
If vk_Betrag.ToString = "" Then vk_Betrag = 0
' MsgBox(vk_Betrag)
Dim veragSQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim VermerkeDAL As New VERAG_PROG_ALLGEMEIN.cVermerkeDAL
' MsgBox("ThenSELECT TOP 1 [tblSnd_SendungID],[tblSnd_AvisoID] FROM [tblSendungen] where AbfertigungsNr='" & AbfertigungsNr & "' and FilialenNr='" & FilialenNr & "'")
Dim dt As DataTable = Nothing
If tblSnd_SendungID > 0 Then
dt = veragSQL.loadDgvBySql("SELECT TOP 1 [tblSnd_SendungID],[tblSnd_AvisoID] FROM [tblSendungen] where tblSnd_SendungID='" & tblSnd_SendungID & "' ", "AVISO")
Else
dt = veragSQL.loadDgvBySql("SELECT TOP 1 [tblSnd_SendungID],[tblSnd_AvisoID] FROM [tblSendungen] where AbfertigungsNr='" & AbfertigungsNr & "' and FilialenNr='" & FilialenNr & "'", "AVISO")
End If
If dt.Rows.Count = 0 Then Exit Sub
If Not IsNumeric(dt.Rows(0)("tblSnd_AvisoID")) Then Exit Sub
If Not IsNumeric(dt.Rows(0)("tblSnd_SendungID")) Then Exit Sub
'Daten zuweisen und speichern
Dim myVermerk As New VERAG_PROG_ALLGEMEIN.cVermerk
myVermerk.VermerkID = 0
myVermerk.AvisoID = dt.Rows(0)("tblSnd_AvisoID")
myVermerk.SendungID = dt.Rows(0)("tblSnd_SendungID")
myVermerk.Datum = If(DatumTmp, Now)
myVermerk.VermerkArt = "S"
myVermerk.VorauskasseId = VorauskasseId
myVermerk.Mitarbeiter = If(If(VERAG_PROG_ALLGEMEIN.cAllgemein.ABW_USRNAME, "") <> "", VERAG_PROG_ALLGEMEIN.cAllgemein.ABW_USRNAME, VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME) & " (AUTO)"
myVermerk.MitarbeiterId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID
Dim betragTXT = If(CDbl(vk_Betrag) > 0, " (" & CDbl(vk_Betrag).ToString("C2") & ")", "")
Dim betragTXT2 = If(CDbl(vk_Betrag) > 0, ": " & CDbl(vk_Betrag).ToString("C2") & "", "")
Select Case VermerkCodeId
Case 13 : myVermerk.Hinweis_Vermerk = "Vorauskasse angefordert" & betragTXT
Case 14 : myVermerk.Hinweis_Vermerk = "Vorauskasse erhalten" : insertBenachrichtigung(myVermerk.Hinweis_Vermerk & betragTXT2, myVermerk.AvisoID, myVermerk.SendungID, vk_QS_SachbearbeiterId)
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" And (VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ORDU" Or Array.IndexOf(New String() {"VRR", "BH", "GF"}, VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG) > -1) Then myVermerk.Mitarbeiter = "VERRECHNUNG (AUTO)"
Case 59 : myVermerk.Hinweis_Vermerk = "Vorauskasse freigegeben" : insertBenachrichtigung(myVermerk.Hinweis_Vermerk & betragTXT2, myVermerk.AvisoID, myVermerk.SendungID, vk_QS_SachbearbeiterId)
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" And (VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME = "ORDU" Or Array.IndexOf(New String() {"VRR", "BH", "GF"}, VERAG_PROG_ALLGEMEIN.cAllgemein.ABTEILUNG) > -1) Then myVermerk.Mitarbeiter = "VERRECHNUNG (AUTO)"
Case Else : Exit Sub
End Select
If VermerkCodeId IsNot Nothing Then myVermerk.VermerkCodeId = VermerkCodeId
VermerkId = VermerkeDAL.SpeichernVermerk(myVermerk)
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Sub delTop1Vermerk(FilialenNr, AbfertigungsNr, VermerkCodeId)
Try
Dim veragSQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt As DataTable = veragSQL.loadDgvBySql("Select TOP 1 [tblSnd_SendungID] FROM [tblSendungen] where AbfertigungsNr='" & AbfertigungsNr & "' and FilialenNr='" & FilialenNr & "'", "AVISO")
If dt.Rows.Count = 0 Then Exit Sub
If Not IsNumeric(dt.Rows(0)("tblSnd_SendungID")) Then Exit Sub
veragSQL.doSQL("DELETE TOP (1) FROM [Vermerke] where SendungID='" & dt.Rows(0)("tblSnd_SendungID") & "' AND VermerkeCode='" & VermerkCodeId & "' ", "AVISO")
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Sub delAllVKVermerk(FilialenNr, AbfertigungsNr)
Try
Dim veragSQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim dt As DataTable = veragSQL.loadDgvBySql("SELECT TOP 1 [tblSnd_SendungID] FROM [tblSendungen] where AbfertigungsNr='" & AbfertigungsNr & "' and FilialenNr='" & FilialenNr & "'", "AVISO")
If dt.Rows.Count = 0 Then Exit Sub
If Not IsNumeric(dt.Rows(0)("tblSnd_SendungID")) Then Exit Sub
veragSQL.doSQL("DELETE FROM [Vermerke] where SendungID='" & dt.Rows(0)("tblSnd_SendungID") & "' AND VermerkeCode IN ('13','14','59') ", "AVISO")
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
Shared Sub insertBenachrichtigung(VermerkTxt, AvisoId, SendungID, vk_QS_SachbearbeiterId)
Try
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim sendToID = -1
Dim art = "B"
'Wenn Benutzer der Vorauskasse nicht online, dann Benutzer der Sendung...
If vk_QS_SachbearbeiterId IsNot Nothing Then
sendToID = vk_QS_SachbearbeiterId
If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & AvisoId & "'", "AVISO")
art = "B"
End If
End If
'Wenn Benutzer der Sendung nicht online, Team...
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA ' --> Bezieht sich auf BU MA
' Case "IMEX" ' Bie IMEX kommen die MA durhc verschobene Dienstzeiten oft später
Case Else
If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
sendToID = SQL.DLookup("tblSnd_TeamId", "tblSendungen", "tblSnd_SendungID='" & SendungID & "'", "AVISO")
art = "T"
End If
End Select
'Wenn nicht Team, dann Benutzer des LKW ..
If sendToID <= 0 OrElse (Not VERAG_PROG_ALLGEMEIN.cSession.IS_ONLINE(sendToID, True)) Then
sendToID = SQL.DLookup("LetzterMitarbeiterId", "Aviso", "AvisoId='" & AvisoId & "'", "AVISO")
art = "B"
End If
'Wenn gefunden
If sendToID >= 0 Then
Dim status = SQL.DLookup("Status", "Aviso", "AvisoID='" & AvisoId & "'", "AVISO")
Select Case status
'Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben,,VERAG_PROG_ALLGEMEIN.cGlobal.erfasst Nue
Case VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen, VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben
'Nicht
Case Else
'6 = VK OK
VERAG_PROG_ALLGEMEIN.cAvisoBenachrichtigungen.INSERT_BENACHRICHTIGUNG(AvisoId, SendungID, 6, art, sendToID, "Eingang Vorauskasse ('" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "')", 0, , VermerkTxt)
End Select
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub
End Class