FaktMail, MDM-Vollmachten, MDM-Auswertung
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user