Provisionsabrechnung
This commit is contained in:
118
SDL/Speditionsbuch/frmProvisionisverguetung.vb
Normal file
118
SDL/Speditionsbuch/frmProvisionisverguetung.vb
Normal file
@@ -0,0 +1,118 @@
|
||||
Imports com.sun.xml.internal.rngom
|
||||
Imports javax.print.attribute.standard
|
||||
Imports Org.BouncyCastle.Math
|
||||
Imports VERAG_PROG_ALLGEMEIN
|
||||
|
||||
Public Class frmProvisionisverguetung
|
||||
|
||||
Dim loaded = False
|
||||
Private Sub frmProvisionisverguetung_load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
txtAbfertDat._value = CDate("01." & Now.Month & "." & Now.Year).AddMonths(-1)
|
||||
txtAbfertDatBis._value = CDate("01." & Now.Month & "." & Now.Year).AddDays(-1)
|
||||
loaded = True
|
||||
initDGV()
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Sub initDGV()
|
||||
If Not loaded Then Exit Sub
|
||||
|
||||
With MyDatagridview1
|
||||
.Columns.Clear()
|
||||
|
||||
If txtAbfertDat._value = "" Then Exit Sub
|
||||
If txtAbfertDatBis._value = "" Then Exit Sub
|
||||
|
||||
.SET_SQL("select Firma_ID,AdressenNr,Ordnungsbegriff,kde_Provisionsverguetung_GSAnKdNr GS_AnKdNr,(select Ordnungsbegriff from adressen where AdressenNr = kde_Provisionsverguetung_GSAnKdNr) GS_An,
|
||||
kde_Provisionsverguetung_ProzentDL ProvProz,cast(min(Abfertigungsdatum)as date)MinAbfDat,cast(Max(Abfertigungsdatum)as date)MaxAbfDat,
|
||||
count(DISTINCT RechnungsNr) Anzahl,sum(rp.SteuerfreierBetrag+rp.SteuerpflichtigerBetrag) Umsatz,sum(rp.SteuerfreierBetrag+rp.SteuerpflichtigerBetrag)*kde_Provisionsverguetung_ProzentDL Provision
|
||||
-- Hier die Liste aller Rechnungsnummern mit Komma getrennt
|
||||
,STUFF((
|
||||
SELECT ',' + CAST(RA2.RechnungsNr as varchar(50))
|
||||
FROM Rechnungsausgang RA2
|
||||
INNER JOIN RechnungsausgangPositionen RP2 ON RA2.RK_ID = RP2.RK_ID
|
||||
INNER JOIN Leistungen LG2 ON RP2.LeistungsNr = LG2.LeistungsNr
|
||||
INNER JOIN Filialen FL2 ON RA2.FilialenNr = FL2.FilialenNr
|
||||
WHERE RA2.RechnungsKundenNr = Adressen.AdressenNr
|
||||
AND LG2.Provisionsabrechnung = 1
|
||||
AND FL2.Firma = '" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "'
|
||||
AND RA2.RechnungsDatum BETWEEN '" & CDate(txtAbfertDat._value).ToShortDateString & "' AND '" & CDate(txtAbfertDatBis._value).ToShortDateString & "'
|
||||
GROUP BY RA2.RechnungsNr
|
||||
FOR XML PATH(''), TYPE
|
||||
).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS RechnungsNrListe
|
||||
-- Ende Liste aller Rechnungsnummern
|
||||
FROM Adressen inner join Kunden on KundenNr=AdressenNr inner join tblKundenErweitert on KundenNr=kde_KundenNr
|
||||
left join Rechnungsausgang RA on RechnungsKundenNr=AdressenNr
|
||||
inner join RechnungsausgangPositionen RP on RA.RK_ID=RP.RK_ID
|
||||
inner join Leistungen LG on rp.LeistungsNr= LG.LeistungsNr
|
||||
inner join Filialen FL on RA.FilialenNr=FL.FilialenNr
|
||||
where kde_Provisionsverguetung=1
|
||||
and LG.Provisionsabrechnung=1
|
||||
and kde_Provisionsverguetung_ProzentDL is not null
|
||||
and FL.Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "'
|
||||
and RechnungsDatum between '" & CDate(txtAbfertDat._value).ToShortDateString & "' AND '" & CDate(txtAbfertDatBis._value).ToShortDateString & "'
|
||||
group by Firma_ID,AdressenNr,Ordnungsbegriff, kde_Provisionsverguetung_GSAnKdNr,kde_Provisionsverguetung_ProzentDL
|
||||
order by GS_AnKdNr,Ordnungsbegriff
|
||||
", "FMZOLL")
|
||||
.LOAD()
|
||||
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
|
||||
|
||||
.Columns("Firma_ID").Visible = False
|
||||
.Columns("RechnungsNrListe").Visible = False
|
||||
'.Columns("AdressenNr").Visible = False
|
||||
End With
|
||||
End Sub
|
||||
|
||||
Private Sub txtAbfertDat_ValueChanged() Handles txtAbfertDat.ValueChanged, txtAbfertDatBis.ValueChanged
|
||||
initDGV()
|
||||
End Sub
|
||||
|
||||
Private Sub cbxNurOffene_CheckedChanged(sender As Object, e As EventArgs) Handles cbxNurOffene.CheckedChanged
|
||||
initDGV()
|
||||
End Sub
|
||||
|
||||
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
If MyDatagridview1.SelectedRows.Count = 0 Then
|
||||
MsgBox("Bitte zuerst einen oder mehrere Einträge auswählen!")
|
||||
Exit Sub
|
||||
End If
|
||||
Dim PDF_LIST As New List(Of String)
|
||||
For Each row In MyDatagridview1.SelectedRows
|
||||
Dim adrNr = row.Cells("AdressenNr").Value
|
||||
Dim gsAnKdNr = row.Cells("GS_AnKdNr").Value
|
||||
Dim provProz = row.Cells("ProvProz").Value
|
||||
Dim Firma_ID = row.Cells("Firma_ID").Value
|
||||
|
||||
If row.Cells("RechnungsNrListe").Value Is DBNull.Value Then Exit Sub
|
||||
If row.Cells("RechnungsNrListe").Value = "" Then Exit Sub
|
||||
|
||||
Dim RechnungsNrListe = row.Cells("RechnungsNrListe").Value.ToString
|
||||
' In eine Liste von Integer umwandeln
|
||||
Dim RG_LIST As List(Of Integer) = RechnungsNrListe.Split(","c).Where(Function(s) Not String.IsNullOrWhiteSpace(s)).Select(Function(s) Convert.ToInt32(s)).ToList()
|
||||
If RG_LIST.Count > 0 Then
|
||||
' Provisionsabrechnung erstellen
|
||||
Dim pathPDF_SammelBericht = "" 'DATENVERVER_OPTIONS.getTMPPath("\Provisionsabrechnung_" & Now.ToString("yyyyMMdd_HHmmss") & ".pdf", ".pdf")
|
||||
cFakturierung.doSAMMELRechnungDruck_Rechnungsdruck_Sammelrechnungsbericht(-1, Now, 4, pathPDF_SammelBericht, "", "PROVISIONSABRECHNUNG", Nothing, Nothing, RG_LIST, Firma_ID)
|
||||
MsgBox(pathPDF_SammelBericht)
|
||||
If pathPDF_SammelBericht <> "" Then PDF_LIST.Add(pathPDF_SammelBericht)
|
||||
End If
|
||||
Next
|
||||
If PDF_LIST.Count = 1 Then
|
||||
Process.Start(PDF_LIST(0))
|
||||
ElseIf PDF_LIST.Count > 1 Then
|
||||
Dim merge_pathPDF_SammelBericht = DATENVERVER_OPTIONS.getTMPPath("\Provisionsabrechnung_Merge_" & Now.ToString("yyyyMMdd_HHmmss") & ".pdf", ".pdf",, False)
|
||||
If FormularManagerNEU.MergePdfFiles(PDF_LIST, merge_pathPDF_SammelBericht) Then
|
||||
Process.Start(merge_pathPDF_SammelBericht)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
End Try
|
||||
Me.Cursor = Cursors.Default
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user