diff --git a/Parkzeit/My Project/Resources.Designer.vb b/Parkzeit/My Project/Resources.Designer.vb index 14185b5..41a73d9 100644 --- a/Parkzeit/My Project/Resources.Designer.vb +++ b/Parkzeit/My Project/Resources.Designer.vb @@ -87,6 +87,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property fragezeichen() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("fragezeichen", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/Parkzeit/My Project/Resources.resx b/Parkzeit/My Project/Resources.resx index 1ae9244..89b7e5a 100644 --- a/Parkzeit/My Project/Resources.resx +++ b/Parkzeit/My Project/Resources.resx @@ -117,24 +117,18 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\Parkschild.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Data Source=SQLGUIDE01.verag.ost.dmn;Initial Catalog=Parkzeit;Integrated Security=false;User ID=sa;Password=BmWr501956; + ..\Resources\Logo_Waberer.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Versionsinfo.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 - ..\Resources\parkzeit.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Data Source=DEVELOPER\DEVSQL;Initial Catalog=Parkzeit;Integrated Security=false;User ID=sa;Password=BmWr501956; - - - Data Source=SQLGUIDE01.verag.ost.dmn;Initial Catalog=Parkzeit;Integrated Security=false;User ID=sa;Password=BmWr501956; + + ..\Resources\Parkschild.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -142,4 +136,13 @@ ..\Resources\Verag-AG-Logo.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Data Source=DEVELOPER\DEVSQL;Initial Catalog=Parkzeit;Integrated Security=false;User ID=sa;Password=BmWr501956; + + + ..\Resources\Versionsinfo.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + + + ..\Resources\fragezeichen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Parkzeit/Parkzeit.vbproj b/Parkzeit/Parkzeit.vbproj index 30c83b5..0b1fc4b 100644 --- a/Parkzeit/Parkzeit.vbproj +++ b/Parkzeit/Parkzeit.vbproj @@ -90,6 +90,9 @@ bin\x64\Release\ + + ..\..\..\dll\DevExpress\DevExpress.Printing.v23.1.Core.dll + False ..\..\SICHERUNG\VERAG Parkzeiten_19.03.2015_vonF\Microsoft.ReportViewer.Common.dll @@ -224,10 +227,11 @@ Designer Resources.Designer.vb - + Always - + + Always @@ -249,6 +253,7 @@ + diff --git a/Parkzeit/Resources/fragezeichen.png b/Parkzeit/Resources/fragezeichen.png new file mode 100644 index 0000000..db10927 Binary files /dev/null and b/Parkzeit/Resources/fragezeichen.png differ diff --git a/Parkzeit/frmAuswahl_Abrechnung.vb b/Parkzeit/frmAuswahl_Abrechnung.vb index d3b5909..ab4c12f 100644 --- a/Parkzeit/frmAuswahl_Abrechnung.vb +++ b/Parkzeit/frmAuswahl_Abrechnung.vb @@ -96,7 +96,13 @@ Public Class frmAuswahl_Abrechnung hSQL += " AND (((Left(CAST(Kennzeichen AS varchar),1))>='0' And (Left(CAST(Kennzeichen AS varchar),1))<='9') AND ((right(left(CAST(Kennzeichen AS varchar),2),1))>='0' And (right(left(CAST(Kennzeichen AS varchar),2),1))<='9'))" hauswahl += "sonstige LKWs" Else - hauswahl += "alle" + If txtKundenNr.Text <> "" Then + hauswahl += "Kunde: " & txtKundenNr.Text + Else + + hauswahl += "alle" + End If + End If @@ -155,6 +161,7 @@ Public Class frmAuswahl_Abrechnung Auswertung.BefüllenAbrechnung("Auswertung Parkzeiten Waberer's LKWs", Parkzeiten.LeseParkzeitenFürDruck(hSQL, VarToDbl(txtKosten.Text)), cboTarif._value, hauswahl, hGesamtdauer, hGesamtkosten) Case "VERAG" Auswertung.BefüllenAbrechnung("Auswertung Parkzeiten LKWs", Parkzeiten.LeseParkzeitenFürDruck(hSQL, VarToDbl(txtKosten.Text)), cboTarif._value, hauswahl, hGesamtdauer, hGesamtkosten) + ' Auswertung.genPDF() End Select Auswertung.Show() diff --git a/Parkzeit/frmDruckansicht.vb b/Parkzeit/frmDruckansicht.vb index ca202c5..a9de825 100644 --- a/Parkzeit/frmDruckansicht.vb +++ b/Parkzeit/frmDruckansicht.vb @@ -1,12 +1,17 @@ Imports System.IO Imports Microsoft.Reporting.WinForms +Imports DevExpress.XtraPrinting +Imports Microsoft.SqlServer +Imports DevExpress.XtraReports.UI +Imports DevExpress.Utils +Imports DevExpress.XtraPrinting.Caching Public Class frmDruckansicht Public Sub BefüllenAbrechnung(ByVal titel As String, ByVal ds As IList(Of cParkzeitDruck), ByVal tarif As String, ByVal hAuswahl As String, ByVal hGesamtdauer As String, ByVal hGesamtkosten As String) ' Dim rdlcName As String = "Parkzeit.rptAbrechnung.rdlc" - Dim rdlcName = "Parkzeit.rptAbrechnungVERAG.rdlc" + Dim rdlcName = "Parkzeit.rptAbrechnungVERAG2.rdlc" 'Dim rdlcName As String = "Parkzeit.rptAbrechnung.rdlc" 'Select Case tarif @@ -28,11 +33,11 @@ Public Class frmDruckansicht Try Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Titel", titel)) - Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("SelektionText", hAuswahl)) - Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Firmenname", "VERAG Spedition AG")) - Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Gesamtdauer", hGesamtdauer)) - Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Gesamtkosten", hGesamtkosten)) - Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("KostenJeStunde", "0")) + Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("SelektionText", hAuswahl)) + Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Firmenname", "VERAG Spedition AG")) + Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Gesamtdauer", hGesamtdauer)) + Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Gesamtkosten", hGesamtkosten)) + Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("KostenJeStunde", "0")) 'Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("Anwender", SystemInformation.UserName.ToString)) 'Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("SelektionText", "Selektion: angeforderte, aber nicht erhaltene Bilanzen; Sortierung nach Sachbearbeiter, Kundennr")) 'Me.ReportViewer1.LocalReport.SetParameters(New ReportParameter("GruppierungNachBetreuer", boolToJaNein(True))) @@ -45,8 +50,29 @@ Public Class frmDruckansicht Me.ReportViewer1.SetDisplayMode(DisplayMode.PrintLayout) Me.ReportViewer1.RefreshReport() + + End Sub + + Public Function genPDF(pathTo As String, Optional closeMe As Boolean = False) As Boolean + Try + Dim mybytes As Byte() = Me.ReportViewer1.LocalReport.Render("PDF") + + If mybytes IsNot Nothing AndAlso mybytes.Length > 0 Then + + Using fs As FileStream = File.Create(pathTo) + fs.Write(mybytes, 0, mybytes.Length) + End Using + + End If + If closeMe Then Me.Close() + Catch ex As Exception + MsgBox(ex.Message & ex.StackTrace) + Return False + End Try + Return True + End Function 'Private Sub reportVorbereiten(ByVal gruppierungNachBetreuer As Boolean, ByRef reportPath As String) ' Dim doc As XDocument = XDocument.Parse(My.Resources.rptBilanzenAuswertung) @@ -112,12 +138,12 @@ Public Class frmDruckansicht Private Function boolToJaNein(ByVal wert As Boolean) As String - If wert Then - Return "ja" - Else - Return "nein" - End If - End Function + If wert Then + Return "ja" + Else + Return "nein" + End If + End Function Private Sub frmDruckansicht_Load(sender As Object, e As EventArgs) Handles MyBase.Load diff --git a/Parkzeit/frmMain.Designer.vb b/Parkzeit/frmMain.Designer.vb index c8dbe80..e089694 100644 --- a/Parkzeit/frmMain.Designer.vb +++ b/Parkzeit/frmMain.Designer.vb @@ -27,6 +27,11 @@ Partial Class frmMain Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) Me.Panel1 = New System.Windows.Forms.Panel() + Me.PictureBox6 = New System.Windows.Forms.PictureBox() + Me.txtKdNr = New System.Windows.Forms.TextBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.Button2 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button() Me.Label2 = New System.Windows.Forms.Label() Me.cboTarif = New VERAG_PROG_ALLGEMEIN.MyComboBox() @@ -48,22 +53,28 @@ Partial Class frmMain Me.gridParkzeiten = New System.Windows.Forms.DataGridView() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.mnuLöschen = New System.Windows.Forms.ToolStripMenuItem() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.Panel4 = New System.Windows.Forms.Panel() Me.Panel1.SuspendLayout() + CType(Me.PictureBox6, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.picLogo, System.ComponentModel.ISupportInitialize).BeginInit() Me.Panel2.SuspendLayout() CType(Me.gridParkzeiten, System.ComponentModel.ISupportInitialize).BeginInit() Me.ContextMenuStrip1.SuspendLayout() + Me.Panel3.SuspendLayout() + Me.Panel4.SuspendLayout() Me.SuspendLayout() ' 'Panel1 ' - Me.Panel1.BackColor = System.Drawing.Color.Azure - Me.Panel1.Controls.Add(Me.Button1) + Me.Panel1.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.Panel1.Controls.Add(Me.Panel3) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Controls.Add(Me.txtKdNr) + Me.Panel1.Controls.Add(Me.Label5) Me.Panel1.Controls.Add(Me.Label2) Me.Panel1.Controls.Add(Me.cboTarif) - Me.Panel1.Controls.Add(Me.btnDatenEinlesen) Me.Panel1.Controls.Add(Me.lblAnzahl) - Me.Panel1.Controls.Add(Me.picLogo) Me.Panel1.Controls.Add(Me.Panel2) Me.Panel1.Controls.Add(Me.btnAuswerten) Me.Panel1.Controls.Add(Me.btnErfassen) @@ -74,26 +85,82 @@ Partial Class frmMain Me.Panel1.Controls.Add(Me.txtSuche) Me.Panel1.Controls.Add(Me.Label3) Me.Panel1.Controls.Add(Me.lblSuche) + Me.Panel1.Controls.Add(Me.Panel4) Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top Me.Panel1.Location = New System.Drawing.Point(0, 0) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(994, 107) + Me.Panel1.Size = New System.Drawing.Size(1183, 124) Me.Panel1.TabIndex = 4 ' + 'PictureBox6 + ' + Me.PictureBox6.BackgroundImage = Global.Parkzeit.My.Resources.Resources.fragezeichen + Me.PictureBox6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox6.Cursor = System.Windows.Forms.Cursors.Hand + Me.PictureBox6.Location = New System.Drawing.Point(207, 11) + Me.PictureBox6.Name = "PictureBox6" + Me.PictureBox6.Size = New System.Drawing.Size(18, 19) + Me.PictureBox6.TabIndex = 133 + Me.PictureBox6.TabStop = False + ' + 'txtKdNr + ' + Me.txtKdNr.Location = New System.Drawing.Point(355, 73) + Me.txtKdNr.MaxLength = 7 + Me.txtKdNr.Name = "txtKdNr" + Me.txtKdNr.Size = New System.Drawing.Size(98, 20) + Me.txtKdNr.TabIndex = 3 + Me.txtKdNr.Visible = False + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.ForeColor = System.Drawing.Color.White + Me.Label5.Location = New System.Drawing.Point(286, 76) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(58, 13) + Me.Label5.TabIndex = 77 + Me.Label5.Text = "Kunden Nr" + Me.Label5.Visible = False + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Location = New System.Drawing.Point(11, 79) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(410, 24) + Me.ProgressBar1.Step = 1 + Me.ProgressBar1.TabIndex = 75 + Me.ProgressBar1.Visible = False + ' + 'Button2 + ' + Me.Button2.BackColor = System.Drawing.Color.White + Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button2.Location = New System.Drawing.Point(11, 43) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(190, 30) + Me.Button2.TabIndex = 8 + Me.Button2.TabStop = False + Me.Button2.Text = "nur PDFs genereieren" + Me.Button2.UseVisualStyleBackColor = False + ' 'Button1 ' - Me.Button1.Location = New System.Drawing.Point(579, 42) + Me.Button1.BackColor = System.Drawing.Color.White + Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button1.Location = New System.Drawing.Point(11, 9) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(190, 30) - Me.Button1.TabIndex = 73 + Me.Button1.TabIndex = 7 Me.Button1.TabStop = False Me.Button1.Text = "SpedBuch + Rechnungserstellung" - Me.Button1.UseVisualStyleBackColor = True + Me.Button1.UseVisualStyleBackColor = False ' 'Label2 ' Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(286, 78) + Me.Label2.ForeColor = System.Drawing.Color.White + Me.Label2.Location = New System.Drawing.Point(286, 101) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(28, 13) Me.Label2.TabIndex = 72 @@ -104,28 +171,32 @@ Partial Class frmMain Me.cboTarif._allowedValuesFreiText = Nothing Me.cboTarif._allowFreiText = False Me.cboTarif._value = "" + Me.cboTarif.BackColor = System.Drawing.Color.White Me.cboTarif.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboTarif.DropDownWidth = 250 + Me.cboTarif.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.cboTarif.FormattingEnabled = True - Me.cboTarif.Location = New System.Drawing.Point(351, 74) + Me.cboTarif.Location = New System.Drawing.Point(355, 97) Me.cboTarif.Name = "cboTarif" Me.cboTarif.Size = New System.Drawing.Size(98, 21) - Me.cboTarif.TabIndex = 71 + Me.cboTarif.TabIndex = 4 ' 'btnDatenEinlesen ' - Me.btnDatenEinlesen.Location = New System.Drawing.Point(579, 8) + Me.btnDatenEinlesen.BackColor = System.Drawing.Color.White + Me.btnDatenEinlesen.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnDatenEinlesen.Location = New System.Drawing.Point(231, 10) Me.btnDatenEinlesen.Name = "btnDatenEinlesen" Me.btnDatenEinlesen.Size = New System.Drawing.Size(190, 30) - Me.btnDatenEinlesen.TabIndex = 70 + Me.btnDatenEinlesen.TabIndex = 9 Me.btnDatenEinlesen.TabStop = False Me.btnDatenEinlesen.Text = "Daten einlesen" - Me.btnDatenEinlesen.UseVisualStyleBackColor = True + Me.btnDatenEinlesen.UseVisualStyleBackColor = False ' 'lblAnzahl ' Me.lblAnzahl.AutoSize = True - Me.lblAnzahl.ForeColor = System.Drawing.SystemColors.HotTrack + Me.lblAnzahl.ForeColor = System.Drawing.SystemColors.GradientInactiveCaption Me.lblAnzahl.Location = New System.Drawing.Point(193, 33) Me.lblAnzahl.Name = "lblAnzahl" Me.lblAnzahl.Size = New System.Drawing.Size(82, 13) @@ -135,11 +206,12 @@ Partial Class frmMain 'picLogo ' Me.picLogo.BackColor = System.Drawing.Color.White + Me.picLogo.Dock = System.Windows.Forms.DockStyle.Fill Me.picLogo.Image = Global.Parkzeit.My.Resources.Resources.Verag_AG_Logo Me.picLogo.InitialImage = Nothing Me.picLogo.Location = New System.Drawing.Point(0, 0) Me.picLogo.Name = "picLogo" - Me.picLogo.Size = New System.Drawing.Size(183, 107) + Me.picLogo.Size = New System.Drawing.Size(187, 124) Me.picLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom Me.picLogo.TabIndex = 68 Me.picLogo.TabStop = False @@ -148,11 +220,11 @@ Partial Class frmMain ' Me.Panel2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.Panel2.Controls.Add(Me.btnInfo) - Me.Panel2.Controls.Add(Me.Label1) - Me.Panel2.Location = New System.Drawing.Point(941, 0) + Me.Panel2.Location = New System.Drawing.Point(1130, 0) Me.Panel2.Name = "Panel2" Me.Panel2.Size = New System.Drawing.Size(53, 78) Me.Panel2.TabIndex = 67 + Me.Panel2.Visible = False ' 'btnInfo ' @@ -166,8 +238,10 @@ Partial Class frmMain ' 'Label1 ' + Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(0, 59) + Me.Label1.ForeColor = System.Drawing.Color.White + Me.Label1.Location = New System.Drawing.Point(1130, 105) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(50, 13) Me.Label1.TabIndex = 14 @@ -176,28 +250,32 @@ Partial Class frmMain ' 'btnAuswerten ' + Me.btnAuswerten.BackColor = System.Drawing.Color.White + Me.btnAuswerten.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnAuswerten.Location = New System.Drawing.Point(469, 42) Me.btnAuswerten.Name = "btnAuswerten" Me.btnAuswerten.Size = New System.Drawing.Size(80, 30) - Me.btnAuswerten.TabIndex = 4 + Me.btnAuswerten.TabIndex = 6 Me.btnAuswerten.TabStop = False Me.btnAuswerten.Text = "Auswerten" - Me.btnAuswerten.UseVisualStyleBackColor = True + Me.btnAuswerten.UseVisualStyleBackColor = False ' 'btnErfassen ' + Me.btnErfassen.BackColor = System.Drawing.Color.White + Me.btnErfassen.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnErfassen.Location = New System.Drawing.Point(469, 8) Me.btnErfassen.Name = "btnErfassen" Me.btnErfassen.Size = New System.Drawing.Size(80, 30) - Me.btnErfassen.TabIndex = 3 + Me.btnErfassen.TabIndex = 5 Me.btnErfassen.TabStop = False Me.btnErfassen.Text = "Erfassen" - Me.btnErfassen.UseVisualStyleBackColor = True + Me.btnErfassen.UseVisualStyleBackColor = False ' 'dtpBis ' Me.dtpBis.Format = System.Windows.Forms.DateTimePickerFormat.[Short] - Me.dtpBis.Location = New System.Drawing.Point(351, 31) + Me.dtpBis.Location = New System.Drawing.Point(355, 31) Me.dtpBis.Name = "dtpBis" Me.dtpBis.Size = New System.Drawing.Size(98, 20) Me.dtpBis.TabIndex = 1 @@ -205,7 +283,7 @@ Partial Class frmMain 'dtpVon ' Me.dtpVon.Format = System.Windows.Forms.DateTimePickerFormat.[Short] - Me.dtpVon.Location = New System.Drawing.Point(351, 9) + Me.dtpVon.Location = New System.Drawing.Point(355, 9) Me.dtpVon.Name = "dtpVon" Me.dtpVon.Size = New System.Drawing.Size(98, 20) Me.dtpVon.TabIndex = 0 @@ -213,6 +291,7 @@ Partial Class frmMain 'Label4 ' Me.Label4.AutoSize = True + Me.Label4.ForeColor = System.Drawing.Color.White Me.Label4.Location = New System.Drawing.Point(286, 33) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(59, 13) @@ -222,6 +301,7 @@ Partial Class frmMain 'Label14 ' Me.Label14.AutoSize = True + Me.Label14.ForeColor = System.Drawing.Color.White Me.Label14.Location = New System.Drawing.Point(286, 11) Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(64, 13) @@ -230,7 +310,7 @@ Partial Class frmMain ' 'txtSuche ' - Me.txtSuche.Location = New System.Drawing.Point(351, 52) + Me.txtSuche.Location = New System.Drawing.Point(355, 52) Me.txtSuche.MaxLength = 30 Me.txtSuche.Name = "txtSuche" Me.txtSuche.Size = New System.Drawing.Size(98, 20) @@ -239,6 +319,7 @@ Partial Class frmMain 'Label3 ' Me.Label3.AutoSize = True + Me.Label3.ForeColor = System.Drawing.Color.White Me.Label3.Location = New System.Drawing.Point(193, 11) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(50, 13) @@ -248,11 +329,12 @@ Partial Class frmMain 'lblSuche ' Me.lblSuche.AutoSize = True + Me.lblSuche.ForeColor = System.Drawing.Color.White Me.lblSuche.Location = New System.Drawing.Point(286, 55) Me.lblSuche.Name = "lblSuche" - Me.lblSuche.Size = New System.Drawing.Size(38, 13) + Me.lblSuche.Size = New System.Drawing.Size(69, 13) Me.lblSuche.TabIndex = 14 - Me.lblSuche.Text = "Suche" + Me.lblSuche.Text = "Kennzeichen" ' 'gridParkzeiten ' @@ -270,7 +352,7 @@ Partial Class frmMain Me.gridParkzeiten.ColumnHeadersDefaultCellStyle = DataGridViewCellStyle1 Me.gridParkzeiten.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.gridParkzeiten.Dock = System.Windows.Forms.DockStyle.Fill - Me.gridParkzeiten.Location = New System.Drawing.Point(0, 107) + Me.gridParkzeiten.Location = New System.Drawing.Point(0, 124) Me.gridParkzeiten.MultiSelect = False Me.gridParkzeiten.Name = "gridParkzeiten" Me.gridParkzeiten.ReadOnly = True @@ -280,7 +362,7 @@ Partial Class frmMain Me.gridParkzeiten.RowTemplate.Height = 18 Me.gridParkzeiten.RowTemplate.ReadOnly = True Me.gridParkzeiten.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.gridParkzeiten.Size = New System.Drawing.Size(994, 640) + Me.gridParkzeiten.Size = New System.Drawing.Size(1183, 717) Me.gridParkzeiten.TabIndex = 5 Me.gridParkzeiten.TabStop = False ' @@ -296,23 +378,48 @@ Partial Class frmMain Me.mnuLöschen.Size = New System.Drawing.Size(155, 22) Me.mnuLöschen.Text = "Eintrag löschen" ' + 'Panel3 + ' + Me.Panel3.BackColor = System.Drawing.Color.White + Me.Panel3.Controls.Add(Me.picLogo) + Me.Panel3.Location = New System.Drawing.Point(0, 0) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(187, 124) + Me.Panel3.TabIndex = 134 + ' + 'Panel4 + ' + Me.Panel4.BackColor = System.Drawing.Color.SteelBlue + Me.Panel4.Controls.Add(Me.Button1) + Me.Panel4.Controls.Add(Me.PictureBox6) + Me.Panel4.Controls.Add(Me.btnDatenEinlesen) + Me.Panel4.Controls.Add(Me.Button2) + Me.Panel4.Controls.Add(Me.ProgressBar1) + Me.Panel4.Location = New System.Drawing.Point(610, 0) + Me.Panel4.Name = "Panel4" + Me.Panel4.Size = New System.Drawing.Size(435, 114) + Me.Panel4.TabIndex = 135 + ' 'frmMain ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(994, 747) + Me.ClientSize = New System.Drawing.Size(1183, 841) Me.Controls.Add(Me.gridParkzeiten) Me.Controls.Add(Me.Panel1) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Name = "frmMain" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Erfassung LKW Liste Parkplatz" Me.Panel1.ResumeLayout(False) Me.Panel1.PerformLayout() + CType(Me.PictureBox6, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.picLogo, System.ComponentModel.ISupportInitialize).EndInit() Me.Panel2.ResumeLayout(False) - Me.Panel2.PerformLayout() CType(Me.gridParkzeiten, System.ComponentModel.ISupportInitialize).EndInit() Me.ContextMenuStrip1.ResumeLayout(False) + Me.Panel3.ResumeLayout(False) + Me.Panel4.ResumeLayout(False) Me.ResumeLayout(False) End Sub @@ -338,4 +445,11 @@ Partial Class frmMain Friend WithEvents Label2 As Label Friend WithEvents cboTarif As VERAG_PROG_ALLGEMEIN.MyComboBox Friend WithEvents Button1 As Button + Friend WithEvents Button2 As Button + Friend WithEvents ProgressBar1 As ProgressBar + Friend WithEvents txtKdNr As TextBox + Friend WithEvents Label5 As Label + Friend WithEvents PictureBox6 As PictureBox + Friend WithEvents Panel3 As Panel + Friend WithEvents Panel4 As Panel End Class diff --git a/Parkzeit/frmMain.vb b/Parkzeit/frmMain.vb index 924ce25..68d2cd4 100644 --- a/Parkzeit/frmMain.vb +++ b/Parkzeit/frmMain.vb @@ -4,6 +4,7 @@ Imports Parkzeit.cMeineFunktionen Imports System.Data.SqlClient Imports System.ComponentModel Imports System.Text +Imports VERAG_PROG_ALLGEMEIN Public Class frmMain Public Shared ConnStr As String @@ -17,6 +18,9 @@ Public Class frmMain Private Grid_aktiv As Boolean = False Private Suche_freigegeben As Boolean = False + Dim LEISTUNGSNR_PARKEN As Integer = 313 + Dim OFFERETNNR_PARKEN As Integer = 18 + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'InitializeComponent() @@ -57,8 +61,8 @@ Public Class frmMain 'Position+Größe wird in ApplicationSettings vom Formular gespeichert Try - Me.Size = My.Settings.frmMainSize - Me.Location = My.Settings.frmMainPosition + ' Me.Size = My.Settings.frmMainSize + ' Me.Location = My.Settings.frmMainPosition Catch ex As Exception 'nix tun - Standardgröße wird somit automatisch gesetzt End Try @@ -104,6 +108,10 @@ Public Class frmMain hSQL += " AND Kennzeichen LIKE '%" & txtSuche.Text & "%'" End If + If txtKdNr.Visible AndAlso txtKdNr.Text <> "" Then + hSQL += " AND KundenNr LIKE '%" & txtKdNr.Text & "%'" + End If + hSQL += " AND TarifArt='" & cboTarif._value & "'" hSQL += " ORDER BY Laufende_Nr, Von" @@ -178,7 +186,7 @@ Public Class frmMain Tabelle_anzeigen() End Sub - Private Sub txtSuche_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtSuche.TextChanged + Private Sub txtSuche_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtSuche.TextChanged, txtKdNr.TextChanged If Not Suche_freigegeben Then Exit Sub Tabelle_anzeigen() @@ -265,8 +273,12 @@ Public Class frmMain Select Case cboTarif._value Case "WABERERS" picLogo.Image = My.Resources.Logo_Waberer + Label5.Visible = False + txtKdNr.Visible = False Case Else picLogo.Image = My.Resources.Verag_AG_Logo + Label5.Visible = True + txtKdNr.Visible = True End Select End Sub @@ -281,6 +293,455 @@ Public Class frmMain End Sub Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click + doRechnungslauf(True) + End Sub + Sub doRechnungslauf(Optional fakturieren As Boolean = False) + Try + ProgressBar1.Visible = True + Me.Cursor = Cursors.WaitCursor + Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + + Dim rootFolder = "" + If Not fakturieren Then + '"Bitte geben + Dim fd As New FolderBrowserDialog + If fd.ShowDialog(Me) = DialogResult.OK Then + rootFolder = fd.SelectedPath + End If + If rootFolder = "" Then Me.Cursor = Cursors.Default : Exit Sub + End If + + If cboTarif._value = "WABERERS" Then + '======================================== + 'Alle Waberers-Einträge mit der Waberers KdNr ergänzen + SQL.doSQL("UPDATE [Parkzeit].[dbo].[Parkzeiten] set KundenNr='717981' WHERE TarifArt='WABERERS' AND KundenNr is null", "PARKZEIT") + '======================================== + End If + + 'Kunden durchlaufen: + Dim hSQLKd As String = "SELECT DISTINCT(KundenNr) FROM Parkzeiten WHERE Von >= " & SQLDatum(dtpVon.Value) & " AND Von <= " & SQLDatum(dtpBis.Value.AddDays(1)) & " AND TarifArt='" & cboTarif._value & "' " + If txtSuche.Text <> "" Then hSQLKd += " AND Kennzeichen LIKE '%" & txtSuche.Text & "%'" + If txtKdNr.Visible AndAlso txtKdNr.Text <> "" Then hSQLKd += " AND KundenNr LIKE '%" & txtKdNr.Text & "%'" + + + Dim dtKd = SQL.loadDgvBySql(hSQLKd, "PARKZEIT") + + If dtKd Is Nothing OrElse dtKd.Rows.Count = 0 Then + MsgBox("Keine Daten!") + Me.Cursor = Cursors.Default : Exit Sub + End If + + If fakturieren Then + If Not vbYes = MsgBox("Es werden " & dtKd.Rows.Count & " Kunden abgerechnet. Möchten Sie fortfahren?", vbYesNoCancel) Then + MsgBox("Keine Daten!") + Me.Cursor = Cursors.Default : Exit Sub + End If + End If + + + ProgressBar1.Minimum = 1 + ProgressBar1.Maximum = dtKd.Rows.Count + ProgressBar1.Value = 1 + + For Each r As DataRow In dtKd.Rows + Dim KdNr = r("KundenNr") + 'Zusammenbau der SQL-Abfrage + Dim hSQL As String = "SELECT * FROM Parkzeiten WHERE Von >= " & SQLDatum(dtpVon.Value) & " AND Von <= " & SQLDatum(dtpBis.Value.AddDays(1)) + + Dim hauswahl As String = "Auswahl: " + + + If cboTarif._value = "WABERERS" Then + hauswahl &= "alle" + Else + hauswahl = "Kunde: " & KdNr.ToString & " " & SQL.getValueTxtBySql("SELECT TOP 100 [Name 1] + isnull([Name 2],'')+ ', ' + isnull(ort,'') FROM [Adressen] where adressennr='" & KdNr.ToString & "' ", "FMZOLL",,, "0") + End If + + hSQL += " AND TarifArt='" & cboTarif._value & "' " + If KdNr.ToString <> "" Then hSQL += " AND KundenNr='" & KdNr.ToString & "' " + hSQL += " AND TarifArt='" & cboTarif._value & "' " + + If txtSuche.Text <> "" Then + hSQL += " AND Kennzeichen LIKE '%" & txtSuche.Text & "%'" + End If + + If txtKdNr.Visible AndAlso txtKdNr.Text <> "" Then + hSQL += " AND KundenNr LIKE '%" & txtKdNr.Text & "%'" + End If + + hSQL += " ORDER BY Laufende_Nr" + + Dim Auswertung As New frmDruckansicht + Dim Parkzeiten = New cParkzeitenDAL + + Dim Kosten As Double = 0.4 '!!!!!!!Standard!!!!!!! + If KdNr.ToString = "717981" Then Kosten = 0.3 'Waberers + + Dim KostenTmp = SQL.getValueTxtBySql("SELECT TOP 1 Preis FROM [Offertenpositionen] where KundenNr='" & KdNr.ToString & "' and OffertenNr='" & OFFERETNNR_PARKEN.ToString & "' and LeistungsNr='" & LEISTUNGSNR_PARKEN.ToString & "' and Preis is not null", "FMZOLL",,, -1) + If CDbl(KostenTmp) >= 0 Then + Kosten = CDbl(KostenTmp) + End If + hauswahl &= vbNewLine & "Tarif: " & Kosten.ToString("C2") & " / Stunde " + + Dim hKosten As Double = 0 + Dim hSummeZeit = 0 + Dim hAnzahl = 0 + Using conn As SqlConnection = cDatenbank.GetNewOpenConnection() + Using cmd As New SqlCommand(hSQL, conn) + Dim dr = cmd.ExecuteReader() 'AL: ERR + If Not IsNothing(dr) Then + While dr.Read() + hSummeZeit += VarToInt(dr.Item("Dauer_Minuten")) + hAnzahl += 1 + End While + End If + End Using + End Using + + Dim studnen2St As Double = CDbl(CDbl(hSummeZeit / 60).ToString("N2")) + hKosten = studnen2St * VarToDbl(Kosten) + Dim hGesamtdauer As String = Minuten_auf_Text(hSummeZeit) + Dim hGesamtkosten As String = Format(hKosten, "€ #,##0.00") + + Select Case cboTarif._value + Case "WABERERS" + Auswertung.BefüllenAbrechnung("Auswertung Parkzeiten Waberer's LKWs", Parkzeiten.LeseParkzeitenFürDruck(hSQL, VarToDbl(Kosten)), cboTarif._value, hauswahl, hGesamtdauer, hGesamtkosten) + Case "VERAG" + Auswertung.BefüllenAbrechnung("Auswertung Parkzeiten LKWs", Parkzeiten.LeseParkzeitenFürDruck(hSQL, VarToDbl(Kosten)), cboTarif._value, hauswahl, hGesamtdauer, hGesamtkosten) + + End Select + + If Not fakturieren Then + '======================================== + 'nur PDFs in selektierten Ordner + '======================================== + + Dim fileName = KdNr.ToString & "_Parking_" & dtpVon.Value.ToShortDateString & "-" & dtpBis.Value.ToShortDateString + Dim filePath = rootFolder & "\" & fileName & ".pdf" + Auswertung.genPDF(filePath) + + Else + '======================================== + 'SpedBucheintrag + '======================================== + Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch + genPARK_SPEDBUCH_ByKdNr(KdNr.ToString, dtpVon.Value, dtpBis.Value, SPEDBUCH) + + '======================================== + 'Rechnungserstellung + '======================================== + Dim RECHNUNG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang + If genPARK_RECHNUNG_BySPEDBUCH(KdNr.ToString, SPEDBUCH, dtpVon.Value, dtpBis.Value, Kosten, studnen2St, RECHNUNG) Then + '======================================== + 'Rechnungsanhang + '======================================== + Dim fileName = "Parking_" & dtpVon.Value.ToShortDateString & "-" & dtpBis.Value.ToShortDateString & ".pdf" + Dim filePath = DATENVERVER_OPTIONS.getTMPPath(fileName, ".pdf", False, False) + + If Auswertung.genPDF(filePath) Then + If IO.File.Exists(filePath) Then + Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "PARPLATZ_ABRECHNUNG", "", "", fileName, KdNr.ToString, False) 'Now.ToString("ddMMyy_HHmmss.ffff") + If Not DS.uploadDataToDATENSERVER(filePath) Then MsgBox("Fehler beim Speichern: Datenserver! KDNR:" & KdNr.ToString) + If CInt(DS.da_id) <= 0 Then MsgBox("Keine DocId!") + Dim da_id = DS.da_id + Dim destPath = DS.GET_TOP1_PATH + + 'If AvisoId > 0 And SendungsId > 0 Then + ' Dim fi As New FileInfo(PdfTmp) + ' Dim ANH As New VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge(AvisoId, fileName, DS.da_id, "EORI", "PDF", SendungsId, , fi.Length) + ' If Not ANH.SAVE Then MsgBox("Fehler beim Anhang speichern!") : Return False + ' Dim anhId = ANH.anh_id + 'End If + 'Return destPath + If RECHNUNG IsNot Nothing Then + RECHNUNG.ANHAENGE.Clear() + Dim ANH As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge + ANH.dsId = CInt(DS.da_id) + ANH.Bezeichnung = fileName + RECHNUNG.ANHAENGE.Add(ANH) + RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID) + End If + End If + End If + + End If + + '======================================== + '======================================== + + End If + + ProgressBar1.PerformStep() + Me.Refresh() + Next + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + ProgressBar1.Visible = False + End Try + Me.Cursor = Cursors.Default + End Sub + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + doRechnungslauf(False) + End Sub + + + Function genPARK_SPEDBUCH_ByKdNr(KdNr As String, von As Date, bis As Date, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch) As Boolean + Try + + Dim Abfertigungsdatum = bis + + Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr) + SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch + Select Case cboTarif._value + Case "WABERERS" + AD = New VERAG_PROG_ALLGEMEIN.cAdressen(402608) + End Select + Dim OffertenNr = OFFERETNNR_PARKEN + Dim Abfertigungsart = 10 + + SPEDBUCH.FilialenNr = 4819 + SPEDBUCH.AbfertigungsNr = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(SPEDBUCH.FilialenNr, Now.Year) + SPEDBUCH.NewUNTER_NR() + + SPEDBUCH.Vermittler = AD.Ordnungsbegriff.ToString + SPEDBUCH.VermittlerKundenNr = KdNr + SPEDBUCH.VermittlerOffertenNr = OffertenNr + SPEDBUCH.Abfertigungsdatum = Abfertigungsdatum.ToShortDateString + + SPEDBUCH.Abfertigungsart = Abfertigungsart + SPEDBUCH.Bar = False + SPEDBUCH.Fakturiert = True + SPEDBUCH.AnzahlSonstiges = 1 + SPEDBUCH.Abfertigungsanzahl = 1 + + SPEDBUCH.Währungsschlüssel = 900 + SPEDBUCH.Packstücke = "Parkplatzgebühr " & von.ToShortDateString & " - " & bis.ToShortDateString + SPEDBUCH.AvisUhrzeit = Nothing + SPEDBUCH.Umrechnungskurs = Nothing + SPEDBUCH.veoerz_basbtg = Nothing + SPEDBUCH.Sicherheitsbetrag = Nothing + + SPEDBUCH.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + + + Return SPEDBUCH.SAVE + + Catch ex As System.Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + Return False + + End Function + + Function genPARK_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, von As Date, bis As Date, KostenStd As Double, Std As Double, ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Boolean + Try + Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.VermittlerKundenNr) + Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(SPEDBUCH.VermittlerKundenNr) + Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang + + Select Case cboTarif._value + Case "WABERERS" + AD = New VERAG_PROG_ALLGEMEIN.cAdressen(402608) + KD = New VERAG_PROG_ALLGEMEIN.cKunde(402608) + End Select + Dim OffertenNr = OFFERETNNR_PARKEN + Dim Abfertigungsart = 10 + + RG.FilialenNr = SPEDBUCH.FilialenNr + RG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr + RG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr + RG.UnterNr = RG.getMaxRGUnterNr() + + RG.Buchungsjahr = getGJ(CDate(SPEDBUCH.Abfertigungsdatum)) 'If(Now.Month = 1, Now.Year - 1, Now.Year) + RG.FilialenNr = SPEDBUCH.FilialenNr + RG.Abfertigungsdatum = CDate(SPEDBUCH.Abfertigungsdatum) + RG.Sammelrechnung = 0 'EINZELRG!' + RG.BelegartenKz = "AR" + RG.BelegartenNr = 70 + RG.BelegartenBez = "Rechnung" + RG.Vorzeichen = "+" + RG.Packstücke_und_Warenbezeichnung = SPEDBUCH.Packstücke + + RG.VermittlerKundenNr = AD.AdressenNr + RG.VermittlerLandKz = AD.LandKz + RG.VermittlerName_1 = AD.Name_1 + RG.VermittlerName_2 = AD.Name_2 + RG.VermittlerOffertenNr = OffertenNr + RG.VermittlerOrt = (If(AD.LandKz.ToString, "") & " " & If(AD.PLZ.ToString, "") & " " & If(AD.Ort.ToString, "")) + RG.VermittlerStraße = AD.Straße + RG.Rechnung_an = 3 + RG.OffertenNr = OffertenNr + + RG.KundenNrZentrale = KD.KundenNrZentrale + RG.RechnungsKundenNr = CInt(AD.AdressenNr) + RG.RechnungsLandKz = AD.LandKz + RG.RechnungsName_1 = AD.Name_1 + RG.RechnungsName_2 = AD.Name_2 + RG.RechnungsOrt = (If(AD.LandKz.ToString, "") & " " & If(AD.PLZ.ToString, "") & " " & If(AD.Ort.ToString, "")) + RG.RechnungsStraße = AD.Straße + + RG.RechnungsUstIdKz = AD.UstIdKz + RG.RechnungsUstIdNr = AD.UstIdNr + RG.RechnungsUstIdGeprüft = AD.UstIdGeprüft + + RG.Lastschrift = KD.Lastschrift + RG.Kunden_SVS = KD.SVS + RG.Steuerschlüssel = CInt(KD.Steuerschlüssel) + RG.ForceSteuerschlüssel = 19 ' Überschrieben --> IMMER 19% verwenden!! + RG.Vorkasse = KD.Vorkasse + RG.Vorlageprovision_Proz = KD.Vorlageprovision + RG.Kreditaufwendungen_Proz = KD.Kreditaufwendungen + RG.RechnungSprache = "DE" + + + RG.Anlage_1 = "Aufstellung Parkgebühren" + RG.Anlage_2 = "" + RG.Anlage_3 = "" + RG.Anlage_4 = "" + RG.Anlage_5 = "" + RG.Anlage_6 = "" + + + RG.Text = "" + RG.EMailRechnungstext = Nothing ' "" + + RG.Firma_ID = 4 + RG.Nettozahlungsziel = KD.Zahlungsziel + + RG.SteuerpflichtigerGesamtbetrag = 0 + RG.SteuerfreierGesamtbetrag = 0 + RG.Status = 0 + + RG.[Vorkosten] = 0 + RG.[Erlös] = 0 + RG.[Buchungsjahr] = 0 + RG.[Währungscode] = "EUR" + RG.ReErfZeitstempel = Now + + + RG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + + RG.Buchungsjahr = getGJ(CDate(SPEDBUCH.Abfertigungsdatum)) + + Dim dtSt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & RG.Steuerschlüssel & "'", "FMZOLL") + If dtSt IsNot Nothing AndAlso dtSt.Rows.Count > 0 Then + RG.Steuersatz_Proz = CDbl(dtSt.Rows(0)(0)) + End If + + '================================================== + '====================POSITIONEN==================== + '================================================== + + + '================================================== + '== Standard laden: + Dim dtBestPOS = SQL.loadDgvBySql("SELECT * FROM [Offertenpositionen] where OffertenNr='" & OffertenNr & "' and KundenNr='" & KdNr & "' and Anzahl>0 and preis>0 ", "FMZOLL") + If dtBestPOS IsNot Nothing Then + + For Each r As DataRow In dtBestPOS.Rows + Dim POS_TMP As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen + POS_TMP.LeistungsNr = CInt(r("LeistungsNr")) + POS_TMP.LeistungsBez = If(r("LeistungsBez").ToString, "") + POS_TMP.BerechnungsartNr = CInt(r("BerechnungsartNr")) + POS_TMP.Preis = If(r("Preis") Is DBNull.Value, 0, CDbl(r("Preis").ToString.Replace(".", ""))) + POS_TMP.Anzahl = If(r("Anzahl") Is DBNull.Value, 0, r("Anzahl")) + POS_TMP.BGebLeistungsNr = r("BGebLeistungsNr") + POS_TMP.BGebProzent = r("BGebProzent") + POS_TMP.BGebMinBetrag = r("BGebMinBetrag") + POS_TMP.Steuerpflichtig = True 'CBool(LEISTUNG.Steuerpflichtig) + Dim NettobetragTMP As Double = CDbl(POS_TMP.Preis) * CDbl(POS_TMP.Anzahl) + Dim BruttoBetragTMP As Double = CDbl((NettobetragTMP + (NettobetragTMP * RG.Steuersatz_Proz / 100)).ToString("N2")) + POS_TMP.BGebBgl = NettobetragTMP + If POS_TMP.Steuerpflichtig Then + POS_TMP.SteuerpflichtigerBetrag = CDec(NettobetragTMP) + Else + POS_TMP.SteuerfreierBetrag = CDec(BruttoBetragTMP) + End If + + RG.POSITIONEN.Add(POS_TMP) + Next + End If + '================================================== + + + Dim POS As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen() + Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(LEISTUNGSNR_PARKEN) + 'Dim POS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 313) + 'If POS Is Nothing Then + ' POS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen() + ' RG.POSITIONEN.Add(POS) + 'End If + + POS.LeistungsNr = LEISTUNGSNR_PARKEN + POS.LeistungsBez = "Parkplatz " & Std & " Std x " & KostenStd.ToString("C2") + + Dim Nettobetrag As Double = CDbl((KostenStd * Std).ToString("N2")) + Dim BruttoBetrag As Double = CDbl((Nettobetrag + (Nettobetrag * RG.Steuersatz_Proz / 100)).ToString("N2")) + + POS.BerechnungsartNr = CInt(LEISTUNG.BerechnungsartNr) + 'POS.Preis = BruttoBetrag + POS.Anzahl = 1 + POS.Steuerpflichtig = True 'CBool(LEISTUNG.Steuerpflichtig) + POS.BGebBgl = Nettobetrag + + + If POS.Steuerpflichtig Then + POS.SteuerpflichtigerBetrag = CDec(Nettobetrag) + + POS.Preis = Nettobetrag + Else + POS.SteuerfreierBetrag = CDec(BruttoBetrag) + POS.Preis = CDec(BruttoBetrag) + End If + + POS.BGebLeistungsNr = LEISTUNGSNR_PARKEN + POS.BGebProzent = Nothing + POS.BGebMinBetrag = Nothing + + + '================================================== + RG.SteuerpflichtigerGesamtbetrag = POS.SteuerpflichtigerBetrag + RG.SteuerfreierGesamtbetrag = POS.SteuerfreierBetrag + + RG.POSITIONEN.Add(POS) + ' cFakturierung.setGesamtBetraege(RG) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ' RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim + + 'Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen + 'Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen + + 'Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen + + If RG.SAVE Then + ' FAKTURIERT eintragen + RECHNUNG = RG + Return True + Else + Return False + End If + + Catch ex As System.Exception + MsgBox(ex.Message & ex.StackTrace) + End Try + Return False + + End Function + + + Shared Function getGJ(BelegDat As Date, Optional FIRMA_ID As Integer = -1) As Integer + 'If FIRMA = "" Then FIRMA = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA + Select Case FIRMA_ID + Case -1, 1, 3, 11, 7, 19, 15 'Abweichendes WJ + Return If(BelegDat.Month = 1, BelegDat.Year - 1, BelegDat.Year) + Case Else + Return BelegDat.Year + End Select + End Function + + Private Sub PictureBox6_Click(sender As Object, e As EventArgs) Handles PictureBox6.Click + Dim webAddress As String = "https://wiki.verag.ag/abteilungen/mdm/parkplatz/abrechnungDauerparker" + Process.Start(webAddress) End Sub End Class diff --git a/Parkzeit/rptAbrechnungVERAG2.rdlc b/Parkzeit/rptAbrechnungVERAG2.rdlc new file mode 100644 index 0000000..7c7e102 --- /dev/null +++ b/Parkzeit/rptAbrechnungVERAG2.rdlc @@ -0,0 +1,1241 @@ + + + 0 + + + + System.Data.DataSet + /* Local Connection */ + + 9a95dd35-ac23-48c7-b430-98358c7ae8dd + + + + + + ParkzeitDataSet + /* Local Query */ + + + + ParkzeitID + System.Int32 + + + Laufende_Nr + System.Int32 + + + Von + System.DateTime + + + Bis + System.DateTime + + + Dauer + System.String + + + Dauer_Minuten + System.Int32 + + + Kennzeichen + System.String + + + + ParkzeitDataSet + C:\Projekte.NET\Verag\Parkzeit\Parkzeit\ParkzeitDataSet.xsd + Parkzeiten + Fill + GetData + ParkzeitenTableAdapter + + + + + + + + + + + 1.41227cm + + + 3.85999cm + + + 4.13723cm + + + 1.86959cm + + + 5.47136cm + + + 0.28194cm + + + + + 0.55001cm + + + + + true + true + + + + + =Fields!Laufende_Nr.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Von.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Bis.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Dauer.Value + + + + Dauer + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Kennzeichen.Value + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + + + + + + + + + + 0.6cm + + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + ="Gesamtsumme" + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!Gesamtdauer.Value + + + + + + + Textbox28 + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!Gesamtkosten.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + + + Before + + + + DataSet1 + 0.09016cm + 0.07936cm + 1.15001cm + 17.03238cm + + + 8pt + + + + 0.48826in + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + lfd Nr + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Einfahrt + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ausfahrt + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Dauer Std. + + + + + + + KundennummerHeader + 1.69965cm + 9.11868cm + 0.19968in + 0.77763in + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!SelektionText.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + LKW-Kennzeichen + + + + + + + KundennummerHeader + 1.69965cm + 11.09386cm + 0.19968in + 1.30903in + 6 + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + VeragAGLogo + FitProportional + 0.15028cm + 12.083cm + 1.05548cm + 5.02876cm + 7 + + + + + + 2.20684cm + 0.11906cm + 0cm + 17.03238cm + 8 + + + + + + + + + + + 0.74083cm + true + true + + + true + true + + + + + =Parameters!Firmenname.Value + + + + + + + Textbox16 + 0.17637cm + 5.35161cm + 0.49445cm + 5.40723cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Seite " & Globals!PageNumber & " von " & Globals!TotalPages + + + + + + + Textbox16 + 0.14109cm + 11.20053cm + 0.49445cm + 5.91122cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ="Druck erstellt am " & format(Globals!ExecutionTime,"dd.MM.yyyy HH:mm") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 0.07054cm + 0.15875cm + 0cm + 16.953cm + 3 + + 0.5pt + + + + + + + + + 29.7cm + 21cm + 2cm + 1cm + 1.5cm + 1cm + 0.13cm +