FaktMail, MDM-Vollmachten, MDM-Auswertung

This commit is contained in:
2025-01-14 18:21:58 +01:00
parent 8616ce1735
commit 481ab094de
17 changed files with 989 additions and 147 deletions

View File

@@ -1,14 +1,8 @@
Imports System.Data.OleDb
Imports System.IO
Imports Challenge
Imports com.sun.org.glassfish.external.probe.provider.annotations
Imports GrapeCity.ActiveReports.Export.Pdf.Section.Signing
Imports itextsharp.text.pdf
Imports MDM_Worker
Imports sun.swing
Imports TAlex.WPF.Helpers
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
Public Class frmMDMDatenverarbetiung
@@ -3180,7 +3174,7 @@ Public Class frmMDMDatenverarbetiung
End Select
Dim GJ = Now.Year
If IsDate(abrechnugsdatum) Then GJ = cRKSV.getGJ(abrechnugsdatum, 15)
If IsDate(abrechnugsdatum) Then GJ = cRKSV.getGJ(abrechnugsdatum, 19)
SPEDBUCH.AbfertigungsNr = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(SPEDBUCH.FilialenNr, GJ)
SPEDBUCH.NewUNTER_NR()
@@ -3366,7 +3360,7 @@ Public Class frmMDMDatenverarbetiung
'End Function
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Lieferant As String, Optional PLOSEKundenNr As String = "", Optional von As Date = Nothing, Optional bis As Date = Nothing, Optional RE As cRechnungsausgang = Nothing)
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Lieferant As String, Optional PLOSEKundenNr As String = "", Optional von As Date = Nothing, Optional bis As Date = Nothing, Optional ByRef RE As cRechnungsausgang = Nothing)
Try
If KdNr = "" Then Return False
@@ -3388,6 +3382,8 @@ Public Class frmMDMDatenverarbetiung
End Select
RG.Firma_ID = 19 'RG.Firma_ID = 15
RG.FilialenNr = SPEDBUCH.FilialenNr
RG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr
RG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr
@@ -3432,18 +3428,16 @@ Public Class frmMDMDatenverarbetiung
RG.Kreditaufwendungen_Proz = KD.Kreditaufwendungen
RG.RechnungSprache = "DE"
RG.Anlage_2 = ""
RG.Anlage_3 = ""
RG.Anlage_4 = ""
RG.Anlage_5 = ""
RG.Anlage_6 = ""
RG.Text = ""
RG.EMailRechnungstext = Nothing ' ""
RG.Firma_ID = 15
RG.Nettozahlungsziel = KD.Zahlungsziel
RG.SteuerpflichtigerGesamtbetrag = 0
@@ -3452,14 +3446,14 @@ Public Class frmMDMDatenverarbetiung
RG.[Vorkosten] = 0
RG.[Erlös] = 0
RG.[Buchungsjahr] = 0
'RG.[Buchungsjahr] = 0
RG.[Währungscode] = "EUR"
RG.ReErfZeitstempel = Now
RG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
RG.Buchungsjahr = cRKSV.getGJ(RG.RechnungsDatum, RG.Firma_ID)
'RG.Buchungsjahr = cRKSV.getGJ(RG.RechnungsDatum, RG.Firma_ID)
Dim sqlstr As String = ""
Dim useNettogesamtbetrag As Boolean = False
@@ -4089,7 +4083,6 @@ Public Class frmMDMDatenverarbetiung
MsgBox("Es sind " & nichtAufAbgerechnetGesetzteTransactionen & " Transaktionen in der Datenbank, die noch nicht auf VERRECHNET gesetzt sind!" & vbNewLine & "Diese Transaktionen (von Rechnung " & DateTimePicker2.Text & ") müssen aktualisiert werden. (bitte an Administrator wenden)." & IIf(hint <> "", vbNewLine & hint, ""))
End If
'das muss die letzte Prüfung sein, da uU eine Transaktion fehlen kann!
Dim fehlendeTransactionen As Integer = 0
@@ -4098,10 +4091,10 @@ Public Class frmMDMDatenverarbetiung
If fehlendeTransactionen > 0 Then
pruefData_MSE = False
Dim hint As String = ""
If fehlendeTransactionen > 500 Then
hint = "Batch-Nr: "
hint &= SQL.getValueTxtBySql("select distinct(trans.batch_seq_nr) FROM [VERAG].[dbo].[tblMSESettlements] as settle INNER JOIN [VERAG].[dbo].[tblMSETransactions] as trans on trans.transaction_id = settle.transaction_id where [invoice_date] = '" & DateTimePicker2.Text & "' AND trans.[transaction_id] not in (select [transaction_id] from [VERAG].[dbo].[tblMSETransactions]) ", "FMZOLL")
End If
'If fehlendeTransactionen > 500 Then
' hint = "Transaction-IDs: "
' hint &= SQL.getValueTxtBySql("select top(10) transaction_id FROM [VERAG].[dbo].[tblMSESettlements] where [invoice_date] = '" & DateTimePicker2.Text & "' AND [transaction_id] not in (select [transaction_id] from [VERAG].[dbo].[tblMSETransactions]) ", "FMZOLL")
'End If
MsgBox("Es fehlen " & fehlendeTransactionen & " Transaktionen in der Datenbank!" & vbNewLine & "Diese Transaktionen (von Rechnung " & DateTimePicker2.Text & ") müssen nachgeladen werden (bitte an Administrator wenden)." & IIf(hint <> "", vbNewLine & hint, ""))
End If
@@ -4154,8 +4147,6 @@ Public Class frmMDMDatenverarbetiung
Return False
End If
End If
Dim OBONumberOderVRNumberfehlern As Integer = 0
@@ -4854,7 +4845,7 @@ RabattBerechnen:
ANH.dsId = CInt(DS.da_id)
ANH.Bezeichnung = DS.da_name
RECHNUNG.ANHAENGE.Add(ANH)
Return RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID)
Return RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID, False)
Else
Return False
End If

