Public Class frmFakturierung Dim db As New clsDB Dim abgeschlossen As New DataTable Dim ausgeschlossen As New DataTable Dim spalten As New Tabellenspalte Private Sub frmFakturierung_Load(sender As Object, e As EventArgs) Handles MyBase.Load db.Get_Tabledata("view_abgeschlossene_Behandlungen", "") abgeschlossen = db.dsDaten.Tables(0).Copy ausgeschlossen = abgeschlossen.Copy ausgeschlossen.Rows.Clear() Me.C1Abgeschlossen.DataSource = abgeschlossen Me.C1Abgeschlossen.DataMember = abgeschlossen.TableName spalten.Spaltentitel_aktualisieren(Me.C1Abgeschlossen, abgeschlossen.TableName, abgeschlossen) Me.C1Ausgeschlossen.DataSource = ausgeschlossen Me.C1Ausgeschlossen.DataMember = ausgeschlossen.TableName spalten.Spaltentitel_aktualisieren(Me.C1Ausgeschlossen, ausgeschlossen.TableName, ausgeschlossen) refresh_total() Me.DateTimePicker1.Left = Me.Width - Me.DateTimePicker1.Width - 20 Me.Label1.Left = Me.DateTimePicker1.Left - Me.Label1.Width - 20 End Sub Sub refresh_total() Try Dim betrag As Double = 0 For Each r As DataRow In abgeschlossen.Rows betrag = betrag + r.Item("total") Next Me.lblbetrag.Text = FormatNumber(CDbl(betrag), 2) Catch Me.lblbetrag.Text = "n.a." End Try End Sub Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click If MsgBox("Fakturierung ausführen?", vbYesNo + vbQuestion) = vbNo Then Exit Sub Dim fp As New frmFortschritt fp.Show() Dim dt As New DataTable dt = Me.C1Abgeschlossen.DataSource fp.ProgressBar1.Minimum = 1 fp.ProgressBar1.Maximum = dt.Rows.Count + 1 fp.ProgressBar1.Value = 1 For Each r In dt.Rows Faktura_Aufbereiten(r) fp.ProgressBar1.Value = fp.ProgressBar1.Value + 1 fp.Refresh() Next fp.Close() Me.Close() Exit Sub Dim f As New frmReportView() For Each r In dt.Rows If r.item("raten") > 0 Then Dim i As Integer For i = 1 To r.item("raten") f.Fakturierung(r.item("nrestyp"), r.item("nrbehandlung"), " where nrbehandlung = " + r.item("nrbehandlung").ToString, i) Next Else f.Fakturierung(r.item("nrestyp"), r.item("nrbehandlung"), " where nrbehandlung = " + r.item("nrbehandlung").ToString, 0) End If Next f.Visible = False f.Close() End Sub Sub Faktura_Aufbereiten(ByVal r As DataRow) Globals.pdfCollection.Clear() Dim buchen As Boolean = True Dim anzahlraten As Integer = 0 Dim Empfaenger As String = "" db.Get_Tabledata("Behandlu", "where nrbehandlung=" + r.Item("nrbehandlung").ToString) If Me.DateTimePicker1.Value.ToShortDateString <> Now.ToShortDateString Then Dim r1 As DataRow r1 = db.dsDaten.Tables(0).Rows(0) r1.Item("RGdatum") = Me.DateTimePicker1.Value db.Update_Data() End If anzahlraten = db.dsDaten.Tables(0).Rows(0).Item("Anzahlraten") Empfaenger = db.dsDaten.Tables(0).Rows(0).Item("Empfaenger") If anzahlraten = 0 Then anzahlraten = 1 Globals.FakturaNr = 0 Dim reportnr As Integer reportnr = db.Get_ReportNr_by_ESTypnr(r.Item("nrestyp")) Dim OriginalReportnr As Integer OriginalReportnr = reportnr 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 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 = " + r.Item("nrbehandlung").ToString, r.Item("nrbehandlung").ToString, r.Item("permail")) f0.Visible = False f0.Show() f0.Visible = False f0.Fakturierung(9999, r.Item("nrbehandlung").ToString, "", i, buchen:=False) f0.Close() Globals.FakturaNr = 0 End If Dim f As New frmReportView(reportnr, False, "Vorschau Rechung", " where nrbehandlung = " + r.Item("nrbehandlung").ToString, r.Item("nrbehandlung").ToString, r.Item("permail")) f.Visible = False f.Show() f.Visible = False f.Fakturierung(reportnr, r.Item("nrbehandlung"), "", i, buchen:=buchen) f.Close() If anzahlraten > 1 And i < 2 And 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") Dim f1 As New frmReportView(reportnr, False, "Vorschau Rechung", " where nrbehandlung = " + r.Item("nrbehandlung").ToString, r.Item("nrbehandlung").ToString, r.Item("permail")) f1.Visible = False f1.Show() f1.Fakturierung(reportnr, r.Item("nrbehandlung"), "", i, buchen:=buchen) f1.Close() reportnr = OriginalReportnr 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 Dim pdfh As New clspdfhelper pdfh.Create_Archivdoc(clspdfhelper.GetEmpfaengerType.FromLastFaktura, "", "Rechnung:") If r.Item("permail") = True Then pdfh.HandlePDF(True, True, 2, clspdfhelper.GetEmpfaengerType.FromLastFaktura, 0) End If pdfh = Nothing Globals.pdfCollection.Clear() Globals.FakturaNr = 0 End Sub Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click Dim f As New frmPrinterselect f.MdiParent = Me.MdiParent f.Show() End Sub Private Sub tsbtnquit_Click(sender As Object, e As EventArgs) Handles tsbtnquit.Click Me.Close() End Sub Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click Me.Close() End Sub Private Sub ToolStripMenuAusschliessen_Click(sender As Object, e As EventArgs) Handles ToolStripMenuAusschliessen.Click Try Dim i As Integer = 0 Dim bhnr As Integer = Me.C1Abgeschlossen.Columns("NrBehandlung").Value For Each r As DataRow In abgeschlossen.Rows If r.Item("nrbehandlung") = bhnr Then ausgeschlossen.ImportRow(r) abgeschlossen.Rows(i).Delete() End If i = i + 1 Next Catch ex As Exception Finally abgeschlossen.AcceptChanges() ausgeschlossen.AcceptChanges() End Try End Sub Private Sub toolstripmenuAusschlussaufheben_Click(sender As Object, e As EventArgs) Handles toolstripmenuAusschlussaufheben.Click Try Dim i As Integer = 0 Dim bhnr As Integer = Me.C1Ausgeschlossen.Columns("NrBehandlung").Value For Each r As DataRow In ausgeschlossen.Rows If r.Item("nrbehandlung") = bhnr Then abgeschlossen.ImportRow(r) ausgeschlossen.Rows(i).Delete() End If i = i + 1 Next Catch ex As Exception Finally abgeschlossen.AcceptChanges() ausgeschlossen.AcceptChanges() End Try End Sub Private Sub ToolStripAbschlussVorschau_Click(sender As Object, e As EventArgs) Handles ToolStripAbschlussVorschau.Click Try Globals.Rg_Funktionen.Vorschau_Rechnung(C1Abgeschlossen.Columns("NRBEHANDLUNG").Value) Catch End Try End Sub Private Sub ToolstripAusschlussVorschau_Click(sender As Object, e As EventArgs) Handles ToolstripAusschlussVorschau.Click Try Globals.Rg_Funktionen.Vorschau_Rechnung(C1Ausgeschlossen.Columns("NRBEHANDLUNG").Value) Catch End Try End Sub Private Sub ToolStripLabel1_Click(sender As Object, e As EventArgs) End Sub Private Sub C1Abgeschlossen_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Abgeschlossen.MouseDown Me.C1Abgeschlossen.Bookmark = Me.C1Abgeschlossen.RowContaining(e.Y) End Sub Private Sub C1Ausgeschlossen_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Ausgeschlossen.MouseDown Me.C1Ausgeschlossen.Bookmark = Me.C1Ausgeschlossen.RowContaining(e.Y) End Sub End Class