feature_steuerschlüsselcheck im Kunden und Rechnung

This commit is contained in:
2024-05-28 16:48:26 +02:00
parent e8456241ce
commit aac5b183a2
4 changed files with 159 additions and 41 deletions

View File

@@ -543,9 +543,9 @@ Public Class usrCntlFaktAbrechnung
FirmaTmp = "VERAGIMEX"
End If
'If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
' FirmaTmp = "AMBAR"
'End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
FirmaTmp = "AMBAR"
End If
Select Case FirmaTmp
Case "VERAG"
@@ -832,7 +832,10 @@ Public Class usrCntlFaktAbrechnung
Label7.Text = If(AD.UstIdGeprüft IsNot Nothing, "geprüft am: " & AD.UstIdGeprüft, "-")
' RECHNUNG.RechnungsUstIdGeprüft = If(AD.UstIdGeprüft IsNot Nothing, "geprüft am: " & CDate(AD.UstIdGeprüft).ToShortDateString, Nothing)
RECHNUNG.RechnungsUstIdGeprüft = AD.UstIdGeprüft
End If
If kdFirmaRechnungAn.KdNr_value > 0 And kdFirmaRechnungAn.KdData_KUNDE IsNot Nothing Then
Dim KD As VERAG_PROG_ALLGEMEIN.cKunde = kdFirmaRechnungAn.KdData_KUNDE
Dim KUNDE_ERW As VERAG_PROG_ALLGEMEIN.cKundenErweitert = kdFirmaRechnungAn.KdData_KUNDE_ERW
@@ -885,6 +888,7 @@ Public Class usrCntlFaktAbrechnung
getValues()
'initDGVRechnungenPositionen()
przRefreshDGV_Positionen()
End Sub
Private Sub cboRechnungAn_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboRechnungAn.SelectedIndexChanged
@@ -925,6 +929,7 @@ Public Class usrCntlFaktAbrechnung
txtRechnungAnOrt.Text = txtAbsenderOrt.Text
If kdFirmaAbsender.KdData_KUNDE_ERW IsNot Nothing Then txtRechnungAnZusatz.Text = If(kdFirmaAbsender.KdData_KUNDE_ERW.kde_AdressZusatz, "") Else txtRechnungAnZusatz.Text = ""
If kdFirmaAbsender.KdData_KUNDE IsNot Nothing Then
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
cboSteuerschlüssel.changeItem(RECHNUNG.ForceSteuerschlüssel)
Else
@@ -2825,6 +2830,9 @@ Public Class usrCntlFaktAbrechnung
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
If Not checkUIDNR() Then Exit Sub
saveMe()
End Sub
@@ -3324,6 +3332,7 @@ Nächste_Textzeile_lesen:
End Sub
' RECHNUNG.DruckDatumZeit
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
If Not checkUIDNR() Then Exit Sub
If RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Exit Sub
If RECHNUNG.Status <> 0 OrElse vbYes = MsgBox("Möchten Sie das PDF erstellen?" & vbNewLine & "Es wird eine Rechnungsnummer vergeben, die Rechnung gilt somit als gedruckt und kann nicht mehr bearbeitet werden.", vbYesNoCancel) Then
If RECHNUNG.Status <> 0 OrElse saveMe() Then
@@ -3367,6 +3376,7 @@ Nächste_Textzeile_lesen:
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click, Button16.Click
If Not checkUIDNR() Then Exit Sub
If RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Exit Sub
If RECHNUNG.Status <> 0 OrElse saveMe() Then
' Anhänge sichern, falls geändert
@@ -4069,4 +4079,22 @@ Nächste_Textzeile_lesen:
End Sub
Private Function checkUIDNR() As Boolean
If cboSteuerschlüssel._value IsNot Nothing AndAlso IsNumeric(cboSteuerschlüssel._value) Then
Dim check As Integer = cAllgemein.checkSteuerschluessel(cboFiliale._value, RECHNUNG.RechnungsLandKz, RECHNUNG.RechnungsUstIdKz, RECHNUNG.RechnungsUstIdNr, RECHNUNG.RechnungsUstIdGeprüft)
If check >= 0 Then
If IsNumeric(cboSteuerschlüssel._value) AndAlso CInt(txtSteuersatz._value) <> check Then
If Not vbYes = MsgBox("Falscher Steuertyp!" & vbNewLine & " Steuerschlüssel mit " & IIf(check = 2, "20 %", check & " %") & " sollte hinterlegt werden." & vbNewLine & "Trotzdem speichern?", vbYesNo) Then
Return False
End If
End If
End If
End If
Return True
End Function
End Class

View File

