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