View File

@@ -131,8 +131,19 @@ Partial Class usrCntlMDMAuswertungen
Me.Label59 = New System.Windows.Forms.Label()
Me.Button17 = New System.Windows.Forms.Button()
Me.TabPage2 = New System.Windows.Forms.TabPage()
Me.Label61 = New System.Windows.Forms.Label()
Me.GroupBox19 = New System.Windows.Forms.GroupBox()
Me.Label62 = New System.Windows.Forms.Label()
Me.Button18 = New System.Windows.Forms.Button()
Me.Label44 = New System.Windows.Forms.Label()
Me.GroupBox13 = New System.Windows.Forms.GroupBox()
Me.cboSachbearbeiter = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Label67 = New System.Windows.Forms.Label()
Me.dtRechnungsdatum = New System.Windows.Forms.DateTimePicker()
Me.Label66 = New System.Windows.Forms.Label()
Me.Label65 = New System.Windows.Forms.Label()
Me.Label64 = New System.Windows.Forms.Label()
Me.Label63 = New System.Windows.Forms.Label()
Me.Label45 = New System.Windows.Forms.Label()
Me.Button14 = New System.Windows.Forms.Button()
Me.Label35 = New System.Windows.Forms.Label()
@@ -203,6 +214,7 @@ Partial Class usrCntlMDMAuswertungen
Me.tbIDS.SuspendLayout()
Me.GroupBox18.SuspendLayout()
Me.TabPage2.SuspendLayout()
Me.GroupBox19.SuspendLayout()
Me.GroupBox13.SuspendLayout()
Me.GroupBox10.SuspendLayout()
Me.tbPLOSE.SuspendLayout()
@@ -1431,6 +1443,8 @@ Partial Class usrCntlMDMAuswertungen
'
'TabPage2
'
Me.TabPage2.Controls.Add(Me.Label61)
Me.TabPage2.Controls.Add(Me.GroupBox19)
Me.TabPage2.Controls.Add(Me.Label44)
Me.TabPage2.Controls.Add(Me.GroupBox13)
Me.TabPage2.Controls.Add(Me.Label35)
@@ -1443,6 +1457,47 @@ Partial Class usrCntlMDMAuswertungen
Me.TabPage2.Text = "Organisation"
Me.TabPage2.UseVisualStyleBackColor = True
'
'Label61
'
Me.Label61.AutoSize = True
Me.Label61.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label61.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Me.Label61.Location = New System.Drawing.Point(21, 329)
Me.Label61.Name = "Label61"
Me.Label61.Size = New System.Drawing.Size(310, 17)
Me.Label61.TabIndex = 13
Me.Label61.Text = "MDM Sammelabrechnung - Mautberichte"
'
'GroupBox19
'
Me.GroupBox19.Controls.Add(Me.Label62)
Me.GroupBox19.Controls.Add(Me.Button18)
Me.GroupBox19.Location = New System.Drawing.Point(20, 340)
Me.GroupBox19.Name = "GroupBox19"
Me.GroupBox19.Size = New System.Drawing.Size(697, 82)
Me.GroupBox19.TabIndex = 12
Me.GroupBox19.TabStop = False
'
'Label62
'
Me.Label62.AutoSize = True
Me.Label62.Location = New System.Drawing.Point(144, 19)
Me.Label62.Name = "Label62"
Me.Label62.Size = New System.Drawing.Size(181, 13)
Me.Label62.TabIndex = 5
Me.Label62.Text = "Mautsummenberichte (als CSV, PDF)"
'
'Button18
'
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.Location = New System.Drawing.Point(6, 19)
Me.Button18.Name = "Button18"
Me.Button18.Size = New System.Drawing.Size(121, 46)
Me.Button18.TabIndex = 4
Me.Button18.Text = "Mautbericht"
Me.Button18.UseVisualStyleBackColor = True
'
'Label44
'
Me.Label44.AutoSize = True
@@ -1450,35 +1505,103 @@ Partial Class usrCntlMDMAuswertungen
Me.Label44.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Me.Label44.Location = New System.Drawing.Point(19, 143)
Me.Label44.Name = "Label44"
Me.Label44.Size = New System.Drawing.Size(408, 17)
Me.Label44.Size = New System.Drawing.Size(436, 17)
Me.Label44.TabIndex = 11
Me.Label44.Text = "MDM Sammelabrechnung - Sachbearbeiter = Kriegner"
Me.Label44.Text = "MDM Sammelabrechnung - MDM Sammelrechnung (Art=6)"
'
'GroupBox13
'
Me.GroupBox13.Controls.Add(Me.cboSachbearbeiter)
Me.GroupBox13.Controls.Add(Me.Label67)
Me.GroupBox13.Controls.Add(Me.dtRechnungsdatum)
Me.GroupBox13.Controls.Add(Me.Label66)
Me.GroupBox13.Controls.Add(Me.Label65)
Me.GroupBox13.Controls.Add(Me.Label64)
Me.GroupBox13.Controls.Add(Me.Label63)
Me.GroupBox13.Controls.Add(Me.Label45)
Me.GroupBox13.Controls.Add(Me.Button14)
Me.GroupBox13.Location = New System.Drawing.Point(18, 154)
Me.GroupBox13.Name = "GroupBox13"
Me.GroupBox13.Size = New System.Drawing.Size(697, 82)
Me.GroupBox13.Size = New System.Drawing.Size(697, 153)
Me.GroupBox13.TabIndex = 10
Me.GroupBox13.TabStop = False
'
'cboSachbearbeiter
'
Me.cboSachbearbeiter._allowedValuesFreiText = Nothing
Me.cboSachbearbeiter._allowFreiText = False
Me.cboSachbearbeiter._value = ""
Me.cboSachbearbeiter.FormattingEnabled = True
Me.cboSachbearbeiter.Location = New System.Drawing.Point(385, 18)
Me.cboSachbearbeiter.Name = "cboSachbearbeiter"
Me.cboSachbearbeiter.Size = New System.Drawing.Size(152, 21)
Me.cboSachbearbeiter.TabIndex = 29
'
'Label67
'
Me.Label67.AutoSize = True
Me.Label67.Location = New System.Drawing.Point(297, 26)
Me.Label67.Name = "Label67"
Me.Label67.Size = New System.Drawing.Size(82, 13)
Me.Label67.TabIndex = 28
Me.Label67.Text = "Sachbearbeiter:"
'
'dtRechnungsdatum
'
Me.dtRechnungsdatum.Format = System.Windows.Forms.DateTimePickerFormat.[Short]
Me.dtRechnungsdatum.Location = New System.Drawing.Point(147, 19)
Me.dtRechnungsdatum.Name = "dtRechnungsdatum"
Me.dtRechnungsdatum.Size = New System.Drawing.Size(103, 20)
Me.dtRechnungsdatum.TabIndex = 26
'
'Label66
'
Me.Label66.AutoSize = True
Me.Label66.Location = New System.Drawing.Point(6, 25)
Me.Label66.Name = "Label66"
Me.Label66.Size = New System.Drawing.Size(94, 13)
Me.Label66.TabIndex = 27
Me.Label66.Text = "Rechnungsdatum:"
'
'Label65
'
Me.Label65.Location = New System.Drawing.Point(144, 110)
Me.Label65.Name = "Label65"
Me.Label65.Size = New System.Drawing.Size(541, 17)
Me.Label65.TabIndex = 8
Me.Label65.Text = "4. Porto/Papiere und Banküberweisung/Bankspesen berechnen"
'
'Label64
'
Me.Label64.Location = New System.Drawing.Point(144, 93)
Me.Label64.Name = "Label64"
Me.Label64.Size = New System.Drawing.Size(541, 17)
Me.Label64.TabIndex = 7
Me.Label64.Text = "3. Rechnungstext im RK eintragen"
'
'Label63
'
Me.Label63.Location = New System.Drawing.Point(144, 78)
Me.Label63.Name = "Label63"
Me.Label63.Size = New System.Drawing.Size(541, 17)
Me.Label63.TabIndex = 6
Me.Label63.Text = "2. Rechnung oder Gutschrift im RK eintragen, abhängig vom Sammelrechnungsbetrag (" &
"+/-)"
'
'Label45
'
Me.Label45.AutoSize = True
Me.Label45.Location = New System.Drawing.Point(144, 19)
Me.Label45.Location = New System.Drawing.Point(144, 61)
Me.Label45.Name = "Label45"
Me.Label45.Size = New System.Drawing.Size(407, 26)
Me.Label45.Size = New System.Drawing.Size(541, 17)
Me.Label45.TabIndex = 5
Me.Label45.Text = "Bei MDM Sammelrechnung (Art=6) werden alle Einträge auf ""KRIEGNER"" geändert, " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "da" &
"mit die FMZOLL Abrechnung die entsprechnde Zuweisung findet." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10)
Me.Label45.Text = "1. Einträge auf Sachbearbeiter ändern, damit die FMZOLL Abrechnung die entsprechn" &
"de Zuweisung findet." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10)
'
'Button14
'
Me.Button14.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button14.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.Button14.Location = New System.Drawing.Point(6, 19)
Me.Button14.Location = New System.Drawing.Point(9, 60)
Me.Button14.Name = "Button14"
Me.Button14.Size = New System.Drawing.Size(121, 49)
Me.Button14.TabIndex = 4
@@ -2023,6 +2146,8 @@ Partial Class usrCntlMDMAuswertungen
Me.GroupBox18.PerformLayout()
Me.TabPage2.ResumeLayout(False)
Me.TabPage2.PerformLayout()
Me.GroupBox19.ResumeLayout(False)
Me.GroupBox19.PerformLayout()
Me.GroupBox13.ResumeLayout(False)
Me.GroupBox13.PerformLayout()
Me.GroupBox10.ResumeLayout(False)
@@ -2208,4 +2333,15 @@ Partial Class usrCntlMDMAuswertungen
Friend WithEvents TextBox2 As TextBox
Friend WithEvents Label59 As Label
Friend WithEvents Button17 As Button
Friend WithEvents Label61 As Label
Friend WithEvents GroupBox19 As GroupBox
Friend WithEvents Label62 As Label
Friend WithEvents Button18 As Button
Friend WithEvents Label63 As Label
Friend WithEvents Label64 As Label
Friend WithEvents Label65 As Label
Friend WithEvents dtRechnungsdatum As DateTimePicker
Friend WithEvents Label66 As Label
Friend WithEvents Label67 As Label
Friend WithEvents cboSachbearbeiter As VERAG_PROG_ALLGEMEIN.MyComboBox
End Class

