Files
DPM_PADM/DPM2016 - Kopie/Finanzaen/Finanzen.vb
2022-07-27 12:02:47 +02:00

327 lines
13 KiB
VB.net

Imports C1.Win.C1TrueDBGrid
Public Class Finanzen
Dim dbz As New clsDB
Dim dbk As New clsDB
Dim spalten As New Tabellenspalte
Dim m_patientnr As Integer
Property Patientnr As Integer
Get
Return m_patientnr
End Get
Set(value As Integer)
m_patientnr = value
refresh_konto()
Refresh_Zahlungen()
End Set
End Property
Dim Zahlungen As New DataTable
Dim Offene_Rechnungen As New DataTable
Sub Refresh_Zahlungen()
Try
dbz.Get_Tabledata("Zahlung", "", dbz.Get_SQL(19), Me.Patientnr.ToString)
Zahlungen = dbz.dsDaten.Tables(0).Copy
Me.C1Zahlungen.DataSource = Nothing
Me.C1Zahlungen.DataSource = Zahlungen
Me.C1Zahlungen.DataMember = dbz.dsDaten.Tables(0).TableName
spalten.Spaltentitel_aktualisieren(Me.C1Zahlungen, "Zahlungen", Zahlungen)
dbz.Get_Tabledata("OffeneRechnungen", "", dbz.Get_SQL(22), Me.Patientnr.ToString)
Offene_Rechnungen = dbz.dsDaten.Tables(0).Copy
Me.C1OffeneRechnungen.DataSource = Nothing
Me.C1OffeneRechnungen.DataSource = Offene_Rechnungen
Me.C1OffeneRechnungen.DataMember = Offene_Rechnungen.TableName
spalten.Spaltentitel_aktualisieren(Me.C1OffeneRechnungen, "Offene_Rechnungen", Offene_Rechnungen)
Me.Mahndatum1.Text = ""
Me.Mahndatum2.Text = ""
Me.Mahndatum3.Text = ""
Me.Mahnfaelligkeit1.Text = ""
Me.Mahnfaelligkeit2.Text = ""
Me.Mahnfaelligkeit3.Text = ""
Me.Mahngebühr1.Text = ""
Me.Mahngebühr2.Text = ""
Me.Mahngebühr3.Text = ""
Me.btnZurücksetzen1.Visible = False
Me.btnzurücksetzen2.Visible = False
Me.btnzurücksetzen3.Visible = False
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Public Sub Refresh_Data()
refresh_konto()
Refresh_Zahlungen()
Get_Mahndaten()
End Sub
Sub refresh_konto()
dbk.Get_Tabledata("Konto", "where aktiv=1 order by reihenfolge")
Me.cbboxKonto.DataSource = dbk.dsDaten.Tables(0)
Me.cbboxKonto.Displaymember = "Konto"
Me.cbboxKonto.Valuemember = "nrkonto"
End Sub
Private Sub txtRGNummer_TextChanged(sender As Object, e As EventArgs) Handles txtRGNummer.TextChanged
If Me.txtRGNummer.Text <> "" Then
Me.chkVorauszahlung.Checked = False
Me.chkVorauszahlung.Enabled = False
Else
Me.chkVorauszahlung.Enabled = True
End If
End Sub
Private Sub btnBuchen_Click(sender As Object, e As EventArgs) Handles btnBuchen.Click
Dim db5 As New clsDB
Dim vz As String = ""
Dim Storno As String = ""
Dim Debitor As Integer = 0
If chkVorauszahlung.Checked = False And Me.txtRGNummer.Text = "" Then
MsgBox("Zahlung kann nicht verbucht werden. Entweder als Vorauszahlung oder mit gültiger Rechnungsnummer.", MsgBoxStyle.Exclamation)
Exit Sub
End If
Dim newkey As Integer = dbz.Get_DBKey("Zahlung")
dbz.Get_Tabledata("Zahlung", "where nrzahlung=0")
Dim r As DataRow = dbz.dsDaten.Tables(0).NewRow
r("nrzahlung") = newkey
If Me.chkVorauszahlung.Checked = True Then r("nrfaktura") = 0 Else r("nrfaktura") = txtRGNummer.Text
r("vorauszahlung") = chkVorauszahlung.Checked
r("mandant") = 1
If r("nrfaktura") <> 0 Then
Try
db5.Get_Tabledata("Fakt", "", "Select * from faktura where nrfaktura='" + r("nrfaktura").ToString + "'")
Debitor = db5.dsDaten.Tables(0).Rows(0).Item("nrdebitor")
Catch
Debitor = 0
End Try
End If
If Me.Patientnr <> Debitor And Debitor > 0 Then
r("nrdebotir") = Debitor
Else
r("nrdebitor") = Me.Patientnr
End If
r("nrdebitor") = Me.Patientnr
r("betrag") = Me.diBetrag.Value
r("nrkonto") = cbboxKonto.SelectedValue
r("valuta") = Me.dtdatum.Value
r("nrbehandlung") = 0
r("status") = 0
If chkVorauszahlung.Checked Then
r("status") = 1
vz = "J"
End If
r("statusdatum") = Now
r("erstellt_am") = Now
r("mutiert_am") = Now
r("mutierer") = Globals.ActUser
r("aktiv") = True
dbz.dsDaten.Tables(0).Rows.Add(r)
dbz.Update_Data()
db5.Insert_ZJournal(r("nrfaktura"), r("nrdebitor"), db5.Get_Datavalue("Select dbo.get_name(" + r.Item("nrdebitor").ToString + ")"), r.Item("Betrag"), db5.Get_Datavalue("Select Konto from konto where nrkonto=" + r.Item("nrkonto").ToString), vz, "")
db5.Exec_SQL("Update debitor set mutiert_am=getdate(),betrag=betrag-" + r("betrag").ToString + "where nrfaktura=" + r("nrfaktura").ToString)
Me.Refresh_Zahlungen()
If vz = "J" Then
If MsgBox("Vorauszahlung einer Behandlung zuweisen?", vbYesNo + vbQuestion) Then
VorauszahlungAnBehandlungZuweisenToolStripMenuItem_Click(sender, e)
End If
End If
End Sub
Private Sub ToolStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
End Sub
Private Sub C1OffeneRechnungen_RowColChange(sender As Object, e As RowColChangeEventArgs) Handles C1OffeneRechnungen.RowColChange
Try
Me.dtdatum.Value = Now
Me.txtRGNummer.Text = Me.C1OffeneRechnungen.Columns("nrfaktura").Value
Me.diBetrag.Value = Me.C1OffeneRechnungen.Columns("Betrag").Value
get_mahndaten
Catch ex As Exception
End Try
End Sub
Sub Get_Mahndaten()
Me.Mahndatum1.Text = ""
Me.Mahndatum2.Text = ""
Me.Mahndatum3.Text = ""
Me.Mahnfaelligkeit1.Text = ""
Me.Mahnfaelligkeit2.Text = ""
Me.Mahnfaelligkeit3.Text = ""
Me.Mahngebühr1.Text = ""
Me.Mahngebühr2.Text = ""
Me.Mahngebühr3.Text = ""
Me.btnZurücksetzen1.Visible = False
Me.btnzurücksetzen2.Visible = False
Me.btnzurücksetzen3.Visible = False
Dim dd As Date
Try
Me.Mahndatum1.Text = ShortDate(Me.C1OffeneRechnungen.Columns("Mahndatum1").Value.ToString)
Me.Mahndatum2.Text = ShortDate(Me.C1OffeneRechnungen.Columns("Mahndatum2").Value.ToString)
Me.Mahndatum3.Text = ShortDate(Me.C1OffeneRechnungen.Columns("Mahndatum3").Value.ToString)
Me.Mahnfaelligkeit1.Text = ShortDate(Me.C1OffeneRechnungen.Columns("mahnfaelligkeit1").Value.ToString)
Me.Mahnfaelligkeit2.Text = ShortDate(Me.C1OffeneRechnungen.Columns("mahnfaelligkeit2").Value.ToString)
Me.Mahnfaelligkeit3.Text = ShortDate(Me.C1OffeneRechnungen.Columns("mahnfaelligkeit3").Value.ToString)
Me.Mahngebühr1.Text = Me.C1OffeneRechnungen.Columns("mahngebuehr1").Value.ToString
Me.Mahngebühr2.Text = Me.C1OffeneRechnungen.Columns("mahngebuehr2").Value.ToString
Me.Mahngebühr3.Text = Me.C1OffeneRechnungen.Columns("mahngebuehr3").Value.ToString
If Me.Mahndatum3.Text <> "" Then
Me.btnzurücksetzen3.Visible = True
Else
If Me.Mahndatum2.Text <> "" Then
Me.btnzurücksetzen2.Visible = True
Else
If Me.Mahndatum1.Text <> "" Then
Me.btnZurücksetzen1.Visible = True
End If
End If
End If
Catch
End Try
End Sub
Function ShortDate(ByVal dd As String) As String
Try
Dim d As Date
d = dd
Return d
Catch
Return ""
End Try
End Function
Private Sub ZahlungBuchenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZahlungBuchenToolStripMenuItem.Click
btnBuchen_Click(sender, e)
End Sub
Private Sub ZahlungStornierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZahlungStornierenToolStripMenuItem.Click
If MsgBox("Zahlung stornieren?", vbYesNo + vbQuestion) <> vbYes Then Exit Sub
Dim fakt As New clsFakturierung
fakt.Storno_Zahlung(Me.C1Zahlungen.Columns("nrzahlung").Value)
Me.Refresh_Zahlungen()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.txtRGNummer.Text = ""
End Sub
Private Sub ContextMenuStrip2_CursorChanged(sender As Object, e As EventArgs) Handles ContextMenuStrip2.Opening
If Me.C1Zahlungen.Columns("Zahlungsstatus").Value = "Vorauszahlung" Then
If Me.C1Zahlungen.Columns("nrbehandlung").Value = 0 Then
VorauszahlungAnBehandlungZuweisenToolStripMenuItem.Enabled = True
VorauszahlungVonBehandlungLösenToolStripMenuItem.Enabled = False
Exit Sub
Else
VorauszahlungAnBehandlungZuweisenToolStripMenuItem.Enabled = False
VorauszahlungVonBehandlungLösenToolStripMenuItem.Enabled = True
Exit Sub
End If
Else
If Me.C1Zahlungen.Columns("Status").Value = 9 Then
ZahlungStornierenToolStripMenuItem.Enabled = False
Else
ZahlungStornierenToolStripMenuItem.Enabled = True
End If
VorauszahlungAnBehandlungZuweisenToolStripMenuItem.Enabled = False
VorauszahlungVonBehandlungLösenToolStripMenuItem.Enabled = False
End If
End Sub
Private Sub VorauszahlungAnBehandlungZuweisenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorauszahlungAnBehandlungZuweisenToolStripMenuItem.Click
Dim f As New frmOffeneBehandlungen
f.NrPatient = Me.Patientnr
f.ShowDialog()
If f.DialogResult = DialogResult.OK Then
Dim db As New clsDB
db.Exec_SQL("Update zahlung set nrbehandlung=" + f.NrBehandlung.ToString + ", mutiert_am=getdate() where nrzahlung=" + Me.C1Zahlungen.Columns("nrzahlung").Value.ToString)
Me.Refresh_Zahlungen()
End If
End Sub
Private Sub VorauszahlungVonBehandlungLösenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorauszahlungVonBehandlungLösenToolStripMenuItem.Click
If MsgBox("Vorauszahlung von Behandlung entfernen?", vbYesNo + vbQuestion) = vbYes Then
Dim db As New clsDB
db.Exec_SQL("Update zahlung set nrbehandlung=0, mutiert_am=getdate() where nrzahlung=" + Me.C1Zahlungen.Columns("nrzahlung").Value.ToString)
Me.Refresh_Zahlungen()
End If
End Sub
Private Sub dtdatum_Click(sender As Object, e As EventArgs) Handles dtdatum.Click
End Sub
Private Sub dtdatum_KeyDown(sender As Object, e As KeyEventArgs) Handles dtdatum.KeyDown
If e.KeyCode = Keys.Escape Then delete_date(sender)
If e.KeyCode = Keys.Decimal Then SendKeys.SendWait("{TAB}")
End Sub
Sub delete_date(sender)
sender.value = Nothing
End Sub
Private Sub btnZurücksetzen1_Click(sender As Object, e As EventArgs) Handles btnZurücksetzen1.Click
If MsgBox("Mahnstufe 1 zurückseten?", vbYesNo + vbQuestion) = vbYes Then
Mahnstufe_Zurücksetzen(1)
End If
End Sub
Private Sub btnzurücksetzen2_Click(sender As Object, e As EventArgs) Handles btnzurücksetzen2.Click
If MsgBox("Mahnstufe 2 zurückseten?", vbYesNo + vbQuestion) = vbYes Then
Mahnstufe_Zurücksetzen(2)
End If
End Sub
Private Sub btnzurücksetzen3_Click(sender As Object, e As EventArgs) Handles btnzurücksetzen3.Click
If MsgBox("Mahnstufe 3 zurückseten?", vbYesNo + vbQuestion) = vbYes Then
Mahnstufe_Zurücksetzen(3)
End If
End Sub
Sub Mahnstufe_Zurücksetzen(ByVal typ As Integer)
Dim db As New clsDB
Dim sql As String
Select Case typ
Case 1
sql = "Exec sp_reset_mahnstufe 1," + Me.C1OffeneRechnungen.Columns("nrfaktura").Value.ToString
db.Exec_SQL(sql)
Case 2
sql = "Exec sp_reset_mahnstufe 2," + Me.C1OffeneRechnungen.Columns("nrfaktura").Value.ToString
db.Exec_SQL(sql)
Case 3
sql = "Exec sp_reset_mahnstufe 3," + Me.C1OffeneRechnungen.Columns("nrfaktura").Value.ToString
db.Exec_SQL(sql)
End Select
Refresh_Zahlungen()
Get_Mahndaten()
End Sub
Private Sub C1Zahlungen_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Zahlungen.MouseDown
Me.C1Zahlungen.Bookmark = Me.C1Zahlungen.RowContaining(e.Y)
End Sub
Private Sub C1OffeneRechnungen_MouseDown(sender As Object, e As MouseEventArgs) Handles C1OffeneRechnungen.MouseDown
Me.C1OffeneRechnungen.Bookmark = Me.C1OffeneRechnungen.RowContaining(e.Y)
End Sub
End Class