diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index 519ab6d0..a64dcc6c 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -982,7 +982,7 @@ Public Class cAutomailversand If isEinzelrechnung Then RE_Text = "diese Rechnung" Else - RE_Text = "alle markieren Rechnungen" + RE_Text = "alle markierten Rechnungen" End If If vbYes = MsgBox("Möchten Sie für " & RE_Text & " den automatischen Emailversand aktivieren?" & vbNewLine & "Die Rechnungen werden automatisch im Nachtlauf per EMail verschickt!", vbYesNoCancel) Then diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index f0322c91..0e832ce1 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -184,19 +184,11 @@ Public Class frmAbrechnungsMaske If Not loaded Then Exit Sub Dim dgv As VERAG_PROG_ALLGEMEIN.MyDatagridview = getDGV() - Dim reNrSQL As String = "" - If cbx.Checked Then - reNrSQL = " isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr,cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, " - Else - reNrSQL = " cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, " - End If - - With dgv Dim sqlstr = "" If cbxGutschriftenAnVerag.Checked AndAlso cboFirma._value <> "" AndAlso cboFirma._value = "24" Then - sqlstr &= " SELECT R1.FilialenNr, R1.AbfertigungsNr, cast(R1.FilialenNr as varchar) + ' ' + cast(R1.AbfertigungsNr as varchar) as PosNr, R1.UnterNr, Firma_ID,R1.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr FROM Rechnungsausgang as R1 INNER JOIN Adressen ON AdressenNr=R1.RechnungsKundenNr inner Join Speditionsbuch on Speditionsbuch.FilialenNr = R1.FilialenNr And Speditionsbuch.AbfertigungsNr = R1.AbfertigungsNr and Speditionsbuch.UnterNr = R1.SpeditionsbuchUnterNr " + sqlstr &= " SELECT isnull(R1.RechnungsNr,'-') as ReNr, R1.FilialenNr, R1.AbfertigungsNr, cast(R1.FilialenNr as varchar) + ' ' + cast(R1.AbfertigungsNr as varchar) as PosNr, R1.UnterNr, Firma_ID,R1.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr FROM Rechnungsausgang as R1 INNER JOIN Adressen ON AdressenNr=R1.RechnungsKundenNr inner Join Speditionsbuch on Speditionsbuch.FilialenNr = R1.FilialenNr And Speditionsbuch.AbfertigungsNr = R1.AbfertigungsNr and Speditionsbuch.UnterNr = R1.SpeditionsbuchUnterNr " sqlstr &= " WHERE 1=1 AND R1.Firma_ID=24 " sqlstr &= getRGWhere(cboER_SR._value, FilialNrRestriction) sqlstr &= " and (SELECT COUNT(*) FROM Rechnungsausgang as R2 where" @@ -207,7 +199,7 @@ Public Class frmAbrechnungsMaske Else ' sqlstr &= " SELECT FilialenNr, AbfertigungsNr, UnterNr, Firma_ID, Status, Sammelrechnung, Sachbearbeiter, SteuerpflichtigerGesamtbetrag, SteuerfreierGesamtbetrag, RechnungsNr, RechnungsDatum, DruckDatumZeit, Buchungsjahr, RK_ID" - sqlstr &= " SELECT " & reNrSQL & " FilialenNr, AbfertigungsNr, cast(FilialenNr as varchar) + ' ' + cast(AbfertigungsNr as varchar) as PosNr,UnterNr, Firma_ID,Rechnungsausgang.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr" + sqlstr &= " SELECT cast(isnull(Automailversand_sent, 0) as bit) as AUTO_sent, isnull(Rechnungsausgang.RechnungsNr,'-') as ReNr, FilialenNr, AbfertigungsNr, cast(FilialenNr as varchar) + ' ' + cast(AbfertigungsNr as varchar) as PosNr,UnterNr, Firma_ID,Rechnungsausgang.Sammelrechnung as Art, [RechnungsName 1] as Rechnungsempfänger, (isnull(SteuerpflichtigerGesamtbetrag,0) + isnull(SteuerfreierGesamtbetrag,0)) as Betrag, RK_ID,RechnungsLandKz,RechnungsKundenNr" sqlstr &= ",(CASE WHEN Rechnungsdruck =0 THEN 'POST' WHEN Rechnungsdruck=1 THEN 'FAX' WHEN Rechnungsdruck=2 THEN 'E-MAIL' WHEN Rechnungsdruck=5 THEN 'MAIL+KOPIE' ELSE '-' END) as Rechnungsdruck, isnull(BelegartenKz, '') as BelegartenKz " sqlstr &= " FROM Rechnungsausgang INNER JOIN Adressen ON AdressenNr=Rechnungsausgang.RechnungsKundenNr" sqlstr &= " WHERE 1=1 " @@ -232,9 +224,14 @@ Public Class frmAbrechnungsMaske .Columns("BelegartenKz").Visible = False End If - If .Columns.Contains("ReNr") Then - .Columns("ReNr").HeaderText = "ReNr." + + If cbx.Checked Then + .Columns("ReNr").Visible = True + Else + .Columns("ReNr").Visible = False + End If + End If If .Columns.Contains("AUTO_sent") Then @@ -987,7 +984,7 @@ Public Class frmAbrechnungsMaske Dim ListOfRK_ID As New List(Of Integer) - Dim noRE_DATE = dgvRechnungen.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("RENR").Value Is Nothing OrElse IsDBNull(r.Cells("RENR").Value)) + Dim noRE_DATE = dgvRechnungen.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("RENR").Value Is Nothing OrElse IsDBNull(r.Cells("RENR").Value) OrElse (r.Cells("RENR").Value) <> "-") If noRE_DATE Then MsgBox("ACHTUNG, Rechnungsdatum wurde nicht gesetzt." & vbNewLine & "Vorgang wird abgebrochen!") : Exit Sub diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb index 73c206bf..e52444f2 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.Designer.vb @@ -563,7 +563,7 @@ Partial Class frmFaktSammelRgDrucken Me.MyDatagridview1.ReadOnly = True Me.MyDatagridview1.RowHeadersVisible = False Me.MyDatagridview1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.MyDatagridview1.Size = New System.Drawing.Size(574, 373) + Me.MyDatagridview1.Size = New System.Drawing.Size(638, 373) Me.MyDatagridview1.TabIndex = 18 ' 'txtZeitraumBis @@ -642,7 +642,7 @@ Partial Class frmFaktSammelRgDrucken ' Me.btnNurImport.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnNurImport.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnNurImport.Location = New System.Drawing.Point(836, 437) + Me.btnNurImport.Location = New System.Drawing.Point(900, 437) Me.btnNurImport.Margin = New System.Windows.Forms.Padding(0) Me.btnNurImport.Name = "btnNurImport" Me.btnNurImport.Size = New System.Drawing.Size(75, 26) @@ -656,7 +656,7 @@ Partial Class frmFaktSammelRgDrucken Me.MyListBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.MyListBox1.FormattingEnabled = True - Me.MyListBox1.Location = New System.Drawing.Point(836, 93) + Me.MyListBox1.Location = New System.Drawing.Point(900, 93) Me.MyListBox1.Name = "MyListBox1" Me.MyListBox1.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple Me.MyListBox1.Size = New System.Drawing.Size(225, 316) @@ -666,7 +666,7 @@ Partial Class frmFaktSammelRgDrucken ' Me.btnKeine.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnKeine.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnKeine.Location = New System.Drawing.Point(985, 437) + Me.btnKeine.Location = New System.Drawing.Point(1049, 437) Me.btnKeine.Margin = New System.Windows.Forms.Padding(0) Me.btnKeine.Name = "btnKeine" Me.btnKeine.Size = New System.Drawing.Size(75, 26) @@ -677,7 +677,7 @@ Partial Class frmFaktSammelRgDrucken 'lblAbfertigungsarten ' Me.lblAbfertigungsarten.AutoSize = True - Me.lblAbfertigungsarten.Location = New System.Drawing.Point(833, 77) + Me.lblAbfertigungsarten.Location = New System.Drawing.Point(896, 77) Me.lblAbfertigungsarten.Name = "lblAbfertigungsarten" Me.lblAbfertigungsarten.Size = New System.Drawing.Size(97, 13) Me.lblAbfertigungsarten.TabIndex = 43 @@ -687,7 +687,7 @@ Partial Class frmFaktSammelRgDrucken ' Me.btnNurExport.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnNurExport.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnNurExport.Location = New System.Drawing.Point(911, 437) + Me.btnNurExport.Location = New System.Drawing.Point(975, 437) Me.btnNurExport.Margin = New System.Windows.Forms.Padding(0) Me.btnNurExport.Name = "btnNurExport" Me.btnNurExport.Size = New System.Drawing.Size(75, 26) @@ -699,7 +699,7 @@ Partial Class frmFaktSammelRgDrucken ' Me.Label6.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.Label6.AutoSize = True - Me.Label6.Location = New System.Drawing.Point(833, 412) + Me.Label6.Location = New System.Drawing.Point(897, 412) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(234, 13) Me.Label6.TabIndex = 49 @@ -710,7 +710,7 @@ Partial Class frmFaktSammelRgDrucken Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.Color.White - Me.ClientSize = New System.Drawing.Size(1069, 472) + Me.ClientSize = New System.Drawing.Size(1133, 472) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.btnNurExport) Me.Controls.Add(Me.btnNurImport) diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index c3ed5c80..933bed7a 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -1,4 +1,5 @@ -Imports Microsoft.Office.Interop +Imports DocumentFormat.OpenXml.Drawing.Diagrams +Imports Microsoft.Office.Interop Public Class frmFaktSammelRgDrucken @@ -147,7 +148,7 @@ Public Class frmFaktSammelRgDrucken sqlStr = " SELECT - min(Rechnungsausgang.RechnungsNr) as RENR, + max(Rechnungsausgang.RechnungsNr) as RENR, Rechnungsausgang.RechnungsKundenNr, MAX(Rechnungsausgang.[RechnungsName 1]) AS Firma, " & If(Sammelrechung = 7, "AvisoId", "0") & " AS AvisoId, @@ -195,21 +196,34 @@ Public Class frmFaktSammelRgDrucken .Columns("Rechnungsdruck").HeaderText = "Rg.Art" .Columns("Rechnungsdruck").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("Anzahl").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter - '.Columns(2).Visible = False - If .Columns.Contains("LKW") And .Columns.Count = 8 Then + + If .Columns.Contains("LKW") And .Columns.Count >= 8 Then .Columns("LKW").Width = 80 End If - If Sammelrechung = 7 Then - .Columns("AvisoId").Visible = True - Else - .Columns("AvisoId").Visible = False + If .Columns.Contains("IM_EX") And .Columns.Count >= 8 Then + .Columns("IM_EX").Width = 45 End If If .Columns.Contains("RechnungsLandKz") AndAlso Sammelrechung = 6 Then .Columns("RechnungsLandKz").Visible = True + If .Columns.Contains("keineMWST") Then .Columns("keineMWST").Visible = False - If .Columns.Contains("RENR") Then .Columns("RENR").Visible = False + + If .Columns.Contains("RENR") Then + If cbxAUTOMail.Checked Then + .Columns("RENR").Visible = True + Else + .Columns("RENR").Visible = False + End If + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + .Columns("RENR").Visible = True + End If + + End If + If .Columns.Contains("Steuer") Then .Columns("Steuer").Visible = False + If .Columns.Contains("AvisoId") Then .Columns("AvisoId").Visible = False .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill @@ -453,7 +467,7 @@ Public Class frmFaktSammelRgDrucken If MyDatagridview1.SelectedRows.Count > 0 Then For Each r In MyDatagridview1.SelectedRows If r.cells("AvisoId").value Is DBNull.Value Then - MsgBox("Nich alle Speditionsbucheinträge haben eine Aviso-Id. LKW Abrechnung wird abgebrochen.") : Return (New List(Of Integer)) + MsgBox("Nicht alle Speditionsbucheinträge haben eine Aviso-Id. LKW Abrechnung wird abgebrochen.") : Return (New List(Of Integer)) End If AvisoIds.Add(r.cells("AvisoId").value) Next @@ -628,27 +642,26 @@ Public Class frmFaktSammelRgDrucken If cAutomailversand.automRechnungsversand_aktivieren() Then - Dim noRENRExisting As Boolean = False Dim onlyEMAIL As Boolean = True If MyDatagridview1.Columns.Contains("RENR") AndAlso MyDatagridview1.Columns.Contains("Rechnungsdruck") Then - noRENRExisting = MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("RENR").Value Is Nothing OrElse IsDBNull(r.Cells("RENR").Value)) - onlyEMAIL = MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) IsDBNull(r.Cells("Rechnungsdruck").Value) OrElse r.Cells("Rechnungsdruck").Value Is Nothing OrElse r.Cells("Rechnungsdruck").Value.ToString() <> "E-MAIL") - If noRENRExisting Then + onlyEMAIL = MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Any(Function(r) r.Cells("Rechnungsdruck").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("Rechnungsdruck").Value) AndAlso r.Cells("Rechnungsdruck").Value.ToString().Trim() = "E-MAIL") - If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub - If txtZeitraumBis.Text = "" Then MsgBox("Bitte Zeitraum-Bis angeben!") : Exit Sub - If txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum angeben!") : Exit Sub - If onlyEMAIL Then MsgBox("Sammelrechnungen die per POST/FAX verschickt werden, können nicht gesetzt werden!") : Exit Sub + If cboFirma._value = "" Then MsgBox("Bitte Firma angeben!") : Exit Sub + If txtZeitraumBis.Text = "" Then MsgBox("Bitte Zeitraum-Bis angeben!") : Exit Sub + If txtRechnungsdatum.Text = "" Then MsgBox("Bitte Rechnungsdatum angeben!") : Exit Sub + If Not onlyEMAIL Then MsgBox("Sammelrechnungen die per POST/FAX verschickt werden, können nicht gesetzt werden!") : Exit Sub + If vbYes = MsgBox("Es wird eine Beleg-NR vergeben, die Belege gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then - If vbYes = MsgBox("Es wird eine Beleg-NR vergeben, die Belege gelten somit als gedruckt und können nicht mehr bearbeitet werden.", vbYesNoCancel) Then + For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value)) - For Each r In MyDatagridview1.SelectedRows.Cast(Of DataGridViewRow)().Where(Function(x) x.Cells("RENR").Value Is Nothing OrElse IsDBNull(x.Cells("RENR").Value)) - - If IsDate(txtRechnungsdatum.Text) AndAlso IsDate(txtZeitraumBis.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then + If IsDate(txtRechnungsdatum.Text) AndAlso IsDate(txtZeitraumBis.Text) AndAlso Not IsDBNull(r.Cells("RechnungsLandKz").Value) AndAlso Not IsDBNull(r.Cells("RechnungsKundenNr").Value) AndAlso IsNumeric(r.Cells("RechnungsKundenNr").Value) Then + Dim RENRExisting As Boolean = False + RENRExisting = r.Cells("RENR").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("RENR").Value) AndAlso r.Cells("RENR").Value.ToString().Trim() <> "" + If Not RENRExisting Then Me.Enabled = False Me.Cursor = Cursors.WaitCursor @@ -664,17 +677,14 @@ Public Class frmFaktSammelRgDrucken End If Me.Enabled = True End If + End If - Next - Me.Enabled = True - Me.Cursor = Cursors.Default + Next + Me.Enabled = True + Me.Cursor = Cursors.Default - - Else - - - End If End If + End If setMailversand_ALL(True, Firma, Sammelrechung) @@ -688,6 +698,7 @@ Public Class frmFaktSammelRgDrucken + End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click diff --git a/SDL/My Project/Resources.Designer.vb b/SDL/My Project/Resources.Designer.vb index 11b8f540..635501b6 100644 --- a/SDL/My Project/Resources.Designer.vb +++ b/SDL/My Project/Resources.Designer.vb @@ -1124,6 +1124,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Byte[]. + ''' + Friend ReadOnly Property Kostenkalkulation_UNI() As Byte() + Get + Dim obj As Object = ResourceManager.GetObject("Kostenkalkulation_UNI", resourceCulture) + Return CType(obj,Byte()) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/SDL/My Project/Resources.resx b/SDL/My Project/Resources.resx index dbff307c..3ece8c65 100644 --- a/SDL/My Project/Resources.resx +++ b/SDL/My Project/Resources.resx @@ -982,4 +982,7 @@ ..\Resources\KVI_report_general.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\Kostenkalkulation_UNI.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/SDL/Resources/Kostenkalkulation_UNI.xlsx b/SDL/Resources/Kostenkalkulation_UNI.xlsx new file mode 100644 index 00000000..76019f19 Binary files /dev/null and b/SDL/Resources/Kostenkalkulation_UNI.xlsx differ diff --git a/SDL/SDL.vbproj b/SDL/SDL.vbproj index 452cc65a..2d108c6b 100644 --- a/SDL/SDL.vbproj +++ b/SDL/SDL.vbproj @@ -5035,6 +5035,7 @@ + diff --git a/SDL/kunden/usrCntlOfferte.Designer.vb b/SDL/kunden/usrCntlOfferte.Designer.vb index d7da90bb..4997b6ee 100644 --- a/SDL/kunden/usrCntlOfferte.Designer.vb +++ b/SDL/kunden/usrCntlOfferte.Designer.vb @@ -49,6 +49,7 @@ Partial Class usrCntlOfferte Me.Label2 = New System.Windows.Forms.Label() Me.lblLeistunAddErr2 = New System.Windows.Forms.Label() Me.pnlEdit = New System.Windows.Forms.Panel() + Me.btnOffertPreisliste = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button() Me.cbxAutoFakturierung = New System.Windows.Forms.CheckBox() Me.Label3 = New System.Windows.Forms.Label() @@ -64,17 +65,18 @@ Partial Class usrCntlOfferte Me.lblEditMode = New System.Windows.Forms.Label() Me.btnOffertbearbeiten = New System.Windows.Forms.Button() Me.dgvOfferteNew = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) - Me.Button2 = New System.Windows.Forms.Button() - Me.Panel1 = New System.Windows.Forms.Panel() + Me.btnKK = New System.Windows.Forms.Button() + Me.pnlKostenkalkulation = New System.Windows.Forms.Panel() + Me.btnKK_Mail = New System.Windows.Forms.Button() Me.btnSaveBes = New System.Windows.Forms.Button() - Me.btnOffertPreisliste = New System.Windows.Forms.Button() + Me.Label4 = New System.Windows.Forms.Label() CType(Me.dgvOfferteDetails, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.dgvOfferte, System.ComponentModel.ISupportInitialize).BeginInit() Me.cntxtAddSdl.SuspendLayout() Me.pnlSperre.SuspendLayout() Me.pnlEdit.SuspendLayout() CType(Me.dgvOfferteNew, System.ComponentModel.ISupportInitialize).BeginInit() - Me.Panel1.SuspendLayout() + Me.pnlKostenkalkulation.SuspendLayout() Me.SuspendLayout() ' 'lblBesonderheiten @@ -408,6 +410,21 @@ Partial Class usrCntlOfferte Me.pnlEdit.Size = New System.Drawing.Size(797, 60) Me.pnlEdit.TabIndex = 20 ' + 'btnOffertPreisliste + ' + Me.btnOffertPreisliste.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnOffertPreisliste.BackgroundImage = Global.SDL.My.Resources.Resources.pdf + Me.btnOffertPreisliste.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnOffertPreisliste.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnOffertPreisliste.ForeColor = System.Drawing.Color.Black + Me.btnOffertPreisliste.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnOffertPreisliste.Location = New System.Drawing.Point(569, 0) + Me.btnOffertPreisliste.Name = "btnOffertPreisliste" + Me.btnOffertPreisliste.Size = New System.Drawing.Size(51, 36) + Me.btnOffertPreisliste.TabIndex = 34 + Me.btnOffertPreisliste.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnOffertPreisliste.UseVisualStyleBackColor = True + ' 'Button1 ' Me.Button1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) @@ -626,29 +643,45 @@ Partial Class usrCntlOfferte Me.dgvOfferteNew.Size = New System.Drawing.Size(228, 347) Me.dgvOfferteNew.TabIndex = 30 ' - 'Button2 + 'btnKK ' - Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.Button2.ForeColor = System.Drawing.Color.Black - Me.Button2.Image = Global.SDL.My.Resources.Resources.Excel_logo - Me.Button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button2.Location = New System.Drawing.Point(0, 7) - Me.Button2.Name = "Button2" - Me.Button2.Size = New System.Drawing.Size(131, 36) - Me.Button2.TabIndex = 34 - Me.Button2.Text = "Kostenkalkulation" - Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.Button2.UseVisualStyleBackColor = True + Me.btnKK.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnKK.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnKK.ForeColor = System.Drawing.Color.Black + Me.btnKK.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.btnKK.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnKK.Location = New System.Drawing.Point(11, 26) + Me.btnKK.Name = "btnKK" + Me.btnKK.Size = New System.Drawing.Size(44, 36) + Me.btnKK.TabIndex = 34 + Me.btnKK.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnKK.UseVisualStyleBackColor = True ' - 'Panel1 + 'pnlKostenkalkulation ' - Me.Panel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.Panel1.Controls.Add(Me.Button2) - Me.Panel1.Location = New System.Drawing.Point(3, 385) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(139, 51) - Me.Panel1.TabIndex = 34 + Me.pnlKostenkalkulation.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.pnlKostenkalkulation.Controls.Add(Me.Label4) + Me.pnlKostenkalkulation.Controls.Add(Me.btnKK_Mail) + Me.pnlKostenkalkulation.Controls.Add(Me.btnKK) + Me.pnlKostenkalkulation.Location = New System.Drawing.Point(3, 385) + Me.pnlKostenkalkulation.Name = "pnlKostenkalkulation" + Me.pnlKostenkalkulation.Size = New System.Drawing.Size(119, 65) + Me.pnlKostenkalkulation.TabIndex = 34 + Me.pnlKostenkalkulation.Visible = False + ' + 'btnKK_Mail + ' + Me.btnKK_Mail.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnKK_Mail.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnKK_Mail.ForeColor = System.Drawing.Color.Black + Me.btnKK_Mail.Image = Global.SDL.My.Resources.Resources.email_big1 + Me.btnKK_Mail.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnKK_Mail.Location = New System.Drawing.Point(62, 26) + Me.btnKK_Mail.Name = "btnKK_Mail" + Me.btnKK_Mail.Size = New System.Drawing.Size(44, 36) + Me.btnKK_Mail.TabIndex = 35 + Me.btnKK_Mail.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnKK_Mail.UseVisualStyleBackColor = True ' 'btnSaveBes ' @@ -663,20 +696,15 @@ Partial Class usrCntlOfferte Me.btnSaveBes.Tag = "" Me.btnSaveBes.UseVisualStyleBackColor = True ' - 'btnOffertPreisliste + 'Label4 ' - Me.btnOffertPreisliste.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnOffertPreisliste.BackgroundImage = Global.SDL.My.Resources.Resources.pdf - Me.btnOffertPreisliste.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.btnOffertPreisliste.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnOffertPreisliste.ForeColor = System.Drawing.Color.Black - Me.btnOffertPreisliste.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnOffertPreisliste.Location = New System.Drawing.Point(569, 0) - Me.btnOffertPreisliste.Name = "btnOffertPreisliste" - Me.btnOffertPreisliste.Size = New System.Drawing.Size(51, 36) - Me.btnOffertPreisliste.TabIndex = 34 - Me.btnOffertPreisliste.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnOffertPreisliste.UseVisualStyleBackColor = True + Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(5, 4) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(94, 13) + Me.Label4.TabIndex = 35 + Me.Label4.Text = "Kostenkalkulation:" ' 'usrCntlOfferte ' @@ -705,7 +733,7 @@ Partial Class usrCntlOfferte Me.Controls.Add(Me.dgvOfferteDetails) Me.Controls.Add(Me.dgvOfferte) Me.Controls.Add(Me.pnlEdit) - Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.pnlKostenkalkulation) Me.Margin = New System.Windows.Forms.Padding(2) Me.Name = "usrCntlOfferte" Me.Size = New System.Drawing.Size(1041, 576) @@ -717,7 +745,8 @@ Partial Class usrCntlOfferte Me.pnlEdit.ResumeLayout(False) Me.pnlEdit.PerformLayout() CType(Me.dgvOfferteNew, System.ComponentModel.ISupportInitialize).EndInit() - Me.Panel1.ResumeLayout(False) + Me.pnlKostenkalkulation.ResumeLayout(False) + Me.pnlKostenkalkulation.PerformLayout() Me.ResumeLayout(False) Me.PerformLayout() @@ -762,8 +791,10 @@ Partial Class usrCntlOfferte Friend WithEvents btnOffertbearbeiten As Button Friend WithEvents dgvOfferteNew As VERAG_PROG_ALLGEMEIN.MyDatagridview Friend WithEvents Button1 As Button - Friend WithEvents Button2 As Button - Friend WithEvents Panel1 As Panel + Friend WithEvents btnKK As Button + Friend WithEvents pnlKostenkalkulation As Panel Friend WithEvents btnSaveBes As Button Friend WithEvents btnOffertPreisliste As Button + Friend WithEvents btnKK_Mail As Button + Friend WithEvents Label4 As Label End Class diff --git a/SDL/kunden/usrCntlOfferte.vb b/SDL/kunden/usrCntlOfferte.vb index 9ced1568..c8bec129 100644 --- a/SDL/kunden/usrCntlOfferte.vb +++ b/SDL/kunden/usrCntlOfferte.vb @@ -1,7 +1,4 @@ - - -Imports VERAG_PROG_ALLGEMEIN -Imports VERAG_PROG_ALLGEMEIN.TESTJSON +Imports Microsoft.Office.Interop Public Class usrCntlOfferte @@ -769,6 +766,12 @@ Public Class usrCntlOfferte End If + If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("KOSTENKALKULATION_OFFERTE", "SDL") Then + pnlKostenkalkulation.Visible = False + Else + pnlKostenkalkulation.Visible = True + End If + If dgvOfferteNew.SelectedRows.Count = 0 Then btnOffertbearbeiten.Visible = False @@ -876,7 +879,7 @@ Public Class usrCntlOfferte End Function - Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnKK.Click, btnKK_Mail.Click Me.Cursor = Cursors.WaitCursor Try @@ -887,6 +890,7 @@ Public Class usrCntlOfferte Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(kdNr) Dim ADR As New VERAG_PROG_ALLGEMEIN.cAdressen(kdNr) Dim FIRMA_TMP = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KD.FilialenNr) + Dim FirmaID As Integer = -1 If dgvOfferteDetails.Rows.Count = 0 Then Exit Sub @@ -912,11 +916,13 @@ Public Class usrCntlOfferte Dim ExcelBez = "Kostenkalkulation" Dim offertenNr As Integer = dtKostenkalk.Rows(0).Item("OffertenNr") - If offertenNr = 26 Or offertenNr = 38 Then FIRMA_TMP = "CS" + If (offertenNr = 26 Or offertenNr = 38) AndAlso FIRMA_TMP <> "UNISPED" Then FIRMA_TMP = "CS" Select Case FIRMA_TMP - Case "IMEX" : ExcelBez &= "_IMEX " - Case "VERAG" : ExcelBez &= "_AG " + Case "IMEX" : ExcelBez &= "_IMEX_" : FirmaID = 20 + Case "VERAG" : ExcelBez &= "_AG_" : FirmaID = 1 + Case "UNISPED" : ExcelBez &= "_UNISPED_" : FirmaID = 21 + Case "CS" : ExcelBez &= "_CS " : FirmaID = 11 Case Else : ExcelBez &= " " End Select @@ -934,6 +940,8 @@ Public Class usrCntlOfferte Select Case FIRMA_TMP Case "IMEX" : My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Kostenkalkulation_IMEX, False) Case "VERAG" : My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Kostenkalkulation_AG, False) + Case "UNISPED" : My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Kostenkalkulation_UNI, False) + Case "CS" : My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Kostenkalkulation_CS, False) Case Else : My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Kostenkalkulation, False) End Select @@ -956,6 +964,8 @@ Public Class usrCntlOfferte Blatt.Range("H11").Value = "Tarif für " & Today().Year + Blatt.Range("D11").Value = Blatt.Range("D11").Value.ToString.Replace("2025", Today().Year) + Dim currentRow As Integer = 13 Dim dtkeineMdtKostenkalk_mitPreise As DataTable = dtKostenkalk.Select("Preis <> ''").CopyToDataTable @@ -984,14 +994,15 @@ Public Class usrCntlOfferte Select Case CDate(DatumDerZollabf).Year 'Berechnungssätze laut Johanna Luxbauer - Case 2018 : Blatt.Range("D" & currentRow).Value = 0.3387 - Case 2019 : Blatt.Range("D" & currentRow).Value = 0.3048 - Case 2020 : Blatt.Range("D" & currentRow).Value = 0.2792 - Case 2021 : Blatt.Range("D" & currentRow).Value = 0.2597 - Case 2022 : Blatt.Range("D" & currentRow).Value = 0.2207 - Case 2023 : Blatt.Range("D" & currentRow).Value = 0.0997 - Case 2024 : Blatt.Range("D" & currentRow).Value = 0.0394 - Case 2025 : Blatt.Range("D" & currentRow).Value = 0 + Case 2018 : Blatt.Range("D" & currentRow).Value = 0.3782 + Case 2019 : Blatt.Range("D" & currentRow).Value = 0.3433 + Case 2020 : Blatt.Range("D" & currentRow).Value = 0.317 + Case 2021 : Blatt.Range("D" & currentRow).Value = 0.2969 + Case 2022 : Blatt.Range("D" & currentRow).Value = 0.2567 + Case 2023 : Blatt.Range("D" & currentRow).Value = 0.1321 + Case 2024 : Blatt.Range("D" & currentRow).Value = 0.0701 + Case 2025 : Blatt.Range("D" & currentRow).Value = 0.0295 + Case 2026 : Blatt.Range("D" & currentRow).Value = 0 Case Else Blatt.Range("D" & currentRow).Value = "" End Select @@ -1002,9 +1013,60 @@ Public Class usrCntlOfferte currentRow = currentRow + 1 Next - Datei.Save - .Visible = True + + Select Case sender.name + Case "btnKK_Mail" + + Dim outl As New Outlook.Application + Dim Mail As Microsoft.Office.Interop.Outlook.MailItem + Mail = outl.CreateItem(0) + + Mail.To = ADR.E_Mail + + + Dim TextHTML = "" + TextHTML &= "Sehr geehrte Damen und Herren,
+  
wir möchten uns für die gute Zusammenarbeit mit Ihrem Unternehmen herzlich bedanken.
+  
Unsere Aufwendungen für Mitarbeitende, IT-Systeme und Betriebskosten sind Jahr für Jahr gestiegen, so dass wir nicht umhin kommen, unsere Verzollungssätze entsprechend anzupassen.
+  
Ihr Verständnis ist uns wichtig und deshalb möchten wir Ihnen die Einflussfaktoren erläutern:

+
    +
  • Personalkostenerhöhungen in der Branche
  • +
  • Verlagerung der Aufgaben von der Zollverwaltung zu den Spediteuren
  • +
  • Verschärfte gesetzliche Bestimmungen (CBAM, NCTS5,..)
  • +
  • Permanentes Update der elektronischen Zollsysteme
  • +
  • Fortlaufende Weiterbildung unserer Zollsachbearbeitenden
  • +
  • Verlängerte Öffnungszeiten
  • +
  • Inflation, Wirtschaftskrise
  • +
  • Gesteigerte Energiekosten, Versorgungskosten
  • +
+
+ Beiliegend erhalten Sie eine Aufstellung mit den angepassten Abfertigungssätzen, gültig ab 01. Juni 2026.
+ Wir haben nur die tatsächlichen Personalkostenerhöhungen zum Ansatz genommen.
+ Dass durch die gesetzlich verschärften Bestimmungen der Zeitaufwand beträchtlich gestiegen ist und damit die Abfertigungszahlen pro Person entsprechend gesunken sind, haben wir bei der Preiskalkulation nicht berücksichtigt.
+ Diesen Mehraufwand versuchen wir durch Einsparungsmaßnahmen mit modernster Software und Produktionsverbesserungen wett zu machen.

+ Wir bedanken uns für Ihr Verständnis und werden uns auch weiterhin bemühen Ihnen ein zuverlässiger Partner zu sein." + TextHTML &= "
" + TextHTML &= "
" + TextHTML &= "Mit freundlichen Grüßen
" + TextHTML &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "
" + TextHTML &= "
" + TextHTML &= cFakturierung.getSignature("DE", FirmaID, True, True) + + Mail.HTMLBody = "
" & TextHTML & "
" + Mail.Subject = "Preiserhöhung " & Today().Year + Mail.Attachments.Add(Path) + Mail.Display() + + + + Case Else + + .Visible = True + + End Select + + End With @@ -1026,7 +1088,7 @@ Public Class usrCntlOfferte End Function Private Sub rtbBesonderheiten_TextChanged(sender As Object, e As EventArgs) Handles rtbBesonderheiten.TextChanged - btnSaveBes.Visible = true + btnSaveBes.Visible = True End Sub Private Sub btnSaveBes_Click(sender As Object, e As EventArgs) Handles btnSaveBes.Click @@ -1058,4 +1120,5 @@ Public Class usrCntlOfferte MsgBox("Noch nicht implementiert!") End Sub + End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb b/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb index f0a97888..33179bdc 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cAufschubKonten.vb @@ -2,7 +2,6 @@ Imports System.Data.SqlClient Imports System.Reflection -Imports jdk.nashorn.internal.objects.annotations Public Class cAufschubKonten Property brgakto_id As Integer @@ -12,7 +11,7 @@ Public Class cAufschubKonten Property brgakto_warn1 As Decimal Property brgakto_warn2 As Decimal Property brgakto_gs_standort As Object = Nothing - Property brgakto_gs_zollsatz As Integer + Property brgakto_gs_zollsatz As Decimal Property brgakto_gs_ustEnabled As Boolean = False Property brgakto_gs_ust As Object = Nothing Property brgakto_gs_aktSaldo As Decimal @@ -100,7 +99,7 @@ Public Class cAufschubKonten End Using End Using Catch ex As Exception - MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Sub @@ -132,7 +131,7 @@ Public Class cAufschubKonten End Using End Using Catch ex As Exception - MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Sub @@ -152,7 +151,7 @@ Public Class cAufschubKonten Return (" UPDATE [tblBrgAufschubKonten] SET " & str & " WHERE brgakto_id=@brgakto_id ") Catch ex As Exception - MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return "" End Function @@ -173,7 +172,7 @@ Public Class cAufschubKonten values = values.Substring(0, values.Length - 1) 'wg. ',' Return (" INSERT INTO tblBrgAufschubKonten (" & str & ") VALUES(" & values & ") ") Catch ex As Exception - MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return "" End Function @@ -253,7 +252,7 @@ Public Class cAufschubKonten Return SQL.getValueTxtBySql("select TOP (1) brgarefb_refbetrag from [tblBrgAufschubReferenzberaege] where [brgarefb_gsid]=" & brgakto_id & " and brgarefb_gs_aktiv = 1 And cast([brgarefb_gueltig_ab] as Date) <= '" & nowDate.ToShortDateString & "' order by [brgarefb_gueltig_ab] desc", "ADMIN",,,,) Catch ex As Exception - MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Function diff --git a/VERAG_PROG_ALLGEMEIN/cSicherheiten.vb b/VERAG_PROG_ALLGEMEIN/cSicherheiten.vb index 6a16fd3f..586ddd91 100644 --- a/VERAG_PROG_ALLGEMEIN/cSicherheiten.vb +++ b/VERAG_PROG_ALLGEMEIN/cSicherheiten.vb @@ -9,6 +9,7 @@ Public Class Sicherheiten_Standort Public Const UNISPED As String = "UNISPED GmbH" Public Const AMBAR As String = "AMBAR GmbH" Public Const ATILLA As String = "ATILLA GmbH" + Public Const ZOLLERN As String = "ZOLLERN" End Class Public Class cSicherheiten