From aac5b183a20e8d8de6d1f29f78aab7a9fc38d9c7 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 28 May 2024 16:48:26 +0200 Subject: [PATCH] =?UTF-8?q?feature=5Fsteuerschl=C3=BCsselcheck=20im=20Kund?= =?UTF-8?q?en=20und=20Rechnung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SDL/Fakturierung/usrCntlFaktAbrechnung.vb | 34 +++++++- .../usrcntlKundeBearbeitenFull.Designer.vb | 74 +++++++++--------- SDL/kunden/usrcntlKundeBearbeitenFull.vb | 14 +++- VERAG_PROG_ALLGEMEIN/cAllgemein.vb | 78 +++++++++++++++++++ 4 files changed, 159 insertions(+), 41 deletions(-) diff --git a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb index efe17900..7c9cd219 100644 --- a/SDL/Fakturierung/usrCntlFaktAbrechnung.vb +++ b/SDL/Fakturierung/usrCntlFaktAbrechnung.vb @@ -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 \ No newline at end of file diff --git a/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb b/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb index 3fc1fd3c..c1f4433b 100644 --- a/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb +++ b/SDL/kunden/usrcntlKundeBearbeitenFull.Designer.vb @@ -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!) diff --git a/SDL/kunden/usrcntlKundeBearbeitenFull.vb b/SDL/kunden/usrcntlKundeBearbeitenFull.vb index 8e6ac8f3..c86e6ae4 100644 --- a/SDL/kunden/usrcntlKundeBearbeitenFull.vb +++ b/SDL/kunden/usrcntlKundeBearbeitenFull.vb @@ -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) diff --git a/VERAG_PROG_ALLGEMEIN/cAllgemein.vb b/VERAG_PROG_ALLGEMEIN/cAllgemein.vb index e3c01009..a8ccc9bf 100644 --- a/VERAG_PROG_ALLGEMEIN/cAllgemein.vb +++ b/VERAG_PROG_ALLGEMEIN/cAllgemein.vb @@ -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