View File

@@ -1,13 +1,9 @@
Imports Microsoft.Office.Interop.Outlook
Imports Microsoft.Office.Interop
Imports Microsoft.VisualBasic.FileIO
Imports System.Data.SqlClient
Imports System.Reflection
Imports VERAG_PROG_ALLGEMEIN
Imports System.Security.Cryptography.Xml
Imports System.Data.SqlClient
Imports System.IO
Imports Tamir.SharpSsh.jsch
Imports sun.swing
Imports Microsoft.Office.Interop.Outlook
Imports Microsoft.VisualBasic.FileIO
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlMDMAuswertungen
@@ -62,6 +58,8 @@ Public Class usrCntlMDMAuswertungen
cboIDSDateType.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Leistungsdatum", "LDat"))
cboIDSDateType.changeItem("RGDat")
cboSachbearbeiter.fillWithSQL("select distinct(sachbearbeiter) from Rechnungsausgang where Sammelrechnung=6 and Firma_ID=19", False, "FMZOLL", True)
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Auswertungen_IDS", Me.FindForm) Then
tbcntr.TabPages.Remove(tbIDS)
End If
@@ -974,9 +972,549 @@ Public Class usrCntlMDMAuswertungen
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
If SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='KRIEGNER' where Sammelrechnung=6 and Firma_ID=19 and Sachbearbeiter<>'KRIEGNER' and Abfertigungsdatum> DATEADD(month,-3, GETDATE())", "FMZOLL") Then
MsgBox("Update erfolgreich.")
Dim ok As Boolean = True
Dim Sachbearbeiter = cboSachbearbeiter._value
Dim varText As String = ""
Dim varNettozahlungsziel As Integer = 0
Dim strFälligkeitsdatum As String
Dim strZahlbar As String
Dim rechnungsdatum As Date = CDate(dtRechnungsdatum.Text)
If rechnungsdatum > Today() Then
MsgBox("Rechnungsdatum liegt in der Zukunft, nicht möglich")
Exit Sub
End If
If Sachbearbeiter = "" Then
MsgBox("Sachbearbeiter auswählen!")
Exit Sub
End If
'---------------DONE
' ' Sachbearbeiter im RK eintragen.
'140 Call SysCmd(acSysCmdSetStatus, "Sachbearbeiter im RK eintragen...")
'150 Call ReDruSchnSachbearbeiter
'Update [Rechnungsausgang] SET [Sachbearbeiter] = @Sachbearbeiter WHERE([Firma_ID] = 1 Or [Firma_ID] = 15) And [Status] = 0 And [Sammelrechnung] = 6 And [Sachbearbeiter] <> @Sachbearbeiter And (SteuerpflichtigerGesamtbetrag <> 0 Or SteuerfreierGesamtbetrag <> 0);
'---------------DONE
' ' Firma_ID im RK eintragen.
'180 Call SysCmd(acSysCmdSetStatus, "Firma_ID im RK eintragen...")
'190 Call ReDruSchnFirma_ID
'Update [Rechnungsausgang] SET [Firma_ID] = @Firma_ID WHERE [Firma_ID] <> @Firma_ID And [Status] = 0 And [Sammelrechnung] = 6 And [Sachbearbeiter] = @Sachbearbeiter And (SteuerpflichtigerGesamtbetrag <> 0 Or SteuerfreierGesamtbetrag <> 0);
' ' Rechnung oder Gutschrift im RK eintragen.
'220 Call SysCmd(acSysCmdSetStatus, "Re/Gu im RK eintragen...")
'230 Call ReDruSumReGu
'---------------DONE
' ' Rechnungstext im RK eintragen.
'260 Call SysCmd(acSysCmdSetStatus, "Text im RK eintragen...")
'270 Call Rechnungstext
'---------------DONE
' ' Porto/Papiere berechnen.
'300 Call SysCmd(acSysCmdSetStatus, "Porto/Papiere berechnen...")
'310 Call ReDruSchnPP
'---------------DONE
' ' Banküberweisung/Bankspesen berechnen
'340 Call SysCmd(acSysCmdSetStatus, "Banküberweisung/Bankspesen berechnen...")
'350 Call ReDruSchnBB
' ' Druckinformationen im RK eintragen----- ALTER..........
'380 Call SysCmd(acSysCmdSetStatus, "Druckinformationen im RK eintragen...")
'390 varDatumZeit = Now 'Druckdatum/Uhrzeit merken.
' ' Parameter übergeben: Firma_ID, Status, Sammelrechnung, Sachbearbeiter, Buchungsjahr, Rechnungsdatum, DruckDatumZeit.
'400 strParameter = ParameterBereitstellen(Me![Firma_ID], 0, 6, Me![fldSachbearbeiter], Year(Me!fldRechnungsDatum), Me![fldRechnungsDatum], varDatumZeit)
'410 Set qdf = dbs.CreateQueryDef("")
ok = SQL.doSQL("update [Rechnungsausgang] set Sachbearbeiter='" & Sachbearbeiter & "' where Sammelrechnung=6 and Firma_ID=19 and Sachbearbeiter<>'" & Sachbearbeiter & "' and Abfertigungsdatum = '" & dtRechnungsdatum.Value & "'", "FMZOLL")
Exit Sub
If Not ok Then MsgBox("Fehler") : Exit Sub
Dim dtREGU As DataTable = SQL.loadDgvBySql("SELECT [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], isnull([Steuersatz %],0) as [Steuersatz %], cast([Lastschrift] as bit) as Lastschrift, Sum([SteuerpflichtigerGesamtbetrag]+[SteuerfreierGesamtbetrag]) AS Sammelrechnungsbetrag
FROM Rechnungsausgang
WHERE [Status] = 0 AND [Sammelrechnung] = 6 AND [Sachbearbeiter] = '" & Sachbearbeiter & "' AND ([SteuerpflichtigerGesamtbetrag] <> 0 OR [SteuerfreierGesamtbetrag] <> 0) AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
GROUP BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift]", "FMZOLL")
'RECHNUNG ODER GUTSCHRIFT
If dtREGU.Rows.Count > 0 Then
For Each r In dtREGU.Rows
Dim BelegartenNr As Integer
Dim BelegartenKz As String
Dim BelegartenBez As String
Dim Vorzeichen As String
If r("Sammelrechnungsbetrag") >= 0 Then
BelegartenNr = 70
BelegartenKz = "AR"
BelegartenBez = "Rechnung"
Vorzeichen = "+"
Else
BelegartenNr = 71
BelegartenKz = "AG"
BelegartenBez = "Gutschrift"
Vorzeichen = "-"
End If
Dim steuersatz As Double = Math.Floor(r("Steuersatz %"))
ok = SQL.doSQL("UPDATE [Rechnungsausgang] SET [BelegartenNr] = " & BelegartenNr & ", [BelegartenKz] = '" & BelegartenKz & "' , [BelegartenBez] = '" & BelegartenBez & "' , [Vorzeichen] = '" & Vorzeichen & "'
WHERE [Firma_ID] = 19 AND [Status] = 0 AND [Sammelrechnung] = 6 AND [Sachbearbeiter] = '" & Sachbearbeiter & "' AND [RechnungsKundenNr] = " & r("RechnungsKundenNr") & " AND [Währungscode] = '" & r("Währungscode") & "' AND [Steuersatz %] = " & steuersatz & " AND [Lastschrift] = " & IIf(r("Lastschrift"), 1, 0) & "AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'", "FMZOLL")
If Not ok Then MsgBox("Rechnungsdruck wird abgebrochen." & vbCrLf & "Rechnungen/Gutschriften nicht gefunden.") : Exit Sub
Next
End If
Dim dtReText As DataTable = SQL.loadDgvBySql("SELECT [Firma_ID], [Status], [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 [Status] = 0 AND [Sammelrechnung] = 6 AND [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")
'Rechnungstext im RK eintragen
If dtReText.Rows.Count > 0 Then
For Each r In dtReText.Rows
Select Case r("BelegartenNr")
Case 70 'RECHNUNG
If Not r("Vorkasse") Then
If r("Lastschrift") Then
varText = varText & "Der Rechnungsbetrag wurde durch erteilten Abbuchungsauftrag eingezogen." & vbCrLf
Else
If Not IsDBNull(r("RechnungsKundenNr")) Then
'Zahlungsziel aus Kundenstamm.
Dim ZZ = SQL.getValueTxtBySql("SELECT Kunden.Zahlungsziel from Kunden WHERE Kunden.KundenNr=" & r("RechnungsKundenNr") & " AND Kunden.Zahlungsziel Is Not Null", "FMZOLL")
If ZZ <> "" AndAlso IsNumeric(ZZ) Then
varNettozahlungsziel = ZZ
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
'Zahlungsziel aus Offertenstamm.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(r("OffertenNr")) Then
Dim ZZOffert = SQL.getValueTxtBySql("SELECT Offertenstamm.Zahlungsziel FROM Offertenstamm WHERE Offertenstamm.OffertenNr = " & r("OffertenNr") & " AND Offertenstamm.Zahlungsziel IS NOT NULL", "FMZOLL")
If ZZOffert <> "" AndAlso IsNumeric(ZZOffert) Then
varNettozahlungsziel = ZZOffert
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
End If
'Zahlungsziel ermitteln.
If strFälligkeitsdatum = "" Then
If Not IsDBNull(r("RK_ID")) Then
'Zahlungsziel bei Kreditaufwendungen.
Dim ZZRKID = SQL.getValueTxtBySql("Select Case [Preis], [Anzahl] From [RechnungsausgangPositionen] Where [RK_ID] = " & r("RK_ID") & " And [LeistungsNr] = 750 And [BerechnungsartNr] = 9", "FMZOLL")
If ZZRKID <> "" Then
strZahlbar = "Zahlbar innerhalb 10 Tagen abzüglich Pos. 750; ab 10 Tagen netto fällig."
Else
varNettozahlungsziel = 25
strFälligkeitsdatum = DateAdd("d", varNettozahlungsziel, dtRechnungsdatum.Value).ToString("dd.MM.yyyy")
End If
End If
End If
'Fälligkeitstext in Landessprache
If strFälligkeitsdatum <> "" Then strZahlbar = "Rechnung zahlbar spätestens bis " & strFälligkeitsdatum & "!"
If Not IsDBNull(r("RechnungsLandKz")) Then
Dim ZZRLandKZ = SQL.getValueTxtBySql("SELECT tblZahlungszieltexte.Text FROM tblZahlungszieltexte WHERE tblZahlungszieltexte.LandKz='" & r("RechnungsLandKz") & "' AND tblZahlungszieltexte.Text Is Not Null", "FMZOLL")
If ZZRLandKZ <> "" Then
strZahlbar = ZZRLandKZ & " " & strFälligkeitsdatum & "!"
End If
End If
varText &= strZahlbar & vbCrLf
End If
End If
' Text bei Zoll oder EUSt drucken
Dim Zoll = SQL.getValueTxtBySql("Select LeistungsNr From dbo.RechnungsausgangPositionen Where RK_ID = " & r("RK_ID") & " And LeistungsNr In (10, 60, 70)", "FMZOLL")
If Not IsDBNull(Zoll) AndAlso Zoll <> "" Then
varText = varText & "Alle Zollbelege bitte sofort auf Richtigkeit prüfen da Einspruch gemäß § 355 AO nur 1 Monat nach Datum des Zollbescheides möglich." & vbCrLf
End If
Case 71 'GUTSCHRIFT
If r("Lastschrift") Then
varText = varText & "Der Gutschriftsbetrag wurde mit erteilten Abbuchungsauftrag verrechnet." & vbCrLf
End If
End Select
ok = SQL.doSQL("Update [Rechnungsausgang] Set [Text] = '" & varText & "', [Nettozahlungsziel] = " & varNettozahlungsziel & " WHERE [RK_ID] = " & r("RK_ID"), "FMZOLL")
If Not ok Then MsgBox("Fehler") : Exit Sub
varText = ""
varNettozahlungsziel = 0
strFälligkeitsdatum = ""
Next
End If
' Die Abfrage ermittelt aus den Rechnungspositonen,
' das Vorkommen (Anzahl Porto/Papiere) pro RechnungsKundenNr
' Status=0, Sammelrechnung=6, LeistungsNr=440.
Dim sqlString = "SELECT
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
isnull(Rechnungsausgang.[Steuersatz %],0) as [Steuersatz %],
cast(Rechnungsausgang.Lastschrift as bit) as Lastschrift,
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) AS AnzahlPP,
SUM(CASE WHEN LeistungsNr = 440 THEN 0 ELSE SteuerpflichtigerBetrag + SteuerfreierBetrag END) AS BetragExclusivPP
FROM
Rechnungsausgang
INNER JOIN
RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID
WHERE
Rechnungsausgang.Status = 0
AND Rechnungsausgang.Sammelrechnung = 6
AND Rechnungsausgang.Sachbearbeiter = '" & Sachbearbeiter & "'
AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
GROUP BY
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
Rechnungsausgang.[Steuersatz %],
Rechnungsausgang.Lastschrift
HAVING
SUM(CASE WHEN LeistungsNr = 440 THEN Anzahl ELSE 0 END) > 0
ORDER BY
Rechnungsausgang.Firma_ID,
Rechnungsausgang.Status,
Rechnungsausgang.Sammelrechnung,
Rechnungsausgang.Sachbearbeiter,
Rechnungsausgang.RechnungsKundenNr,
Rechnungsausgang.BelegartenNr,
Rechnungsausgang.Währungscode,
Rechnungsausgang.[Steuersatz %],
Rechnungsausgang.Lastschrift"
Dim dtPP As DataTable = SQL.loadDgvBySql(sqlString, "FMZOLL")
If dtPP.Rows.Count > 0 Then
For Each r In dtPP.Rows
Dim intZlr As Integer = 0
' Bei BetragExclusivPP kleiner als 150€ wird 1x P.P. verrechnet, bei grösser/gleich 150€ wird kein P.P. verrechnet.
' Zähler auf die Anzahl der P.P. Löschungen einstellen.
If Not IsDBNull(r("BetragExclusivPP")) AndAlso r("BetragExclusivPP") > 0 Then
If r("BetragExclusivPP") < 150 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP")
End If
Else
If (0 - r("BetragExclusivPP")) < 150 Then
intZlr = r("AnzahlPP") - 1
Else
intZlr = r("AnzahlPP") - 1
End If
End If
If intZlr > 0 Then
Dim steuersatz As Double = Math.Round(r("Steuersatz %"), 2)
Dim SteuersatzString As String = steuersatz.ToString.Replace(",", ".")
' Die Abfrage liest in der Tabelle Rechnungsausgang,
' passend zu den durch die vorherige Abfrage bereitgestellten Parametern.
Dim sqlStringRechnungen As String = "Select DISTINCT
Rechnungsausgang.OffertenNr,
Rechnungsausgang.RK_ID,
Rechnungsausgang.SteuerpflichtigerGesamtbetrag,
Rechnungsausgang.SteuerfreierGesamtbetrag,
Rechnungsausgang.upsize_ts
FROM Rechnungsausgang
WHERE
Rechnungsausgang.Firma_ID = " & r("Firma_ID") & "
And Rechnungsausgang.Status = " & r("Status") & "
And Rechnungsausgang.Sammelrechnung = " & r("Sammelrechnung") & "
And Rechnungsausgang.Sachbearbeiter = '" & Sachbearbeiter & "'
And Rechnungsausgang.RechnungsKundenNr = " & r("RechnungsKundenNr") & "
And Rechnungsausgang.BelegartenNr = " & r("BelegartenNr") & "
And Rechnungsausgang.Währungscode = '" & r("Währungscode") & "'
And Rechnungsausgang.[Steuersatz %] = " & SteuersatzString & "
And Rechnungsausgang.Lastschrift = " & IIf(r("Lastschrift"), 1, 0) & "
AND cast(Rechnungsausgang.Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
ORDER by
Rechnungsausgang.OffertenNr"
Dim dtRechnungen As DataTable = SQL.loadDgvBySql(sqlStringRechnungen, "FMZOLL")
If dtRechnungen.Rows.Count > 0 Then
For Each re In dtRechnungen.Rows
Dim dtREPOSANZ As DataTable = SQL.loadDgvBySql("Select [RK_ID], [LeistungsNr], cast([Steuerpflichtig] as bit) as Steuerpflichtig, [LeistungsBez],[IndexZkteing], Anzahl, SteuerpflichtigerBetrag, SteuerfreierBetrag,upsize_ts From RechnungsausgangPositionen Where RechnungsausgangPositionen.RK_ID = " & re("RK_ID") & " And RechnungsausgangPositionen.LeistungsNr = 440", "FMZOLL")
If dtREPOSANZ.Rows.Count > 0 Then
Dim stgesBetr = re("SteuerpflichtigerGesamtbetrag")
Dim stfregesBetr = re("SteuerfreierGesamtbetrag")
Dim RECHNUNG As New cRechnungsausgang(re("RK_ID"))
For Each row In dtREPOSANZ.Rows
intZlr = intZlr - row("Anzahl")
stgesBetr = stgesBetr - row("SteuerpflichtigerBetrag")
stfregesBetr = stfregesBetr - row("SteuerfreierBetrag")
If RECHNUNG.DELETE_POSITIONEN(RECHNUNG.RK_ID, row("LeistungsNr"), row("Steuerpflichtig"), row("LeistungsBez"), row("IndexZkteing")) Then
RECHNUNG.SteuerfreierGesamtbetrag = stfregesBetr
RECHNUNG.SteuerpflichtigerGesamtbetrag = stgesBetr
RECHNUNG.SAVE()
End If
If intZlr = 0 Then Exit For
Next
End If
Next
End If
End If
Next
End If
'Berechnet Banküberweisung/Bankspesen.
Dim sqlBB = " Select Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift
From dbo.Rechnungsausgang
Where Status = 0
And Sammelrechnung = 6
And Sachbearbeiter ='" & Sachbearbeiter & "'
AND cast(Abfertigungsdatum as Date) = '" & rechnungsdatum & "'
Group By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift
Order By Firma_ID, Status, Sammelrechnung, Sachbearbeiter, RechnungsKundenNr, BelegartenNr, Währungscode, [Steuersatz %], Lastschrift"
Dim dtBB As DataTable = SQL.loadDgvBySql(sqlBB, "FMZOLL")
If dtBB.Rows.Count > 0 Then
For Each r In dtBB.Rows
'spSelectReDruSchnSumBS415
Dim steuersatz As Double = Math.Round(r("Steuersatz %"), 2)
Dim SteuersatzString As String = steuersatz.ToString.Replace(",", ".")
Dim sum As DataTable = SQL.loadDgvBySql("SELECT SUM(dbo.RechnungsausgangPositionen.Preis * dbo.RechnungsausgangPositionen.Anzahl) AS [Summe von Preis]
FROM dbo.Rechnungsausgang INNER JOIN
dbo.RechnungsausgangPositionen ON dbo.Rechnungsausgang.RK_ID = dbo.RechnungsausgangPositionen.RK_ID INNER JOIN
dbo.Leistungen ON dbo.RechnungsausgangPositionen.LeistungsNr = dbo.Leistungen.LeistungsNr
WHERE (dbo.Rechnungsausgang.Firma_ID = " & r("Firma_ID") & ")
AND (dbo.Rechnungsausgang.Status = " & r("Status") & ")
AND (dbo.Rechnungsausgang.Sammelrechnung = " & r("Sammelrechnung") & ")
AND (dbo.Rechnungsausgang.Sachbearbeiter = '" & r("Sachbearbeiter") & "')
AND (dbo.Rechnungsausgang.RechnungsKundenNr = " & r("RechnungsKundenNr") & ")
AND (dbo.Rechnungsausgang.BelegartenNr =" & r("BelegartenNr") & ")
AND (dbo.Rechnungsausgang.Währungscode = '" & r("Währungscode") & "')
AND (dbo.Rechnungsausgang.[Steuersatz %] =" & SteuersatzString & ")
AND (dbo.Rechnungsausgang.Lastschrift =" & IIf(r("Lastschrift"), 1, 0) & ")
AND (dbo.Leistungen.BS415 = 1)", "FMZOLL",)
If sum.Rows.Count > 0 Then
For Each rowsum In sum.Rows
Dim sumCurrenRow As Double = rowsum("Summe von Preis")
If sumCurrenRow <> 0 Then
Dim dtBankspesen As DataTable = SQL.loadDgvBySql("SELECT KundenNr, [Bankspesen %], [Bankspesen Mindestbetrag] FROM dbo.Kunden where KundenNr = " & r("RechnungsKundenNr"), "FMZOLL")
If dtBankspesen.Rows.Count > 0 Then
For Each rowBS In dtBankspesen.Rows
If rowBS("Bankspesen %") = 0 And rowBS("Bankspesen Mindestbetrag") = 0 Then
Else
Dim query As String = "SELECT DISTINCT OffertenNr, RK_ID, SteuerpflichtigerGesamtbetrag, SteuerfreierGesamtbetrag, upsize_ts FROM Rechnungsausgang
WHERE (dbo.Rechnungsausgang.Firma_ID = " & r("Firma_ID") & ")
AND (Status = " & r("Status") & ")
AND (Sammelrechnung = " & r("Sammelrechnung") & ")
AND (Sachbearbeiter = '" & r("Sachbearbeiter") & "')
AND (RechnungsKundenNr = " & r("RechnungsKundenNr") & ")
AND (BelegartenNr =" & r("BelegartenNr") & ")
AND (Währungscode = '" & r("Währungscode") & "')
AND ([Steuersatz %] =" & SteuersatzString & ")
AND (Lastschrift =" & IIf(r("Lastschrift"), 1, 0) & ")
ORDER BY OffertenNr"
Dim dtRechnung As DataTable = SQL.loadDgvBySql(query, "FMZOLL")
If dtRechnung.Rows.Count > 0 Then
For Each re In dtRechnung.Rows
Dim steuerpflichtigerGesamtbetrag = re("SteuerpflichtigerGesamtbetrag")
Dim steuerfreiegerGesamtbetrag = re("SteuerfreierGesamtbetrag")
Dim dt415 As DataTable = SQL.loadDgvBySql("Select [RK_ID], [LeistungsNr], cast([Steuerpflichtig] as bit) as Steuerpflichtig, [LeistungsBez],[IndexZkteing],SteuerpflichtigerBetrag, SteuerfreierBetrag, upsize_ts From RechnungsausgangPositionen Where RechnungsausgangPositionen.RK_ID = " & re("RK_ID") & " And RechnungsausgangPositionen.LeistungsNr = 415", "FMZOLL")
If dt415.Rows.Count > 0 Then
For Each r415 In dt415.Rows
steuerpflichtigerGesamtbetrag -= dt415("SteuerpflichtigerBetrag")
steuerfreiegerGesamtbetrag -= dt415("SteuerfreierBetrag")
Dim RECHNUNG As New cRechnungsausgang(re("RK_ID"))
If RECHNUNG.DELETE_POSITIONEN(RECHNUNG.RK_ID, r415("LeistungsNr"), r415("Steuerpflichtig"), r415("LeistungsBez"), r415("IndexZkteing")) Then
RECHNUNG.SteuerfreierGesamtbetrag = steuerfreiegerGesamtbetrag
RECHNUNG.SteuerpflichtigerGesamtbetrag = steuerpflichtigerGesamtbetrag
RECHNUNG.SAVE()
End If
Next
End If
Next
If sumCurrenRow > 0 Then
Dim RElastEntry As DataRow = dtRechnung.Rows(dtRechnung.Rows.Count - 1)
Dim NEWPOS As New cRechnungsausgangPositionen(RElastEntry("RK_ID"))
NEWPOS.Anzahl = 1
NEWPOS.LeistungsNr = 415
If steuersatz = 0 Then
NEWPOS.Steuerpflichtig = False
Else
NEWPOS.Steuerpflichtig = SQL.DLookup("Steuerpflichtig", "Leistungen", "LeistungsNr= 415", "FMZOLL")
End If
NEWPOS.LeistungsBez = "Überweisungs/Bankspesen"
Dim preis As Double = 0
If rowBS("Bankspesen %") > 0 Then
If sumCurrenRow > 0 Then
preis = Math.Floor(sumCurrenRow * rowBS("Bankspesen %") + 0.5)
Else
preis = Math.Floor(0 - sumCurrenRow * rowBS("Bankspesen %") + 0.5)
End If
Else
preis = 0
End If
If preis < rowBS("Bankspesen Mindestbetrag") Then
preis = rowBS("Bankspesen Mindestbetrag")
End If
If sumCurrenRow < 0 Then
preis = 0 - preis
End If
Dim RECHNUNG As New cRechnungsausgang(RElastEntry("RK_ID"))
If NEWPOS.Steuerpflichtig Then
NEWPOS.SteuerpflichtigerBetrag = preis
RECHNUNG.SteuerpflichtigerGesamtbetrag = +preis
Else
NEWPOS.SteuerfreierBetrag = preis
RECHNUNG.SteuerfreierGesamtbetrag = +preis
End If
NEWPOS.Preis = preis
NEWPOS.INSERT(RElastEntry("RK_ID"))
RECHNUNG.SAVE()
End If
End If
End If
Next
End If
End If
Next
End If
Next
End If
End Sub
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles btnContractdaten.Click
@@ -986,7 +1524,7 @@ Public Class usrCntlMDMAuswertungen
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim frm As New Form
Dim dgv As New DataGridView()
Dim dt As DataTable = SQL.loadDgvBySql("SELECT dbo.CLFBody.PKHistory,
Dim dt As DataTable = SQL.loadDgvBySql("Select dbo.CLFBody.PKHistory,
dbo.CLFBody.PKFileName,
dbo.CLFBody.PKLine,
dbo.CLFBody.RecordType,
@@ -1389,11 +1927,10 @@ Public Class usrCntlMDMAuswertungen
Dim cnt = 1
For Each r As DataRow In Table.Rows
For Each r As DataRow In table.Rows
If cnt Mod 10 = 0 Then
txtIDSEinarbeitung.Text = cnt & " / " & Table.Rows.Count
Dim proz As Double = (cnt / Table.Rows.Count) * 100
txtIDSEinarbeitung.Text = cnt & " / " & table.Rows.Count
Dim proz As Double = (cnt / table.Rows.Count) * 100
ProgressBar.Value = proz
lblProz.Text = proz.ToString("N2") & " %"
GroupBox7.Refresh()
@@ -1402,7 +1939,7 @@ Public Class usrCntlMDMAuswertungen
cnt += 1
Next
ProgressBar.Value = 100
txtIDSEinarbeitung.Text = Table.Rows.Count & " / " & Table.Rows.Count
txtIDSEinarbeitung.Text = table.Rows.Count & " / " & table.Rows.Count
lblProz.Text = "100.00 %"
End If
@@ -1419,6 +1956,10 @@ Public Class usrCntlMDMAuswertungen
Private Sub UsrCntlMSE_KonvertCSV1_Load(sender As Object, e As EventArgs) Handles UsrCntlMSE_KonvertCSV1.Load
End Sub
Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
End Sub
End Class

View File

@@ -60,7 +60,7 @@ Public Class usrcntlFremdrechnungen
btnSDL_MautMSE.Visible = True 'dt.Select("SDLNr=208").Count > 0
btnSDL_FREJUS.Visible = False ' dt.Select("SDLNr=207").Count > 0
btnSDL_RMC.Visible = True
btnSDL_Alle.Visible = False
btnSDL_Alle.Visible = True
'End If
SplitContainer1.Panel2Collapsed = False