You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

372 lines
15 KiB

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
Private Sub ContextMenuStrip1_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening
Me.ErsteMahnungMenuItem.Visible = False
Me.ZweiteMahnungMenuItem.Visible = False
Me.LetzteMahnungMenuItem.Visible = False
Dim db As New clsDB
Try
db.Get_Tabledata("Mahnung", "", "Select * from View_Offene_Mahnungen where nrfaktura=" + Me.C1OffeneRechnungen.Columns("nrfaktura").Value.ToString, "", False)
If DB.dsDaten.Tables(0).Rows.Count > 0 Then
Select Case DB.dsDaten.Tables(0).Rows(0).Item("Mahnstufe")
Case 1
ErsteMahnungMenuItem.Visible = True
Case 2
ZweiteMahnungMenuItem.Visible = True
Case 3
LetzteMahnungMenuItem.Visible = True
End Select
Else
End If
Catch
End Try
End Sub
Private Sub DruckenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ErsteMahnungMenuItem.Click, ZweiteMahnungMenuItem.Click, LetzteMahnungMenuItem.Click
Try
Select Case sender.name
Case "ErsteMahnungMenuItem"
Dim s As String = Me.C1OffeneRechnungen.Columns("nrfaktura").Value.ToString
Globals.Rg_Funktionen.Mahnung(s, 1, False, False)
Refresh_Data()
Case "ZweiteMahnungMenuItem"
Dim s As String = Me.C1OffeneRechnungen.Columns("nrfaktura").Value.ToString
Globals.Rg_Funktionen.Mahnung(s, 2, False, False)
Refresh_Data()
Case "LetzteMahnungMenuItem"
Dim s As String = Me.C1OffeneRechnungen.Columns("nrfaktura").Value.ToString
Globals.Rg_Funktionen.Mahnung(s, 3, False, False)
Refresh_Data()
End Select
Catch ex As Exception
End Try
End Sub
End Class