@@ -93,6 +93,8 @@ Partial Class usrcntlKundeBearbeitenFull
Me.tbFiskal = New System.Windows.Forms.TabPage()
Me.UsrCntlKundeFiskaldaten1 = New SDL.usrCntlKundeFiskaldaten()
Me.tbVerrechnung = New System.Windows.Forms.TabPage()
Me.Label101 = New System.Windows.Forms.Label()
Me.txtAbwZZVL = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cbxSndDatenAusSTB = New System.Windows.Forms.CheckBox()
Me.Label95 = New System.Windows.Forms.Label()
Me.cbxSammelrechnungBerichtLeistungsdetails = New System.Windows.Forms.CheckBox()
@@ -337,8 +339,6 @@ Partial Class usrcntlKundeBearbeitenFull
Me.cboFirma = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboAuswahl = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.DataGridViewTextBoxColumn2 = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.txtAbwZZVL = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.Label101 = New System.Windows.Forms.Label()
Me.tbcntrDetails.SuspendLayout()
Me.tbAbfertigung.SuspendLayout()
Me.tbcntrAbf.SuspendLayout()
@@ -1111,6 +1111,40 @@ Partial Class usrcntlKundeBearbeitenFull
Me.tbVerrechnung.Text = "Verrechnung"
Me.tbVerrechnung.UseVisualStyleBackColor = True
'
'Label101
'
Me.Label101.AutoSize = True
Me.Label101.Location = New System.Drawing.Point(191, 53)
Me.Label101.Name = "Label101"
Me.Label101.Size = New System.Drawing.Size(50, 13)
Me.Label101.TabIndex = 42
Me.Label101.Text = "abw. ZZ:"
'
'txtAbwZZVL
'
Me.txtAbwZZVL._DateTimeOnly = False
Me.txtAbwZZVL._numbersOnly = True
Me.txtAbwZZVL._numbersOnlyKommastellen = ""
Me.txtAbwZZVL._numbersOnlyTrennzeichen = True
Me.txtAbwZZVL._Prozent = False
Me.txtAbwZZVL._ShortDateNew = False
Me.txtAbwZZVL._ShortDateOnly = False
Me.txtAbwZZVL._TimeOnly = False
Me.txtAbwZZVL._TimeOnly_Seconds = False
Me.txtAbwZZVL._value = ""
Me.txtAbwZZVL._Waehrung = False
Me.txtAbwZZVL._WaehrungZeichen = True
Me.txtAbwZZVL.ForeColor = System.Drawing.Color.Red
Me.txtAbwZZVL.Location = New System.Drawing.Point(191, 66)
Me.txtAbwZZVL.MaxLength = 10
Me.txtAbwZZVL.MaxLineLength = -1
Me.txtAbwZZVL.MaxLines_Warning = ""
Me.txtAbwZZVL.MaxLines_Warning_Label = Nothing
Me.txtAbwZZVL.Name = "txtAbwZZVL"
Me.txtAbwZZVL.Size = New System.Drawing.Size(60, 20)
Me.txtAbwZZVL.TabIndex = 41
Me.txtAbwZZVL.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
'
'cbxSndDatenAusSTB
'
Me.cbxSndDatenAusSTB.AutoSize = True
@@ -1611,7 +1645,7 @@ Partial Class usrcntlKundeBearbeitenFull
Me.cboAbf_Steuerschluessel.FormattingEnabled = True
Me.cboAbf_Steuerschluessel.Location = New System.Drawing.Point(527, 88)
Me.cboAbf_Steuerschluessel.Name = "cboAbf_Steuerschluessel"
Me.cboAbf_Steuerschluessel.Size = New System.Drawing.Size(48, 21)
Me.cboAbf_Steuerschluessel.Size = New System.Drawing.Size(105, 21)
Me.cboAbf_Steuerschluessel.TabIndex = 9
'
'cboAbf_Sammelrechnung
@@ -4523,40 +4557,6 @@ Partial Class usrcntlKundeBearbeitenFull
Me.DataGridViewTextBoxColumn2.HeaderText = "E-Mail"
Me.DataGridViewTextBoxColumn2.Name = "DataGridViewTextBoxColumn2"
'
'txtAbwZZVL
'
Me.txtAbwZZVL._DateTimeOnly = False
Me.txtAbwZZVL._numbersOnly = True
Me.txtAbwZZVL._numbersOnlyKommastellen = ""
Me.txtAbwZZVL._numbersOnlyTrennzeichen = True
Me.txtAbwZZVL._Prozent = False
Me.txtAbwZZVL._ShortDateNew = False
Me.txtAbwZZVL._ShortDateOnly = False
Me.txtAbwZZVL._TimeOnly = False
Me.txtAbwZZVL._TimeOnly_Seconds = False
Me.txtAbwZZVL._value = ""
Me.txtAbwZZVL._Waehrung = False
Me.txtAbwZZVL._WaehrungZeichen = True
Me.txtAbwZZVL.ForeColor = System.Drawing.Color.Red
Me.txtAbwZZVL.Location = New System.Drawing.Point(191, 66)
Me.txtAbwZZVL.MaxLength = 10
Me.txtAbwZZVL.MaxLineLength = -1
Me.txtAbwZZVL.MaxLines_Warning = ""
Me.txtAbwZZVL.MaxLines_Warning_Label = Nothing
Me.txtAbwZZVL.Name = "txtAbwZZVL"
Me.txtAbwZZVL.Size = New System.Drawing.Size(60, 20)
Me.txtAbwZZVL.TabIndex = 41
Me.txtAbwZZVL.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
'
'Label101
'
Me.Label101.AutoSize = True
Me.Label101.Location = New System.Drawing.Point(191, 53)
Me.Label101.Name = "Label101"
Me.Label101.Size = New System.Drawing.Size(50, 13)
Me.Label101.TabIndex = 42
Me.Label101.Text = "abw. ZZ:"
'
'usrcntlKundeBearbeitenFull
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)

