diff --git a/SDL/Administration/frmZinsnachberechnung.vb b/SDL/Administration/frmZinsnachberechnung.vb index c0eb1ed4..f1c36bb4 100644 --- a/SDL/Administration/frmZinsnachberechnung.vb +++ b/SDL/Administration/frmZinsnachberechnung.vb @@ -2,9 +2,11 @@ Dim KASSENBind As cEasyBinding Public table Public BIND_DB - Sub New(table, BIND_DB) + Public WHERE As String + Sub New(table, BIND_DB, WHERE) Me.table = table Me.BIND_DB = BIND_DB + Me.WHERE = WHERE InitializeComponent() End Sub @@ -14,7 +16,7 @@ Select Case table Case "" 'Sonderfall Case Else - KASSENBind.initBinding("SELECT * FROM " & table & " WHERE verrechnet is null", table) + KASSENBind.initBinding("SELECT * FROM " & table & " WHERE verrechnet is null " & WHERE, table) For Each c As DataColumn In KASSENBind.bindingdataTable.Columns If c.ColumnName = "SSMA_TimeStamp" Then KASSENBind.bindingdataTable.Columns.Remove(c) diff --git a/SDL/Classes/cRKSV.vb b/SDL/Classes/cRKSV.vb index 7ba65c43..26636343 100644 --- a/SDL/Classes/cRKSV.vb +++ b/SDL/Classes/cRKSV.vb @@ -2152,6 +2152,11 @@ Public Class cRKSV rpt.picVERAG.Image = My.Resources.FrontOfficeSUB rpt.lblFirma_Name.Text = "Front-Office Suben eG" rpt.lblFirma_Details.Text = "A 4975 Suben | Suben 14" & vbNewLine & "UID: ATU74813856 " + Case "FT DE-KLIPPHAUSEN" + 'Default Werte: + rpt.picVERAG.Image = My.Resources.Klipphausen_Logo + rpt.lblFirma_Name.Text = "Front-Office Klipphausen GmbH" + rpt.lblFirma_Details.Text = "D 01665 Klipphausen | Am Bahndamm 3" End Select End If diff --git a/SDL/Fakturierung/frmRechnungenSuche.vb b/SDL/Fakturierung/frmRechnungenSuche.vb index 784f118c..96b42760 100644 --- a/SDL/Fakturierung/frmRechnungenSuche.vb +++ b/SDL/Fakturierung/frmRechnungenSuche.vb @@ -1,4 +1,5 @@ -Imports TAlex.WPF.Helpers +Imports java.rmi.dgc +Imports TAlex.WPF.Helpers Public Class frmRechnungenSuche Dim SQL As New SQL @@ -10,7 +11,7 @@ Public Class frmRechnungenSuche Dim sqlstr As String = "" Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "") sqlstr &= "SELECT " & TopMax & " RK_ID,[RechnungsNr],cast([RechnungsDatum] as date) RechnungsDatum, Sammelrechnung, [FilialenNr],[AbfertigungsNr],[UnterNr],cast(Abfertigungsdatum as date) Abfertigungsdatum, isnull(cast(RechnungsKundenNr as nvarchar(10)) + ' ','') + [RechnungsName 1] as [RechnungAn], " & - " /* isnull(cast([AbsenderKundenNr] as nvarchar(10)) + ' ','') + [AbsenderName 1] as Absender,isnull(cast([EmpfängerKundenNr] as nvarchar(10)) + ' ','') + [EmpfängerName 1] as Empfänger,*/ isnull(cast([VermittlerKundenNr] as nvarchar(10)) + ' ','') + [VermittlerName 1] as Vermittler, [LKW Kennzeichen],Sachbearbeiter,[SteuerpflichtigerGesamtbetrag],[SteuerfreierGesamtbetrag], isnull(zugferdcheck,0) as ZUGFeRD " & + " /* isnull(cast([AbsenderKundenNr] as nvarchar(10)) + ' ','') + [AbsenderName 1] as Absender,isnull(cast([EmpfängerKundenNr] as nvarchar(10)) + ' ','') + [EmpfängerName 1] as Empfänger,*/ isnull(cast([VermittlerKundenNr] as nvarchar(10)) + ' ','') + [VermittlerName 1] as Vermittler, [LKW Kennzeichen],Sachbearbeiter,[SteuerpflichtigerGesamtbetrag],[SteuerfreierGesamtbetrag], isnull(zugferdcheck,0) as ZUGFeRD, isnull(DruckDatumZeit,'') as DruckDatumZeit " & " FROM [Rechnungsausgang] WHERE 1=1 " With DataGridView @@ -26,6 +27,7 @@ Public Class frmRechnungenSuche ' .MultiSelect = False .Columns("RK_ID").Visible = False + .Columns("DruckDatumZeit").Visible = False .Columns("RechnungsNr").Width = 70 .Columns("RechnungsNr").HeaderText = "Rechnugs-Nr" @@ -91,6 +93,13 @@ Public Class frmRechnungenSuche lblErgebnis.Text = "Ergebnisse: " & .RowCount lblunterschRe.Text = "Anz. untersch. Belege: " & .Rows.Cast(Of DataGridViewRow)().[Select](Function(r) CInt(IIf(Not IsDBNull(r.Cells("RechnungsNr").Value), r.Cells("RechnungsNr").Value, 0))).Distinct().Count() + For Each r In .Rows + If r.Cells("DruckDatumZeit").ToString = "" Then + r.Cells("RechnungsNr").Style.BackColor = Color.LightYellow + End If + Next + + End With brexitXLS = False cbxMitPositionen.Visible = True @@ -787,8 +796,10 @@ Public Class frmRechnungenSuche If DataGridView.SelectedRows.Count > 0 Then For Each r As DataGridViewRow In DataGridView.SelectedRows If listRgNr.FindIndex((Function(x) x.ToString = r.Cells("RechnungsNr").Value)) < 0 Then - list.Add(r.Cells("RK_ID").Value) - listRgNr.Add(r.Cells("RechnungsNr").Value) + If r.Cells("DruckDatumZeit").ToString <> "" Then + list.Add(r.Cells("RK_ID").Value) + listRgNr.Add(r.Cells("RechnungsNr").Value) + End If End If Next End If diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index b243161e..2ad7a6ff 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -4152,10 +4152,15 @@ Nächste_Textzeile_lesen: If UST_ID > 0 Then SQL.doSQL("UPDATE [tblUStVPositionen] SET UStVPo_VZ_RKID = NULL WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL") SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 1 WHERE [UStVAn_ID] IN (SELECT distinct([UStVAn_ID]) FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0 AND [UStVAn_ID] = " & UST_ID & " )", "FMZOLL") + Else + SQL.doSQL("UPDATE [tblMDM_Bankspesen] SET RK_ID = NULL, verrechnet = NULL WHERE isnull(RK_ID,0) =" & RECHNUNG.RK_ID, "FMZOLL") End If ElseIf SPEDBUCH.FilialenNr = 8001 Then SQL.doSQL("UPDATE [tblMDM_Zinsberechnung] SET RK_ID = NULL, verrechnet = NULL WHERE isnull(RK_ID,0) =" & RECHNUNG.RK_ID, "FMZOLL") + + + End If End If diff --git a/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVollmacht_AT_EV.Designer.vb b/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVollmacht_AT_EV.Designer.vb index c858cffb..94b0091e 100644 --- a/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVollmacht_AT_EV.Designer.vb +++ b/SDL/Formulare/KDFormulare/FormulareBaukasten/usrcntlVollmacht_AT_EV.Designer.vb @@ -70,9 +70,9 @@ Partial Class usrcntlVollmacht_AT_EV Me.lblVollmachtDE.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.lblVollmachtDE.Location = New System.Drawing.Point(43, 9) Me.lblVollmachtDE.Name = "lblVollmachtDE" - Me.lblVollmachtDE.Size = New System.Drawing.Size(194, 20) + Me.lblVollmachtDE.Size = New System.Drawing.Size(144, 20) Me.lblVollmachtDE.TabIndex = 1 - Me.lblVollmachtDE.Text = "Vollmacht AT 4200 EV " + Me.lblVollmachtDE.Text = "Vollmacht AT EV" ' 'lbl ' @@ -158,7 +158,7 @@ Partial Class usrcntlVollmacht_AT_EV ' 'btn ' - Me.btn.BackgroundImage = Global.SDL.My.Resources.search + Me.btn.BackgroundImage = Global.SDL.My.Resources.Resources.search Me.btn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btn.Location = New System.Drawing.Point(937, 34) @@ -181,12 +181,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtAnsprechpartner._DateTimeOnly = False Me.txtAnsprechpartner._numbersOnly = False Me.txtAnsprechpartner._numbersOnlyKommastellen = "" + Me.txtAnsprechpartner._numbersOnlyTrennzeichen = True Me.txtAnsprechpartner._Prozent = False Me.txtAnsprechpartner._ShortDateNew = False Me.txtAnsprechpartner._ShortDateOnly = False Me.txtAnsprechpartner._TimeOnly = False + Me.txtAnsprechpartner._TimeOnly_Seconds = False Me.txtAnsprechpartner._value = Nothing Me.txtAnsprechpartner._Waehrung = False + Me.txtAnsprechpartner._WaehrungZeichen = True Me.txtAnsprechpartner.ForeColor = System.Drawing.Color.Black Me.txtAnsprechpartner.Location = New System.Drawing.Point(653, 9) Me.txtAnsprechpartner.MaxLineLength = -1 @@ -201,12 +204,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtEinmalig_RgDat._DateTimeOnly = False Me.txtEinmalig_RgDat._numbersOnly = False Me.txtEinmalig_RgDat._numbersOnlyKommastellen = "" + Me.txtEinmalig_RgDat._numbersOnlyTrennzeichen = True Me.txtEinmalig_RgDat._Prozent = False Me.txtEinmalig_RgDat._ShortDateNew = False Me.txtEinmalig_RgDat._ShortDateOnly = False Me.txtEinmalig_RgDat._TimeOnly = False + Me.txtEinmalig_RgDat._TimeOnly_Seconds = False Me.txtEinmalig_RgDat._value = Nothing Me.txtEinmalig_RgDat._Waehrung = False + Me.txtEinmalig_RgDat._WaehrungZeichen = True Me.txtEinmalig_RgDat.Enabled = False Me.txtEinmalig_RgDat.ForeColor = System.Drawing.Color.Black Me.txtEinmalig_RgDat.Location = New System.Drawing.Point(653, 233) @@ -222,12 +228,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtEinmalig_RgNr._DateTimeOnly = False Me.txtEinmalig_RgNr._numbersOnly = False Me.txtEinmalig_RgNr._numbersOnlyKommastellen = "" + Me.txtEinmalig_RgNr._numbersOnlyTrennzeichen = True Me.txtEinmalig_RgNr._Prozent = False Me.txtEinmalig_RgNr._ShortDateNew = False Me.txtEinmalig_RgNr._ShortDateOnly = False Me.txtEinmalig_RgNr._TimeOnly = False + Me.txtEinmalig_RgNr._TimeOnly_Seconds = False Me.txtEinmalig_RgNr._value = Nothing Me.txtEinmalig_RgNr._Waehrung = False + Me.txtEinmalig_RgNr._WaehrungZeichen = True Me.txtEinmalig_RgNr.Enabled = False Me.txtEinmalig_RgNr.ForeColor = System.Drawing.Color.Black Me.txtEinmalig_RgNr.Location = New System.Drawing.Point(363, 233) @@ -243,12 +252,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtEmail._DateTimeOnly = False Me.txtEmail._numbersOnly = False Me.txtEmail._numbersOnlyKommastellen = "" + Me.txtEmail._numbersOnlyTrennzeichen = True Me.txtEmail._Prozent = False Me.txtEmail._ShortDateNew = False Me.txtEmail._ShortDateOnly = False Me.txtEmail._TimeOnly = False + Me.txtEmail._TimeOnly_Seconds = False Me.txtEmail._value = Nothing Me.txtEmail._Waehrung = False + Me.txtEmail._WaehrungZeichen = True Me.txtEmail.ForeColor = System.Drawing.Color.Black Me.txtEmail.Location = New System.Drawing.Point(254, 165) Me.txtEmail.MaxLineLength = -1 @@ -263,12 +275,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtFax._DateTimeOnly = False Me.txtFax._numbersOnly = False Me.txtFax._numbersOnlyKommastellen = "" + Me.txtFax._numbersOnlyTrennzeichen = True Me.txtFax._Prozent = False Me.txtFax._ShortDateNew = False Me.txtFax._ShortDateOnly = False Me.txtFax._TimeOnly = False + Me.txtFax._TimeOnly_Seconds = False Me.txtFax._value = Nothing Me.txtFax._Waehrung = False + Me.txtFax._WaehrungZeichen = True Me.txtFax.ForeColor = System.Drawing.Color.Black Me.txtFax.Location = New System.Drawing.Point(653, 146) Me.txtFax.MaxLineLength = -1 @@ -283,12 +298,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtTel._DateTimeOnly = False Me.txtTel._numbersOnly = False Me.txtTel._numbersOnlyKommastellen = "" + Me.txtTel._numbersOnlyTrennzeichen = True Me.txtTel._Prozent = False Me.txtTel._ShortDateNew = False Me.txtTel._ShortDateOnly = False Me.txtTel._TimeOnly = False + Me.txtTel._TimeOnly_Seconds = False Me.txtTel._value = Nothing Me.txtTel._Waehrung = False + Me.txtTel._WaehrungZeichen = True Me.txtTel.ForeColor = System.Drawing.Color.Black Me.txtTel.Location = New System.Drawing.Point(254, 146) Me.txtTel.MaxLineLength = -1 @@ -303,12 +321,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtEori._DateTimeOnly = False Me.txtEori._numbersOnly = False Me.txtEori._numbersOnlyKommastellen = "" + Me.txtEori._numbersOnlyTrennzeichen = True Me.txtEori._Prozent = False Me.txtEori._ShortDateNew = False Me.txtEori._ShortDateOnly = False Me.txtEori._TimeOnly = False + Me.txtEori._TimeOnly_Seconds = False Me.txtEori._value = Nothing Me.txtEori._Waehrung = False + Me.txtEori._WaehrungZeichen = True Me.txtEori.ForeColor = System.Drawing.Color.Black Me.txtEori.Location = New System.Drawing.Point(653, 127) Me.txtEori.MaxLineLength = -1 @@ -323,12 +344,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtUid._DateTimeOnly = False Me.txtUid._numbersOnly = False Me.txtUid._numbersOnlyKommastellen = "" + Me.txtUid._numbersOnlyTrennzeichen = True Me.txtUid._Prozent = False Me.txtUid._ShortDateNew = False Me.txtUid._ShortDateOnly = False Me.txtUid._TimeOnly = False + Me.txtUid._TimeOnly_Seconds = False Me.txtUid._value = Nothing Me.txtUid._Waehrung = False + Me.txtUid._WaehrungZeichen = True Me.txtUid.ForeColor = System.Drawing.Color.Black Me.txtUid.Location = New System.Drawing.Point(254, 127) Me.txtUid.MaxLineLength = -1 @@ -343,12 +367,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtAdresse2._DateTimeOnly = False Me.txtAdresse2._numbersOnly = False Me.txtAdresse2._numbersOnlyKommastellen = "" + Me.txtAdresse2._numbersOnlyTrennzeichen = True Me.txtAdresse2._Prozent = False Me.txtAdresse2._ShortDateNew = False Me.txtAdresse2._ShortDateOnly = False Me.txtAdresse2._TimeOnly = False + Me.txtAdresse2._TimeOnly_Seconds = False Me.txtAdresse2._value = Nothing Me.txtAdresse2._Waehrung = False + Me.txtAdresse2._WaehrungZeichen = True Me.txtAdresse2.ForeColor = System.Drawing.Color.Black Me.txtAdresse2.Location = New System.Drawing.Point(254, 72) Me.txtAdresse2.MaxLineLength = -1 @@ -363,12 +390,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtAdresse1._DateTimeOnly = False Me.txtAdresse1._numbersOnly = False Me.txtAdresse1._numbersOnlyKommastellen = "" + Me.txtAdresse1._numbersOnlyTrennzeichen = True Me.txtAdresse1._Prozent = False Me.txtAdresse1._ShortDateNew = False Me.txtAdresse1._ShortDateOnly = False Me.txtAdresse1._TimeOnly = False + Me.txtAdresse1._TimeOnly_Seconds = False Me.txtAdresse1._value = Nothing Me.txtAdresse1._Waehrung = False + Me.txtAdresse1._WaehrungZeichen = True Me.txtAdresse1.ForeColor = System.Drawing.Color.Black Me.txtAdresse1.Location = New System.Drawing.Point(254, 53) Me.txtAdresse1.MaxLineLength = -1 @@ -383,12 +413,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtFirma._DateTimeOnly = False Me.txtFirma._numbersOnly = False Me.txtFirma._numbersOnlyKommastellen = "" + Me.txtFirma._numbersOnlyTrennzeichen = True Me.txtFirma._Prozent = False Me.txtFirma._ShortDateNew = False Me.txtFirma._ShortDateOnly = False Me.txtFirma._TimeOnly = False + Me.txtFirma._TimeOnly_Seconds = False Me.txtFirma._value = Nothing Me.txtFirma._Waehrung = False + Me.txtFirma._WaehrungZeichen = True Me.txtFirma.ForeColor = System.Drawing.Color.Black Me.txtFirma.Location = New System.Drawing.Point(254, 34) Me.txtFirma.MaxLineLength = -1 @@ -403,12 +436,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtInhaber._DateTimeOnly = False Me.txtInhaber._numbersOnly = False Me.txtInhaber._numbersOnlyKommastellen = "" + Me.txtInhaber._numbersOnlyTrennzeichen = True Me.txtInhaber._Prozent = False Me.txtInhaber._ShortDateNew = False Me.txtInhaber._ShortDateOnly = False Me.txtInhaber._TimeOnly = False + Me.txtInhaber._TimeOnly_Seconds = False Me.txtInhaber._value = Nothing Me.txtInhaber._Waehrung = False + Me.txtInhaber._WaehrungZeichen = True Me.txtInhaber.ForeColor = System.Drawing.Color.Black Me.txtInhaber.Location = New System.Drawing.Point(653, 101) Me.txtInhaber.MaxLineLength = -1 @@ -432,12 +468,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtRechtsform._DateTimeOnly = False Me.txtRechtsform._numbersOnly = False Me.txtRechtsform._numbersOnlyKommastellen = "" + Me.txtRechtsform._numbersOnlyTrennzeichen = True Me.txtRechtsform._Prozent = False Me.txtRechtsform._ShortDateNew = False Me.txtRechtsform._ShortDateOnly = False Me.txtRechtsform._TimeOnly = False + Me.txtRechtsform._TimeOnly_Seconds = False Me.txtRechtsform._value = Nothing Me.txtRechtsform._Waehrung = False + Me.txtRechtsform._WaehrungZeichen = True Me.txtRechtsform.ForeColor = System.Drawing.Color.Black Me.txtRechtsform.Location = New System.Drawing.Point(254, 101) Me.txtRechtsform.MaxLineLength = -1 @@ -461,12 +500,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtFaStNr._DateTimeOnly = False Me.txtFaStNr._numbersOnly = False Me.txtFaStNr._numbersOnlyKommastellen = "" + Me.txtFaStNr._numbersOnlyTrennzeichen = True Me.txtFaStNr._Prozent = False Me.txtFaStNr._ShortDateNew = False Me.txtFaStNr._ShortDateOnly = False Me.txtFaStNr._TimeOnly = False + Me.txtFaStNr._TimeOnly_Seconds = False Me.txtFaStNr._value = Nothing Me.txtFaStNr._Waehrung = False + Me.txtFaStNr._WaehrungZeichen = True Me.txtFaStNr.ForeColor = System.Drawing.Color.Black Me.txtFaStNr.Location = New System.Drawing.Point(653, 165) Me.txtFaStNr.MaxLineLength = -1 @@ -487,7 +529,7 @@ Partial Class usrcntlVollmacht_AT_EV ' 'pic ' - Me.pic.BackgroundImage = Global.SDL.My.Resources.pdf + Me.pic.BackgroundImage = Global.SDL.My.Resources.Resources.pdf Me.pic.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch Me.pic.Cursor = System.Windows.Forms.Cursors.Hand Me.pic.Location = New System.Drawing.Point(5, 5) @@ -499,7 +541,7 @@ Partial Class usrcntlVollmacht_AT_EV 'btnDown ' Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnDown.BackgroundImage = Global.SDL.My.Resources.pfeil_unten + Me.btnDown.BackgroundImage = Global.SDL.My.Resources.Resources.pfeil_unten Me.btnDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnDown.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnDown.Location = New System.Drawing.Point(976, 42) @@ -511,7 +553,7 @@ Partial Class usrcntlVollmacht_AT_EV 'btnUp ' Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnUp.BackgroundImage = Global.SDL.My.Resources.pfeil_oben + Me.btnUp.BackgroundImage = Global.SDL.My.Resources.Resources.pfeil_oben Me.btnUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnUp.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnUp.Location = New System.Drawing.Point(976, 22) @@ -523,7 +565,7 @@ Partial Class usrcntlVollmacht_AT_EV 'btnDel ' Me.btnDel.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnDel.BackgroundImage = Global.SDL.My.Resources.del + Me.btnDel.BackgroundImage = Global.SDL.My.Resources.Resources.del Me.btnDel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom Me.btnDel.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnDel.Location = New System.Drawing.Point(976, -1) @@ -579,12 +621,15 @@ Partial Class usrcntlVollmacht_AT_EV Me.txtEinmalig_CarnetATA._DateTimeOnly = False Me.txtEinmalig_CarnetATA._numbersOnly = False Me.txtEinmalig_CarnetATA._numbersOnlyKommastellen = "" + Me.txtEinmalig_CarnetATA._numbersOnlyTrennzeichen = True Me.txtEinmalig_CarnetATA._Prozent = False Me.txtEinmalig_CarnetATA._ShortDateNew = False Me.txtEinmalig_CarnetATA._ShortDateOnly = False Me.txtEinmalig_CarnetATA._TimeOnly = False + Me.txtEinmalig_CarnetATA._TimeOnly_Seconds = False Me.txtEinmalig_CarnetATA._value = Nothing Me.txtEinmalig_CarnetATA._Waehrung = False + Me.txtEinmalig_CarnetATA._WaehrungZeichen = True Me.txtEinmalig_CarnetATA.Enabled = False Me.txtEinmalig_CarnetATA.ForeColor = System.Drawing.Color.Black Me.txtEinmalig_CarnetATA.Location = New System.Drawing.Point(390, 252) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index dbd93fec..8e4ee667 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/USTV/frmMDM_USTVAntrag.vb b/SDL/USTV/frmMDM_USTVAntrag.vb index d143ffa3..a07aacbb 100644 --- a/SDL/USTV/frmMDM_USTVAntrag.vb +++ b/SDL/USTV/frmMDM_USTVAntrag.vb @@ -82,7 +82,18 @@ Public Class frmMDM_USTVAntrag If UStVAn_ID <= 0 Then Exit Sub - .SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] " & IIf(cbxInterneNr.Checked, ",[UStVPo_interneNr] as intNr", "") & " ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Nettobetrag],[UStVPo_NettobetragEUR],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_Strasse] as StrasseOnly,leist.[UstV_Leistender_StrasseNr] as StrassenNrOnly,leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], [UStVPo_daId_loeschbar] ,[UStVPo_VZ],[UStVPo_VZ_RKID] ,cast(case when isnull([UStVPo_VZ_RKID],0) = 0 then 0 else 1 end as bit) as VZabrechnet + .SET_SQL("SELECT [UStVAn_ID] ,[UStVPo_ID] " & IIf(cbxInterneNr.Checked, ",[UStVPo_interneNr] as intNr", "") & " ,[UStVPo_ReDat],[UStVPo_ReNr],[UStVPo_Leistungsbezeichnung],[UStVPo_Nettobetrag],[UStVPo_NettobetragEUR],[UStVPo_Leistender],leist.[UstV_Leistender_Strasse] + ' ' + leist.[UstV_Leistender_StrasseNr] as [UstV_Leistender_Strasse],leist.[UstV_Leistender_Strasse] as StrasseOnly,leist.[UstV_Leistender_StrasseNr] as StrassenNrOnly,leist.[UstV_Leistender_PLZ],leist.[UstV_Leistender_Stadt],leist.[UstV_Leistender_Land],leist.[UstV_Leistender_UstNr],[UStVPo_USteuerbetrag],[UStVPo_Schnittstelle],[UStVPo_SchnittstellenNr],[UStVPo_Umrechnungskurs],[UStVPo_USteuerbetragEUR],[UStVPo_Sachbearbeiter], [UStVPo_daId], + CAST( + CASE + WHEN NOT EXISTS ( + SELECT 1 + FROM tblDatenarchiv AS da + WHERE da.da_id = tblUStVPositionen.UStVPo_daId + ) + THEN 1 + ELSE 0 + END + AS bit) AS UStVPo_daId_nicht_im_Datenarchiv, [UStVPo_daId_loeschbar] ,[UStVPo_VZ],[UStVPo_VZ_RKID] ,cast(case when isnull([UStVPo_VZ_RKID],0) = 0 then 0 else 1 end as bit) as VZabrechnet FROM [tblUStVPositionen] LEFT JOIN [tblUStVLeistender] as leist ON ([tblUStVPositionen].[UStVPo_LeistenderId] > 0 @@ -101,7 +112,7 @@ Public Class frmMDM_USTVAntrag If .Columns.Count > 0 Then .Columns("UStVAn_ID").Visible = False - + .Columns("UStVPo_daId_nicht_im_Datenarchiv").Visible = False .Columns("StrassenNrOnly").Visible = False .Columns("StrasseOnly").Visible = False @@ -198,17 +209,21 @@ Public Class frmMDM_USTVAntrag If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then da_id = r.Cells("UStVPo_daId").Value + If da_id > 0 AndAlso r.Cells("UStVPo_daId_nicht_im_Datenarchiv").Value IsNot Nothing AndAlso r.Cells("UStVPo_daId_nicht_im_Datenarchiv").Value AndAlso Not (r.Cells("UStVPo_SchnittstellenNr").Value = 1) Then + r.Cells("clmnPDF").Style.BackColor = Color.IndianRed + End If Else da_id = func.getDaID_OLD(r.Cells("UStVPo_SchnittstellenNr").Value, r.Cells("UStVPo_ReDat").Value, r.Cells("UStVPo_ReNr").Value, Antrag_LandKz, USTV_ANTRAG) End If If da_id > 0 Then + DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = Nothing DirectCast(r.Cells("clmnPDF"), DataGridViewImageCell).Value = My.Resources.pdf End If - If Not (r.Cells("UStVPo_SchnittstellenNr").Value = 4 OrElse r.Cells("UStVPo_SchnittstellenNr").Value = 9) AndAlso Not r.Cells("UStVPo_ReNr").Value.ToString.ToLower.StartsWith("bis") Then 'MSE und "SAMMELBERIFF" ausnehmen + If Not (r.Cells("UStVPo_SchnittstellenNr").Value = 4 OrElse r.Cells("UStVPo_SchnittstellenNr").Value = 9) AndAlso Not r.Cells("UStVPo_ReNr").Value.ToString.ToLower.StartsWith("bis") Then 'MSE und "SAMMELBERIFF" ausnehmen Dim rechnungsNr = CStr(r.Cells("UStVPo_ReNr").Value) If Not String.IsNullOrWhiteSpace(rechnungsNr) Then @@ -2360,7 +2375,7 @@ Public Class frmMDM_USTVAntrag If UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value = -1 OrElse UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId_loeschbar Then 'nur Dokumente löschen, die nicht über Schnittstellen geladen wurden! - If UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId < 0 OrElse UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId Is Nothing Then + If UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value < 0 OrElse UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId Is Nothing Then Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID & "_" & UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_interneNr, "SONSTIGE", USTV_ANTRAG.UStVAn_KuNr) @@ -2374,24 +2389,26 @@ Public Class frmMDM_USTVAntrag End If End If - End If - ElseIf UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId > 0 Then - Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId) + ElseIf UstCntlUSTV_AntragPosition1.cboSchnittstellennr._value > 0 Then + + Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER(UstCntlUSTV_AntragPosition1.UStV_POS.UStVPo_daId) + + If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then + If DS.DELETE_COMPLETE() Then + 'löschen nicht vorhandenen Verweis! + SQL.doSQL("update tblUStVPositionen set UStVPo_daId = NULL where UStVAn_ID = " & UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID & " and UStVPo_daId > 0 and isnull(UStVPo_daId, 0) not in (select da_id from tblDatenarchiv) ", "FMZOLL") + End If - If DS IsNot Nothing AndAlso DS.da_id IsNot Nothing Then - If DS.DELETE_COMPLETE() Then - 'löschen nicht vorhandenen Verweis! - SQL.doSQL("update tblUStVPositionen set UStVPo_daId = NULL where UStVAn_ID = " & UstCntlUSTV_AntragPosition1.UStV_POS.UStVAn_ID & " and UStVPo_daId > 0 and isnull(UStVPo_daId, 0) not in (select da_id from tblDatenarchiv) ", "FMZOLL") End If - End If - End If + End If End If + End If Dim Leistungsbezeichnung = "" @@ -3581,6 +3598,7 @@ Public Class frmMDM_USTVAntrag If r.Cells("UStVPo_SchnittstellenNr").Value = -1 OrElse r.Cells("UStVPo_daId_loeschbar").Value Then 'nur Dokumente löschen, die nicht über Schnittstellen geladen wurden oder löschbar sind! If Not IsDBNull(r.Cells("UStVPo_daId").Value) Then + If r.Cells("UStVPo_daId").Value Is Nothing Then Dim DS = New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "MDM", "MDM_DATEN", "USTVA_" & UStVAn_ID & "_" & r.Cells("UStVPo_ID").Value, "SONSTIGE", USTV_ANTRAG.UStVAn_KuNr) diff --git a/SDL/USTV/usrCntlUSTV.vb b/SDL/USTV/usrCntlUSTV.vb index 8c8f7024..beb32a23 100644 --- a/SDL/USTV/usrCntlUSTV.vb +++ b/SDL/USTV/usrCntlUSTV.vb @@ -766,7 +766,7 @@ Public Class usrCntlUSTV 'INFO -> Schnittstelle beinhaltet ald DA-ID die RK-ID (Feld wird missbraucht!!!) - Dim sqlStr = "select tblUStVAntrag.UStVAn_ID,[Länderverzeichnis für die Außenhandelsstatistik].LandKz,cast(UStVPo_reDat as Date) as Rechnungsdatum, UStVPo_interneNr, UStVPo_ID, UStVPo_SchnittstellenNr, UStVPo_daId, UStVPo_daId_loeschbar + Dim sqlStr = "select tblUStVAntrag.UStVAn_ID,[Länderverzeichnis für die Außenhandelsstatistik].LandKz,cast(UStVPo_reDat as Date) as Rechnungsdatum, UStVPo_interneNr, UStVPo_ID, UStVPo_SchnittstellenNr, UStVPo_daId, UStVPo_daId_loeschbar, UStVPo_Zeitstempel as letzte_Äendunger, UStVPo_Sachbearbeiter from tblUStVAntrag inner join tblUStVPositionen on tblUStVAntrag.UStVAn_ID = tblUStVPositionen.UStVAn_ID inner join [Länderverzeichnis für die Außenhandelsstatistik] on Landnr = tblUStVAntrag.UStVAn_LandNr diff --git a/SDL/buchhaltung/frmLeistundenFIBUKonten.Designer.vb b/SDL/buchhaltung/frmLeistundenFIBUKonten.Designer.vb index 6857ea40..9e0c5027 100644 --- a/SDL/buchhaltung/frmLeistundenFIBUKonten.Designer.vb +++ b/SDL/buchhaltung/frmLeistundenFIBUKonten.Designer.vb @@ -287,7 +287,6 @@ Partial Class frmLeistundenFIBUKonten Me.btnAdd.Size = New System.Drawing.Size(24, 20) Me.btnAdd.TabIndex = 103 Me.btnAdd.UseVisualStyleBackColor = True - Me.btnAdd.Visible = False ' 'btnDelete ' diff --git a/SDL/buchhaltung/frmLeistundenFIBUKonten.vb b/SDL/buchhaltung/frmLeistundenFIBUKonten.vb index 3fd42268..031eb577 100644 --- a/SDL/buchhaltung/frmLeistundenFIBUKonten.vb +++ b/SDL/buchhaltung/frmLeistundenFIBUKonten.vb @@ -48,7 +48,7 @@ Public Class frmLeistundenFIBUKonten End If If searchparam <> "" Then - SQLWHere &= " AND (FIBU.SachkontoInlandSteuerpflichtig like '%" & searchparam & "%' OR FIBU.SachkontoInlandSteuerfrei like '%" & searchparam & "%' OR FIBU.SachkontoEUSteuerpflichtig like '%" & searchparam & "%' OR FIBU.SachkontoEUSteuerfrei like '%" & searchparam & "%' OR FIBU.Sachkonto3Land like '%" & searchparam & "%')" + SQLWHere &= " AND (FIBU.SachkontoInlandSteuerpflichtig like '%" & searchparam & "%' OR FIBU.SachkontoInlandSteuerfrei like '%" & searchparam & "%' OR FIBU.SachkontoEUSteuerpflichtig like '%" & searchparam & "%' OR FIBU.SachkontoEUSteuerfrei like '%" & searchparam & "%' OR FIBU.Sachkonto3Land like '%" & searchparam & "%' OR l.LeistungsBez like '%" & searchparam & "%')" End If If leistungsNr > 0 Then @@ -275,4 +275,5 @@ Public Class frmLeistundenFIBUKonten End If End Sub + End Class \ No newline at end of file diff --git a/SDL/buchhaltung/usrCntlBH.Designer.vb b/SDL/buchhaltung/usrCntlBH.Designer.vb index 610d0d46..611c1052 100644 --- a/SDL/buchhaltung/usrCntlBH.Designer.vb +++ b/SDL/buchhaltung/usrCntlBH.Designer.vb @@ -156,7 +156,22 @@ Partial Class usrCntlBH Me.Label29 = New System.Windows.Forms.Label() Me.Button7 = New System.Windows.Forms.Button() Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.GroupBox15 = New System.Windows.Forms.GroupBox() + Me.Label72 = New System.Windows.Forms.Label() + Me.cbxBankspesentyp = New VERAG_PROG_ALLGEMEIN.MyComboBox() + Me.Button19 = New System.Windows.Forms.Button() + Me.Button18 = New System.Windows.Forms.Button() + Me.txtnichtabgerechneteKundenBankspesen = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.btnDelBankspesen = New VERAG_PROG_ALLGEMEIN.FlatButton() + Me.Label70 = New System.Windows.Forms.Label() + Me.txtBankspesen = New System.Windows.Forms.TextBox() + Me.btnImport = New System.Windows.Forms.Button() + Me.Label69 = New System.Windows.Forms.Label() + Me.pb_bankspesen = New System.Windows.Forms.ProgressBar() + Me.lblBankspesen = New System.Windows.Forms.Label() + Me.Label68 = New System.Windows.Forms.Label() Me.GroupBox14 = New System.Windows.Forms.GroupBox() + Me.Button17 = New System.Windows.Forms.Button() Me.Label63 = New System.Windows.Forms.Label() Me.Label66 = New System.Windows.Forms.Label() Me.txtLand = New VERAG_PROG_ALLGEMEIN.MyTextBox() @@ -169,6 +184,7 @@ Partial Class usrCntlBH Me.btn_Erloeskkonten = New System.Windows.Forms.Button() Me.Label62 = New System.Windows.Forms.Label() Me.GroupBox11 = New System.Windows.Forms.GroupBox() + Me.cbxPOSBNZerstellen = New System.Windows.Forms.CheckBox() Me.txtPloseAnh_Einarbeitung = New System.Windows.Forms.TextBox() Me.Label71 = New System.Windows.Forms.Label() Me.pbPloseAnh_Proz = New System.Windows.Forms.ProgressBar() @@ -198,8 +214,6 @@ Partial Class usrCntlBH Me.txtZRbis = New VERAG_PROG_ALLGEMEIN.MyTextBox() Me.Label51 = New System.Windows.Forms.Label() Me.txtJahr_FIBU = New VERAG_PROG_ALLGEMEIN.MyTextBox() - Me.Button17 = New System.Windows.Forms.Button() - Me.cbxPOSBNZerstellen = New System.Windows.Forms.CheckBox() Me.pnl.SuspendLayout() Me.TabPage1.SuspendLayout() Me.GroupBox13.SuspendLayout() @@ -220,6 +234,7 @@ Partial Class usrCntlBH Me.GroupBox9.SuspendLayout() Me.GroupBox6.SuspendLayout() Me.TabPage2.SuspendLayout() + Me.GroupBox15.SuspendLayout() Me.GroupBox14.SuspendLayout() Me.GroupBox11.SuspendLayout() Me.SuspendLayout() @@ -1977,6 +1992,8 @@ Partial Class usrCntlBH ' 'TabPage2 ' + Me.TabPage2.Controls.Add(Me.GroupBox15) + Me.TabPage2.Controls.Add(Me.Label68) Me.TabPage2.Controls.Add(Me.GroupBox14) Me.TabPage2.Controls.Add(Me.Label62) Me.TabPage2.Controls.Add(Me.GroupBox11) @@ -1989,6 +2006,182 @@ Partial Class usrCntlBH Me.TabPage2.Text = "MDM" Me.TabPage2.UseVisualStyleBackColor = True ' + 'GroupBox15 + ' + Me.GroupBox15.Controls.Add(Me.Label72) + Me.GroupBox15.Controls.Add(Me.cbxBankspesentyp) + Me.GroupBox15.Controls.Add(Me.Button19) + Me.GroupBox15.Controls.Add(Me.Button18) + Me.GroupBox15.Controls.Add(Me.txtnichtabgerechneteKundenBankspesen) + Me.GroupBox15.Controls.Add(Me.btnDelBankspesen) + Me.GroupBox15.Controls.Add(Me.Label70) + Me.GroupBox15.Controls.Add(Me.txtBankspesen) + Me.GroupBox15.Controls.Add(Me.btnImport) + Me.GroupBox15.Controls.Add(Me.Label69) + Me.GroupBox15.Controls.Add(Me.pb_bankspesen) + Me.GroupBox15.Controls.Add(Me.lblBankspesen) + Me.GroupBox15.Location = New System.Drawing.Point(20, 216) + Me.GroupBox15.Name = "GroupBox15" + Me.GroupBox15.Size = New System.Drawing.Size(265, 155) + Me.GroupBox15.TabIndex = 78 + Me.GroupBox15.TabStop = False + ' + 'Label72 + ' + Me.Label72.AutoSize = True + Me.Label72.Location = New System.Drawing.Point(7, 13) + Me.Label72.Name = "Label72" + Me.Label72.Size = New System.Drawing.Size(28, 13) + Me.Label72.TabIndex = 87 + Me.Label72.Text = "Typ:" + ' + 'cbxBankspesentyp + ' + Me.cbxBankspesentyp._allowedValuesFreiText = Nothing + Me.cbxBankspesentyp._allowFreiText = False + Me.cbxBankspesentyp._value = "" + Me.cbxBankspesentyp.FormattingEnabled = True + Me.cbxBankspesentyp.Location = New System.Drawing.Point(50, 10) + Me.cbxBankspesentyp.Name = "cbxBankspesentyp" + Me.cbxBankspesentyp.Size = New System.Drawing.Size(76, 21) + Me.cbxBankspesentyp.TabIndex = 86 + ' + 'Button19 + ' + Me.Button19.BackgroundImage = Global.SDL.My.Resources.Resources.fragezeichen + Me.Button19.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.Button19.FlatAppearance.BorderSize = 0 + Me.Button19.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button19.Location = New System.Drawing.Point(240, 13) + Me.Button19.Name = "Button19" + Me.Button19.Size = New System.Drawing.Size(25, 20) + Me.Button19.TabIndex = 82 + Me.Button19.UseVisualStyleBackColor = True + ' + 'Button18 + ' + Me.Button18.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center + Me.Button18.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button18.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.Button18.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button18.Location = New System.Drawing.Point(105, 40) + Me.Button18.Name = "Button18" + Me.Button18.Size = New System.Drawing.Size(78, 29) + Me.Button18.TabIndex = 82 + Me.Button18.Text = "Übersicht" + Me.Button18.UseVisualStyleBackColor = True + ' + 'txtnichtabgerechneteKundenBankspesen + ' + Me.txtnichtabgerechneteKundenBankspesen._DateTimeOnly = False + Me.txtnichtabgerechneteKundenBankspesen._numbersOnly = False + Me.txtnichtabgerechneteKundenBankspesen._numbersOnlyKommastellen = "" + Me.txtnichtabgerechneteKundenBankspesen._numbersOnlyTrennzeichen = True + Me.txtnichtabgerechneteKundenBankspesen._Prozent = False + Me.txtnichtabgerechneteKundenBankspesen._ShortDateNew = False + Me.txtnichtabgerechneteKundenBankspesen._ShortDateOnly = False + Me.txtnichtabgerechneteKundenBankspesen._TimeOnly = False + Me.txtnichtabgerechneteKundenBankspesen._TimeOnly_Seconds = False + Me.txtnichtabgerechneteKundenBankspesen._value = "0" + Me.txtnichtabgerechneteKundenBankspesen._Waehrung = False + Me.txtnichtabgerechneteKundenBankspesen._WaehrungZeichen = True + Me.txtnichtabgerechneteKundenBankspesen.ForeColor = System.Drawing.Color.Black + Me.txtnichtabgerechneteKundenBankspesen.Location = New System.Drawing.Point(149, 75) + Me.txtnichtabgerechneteKundenBankspesen.MaxLineLength = -1 + Me.txtnichtabgerechneteKundenBankspesen.MaxLines_Warning = "" + Me.txtnichtabgerechneteKundenBankspesen.MaxLines_Warning_Label = Nothing + Me.txtnichtabgerechneteKundenBankspesen.Name = "txtnichtabgerechneteKundenBankspesen" + Me.txtnichtabgerechneteKundenBankspesen.ReadOnly = True + Me.txtnichtabgerechneteKundenBankspesen.Size = New System.Drawing.Size(34, 20) + Me.txtnichtabgerechneteKundenBankspesen.TabIndex = 83 + Me.txtnichtabgerechneteKundenBankspesen.Text = "0" + Me.txtnichtabgerechneteKundenBankspesen.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + ' + 'btnDelBankspesen + ' + Me.btnDelBankspesen.allowBorder = False + Me.btnDelBankspesen.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnDelBankspesen.BackgroundImage = Global.SDL.My.Resources.Resources.del + Me.btnDelBankspesen.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.btnDelBankspesen.FlatAppearance.BorderSize = 0 + Me.btnDelBankspesen.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnDelBankspesen.ForeColor = System.Drawing.Color.Black + Me.btnDelBankspesen.Location = New System.Drawing.Point(227, 72) + Me.btnDelBankspesen.Name = "btnDelBankspesen" + Me.btnDelBankspesen.Size = New System.Drawing.Size(20, 20) + Me.btnDelBankspesen.TabIndex = 82 + Me.btnDelBankspesen.UseVisualStyleBackColor = True + Me.btnDelBankspesen.Visible = False + ' + 'Label70 + ' + Me.Label70.AutoSize = True + Me.Label70.Location = New System.Drawing.Point(5, 78) + Me.Label70.Name = "Label70" + Me.Label70.Size = New System.Drawing.Size(144, 13) + Me.Label70.TabIndex = 82 + Me.Label70.Text = "Nicht abgerechnete Kunden:" + ' + 'txtBankspesen + ' + Me.txtBankspesen.BackColor = System.Drawing.Color.White + Me.txtBankspesen.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.txtBankspesen.Location = New System.Drawing.Point(70, 128) + Me.txtBankspesen.Name = "txtBankspesen" + Me.txtBankspesen.Size = New System.Drawing.Size(106, 13) + Me.txtBankspesen.TabIndex = 85 + ' + 'btnImport + ' + Me.btnImport.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center + Me.btnImport.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnImport.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.btnImport.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.btnImport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnImport.Location = New System.Drawing.Point(11, 40) + Me.btnImport.Name = "btnImport" + Me.btnImport.Size = New System.Drawing.Size(88, 29) + Me.btnImport.TabIndex = 82 + Me.btnImport.Text = "Import" + Me.btnImport.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnImport.UseVisualStyleBackColor = True + ' + 'Label69 + ' + Me.Label69.AutoSize = True + Me.Label69.Location = New System.Drawing.Point(3, 126) + Me.Label69.Name = "Label69" + Me.Label69.Size = New System.Drawing.Size(56, 13) + Me.Label69.TabIndex = 82 + Me.Label69.Text = "Fortschritt:" + ' + 'pb_bankspesen + ' + Me.pb_bankspesen.Location = New System.Drawing.Point(6, 99) + Me.pb_bankspesen.Name = "pb_bankspesen" + Me.pb_bankspesen.Size = New System.Drawing.Size(245, 23) + Me.pb_bankspesen.TabIndex = 83 + ' + 'lblBankspesen + ' + Me.lblBankspesen.Location = New System.Drawing.Point(182, 128) + Me.lblBankspesen.Name = "lblBankspesen" + Me.lblBankspesen.Size = New System.Drawing.Size(69, 13) + Me.lblBankspesen.TabIndex = 84 + Me.lblBankspesen.Text = "0%" + Me.lblBankspesen.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'Label68 + ' + Me.Label68.AutoSize = True + Me.Label68.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label68.ForeColor = System.Drawing.SystemColors.ControlDarkDark + Me.Label68.Location = New System.Drawing.Point(11, 196) + Me.Label68.Name = "Label68" + Me.Label68.Size = New System.Drawing.Size(183, 17) + Me.Label68.TabIndex = 77 + Me.Label68.Text = "Kontoführungsgebühren" + ' 'GroupBox14 ' Me.GroupBox14.Controls.Add(Me.Button17) @@ -2002,12 +2195,24 @@ Partial Class usrCntlBH Me.GroupBox14.Controls.Add(Me.btn_ZV) Me.GroupBox14.Controls.Add(Me.btn_Laender) Me.GroupBox14.Controls.Add(Me.btn_Erloeskkonten) - Me.GroupBox14.Location = New System.Drawing.Point(14, 227) + Me.GroupBox14.Location = New System.Drawing.Point(14, 397) Me.GroupBox14.Name = "GroupBox14" Me.GroupBox14.Size = New System.Drawing.Size(841, 123) Me.GroupBox14.TabIndex = 38 Me.GroupBox14.TabStop = False ' + 'Button17 + ' + Me.Button17.BackgroundImage = Global.SDL.My.Resources.Resources.fragezeichen + Me.Button17.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.Button17.FlatAppearance.BorderSize = 0 + Me.Button17.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button17.Location = New System.Drawing.Point(816, 19) + Me.Button17.Name = "Button17" + Me.Button17.Size = New System.Drawing.Size(25, 20) + Me.Button17.TabIndex = 81 + Me.Button17.UseVisualStyleBackColor = True + ' 'Label63 ' Me.Label63.AutoSize = True @@ -2158,7 +2363,7 @@ Partial Class usrCntlBH Me.Label62.AutoSize = True Me.Label62.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Label62.ForeColor = System.Drawing.SystemColors.ControlDarkDark - Me.Label62.Location = New System.Drawing.Point(11, 207) + Me.Label62.Location = New System.Drawing.Point(11, 377) Me.Label62.Name = "Label62" Me.Label62.Size = New System.Drawing.Size(145, 17) Me.Label62.TabIndex = 37 @@ -2200,6 +2405,18 @@ Partial Class usrCntlBH Me.GroupBox11.TabIndex = 36 Me.GroupBox11.TabStop = False ' + 'cbxPOSBNZerstellen + ' + Me.cbxPOSBNZerstellen.AutoSize = True + Me.cbxPOSBNZerstellen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbxPOSBNZerstellen.Location = New System.Drawing.Point(524, 90) + Me.cbxPOSBNZerstellen.Name = "cbxPOSBNZerstellen" + Me.cbxPOSBNZerstellen.Size = New System.Drawing.Size(115, 17) + Me.cbxPOSBNZerstellen.TabIndex = 81 + Me.cbxPOSBNZerstellen.Text = "POS-BNZ erstellen" + Me.cbxPOSBNZerstellen.UseVisualStyleBackColor = True + Me.cbxPOSBNZerstellen.Visible = False + ' 'txtPloseAnh_Einarbeitung ' Me.txtPloseAnh_Einarbeitung.BackColor = System.Drawing.Color.White @@ -2615,7 +2832,7 @@ Partial Class usrCntlBH Me.txtJahr_FIBU._Waehrung = False Me.txtJahr_FIBU._WaehrungZeichen = True Me.txtJahr_FIBU.ForeColor = System.Drawing.Color.Black - Me.txtJahr_FIBU.Location = New System.Drawing.Point(169, 207) + Me.txtJahr_FIBU.Location = New System.Drawing.Point(169, 377) Me.txtJahr_FIBU.MaxLineLength = -1 Me.txtJahr_FIBU.MaxLines_Warning = "" Me.txtJahr_FIBU.MaxLines_Warning_Label = Nothing @@ -2624,30 +2841,6 @@ Partial Class usrCntlBH Me.txtJahr_FIBU.TabIndex = 76 Me.txtJahr_FIBU.Text = "0" ' - 'Button17 - ' - Me.Button17.BackgroundImage = Global.SDL.My.Resources.Resources.fragezeichen - Me.Button17.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.Button17.FlatAppearance.BorderSize = 0 - Me.Button17.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.Button17.Location = New System.Drawing.Point(816, 19) - Me.Button17.Name = "Button17" - Me.Button17.Size = New System.Drawing.Size(25, 20) - Me.Button17.TabIndex = 81 - Me.Button17.UseVisualStyleBackColor = True - ' - 'cbxPOSBNZerstellen - ' - Me.cbxPOSBNZerstellen.AutoSize = True - Me.cbxPOSBNZerstellen.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbxPOSBNZerstellen.Location = New System.Drawing.Point(524, 90) - Me.cbxPOSBNZerstellen.Name = "cbxPOSBNZerstellen" - Me.cbxPOSBNZerstellen.Size = New System.Drawing.Size(115, 17) - Me.cbxPOSBNZerstellen.TabIndex = 81 - Me.cbxPOSBNZerstellen.Text = "POS-BNZ erstellen" - Me.cbxPOSBNZerstellen.UseVisualStyleBackColor = True - Me.cbxPOSBNZerstellen.Visible = False - ' 'usrCntlBH ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -2695,6 +2888,8 @@ Partial Class usrCntlBH Me.GroupBox6.PerformLayout() Me.TabPage2.ResumeLayout(False) Me.TabPage2.PerformLayout() + Me.GroupBox15.ResumeLayout(False) + Me.GroupBox15.PerformLayout() Me.GroupBox14.ResumeLayout(False) Me.GroupBox14.PerformLayout() Me.GroupBox11.ResumeLayout(False) @@ -2880,4 +3075,18 @@ Partial Class usrCntlBH Friend WithEvents lblPloseAnh_Proz As Label Friend WithEvents Button17 As Button Friend WithEvents cbxPOSBNZerstellen As CheckBox + Friend WithEvents GroupBox15 As GroupBox + Friend WithEvents btnImport As Button + Friend WithEvents Label68 As Label + Friend WithEvents txtBankspesen As TextBox + Friend WithEvents Label69 As Label + Friend WithEvents pb_bankspesen As ProgressBar + Friend WithEvents lblBankspesen As Label + Friend WithEvents Button19 As Button + Friend WithEvents Button18 As Button + Friend WithEvents txtnichtabgerechneteKundenBankspesen As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents btnDelBankspesen As VERAG_PROG_ALLGEMEIN.FlatButton + Friend WithEvents Label70 As Label + Friend WithEvents Label72 As Label + Friend WithEvents cbxBankspesentyp As VERAG_PROG_ALLGEMEIN.MyComboBox End Class diff --git a/SDL/buchhaltung/usrCntlBH.vb b/SDL/buchhaltung/usrCntlBH.vb index 2ef72a76..1ef2ad38 100644 --- a/SDL/buchhaltung/usrCntlBH.vb +++ b/SDL/buchhaltung/usrCntlBH.vb @@ -1,10 +1,8 @@ -Imports System.Globalization + +Imports System.Globalization Imports System.Text Imports System.Web.UI.WebControls.Expressions -Imports ClosedXML.Excel -Imports com.sun.xml.internal.rngom Imports VERAG_PROG_ALLGEMEIN -Imports VERAG_PROG_ALLGEMEIN.TESTJSON Public Class usrCntlBH Dim GrenzeVersicherung = 50000 @@ -84,6 +82,11 @@ Public Class usrCntlBH btnDel_.Visible = False End If + cbxBankspesentyp.Items.Add(New MyListItem("QUARTAL", "Q")) + cbxBankspesentyp.Items.Add(New MyListItem("MONATLICH", "M")) + + setnichtAbgerechnteBankspesen() + Else End If @@ -618,7 +621,7 @@ Public Class usrCntlBH If fd.ShowDialog = DialogResult.OK Then If fd.FileName.ToUpper.EndsWith(".CSV") Then - Dim Lines As String() = My.Computer.FileSystem.ReadAllText(fd.FileName, System.Text.Encoding.Default).Split(vbCr) + Dim Lines As String() = My.Computer.FileSystem.ReadAllText(fd.FileName, System.Text.Encoding.Default).split(vbCr) Dim LineCount As Integer = Lines.Length ' fd.FileName.EndsWith(".csv") @@ -1345,7 +1348,7 @@ Public Class usrCntlBH Private Sub Button13_Click_1(sender As Object, e As EventArgs) Handles Button13.Click - Dim frm As New frmZinsnachberechnung("tblMDM_Zinsberechnung", "FMZOLL") + Dim frm As New frmZinsnachberechnung("tblMDM_Zinsberechnung", "FMZOLL", "") frm.ShowDialog(Me) End Sub @@ -2201,4 +2204,457 @@ Public Class usrCntlBH Private Sub Button18_Click(sender As Object, e As EventArgs) End Sub + + Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click + + Dim sql As New VERAG_PROG_ALLGEMEIN.SQL + + Try + + If cbxBankspesentyp._value = "" Then + + MsgBox("Typ auswählen!") + cbxBankspesentyp.Focus() + Exit Sub + + End If + + Dim importiert As Boolean = False + + Dim fd As New OpenFileDialog + fd.InitialDirectory = "\\share01.verag.ost.dmn\F\19 VERAG 360 - MDM\Buchhaltung MDM\Bank\Subkonten" + fd.Filter = "Excel Dateien (*.csv)|*.csv" + + If fd.ShowDialog() <> DialogResult.OK Then Exit Sub + + If Not fd.FileName.ToUpper().EndsWith(".CSV") Then + MessageBox.Show("Bitte eine CSV-Datei auswählen.") + Exit Sub + End If + + Dim exclApp As Object = Nothing + Dim Datei As Object = Nothing + Dim Blatt As Object = Nothing + + Dim dt As New DataTable + Dim visibleKdNrCheck As Boolean = False + Dim missingKdNr As Integer = 0 + + If dt IsNot Nothing And Not dt.Columns.Contains("name") Then + + dt.Columns.Add("Umsatz-ID", GetType(String)) + dt.Columns.Add("Datum", GetType(String)) + dt.Columns.Add("IBAN", GetType(String)) + dt.Columns.Add("BIC", GetType(String)) + dt.Columns.Add("Buchungstext", GetType(String)) + dt.Columns.Add("Währung", GetType(String)) + dt.Columns.Add("Betrag", GetType(Double)) + dt.Columns.Add("Gebühr", GetType(Double)) + dt.Columns.Add("Kontoauszug", GetType(String)) + dt.Columns.Add("KdNr", GetType(Integer)) + dt.Columns.Add("KdNrCheck", GetType(String)) + dt.Columns.Add("KdNrValid", GetType(Boolean)) + + + + End If + + + Try + + exclApp = CreateObject("Excel.Application") + exclApp.DisplayAlerts = False + exclApp.CutCopyMode = False + + 'Try to open exclusively + Datei = exclApp.Workbooks.Open(Filename:=fd.FileName, ReadOnly:=False, IgnoreReadOnlyRecommended:=True, Notify:=False) + + If Datei.ReadOnly Then + MessageBox.Show("Die Datei wird bereits von einem anderen Benutzer oder einer anderen Excel-Instanz verwendet, bitte Datei vor dem Import schließen!") + Exit Sub + End If + + + Blatt = Datei.Worksheets(1) + + ' Header einlesen + Dim headerMap As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase) + + For col As Integer = 1 To Blatt.UsedRange.Columns.Count + + Dim header As String = Convert.ToString(Blatt.Cells(1, col).Value).Trim() + + If header <> "" AndAlso Not headerMap.ContainsKey(header) Then + headerMap.Add(header, col) + End If + + Next + + ' Pflichtspalten prüfen + Dim requiredHeaders As String() = { + "Umsatz-ID", + "Datum", + "IBAN", + "BIC", + "Buchungstext", + "Währung", + "Betrag", + "Kontoauszug" + } + + For Each h As String In requiredHeaders + + If Not headerMap.ContainsKey(h) Then + MsgBox("Pflichtspalte nicht gefunden: " & h) + Exit Sub + End If + + Next + + + If headerMap.ContainsKey("KDNR") Then + visibleKdNrCheck = True + End If + + + Dim letzteZeile As Integer = Blatt.UsedRange.Rows.Count + + + + For row As Integer = 2 To letzteZeile + + Dim Umsatz_ID As String = + Convert.ToString(Blatt.Cells(row, headerMap("Umsatz-ID")).Value) + + + Dim Datum As String = + Convert.ToString(Blatt.Cells(row, headerMap("Datum")).Value) + + Dim IBAN As String = + Convert.ToString(Blatt.Cells(row, headerMap("IBAN")).Value) + + Dim BIC As String = + Convert.ToString(Blatt.Cells(row, headerMap("BIC")).Value) + + Dim Buchungstext As String = + Convert.ToString(Blatt.Cells(row, headerMap("Buchungstext")).Value) + + Dim Währung As String = + Convert.ToString(Blatt.Cells(row, headerMap("Währung")).Value) + + Dim Kontoauszug As String = + Convert.ToString(Blatt.Cells(row, headerMap("Kontoauszug")).Value) + + Dim Betrag As Double = + Convert.ToDouble(Blatt.Cells(row, headerMap("Betrag")).Value) + + Dim KundenNrCheck As String = "" + + If headerMap.ContainsKey("KDNR") Then + KundenNrCheck = Convert.ToString(Blatt.Cells(row, headerMap("KDNR")).Value) + End If + + + + + + + If String.IsNullOrWhiteSpace(Umsatz_ID) Then + Continue For + End If + + If IsNumeric(Umsatz_ID) AndAlso IsNumeric(Betrag) AndAlso Not String.IsNullOrWhiteSpace(Kontoauszug) Then + + + Dim R As DataRow = dt.NewRow + R("Umsatz-ID") = Umsatz_ID + R("Datum") = Datum + R("IBAN") = IBAN + R("BIC") = BIC + R("Buchungstext") = Buchungstext + R("Währung") = Währung + R("Betrag") = Betrag + R("Kontoauszug") = Kontoauszug + + Dim BuchungstextOnlyNr As String = System.Text.RegularExpressions.Regex.Replace(Buchungstext, "[^0-9]", "") + Dim KundeNr = CInt(sql.DLookup("bnk_KundenNr", "tblBankverbindungen", "bnk_iban like '%" & BuchungstextOnlyNr & "%' and isnull(bnk_archiv,0) = 0", "FMZOLL", "-1")) + + R("KdNr") = KundeNr + + If visibleKdNrCheck Then + + R("KdNrCheck") = KundenNrCheck + + If KundenNrCheck <> "" AndAlso IsNumeric(KundenNrCheck) Then + If CInt(KundenNrCheck) = KundeNr Then + R("KdNrValid") = True + Else + R("KdNrValid") = False + End If + End If + End If + + + If KundeNr = -1 Then + missingKdNr += 1 + End If + + 'Betrag laut folgendem Schema berechnen: + + Betrag = Betrag * -1 + Betrag = Betrag + 1 + Dim aufgerundet As Double = Math.Ceiling(Betrag / 5) * 5 + + R("Gebühr") = aufgerundet + + dt.Rows.Add(R) + + Else + + Continue For + + End If + + + Next + + If dt.Rows.Count > 0 Then + + + + + Using frm As New frmAbrechnungHandling(dt, Nothing, "Import " & dt.Rows.Count & " Buchungsdaten " & cbxBankspesentyp.SelectedItem.Text & IIf(missingKdNr > 0, missingKdNr & " Kundenkonten konnten nicht gefunden werden!", "")) + + With frm + .btnPreisliste.Visible = False + .dgvHandling.RowHeadersVisible = False + .Button2.Text = "Importieren" + .cbxDivers.Visible = True + .cbxDivers.Text = "KundenNr aus Excel übernehmen" + + If visibleKdNrCheck Then + .cbxDivers.Checked = True + Else + .cbxDivers.Checked = False + .cbxDivers.Enabled = False + End If + + + + + End With + + frm.ShowDialog() + + If frm.DialogResult = DialogResult.OK Then + + + Dim counter = 0 + Dim dateTemp + For Each r As DataGridViewRow In frm.dgvHandling.SelectedRows + + Dim Datum = r.Cells("Datum").Value + Dim TYP = cbxBankspesentyp._value + Dim KdNr = 0 + + If frm.cbxDivers.Checked AndAlso visibleKdNrCheck Then + If r.Cells("KdNrCheck").Value <> "" AndAlso IsNumeric(r.Cells("KdNrCheck").Value) Then KdNr = CInt(r.Cells("KdNrCheck").Value) + Else + KdNr = r.Cells("KdNr").Value + End If + + + dateTemp = Datum + If KdNr > 0 Then + + Dim Bankspesen = New VERAG_PROG_ALLGEMEIN.cMDM_Bankspesen(KdNr, Datum, TYP) + + If Not Bankspesen.hasEntry Then + + + Bankspesen.IBAN = r.Cells("IBAN").Value + Bankspesen.BIC = r.Cells("BIC").Value + Bankspesen.umsatzID = r.Cells("Umsatz-ID").Value + Bankspesen.buchungstext = r.Cells("Buchungstext").Value + Bankspesen.waehrung = r.Cells("Währung").Value + Bankspesen.betrag = r.Cells("Betrag").Value + Bankspesen.gebuehr = r.Cells("Gebühr").Value + Bankspesen.kontoauszug = r.Cells("Kontoauszug").Value + + If Bankspesen.SAVE() Then + counter += 1 + End If + + + txtBankspesen.Text = counter & " / " & frm.dgvHandling.SelectedRows.Count + + End If + + + End If + + Next + + + Dim MDMEinarb As New cMDMEinarbeitung("BANK", Now()) + MDMEinarb.invoicedate = CDate(dateTemp) + MDMEinarb.import_date = Now() + MDMEinarb.importfilename = fd.FileName + MDMEinarb.ds_count += counter + MDMEinarb.ds_total += frm.dgvHandling.SelectedRows.Count + MDMEinarb.completed = 1 + MDMEinarb.completed_date = Now() + MDMEinarb.SAVE() + + + importiert = True + MsgBox(counter & " von " & dt.Rows.Count & " erfolgreich importiert!") + + pb_bankspesen.Value = 100 + txtBankspesen.Text = frm.dgvHandling.SelectedRows.Count & " / " & frm.dgvHandling.SelectedRows.Count + lblBankspesen.Text = "100.00 %" + + End If + + + End Using + + + + + Else + MsgBox("keine zu importierende Daten vorhanden!") + Exit Sub + + End If + + + + Finally + + If Datei IsNot Nothing Then + Datei.Close(False) + End If + + If exclApp IsNot Nothing Then + exclApp.Quit() + End If + + If Blatt IsNot Nothing Then + Runtime.InteropServices.Marshal.ReleaseComObject(Blatt) + End If + + If Datei IsNot Nothing Then + Runtime.InteropServices.Marshal.ReleaseComObject(Datei) + End If + + If exclApp IsNot Nothing Then + Runtime.InteropServices.Marshal.ReleaseComObject(exclApp) + End If + + Blatt = Nothing + Datei = Nothing + exclApp = Nothing + + GC.Collect() + GC.WaitForPendingFinalizers() + + If importiert Then + + Dim zielOrdner As String = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(fd.FileName), "Importiert") + + If Not System.IO.Directory.Exists(zielOrdner) Then + System.IO.Directory.CreateDirectory(zielOrdner) + End If + + Dim zielDatei As String = System.IO.Path.Combine(zielOrdner, System.IO.Path.GetFileName(fd.FileName)) + + 'Falls bereits vorhanden, überschreiben + If System.IO.File.Exists(zielDatei) Then + System.IO.File.Delete(zielDatei) + End If + + System.IO.File.Move(fd.FileName, zielDatei) + + End If + + End Try + + Catch ex As Exception + + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + + + End Try + + Me.Refresh() + + + + End Sub + + Function getTrimedString(s As String, l As Integer) As String + Try + If s Is Nothing Then Return "" + If s.ToString.Length > l Then + Return s.Substring(0, l) + End If + Return s.ToString + + Catch ex As Exception + MsgBox("getTrimedString: " & ex.Message & ex.StackTrace) + End Try + Return "" + End Function + + Private Sub Button18_Click_1(sender As Object, e As EventArgs) Handles Button18.Click + Dim where As String = "" + If cbxBankspesentyp._value <> "" Then + where = " AND typ = '" & cbxBankspesentyp._value & "'" + End If + + Dim frm As New frmZinsnachberechnung("tblMDM_Bankspesen", "FMZOLL", where) + frm.ShowDialog(Me) + End Sub + + Private Sub btnDelBankspesen_Click(sender As Object, e As EventArgs) Handles btnDelBankspesen.Click + + If cbxBankspesentyp._value <> "" Then + + If vbYes = MsgBox("Möchten Sie die alle nicht abgerechneten Kontoführungsgebühren (" & cbxBankspesentyp.SelectedItem.Text & ") löschen?", vbYesNoCancel) Then + If SQL.doSQL("delete from [tblMDM_Bankspesen] WHERE [verrechnet] Is null and typ = '" & cbxBankspesentyp._value & "'", "FMZOLL") Then + txtnichtabgerechneteKundenBankspesen.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Bankspesen] where verrechnet is null and typ = '" & cbxBankspesentyp._value & "'", "FMZOLL",,, "0") + End If + End If + + End If + + End Sub + + Private Sub setnichtAbgerechnteBankspesen() + + If cbxBankspesentyp._value <> "" Then + + txtnichtabgerechneteKundenBankspesen.Text = SQL.getValueTxtBySql("SELECT count(distinct(kundenNr)) FROM [VERAG].[dbo].[tblMDM_Bankspesen] where verrechnet is null and typ = '" & cbxBankspesentyp._value & "'", "FMZOLL",,, "0") + + Else + txtnichtabgerechneteKundenBankspesen.Text = 0 + End If + + + If IsNumeric(txtnichtabgerechneteKundenBankspesen.Text) AndAlso CInt(txtnichtabgerechneteKundenBankspesen.Text) > 0 Then + btnDelBankspesen.Visible = True + Else + btnDelBankspesen.Visible = False + End If + + End Sub + + Private Sub cbxBankspesentyp_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxBankspesentyp.SelectedIndexChanged + setnichtAbgerechnteBankspesen() + End Sub + + Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click + + End Sub End Class diff --git a/SDL/kunden/frmKundenUebersichtZOLL.vb b/SDL/kunden/frmKundenUebersichtZOLL.vb index 525df4e6..06a8ef12 100644 --- a/SDL/kunden/frmKundenUebersichtZOLL.vb +++ b/SDL/kunden/frmKundenUebersichtZOLL.vb @@ -565,7 +565,7 @@ Public Class frmKundenUebersichtZOLL sqlStr &= " SELECT TOP 1000 RK_ID,[RechnungsNr],[RechnungsDatum]," sqlStr &= " ( SELECT SUM(isnull([SteuerpflichtigerBetrag],0)+isnull([SteuerfreierBetrag],0)) FROM [RechnungsausgangPositionen] where [RechnungsausgangPositionen].RK_ID=[Rechnungsausgang].RK_ID ) as Rechnungsbetrag," sqlStr &= " Sammelrechnung, [FilialenNr],[AbfertigungsNr],[UnterNr],[Abfertigungsdatum], isnull(cast(RechnungsKundenNr as nvarchar(7)) + ' ','') + [RechnungsName 1] as [RechnungAn], " - sqlStr &= " isnull(cast([VermittlerKundenNr] as nvarchar(7)) + ' ','') + [VermittlerName 1] as Vermittler, [LKW Kennzeichen],Sachbearbeiter " + sqlStr &= " isnull(cast([VermittlerKundenNr] as nvarchar(7)) + ' ','') + [VermittlerName 1] as Vermittler, [LKW Kennzeichen],Sachbearbeiter, isnull(DruckDatumZeit,'') as DruckDatumZeit " sqlStr &= " FROM [Rechnungsausgang] WHERE RechnungsKundenNr=@KundenNr AND RechnungsDatum BETWEEN @RechnungsDatum_Von AND @RechnungsDatum_Bis " Dim SQL_PARAM As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) @@ -578,6 +578,7 @@ Public Class frmKundenUebersichtZOLL '.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells .Columns("RK_ID").Visible = False + .Columns("DruckDatumZeit").Visible = False .Columns("RechnungsNr").Width = 70 .Columns("RechnungsNr").HeaderText = "Rechnugs-Nr" @@ -635,6 +636,13 @@ Public Class frmKundenUebersichtZOLL .Columns("Sachbearbeiter").MinimumWidth = 100 .Columns("Sachbearbeiter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + + For Each r In .Rows + If Not IsNothing(r.Cells("DruckDatumZeit").value) AndAlso r.Cells("DruckDatumZeit").value.ToString.Contains("1900") Then + r.Cells("RechnungsNr").Style.BackColor = Color.LightYellow + End If + Next + End With End Sub diff --git a/SDL/kunden/frmKundenUebersichtZollRgDetails.vb b/SDL/kunden/frmKundenUebersichtZollRgDetails.vb index 253ecfb6..f558ed3c 100644 --- a/SDL/kunden/frmKundenUebersichtZollRgDetails.vb +++ b/SDL/kunden/frmKundenUebersichtZollRgDetails.vb @@ -32,7 +32,7 @@ Public Class frmKundenUebersichtZollRgDetails Private Sub frmKundenUebersichtZollRg_Load(sender As Object, e As EventArgs) Handles Me.Load - Dim dt As DataRow = SQL.loadDgvBySql("SELECT *, /*[SteuerpflichtigerGesamtbetrag]*[Steuersatz %]*/ SteuerpflichtigerGesamtbetrag/(1+[Steuersatz %])*[Steuersatz %] as ErgSteuerbetrag , [SteuerpflichtigerGesamtbetrag]+[SteuerfreierGesamtbetrag] as RgBetrag,cast(isnull(zugferdcheck,0) as Bit) as zugferdcheck, isnull(zugferdcheck_daid, -1) as zugferdcheck_daid FROM Rechnungsausgang WHERE RK_ID = " & RK_ID & "", "FMZOLL").Rows(0) + Dim dt As DataRow = SQL.loadDgvBySql("SELECT *, /*[SteuerpflichtigerGesamtbetrag]*[Steuersatz %]*/ SteuerpflichtigerGesamtbetrag/(1+[Steuersatz %])*[Steuersatz %] as ErgSteuerbetrag , [SteuerpflichtigerGesamtbetrag]+[SteuerfreierGesamtbetrag] as RgBetrag,cast(isnull(zugferdcheck,0) as Bit) as zugferdcheck, isnull(zugferdcheck_daid, -1) as zugferdcheck_daid, isnull(DruckDatumZeit,'') as DruckDatumZeit FROM Rechnungsausgang WHERE RK_ID = " & RK_ID & "", "FMZOLL").Rows(0) lblRgNr.Text = dt("RechnungsNr").ToString lblRgBetrag.Text = CDbl(dt("RgBetrag")).ToString("N2", CultureInfo.CurrentCulture) @@ -72,6 +72,14 @@ Public Class frmKundenUebersichtZollRgDetails Sammelrechnung = CInt(dt("Sammelrechnung").ToString) + If dt("DruckDatumZeit").ToString = "" Then + Button1.Enabled = False + Button15.Enabled = False + Else + Button1.Enabled = True + Button15.Enabled = True + End If + If RK_ID > 0 Then initDGV() If Environment.MachineName = "H6CCWP3" Then @@ -238,8 +246,9 @@ Public Class frmKundenUebersichtZollRgDetails Dim psi As New ProcessStartInfo() - psi.FileName = "C:\Program Files\Eclipse Adoptium\jre-11.0.28.6-hotspot\bin\java.exe" - psi.Arguments = "-jar ""C:\Users\d.breimaier\Downloads\Mustang-CLI-2.21.0.jar"" --no-notices --action validate --source " & Path_temp & "" + psi.FileName = "C:\Program Files\Eclipse Adoptium\jre-11.0.32.101-hotspot\bin\java.exe" + psi.Arguments = "-jar ""C:\Users\d.breimaier\Downloads\Mustang-CLI-2.21.0.jar"" --no-notices --action validate --source " & Path_temp + psi.RedirectStandardOutput = True psi.RedirectStandardError = True diff --git a/SDL/kunden/usrCntlKundenuebersicht.vb b/SDL/kunden/usrCntlKundenuebersicht.vb index afd1c611..3d0f5c34 100644 --- a/SDL/kunden/usrCntlKundenuebersicht.vb +++ b/SDL/kunden/usrCntlKundenuebersicht.vb @@ -3,7 +3,6 @@ Imports System.Globalization Imports System.IO Imports SDL.EORI Imports VERAG_PROG_ALLGEMEIN -Imports VERAG_PROG_ALLGEMEIN.TESTJSON Public Class usrCntlKundenuebersicht 'Implements INotifyPropertyChanged diff --git a/SDL/mdm/frmMDMDatenverarbetiung.Designer.vb b/SDL/mdm/frmMDMDatenverarbetiung.Designer.vb index e174fa5f..889c6ab9 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.Designer.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.Designer.vb @@ -86,6 +86,7 @@ Partial Class frmMDMDatenverarbetiung Me.Button2 = New System.Windows.Forms.Button() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.MyDatagridview1 = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components) + Me.Button11 = New System.Windows.Forms.Button() Me.pnl.SuspendLayout() CType(Me.pb_importOK, System.ComponentModel.ISupportInitialize).BeginInit() Me.Panel5.SuspendLayout() @@ -289,6 +290,7 @@ Partial Class frmMDMDatenverarbetiung Me.FlowLayoutPanel.Controls.Add(Me.Button8) Me.FlowLayoutPanel.Controls.Add(Me.Button4) Me.FlowLayoutPanel.Controls.Add(Me.Button9) + Me.FlowLayoutPanel.Controls.Add(Me.Button11) Me.FlowLayoutPanel.Location = New System.Drawing.Point(139, 37) Me.FlowLayoutPanel.Name = "FlowLayoutPanel" Me.FlowLayoutPanel.Size = New System.Drawing.Size(840, 31) @@ -837,6 +839,17 @@ Partial Class frmMDMDatenverarbetiung Me.MyDatagridview1.Size = New System.Drawing.Size(1163, 547) Me.MyDatagridview1.TabIndex = 0 ' + 'Button11 + ' + Me.Button11.BackColor = System.Drawing.Color.FloralWhite + Me.Button11.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button11.Location = New System.Drawing.Point(633, 3) + Me.Button11.Name = "Button11" + Me.Button11.Size = New System.Drawing.Size(120, 23) + Me.Button11.TabIndex = 5 + Me.Button11.Text = "Bankspesen" + Me.Button11.UseVisualStyleBackColor = False + ' 'frmMDMDatenverarbetiung ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -935,4 +948,5 @@ Partial Class frmMDMDatenverarbetiung Friend WithEvents cbxIDSmitVerag As CheckBox Friend WithEvents pb_importOK As PictureBox Friend WithEvents btnImportdet As Button + Friend WithEvents Button11 As Button End Class diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index d4599490..b093c18d 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -1,8 +1,7 @@ Imports System.Data.OleDb +Imports System.DirectoryServices.ActiveDirectory Imports System.IO -Imports com.sun.xml.internal.rngom Imports itextsharp.text.pdf -Imports jdk.nashorn.internal.objects.annotations Imports MDM_Worker Imports VERAG_PROG_ALLGEMEIN @@ -40,6 +39,7 @@ Public Class frmMDMDatenverarbetiung Case "UTA" : genSummenbericht_UTA(LIEFERANT & "_Summenbericht_" & Now.ToShortDateString) Case "IDS" : genSummenbericht_IDS(LIEFERANT & "_Summenbericht_" & Now.ToShortDateString, 17, cbxIDSmitVerag.Checked) : genSummenbericht_IDS(LIEFERANT & "_Summenbericht_" & Now.ToShortDateString, 21, cbxIDSmitVerag.Checked) Case "MSE" : genSummenbericht_MSE(LIEFERANT & "_Summenbericht_" & Now.ToShortDateString) + Case "BANK" : genSummenbericht_Bank(LIEFERANT & "_Summenbericht_" & Now.ToShortDateString, cbxIDSmitVerag.Checked) Case Else : MsgBox("Nicht verfügbar!") End Select End Sub @@ -61,6 +61,7 @@ Public Class frmMDMDatenverarbetiung Case "UTA" : pruef = pruefData_UTA() Case "IDS" : pruef = pruefData_IDS() Case "MSE" : pruef = pruefData_MSE() + Case "BANK" : pruef = pruefData_Bank() Case Else : MsgBox("Nicht verfügbar!") : Exit Sub End Select @@ -95,9 +96,12 @@ Public Class frmMDMDatenverarbetiung btnDatenLaden.Text = "Daten laden" Case "IDS" : checkImport(LIEFERANT) : initDgv_IDS() btnDatenLaden.Text = "Daten laden" - 'Button1.Enabled = False + Case "MSE" : checkImport(LIEFERANT) : initDgv_MSE() btnDatenLaden.Text = "Daten laden" + Case "BANK" : checkImport(LIEFERANT) : initDgv_Bank() + btnDatenLaden.Text = "Daten laden" + Button1.Enabled = False End Select End Sub @@ -112,7 +116,7 @@ Public Class frmMDMDatenverarbetiung Dim sqlstr As String = "" Select Case LIEFERANT - Case "PLOSE" + Case "PLOSE", "BANK" sqlstr = "SELECT * FROM [VERAG].[dbo].[tblMDMEinarbeitung] where supplier = '" & LIEFERANT & "' and invoicedate between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "'" Case "ASFINAG" sqlstr = "SELECT * FROM [VERAG].[dbo].[tblMDMEinarbeitung] where supplier = '" & LIEFERANT & "' and YEAR(invoicedate) = " & Today().Year @@ -193,6 +197,21 @@ Public Class frmMDMDatenverarbetiung setFakturiert(LIEFERANT) End If End If + + Case "BANK" + + If cbxIDSmitVerag.Checked Then + MsgBox("Abrechnung ohne RMC/Durmaz-Kunden!") + Exit Sub + End If + + Dim dTLANDEU = (New SQL).loadDgvBySql("select LandKz, MitgliedslandEU from Währungstabelle where LandKz is not null", "FMZOLL") + + If genRG_Bank(dTLANDEU, cbxIDSmitVerag.Checked) Then + setFakturiert(LIEFERANT) + End If + + Case "ASFINAG" Dim asfinagParam As New cAsfinagMaut asfinagParam.initImportPfade() @@ -788,6 +807,79 @@ Public Class frmMDMDatenverarbetiung print.Show() End Sub + Sub genSummenbericht_Bank(Berichtsname As String, mitRM_CDurmaz_Daten As Boolean) + Dim displayFilter = False + Dim sqlstr As String = "" + + sqlstr &= " SELECT spesen.kundenNr as KundenNr, Adressen.[Name 1] as Name, datum , (spesen.betrag * -1) as Betrag, spesen.gebuehr , spesen.buchungstext,spesen.kontoauszug, spesen.iban, spesen.bic FROM [tblMDM_Bankspesen] as spesen + inner join adressen ON spesen.kundenNr = Adressen.AdressenNr + where datum between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' and spesen.typ = 'Q' and isnull(spesen.RK_ID,0) = 0 and spesen.SR_datum is null " & IIf(mitRM_CDurmaz_Daten, "", " AND Left(spesen.KundenNr,2) <> 14 AND Left(spesen.KundenNr,2) <> 15") + + Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") + + Dim print As New frmPrintLayout + print.Text = Berichtsname + + Dim rpt As New rptASFINAG_TransaktionenSumary + + rpt.DataSource = dt + + Dim sum = 0 + rpt.lblUeberschrift.Text = "Bankspesen (Quartal) Summenbericht " & CDate(Now.ToShortDateString) + rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME + rpt.lblBrutto.Text = "Gebühren" + rpt.lblNetto.Text = "Bankspesen" + rpt.Label4.Text = rpt.lblNetto.Text + rpt.Label2.Visible = False + rpt.Label14.Text = rpt.lblBrutto.Text + + rpt.lblDat.Text = Now.ToLongDateString + + Dim sumNetto As Double = 0 + 'Dim sumMWST As Double = 0 + Dim sumBrutto As Double = 0 + + Dim sumperKdNrNetto As Double = 0 + 'Dim sumperKdNrMWST As Double = 0 + Dim sumperKdNrBrutto As Double = 0 + + + AddHandler rpt.Detail.Format, Sub() + + + rpt.lblKundennr.Text = SQL.isDbnullEmpty(rpt.Fields.Item("KundenNr").Value, "") + rpt.lblKartennr.Text = SQL.isDbnullEmpty(rpt.Fields.Item("buchungstext").Value, "") & " - " & SQL.isDbnullEmpty(rpt.Fields.Item("kontoauszug").Value, "") '& " - " & SQL.isDbnullEmpty(rpt.Fields.Item("CardNr").Value, "") + rpt.lblName1.Text = SQL.isDbnullEmpty(rpt.Fields.Item("Name").Value, "") + + rpt.lblNetto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("Betrag").Value, 2, "") + rpt.lblMWST.Text = "" + rpt.lblBrutto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("gebuehr").Value, 2, "") + + + rpt.lblSumNet.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("Betrag").Value, 2, "") + rpt.lblSumVat.Text = "" + rpt.lblSumBrt.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("gebuehr").Value, 2, "") + + sumNetto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("Betrag").Value, 4, 0) + sumBrutto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("gebuehr").Value, 4, 0) + + + End Sub + + + AddHandler rpt.ReportFooter1.Format, Sub() + + rpt.lblSumNetto.Text = sumNetto.ToString("N2") + rpt.lblSumMwst.Text = "" + rpt.lblSumBrutto.Text = sumBrutto.ToString("N2") + + End Sub + + print.Viewer.LoadDocument(rpt) + print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous + print.Show() + End Sub + Sub genSummenbericht_IDS(Berichtsname As String, typ As Integer, mitVerag360_VeragAG As Boolean) Dim displayFilter = False @@ -1068,6 +1160,45 @@ Public Class frmMDMDatenverarbetiung End Sub + Sub initDgv_Bank() + With MyDatagridview1 + .Columns.Clear() + + .SET_SQL(" SELECT spesen.kundenNr as KdNr, Adressen.[Name 1] as Name, datum as Datum , (spesen.betrag * -1) as Betrag, spesen.gebuehr as Gebühr , spesen.buchungstext as Buchnungstext,spesen.kontoauszug as Kontoauszug, spesen.iban as IBAN, spesen.bic as BIC FROM [tblMDM_Bankspesen] as spesen + inner join adressen ON spesen.kundenNr = Adressen.AdressenNr + where datum between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' and spesen.typ = 'Q' and isnull(spesen.RK_ID,0) = 0 and spesen.SR_datum is null " & IIf(cbxIDSmitVerag.Checked, " ", " AND Left(spesen.KundenNr,2) <> 14 AND Left(spesen.KundenNr,2) <> 15 "), "FMZOLL") + + .LOAD() + + If .Columns.Count > 0 Then + + .Columns("Buchnungstext").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill + .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells + + End If + + Dim sumGes As Double = 0 + Dim sumFee As Double = 0 + Dim sumTr As Double = 0 + For Each r As DataGridViewRow In .Rows + sumGes += If(IsNumeric(r.Cells("Betrag").Value), CDbl(r.Cells("Betrag").Value), 0) + sumTr += If(IsNumeric(r.Cells("Gebühr").Value), CDbl(r.Cells("Gebühr").Value), 0) + Next + + txtAnzahl.Text = .Rows.Count + txtPruefsummeNetto.Text = CDbl(sumTr).ToString("C2") + txtPruefsummeBrutto.Text = CDbl(sumGes).ToString("C2") + + lblTTRSum.Visible = False + txtTTRSum.Visible = True + txtTTRSum._WaehrungZeichen = True + + .ClearSelection() + + End With + + End Sub + Sub initDgv_IDS() With MyDatagridview1 .Columns.Clear() @@ -1284,6 +1415,7 @@ Public Class frmMDMDatenverarbetiung c.Dock = DockStyle.Fill pnlIDS.Visible = True cbxKopie.Visible = True + cbxIDSmitVerag.Text = "Daten mit Verag/Verag360" cbxIDSmitVerag.Visible = True Case "MSE" @@ -1291,6 +1423,11 @@ Public Class frmMDMDatenverarbetiung Dim c As New usrCntlMDMDatenverarbeitungAuswertungen_divers(Me, Me.LIEFERANT) pnlMDMDetailberichte.Controls.Add(c) c.Dock = DockStyle.Fill + + Case "BANK" + Panel4.Visible = True + cbxIDSmitVerag.Text = "Daten mit RMC/Durmaz" + cbxIDSmitVerag.Visible = True End Select init() @@ -1670,12 +1807,158 @@ Public Class frmMDMDatenverarbetiung End Function + Function genRG_Bank(dtLand As DataTable, mitRM_CDurmaz_Daten As Boolean) As Boolean + Dim top = "" + 'top = " TOP 20 " + Dim sqlWhere = "" + + Dim SQLStr = "SELECT spesen.kundenNr, Adressen.[Name 1], sum(spesen.gebuehr) as gebuehr FROM [tblMDM_Bankspesen] as spesen + inner join adressen ON spesen.kundenNr = Adressen.AdressenNr + where datum between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' and spesen.typ = 'Q' and isnull(spesen.RK_ID,0) = 0 and spesen.SR_datum is null " & IIf(mitRM_CDurmaz_Daten, "", " AND Left(spesen.KundenNr,2) <> 14 AND Left(spesen.KundenNr,2) <> 15") & "group by spesen.kundenNr, Adressen.[Name 1]" + + Dim dt_Main As DataTable = SQL.loadDgvBySql_Param(SQLStr, "FMZOLL", 1200) + + + If dt_Main Is Nothing OrElse dt_Main.Rows.Count = 0 Then + MsgBox("Keine Daten!") + Return False + End If + + + Dim cnt = 0 + + If vbYes = MsgBox("Es wurden Daten von " & dt_Main.Rows.Count & " Kunden gefunden " & vbNewLine & " Möchten Sie die Rechnungen erstellen?", vbYesNoCancel) Then + + + If dt_Main.Rows.Count > 0 Then + Dim kundenNr As String = "" + If dt_Main.Columns.Contains("kundenNr") Then + Dim dtNew As DataTable = dt_Main.Rows.Cast(Of DataRow)().Where(Function(row) Not row.ItemArray.All(Function(field) field Is DBNull.Value Or field.Equals(""))).CopyToDataTable() + If dtNew.Rows.Count > 0 Then + Dim counter = 0 + For Each r As DataRow In dtNew.Rows + kundenNr &= r.Item(0) + counter = counter + 1 + If (dtNew.Rows.Count <> 0 And counter <> dtNew.Rows.Count) Then + kundenNr &= "," + End If + Next + End If + End If + + + Dim sqlStringFehlendeOffertenNr = "select KundenNr from Offertenpositionen where KundenNr in (" & kundenNr & ") + GROUP by KundenNr + EXCEPT + select KundenNr from Offertenpositionen where LeistungsNr = 424 and KundenNr in (" & kundenNr & ") + GROUP by KundenNr" + + Dim dtfehlendeOfferten As DataTable = SQL.loadDgvBySql(sqlStringFehlendeOffertenNr, "FMZOLL") + + + If dtfehlendeOfferten.Rows.Count > 0 Then + + Dim result As MsgBoxResult = MsgBox("Bei " & dt_Main.Rows.Count & " Kunden fehlt das Offert im Kundenstamm " & vbNewLine & "Möchten Sie das Offert automatisch anlegen, andernfalls werden die Bankspesen bei diesen Kunden nicht verrechnet?", vbYesNoCancel) + + Select Case result + Case MsgBoxResult.Cancel : Return False + + Case MsgBoxResult.Yes + + + + For Each R As DataRow In dtfehlendeOfferten.Rows + If Not IsDBNull(R.Item("KundenNr")) AndAlso R.Item("KundenNr") IsNot Nothing AndAlso IsNumeric(R.Item("KundenNr")) Then + Dim OffertenNr As Integer = -1 + Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(R.Item("KundenNr")) + + If AD.LandKz = "RO" Then + + OffertenNr = 31 + Else + If dtLand IsNot Nothing Then + + Dim isEU As Boolean = dtLand.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = AD.LandKz).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault() + + If isEU Then + OffertenNr = 14 + Else + OffertenNr = 15 + End If + + End If + + + End If + + + + + Dim o As New VERAG_PROG_ALLGEMEIN.cOfferte(R.Item("KundenNr"), OffertenNr, False) + o.Art = "Neuanlage" + o.SAVE() 'speichern + o.LOAD_POSITIONEN() 'positionen Laden + If o.POSITIONEN.Count = 0 Then 'wenn keine POS --> neues Offert + o.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, "", "DE") '--> Standartofferten laden + End If + End If + + Next + + End Select + + + + End If + + End If + + + + For Each BANK In dt_Main.Rows + + Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing + Dim verarbOK = IIf(test, False, True) + Dim RECHNUNG As cRechnungsausgang = Nothing + + If Not gen_SPEDBUCH_ByKdNr(BANK("kundenNr"), SPEDBUCH, "BANK",,,, datPloseAnhang.Value, dtLand) Then verarbOK = False + If Not gen_RECHNUNG_BySPEDBUCH(BANK("kundenNr"), SPEDBUCH, "BANK",, dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString, RECHNUNG) Then verarbOK = False + + + If verarbOK Then + 'Update Fakturiert + SQL.doSQL("UPDATE tblMDM_Bankspesen set RK_ID = " & RECHNUNG.RK_ID & ", SR_datum = '" & datPloseAnhang.Value.ToShortDateString & "' where datum between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' and typ = 'Q' and isnull(RK_ID,0) = 0 and SR_datum is null and kundenNr = " & BANK("kundenNr"), "FMZOLL") + + End If + + If True Then 'cnt Mod 10 = 0 Then + txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count + Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100 + pbPloseAnh_Proz.Value = proz + lblPloseAnh_Proz.Text = proz.ToString("N2") & " %" + 'GroupBox12.Refresh() + My.Application.DoEvents() + End If + cnt += 1 + Next + + + pbPloseAnh_Proz.Value = 100 + txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count + lblPloseAnh_Proz.Text = "100.00 %" + + Return True + End If + Return False + End Function + + Function genRGAtt_IDS(art As String, idsParam As cIDS) As Boolean Dim top = "" Dim sqlWhere = "" Select Case art - Case "IDS" : sqlWhere = " AND tblIDSTransactionsNew.OutletCountryCode<>740543 and Adressen.AdressenNr = 402022 " + Case "IDS" : sqlWhere = " AND tblIDSTransactionsNew.OutletCountryCode<>740543" Case "IDS_AT" : sqlWhere = " AND tblIDSTransactionsNew.OutletCountryCode=740543" Case Else MsgBox("falscher Typ!") : Return False @@ -3508,7 +3791,7 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land End Function - Function gen_SPEDBUCH_ByKdNr(KdNr As String, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Lieferant As String, Optional PLOSEKundenNr As String = "", Optional von As Date = Nothing, Optional bis As Date = Nothing, Optional abrechnugsdatum As Date = Nothing) + Function gen_SPEDBUCH_ByKdNr(KdNr As String, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Lieferant As String, Optional PLOSEKundenNr As String = "", Optional von As Date = Nothing, Optional bis As Date = Nothing, Optional abrechnugsdatum As Date = Nothing, Optional dtLand As DataTable = Nothing) Try If KdNr = "" Then Return False @@ -3525,6 +3808,29 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land Case "MSE" : OffertenNr = 23 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4821 Case "IDS" : OffertenNr = 17 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4868 Case "IDS_AT" : OffertenNr = 21 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4868 + Case "BANK" + + Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4817 + If AD.LandKz = "RO" Then + + OffertenNr = 31 + Else + If dtLand IsNot Nothing Then + + Dim isEU As Boolean = dtLand.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = AD.LandKz).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault() + + If isEU Then + OffertenNr = 14 + Else + OffertenNr = 15 + End If + + End If + + + End If + + End Select Dim GJ = Now.Year @@ -3573,8 +3879,6 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land Dim OffertenNr As Integer Dim Abfertigungsart As Integer - - Dim KUNDE_ERW As New cKundenErweitert(KdNr) Dim anh_Bez As String = "Email-Anhang" @@ -3593,9 +3897,6 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land 'End If - - - Select Case Lieferant Case "PLOSE" : OffertenNr = 80 : Abfertigungsart = 10 : RG.Anlage_1 = anh_Bez Case "ASFINAG" : OffertenNr = 11 : Abfertigungsart = 10 : RG.Anlage_1 = anh_Bez @@ -3603,7 +3904,8 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land Case "MSE" : OffertenNr = 23 : Abfertigungsart = 10 : RG.Anlage_1 = anh_Bez Case "IDS" : OffertenNr = 17 : Abfertigungsart = 10 : RG.Anlage_1 = anh_Bez Case "IDS_AT" : OffertenNr = 21 : Abfertigungsart = 10 : RG.Anlage_1 = anh_Bez - + Case "BANK" + OffertenNr = SPEDBUCH.VermittlerOffertenNr : Abfertigungsart = 10 : RG.Anlage_1 = "" End Select RG.Firma_ID = 19 'RG.Firma_ID = 15 @@ -3852,6 +4154,48 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land Next + Case "BANK" + + sqlstr = "SELECT spesen.kundenNr, sum(spesen.gebuehr) as gebuehr, 424 as LeistungsNr, min(cast(datum as Date)) as MinDatum, max(cast(datum as Date)) as MaxDatum FROM [tblMDM_Bankspesen] as spesen + where spesen.datum between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' and spesen.typ = 'Q' and isnull(spesen.RK_ID,0) = 0 and spesen.SR_datum is null and spesen.KundenNr = " & KdNr & " + group by spesen.kundenNr" + + Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") + + For Each r As DataRow In dt.Rows + + Dim NettoBetrag As Double = r("gebuehr") + Dim BruttoBetrag As Double = r("gebuehr") + Dim LeistungsNr As Integer = r("LeistungsNr") + Dim LeistungsBezAdd As String = "" + + Dim minDatum As DateTime + Dim maxDatum As DateTime + Dim minQuartal As Integer = -1 + Dim maxQuartal As Integer = -1 + + If DateTime.TryParse(Convert.ToString(r("MinDatum")), minDatum) Then + minQuartal = ((minDatum.Month - 1) \ 3) + 1 + End If + + If DateTime.TryParse(Convert.ToString(r("MaxDatum")), maxDatum) Then + maxQuartal = ((maxDatum.Month - 1) \ 3) + 1 + End If + + If minQuartal > 0 AndAlso maxQuartal > 0 Then + If minDatum.Year = maxDatum.Year AndAlso minQuartal = maxQuartal Then + LeistungsBezAdd = " Q " & minQuartal & "/" & minDatum.Year + Else + LeistungsBezAdd = " Q " & minQuartal & "-" & maxQuartal & "/" & minDatum.Year + End If + End If + + + allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag,,, LeistungsBezAdd) + + Next + + End Select @@ -3894,7 +4238,7 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land End Function - Function allPos(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, LeistungsNr As Integer, NettoBetrag As Double, BruttoBetrag As Double, Optional UstBetrag As Double = 0, Optional leistungsBez As String = "") + Function allPos(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, LeistungsNr As Integer, NettoBetrag As Double, BruttoBetrag As Double, Optional UstBetrag As Double = 0, Optional leistungsBez As String = "", Optional leistungsBezAdd As String = "") Try For Each o In OFFERTE.POSITIONEN @@ -3910,6 +4254,10 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land POS.LeistungsNr = o.LeistungsNr POS.LeistungsBez = o.LeistungsBez + If leistungsBezAdd <> "" Then + POS.LeistungsBez &= " " & leistungsBezAdd + End If + POS.BerechnungsartNr = o.BerechnungsartNr 'POS.Preis = BruttoBetrag POS.Anzahl = 1 @@ -4672,6 +5020,25 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land End Try End Function + Function pruefData_Bank() As Boolean + pruefData_Bank = True + Try + + Dim fehlendeKundenr As Integer = CInt((New SQL).getValueTxtBySql("select count(*) from tblMDM_Bankspesen as spesen + WHERE datum between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' and spesen.typ = 'Q' and isnull(spesen.RK_ID,0) = 0 and spesen.SR_datum is null and spesen.kundenNr <= 0 ", "FMZOLL")) + + If fehlendeKundenr > 0 Then + pruefData_Bank = False + MsgBox("Es konnten bei den Bankspesendaten " & fehlendeKundenr & " Kunden aufgrund des hinterlegten IBAN nicht ermittelt werden!" & vbNewLine & "Bitte an die Buchhaltung/IT wenden.") + Return False + End If + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + pruefData_Bank = False + End Try + End Function + Function pruefData_IDS() As Boolean pruefData_IDS = True @@ -4956,6 +5323,15 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land where cast(tblIDSTransactionsNew.YearMonthDay As Date) = '" & DateTimePicker2.Text & "' and chargedDatetime is not null and isnull(charged,0) = 0 and tblIDSTransactionsNew.OutletCountryCode = 740543 ", "FMZOLL") Then PictureBox1.Visible = True End If + + Case "BANK" + If SQL.doSQL("UPDATE [VERAG].[dbo].[tblMDM_Bankspesen] Set verrechnet = getDate() + where datum between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' and typ = 'Q' and isnull(RK_ID,0) <> 0 and SR_datum is not null ", "FMZOLL") Then + + setBillingDateCompleted(Lieferant, datPloseAnhang.Value) + + PictureBox1.Visible = True + End If Case Else MsgBox("Funktion setFakturiert für den Lieferant " & Lieferant & " nicht definiert!") End Select @@ -4983,6 +5359,7 @@ LEFT JOIN VERAG.dbo.tbl_IDS_Länder land Case "MSE" : setFakturiert(LIEFERANT) Case "ASFINAG" : setFakturiert_ASFINAG() Case "IDS" : setFakturiert(LIEFERANT) : setFakturiert("IDS_AT") + Case "BANK" : setFakturiert(LIEFERANT) End Select End If End Sub @@ -5588,7 +5965,13 @@ RabattBerechnen: End Function Private Sub cbxIDSmitVerag_CheckedChanged(sender As Object, e As EventArgs) Handles cbxIDSmitVerag.CheckedChanged - initDgv_IDS() + + Select Case LIEFERANT + Case "IDS" : initDgv_IDS() + Case "BANK" : initDgv_Bank() + End Select + + End Sub Private Sub btnImportdet_Click(sender As Object, e As EventArgs) Handles btnImportdet.Click @@ -5638,4 +6021,8 @@ RabattBerechnen: End Using End Sub + + Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click + initLieferant("BANK", sender) + End Sub End Class diff --git a/SDL/mdm/usrcntlFremdrechnungen.vb b/SDL/mdm/usrcntlFremdrechnungen.vb index bd8bc508..014aa417 100644 --- a/SDL/mdm/usrcntlFremdrechnungen.vb +++ b/SDL/mdm/usrcntlFremdrechnungen.vb @@ -1299,10 +1299,15 @@ Public Class usrcntlFremdrechnungen Dim daId As Integer = IIf(IsDBNull(r.Item("daId")), -1, r.Item("daId")) If daId > 0 Then Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) - pdflist.Add(DS.GET_TOP1_PATH()) - TextHTMLtable &= "" & DS.da_name & "" + If DS.hasITEMS Then + pdflist.Add(DS.GET_TOP1_PATH()) + TextHTMLtable &= "" & DS.da_name & "" + Else + TextHTMLtable &= "-" + End If + Else - TextHTMLtable &= "-" + TextHTMLtable &= "-" End If @@ -1320,10 +1325,15 @@ Public Class usrcntlFremdrechnungen Dim daId As Integer = IIf(IsDBNull(row.Cells("daId").Value), -1, row.Cells("daId").Value) If daId > 0 Then Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) - pdflist.Add(DS.GET_TOP1_PATH()) - TextHTMLtable &= "" & DS.da_name & "" + If DS.hasITEMS Then + pdflist.Add(DS.GET_TOP1_PATH()) + TextHTMLtable &= "" & DS.da_name & "" + Else + TextHTMLtable &= "-" + End If + Else - TextHTMLtable &= "-" + TextHTMLtable &= "-" End If TextHTMLtable &= "" @@ -1567,7 +1577,11 @@ Public Class usrcntlFremdrechnungen If daId > 0 Then Me.Cursor = Cursors.WaitCursor Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) - DS.OPEN_SINGLE() + If DS.hasITEMS Then + DS.OPEN_SINGLE() + Else + MsgBox("keine Datei gefunden!") + End If End If End If @@ -1579,10 +1593,18 @@ Public Class usrcntlFremdrechnungen If daId > 0 Then Me.Cursor = Cursors.WaitCursor Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId) - DS.OPEN_SINGLE() + + If DS.hasITEMS Then + DS.OPEN_SINGLE() + Else + MsgBox("keine Datei gefunden!") + End If + + End If End If + End Select ElseIf e.ColumnIndex = 18 Then diff --git a/SDL/seriendruck/usrCntlFakturierung.Designer.vb b/SDL/seriendruck/usrCntlFakturierung.Designer.vb index 906be5f9..aca5842d 100644 --- a/SDL/seriendruck/usrCntlFakturierung.Designer.vb +++ b/SDL/seriendruck/usrCntlFakturierung.Designer.vb @@ -46,6 +46,8 @@ Partial Class usrcntlFakturierung Me.Button18 = New System.Windows.Forms.Button() Me.Label44 = New System.Windows.Forms.Label() Me.GBSammelrechnung = New System.Windows.Forms.GroupBox() + Me.PictureBox13 = New System.Windows.Forms.PictureBox() + Me.Label15 = New System.Windows.Forms.Label() Me.PictureBox12 = New System.Windows.Forms.PictureBox() Me.Label13 = New System.Windows.Forms.Label() Me.PictureBox11 = New System.Windows.Forms.PictureBox() @@ -107,12 +109,12 @@ Partial Class usrcntlFakturierung Me.btnWikiStatusmails = New System.Windows.Forms.Button() Me.gb_MDM_Rechnungen = New System.Windows.Forms.GroupBox() Me.Label14 = New System.Windows.Forms.Label() - Me.PictureBox13 = New System.Windows.Forms.PictureBox() - Me.Label15 = New System.Windows.Forms.Label() + Me.btnSR_zuruecksetzen = New System.Windows.Forms.Button() Me.gb_fakturierung.SuspendLayout() Me.GBMautberichte.SuspendLayout() CType(Me.dgvMautbericht, System.ComponentModel.ISupportInitialize).BeginInit() Me.GBSammelrechnung.SuspendLayout() + CType(Me.PictureBox13, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox12, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox11, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox6, System.ComponentModel.ISupportInitialize).BeginInit() @@ -126,7 +128,6 @@ Partial Class usrcntlFakturierung CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() Me.gb_MDM_Rechnungen.SuspendLayout() - CType(Me.PictureBox13, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'gb_fakturierung @@ -355,6 +356,7 @@ Partial Class usrcntlFakturierung ' 'GBSammelrechnung ' + Me.GBSammelrechnung.Controls.Add(Me.btnSR_zuruecksetzen) Me.GBSammelrechnung.Controls.Add(Me.PictureBox13) Me.GBSammelrechnung.Controls.Add(Me.Label15) Me.GBSammelrechnung.Controls.Add(Me.PictureBox12) @@ -421,6 +423,25 @@ Partial Class usrcntlFakturierung Me.GBSammelrechnung.TabIndex = 14 Me.GBSammelrechnung.TabStop = False ' + 'PictureBox13 + ' + Me.PictureBox13.BackgroundImage = CType(resources.GetObject("PictureBox13.BackgroundImage"), System.Drawing.Image) + Me.PictureBox13.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom + Me.PictureBox13.Location = New System.Drawing.Point(148, 187) + Me.PictureBox13.Name = "PictureBox13" + Me.PictureBox13.Size = New System.Drawing.Size(14, 14) + Me.PictureBox13.TabIndex = 134 + Me.PictureBox13.TabStop = False + Me.PictureBox13.Visible = False + ' + 'Label15 + ' + Me.Label15.Location = New System.Drawing.Point(168, 187) + Me.Label15.Name = "Label15" + Me.Label15.Size = New System.Drawing.Size(429, 14) + Me.Label15.TabIndex = 133 + Me.Label15.Text = "8. Hängt ZNB-Liste an." + ' 'PictureBox12 ' Me.PictureBox12.BackgroundImage = Global.SDL.My.Resources.Resources.ok @@ -828,6 +849,7 @@ Partial Class usrcntlFakturierung Me.KdSearchBox3._displayFullName = False Me.KdSearchBox3._displayWoelflKd = False Me.KdSearchBox3._hideIfListEmpty = True + Me.KdSearchBox3._hideMDMKd = False Me.KdSearchBox3._loadKdData = False Me.KdSearchBox3._searchName1 = True Me.KdSearchBox3._UseFIRMA = "" @@ -1041,24 +1063,17 @@ Partial Class usrcntlFakturierung Me.Label14.TabIndex = 73 Me.Label14.Text = "Rechnungsdaten" ' - 'PictureBox13 + 'btnSR_zuruecksetzen ' - Me.PictureBox13.BackgroundImage = CType(resources.GetObject("PictureBox13.BackgroundImage"), System.Drawing.Image) - Me.PictureBox13.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom - Me.PictureBox13.Location = New System.Drawing.Point(148, 187) - Me.PictureBox13.Name = "PictureBox13" - Me.PictureBox13.Size = New System.Drawing.Size(14, 14) - Me.PictureBox13.TabIndex = 134 - Me.PictureBox13.TabStop = False - Me.PictureBox13.Visible = False - ' - 'Label15 - ' - Me.Label15.Location = New System.Drawing.Point(168, 187) - Me.Label15.Name = "Label15" - Me.Label15.Size = New System.Drawing.Size(429, 14) - Me.Label15.TabIndex = 133 - Me.Label15.Text = "8. Hängt ZNB-Liste an." + Me.btnSR_zuruecksetzen.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnSR_zuruecksetzen.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) + Me.btnSR_zuruecksetzen.Location = New System.Drawing.Point(744, 261) + Me.btnSR_zuruecksetzen.Name = "btnSR_zuruecksetzen" + Me.btnSR_zuruecksetzen.Size = New System.Drawing.Size(107, 32) + Me.btnSR_zuruecksetzen.TabIndex = 135 + Me.btnSR_zuruecksetzen.Text = "SR-zurücksetzen" + Me.btnSR_zuruecksetzen.UseVisualStyleBackColor = True + Me.btnSR_zuruecksetzen.Visible = False ' 'usrcntlFakturierung ' @@ -1082,6 +1097,7 @@ Partial Class usrcntlFakturierung CType(Me.dgvMautbericht, System.ComponentModel.ISupportInitialize).EndInit() Me.GBSammelrechnung.ResumeLayout(False) Me.GBSammelrechnung.PerformLayout() + CType(Me.PictureBox13, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox12, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox11, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox6, System.ComponentModel.ISupportInitialize).EndInit() @@ -1095,7 +1111,6 @@ Partial Class usrcntlFakturierung CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.gb_MDM_Rechnungen.ResumeLayout(False) - CType(Me.PictureBox13, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -1185,4 +1200,5 @@ Partial Class usrcntlFakturierung Friend WithEvents Label14 As Label Friend WithEvents PictureBox13 As PictureBox Friend WithEvents Label15 As Label + Friend WithEvents btnSR_zuruecksetzen As Button End Class diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index 2c97dc2b..710984f1 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -1,7 +1,6 @@ Imports System.Globalization Imports System.IO Imports System.Web.UI.WebControls.Expressions -Imports com.sun.xml.internal.rngom Imports VERAG_PROG_ALLGEMEIN Public Class usrcntlFakturierung @@ -88,6 +87,7 @@ Public Class usrcntlFakturierung Button2.Visible = False Button3.Visible = False btnRE_Text.Visible = False + btnSR_zuruecksetzen.Visible = False @@ -119,6 +119,7 @@ Public Class usrcntlFakturierung Button2.Visible = True Button3.Visible = True btnRE_Text.Visible = True + btnSR_zuruecksetzen.Visible = True End If @@ -222,8 +223,7 @@ Public Class usrcntlFakturierung If Not ok Then Exit Sub - Dim rechnungenMitAbwAbfDat As Integer = CInt((New SQL).getValueTxtBySqlVarList("SELECT COUNT(*) FROM Rechnungsausgang - WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) <> '" & rechnungsdatum & "'", "FMZOLL",, 0)) + Dim rechnungenMitAbwAbfDat As Integer = CInt((New SQL).getValueTxtBySqlVarList("SELECT COUNT(*) FROM Rechnungsausgang WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) <> '" & rechnungsdatum & "'", "FMZOLL",, 0)) If rechnungenMitAbwAbfDat > 0 Then Dim res As MsgBoxResult @@ -242,7 +242,7 @@ Public Class usrcntlFakturierung Dim rechnungenMitRE_KZ As Integer = CInt((New SQL).getValueTxtBySqlVarList("SELECT COUNT(*) FROM Rechnungsausgang WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' AND Rechnungsart <> 'RG' ", "FMZOLL",, 0)) - If rechnungenMitAbwAbfDat > 0 Then + If rechnungenMitRE_KZ > 0 Then Dim res As MsgBoxResult res = MsgBox("Es gibt noch " & rechnungenMitRE_KZ & " Rechnungen deren Rechnungsart nicht auf Standard-Rechnung gesetzt ist" & vbNewLine & "Möchten Sie fortfahren (Rechnungsart wird auf Standard gesetzt) ?", vbYesNoCancel) Select Case res @@ -381,6 +381,8 @@ Public Class usrcntlFakturierung showPic(okMaut, PictureBox7) + showPic(okEZB, PictureBox13) + If Not okMaut Then MsgBox("Fehler beim Setzen der Gesamtmautberichte") End If @@ -752,7 +754,7 @@ Public Class usrcntlFakturierung Dim dtSelectedSammelrechnungen As DataTable = (New SQL).loadDgvBySql("SELECT [Firma_ID], [Status],[FilialenNr], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, [RK_ID], [BelegartenNr],cast([Vorkasse] as bit) as Vorkasse, [Nettozahlungsziel], [OffertenNr], [RechnungsLandKz], [Text] FROM Rechnungsausgang - WHERE " & IIf(setTextifNull, "[Status] = 4 AND Text is null", "[Status] = 0") & " AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' + WHERE " & IIf(setTextifNull, "[Status] = 4 AND Text is null", "[Status] = 0") & " AND [Sammelrechnung] = 6 AND UPPER([Sachbearbeiter]) = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "' ORDER BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift], [RK_ID]", "FMZOLL") Try @@ -1158,6 +1160,24 @@ Public Class usrcntlFakturierung Dim dtZNBList = (New SQL).loadDgvBySql("select [id] ,[belegNr] ,[buchungstext] ,[zinssatz] ,[belegZahlungsziel],[ueberschreitungInTagen] ,[zinsbetrag] ,[belegDatum] ,[zahlungsBetrag] ,[zahlungDatum] , [faelligkeitsDatum] from tblMDM_Zinsberechnung where RK_ID =" & RG.RK_ID, "FMZOLL") + 'hier noch Rabattpsitionen einfügen (aus der Rechnung). + + If RG.POSITIONEN.Any(Function(r) r.Preis < 0 AndAlso r.LeistungsBez.Contains("%")) Then + + + For Each POS In RG.POSITIONEN + If POS.Preis < 0 AndAlso POS.LeistungsBez.Contains("%") Then + dtZNBList.Rows.Add("0", "Discount", "", "", "", 0, CDbl(POS.SteuerfreierBetrag) + CDbl(POS.SteuerpflichtigerBetrag), Nothing, 0, Nothing, Nothing) + 'Exit For + End If + + Next + + + + End If + + If dtZNBList.Rows.Count = 0 Then MsgBox("Keine Zinsberechnungsdaten für RK_ID " & RG.RK_ID & " gefunden. Diese Rechnung wird übersprungen.") hatFehler = True @@ -2585,5 +2605,48 @@ Public Class usrcntlFakturierung End Function + Private Sub Button1_Click_3(sender As Object, e As EventArgs) Handles btnSR_zuruecksetzen.Click + Dim rechnungsdatum As Date = CDate(dtRechnungsdatum.Text) + + If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then + + + If vbYes = MsgBox("Soll die Sammelrechnung für den " & rechnungsdatum & " zurückgesetzt werden?" & vbNewLine & "ACHTUNG, das darf nur von Administratoren durchgeführt werden!!!!", vbYesNoCancel) Then + + Dim SQL As New SQL + + '1. VZ zurücksetzen - wenn vorhanden! + SQL.doSQL("UPDATE [VERAG].[dbo].[tblMDM_Zinsberechnung] Set RK_ID = NULL,verrechnet = NULL where RK_ID in (select RK_ID from Rechnungsausgang where cast(RechnungsDatum as date) = '" & rechnungsdatum.ToShortDateString & "' and Firma_ID = 19 and Sammelrechnung = 6 )", "FMZOLL") + + '2. SR löschen + SQL.doSQL("delete from Rechnungsausgang where cast(RechnungsDatum as date) = '" & rechnungsdatum.ToShortDateString & "' and Firma_ID = 19 and Sammelrechnung = 6 ", "FMZOLL") + + '3. Lieferantendaten zurücksetzten + + 'PLOSE + SQL.doSQL("update tblPLOSE_Details set plose_Fakturiert = 0, plose_FakturiertDatum=NULL where isnull(plose_Fakturiert,0) = 1 and cast(plose_FakturiertDatum as Date) >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL") + + 'UTA + SQL.doSQL("UPDATE [tblUTAImportNew] set charged=0,chargedDatetime=NULL where isnull(charged,0) = 1 and chargedDatetime >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL") + + 'IDS + SQL.doSQL("UPDATE [tblIDSTransactionsNew] Set charged = 0 ,chargedDatetime = NULL where isnull(charged,0) = 1 and chargedDatetime >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL") + + 'MSE + SQL.doSQL("UPDATE [tblMSETransactions] Set charged = 0 , chargedDatetime = NULL where isnull(charged,0) = 1 and chargedDatetime >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL") + + 'BANK - Wenn vorhanden + SQL.doSQL("UPDATE [VERAG].[dbo].[tblMDM_Bankspesen] Set RK_ID = NULL,verrechnet = NULL, SR_datum = NULL where verrechnet >= '" & rechnungsdatum.AddDays(1) & "' and SR_datum = '" & rechnungsdatum.ToShortDateString & "'", "FMZOLL") + + + + + + End If + + End If + + + End Sub End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cMDM_Bankspesen.vb b/VERAG_PROG_ALLGEMEIN/Classes/cMDM_Bankspesen.vb new file mode 100644 index 00000000..d4ee08ea --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Classes/cMDM_Bankspesen.vb @@ -0,0 +1,214 @@ + +Imports System.Data.SqlClient +Imports System.Reflection + +Public Class cMDM_Bankspesen + Property id As Integer + Property kundenNr As Object = Nothing + Property umsatzID As Object = Nothing + Property buchungstext As Object = Nothing + Property datum As Object = Nothing + Property IBAN As Object = Nothing + Property BIC As Object = Nothing + Property waehrung As Object = Nothing + Property betrag As Object = Nothing + Property gebuehr As Object = Nothing + Property timestamp As Object = Nothing + Property kontoauszug As Object = Nothing + Property typ As Object = Nothing + Property verrechnet As Object = Nothing + Property RK_ID As Object = Nothing + Property SR_datum As Object = Nothing + + + Public hasEntry = False + + Dim SQL As New SQL + + Sub New(id) + Me.id = id + LOAD() + End Sub + + Sub New(kundennr, datum, typ) + Me.kundenNr = kundennr + Me.datum = datum + Me.typ = typ + LOAD(kundennr, datum, typ) + + End Sub + Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("id", id,, True)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kundenNr", kundenNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("umsatzID", umsatzID)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("buchungstext", buchungstext)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("datum", datum)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("IBAN", IBAN)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BIC", BIC)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("waehrung", waehrung)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("betrag", betrag)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("timestamp", timestamp)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("gebuehr", gebuehr)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("kontoauszug", kontoauszug)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("typ", typ)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("verrechnet", verrechnet)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RK_ID", RK_ID)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("SR_datum", SR_datum)) + + Return list + End Function + + + + Public Function SAVE() As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblMDM_Bankspesen WHERE id=@id) " & + " BEGIN " & getUpdateCmd() & " END " & + " Else " & + " BEGIN " & getInsertCmd() & " END " & + " commit tran " + + Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) + End Function + + Public Sub LOAD() + Try + hasEntry = False + Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblMDM_Bankspesen WHERE id=@id ", conn) + cmd.Parameters.AddWithValue("@id", id) + Dim dr = cmd.ExecuteReader() + If dr.Read Then + For Each li In getParameterList() + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable) + + If dr.Item(li.Text) Is DBNull.Value Then + propInfo.SetValue(Me, Nothing) + Else + propInfo.SetValue(Me, dr.Item(li.Text)) + End If + + Next + hasEntry = True + End If + dr.Close() + End Using + End Using + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub + + Public Sub LOAD(kundennr, BelegNr, typ) + Try + hasEntry = False + Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblMDM_Bankspesen WHERE kundennr=@kundennr and datum=@datum and typ=@typ ", conn) + cmd.Parameters.AddWithValue("@kundennr", kundennr) + cmd.Parameters.AddWithValue("@datum", datum) + cmd.Parameters.AddWithValue("@typ", typ) + Dim dr = cmd.ExecuteReader() + If dr.Read Then + For Each li In getParameterList() + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable) + + If dr.Item(li.Text) Is DBNull.Value Then + propInfo.SetValue(Me, Nothing) + Else + propInfo.SetValue(Me, dr.Item(li.Text)) + End If + + Next + hasEntry = True + End If + dr.Close() + End Using + End Using + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub + + + + Public Function getUpdateCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim str As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + Return (" UPDATE [tblMDM_Bankspesen] SET " & str & " WHERE id=@id ") + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return "" + End Function + + + Public Function getInsertCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + Dim str As String = "" + Dim values As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "]," + values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + values = values.Substring(0, values.Length - 1) 'wg. ',' + Return (" INSERT INTO tblMDM_Bankspesen (" & str & ") VALUES(" & values & ") ") + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return "" + End Function + + + 'Public Shared Function GET_NICHTABGERECHNETE_ZB(ByRef dt As DataTable, KundenNr As Integer) As Boolean + ' Try + ' Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL + + ' Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() + + ' Using cmd As New SqlCommand("SELECT id,belegNr,belegDatum,buchungstext,zahlungsBetrag,zahlungDatum, ueberschreitungInTagen, zinssatz,zinsbetrag, zahlungsperiode_start,zahlungsperiode_ende, faelligkeitsDatum + + ' FROM + ' tblMDM_Zinsberechnung + ' WHERE + ' kundenNr = @KundenNr + ' AND zinsbetrag <> 0 + ' AND verrechnet is null + ' AND left(buchungstext,6) <> 'Zinsen' + ' ORDER BY + ' belegDatum", conn) + + ' cmd.Parameters.AddWithValue("@KundenNr", KundenNr) + + ' Dim dr = cmd.ExecuteReader() + ' dt.Load(dr) + ' 'While dr.Read + ' ' dt.Load(dr) + ' 'End While + ' dr.Close() + + ' End Using + ' End Using + ' Return True + ' Catch ex As Exception + ' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + ' End Try + ' Return False + + 'End Function + +End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRMC.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRMC.vb index b2bde650..4ffd3348 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cRMC.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cRMC.vb @@ -424,14 +424,14 @@ Public Class cRMC End If If dt IsNot Nothing Then - Dim SQLstr = "Select rmc_reNr As RechnungsNr,rmc_reDatum As Rechnungsdatum, Adressen.AdressenNr As KundenNr,Adressen.[Name 1] As Kunde, kde_keineMWSt As keineMWST from [tblRMCImport] INNER JOIN Adressen On WölflKundenNr=[rmc_kdNr] Or weitereWölflKundenNr=[rmc_kdNr] INNER JOIN tblKundenErweitert On AdressenNr = kde_KundenNr where rmc_daId Is null " & sqlTime & sqlAdressenNr & " group by rmc_reNr, Adressen.AdressenNr, Adressen.[Name 1],rmc_reDatum, kde_keineMWSt" + Dim SQLstr = "Select rmc_reNr As RechnungsNr,rmc_reDatum As Rechnungsdatum, Adressen.AdressenNr As KundenNr,Adressen.[Name 1] As Kunde, kde_keineMWSt As keineMWST, rmc_pdfFileName as Dateiname from [tblRMCImport] INNER JOIN Adressen On WölflKundenNr=[rmc_kdNr] Or weitereWölflKundenNr=[rmc_kdNr] INNER JOIN tblKundenErweitert On AdressenNr = kde_KundenNr where rmc_daId Is null " & sqlTime & sqlAdressenNr & " group by rmc_reNr, Adressen.AdressenNr, Adressen.[Name 1],rmc_reDatum, kde_keineMWSt, rmc_pdfFileName" dt = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL") dt_missingInvoices = dt Return dt.Rows.Count Else If getDetailsInDatatable Then - Dim SQLstr = "Select rmc_reNr As RechnungsNr,rmc_reDatum As Rechnungsdatum, Adressen.AdressenNr As KundenNr,Adressen.[Name 1] As Kunde, kde_keineMWSt As keineMWST from [tblRMCImport] INNER JOIN Adressen On WölflKundenNr=[rmc_kdNr] Or weitereWölflKundenNr=[rmc_kdNr] INNER JOIN tblKundenErweitert On AdressenNr = kde_KundenNr where rmc_daId Is null " & sqlTime & sqlAdressenNr + Dim SQLstr = "Select rmc_reNr As RechnungsNr,rmc_reDatum As Rechnungsdatum, Adressen.AdressenNr As KundenNr,Adressen.[Name 1] As Kunde, kde_keineMWSt As keineMWST, rmc_pdfFileName as Dateiname from [tblRMCImport] INNER JOIN Adressen On WölflKundenNr=[rmc_kdNr] Or weitereWölflKundenNr=[rmc_kdNr] INNER JOIN tblKundenErweitert On AdressenNr = kde_KundenNr where rmc_daId Is null " & sqlTime & sqlAdressenNr dt_missingInvoices = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL") Return dt_missingInvoices.Rows.Count Else diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb b/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb index 5e4e55e2..ee9f658f 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cUTA.vb @@ -65,18 +65,18 @@ Public Class cUTA End If If dt IsNot Nothing Then - Dim SQLstr = "Select U.Abrechnungsnummer As Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum As Date) As Rechnungsdatum,A.AdressenNr As KundenNr,A.UTAKundenNr As UTAKundenNr,A.[Name 1] As Kunde,A.LandKz, kde_keineMWSt As keineMWST FROM tblUTAImportNew U INNER JOIN Adressen A On A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert On A.AdressenNr = kde_KundenNr WHERE U.daId Is NULL " & sqlTime & sqlAdressenNr & " AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum" + Dim SQLstr = "Select U.Abrechnungsnummer As Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum As Date) As Rechnungsdatum,A.AdressenNr As KundenNr,A.UTAKundenNr As UTAKundenNr,A.[Name 1] As Kunde,A.LandKz, kde_keineMWSt As keineMWST,'AP' + cast(A.UTAKundenNr as varchar) + '_' + + FORMAT( U.Abrechnungsnummer,'0') + '_' + FORMAT(U.Rechnungsnummer_pro_Lieferland,'0') + '_'+ cast(cast(U.Rechnungsdatum as date) as varchar) + '_'+ cast(U.Lieferland as varchar) +'*' as Suchbegriff FROM tblUTAImportNew U INNER JOIN Adressen A On A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert On A.AdressenNr = kde_KundenNr WHERE U.daId Is NULL " & sqlTime & sqlAdressenNr & " AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum" dt = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL") dt_missingInvoices = dt Return dt.Rows.Count Else If getDetailsInDatatable Then - Dim SQLstr = "Select U.Abrechnungsnummer As Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum As Date) As Rechnungsdatum,A.AdressenNr As KundenNr,A.UTAKundenNr As UTAKundenNr,A.[Name 1] As Kunde,A.LandKz, kde_keineMWSt As keineMWST FROM tblUTAImportNew U INNER JOIN Adressen A On A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert On A.AdressenNr = kde_KundenNr WHERE U.daId Is NULL " & sqlTime & sqlAdressenNr & " AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum" + Dim SQLstr = "Select U.Abrechnungsnummer As Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum As Date) As Rechnungsdatum,A.AdressenNr As KundenNr,A.UTAKundenNr As UTAKundenNr,A.[Name 1] As Kunde,A.LandKz, kde_keineMWSt As keineMWST,'AP' + cast(A.UTAKundenNr as varchar) + '_' + FORMAT( U.Abrechnungsnummer,'0') + '_' + FORMAT(U.Rechnungsnummer_pro_Lieferland,'0') + '_'+ cast(cast(U.Rechnungsdatum as date) as varchar) + '_'+ cast(U.Lieferland as varchar) +'*' as Suchbegriff FROM tblUTAImportNew U INNER JOIN Adressen A On A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert On A.AdressenNr = kde_KundenNr WHERE U.daId Is NULL " & sqlTime & sqlAdressenNr & " AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum" dt_missingInvoices = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL") Return dt_missingInvoices.Rows.Count Else - Dim SQLstr = "Select U.Abrechnungsnummer As Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum As Date) As Rechnungsdatum,A.AdressenNr As KundenNr,A.UTAKundenNr As UTAKundenNr,A.[Name 1] As Kunde,A.LandKz, kde_keineMWSt As keineMWST FROM tblUTAImportNew U INNER JOIN Adressen A On A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert On A.AdressenNr = kde_KundenNr WHERE U.daId Is NULL " & sqlTime & sqlAdressenNr & " AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum" + Dim SQLstr = "Select U.Abrechnungsnummer As Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,CAST(U.Rechnungsdatum As Date) As Rechnungsdatum,A.AdressenNr As KundenNr,A.UTAKundenNr as UTAKundenNr,A.[Name 1] As Kunde,A.LandKz, kde_keineMWSt As keineMWST,'AP' + cast(A.UTAKundenNr as varchar) + '_' + FORMAT( U.Abrechnungsnummer,'0') + '_' + FORMAT(U.Rechnungsnummer_pro_Lieferland,'0') + '_'+ cast(cast(U.Rechnungsdatum as date) as varchar) + '_'+ cast(U.Lieferland as varchar) +'*' as Suchbegriff FROM tblUTAImportNew U INNER JOIN Adressen A On A.UTAKundenNr = U.Kundennummer INNER JOIN tblKundenErweitert On A.AdressenNr = kde_KundenNr WHERE U.daId Is NULL " & sqlTime & sqlAdressenNr & " AND NOT (A.LandKz = 'RO' AND U.Lieferland = 'ROM') GROUP BY U.Abrechnungsnummer,U.Rechnungsnummer_pro_Lieferland,U.Lieferland,U.Rechnungsdatum,A.AdressenNr,A.UTAKundenNr ,A.[Name 1],A.LandKz, kde_keineMWSt ORDER BY U.Rechnungsdatum" dt_missingInvoices = (New VERAG_PROG_ALLGEMEIN.SQL).loadDgvBySql(SQLstr, "FMZOLL") Return dt_missingInvoices.Rows.Count diff --git a/VERAG_PROG_ALLGEMEIN/My Project/Settings.Designer.vb b/VERAG_PROG_ALLGEMEIN/My Project/Settings.Designer.vb index e9ddc492..92f95114 100644 --- a/VERAG_PROG_ALLGEMEIN/My Project/Settings.Designer.vb +++ b/VERAG_PROG_ALLGEMEIN/My Project/Settings.Designer.vb @@ -94,7 +94,7 @@ Namespace My _ + Global.System.Configuration.DefaultSettingValueAttribute("https://finanzonline.bmf.gv.at:443/fonuid/ws/uidAbfrage/")> _ Public ReadOnly Property VERAG_PROG_ALLGEMEIN_at_gv_bmf_finanzonline_uidAbfrageService() As String Get Return CType(Me("VERAG_PROG_ALLGEMEIN_at_gv_bmf_finanzonline_uidAbfrageService"),String) @@ -104,7 +104,7 @@ Namespace My _ + Global.System.Configuration.DefaultSettingValueAttribute("https://finanzonline.bmf.gv.at:443/fonws/ws/session/")> _ Public ReadOnly Property VERAG_PROG_ALLGEMEIN_at_gv_bmf_finanzonline_session_sessionService() As String Get Return CType(Me("VERAG_PROG_ALLGEMEIN_at_gv_bmf_finanzonline_session_sessionService"),String) diff --git a/VERAG_PROG_ALLGEMEIN/My Project/Settings.settings b/VERAG_PROG_ALLGEMEIN/My Project/Settings.settings index 26c5f16b..734e07ac 100644 --- a/VERAG_PROG_ALLGEMEIN/My Project/Settings.settings +++ b/VERAG_PROG_ALLGEMEIN/My Project/Settings.settings @@ -12,10 +12,10 @@ Data Source=SQLGUIDE01.verag.ost.dmn;Initial Catalog=DISPO;Integrated Security=false;User ID=AppUser;Password=yp/THDd?xM+pZ$;TransparentNetworkIPResolution=False;Pooling=true;Min Pool Size=20;Max Pool Size=250 - https://finanzonline.bmf.gv.at/fon/ws/uidAbfrage/ + https://finanzonline.bmf.gv.at:443/fonuid/ws/uidAbfrage/ - https://finanzonline.bmf.gv.at:443/fonws/ws/session + https://finanzonline.bmf.gv.at:443/fonws/ws/session/ diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/MSE/cMSEAPI.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/MSE/cMSEAPI.vb index 777b0094..22e7f626 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/MSE/cMSEAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/MSE/cMSEAPI.vb @@ -1103,7 +1103,7 @@ Public Class cMSEAPI End If - If Not inv.archiv Then inv.SAVE() 'bereits archiverte REchnungen nicht überschreiben!!!! + If Not inv.archiv AndAlso inv.name = "20260815_18273_FR_VAT.pdf" Then inv.SAVE() 'bereits archiverte REchnungen nicht überschreiben!!!! End If j = j + 1 diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb index ee804c1b..6c99a0b8 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb @@ -100,7 +100,7 @@ Public Class cTimasAPI End Function - Public Function getTimeSaldo(maid As Integer, ByRef info As String, kindofbalance As String, ByRef Optional isEndpointRunning As Boolean = True, Optional datetimeformat As String = "seconds") As String + Public Function getTimeSaldo(maid As Integer, ByRef info As String, kindofbalance As String, ByRef Optional isEndpointRunning As Boolean = True, Optional datetimeformat As String = "seconds", Optional getRawData As Boolean = False, Optional timeStamp_deadline As String = "") As String Try Dim returnText As String = "" Dim failureText As String = "" @@ -118,14 +118,21 @@ Public Class cTimasAPI Dim success As Boolean rest.ClearAllQueryParams() - - rest.IdleTimeoutMs = 5000 rest.AddQueryParam("format", datetimeformat) + + If timeStamp_deadline <> "" AndAlso IsDate(timeStamp_deadline) Then + rest.AddQueryParam("stamp", CDate(timeStamp_deadline).ToString("yyyy-MM-dd")) + rest.IdleTimeoutMs = 300000 + Else + rest.IdleTimeoutMs = 30000 'defualt + + End If + Dim responseJson As String = rest.FullRequestNoBody("GET", "/rest/web-api/employees/" & maid & "/balance") If (rest.LastMethodSuccess <> True) Then Debug.WriteLine(rest.LastErrorText) isEndpointRunning = rest.LastMethodSuccess - rest.IdleTimeoutMs = 30000 'defualt + Return timesaldo End If @@ -157,6 +164,9 @@ Public Class cTimasAPI Case "seconds" saldoAsDouble = CDbl(saldo) saldoAsDouble = Math.Round(saldoAsDouble / 3600, 2) + + If getRawData Then Return saldoAsDouble.ToString + infoBuilder.Append(saldoAsDouble) infoBuilder.Append(" h") info = infoBuilder.ToString() @@ -164,12 +174,18 @@ Public Class cTimasAPI Case "minutes" saldoAsDouble = CDbl(saldo) saldoAsDouble = Math.Round(saldoAsDouble / 60, 2) + + If getRawData Then Return saldoAsDouble.ToString + infoBuilder.Append(saldoAsDouble) infoBuilder.Append(" min") info = infoBuilder.ToString() timesaldo = saldoAsDouble.ToString Case "time" + + If getRawData Then Return saldo.ToString + infoBuilder.Append(saldo) infoBuilder.Append(" h") info = infoBuilder.ToString() @@ -312,7 +328,7 @@ Public Class cTimasAPI success = json.UpdateString("lastname", mitarbeiter.mit_nname) success = json.UpdateString("gender", IIf(mitarbeiter.mit_geschlecht = "m", "male", "female")) success = json.UpdateInt("card", mitarbeiter.mit_terminalTimasId) - success = json.UpdateString("info", mitarbeiter.mit_firma & " - " & mitarbeiter.mit_abteilung) + success = json.UpdateString("info", ClientNr & " - " & mitarbeiter.mit_abteilung) If mitarbeiter.mit_gebdat <> "" And IsDate(mitarbeiter.mit_gebdat) Then success = json.UpdateString("birthday", CDate(mitarbeiter.mit_gebdat).ToString("yyyy-MM-dd")) End If @@ -992,7 +1008,7 @@ Public Class cTimasAPI End Function - Public Function getEmployeeList(ByRef dt As DataTable) As String + Public Function getEmployeeList(ByRef dt As DataTable, TimasMandant As String) As String Dim failureText As String = "" @@ -1003,6 +1019,10 @@ Public Class cTimasAPI End If + If TimasMandant <> "" Then + rest.AddQueryParam("employeemandants", TimasMandant) + End If + Dim responseJson As String = rest.FullRequestNoBody("GET", "/rest/web-api/employees/") If (rest.LastMethodSuccess <> True) Then Debug.WriteLine(rest.LastErrorText) @@ -1039,7 +1059,7 @@ Public Class cTimasAPI dt.Columns.Add("Geschlecht", GetType(String)) dt.Columns.Add("Ausweis-Nr", GetType(Integer)) dt.Columns.Add("Info", GetType(String)) - 'dt.Columns.Add("AVISO-ID", GetType(Integer)) + dt.Columns.Add("Mandant", GetType(String)) End If dt.Clear() diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb index 91a9b6e3..9731213b 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb @@ -41,7 +41,7 @@ Public Class cSyska_Interface Left Join tblKundenErweitert ON KundenNr=kde_KundenNr Left Join [Länderverzeichnis für die Außenhandelsstatistik] as St ON St.LandKz=Adressen.LandKz Left Join Währungstabelle ON St.LandNr = Währungstabelle.Währungsschlüssel - WHERE FiBuSchnittstelle = 0 And Auswahl ='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' Order by [Konto-Nr]" + WHERE FiBuSchnittstelle = 1 And Auswahl ='A' AND FiBuSchnittstelleNr='" & FiBuSchnittstelleNr & "' Order by [Konto-Nr]" Return SQL.loadDgvBySql(SQLString, "FMZOLL") End Function diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj index 5390ae19..cf97425c 100644 --- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj +++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj @@ -419,6 +419,7 @@ +