Kundensicherheiten, CBAM-Rechner, etc.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
Imports System.Globalization
|
||||
Imports System.Text
|
||||
Imports System.Web.UI.WebControls.Expressions
|
||||
Imports QRCoder.PayloadGenerator.SwissQrCode
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
|
||||
Public Class usrCntlBH
|
||||
@@ -2220,6 +2221,7 @@ Public Class usrCntlBH
|
||||
End If
|
||||
|
||||
Dim importiert As Boolean = False
|
||||
Dim TYP = cbxBankspesentyp._value
|
||||
|
||||
Dim fd As New OpenFileDialog
|
||||
fd.InitialDirectory = "\\share01.verag.ost.dmn\F\19 VERAG 360 - MDM\Buchhaltung MDM\Bank\Subkonten"
|
||||
@@ -2267,7 +2269,7 @@ Public Class usrCntlBH
|
||||
exclApp.CutCopyMode = False
|
||||
|
||||
'Try to open exclusively
|
||||
Datei = exclApp.Workbooks.Open(Filename:=fd.FileName, ReadOnly:=False, IgnoreReadOnlyRecommended:=True, Notify:=False)
|
||||
Datei = exclApp.Workbooks.Open(Filename:=fd.FileName, ReadOnly:=False, IgnoreReadOnlyRecommended:=True, Notify:=False, Format:=6, Delimiter:=";")
|
||||
|
||||
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!")
|
||||
@@ -2280,27 +2282,44 @@ Public Class usrCntlBH
|
||||
' Header einlesen
|
||||
Dim headerMap As New Dictionary(Of String, Integer)(StringComparer.OrdinalIgnoreCase)
|
||||
|
||||
Dim startHeaderRow As Integer = If(TYP = "M", 7, 1)
|
||||
|
||||
For col As Integer = 1 To Blatt.UsedRange.Columns.Count
|
||||
|
||||
Dim header As String = Convert.ToString(Blatt.Cells(1, col).Value).Trim()
|
||||
Dim rawHeader As String = Convert.ToString(Blatt.Cells(startHeaderRow, col).Value2)
|
||||
|
||||
If header <> "" AndAlso Not headerMap.ContainsKey(header) Then
|
||||
headerMap.Add(header, col)
|
||||
If String.IsNullOrWhiteSpace(rawHeader) Then Continue For
|
||||
|
||||
If rawHeader.Contains(";") Then
|
||||
' Gesamte Kopfzeile steht in einer Zelle
|
||||
Dim headers As String() = rawHeader.Split(";"c)
|
||||
|
||||
For i As Integer = 0 To headers.Length - 1
|
||||
Dim header As String = headers(i).Replace(ChrW(160), " "c).Trim().TrimEnd("."c).Trim()
|
||||
|
||||
If header <> "" AndAlso Not headerMap.ContainsKey(header) Then
|
||||
headerMap.Add(header, i + 1)
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
Dim header As String = rawHeader.Replace(ChrW(160), " "c).Trim().TrimEnd("."c).Trim()
|
||||
|
||||
If header <> "" AndAlso Not headerMap.ContainsKey(header) Then
|
||||
headerMap.Add(header, col)
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
' Pflichtspalten prüfen
|
||||
Dim requiredHeaders As String() = {
|
||||
"Umsatz-ID",
|
||||
"Datum",
|
||||
"IBAN",
|
||||
"BIC",
|
||||
"Buchungstext",
|
||||
"Währung",
|
||||
"Betrag",
|
||||
"Kontoauszug"
|
||||
}
|
||||
Dim requiredHeaders As String()
|
||||
|
||||
Select Case TYP
|
||||
Case "M"
|
||||
requiredHeaders = {"Belegdat", "Belegnr", "BuchText", "Soll EUR", "Haben EUR", "Gegenkto"}
|
||||
Case "Q"
|
||||
requiredHeaders = {"Umsatz-ID", "Datum", "IBAN", "BIC", "Buchungstext", "Währung", "Betrag", "Kontoauszug"}
|
||||
End Select
|
||||
|
||||
|
||||
For Each h As String In requiredHeaders
|
||||
|
||||
@@ -2316,86 +2335,64 @@ Public Class usrCntlBH
|
||||
visibleKdNrCheck = True
|
||||
End If
|
||||
|
||||
|
||||
Dim letzteZeile As Integer = Blatt.UsedRange.Rows.Count
|
||||
|
||||
For row As Integer = startHeaderRow + 1 To letzteZeile
|
||||
|
||||
If TYP = "Q" Then
|
||||
|
||||
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 = ""
|
||||
|
||||
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
|
||||
If headerMap.ContainsKey("KDNR") Then
|
||||
KundenNrCheck = Convert.ToString(Blatt.Cells(row, headerMap("KDNR")).Value)
|
||||
End If
|
||||
|
||||
|
||||
If KundeNr = -1 Then
|
||||
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
|
||||
|
||||
@@ -2413,16 +2410,89 @@ Public Class usrCntlBH
|
||||
|
||||
Continue For
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
Else
|
||||
|
||||
|
||||
Dim Umsatz_ID As String = Convert.ToString(Blatt.Cells(row, headerMap("Belegnr")).Value)
|
||||
Dim Datum As String = Convert.ToString(Blatt.Cells(row, headerMap("Belegdat")).Value)
|
||||
Dim Buchungstext As String = Convert.ToString(Blatt.Cells(row, headerMap("BuchText")).Value)
|
||||
Dim Währung As String = "EUR"
|
||||
|
||||
Dim SollBetrag As String = Convert.ToString(Blatt.Cells(row, headerMap("Soll EUR")).Value)
|
||||
Dim HabenBetrag As String = Convert.ToString(Blatt.Cells(row, headerMap("Haben EUR")).Value)
|
||||
|
||||
Dim Betrag As Double = 0
|
||||
If SollBetrag <> "" AndAlso IsNumeric(SollBetrag) Then
|
||||
Betrag = CDbl(SollBetrag)
|
||||
ElseIf HabenBetrag <> "" AndAlso IsNumeric(HabenBetrag) Then
|
||||
Betrag = CDbl(HabenBetrag)
|
||||
End If
|
||||
|
||||
Dim KundenNrCheck As String = ""
|
||||
|
||||
If headerMap.ContainsKey("Gegenkto") Then
|
||||
KundenNrCheck = Convert.ToString(Blatt.Cells(row, headerMap("Gegenkto")).Value)
|
||||
End If
|
||||
|
||||
If String.IsNullOrWhiteSpace(Umsatz_ID) Then
|
||||
Continue For
|
||||
End If
|
||||
|
||||
If IsNumeric(Betrag) AndAlso Not String.IsNullOrWhiteSpace(Buchungstext) AndAlso Not String.IsNullOrWhiteSpace(Datum) AndAlso IsDate(Datum) Then
|
||||
|
||||
|
||||
Dim R As DataRow = dt.NewRow
|
||||
R("Umsatz-ID") = Umsatz_ID
|
||||
R("Datum") = Datum
|
||||
R("Buchungstext") = Buchungstext
|
||||
R("Währung") = Währung
|
||||
R("Betrag") = Betrag
|
||||
|
||||
R("KdNr") = 0
|
||||
|
||||
If visibleKdNrCheck Then
|
||||
|
||||
R("KdNrCheck") = KundenNrCheck
|
||||
|
||||
If KundenNrCheck <> "" AndAlso IsNumeric(KundenNrCheck) Then
|
||||
If CInt(KundenNrCheck) = R("KdNr") Then
|
||||
R("KdNrValid") = True
|
||||
Else
|
||||
R("KdNrValid") = False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If R("KdNr") = -1 Then
|
||||
missingKdNr += 1
|
||||
End If
|
||||
|
||||
'Betrag laut folgendem Schema berechnen:
|
||||
|
||||
If Betrag < 0 Then 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
|
||||
|
||||
|
||||
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
|
||||
@@ -2454,8 +2524,8 @@ Public Class usrCntlBH
|
||||
For Each r As DataGridViewRow In frm.dgvHandling.SelectedRows
|
||||
|
||||
Dim Datum = r.Cells("Datum").Value
|
||||
Dim TYP = cbxBankspesentyp._value
|
||||
Dim KdNr = 0
|
||||
|
||||
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)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
Imports DAKOSY_Worker.DEERRE
|
||||
Imports Microsoft.Office.Interop
|
||||
Imports Microsoft.Office.Interop
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
|
||||
Public Class frmdynMailvorlagen
|
||||
|
||||
@@ -2380,7 +2380,8 @@ Public Class frmMDMDatenverarbetiung
|
||||
Function genPLOSEInsertMautD_NEW(von As Date, bis As Date) As Boolean
|
||||
Try
|
||||
|
||||
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = False
|
||||
|
||||
VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True
|
||||
|
||||
pic.Visible = False
|
||||
|
||||
|
||||
38
SDL/seriendruck/usrCntlFakturierung.Designer.vb
generated
38
SDL/seriendruck/usrCntlFakturierung.Designer.vb
generated
@@ -46,6 +46,7 @@ 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.btnSR_zuruecksetzen = New System.Windows.Forms.Button()
|
||||
Me.PictureBox13 = New System.Windows.Forms.PictureBox()
|
||||
Me.Label15 = New System.Windows.Forms.Label()
|
||||
Me.PictureBox12 = New System.Windows.Forms.PictureBox()
|
||||
@@ -109,7 +110,7 @@ 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.btnSR_zuruecksetzen = New System.Windows.Forms.Button()
|
||||
Me.cbxFixeTaxe = New System.Windows.Forms.CheckBox()
|
||||
Me.gb_fakturierung.SuspendLayout()
|
||||
Me.GBMautberichte.SuspendLayout()
|
||||
CType(Me.dgvMautbericht, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@@ -356,6 +357,7 @@ Partial Class usrcntlFakturierung
|
||||
'
|
||||
'GBSammelrechnung
|
||||
'
|
||||
Me.GBSammelrechnung.Controls.Add(Me.cbxFixeTaxe)
|
||||
Me.GBSammelrechnung.Controls.Add(Me.btnSR_zuruecksetzen)
|
||||
Me.GBSammelrechnung.Controls.Add(Me.PictureBox13)
|
||||
Me.GBSammelrechnung.Controls.Add(Me.Label15)
|
||||
@@ -423,6 +425,18 @@ Partial Class usrcntlFakturierung
|
||||
Me.GBSammelrechnung.TabIndex = 14
|
||||
Me.GBSammelrechnung.TabStop = False
|
||||
'
|
||||
'btnSR_zuruecksetzen
|
||||
'
|
||||
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
|
||||
'
|
||||
'PictureBox13
|
||||
'
|
||||
Me.PictureBox13.BackgroundImage = CType(resources.GetObject("PictureBox13.BackgroundImage"), System.Drawing.Image)
|
||||
@@ -518,7 +532,7 @@ Partial Class usrcntlFakturierung
|
||||
'
|
||||
Me.Label11.Location = New System.Drawing.Point(168, 156)
|
||||
Me.Label11.Name = "Label11"
|
||||
Me.Label11.Size = New System.Drawing.Size(440, 17)
|
||||
Me.Label11.Size = New System.Drawing.Size(262, 17)
|
||||
Me.Label11.TabIndex = 125
|
||||
Me.Label11.Text = "6. Fixe Taxe 441 (bei Belegsumme < 500) berechnen"
|
||||
'
|
||||
@@ -1063,17 +1077,16 @@ Partial Class usrcntlFakturierung
|
||||
Me.Label14.TabIndex = 73
|
||||
Me.Label14.Text = "Rechnungsdaten"
|
||||
'
|
||||
'btnSR_zuruecksetzen
|
||||
'cbxFixeTaxe
|
||||
'
|
||||
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
|
||||
Me.cbxFixeTaxe.AutoSize = True
|
||||
Me.cbxFixeTaxe.Checked = True
|
||||
Me.cbxFixeTaxe.CheckState = System.Windows.Forms.CheckState.Checked
|
||||
Me.cbxFixeTaxe.Location = New System.Drawing.Point(428, 156)
|
||||
Me.cbxFixeTaxe.Name = "cbxFixeTaxe"
|
||||
Me.cbxFixeTaxe.Size = New System.Drawing.Size(15, 14)
|
||||
Me.cbxFixeTaxe.TabIndex = 136
|
||||
Me.cbxFixeTaxe.UseVisualStyleBackColor = True
|
||||
'
|
||||
'usrcntlFakturierung
|
||||
'
|
||||
@@ -1201,4 +1214,5 @@ Partial Class usrcntlFakturierung
|
||||
Friend WithEvents PictureBox13 As PictureBox
|
||||
Friend WithEvents Label15 As Label
|
||||
Friend WithEvents btnSR_zuruecksetzen As Button
|
||||
Friend WithEvents cbxFixeTaxe As CheckBox
|
||||
End Class
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Imports System.Globalization
|
||||
Imports System.IO
|
||||
Imports System.Web.UI.WebControls.Expressions
|
||||
Imports java.util
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
|
||||
Public Class usrcntlFakturierung
|
||||
@@ -290,7 +291,7 @@ Public Class usrcntlFakturierung
|
||||
GROUP BY [Firma_ID], [Status], [Sammelrechnung], [Sachbearbeiter], [RechnungsKundenNr], [Währungscode], [Steuersatz %], [Lastschrift]", "FMZOLL")
|
||||
|
||||
|
||||
If Not vbYes = MsgBox("Möchten Sie mit der Erstellung der " & dtREGU.Rows.Count & " Sammelrechnungen vorfahren?", vbYesNoCancel) Then
|
||||
If Not vbYes = MsgBox("Möchten Sie mit der Erstellung der " & dtREGU.Rows.Count & " Sammelrechnungen vorfahren?" & vbNewLine & IIf(cbxFixeTaxe.Checked, "Fixe Taxe wird verrechnet!", "Fixe Taxe wird NICHT verrechnet!"), vbYesNoCancel) Then
|
||||
MsgBox("Rechnungslauf wird abgebrochen!") : Exit Sub
|
||||
End If
|
||||
|
||||
@@ -366,7 +367,7 @@ Public Class usrcntlFakturierung
|
||||
showPic(Bankspesen(Sachbearbeiter, rechnungsdatum), PictureBox5)
|
||||
|
||||
'Berechnet FixeTaxe.
|
||||
showPic(FixeTaxe(Sachbearbeiter, rechnungsdatum), PictureBox6)
|
||||
If cbxFixeTaxe.Checked Then showPic(FixeTaxe(Sachbearbeiter, rechnungsdatum), PictureBox6)
|
||||
|
||||
|
||||
'Gesamtmautberichte an Sammelrechnung anhängen
|
||||
@@ -622,10 +623,6 @@ Public Class usrcntlFakturierung
|
||||
|
||||
Dim intZlr As Integer = 0
|
||||
|
||||
If r("RechnungsKundenNr") = "401715" Or r("RechnungsKundenNr") = "401943" Or r("RechnungsKundenNr") = "402179" Or r("RechnungsKundenNr") = "402598" Or r("RechnungsKundenNr") = "402656" Or r("RechnungsKundenNr") = "402688" Or r("RechnungsKundenNr") = "402719" Or r("RechnungsKundenNr") = "402888" Or r("RechnungsKundenNr") = "402933" Or r("RechnungsKundenNr") = "401733" Or r("RechnungsKundenNr") = "402245" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "402065" Or r("RechnungsKundenNr") = "402712" Or r("RechnungsKundenNr") = "401908" Or r("RechnungsKundenNr") = "401829" Or r("RechnungsKundenNr") = "203083" Then
|
||||
'MsgBox("Test")
|
||||
End If
|
||||
|
||||
|
||||
' Bei BetragExclusivFT kleiner als 500€ wird 1x fixe Taxe verrechnet, bei grösser/gleich 500€ wird kein fixe Taxe verrechnet.
|
||||
' Zähler auf die Anzahl der fixe Taxe Löschungen einstellen.
|
||||
@@ -1126,7 +1123,7 @@ Public Class usrcntlFakturierung
|
||||
Dim hatFehler As Boolean = False
|
||||
|
||||
If dtSammelRechnugen.Rows.Count = 0 Then
|
||||
MsgBox("Keine Rechnungen für die Anlage der ZNB-Berichte gefunden!" & vbNewLine & "Vorgang wird abgebrochen.")
|
||||
MsgBox("Keine Rechnungen für die Anlage der ZNB-Berichte gefunden!" & vbNewLine & "Vorgang für die ZNB-liste wird übersprungen.")
|
||||
Return False
|
||||
End If
|
||||
|
||||
@@ -1141,7 +1138,7 @@ Public Class usrcntlFakturierung
|
||||
End If
|
||||
|
||||
If dtSammelRechnugen_EZB.Rows.Count = 0 Then
|
||||
MsgBox("Keine Rechnungen der Filiale 8001 für die Anlage der ZNB-Berichte gefunden!" & vbNewLine & "Vorgang wird abgebrochen.")
|
||||
MsgBox("Keine Rechnungen der Filiale 8001 für die Anlage der ZNB-Berichte gefunden!" & vbNewLine & "Vorgang für die ZNB-liste wird übersprungen.")
|
||||
Return False
|
||||
End If
|
||||
|
||||
@@ -2615,30 +2612,63 @@ Public Class usrcntlFakturierung
|
||||
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
|
||||
Dim setBack As Boolean = False
|
||||
Dim LIEFERANT As String = ""
|
||||
|
||||
|
||||
'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")
|
||||
LIEFERANT = "VZ-Daten"
|
||||
setBack = 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")
|
||||
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
|
||||
'2. SR löschen
|
||||
SQL.doSQL("delete from Rechnungsausgang where cast(RechnungsDatum as date) = '" & rechnungsdatum.ToShortDateString & "' and Firma_ID = 19 and Sammelrechnung = 6 ", "FMZOLL")
|
||||
LIEFERANT = "SR-Rechnung"
|
||||
setBack = SQL.doSQL("delete from Rechnungsausgang where cast(RechnungsDatum as date) = '" & rechnungsdatum.ToShortDateString & "' and Firma_ID = 19 and Sammelrechnung = 6 ", "FMZOLL")
|
||||
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
'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")
|
||||
LIEFERANT = "PLOSE-Daten"
|
||||
setBack = 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")
|
||||
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
|
||||
'UTA
|
||||
SQL.doSQL("UPDATE [tblUTAImportNew] set charged=0,chargedDatetime=NULL where isnull(charged,0) = 1 and chargedDatetime >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL")
|
||||
LIEFERANT = "UTA-Daten"
|
||||
setBack = 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")
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
|
||||
LIEFERANT = "IDS-Daten"
|
||||
setBack = SQL.doSQL("UPDATE [tblIDSTransactionsNew] Set charged = 0 ,chargedDatetime = NULL where isnull(charged,0) = 1 and chargedDatetime >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL")
|
||||
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
|
||||
'MSE
|
||||
SQL.doSQL("UPDATE [tblMSETransactions] Set charged = 0 , chargedDatetime = NULL where isnull(charged,0) = 1 and chargedDatetime >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL")
|
||||
setBack = SQL.doSQL("UPDATE [tblMSETransactions] Set charged = 0 , chargedDatetime = NULL where isnull(charged,0) = 1 and chargedDatetime >= '" & rechnungsdatum.AddDays(1) & "'", "FMZOLL")
|
||||
LIEFERANT = "MSE-Daten"
|
||||
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
|
||||
'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")
|
||||
LIEFERANT = "BANK-Daten"
|
||||
setBack = 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")
|
||||
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
|
||||
|
||||
'MAUTDATEN
|
||||
LIEFERANT = "Mautbericht-Daten"
|
||||
setBack = SQL.doSQL("delete from tblMautbericht where Billingdate= '" & rechnungsdatum.ToShortDateString & "'", "FMZOLL")
|
||||
|
||||
If Not createInfo(setBack, LIEFERANT) Then Exit Sub
|
||||
|
||||
|
||||
If setBack Then
|
||||
MsgBox("Rücksetzung erfolgreich!")
|
||||
End If
|
||||
|
||||
|
||||
|
||||
@@ -2649,4 +2679,16 @@ Public Class usrcntlFakturierung
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function createInfo(setBack As Boolean, Lieferant As String) As Boolean
|
||||
|
||||
Dim INFO As String = "Achtung die Rücksetzung der " & Lieferant & " ist fehlgeschlagen, Rücksetzung wird abgebrochen!"
|
||||
|
||||
If Not setBack Then
|
||||
MsgBox(INFO)
|
||||
End If
|
||||
|
||||
Return setBack
|
||||
|
||||
End Function
|
||||
End Class
|
||||
|
||||
@@ -24,6 +24,9 @@ Public Class cKundenSicherheiten
|
||||
Public Property sc_stornoDatum As Date? = Nothing
|
||||
Public Property sc_stornoMaId As Integer? = Nothing
|
||||
|
||||
Public Property sc_cbam_jahr As Integer? = Nothing
|
||||
Public Property sc_cbam_quartal As Integer? = Nothing
|
||||
|
||||
|
||||
Public hasEntry As Boolean = False
|
||||
|
||||
@@ -34,6 +37,13 @@ Public Class cKundenSicherheiten
|
||||
LOAD()
|
||||
End Sub
|
||||
|
||||
Sub New(sc_kundenNr As String, sc_cbam_quartal As Integer, sc_cbam_jahr As Integer)
|
||||
sc_kundenNr = sc_kundenNr
|
||||
sc_cbam_quartal = sc_cbam_quartal
|
||||
sc_cbam_jahr = sc_cbam_jahr
|
||||
LOADCBAM()
|
||||
End Sub
|
||||
|
||||
Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
|
||||
|
||||
@@ -57,6 +67,8 @@ Public Class cKundenSicherheiten
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_storno", sc_storno))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_stornoDatum", sc_stornoDatum))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_stornoMaId", sc_stornoMaId))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_cbam_jahr", sc_cbam_jahr))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("sc_cbam_quartal", sc_cbam_quartal))
|
||||
|
||||
Return list
|
||||
End Function
|
||||
@@ -103,6 +115,33 @@ Public Class cKundenSicherheiten
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
End Sub
|
||||
Public Sub LOADCBAM()
|
||||
Try
|
||||
hasEntry = False
|
||||
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
|
||||
Using cmd As New SqlCommand("SELECT * FROM tblKundenSicherheiten WHERE sc_kundenNr=@sc_kundenNr and sc_cbam_quartal = @sc_cbam_quartal and sc_cbam_jahr = @sc_cbamsc_cbam_jahr_year", conn)
|
||||
cmd.Parameters.AddWithValue("@sc_kundenNr", sc_kundenNr)
|
||||
cmd.Parameters.AddWithValue("@sc_cbam_quartal", sc_cbam_quartal)
|
||||
cmd.Parameters.AddWithValue("@sc_cbam_jahr", sc_cbam_jahr)
|
||||
Dim dr = cmd.ExecuteReader()
|
||||
If dr.Read Then
|
||||
For Each li In getParameterList()
|
||||
Dim prop As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
|
||||
If dr(li.Text) Is DBNull.Value Then
|
||||
prop.SetValue(Me, Nothing)
|
||||
Else
|
||||
prop.SetValue(Me, dr(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, MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Function getUpdateCmd() As String
|
||||
Dim list = getParameterList()
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices.ComTypes
|
||||
Imports System.Windows.Forms
|
||||
Imports com.sun.tools.javac.util
|
||||
Imports java.lang.ProcessBuilder
|
||||
Imports Org.BouncyCastle.Crypto.Agreement
|
||||
Imports sun.util.resources.cldr.aa
|
||||
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
|
||||
|
||||
@@ -518,6 +520,9 @@ Public Class cVERAG_CustomsDeclarations
|
||||
End Function
|
||||
|
||||
Public Sub checkfreshCBAMWarning()
|
||||
|
||||
'TODO: die CBAM-Kosten pro Quartal berechnen und als "Bankgarantie" in die tblKundenSicherheiten schreiben/aktualisieren (wird aktuell noch händisch gemacht, Fehleranfällig und
|
||||
|
||||
Try
|
||||
Dim CBAM_ITEMS As New List(Of cVERAG_CustomsDeclarations_Item)
|
||||
|
||||
@@ -597,6 +602,10 @@ Public Class cVERAG_CustomsDeclarations
|
||||
Dim dateCBAM = If(If(za_ReleaseDate, za_DeclarationDate), Now)
|
||||
Dim eigenmasseSumme_YEAR As Decimal = getCBAM_KG(vertretenerEORI, CDate("01.01." & dateCBAM.Year), CDate("31.12." & dateCBAM.Year), za_MRN) / 1000
|
||||
|
||||
Dim quarter As Integer = Math.Ceiling(dateCBAM.Month / 3.0)
|
||||
Dim Country As String = If(CBAM_ITEMS.FirstOrDefault()?.zaItem_OriginCountry, "")
|
||||
createOrUpdateKundenSicherheitseintrag(KD_IND, Country, vertretenerEORI, quarter, dateCBAM.Year)
|
||||
|
||||
|
||||
'Prüft, ob Vertrag vorliegt:
|
||||
Dim hasValidVertrag_CBAM As Boolean =
|
||||
@@ -679,6 +688,10 @@ Public Class cVERAG_CustomsDeclarations
|
||||
|
||||
Dim dateCBAM = If(If(za_ReleaseDate, za_DeclarationDate), Now)
|
||||
|
||||
Dim Country As String = If(CBAM_ITEMS.FirstOrDefault()?.zaItem_OriginCountry, "")
|
||||
Dim quarter As Integer = Math.Ceiling(dateCBAM.Month / 3.0)
|
||||
createOrUpdateKundenSicherheitseintrag(KD, Country, importerEORI, quarter, dateCBAM.Year)
|
||||
|
||||
Dim eigenmasseSumme_Shipment As Decimal = CBAM_ITEMS.Sum(Function(i) If(i.zaItem_NetMass, 0D)) / 1000
|
||||
Dim eigenmasseSumme_YEAR As Decimal = getCBAM_KG(importerEORI, CDate("01.01." & dateCBAM.Year), CDate("31.12." & dateCBAM.Year)) / 1000
|
||||
|
||||
@@ -807,6 +820,95 @@ Public Class cVERAG_CustomsDeclarations
|
||||
Return String.Join(", ", result)
|
||||
End Function
|
||||
|
||||
Private Function createOrUpdateKundenSicherheitseintrag(KUNDE As cKunde, ImportCountry As String, EORI As String, cbamQquarter As Integer, cbamYear As Integer)
|
||||
|
||||
Dim von As Date
|
||||
Dim bis As Date
|
||||
Dim CBAMZertifikatKosten As Double = 0
|
||||
|
||||
If ImportCountry = "" Then Return False
|
||||
|
||||
Select Case cbamQquarter
|
||||
Case "1"
|
||||
von = New Date(cbamYear, 1, 1)
|
||||
bis = New Date(cbamYear, 3, 31)
|
||||
CBAMZertifikatKosten = 75.36
|
||||
|
||||
Case "2"
|
||||
von = New Date(cbamYear, 4, 1)
|
||||
bis = New Date(cbamYear, 6, 30)
|
||||
CBAMZertifikatKosten = 75.28
|
||||
Case "3"
|
||||
von = New Date(cbamYear, 7, 1)
|
||||
bis = New Date(cbamYear, 9, 30)
|
||||
CBAMZertifikatKosten = 82.32
|
||||
|
||||
Case "4"
|
||||
von = New Date(cbamYear, 10, 1)
|
||||
bis = New Date(cbamYear, 12, 31)
|
||||
CBAMZertifikatKosten = 0
|
||||
End Select
|
||||
|
||||
Dim EORI_ = {EORI}
|
||||
|
||||
Dim LIST As List(Of VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations) = VERAG_PROG_ALLGEMEIN.cVERAG_CustomsDeclarations.LOAD_List_CBAM(EORI_, ImportCountry, von, bis,, True)
|
||||
|
||||
|
||||
Dim grouped = From za In LIST
|
||||
Where za.Items IsNot Nothing
|
||||
From it In za.Items
|
||||
Let tarif = If(it.zaItem_HSCode IsNot Nothing AndAlso it.zaItem_HSCode.Length >= 8,
|
||||
it.zaItem_HSCode.Substring(0, 8),
|
||||
it.zaItem_HSCode)
|
||||
Let country = it.zaItem_OriginCountry
|
||||
Group By tarif, country
|
||||
Into grp = Group
|
||||
Select New With {
|
||||
.Tarif = tarif,
|
||||
.Country = country,
|
||||
.Eigenmasse = grp.Sum(Function(x) If(x.it.zaItem_NetMass, 0D)),
|
||||
.Rohmasse = grp.Sum(Function(x) If(x.it.zaItem_GrossMass, 0D)),
|
||||
.RechnungswertEUR = grp.Sum(Function(x) If(x.it.zaItem_InvoiceValueEUR, 0D))
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Dim gesamtBetrag As Double = 0
|
||||
Dim cost As Double = 0
|
||||
Dim emission As Double = 0
|
||||
Dim benchmark As Double = 0
|
||||
|
||||
|
||||
For Each r In grouped
|
||||
cATEZ_Greenpulse_CBAM_CostCalculation.calcCBAM_ByCertificatePrice(r.Tarif, r.Rohmasse, r.Country, CBAMZertifikatKosten, cbamYear, cost, emission, benchmark)
|
||||
gesamtBetrag += cost
|
||||
Next
|
||||
|
||||
|
||||
|
||||
Dim Kunde_Sicherheit As New cKundenSicherheiten(KUNDE.KundenNr, cbamQquarter, cbamYear)
|
||||
If Kunde_Sicherheit.hasEntry Then
|
||||
|
||||
Kunde_Sicherheit.sc_Betrag = gesamtBetrag
|
||||
KUNDE.SAVE()
|
||||
Else
|
||||
Kunde_Sicherheit.sc_Bemerkung = "EUR"
|
||||
Kunde_Sicherheit.sc_Bemerkung = "CBAM Kosten Q" & cbamQquarter & " " & cbamYear
|
||||
Kunde_Sicherheit.sc_Art = "BANKGARANTIE"
|
||||
Kunde_Sicherheit.sc_Betrag = gesamtBetrag
|
||||
Kunde_Sicherheit.sc_datum = Today()
|
||||
Kunde_Sicherheit.sc_Mitarbeiter = "AUTO"
|
||||
KUNDE.SAVE()
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Public Function getCBAM_KG(EORI As String, von As Date, bis As Date, Optional without_MRN As String = "", Optional isDeclarant As Boolean = False) As Decimal
|
||||
Try
|
||||
If EORI = "" Then Return 0
|
||||
|
||||
Reference in New Issue
Block a user