View File

@@ -533,7 +533,7 @@ Public Class usrcntlKundeBearbeitenFull
KUNDE.Euroeinführung = isLeerNothing(txtAbf_Euroeinführung._value)
KUNDE.Steuerschlüssel = cboAbf_Steuerschluessel._value
KUNDE.Währungscode = isLeerNothing(cboAbf_Waehrung._value)
KUNDE.Sammelrechnung = cboAbf_Sammelrechnung._value
@@ -678,8 +678,20 @@ Public Class usrcntlKundeBearbeitenFull
If cboAbf_Steuerschluessel._value IsNot Nothing AndAlso IsNumeric(cboAbf_Steuerschluessel._value) Then
Dim check As Integer = cAllgemein.checkSteuerschluessel(cboFiliale._value, ADRESSE.LandKz, ADRESSE.UstIdNr, ADRESSE.UstIdNr, ADRESSE.UstIdGeprüft)
If check >= 0 Then
If CInt(cboAbf_Steuerschluessel._value) <> check Then
If vbYes = MsgBox("Falscher Steuertyp!" & vbNewLine & " Steuerschlüssel mit " & IIf(check = 2, "20 %", check & " %") & " sollte hinterlegt werden." & vbNewLine & "Trotzdem speichern?", vbYesNo) Then
KUNDE.Steuerschlüssel = cboAbf_Steuerschluessel._value
Else
KUNDE.Steuerschlüssel = Nothing
End If
End If
End If
End If
UsrCntlKundeFiskaldaten1.loadinClass(FISKAL, KUNDE_ERW)

View File

@@ -177,6 +177,83 @@ Public Class cAllgemein
Return "AT"
End Function
Public Shared Function checkSteuerschluessel(firmenID As Integer, landKz As String, Optional UIDLandKz As String = "", Optional UstIdNr As String = "", Optional UstIdGeprüft As Object = Nothing) As Integer
If firmenID = "" Then Return -1
Dim FIRMA_TMP = New VERAG_PROG_ALLGEMEIN.cFirmen(firmenID)
Dim isEU As Boolean = False
Dim sql As New SQL
Select Case FIRMA_TMP.Firma_LandKz
Case "AT"
If landKz = "A" Then Return 2
isEU = sql.getValueTxtBySql("select MitgliedslandEU from Währungstabelle where landkz = '" & landKz & "'", "FMZOLL",)
If isEU Then
If UIDLandKz <> "" AndAlso UstIdNr <> "" AndAlso UstIdGeprüft IsNot Nothing Then
Return 0
Else
Return 2
End If
End If
Case "DE"
If landKz = "D" Then Return 19
isEU = sql.getValueTxtBySql("select MitgliedslandEU from Währungstabelle where landkz = '" & landKz & "'", "FMZOLL",)
If isEU Then
If UIDLandKz <> "" AndAlso UstIdNr <> "" AndAlso UstIdGeprüft IsNot Nothing Then
Return 0
Else
Return 19
End If
End If
Case "GB"
If landKz = "GB" Then Return 20
isEU = sql.getValueTxtBySql("select MitgliedslandEU from Währungstabelle where landkz = '" & landKz & "'", "FMZOLL",)
If isEU Then
If UIDLandKz <> "" AndAlso UstIdNr <> "" AndAlso UstIdGeprüft IsNot Nothing Then
Return 0
Else
Return 20
End If
End If
'Case "TR"
' If landKz = "TR" Then Return 20
' isEU = sql.getValueTxtBySql("select MitgliedslandEU from Währungstabelle where landkz = '" & landKz & "'", "FMZOLL",)
' If isEU Then
' If UIDLandKz <> "" AndAlso UstIdNr <> "" AndAlso UstIdGeprüft IsNot Nothing Then
' Return 0
' Else
' Return 20
' End If
' End If
End Select
Return -1
End Function
Public Shared Sub _TRANSLATE(o As System.Windows.Forms.Control)
_TRANSLATE(o, o, _LAN)
End Sub
@@ -492,4 +569,5 @@ Public Class cNCTS_GUARANTEES
If getSlashList <> "" Then getSlashList = getSlashList.Substring(0, getSlashList.Length - 3)
End Function
End Class