Public Class Benhandungdetail Dim db As New clsDB Dim log As New clsLog Dim FormReadonly As Boolean = False Dim WithEvents evh As Generic_Event_Handler = Globals.EVH Dim m_behandlungsnr As Integer Dim OnGetData As Boolean = True Dim OnLoad As Boolean = False Property Behandlungsnr As Integer Get Return m_behandlungsnr End Get Set(value As Integer) m_behandlungsnr = value If value <> 0 Then Me.OnLoad = True 'Me.Enabled = False Globals.OnLoad = True Get_Stammdaten() Globals.OnLoad = True OnGetData = True Get_Data() OnGetData = False Globals.OnLoad = False Me.OnLoad = False Me.HasChanges = False 'Me.Enabled = True Globals.OnLoad = False Recalc_Totale() If Globals.Applicationtype = ApplicationTypes.Projektabrechnung And Me.lblProjekt.Visible = False And GrpPatient.Height < 100 Then GrpGaramt.Visible = False grpglndiagnose.Visible = False GrpDateien.Visible = True grpBehandlungsdaten.Text = "Projektdaten" lblRGStellung.Text = "Anfrage vom" Label2.Text = "Offert-Betrag" lblBehandlungstotal.Text = "Leistungstotal" Label7.Text = "Verantw." grpEmpfaenger.Left = GrpGaramt.Left GrpRechnungstext.Left = grpEmpfaenger.Left GrpRechnungstext.Top = grpEmpfaenger.Top + grpEmpfaenger.Height GrpPatient.Text = "Verantwortung / Rechnungsart" Me.grpZusammenfassugn.Top = grpZusammenfassugn.Top + 20 Me.GrpRaten.Top = GrpRaten.Top + 20 Me.grpBehandlungsdaten.Top = Me.grpBehandlungsdaten.Top + 20 Me.GrpPatient.Height = Me.GrpPatient.Height + 20 Me.Label7.Top = Label7.Top + 20 Me.cbboxnrbehandler.Top = Me.cbboxnrbehandler.Top + 20 Me.Label6.Top = Label6.Top + 20 Me.cbboxNRESTyp.Top = Me.cbboxNRESTyp.Top + 20 Me.lblProjekt.Visible = True Me.txtProjekt.Visible = True Me.lblTaxpunkte.Visible = False Me.cbboxNrtaxpunkt.Visible = False Me.chkAndrucken_Taxpunkte.Text = "Betrag andrucken" Me.grpEmpfaenger.Visible = False Me.GrpRechnungstext.Top = Me.grpEmpfaenger.Top GrpDateien.Top = GrpRechnungstext.Top + GrpRechnungstext.Height GrpDateien.Left = GrpRechnungstext.Left GrpDateien.Width = GrpRechnungstext.Width Me.txtAnsprechpartner.Visible = True Me.lblansprechperson.Visible = True Me.lblunserereferenz.Visible = True Me.txtunserereferenz.Visible = True If db.Get_Option(8000) = "True" Then Me.GrpGaramt.Visible = False End If lblRechnungstyp.Visible = False lblAbrechnungstyp.Visible = False lblAnsatz.Visible = False lblFrankenwert.Visible = False lblTaxpunkte.Visible = False cbboxNRRGtyp.Visible = False cbboxNrAbrechnungstyp.Visible = False cbboxNrAnsatz.Visible = False mtxtTaxpunktwert.Visible = False cbboxNrtaxpunkt.Visible = False lblRabattwert.Top = lblRechnungstyp.Top chkRabattGesamt.Top = lblRechnungstyp.Top mtxtRabatt.Top = lblRechnungstyp.Top chkRabattGesamt.Top = lblAbrechnungstyp.Top chkMitdatum.Top = lblAnsatz.Top chkAndrucken_Taxpunkte.Top = chkRabattGesamt.Top grpAbrechnung.Height = GrpPatient.Height grpAbrechnung.Width = GrpRechnungstext.Width GrpRechnungstext.Top = grpBehandlungsdaten.Top GrpRechnungstext.Height = GrpRechnungstext.Height * 2 chkOhneMwst.Visible = True chkOhneMwst.Top = chkMitdatum.Top End If End If End Set End Property Dim M_behandlungsstatus As Integer Property Behandlungsstatus As Integer Get Return M_behandlungsstatus End Get Set(value As Integer) M_behandlungsstatus = value enable_disable_fields() End Set End Property Dim m_haschanges As Boolean Property HasChanges As Boolean Get Return m_haschanges End Get Set(value As Boolean) m_haschanges = value End Set End Property Dim m_patientnr As Integer Property Patientnr As Integer Get Return m_patientnr End Get Set(value As Integer) m_patientnr = value End Set End Property #Region "Closing / Check_Changes" ''' ''' Prüfung, ob Datenänderungen vorgenommen wurden. ''' ''' Public Function Check_Changes() As Boolean If Me.FormReadonly Then Return True Exit Function End If Dim msgres As MsgBoxResult If Me.HasChanges Then msgres = MsgBox("Daten wurden verändert. Wollen Sie die Änderungen speichern", vbYesNo + vbQuestion) Select Case msgres Case MsgBoxResult.Yes Save_Data() Return True Case MsgBoxResult.Cancel Return False Case MsgBoxResult.No Me.HasChanges = False Return True End Select Else Return True End If End Function #End Region #Region "Eventhandler ChangeEreignisse" ''' ''' Allg Eventhandler für Chanage-Ereignise festlegen ''' ''' ''' Private Sub AddChanges(ByVal Container As Control) Dim l As New List(Of Control) Me.GetControl(Me, "*", l) Dim evh As EventHandler = AddressOf ChangesMade For Each c As Control In l If TypeOf c Is TextBox Then Dim ctl As TextBox = c AddHandler ctl.TextChanged, evh End If If TypeOf c Is MaskedTextBox Then Dim ctl As MaskedTextBox = c AddHandler ctl.TextChanged, evh End If If TypeOf c Is ComboBox Then Dim ctl As ComboBox = c AddHandler ctl.SelectedValueChanged, evh End If If TypeOf c Is RichTextBox Then Dim ctl As RichTextBox = c AddHandler ctl.TextChanged, evh End If If TypeOf c Is CheckBox Then If c.Name <> "cboxNurAktive" Then Dim ctl As CheckBox = c AddHandler ctl.CheckedChanged, evh End If End If If TypeOf c Is DateTimePicker Then Dim ctl As DateTimePicker = c AddHandler ctl.ValueChanged, evh End If If TypeOf c Is DevComponents.Editors.DateTimeAdv.DateTimeInput Then Dim ctl As DevComponents.Editors.DateTimeAdv.DateTimeInput = c AddHandler ctl.ValueChanged, evh End If If TypeOf c Is CheckedListBox Then Dim ctl As CheckedListBox = c AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange End If Next End Sub ''' ''' Envent-Handler für Change-Ereignisse ''' ''' ''' ''' Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) Me.HasChanges = True Dim objtype As System.Type = sender.GetType If objtype.Name = "MaskedTextBox" Then Dim o As MaskedTextBox = sender If o.Text = "01.01.1900" Then o.Text = " . . " End If End Sub Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Me.HasChanges = True End Sub ''' ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung ''' ''' Base-Contrlo (z.B. aktuelles Formular ''' Schlüssel welcher gesucht werden soll ''' Liste der gefundenen Objekte ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. ''' ''' Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean If L Is Nothing Then L = New List(Of Control) Dim Gut As Boolean Dim ReturnFlag As Boolean = False If Key IsNot Nothing Then Key = Key.ToLower If BaseControl.HasChildren = True Then For Each ctl As Control In BaseControl.Controls Gut = False If Key Is Nothing Then Gut = True Else If ctl.Name.Length >= Key.Length Then Key = Key.ToLower If Key.StartsWith("*") Then If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True ElseIf Key.EndsWith("*") Then If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True Else If Key = ctl.Name.ToLower Then Gut = True End If End If End If If Gut = True Then L.Add(ctl) If ReturnAtFirstElement = True Then ReturnFlag = True End If If ReturnFlag = False Then Call GetControl(ctl, Key, L) End If Next End If If L.Count - 1 > -1 Then Return True Else Return False End If End Function #End Region #Region "Get_Save" Dim NrAnsprechpartner As Integer = 0 Sub Get_Data() 'Me.lblGarantText.Text = "" db.Get_Tabledata("behandlu", " where nrbehandlung=" + Me.Behandlungsnr.ToString) Dim r As DataRow = db.dsDaten.Tables(0).Rows(0) Me.Behandlungsstatus = r("status") Try Me.NrAnsprechpartner = r("nrAnsprechpartner") Catch Me.NrAnsprechpartner = 0 End Try Try Me.cbboxNrVerguetungsart.SelectedValue = r("Verguetungsart") Catch ex As Exception Me.cbboxNrVerguetungsart.SelectedValue = -1 End Try Get_Data_Controls(Me, r) Update_cbboxnrtaxpunkt() Try If r("nrgarant") > 0 Then Get_Garantdata(r("nrgarant")) End If Catch ex As Exception End Try Try If db.dsDaten.Tables(0).Rows(0).Item("Status") = 3 Then Me.lblfakturanr.Visible = True Me.txtrgnummer.Visible = True Dim dbf As New clsDB dbf.Get_Tabledata("Faktua", "", "Select nrfaktura, datum From faktura where nrbehandlung=" + db.dsDaten.Tables(0).Rows(0).Item("nrbehandlung").ToString + " and status<>9 and nrfaktura=nrhauptfaktura") Me.txtrgnummer.Text = "" Dim d As Date d = dbf.dsDaten.Tables(0).Rows(0).Item(1) Me.txtrgnummer.Text = dbf.dsDaten.Tables(0).Rows(0).Item(0).ToString + " / " + d.ToString("dd.MM.yyyy") dbf.Dispose() Else Me.lblfakturanr.Visible = False Me.txtrgnummer.Visible = False End If Catch Me.lblfakturanr.Visible = False Me.txtrgnummer.Visible = False End Try Try If r("nrgarant") > 0 Then check_mailversand(r("nrgarant")) Else check_mailversand(r("nrpatient")) Catch End Try If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then Try Me.txtAnsprechpartner.Text = Me.txtGLN_Liste.Text Me.txtunserereferenz.Text = Me.txtFallnummer.Text Me.chkOhneMwst.Checked = Me.txtDiagnose.Text.ToString = "True" Catch ex As Exception Me.txtAnsprechpartner.Text = "" Me.txtunserereferenz.Text = "" Me.chkOhneMwst.Checked = False End Try End If chk_dateien() AddChanges(Me) Me.HasChanges = False End Sub Sub check_mailversand(ByVal key As Integer) Me.lblMailKommunikaton.Visible = False Dim db As New clsDB If key > 49999 Then db.Get_Tabledata("firma", " where nrfirma=" + key.ToString) Else db.Get_Tabledata("privat", " where nrprivat=" + key.ToString) End If If db.dsDaten.Tables(0).Rows(0).Item("Mail_Kommunikation") = True Then Me.lblMailKommunikaton.Visible = True If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then Me.lblMailKommunikaton.Visible = False End Sub Sub Get_Data_Controls(ByVal ictl As Control, ByRef R As DataRow) For Each ctl As Control In ictl.Controls If ctl.Controls.Count = 0 Or (ctl.Controls.Count = 1 And Microsoft.VisualBasic.Left(UCase(ctl.Name), 5) = "CBBOX") Then get_data_for_control(ctl, R) Else Get_Data_Controls(ctl, R) End If Next End Sub Sub get_data_for_control(ByRef ctl As Control, ByRef R As DataRow) For Each c As DataColumn In db.dsDaten.Tables(0).Columns Try If UCase(ctl.Name) = "TXT" + UCase(c.ColumnName) Then ctl.Text = R(c.ColumnName) 'Exit For End If If UCase(ctl.Name) = "TXTC" + UCase(c.ColumnName) Then Try Dim wert As Double wert = R(c.ColumnName) ctl.Text = wert.ToString("N2") Catch ctl.Text = "0.00" End Try 'Exit For End If If UCase(ctl.Name) = "MTXT" + UCase(c.ColumnName) Then Dim mtxt As Object mtxt = ctl Dim v As Double = R(c.ColumnName) Dim s As String s = v.ToString("F") mtxt.Text = s 'Exit For End If If UCase(ctl.Name) = "CBBOX" + UCase(c.ColumnName) Then Dim ct As MyCombobox Dim o As Object = ctl Try o.SelectedValue = R(c.ColumnName) Catch ex As Exception MsgBox(ex.Message) o.selectedvalue = -1 End Try Try Catch End Try 'Exit For End If If UCase(ctl.Name) = "DT" + UCase(c.ColumnName) Then Dim dt As DateTimePicker dt = ctl Try dt.Value = R(c.ColumnName) 'Exit For Catch ex As Exception dt.Value = Nothing End Try End If If UCase(ctl.Name) = "DDT" + UCase(c.ColumnName) Then Dim dt As DevComponents.Editors.DateTimeAdv.DateTimeInput dt = ctl Try dt.Value = R(c.ColumnName) 'Exit For Catch ex As Exception dt.Value = Nothing End Try End If If UCase(ctl.Name) = "CHK" + UCase(c.ColumnName) Then Dim dt As CheckBox dt = ctl Try dt.Checked = R(c.ColumnName) 'Exit For Catch dt.Checked = False End Try End If Catch ex As Exception MsgBox(ex.Message + " / " + ctl.Name + " / " + R(c.ColumnName)) End Try Next If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then Me.txtProjekt.Text = Me.txtBehandlungsgrund.Text End If End Sub Sub Get_Garantdata(ByVal Key As Integer) Dim db1 As New clsDB Dim garantdatan As New DataTable If Key > 49999 Then db1.Get_Tabledata("Firma", "", "Select nrfirma, name1 +', '+ort +' ('+ltrim(rtrim(str(nrfirma)))+')' as Name1 from firma where aktiv=1 and nrfirma=" + Key.ToString + " order by name1") 'Me.lblGarantText.Text = db.dsDaten.Tables(0).Rows(0).Item("nrfirma").ToString + " - " + db.dsDaten.Tables(0).Rows(0).Item("name1") Else db1.Get_Tabledata("Privat", "", "Select nrprivat,name+' '+vorname+', '+plz+' '+ort +' ('+ltrim(rtrim(str(nrprivat)))+')' as Name1 from privat where nrprivat=" + Key.ToString + " and aktiv=1 and (garant=1 or gesvertreter=1) order by name, vorname") 'Me.lblGarantText.Text = db.dsDaten.Tables(0).Rows(0).Item("nrprivat").ToString + " - " + db.dsDaten.Tables(0).Rows(0).Item("name1") End If Me.cbboxNrGarant.DataSource = Nothing garantdatan = db1.dsDaten.Tables(0).Copy Me.cbboxNrGarant.DataSource = garantdatan If Key > 49999 Then Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrfirma" Else Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrprivat" End If If Key > 49999 Then get_ansprechpartner(Key) End If db1.Dispose() Application.DoEvents() End Sub Sub get_ansprechpartner(ByVal key As Integer) Try Dim ansprechpartnerdaten As New DataTable db.Get_Tabledata("FAAP", "", "Select nrfirmaap, Name from firmaap where nrfirma=" + key.ToString) Me.cbboxNrAnsprechpartner.DataSource = Nothing ansprechpartnerdaten = db.dsDaten.Tables(0).Copy Me.cbboxNrAnsprechpartner.DataSource = ansprechpartnerdaten Me.cbboxNrAnsprechpartner.Displaymember = "Name" Me.cbboxNrAnsprechpartner.Valuemember = "nrfirmaap" If Me.NrAnsprechpartner <> 0 Then Me.cbboxNrAnsprechpartner.SelectedValue = Me.NrAnsprechpartner End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Sub Save_Data() If Globals.OnLoad = True Then Exit Sub If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then Me.txtBehandlungsgrund.Text = Me.txtProjekt.Text Me.txtGLN_Liste.Text = Me.txtAnsprechpartner.Text Me.txtFallnummer.Text = Me.txtunserereferenz.Text Me.txtDiagnose.Text = Me.chkOhneMwst.Checked End If If Me.Behandlungsstatus <> 1 And Me.Behandlungsstatus <> 4 Then Exit Sub db.Get_Tabledata("behandlu", " where nrbehandlung=" + Me.Behandlungsnr.ToString) Dim r As DataRow = db.dsDaten.Tables(0).Rows(0) For Each ctl As Control In Me.Controls If UCase(ctl.Name.Substring(0, 3)) = "GRP" Then save_controldata(r, ctl) End If Next Try r("verguetungsart") = Me.cbboxNrVerguetungsart.SelectedValue Catch End Try r("Mutiert_am") = Now r("mutierer") = Globals.ActUser r("total") = Me.txtcTotal.Text db.Update_Data() Me.HasChanges = False End Sub Sub save_controldata(r As DataRow, ictl As Control) For Each c As DataColumn In db.dsDaten.Tables(0).Columns For Each Ctl As Control In ictl.Controls If UCase(Ctl.Name) = "TXT" + UCase(c.ColumnName) Then If UCase(Ctl.Name) <> "TXTMUTIERT_AM" And UCase(Ctl.Name) <> "TXTERSTLLT_AM" Then r(c.ColumnName) = Ctl.Text 'Exit For End If End If If UCase(Ctl.Name) = "MTXT" + UCase(c.ColumnName) Then r(c.ColumnName) = Ctl.Text 'Exit For End If If UCase(Ctl.Name) = "CBBOX" + UCase(c.ColumnName) Then Dim ct As MyCombobox Dim o As Object = Ctl Try r(c.ColumnName) = o.selectedvalue Catch ex As Exception r(c.ColumnName) = 0 End Try 'Exit For End If If UCase(Ctl.Name) = "DT" + UCase(c.ColumnName) Then Dim dt As DateTimePicker dt = Ctl r(c.ColumnName) = dt.Value 'Exit For End If If UCase(Ctl.Name) = "CHK" + UCase(c.ColumnName) Then Dim dt As CheckBox dt = Ctl r(c.ColumnName) = dt.Checked 'Exit For End If If UCase(Ctl.Name) = "DDT" + UCase(c.ColumnName) Then Dim dt As DevComponents.Editors.DateTimeAdv.DateTimeInput dt = Ctl If Year(dt.Value) < 1901 Then r(c.ColumnName) = System.DBNull.Value Else r(c.ColumnName) = dt.Value 'xit For End If Next Next End Sub #End Region Public Sub chk_dateien() If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then Dim db As New clsDB Me.lstdateien.Items.Clear() db.Get_Tabledata("Dateien", "", "Select * from Behandlungsdateien where nrbehandlung=" & Me.Behandlungsnr.ToString, "") For Each r In db.dsDaten.Tables(0).Rows Me.lstdateien.Items.Add(r("dateiverweis")) Next End If End Sub Public Sub Get_Stammdaten() 'Me.OnLoad = True Me.cbboxnrbehandler.Dataselection = db.Get_SQL(2) Me.cbboxnrbehandler.TableAlias = "Behandler_BH" Me.cbboxnrbehandler.Table = "Behandler" Me.cbboxnrbehandler.Displaymember = "Name" Me.cbboxnrbehandler.Valuemember = "nrprivat" Me.cbboxNrZuweiser.Dataselection = db.Get_SQL(32) Me.cbboxNrZuweiser.TableAlias = "Zuweiser" Me.cbboxNrZuweiser.Table = "Behandler" Me.cbboxNrZuweiser.Displaymember = "Name" Me.cbboxNrZuweiser.Valuemember = "nrprivat" Me.cbboxNrGesetz.Dataselection = db.Get_SQL(33) Me.cbboxNrGesetz.TableAlias = "Gesetz" Me.cbboxNrGesetz.Table = "Gesetz" Me.cbboxNrGesetz.Displaymember = "Gesetz" Me.cbboxNrGesetz.Valuemember = "nrgesetz" Me.cbboxNrBehandlungsart.Dataselection = "Select * from Behandlungsart" Me.cbboxNrBehandlungsart.TableAlias = "Behandlungsart" Me.cbboxNrBehandlungsart.Table = "Behandlungsart" Me.cbboxNrBehandlungsart.Displaymember = "Behandlungsart" Me.cbboxNrBehandlungsart.Valuemember = "NrBehandlungsart" Me.cbboxNRESTyp.Dataselection = "Select * FROM ESTYP WHERE AKTIV=1" Me.cbboxNRESTyp.TableAlias = "ESTYP_BH" Me.cbboxNRESTyp.Table = "ESTyp" Me.cbboxNRESTyp.Displaymember = "estyp" Me.cbboxNRESTyp.Valuemember = "nrestyp" Me.cbboxNRRGtyp.TableAlias = "RGTYP_BH" Me.cbboxNRRGtyp.Table = "RGTyp" Me.cbboxNRRGtyp.Displaymember = "bezd" Me.cbboxNRRGtyp.Valuemember = "nrrgtyp" Me.cbboxNrAbrechnungstyp.TableAlias = "AbrTyp_BH" Me.cbboxNrAbrechnungstyp.Table = "Abrtyp" Me.cbboxNrAbrechnungstyp.Displaymember = "bezd" Me.cbboxNrAbrechnungstyp.Valuemember = "nrabrechnungstyp" Me.cbboxNrAnsatz.Table = "Ansatz" Me.cbboxNrAnsatz.Displaymember = "Funktionsbezeichnung" Me.cbboxNrAnsatz.Valuemember = "NRAnsatz" 'Me.cbboxNRESTyp.Dataselection = "Select * FROM taxpunkt WHERE AKTIV=1" Me.cbboxNrtaxpunkt.Table = "Taxpunkt" Me.cbboxNrtaxpunkt.Displaymember = "Bezd" Me.cbboxNrtaxpunkt.Valuemember = "nrtaxpunkt" Me.cbboxrgtext.Dataselection = db.Get_SQL(21) Me.cbboxrgtext.TableAlias = "Rechnungstext" Me.cbboxrgtext.Table = "Rechtext" Me.cbboxrgtext.Displaymember = "Textd" Me.cbboxrgtext.Valuemember = "Nrrechnungstext" ' Me.OnLoad = False Me.cbboxNrVerguetungsart.Dataselection = "Select * from verguetungsart where aktiv=1 order by nreintrag" Me.cbboxNrVerguetungsart.TableAlias = "Verguetungsart" Me.cbboxNrVerguetungsart.Table = "Verguetungsart" Me.cbboxNrVerguetungsart.Displaymember = "Verguetungsart" Me.cbboxNrVerguetungsart.Valuemember = "Nreintrag" Dim dbx As New clsDB Try Me.lblahvnr.Text = dbx.Get_Datavalue("Select ahvnr from privat where nrprivat=" + Me.Patientnr.ToString) Catch Me.lblahvnr.Text = "" End Try dbx.Dispose() End Sub Public Sub Recalc_Totale() If OnLoad Then Exit Sub Dim zdb As New clsDB Dim vz As Double = 0 zdb.Get_Tabledata("Zahlung", "where aktiv=1 And vorauszahlung=1 And nrbehandlung=" + Me.Behandlungsnr.ToString) For Each r As DataRow In zdb.dsDaten.Tables(0).Rows vz = vz + r("Betrag") Next zdb.Dispose() Dim rz As Double Try If Me.txtAnzahlraten.Text > 0 Then rz = Me.mtxtRatenzuschlag.Text Else rz = 0 End If Catch ex As Exception rz = 0 End Try Dim ssototal As Double Dim ldb As New clsDB If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then ldb.Get_Tabledata("View_Leistungen", "where nrbehandlung=" + Me.Behandlungsnr.ToString + " And aktiv=1") Else ldb.Get_Tabledata("Leistung", "where nrbehandlung=" + Me.Behandlungsnr.ToString + " And aktiv=1") End If Dim total As Double For Each r As DataRow In ldb.dsDaten.Tables(0).Rows If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then If r("rabatt") = True Then ssototal = ssototal + r("total") End If total = total + r("Total") Else If r("aktiv") = True Then If r("SSO_Nummer").ToString.Substring(0, 1) = "4" Then ssototal = ssototal + r("total") If r("SSO_Nummer").ToString.Substring(0, 1) = "9" Then ssototal = ssototal + r("total") 'If r("sso_Nummer") > 3999 And r("sso_nummer") < 5000 Then ssototal = ssototal + r("total") total = total + r("Total") End If End If Next Me.txtcBehandlungstotal.Text = total.ToString("N2") total = 0 ldb.Dispose() total = total + txtcBehandlungstotal.Text Me.txtcRatenzuschlat.Text = Globals.Round5(rz.ToString).ToString total = total - vz Me.txtcVorauszahlungen.Text = Globals.Round5(vz.ToString).ToString Try Dim stotal As Double = total If chkRabattGesamt.Checked Then total = (100 - mtxtRabatt.Text) * total / 100 Else Dim xxtotal As Double Dim xabs As String = db.Get_Option(10000) If UCase(xabs) <> "TRUE" Then total = stotal - (ssototal / 100 * Me.mtxtRabatt.Text) Else Dim xldb As New clsDB If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then xldb.Get_Tabledata("View_Leistungen", "where nrbehandlung=" + Me.Behandlungsnr.ToString + " And aktiv=1") Else xldb.Get_Tabledata("Leistung", "where absolut=0 and nrbehandlung=" + Me.Behandlungsnr.ToString + " And aktiv=1") End If For Each r As DataRow In xldb.dsDaten.Tables(0).Rows If Globals.Applicationtype = ApplicationTypes.Projektabrechnung Then If r("rabatt") = True Then xxtotal = xxtotal + r("total") End If Else If r("aktiv") = True Then If r("SSO_Nummer").ToString.Substring(0, 1) = "4" Then xxtotal = xxtotal + r("total") If r("SSO_Nummer").ToString.Substring(0, 1) = "9" Then xxtotal = xxtotal + r("total") 'If r("sso_Nummer") > 3999 And r("sso_nummer") < 5000 Then ssototal = ssototal + r("total") End If End If Next xldb.Dispose() End If total = stotal - (xxtotal / 100 * Me.mtxtRabatt.Text) End If Me.txtcRabatt.Text = ((stotal - total) * -1).ToString Me.txtcRabatt.Text = Globals.Round5(Me.txtcRabatt.Text) Catch ex As Exception total = 0 End Try total = total + rz Me.txtcTotal.Text = Globals.Round5(total.ToString).ToString evh.Fire_Totale_Berechnet(Me.Behandlungsnr) Try evh.Fire_Total_Berechnet(Me.Behandlungsnr, Me.txtcTotal.Text) Catch End Try End Sub Private Sub evh_Leistung_Changed(Behandlungsnummer As Integer, total As Double) Handles evh.Leistung_Changed If Me.Behandlungsnr = Behandlungsnummer Then Me.txtcBehandlungstotal.Text = total.ToString("N2") End If Recalc_Totale() End Sub Private Sub evh_PatSaved(Nr As Integer) Handles evh.PatSaved If Me.Patientnr = Nr Then Save_Data() End Sub Private Sub evh_Totale_Berechnet(behandlungsnummer As Integer) Handles evh.Totale_Berechnet If Me.Behandlungsnr = behandlungsnummer Then If Globals.OnLoad = True Then Exit Sub Save_Data() ' evh.Fire_Behandlung_Changed(Me.Behandlungsnr, Me.Patientnr) End If End Sub 'Private Sub mtxtTaxpunktwert_Leave(sender As Object, e As EventArgs) Handles mtxtTaxpunktwert.Leave ' If Not IsNumeric(Me.mtxtTaxpunktwert.Text) Then ' MsgBox("Wert ungültig.", MsgBoxStyle.Exclamation) ' Me.mtxtTaxpunktwert.Focus() ' Me.mtxtTaxpunktwert.SelectAll() ' Exit Sub ' End If ' evh.fire_Taxpunktwert_Changed(Me.Behandlungsnr, Me.Patientnr, Me.mtxtTaxpunktwert.Text) 'End Sub 'Private Sub txtcRabatt_Leave(sender As Object, e As EventArgs) Handles mtxtRabatt.Leave ' If Not IsNumeric(Me.mtxtRabatt.Text) Then ' MsgBox("Wert ungültig.", MsgBoxStyle.Exclamation) ' Me.mtxtRabatt.Focus() ' Me.mtxtRabatt.SelectAll() ' Exit Sub ' End If ' Recalc_Totale() 'End Sub Private Sub txtcTotal_TextChanged(sender As Object, e As EventArgs) Handles txtcTotal.TextChanged Try evh.Fire_Total_Berechnet(Me.Behandlungsnr, Me.txtcTotal.Text) Catch End Try End Sub Private Sub cbboxNRRGtyp_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxNRRGtyp.SelectedIndexChanged If OnLoad Then Exit Sub If OnGetData Then Exit Sub Try For Each r As DataRow In IntTables.Inttables.Tables("rgtyp").Rows If r("nrrgtyp") = Me.cbboxNRRGtyp.SelectedValue Then Me.cbboxNrAbrechnungstyp.SelectedValue = r.Item("nrabrechnungstyp") End If Next Catch End Try End Sub Private Sub cbboxNrAbrechnungstyp_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxNrAbrechnungstyp.SelectedValueChanged If OnLoad Then Exit Sub If OnGetData Then Exit Sub Update_cbboxnrtaxpunkt() End Sub Private Sub Update_cbboxnrtaxpunkt() Try For Each r As DataRow In IntTables.Inttables.Tables("abrtyp_bh").Rows If r("Nrabrechnungstyp") = Me.cbboxNrAbrechnungstyp.SelectedValue Then Me.cbboxNrAnsatz.SelectedValue = r("nransatz") Me.cbboxNrtaxpunkt.SelectedValue = r("nrtaxpunkt") If r("taxpunktwertfix") = True Then Me.cbboxNrtaxpunkt.Enabled = False Else Me.cbboxNrtaxpunkt.Enabled = True If r("ansatzfix") = True Then mtxtTaxpunktwert.Enabled = False Else Me.mtxtTaxpunktwert.Enabled = True End If Next Catch ex As Exception ' MsgBox(ex.Message) End Try End Sub Private Sub cbboxNrAnsatz_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxNrAnsatz.SelectedValueChanged If OnLoad Then Exit Sub If OnGetData Then Exit Sub Try For Each r As DataRow In IntTables.Inttables.Tables("ansatz").Rows If r("nransatz") = Me.cbboxNrAnsatz.SelectedValue Then mtxtTaxpunktwert.Text = r("taxpunktwert") Recalc_Totale() End If Next Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub tsbtnSave_Click(sender As Object, e As EventArgs) Handles tsbtnSave.Click Me.Save_Data() End Sub Sub Enable_Disable_fields(Optional enable As Boolean = False) Select Case Me.Behandlungsstatus Case 1, 4 enable = True Case Else enable = False End Select Me.GrpPatient.Enabled = enable Me.grpAbrechnung.Enabled = enable Me.grpBehandlungsdaten.Enabled = enable Me.GrpGaramt.Enabled = enable Me.GrpRaten.Enabled = enable Me.tsbtnSave.Enabled = enable Me.grpglndiagnose.Enabled = enable Me.GrpRechnungstext.Enabled = enable Me.grpEmpfaenger.Enabled = enable End Sub Private Sub txtAnzahlRaten_ValueChanged(sender As Object, e As EventArgs) Handles txtAnzahlraten.TextChanged Me.Recalc_Totale() End Sub Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Dim f As New frmReportView(1, True, "Vorschau Rechung", " where nrbehandlung = " + Me.Behandlungsnr.ToString, Me.Behandlungsnr.ToString) f.Show() 'f.Vorschau_Rechnung() f.Close() End Sub Private Sub mtxtRatenzuschlag_TextChanged(sender As Object, e As EventArgs) Handles mtxtRatenzuschlag.TextChanged Me.Recalc_Totale() End Sub Private Sub mtxtRabatt_TextChanged(sender As Object, e As EventArgs) Handles mtxtRabatt.TextChanged Recalc_Totale() End Sub Private Sub chkRabattGesamt_CheckedChanged(sender As Object, e As EventArgs) Handles chkRabattGesamt.CheckedChanged Recalc_Totale() End Sub Private Sub rbversicherung_CheckedChanged(sender As Object, e As EventArgs) Handles rbversicherung.CheckedChanged If rbversicherung.Checked Then Dim garantdatan As New DataTable db.Get_Tabledata("Firma", "", "Select nrfirma, name1 +', '+ort +' ('+ltrim(rtrim(str(nrfirma)))+')' as Name1 from firma where vs=1 and aktiv=1 order by name1") Me.cbboxNrGarant.DataSource = Nothing garantdatan = db.dsDaten.Tables(0).Copy Me.cbboxNrGarant.DataSource = garantdatan Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrfirma" Me.cbboxNrGarant.Focus() Me.rbversicherung.Checked = False End If End Sub Private Sub rbfs_CheckedChanged(sender As Object, e As EventArgs) Handles rbfs.CheckedChanged If rbfs.Checked Then Dim garantdatan As New DataTable db.Get_Tabledata("Firma", "", "Select nrfirma, name1 +', '+ort +' ('+ltrim(rtrim(str(nrfirma)))+')' as Name1 from firma where fs=1 and aktiv=1 order by name1") Me.cbboxNrGarant.DataSource = Nothing garantdatan = db.dsDaten.Tables(0).Copy Me.cbboxNrGarant.DataSource = garantdatan Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrfirma" Me.cbboxNrGarant.Focus() Me.rbfs.Checked = False End If End Sub Private Sub rbiv_CheckedChanged(sender As Object, e As EventArgs) Handles rbiv.CheckedChanged If rbiv.Checked Then Dim garantdatan As New DataTable db.Get_Tabledata("Firma", "", "Select nrfirma, name1 +', '+ort +' ('+ltrim(rtrim(str(nrfirma)))+')' as Name1 from firma where iv=1 and aktiv=1 order by name1") Me.cbboxNrGarant.DataSource = Nothing garantdatan = db.dsDaten.Tables(0).Copy Me.cbboxNrGarant.DataSource = garantdatan Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrfirma" Me.cbboxNrGarant.Focus() Me.rbiv.Checked = False End If End Sub Private Sub rbdiverseFirmen_CheckedChanged(sender As Object, e As EventArgs) Handles rbdiverseFirmen.CheckedChanged Dim garantdatan As New DataTable db.Get_Tabledata("Firma", "", "Select nrfirma, name1 +', '+ort +' ('+ltrim(rtrim(str(nrfirma)))+')' as Name1 from firma where aktiv=1 order by name1") Me.cbboxNrGarant.DataSource = Nothing garantdatan = db.dsDaten.Tables(0).Copy Me.cbboxNrGarant.DataSource = garantdatan Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrfirma" Me.cbboxNrGarant.Focus() Me.rbdiverseFirmen.Checked = False End Sub Private Sub rbkk_CheckedChanged(sender As Object, e As EventArgs) Handles rbkk.CheckedChanged If rbkk.Checked Then Dim garantdatan As New DataTable db.Get_Tabledata("Firma", "", "Select nrfirma, name1 +', '+ort +' ('+ltrim(rtrim(str(nrfirma)))+')' as Name1 from firma where kk=1 and aktiv=1 order by name1") Me.cbboxNrGarant.DataSource = Nothing garantdatan = db.dsDaten.Tables(0).Copy Me.cbboxNrGarant.DataSource = garantdatan Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrfirma" Me.cbboxNrGarant.Focus() Me.rbkk.Checked = False End If End Sub Private Sub rbPrivatPersonen_CheckedChanged(sender As Object, e As EventArgs) Handles rbPrivatPersonen.CheckedChanged If rbPrivatPersonen.Checked Then Dim garantdatan As New DataTable db.Get_Tabledata("Privat", "", "Select nrprivat,name+' '+vorname+', '+plz+' '+ort +' ('+ltrim(rtrim(str(nrprivat)))+')' as Name1 from privat where ltrim(name)<>'' and aktiv=1 and (garant=1 or gesvertreter=1) order by name, vorname") Me.cbboxNrGarant.DataSource = Nothing garantdatan = db.dsDaten.Tables(0).Copy Me.cbboxNrGarant.DataSource = garantdatan Me.cbboxNrGarant.Displaymember = "name1" Me.cbboxNrGarant.Valuemember = "nrprivat" Me.cbboxNrGarant.Focus() Me.rbPrivatPersonen.Checked = False End If End Sub Private Sub ToolStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked End Sub Private Sub cbboxNrGarant_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxNrGarant.SelectedIndexChanged Try Try check_mailversand(Me.cbboxNrGarant.SelectedValue) Catch End Try get_ansprechpartner(Me.cbboxNrGarant.SelectedValue) Catch End Try End Sub Private Sub mtxtTaxpunktwert_TextChanged(sender As Object, e As EventArgs) Handles mtxtTaxpunktwert.Leave If Me.Behandlungsstatus <> 1 And Me.Behandlungsstatus <> 4 Then Exit Sub Me.Save_Data() db.Recalc_Leistungen(Me.Behandlungsnr, Me.mtxtTaxpunktwert.Text) Me.Save_Data() Recalc_Totale() End Sub Private Sub cbboxNrAnsatz_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles cbboxNrAnsatz.SelectedIndexChanged If Me.Behandlungsstatus <> 1 And Me.Behandlungsstatus <> 4 Then Exit Sub Me.Save_Data() db.Recalc_Leistungen(Me.Behandlungsnr, Me.mtxtTaxpunktwert.Text) Me.Save_Data() Recalc_Totale() End Sub Private Sub ToolStripButton1_Click_1(sender As Object, e As EventArgs) End Sub Public Sub Sofortrechnung_als_pdf(Optional alsMail As Boolean = False, Optional Mailtext As Integer = 0) Sofortrechnung(True, alsMail, Mailtext) End Sub Public Sub Sofortrechung_normal() Sofortrechnung(False) End Sub 'Public Sub ToolStripDropDownButton1_Click(sender As Object, e As EventArgs) Handles ToolStripDropDownButton1.Click Public Sub Sofortrechnung(ByVal alsPDF As Boolean, Optional alsMail As Boolean = False, Optional Mailtext As Integer = 0) Globals.pdfCollection.Clear() Me.Save_Data() Dim result As String = db.Get_Datavalue("Select status from behandlu where nrbehandlung=" + Me.Behandlungsnr.ToString, "") If result <> 2 And result <> 5 Then If MsgBox("Es können nur abgeschlossene Rechnungen/KV gedruckt und verbucht werden. Abschliessen und drucken/verbuchen?", vbYesNo + vbQuestion) = vbYes Then 'btnAbschliessen_Click(sender, e) Else Exit Sub End If End If Dim Meldung As String If result = 5 And Mailtext = 1 Then Mailtext = 3 If result = 5 Then Meldung = "Kostenvoranschlag drucken?" Else Meldung = "Rechnung drucken und verbuchen?" Dim res As MsgBoxResult If Globals.IgnorePrint = False Then res = MsgBox(Meldung, vbYesNo + vbQuestion) Else res = MsgBoxResult.Yes End If If res = MsgBoxResult.Yes Then Dim buchen As Boolean = True If result = 5 Then buchen = False Dim anzahlraten As Integer = 0 Dim Empfaenger As String = "" db.Get_Tabledata("Behandlu", "where nrbehandlung=" + Me.Behandlungsnr.ToString) anzahlraten = db.dsDaten.Tables(0).Rows(0).Item("Anzahlraten") Empfaenger = db.dsDaten.Tables(0).Rows(0).Item("Empfaenger") If anzahlraten = 0 Then anzahlraten = 1 Dim reportnr As Integer reportnr = db.Get_ReportNr(Me.cbboxNRESTyp.Text) Dim Folgeauswertung As Integer Dim Separater_Druckjob As Boolean Dim doloop As Boolean = True db.Get_Tabledata("Auswertung", "where auswertungnr=" + reportnr.ToString) Folgeauswertung = db.dsDaten.Tables(0).Rows(0).Item("Folge_Report") Separater_Druckjob = db.dsDaten.Tables(0).Rows(0).Item("Folgereport_Sep_Druckjob") Dim hauptfaktura As Integer Globals.FakturaNr = 0 While doloop = True For i As Integer = 1 To anzahlraten If i = 1 And Empfaenger <> "" Then Dim f0 As New frmReportView(9999, False, "Vorschau Rechung", " where nrbehandlung = " + Me.Behandlungsnr.ToString, Me.Behandlungsnr.ToString, alsPDF) f0.Visible = False f0.Show() f0.Visible = False f0.Fakturierung(9999, Me.Behandlungsnr, "", i, buchen:=False) f0.Close() Globals.FakturaNr = 0 End If Dim f As New frmReportView(reportnr, False, "Vorschau Rechung", " where nrbehandlung = " + Me.Behandlungsnr.ToString, Me.Behandlungsnr.ToString, alsPDF) f.Visible = False f.Show() f.Visible = False f.Fakturierung(reportnr, Me.Behandlungsnr, "", i, buchen:=buchen) f.Close() If anzahlraten > 1 And i < 2 And Folgeauswertung > 0 Then buchen = False reportnr = Folgeauswertung db.Get_Tabledata("Auswertung", "where auswertungnr=" + Folgeauswertung.ToString) Folgeauswertung = db.dsDaten.Tables(0).Rows(0).Item("Folge_Report") Separater_Druckjob = db.dsDaten.Tables(0).Rows(0).Item("Folgereport_Sep_Druckjob") Dim f1 As New frmReportView(reportnr, False, "Vorschau Rechung", " where nrbehandlung = " + Me.Behandlungsnr.ToString, Me.Behandlungsnr.ToString, alsPDF) f1.Visible = False f1.Show() f1.Visible = False f1.Fakturierung(reportnr, Me.Behandlungsnr, "", i, buchen:=buchen) f1.Close() buchen = True reportnr = db.Get_ReportNr(Me.cbboxNRESTyp.Text) End If Next i If Folgeauswertung > 0 And anzahlraten < 2 Then buchen = False reportnr = Folgeauswertung db.Get_Tabledata("Auswertung", "where auswertungnr=" + Folgeauswertung.ToString) Folgeauswertung = db.dsDaten.Tables(0).Rows(0).Item("Folge_Report") Separater_Druckjob = db.dsDaten.Tables(0).Rows(0).Item("Folgereport_Sep_Druckjob") Else doloop = False End If End While If Globals.IgnorePrint Then evh.Refresh_Behandlungen(Me.Behandlungsnr, Me.Patientnr) Exit Sub End If Dim pdfitem As clspdfcollectionitem = Globals.pdfCollection.Item(1) Dim xdb As New clsDB Try xdb.Get_Tabledata("Dateien", "", "Select * from behandlungsdateien where nrbehandlung=" + Me.Behandlungsnr.ToString) If xdb.dsDaten.Tables(0).Rows.Count > 0 Then Dim tmpcollection As New Collection For i = 1 To Globals.pdfCollection.Count tmpcollection.Add(Globals.pdfCollection(i)) Next Globals.pdfCollection.Clear() For Each r As DataRow In xdb.dsDaten.Tables(0).Rows Globals.pdfCollection.Add(New clspdfcollectionitem(pdfitem.fakturanr, r("Dateiverweis"))) Next For i = 1 To tmpcollection.Count Globals.pdfCollection.Add(tmpcollection.Item(i)) Next End If Catch End Try Dim pdfh As New clspdfhelper If result = 5 Then pdfh.Create_Archivdoc(clspdfhelper.GetEmpfaengerType.FromOfferte, "", "Kostenvoranschlag:", Me.Behandlungsnr) Else pdfh.Create_Archivdoc(clspdfhelper.GetEmpfaengerType.FromLastFaktura, "", "Sofortrechnung:") End If pdfh.HandlePDF(alsPDF, alsMail, Mailtext, clsMailClient.EmpfangerFrom.Behandlung, Me.Behandlungsnr) pdfh = Nothing evh.Refresh_Behandlungen(Me.Behandlungsnr, Me.Patientnr) End If Globals.FakturaNr = 0 End Sub Public Sub DesignRechnungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DesignRechnungToolStripMenuItem.Click Me.Save_Data() Dim anzahlraten As Integer = 0 db.Get_Tabledata("Behandlu", "where nrbehandlung=" + Me.Behandlungsnr.ToString) anzahlraten = db.dsDaten.Tables(0).Rows(0).Item("Anzahlraten") If anzahlraten = 0 Then anzahlraten = 1 Dim reportnr As Integer reportnr = db.Get_ReportNr(Me.cbboxNRESTyp.Text) Dim Folgeauswertung As Integer Dim Separater_Druckjob As Boolean Dim doloop As Boolean = True db.Get_Tabledata("Auswertung", "where auswertungnr=" + reportnr.ToString) Folgeauswertung = db.dsDaten.Tables(0).Rows(0).Item("Folge_Report") Separater_Druckjob = db.dsDaten.Tables(0).Rows(0).Item("Folgereport_Sep_Druckjob") While doloop = True Dim f As New frmReportView(reportnr, True, "Vorschau Rechung", " where nrbehandlung = " + Me.Behandlungsnr.ToString, Me.Behandlungsnr.ToString) f.Show() f.Print_Rechnung(False, True) f.Close() If Folgeauswertung > 0 Then reportnr = Folgeauswertung db.Get_Tabledata("Auswertung", "where auswertungnr=" + Folgeauswertung.ToString) Folgeauswertung = db.dsDaten.Tables(0).Rows(0).Item("Folge_Report") Separater_Druckjob = db.dsDaten.Tables(0).Rows(0).Item("Folgereport_Sep_Druckjob") Else doloop = False End If End While End Sub Public Sub VorschaRechnungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VorschaRechnungToolStripMenuItem.Click Me.Save_Data() Globals.Rg_Funktionen.Vorschau_Rechnung(Me.Behandlungsnr.ToString) End Sub 'Public Sub Vorschau_Rechnung(ByVal NrBehandlung As String) ' Dim anzahlraten As Integer = 0 ' 'db.Get_Tabledata("Behandlu", "where nrbehandlung=" + Me.Behandlungsnr.ToString) ' db.Get_Tabledata("Behandlu", "where nrbehandlung=" + NrBehandlung) ' anzahlraten = db.dsDaten.Tables(0).Rows(0).Item("Anzahlraten") ' If anzahlraten = 0 Then anzahlraten = 1 ' Check_Changes() ' Dim reportnr As Integer ' reportnr = db.Get_ReportNr(Me.cbboxNRESTyp.Text) ' Dim Folgeauswertung As Integer ' Dim Separater_Druckjob As Boolean ' Dim doloop As Boolean = True ' db.Get_Tabledata("Auswertung", "where auswertungnr=" + reportnr.ToString) ' Folgeauswertung = db.dsDaten.Tables(0).Rows(0).Item("Folge_Report") ' Separater_Druckjob = db.dsDaten.Tables(0).Rows(0).Item("Folgereport_Sep_Druckjob") ' While doloop = True ' For i As Integer = 1 To anzahlraten ' ' Dim f As New frmReportView(reportnr, False, "Vorschau Rechung", " where nrbehandlung = " + Me.Behandlungsnr.ToString, Me.Behandlungsnr.ToString) ' Dim f As New frmReportView(reportnr, False, "Vorschau Rechung", " where nrbehandlung = " + NrBehandlung, NrBehandlung) ' f.Show() ' f.Print_Rechnung(True, False, i) ' Next i ' If Folgeauswertung > 0 Then ' reportnr = Folgeauswertung ' db.Get_Tabledata("Auswertung", "where auswertungnr=" + Folgeauswertung.ToString) ' Folgeauswertung = db.dsDaten.Tables(0).Rows(0).Item("Folge_Report") ' Separater_Druckjob = db.dsDaten.Tables(0).Rows(0).Item("Folgereport_Sep_Druckjob") ' Else ' doloop = False ' End If ' End While 'End Sub Private Sub cbboxnrbehandler_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxnrbehandler.SelectedIndexChanged Dim db1 As New clsDB Try If Globals.Applicationtype <> ApplicationTypes.Projektabrechnung Then db1.Get_Tabledata("GLN", "", "Select gln from privat where nrprivat=" + Me.cbboxnrbehandler.SelectedValue) Me.txtGLN_Liste.Text = "1/" + db1.dsDaten.Tables(0).Rows(0).Item(0) End If Catch Finally db1.Dispose() End Try End Sub Private Sub cbboxrgtext_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxrgtext.SelectedIndexChanged If OnLoad Then Exit Sub Me.txtRechnungsbemerkung.Text = Me.cbboxrgtext.Text End Sub Private Sub btnAbschliessen_Click(sender As Object, e As EventArgs) Handles btnAbschliessen.Click evh.Fire_Behandlung_Abschliessen(Me.Behandlungsnr, Me.Patientnr) End Sub Private Sub btnZuruecksetzen_Click(sender As Object, e As EventArgs) Handles btnZuruecksetzen.Click evh.Fire_Behandlung_Zurücksetzen(Me.Behandlungsnr, Me.Patientnr) End Sub Private Sub btnDeleteUnfalldatum_Click(sender As Object, e As EventArgs) Handles btnDeleteUnfalldatum.Click Me.DDTUnfalldatum.Value = Nothing End Sub Private Sub btnDeleteKogudatum_Click(sender As Object, e As EventArgs) Handles btnDeleteKogudatum.Click Me.DDTDatum_Kostengutsprache.Value = Nothing End Sub Private Sub DDTUnfalldatum_KeyDown(sender As Object, e As KeyEventArgs) Handles DDTUnfalldatum.KeyDown, DDTDatum_Kostengutsprache.KeyDown, DDTBehandlungsbeginn.KeyDown, DDTBehandlungsende.KeyDown, DDTRGStellung.KeyDown If e.KeyCode = Keys.Escape Then delete_date(sender) If e.KeyCode = Keys.Decimal Then SendKeys.SendWait("{TAB}") If e.KeyCode = 190 Then SendKeys.SendWait("{TAB}") End Sub Sub delete_date(sender) sender.value = Nothing End Sub Private Sub cbboxNRRGtyp_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles cbboxNRRGtyp.SelectedIndexChanged If OnLoad Then Exit Sub Dim result As String = db.Get_Datavalue("Select status from behandlu where nrbehandlung=" + Me.Behandlungsnr.ToString, "") Dim kv As Boolean = False If result = 3 Or result = 4 Then kv = True Select Case Me.cbboxNRRGtyp.Text Case "Dentotar" If kv Then result = db.Get_Datavalue("Select nrestyp from estyp where default_bei_kv_dentotar=1") Else result = db.Get_Datavalue("Select nrestyp from estyp where default_bei_rg_dentotar=1") Me.chkMitdatum.Checked = True End If Dim dbgesetz As New clsDB Try dbgesetz.Get_Tabledata("Gesetz", "", "Select * from gesetz where standard=1") If dbgesetz.dsDaten.Tables(0).Rows.Count > 0 Then Me.cbboxNrGesetz.SelectedValue = dbgesetz.dsDaten.Tables(0).Rows(0).Item(0) End If Catch Me.cbboxNrGesetz.SelectedValue = 1 End Try Case Else If kv Then result = db.Get_Datavalue("Select nrestyp from estyp where default_bei_kv=1") Me.cbboxNrGesetz.SelectedValue = 1 Else result = db.Get_Datavalue("Select nrestyp from estyp where default_bei_rg=1") Me.cbboxNrGesetz.SelectedValue = 1 End If End Select Try Me.cbboxNRESTyp.SelectedValue = result Catch End Try End Sub Private Sub cbboxNrAbrechnungstyp_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles cbboxNrAbrechnungstyp.SelectedIndexChanged If OnLoad Then Exit Sub Try Dim db As New clsDB db.Get_Tabledata("MitDatum", "","Select Mit_Datum from abrtyp where Nrabrechnungstyp=" + Me.cbboxNrAbrechnungstyp.SelectedValue,) Me.chkMitdatum.Checked = db.dsDaten.Tables(0).Rows(0).Item(0) Catch Finally db.Dispose() End Try End Sub Dim enumtaxpunkt As Globals.Taxpunkttyp Private Function Leistungen_Aktualisieren() Dim dbx As New clsDB Dim dby As New clsDB Dim dentotar As Boolean = cbboxNrAbrechnungstyp.Text.Substring(0, 8) = "Dentotar" Dim sortstring As String = "" 'dbx.Get_Tabledata("Leistung", "where nrbehandlung=" + Me.Behandlungsnr.ToString) dbx.Get_Tabledata_for_Update("Select * from leistung where Nrbehandlung=" + Me.Behandlungsnr.ToString, False, True) enumtaxpunkt = Me.cbboxNrtaxpunkt.SelectedValue For Each r As DataRow In dbx.daten.Tables(0).Rows If dentotar Then Dim wherestring As String = "Leistungnrneu='" + r("SSO_Nummer") + "'" Dim db As New DataView(IntTables.Inttables.Tables("Dentotar"), wherestring, sortstring, DataViewRowState.CurrentRows) If db.Count > 0 Then For Each drv As DataRowView In db If r.Item("Absolut") = 0 Then Select Case enumtaxpunkt Case Taxpunkttyp.Minmal r.Item("taxpunkte") = drv.Item("pp_max") r.Item("Mutiert_am") = Now r.Item("Mutierer") = Globals.ActUser r.Item("Frankenprotaxpunkt") = Me.mtxtTaxpunktwert.Text r.Item("total") = Globals.SwissCommercialRound(r.Item("taxpunkte") * r.Item("Frankenprotaxpunkt") * r.Item("Menge")) Case Taxpunkttyp.Minmal r.Item("taxpunkte") = drv.Item("pp_min") r.Item("Mutiert_am") = Now r.Item("Mutierer") = Globals.ActUser r.Item("Frankenprotaxpunkt") = Me.mtxtTaxpunktwert.Text r.Item("total") = Globals.SwissCommercialRound(r.Item("taxpunkte") * r.Item("Frankenprotaxpunkt") * r.Item("Menge")) Case Taxpunkttyp.Privat r.Item("taxpunkte") = drv.Item("pp_privat") r.Item("Mutiert_am") = Now r.Item("Mutierer") = Globals.ActUser r.Item("Frankenprotaxpunkt") = Me.mtxtTaxpunktwert.Text r.Item("total") = Globals.SwissCommercialRound(r.Item("taxpunkte") * r.Item("Frankenprotaxpunkt") * r.Item("Menge")) Case Taxpunkttyp.Suva r.Item("taxpunkte") = drv.Item("Taxpunkte_UV_MV_IV") r.Item("Mutiert_am") = Now r.Item("Mutierer") = Globals.ActUser r.Item("Frankenprotaxpunkt") = Me.mtxtTaxpunktwert.Text r.Item("total") = Globals.SwissCommercialRound(r.Item("taxpunkte") * r.Item("Frankenprotaxpunkt") * r.Item("Menge")) Case Taxpunkttyp.Dentotar r.Item("taxpunkte") = drv.Item("Taxpunkte_UV_MV_IV") r.Item("Mutiert_am") = Now r.Item("Mutierer") = Globals.ActUser r.Item("Frankenprotaxpunkt") = Me.mtxtTaxpunktwert.Text r.Item("total") = Globals.SwissCommercialRound(r.Item("taxpunkte") * r.Item("Frankenprotaxpunkt") * r.Item("Menge")) End Select End If Next End If End If Next dbx.Update_Tabeldata() End Function Private Sub cbboxNRESTyp_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxNRESTyp.SelectedIndexChanged If OnLoad Then Exit Sub Try For Each r As DataRow In IntTables.Inttables.Tables("estyp").Rows If r.Item("nrestyp") = cbboxNRESTyp.SelectedValue Then Me.cbboxNRRGtyp.SelectedValue = r.Item("Default_rgtyp") End If Next Catch End Try End Sub Private Sub lblGarantText_Click(sender As Object, e As EventArgs) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Try Me.Cursor = Cursors.WaitCursor Dim s As String = Me.cbboxNrGarant.SelectedValue If s > 49999 Then Dim f As New frmFirma f.MdiParent = Globals.Mainweindow f.Show() f.Firmanr = s Else Dim f As New Patient f.MdiParent = Globals.Mainweindow f.Show() f.PatientNr = s End If Catch Finally Me.Cursor = Cursors.Default End Try End Sub Private Sub tsbtnGarantAnzeigen_Click(sender As Object, e As EventArgs) Handles tsbtnGarantAnzeigen.Click Button1_Click(sender, e) End Sub Private Sub lblBehandlungsgrund_Click(sender As Object, e As EventArgs) Handles lblBehandlungsgrund.Click End Sub Private Sub txtBehandlungsgrund_TextChanged(sender As Object, e As EventArgs) Handles txtBehandlungsgrund.TextChanged End Sub Private Sub DDTBehandlungsbeginn_Click(sender As Object, e As EventArgs) Handles DDTBehandlungsbeginn.Click End Sub Private Sub DDTBehandlungsbeginn_Leave(sender As Object, e As EventArgs) Handles DDTBehandlungsbeginn.Leave Me.DDTBehandlungsende.Value = Me.DDTBehandlungsbeginn.Value End Sub Private Sub cbboxNrtaxpunkt_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbboxNrtaxpunkt.SelectedIndexChanged If OnLoad Then Exit Sub If OnGetData Then Exit Sub If Globals.OnLoad Then Exit Sub If Me.Behandlungsstatus <> 1 And Me.Behandlungsstatus <> 4 Then Exit Sub If MsgBox("Die Taxpunkte wurden geändert. Sollen die Leitungen neu berechnet werden?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then Leistungen_Aktualisieren() End If End Sub Private Sub txtSuchePrivat_TextChanged(sender As Object, e As EventArgs) Handles txtSuchePrivat.TextChanged End Sub Private Sub txtSuchePrivat_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSuchePrivat.KeyDown If e.KeyCode = Keys.Enter Then Dim db As New clsDB Dim nrfirma As Integer = db.Search("Patient", Me.txtSuchePrivat.Text) If nrfirma <> -1 Then db.Get_Tabledata("Adr", "", "Select dbo.get_adresse_firmaprivat(" + nrfirma.ToString + ",0) as Adresse") Me.txtEmpfaenger.Text = db.dsDaten.Tables(0).Rows(0).Item(0) End If db.Dispose() End If End Sub Private Sub txtSucheFirma_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSucheFirma.KeyDown If e.KeyCode = Keys.Enter Then Dim db As New clsDB Dim nrfirma As Integer = db.Search("Firma", Me.txtSucheFirma.Text) If nrfirma <> -1 Then db.Get_Tabledata("Adr", "", "Select dbo.get_adresse_firmaprivat(" + nrfirma.ToString + ",0) as Adresse") Me.txtEmpfaenger.Text = db.dsDaten.Tables(0).Rows(0).Item(0) End If db.Dispose() End If End Sub Private Sub btnSucheFirma_Click(sender As Object, e As EventArgs) Handles btnSucheFirma.Click Dim db As New clsDB Dim nrfirma As Integer = db.Search("Firma", Me.txtSucheFirma.Text) If nrfirma <> -1 Then db.Get_Tabledata("Adr", "", "Select dbo.get_adresse_firmaprivat(" + nrfirma.ToString + ",0) as Adresse") Me.txtEmpfaenger.Text = db.dsDaten.Tables(0).Rows(0).Item(0) End If db.Dispose() End Sub Private Sub btnSuchePrivat_Click(sender As Object, e As EventArgs) Handles btnSuchePrivat.Click Dim db As New clsDB Dim nrfirma As Integer = db.Search("Patient", Me.txtSuchePrivat.Text) If nrfirma <> -1 Then db.Get_Tabledata("Adr", "", "Select dbo.get_adresse_firmaprivat(" + nrfirma.ToString + ",0) as Adresse") Me.txtEmpfaenger.Text = db.dsDaten.Tables(0).Rows(0).Item(0) End If db.Dispose() End Sub 'Private Sub mtxtRatenzuschlag_TextChanged(sender As Object, e As EventArgs) Handles mtxtRatenzuschlag.TextChanged ' Me.Recalc_Totale() 'End Sub 'Private Sub mtxtTaxpunktwert_TextChanged(sender As Object, e As EventArgs) Handles mtxtTaxpunktwert.TextChanged ' mtxtTaxpunktwert_Leave(sender, e) 'End Sub Public Function Vorschau_Offerte(ByVal typ As Integer) Me.Save_Data() Select Case typ Case 1 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 1, 0, False, Nothing) Case 2 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 1, 1, True, clspdfhelper.GetEmpfaengerType.FromOfferte) Dim pdfh As New clspdfhelper Case 3 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 1, 2, True, clspdfhelper.GetEmpfaengerType.FromOfferte) Case 4 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 1, 3, True, clspdfhelper.GetEmpfaengerType.FromOfferte) Case 5 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 1, 4, True, clspdfhelper.GetEmpfaengerType.FromOfferte) Case 11 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 2, 0, False, Nothing) Case 12 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 2, 1, True, clspdfhelper.GetEmpfaengerType.FromAuftragsbestaegigung) Case 13 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 2, 2, True, clspdfhelper.GetEmpfaengerType.FromAuftragsbestaegigung) Case 14 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 2, 3, True, clspdfhelper.GetEmpfaengerType.FromAuftragsbestaegigung) Case 15 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 2, 4, True, clspdfhelper.GetEmpfaengerType.FromOfferte) Case 21 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 3, 0, False, Nothing) Case 22 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 3, 1, True, clspdfhelper.GetEmpfaengerType.FromLieferschein) Case 23 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 3, 2, True, clspdfhelper.GetEmpfaengerType.FromLieferschein) Case 24 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 3, 3, True, clspdfhelper.GetEmpfaengerType.FromLieferschein) Case 25 Globals.Rg_Funktionen.Offerte_Auftragsbestaegitigung_Lieferschein(Me.Behandlungsnr, 3, 4, True, clspdfhelper.GetEmpfaengerType.FromOfferte) End Select End Function Private Sub ToolStripButton1_Click_2(sender As Object, e As EventArgs) Handles ToolStripButton1.Click Dim f As New OpenFileDialog If f.ShowDialog = DialogResult.OK Then If System.IO.File.Exists(f.FileName) Then Me.lstdateien.Items.Add(f.FileName) Dim sql As String sql = "Insert behandlungsdateien (nrbehandlung,dateiverweis,mutierer) values(" + Me.Behandlungsnr.ToString + ",'" + f.FileName + "'," + Globals.ActUser.ToString + ")" Dim dbdatei As New clsDB dbdatei.Exec_SQL(sql) Else MsgBox("Die Datei " + f.FileName + " ist nicht vorhanden.", vbExclamation) End If End If End Sub Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click Try Dim dbdatei As New clsDB dbdatei.Exec_SQL("Delete from Behandlungsdateien where nrbehandlung=" + Me.Behandlungsnr.ToString + " and dateiverweis='" + Me.lstdateien.SelectedItem + "'") Me.lstdateien.Items.Remove(Me.lstdateien.SelectedItem) Catch End Try End Sub Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click For Each i As String In Me.lstdateien.Items If System.IO.File.Exists(i) Then Else MsgBox("Die Datei " + i + " ist nicht vorhanden!") End If Next End Sub End Class