Zugferd Sammelrechnung
This commit is contained in:
@@ -6,7 +6,8 @@ Imports VERAG_PROG_ALLGEMEIN
|
||||
Imports s2industries.ZUGFeRD
|
||||
Imports System.IO
|
||||
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
|
||||
|
||||
Imports org.omg.PortableServer
|
||||
Imports GrapeCity.ActiveReports.ReportsCore.Tools
|
||||
|
||||
Public Class cFakturierung
|
||||
|
||||
@@ -1927,7 +1928,7 @@ Public Class cFakturierung
|
||||
|
||||
Dim RechnungsLandKz As String = ""
|
||||
If ROW("RechnungsLandKz") IsNot DBNull.Value AndAlso ROW("RechnungsLandKz") <> "" Then
|
||||
RechnungsLandKz = cProgramFunctions.getLandBez_fromISO1Land(ROW("RechnungsLandKz"), "", ROW("RechnungSprache")).ToString.ToUpper
|
||||
RechnungsLandKz = ROW("RechnungsLandKz") 'cProgramFunctions.getLandBez_fromISO1Land(ROW("RechnungsLandKz"), "", ROW("RechnungSprache")).ToString.ToUpper
|
||||
End If
|
||||
|
||||
|
||||
@@ -1937,13 +1938,15 @@ Public Class cFakturierung
|
||||
'If RECHNUNG.Besonderheiten IsNot Nothing Then
|
||||
' desc.AddNote(RECHNUNG.Besonderheiten.ToString, SubjectCodes.AAI)
|
||||
'End If
|
||||
|
||||
If rpt.txtVermerk.Text IsNot Nothing AndAlso rpt.txtVermerk.Text <> "" Then desc.AddNote(rpt.txtVermerk.Text.ToString, SubjectCodes.AAI)
|
||||
|
||||
desc.AddNote("Es bestehen Rabatt- und Bonusvereinbarungen.", SubjectCodes.AAK)
|
||||
|
||||
desc.SetBuyer(ROW("RechnungsName 1") & " " & Rechnugnsname2, RechnungsOrt, RechnungsOrt, RechnungsStraße, GetCountryCodeFromLandKZ(RechnungsLandKz, vatBuyer), IIf(Not IsDBNull(ROW("RechnungsKundenNr")), ROW("RechnungsKundenNr"), ""))
|
||||
|
||||
desc.SetSeller(FIRMA.Firma_Bez, FIRMA.Firma_Ort, FIRMA.Firma_Ort, FIRMA.Firma_Straße, GetCountryCodeFromLandKZ(FIRMA.Firma_LandKz, vatSeller))
|
||||
|
||||
If FIRMA.Firma_Steuernummer IsNot Nothing Then desc.AddSellerTaxRegistration(FIRMA.Firma_Steuernummer, TaxRegistrationSchemeID.FC)
|
||||
desc.AddSellerTaxRegistration(FIRMA.Firma_UID.ToString.Replace("UID: ", ""), TaxRegistrationSchemeID.VA)
|
||||
|
||||
' Optionally, to support Peppol-----------------------------
|
||||
@@ -1965,108 +1968,79 @@ Public Class cFakturierung
|
||||
steuerProzenFaktor = steuerProzent * 100
|
||||
End If
|
||||
|
||||
Dim einzelpreis As Double = 0
|
||||
Dim sumNetto As Double = 0
|
||||
|
||||
|
||||
'---------------------------------------------------------------------------------
|
||||
'--------------------------------TODO---------------------------------------------
|
||||
'---------------------------------------------------------------------------------
|
||||
For Each pos As DataRow In SR_DT.Rows
|
||||
|
||||
'AddHandler rpt.Detail.Format, Sub()
|
||||
' ' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString
|
||||
' ' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString
|
||||
Dim SteuerpflichtigerBetrag As Double = 0
|
||||
Dim SteuerfreierBetrag As Double = 0
|
||||
Dim anzahl As Double = 0
|
||||
Dim bez As String = ""
|
||||
|
||||
' rpt.lblLeistungNr.Text = checkNull(rpt.Fields.Item("LeistungsNr").Value)
|
||||
' rpt.txtLeistung.Text = checkNull(rpt.Fields.Item("LeistungsBez").Value)
|
||||
Dim einzepreis = 0
|
||||
|
||||
' If Not ROW("Lastschrift") Then
|
||||
' If checkNull(rpt.Fields.Item("LeistungsNr").Value) = "750" Then
|
||||
' strText = "Pos. 750 kann bei Zahlung innerhalb 10 Tagen gekürzt werden."
|
||||
' End If
|
||||
' End If
|
||||
einzelpreis = IIf(pos.Item("SteuerpflichtigerBetrag") > 0, pos.Item("SteuerpflichtigerBetrag") / checkNull(pos.Item("Anzahl")), pos.Item("SteuerfreierBetrag") / checkNull(pos.Item("Anzahl")))
|
||||
|
||||
|
||||
' If rpt.Fields.Item("Belegdaten") IsNot Nothing AndAlso rpt.Fields.Item("Belegdaten").Value IsNot Nothing Then
|
||||
' rpt.txtLeistung.Text &= vbNewLine & checkNull(rpt.Fields.Item("Belegdaten").Value)
|
||||
' End If
|
||||
|
||||
' rpt.lblAnzahl.Text = checkNull(rpt.Fields.Item("Anzahl").Value)
|
||||
' ' rpt.lblBetrag.Text = rpt.Fields.Item("betrag").Value
|
||||
|
||||
' Dim stPfl As Double = 0
|
||||
' Dim stFrei As Double = 0
|
||||
|
||||
' If IsNumeric(checkNull(rpt.Fields.Item("SteuerpflichtigerBetrag").Value)) Then stPfl = CDbl(rpt.Fields.Item("SteuerpflichtigerBetrag").Value())
|
||||
' rpt.lblSteuerpflichtig.Text = If(stPfl <> 0, CDbl(stPfl).ToString("N2", Globalization.CultureInfo.CurrentCulture), "")
|
||||
' If IsNumeric(checkNull(rpt.Fields.Item("SteuerfreierBetrag").Value)) Then stFrei = CDbl(rpt.Fields.Item("SteuerfreierBetrag").Value())
|
||||
' rpt.lblSteuerfrei.Text = If(stFrei <> 0, CDbl(stFrei).ToString("N2", Globalization.CultureInfo.CurrentCulture), "")
|
||||
|
||||
|
||||
' sumSteuerpflichtig += stPfl
|
||||
' sumSteuerfrei += stFrei
|
||||
|
||||
' ' Anz += 1
|
||||
' ' gesAnz += 1
|
||||
|
||||
' ' If Anz Mod 2 = 0 Then
|
||||
' ' rpt.Detail.BackColor = Color.FromArgb(240, 240, 240)
|
||||
' 'Else
|
||||
' ' rpt.Detail.BackColor = Color.White
|
||||
' ' End If
|
||||
' 'rpt.Line10.Height = rpt.Detail.Height
|
||||
' End Sub
|
||||
|
||||
'AddHandler rpt.ReportFooter1.Format, Sub()
|
||||
' rpt.lblSteuerpflichtigGes.Text = If(sumSteuerpflichtig <> 0, (sumSteuerpflichtig).ToString("N2", CultureInfo.CurrentCulture), "")
|
||||
' rpt.lblSteuerfreiGes.Text = If(sumSteuerfrei <> 0, (sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture), "")
|
||||
|
||||
|
||||
' Dim steuerProz As Double = 0
|
||||
' Dim steuerBez As String = ""
|
||||
|
||||
' Dim dt2 As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & ROW("Steuerschlüssel") & "'", "FMZOLL")
|
||||
' If dt2 IsNot Nothing AndAlso dt2.Rows.Count > 0 Then
|
||||
' steuerProz = dt2.Rows(0)(0)
|
||||
' steuerBez = dt2.Rows(0)(1)
|
||||
' End If
|
||||
|
||||
' rpt.lblSteuersatz.Text = steuerBez
|
||||
' rpt.lblSteuerbetrag.Text = If((sumSteuerpflichtig * steuerProz) <> 0, (sumSteuerpflichtig * steuerProz).ToString("N2", CultureInfo.CurrentCulture), "")
|
||||
' rpt.lblZWSumme.Text = (sumSteuerpflichtig + sumSteuerfrei).ToString("N2", CultureInfo.CurrentCulture)
|
||||
' rpt.lblSumme.Text = (sumSteuerpflichtig + sumSteuerfrei + (sumSteuerpflichtig * steuerProz)).ToString("N2", CultureInfo.CurrentCulture)
|
||||
' rpt.Label46.Text = If(ROW("Währungscode") IsNot DBNull.Value, ROW("Währungscode"), "EUR")
|
||||
|
||||
' If sumSteuerfrei = 0 Or sumSteuerpflichtig = 0 Then
|
||||
' rpt.lblZwText.Visible = False
|
||||
' rpt.lblZWSumme.Visible = False
|
||||
' End If
|
||||
Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem(
|
||||
name:=checkNull(pos.Item("LeistungsBez")),
|
||||
billedQuantity:=Convert.ToDecimal(checkNull(pos.Item("Anzahl"))),
|
||||
unitCode:=QuantityCodes.C62, ' immer in Stück
|
||||
netUnitPrice:=Convert.ToDecimal(einzelpreis),
|
||||
grossUnitPrice:=Convert.ToDecimal(einzelpreis),
|
||||
categoryCode:=IIf(pos.Item("SteuerpflichtigerBetrag") > 0, TaxCategoryCodes.S, TaxCategoryCodes.Z),
|
||||
taxPercent:=IIf(pos.Item("SteuerpflichtigerBetrag") > 0, Convert.ToDecimal(steuerProzent * 100), 0),
|
||||
taxType:=IIf(pos.Item("SteuerpflichtigerBetrag") > 0, TaxTypes.VAT, TaxTypes.VAT)
|
||||
)
|
||||
Dim netUnitPrice = Convert.ToDecimal(einzelpreis)
|
||||
Dim netPricePos = netUnitPrice * Convert.ToDecimal(checkNull(pos.Item("Anzahl")))
|
||||
sumNetto += netPricePos
|
||||
|
||||
|
||||
|
||||
'For Each search As GrapeCity.ActiveReports.SectionReportModel.ARControl In rpt.Detail.Controls
|
||||
' If search.Name = "lblAnzahl" Then
|
||||
' anzahl = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text], 0)
|
||||
' End If
|
||||
|
||||
' If search.Name = "lblSteuerpflichtig" Then
|
||||
' SteuerpflichtigerBetrag = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text], 0)
|
||||
' End If
|
||||
|
||||
' End Sub
|
||||
' If search.Name = "lblSteuerfrei" Then
|
||||
' SteuerfreierBetrag = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.Label).[Text], 0)
|
||||
' End If
|
||||
|
||||
' If search.Name = "txtLeistung" Then
|
||||
' bez = IIf(DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.TextBox).[Text] <> "", DirectCast(search, GrapeCity.ActiveReports.SectionReportModel.TextBox).[Text], 0)
|
||||
' End If
|
||||
|
||||
AddHandler rpt.Detail.Format, Sub()
|
||||
'If bez <> "" Then
|
||||
|
||||
Dim einzelpreis As Double = IIf(rpt.Fields.Item("SteuerpflichtigerBetrag").Value > 0, rpt.Fields.Item("SteuerpflichtigerBetrag").Value / checkNull(rpt.Fields.Item("Anzahl").Value), rpt.Fields.Item("SteuerfreierBetrag").Value / checkNull(rpt.Fields.Item("Anzahl").Value))
|
||||
' einzelpreis = IIf(SteuerpflichtigerBetrag > 0, SteuerpflichtigerBetrag / checkNull(anzahl), SteuerfreierBetrag / checkNull(anzahl))
|
||||
|
||||
Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem(
|
||||
name:=checkNull(rpt.Fields.Item("LeistungsBez").Value),
|
||||
billedQuantity:=Convert.ToDecimal(checkNull(rpt.Fields.Item("Anzahl").Value)),
|
||||
unitCode:=QuantityCodes.C62, ' immer in Stück
|
||||
netUnitPrice:=Convert.ToDecimal(einzelpreis),
|
||||
grossUnitPrice:=Convert.ToDecimal(einzelpreis),
|
||||
categoryCode:=IIf(rpt.Fields.Item("SteuerpflichtigerBetrag").Value > 0, TaxCategoryCodes.S, TaxCategoryCodes.Z),
|
||||
taxPercent:=IIf(rpt.Fields.Item("SteuerpflichtigerBetrag").Value > 0, Convert.ToDecimal(steuerProzent * 100), 0),
|
||||
taxType:=IIf(rpt.Fields.Item("SteuerpflichtigerBetrag").Value > 0, TaxTypes.VAT, TaxTypes.VAT)
|
||||
)
|
||||
Dim netUnitPrice = Convert.ToDecimal(einzelpreis)
|
||||
Dim netPricePos = netUnitPrice * Convert.ToDecimal(checkNull(rpt.Fields.Item("Anzahl").Value))
|
||||
sumNetto += netPricePos
|
||||
' Dim tradeLineItemNew As TradeLineItem = desc.AddTradeLineItem(
|
||||
' name:=checkNull(bez),
|
||||
' billedQuantity:=Convert.ToDecimal(checkNull(anzahl)),
|
||||
' unitCode:=QuantityCodes.C62, ' immer in Stück
|
||||
' netUnitPrice:=Convert.ToDecimal(einzelpreis),
|
||||
' grossUnitPrice:=Convert.ToDecimal(einzelpreis),
|
||||
' categoryCode:=IIf(SteuerpflichtigerBetrag > 0, TaxCategoryCodes.S, TaxCategoryCodes.Z),
|
||||
' taxPercent:=IIf(SteuerpflichtigerBetrag > 0, Convert.ToDecimal(steuerProzent * 100), 0),
|
||||
' taxType:=IIf(SteuerpflichtigerBetrag > 0, TaxTypes.VAT, TaxTypes.VAT)
|
||||
' )
|
||||
' Dim netUnitPrice = Convert.ToDecimal(einzelpreis)
|
||||
' Dim netPricePos = netUnitPrice * Convert.ToDecimal(checkNull(anzahl))
|
||||
' sumNetto += netPricePos
|
||||
|
||||
End Sub
|
||||
' bez = ""
|
||||
|
||||
' End If
|
||||
|
||||
'Next
|
||||
|
||||
Next
|
||||
|
||||
|
||||
'Summe aller Rechnungspositions-Nettobeträge der Rechnung
|
||||
@@ -3850,6 +3824,7 @@ Public Class cFakturierung
|
||||
sumSteuerpflichtig += stPfl
|
||||
sumSteuerfrei += stFrei
|
||||
|
||||
|
||||
' Anz += 1
|
||||
' gesAnz += 1
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ Public Class cFirmen
|
||||
Property Firma_E_Mail_Mahnungen As Object = Nothing
|
||||
Property Firma_Webadresse As Object = Nothing ' NVARCHAR (40) NULL,
|
||||
Property Firma_LandKz As Object = Nothing ' NVARCHAR (40) NULL,
|
||||
Property Firma_Steuernummer As Object = Nothing
|
||||
|
||||
Property Firmengruppe As Object = Nothing
|
||||
|
||||
@@ -72,6 +73,7 @@ Public Class cFirmen
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_Webadresse", Firma_Webadresse))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_LandKz", Firma_LandKz))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firmengruppe", Firmengruppe))
|
||||
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_Steuernummer", Firma_Steuernummer))
|
||||
|
||||
|
||||
Return list
|
||||
|
||||
Reference in New Issue
Block a user