1104 lines
51 KiB
VB.net
1104 lines
51 KiB
VB.net
Imports System.Data.OleDb
|
|
Imports System.IO
|
|
|
|
Public Class frmMDMDatenverarbetiung
|
|
|
|
Public LIEFERANT = ""
|
|
|
|
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
|
|
Private Sub frmPloseDatenverarbetiung_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
Me.Top = 0
|
|
Me.Height = My.Computer.Screen.WorkingArea.Height
|
|
End Sub
|
|
|
|
Private Sub Button4_Click(sender As Object, e As EventArgs)
|
|
|
|
End Sub
|
|
|
|
Private Sub pnl_Paint(sender As Object, e As PaintEventArgs) Handles pnl.Paint
|
|
|
|
End Sub
|
|
|
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
|
Select Case LIEFERANT
|
|
Case "PLOSE" : genSummenbericht_PLOSE()
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
|
|
|
|
MyDatagridview1.ClearSelection()
|
|
|
|
Button3.BackColor = Color.White
|
|
Button3.ForeColor = Color.Black
|
|
|
|
Dim pruef As Boolean = False
|
|
Select Case LIEFERANT
|
|
Case "PLOSE" : pruef = pruefData_PLOSE()
|
|
End Select
|
|
|
|
cbx.Checked = pruef
|
|
If pruef Then
|
|
Button3.BackColor = Color.Green
|
|
Button3.ForeColor = Color.White
|
|
Else
|
|
Button3.BackColor = Color.Red
|
|
Button3.ForeColor = Color.White
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub btnDatenLaden_Click(sender As Object, e As EventArgs) Handles btnDatenLaden.Click
|
|
init()
|
|
End Sub
|
|
|
|
Sub init()
|
|
txtAnzahl.Text = ""
|
|
txtPruefsummeNetto.Text = ""
|
|
|
|
Select Case LIEFERANT
|
|
Case "PLOSE" : initDgv_PLOSE()
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click
|
|
Dim errorTmp = False
|
|
Select Case LIEFERANT
|
|
Case "PLOSE"
|
|
If genRGAtt_PLOSE() Then
|
|
If MautD_Befuellen() Then
|
|
setFakturiertPLOSE()
|
|
End If
|
|
End If
|
|
End Select
|
|
End Sub
|
|
|
|
Sub genSummenbericht_PLOSE()
|
|
Dim displayFilter = False
|
|
Dim sqlstr As String = ""
|
|
|
|
sqlstr &= " SELECT count(*) Anzahl ,plose_ProduktCode"
|
|
sqlstr &= ",max(plose_Produktbeschreibung) as plose_Produktbeschreibung"
|
|
sqlstr &= ",sum(plose_Menge) as plose_Menge"
|
|
sqlstr &= ",sum(plose_Preis) as plose_Preis"
|
|
sqlstr &= ",sum(plose_NettobetragWaehrungAbbuchung) as plose_NettobetragWaehrungAbbuchung"
|
|
sqlstr &= ",sum(plose_MWSTBetragWaehrungAbbuchung) as plose_MWSTBetragWaehrungAbbuchung"
|
|
sqlstr &= ",sum(plose_BruttobetragWaehrungAbbuchung) as plose_BruttobetragWaehrungAbbuchung "
|
|
sqlstr &= " FROM tblPLOSE_Details"
|
|
sqlstr &= " WHERE 1=1 "
|
|
|
|
sqlstr &= " AND plose_DatumTransaktion between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "' "
|
|
sqlstr &= " AND plose_Fakturiert =0 "
|
|
|
|
sqlstr &= " group by plose_ProduktCode"
|
|
sqlstr &= " order by plose_ProduktCode"
|
|
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
|
|
'DataGridView.DataSource = dt
|
|
|
|
|
|
Dim print As New frmPrintLayout
|
|
print.Text = "PLOSE"
|
|
|
|
Dim rpt As New rptPLOSE_TransaktionenSumary
|
|
|
|
rpt.DataSource = dt
|
|
|
|
|
|
'If cbxProdukt.Checked Then
|
|
' rpt.GroupHeader2.DataField = "prod_descr"
|
|
'Else
|
|
' rpt.GroupHeader2.Visible = False
|
|
' rpt.GroupFooter2.Visible = False
|
|
'End If
|
|
|
|
|
|
|
|
Dim sum = 0
|
|
rpt.lblUeberschrift.Text = "PLOSE Summenbericht " & dat_Sum_Von.Text & " bis " & dat_Sum_Bis.Text
|
|
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
|
|
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
|
|
|
|
'Dim cnt As Integer = 0
|
|
rpt.lblDat.Text = Now.ToLongDateString
|
|
|
|
|
|
Dim sumPreis As Double = 0
|
|
Dim sumNetto As Double = 0
|
|
Dim sumMWST As Double = 0
|
|
Dim sumBrutto As Double = 0
|
|
Dim sumMenge As Double = 0
|
|
|
|
AddHandler rpt.Detail.Format, Sub()
|
|
' rpt.lblProduktBeschreibung.Text = isDbnullEmpty(rpt.Fields.Item("BC_DESCR").Value, "")
|
|
rpt.lblAnzahl.Text = SQL.isDbnullEmpty(rpt.Fields.Item("Anzahl").Value, "")
|
|
rpt.lblProdukt.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plose_ProduktCode").Value, "") & " - " & SQL.isDbnullEmpty(rpt.Fields.Item("plose_Produktbeschreibung").Value, "")
|
|
|
|
rpt.lblMenge.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_Menge").Value, 0, "")
|
|
' rpt.lblPreis.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_Preis").Value, 2, "")
|
|
rpt.lblNetto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_NettobetragWaehrungAbbuchung").Value, 2, "")
|
|
rpt.lblMWST.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_MWSTBetragWaehrungAbbuchung").Value, 2, "")
|
|
rpt.lblBrutto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_BruttobetragWaehrungAbbuchung").Value, 2, "")
|
|
|
|
|
|
|
|
sumMenge += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_Menge").Value, 4, 0)
|
|
' sumPreis += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_Preis").Value, 4, 0)
|
|
sumNetto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_NettobetragWaehrungAbbuchung").Value, 4, 0)
|
|
sumMWST += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_MWSTBetragWaehrungAbbuchung").Value, 4, 0)
|
|
sumBrutto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_BruttobetragWaehrungAbbuchung").Value, 4, 0)
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
AddHandler rpt.ReportFooter1.Format, Sub()
|
|
rpt.lblSumMenge.Text = sumMenge.ToString("N0")
|
|
'rpt.lblSumPreis.Text = sumPreis.ToString("N2")
|
|
rpt.lblSumNetto.Text = sumNetto.ToString("N2")
|
|
rpt.lblSumMwst.Text = sumMWST.ToString("N2")
|
|
rpt.lblSumBrutto.Text = sumBrutto.ToString("N2")
|
|
|
|
End Sub
|
|
|
|
print.Viewer.LoadDocument(rpt)
|
|
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
|
|
print.Show()
|
|
End Sub
|
|
|
|
|
|
Sub initDgv_PLOSE()
|
|
With MyDatagridview1
|
|
.Columns.Clear()
|
|
.SET_SQL(" SELECT plose_POLSEKundennummer, count(*) Anzahl,plose_ProduktCode,max(plose_Produktbeschreibung) as plose_Produktbeschreibung, sum(plose_Menge) as plose_Menge,sum(plose_Preis) as plose_Preis,sum(plose_NettobetragWaehrungAbbuchung) as plose_NettobetragWaehrungAbbuchung,sum(plose_MWSTBetragWaehrungAbbuchung) as plose_MWSTBetragWaehrungAbbuchung,sum(plose_BruttobetragWaehrungAbbuchung) as plose_BruttobetragWaehrungAbbuchung
|
|
FROM tblPLOSE_Details
|
|
WHERE 1 = 1
|
|
And plose_DatumTransaktion between '" & dat_Sum_Von.Value & "' and '" & dat_Sum_Bis.Value & "'
|
|
AND plose_Fakturiert=0
|
|
group by plose_POLSEKundennummer,plose_ProduktCode
|
|
order by plose_POLSEKundennummer,plose_ProduktCode", "FMZOLL")
|
|
.LOAD()
|
|
If .Columns.Count > 0 Then
|
|
|
|
.Columns("plose_POLSEKundennummer").HeaderText = "PLOSE KdNr"
|
|
.Columns("plose_ProduktCode").HeaderText = "ProduktCode"
|
|
.Columns("plose_Produktbeschreibung").HeaderText = "Beschreibung"
|
|
.Columns("plose_Produktbeschreibung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("plose_Menge").HeaderText = "Menge"
|
|
.Columns("plose_Preis").HeaderText = "Preis"
|
|
.Columns("plose_NettobetragWaehrungAbbuchung").HeaderText = "Netto"
|
|
.Columns("plose_MWSTBetragWaehrungAbbuchung").HeaderText = "MWST"
|
|
.Columns("plose_BruttobetragWaehrungAbbuchung").HeaderText = "Brutto"
|
|
|
|
'.Columns("VERAGLeistungsNr").ReadOnly = False
|
|
'.Columns("VERAGKdNr").ReadOnly = False
|
|
|
|
'For Each r As DataGridViewColumn In .Columns
|
|
' If r.Name = "VERAGLeistungsNr" Or r.Name = "VERAGKdNr" Then
|
|
' r.ReadOnly = False
|
|
' Else
|
|
' r.ReadOnly = True
|
|
' End If
|
|
'Next
|
|
|
|
|
|
Dim c As New DataGridViewTextBoxColumn
|
|
c.Name = "VERAGKdNr"
|
|
c.HeaderText = "VERAG KdNr"
|
|
c.Width = 100
|
|
.Columns.Insert(1, c)
|
|
|
|
c = New DataGridViewTextBoxColumn
|
|
c.Name = "VERAGLeistungsNr"
|
|
c.HeaderText = "VERAG/PLOSE LeistungsNr."
|
|
c.Width = 100
|
|
.Columns.Insert(2, c)
|
|
|
|
c = New DataGridViewTextBoxColumn
|
|
c.Name = "KundeOffertenNr"
|
|
c.HeaderText = "Kunde OffertenNr."
|
|
c.Width = 100
|
|
.Columns.Insert(3, c)
|
|
|
|
c = New DataGridViewTextBoxColumn
|
|
c.Name = "KundeLeistungsNr"
|
|
c.HeaderText = "Kunde LeistungsNr."
|
|
c.Width = 100
|
|
.Columns.Insert(4, c)
|
|
|
|
|
|
|
|
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
|
|
|
|
End If
|
|
|
|
Dim sumBto As Double = 0
|
|
Dim sumNto As Double = 0
|
|
For Each r As DataGridViewRow In .Rows
|
|
sumBto += If(IsNumeric(r.Cells("plose_BruttobetragWaehrungAbbuchung").Value), CDbl(r.Cells("plose_BruttobetragWaehrungAbbuchung").Value), 0)
|
|
sumNto += If(IsNumeric(r.Cells("plose_NettobetragWaehrungAbbuchung").Value), CDbl(r.Cells("plose_NettobetragWaehrungAbbuchung").Value), 0)
|
|
Next
|
|
|
|
txtAnzahl.Text = .Rows.Count
|
|
txtPruefsummeNetto.Text = sumNto.ToString("C2")
|
|
txtPruefsummeBrutto.Text = sumBto.ToString("CS2")
|
|
.ClearSelection()
|
|
|
|
End With
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
|
|
initLieferant("PLOSE", sender)
|
|
End Sub
|
|
|
|
Sub initLieferant(l As String, btn As Button)
|
|
MyDatagridview1.DataSource = Nothing
|
|
Me.LIEFERANT = l
|
|
Panel3.Controls.Clear()
|
|
|
|
For Each c As Button In FlowLayoutPanel.Controls
|
|
If c Is btn Then
|
|
c.BackColor = Color.Wheat
|
|
Else
|
|
c.BackColor = Color.FloralWhite
|
|
End If
|
|
Next
|
|
|
|
Select Case Me.LIEFERANT
|
|
Case "PLOSE"
|
|
Dim c As New usrCntlMDMDatenverarbeitungAuswertungen_PLOSE(Me)
|
|
Panel3.Controls.Add(c)
|
|
c.Dock = DockStyle.Fill
|
|
End Select
|
|
|
|
init()
|
|
End Sub
|
|
|
|
|
|
|
|
Function genRGAtt_PLOSE() As Boolean
|
|
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param("SELECT [AdressenNr],PLOSEKundenNr FROM tblPLOSE_Details INNER JOIN Adressen ON plose_POLSEKundennummer=PLOSEKundenNr where plose_Fakturiert = 0 AND plose_DatumTransaktion between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' group by [AdressenNr],PLOSEKundenNr ", "FMZOLL")
|
|
'MsgBox("Keine Daten!""SELECT [AdressenNr],PLOSEKundenNr FROM tblPLOSE_Details INNER JOIN Adressen ON plose_POLSEKundennummer=PLOSEKundenNr where AND plose_Fakturiert = 0 AND plose_DatumTransaktion between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' group by [AdressenNr],PLOSEKundenNr ")
|
|
If dt_Main Is Nothing OrElse dt_Main.Rows.Count = 0 Then
|
|
MsgBox("Keine Daten!")
|
|
Return False
|
|
End If
|
|
Dim cnt = 0
|
|
If vbYes = MsgBox("Es wurden Daten von " & dt_Main.Rows.Count & " Kunden gefunden " & vbNewLine & " Möchten Sie die Anhänge erstellen?", vbYesNoCancel) Then
|
|
Dim dir = "F:\FMZoll\Maut\PLOSE\" & Now.ToShortDateString
|
|
|
|
If Directory.Exists(dir) Then dir &= "_" & Now.ToShortTimeString.Replace(":", "")
|
|
Directory.CreateDirectory(dir)
|
|
For Each R_PLOSE In dt_Main.Rows
|
|
|
|
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
|
|
Dim verarbOK = True
|
|
If Not genPLOSE_SPEDBUCH_ByKdNr(R_PLOSE("AdressenNr"), R_PLOSE("PLOSEKundenNr"), dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString, SPEDBUCH) Then verarbOK = False
|
|
If Not genPLOSE_RECHNUNG_BySPEDBUCH(R_PLOSE("AdressenNr"), R_PLOSE("PLOSEKundenNr"), SPEDBUCH, dat_Sum_Von.Value, dat_Sum_Bis.Value) Then verarbOK = False
|
|
' ANHÄNGE WERDEN NCIHT BENÖTIGT::genPLOSEAttachmentByKdNr(R_PLOSE("AdressenNr"), R_PLOSE("PLOSEKundenNr"), dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString, dir)
|
|
|
|
If verarbOK Then
|
|
'UPDATE Fakturiert
|
|
SQL.doSQL("UPDATE tblPLOSE_Details SET plose_FakturiertDatum=GETDATE() WHERE plose_Fakturiert = 0 AND plose_DatumTransaktion between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' AND plose_POLSEKundennummer='" & R_PLOSE("PLOSEKundenNr") & "' ", "FMZOLL")
|
|
End If
|
|
|
|
If True Then 'cnt Mod 10 = 0 Then
|
|
txtPloseAnh_Einarbeitung.Text = cnt & " / " & dt_Main.Rows.Count
|
|
Dim proz As Double = (cnt / dt_Main.Rows.Count) * 100
|
|
pbPloseAnh_Proz.Value = proz
|
|
lblPloseAnh_Proz.Text = proz.ToString("N2") & " %"
|
|
'GroupBox12.Refresh()
|
|
My.Application.DoEvents()
|
|
End If
|
|
cnt += 1
|
|
Next
|
|
|
|
' ANHÄNGE WERDEN NCIHT BENÖTIGT::
|
|
'Alle Alangen im foglenden VZ löschen und die aktuellen kopieren:
|
|
'Dim dirAnhang = "F:\FMZoll\Maut\PLOSE\Anlagen\"
|
|
'If Directory.Exists(dirAnhang) Then 'Directory.Delete(dirAnhang, True)
|
|
' For Each f In Directory.GetFiles(dirAnhang)
|
|
' File.Delete(f)
|
|
' Next
|
|
'End If
|
|
'If Not Directory.Exists(dirAnhang) Then Directory.CreateDirectory(dirAnhang)
|
|
|
|
'For Each f In Directory.GetFiles(dir)
|
|
' File.Copy(f, dirAnhang & (New FileInfo(f)).Name)
|
|
'Next
|
|
|
|
'IN FMZOLL / DB MautD einfügen --> Mautbericht
|
|
'genPLOSEInsertMautD(dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString)
|
|
|
|
|
|
pbPloseAnh_Proz.Value = 100
|
|
txtPloseAnh_Einarbeitung.Text = dt_Main.Rows.Count & " / " & dt_Main.Rows.Count
|
|
lblPloseAnh_Proz.Text = "100.00 %"
|
|
|
|
Return True
|
|
End If
|
|
Return False
|
|
End Function
|
|
|
|
|
|
Function genPLOSEInsertMautD(von As Date, bis As Date) As Boolean
|
|
Try
|
|
pic.Visible = False
|
|
Dim displayFilter = False
|
|
Dim sqlstr As String = ""
|
|
|
|
sqlstr &= " SELECT 'PLOSE',AdressenNr,plose_Kennzeichen,plose_DatumTransaktion,plp_Land,isnull([tblPLOSE_Produktbeschreibung].plp_Description_EN,plose_Produktbeschreibung) as plose_Produktbeschreibung ,isnull(plose_NummerKarteGeraet,plose_Kontonummer) as plose_NummerKarteGeraet ,plose_BeschreibungEinfahrt,plose_BeschreibungAusfahrt,plose_NettobetragWaehrungAbbuchung,(plose_BruttobetragWaehrungAbbuchung-plose_NettobetragWaehrungAbbuchung) as Steuer,plose_BruttobetragWaehrungAbbuchung "
|
|
sqlstr &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode INNER JOIN Adressen on plose_POLSEKundennummer=PLOSEKundenNr and plp_LeistungsNr is not null "
|
|
sqlstr &= " WHERE 1=1 "
|
|
sqlstr &= " AND plose_Fakturiert=0 AND plp_Land NOT IN ('AT','DE') "
|
|
sqlstr &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' "
|
|
sqlstr &= " order by plp_Land, plose_DatumTransaktion"
|
|
|
|
|
|
' sqlstr &= " group by plose_ProduktCode"
|
|
' MsgBox(sqlstr)
|
|
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
|
|
Dim sqlstrAT As String = ""
|
|
|
|
sqlstrAT &= " SELECT 'PLOSE',AdressenNr,plose_Kennzeichen,plose_DatumTransaktion,plp_Land,'' as plose_Produktbeschreibung ,plose_NummerKarteGeraet as plose_NummerKarteGeraet ,'' as plose_BeschreibungEinfahrt,'' as plose_BeschreibungAusfahrt,sum(plose_NettobetragWaehrungAbbuchung) as plose_NettobetragWaehrungAbbuchung,sum(plose_BruttobetragWaehrungAbbuchung-plose_NettobetragWaehrungAbbuchung) as Steuer,sum(plose_BruttobetragWaehrungAbbuchung ) as plose_BruttobetragWaehrungAbbuchung "
|
|
sqlstrAT &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode INNER JOIN Adressen on plose_POLSEKundennummer=PLOSEKundenNr and plp_LeistungsNr is not null "
|
|
sqlstrAT &= " WHERE 1=1 "
|
|
sqlstrAT &= " AND plose_Fakturiert=0 AND plp_Land IN ('AT','DE') "
|
|
sqlstrAT &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' "
|
|
sqlstrAT &= " group by plp_Land, AdressenNr, plose_Kennzeichen,plose_DatumTransaktion,plose_NummerKarteGeraet"
|
|
sqlstrAT &= " order by plp_Land"
|
|
|
|
|
|
' sqlstr &= " group by plose_ProduktCode"
|
|
' MsgBox(sqlstr)
|
|
Dim dtAT As DataTable = SQL.loadDgvBySql_Param(sqlstrAT, "FMZOLL")
|
|
|
|
|
|
'AT ---> Gruppiert
|
|
If dtAT IsNot Nothing AndAlso dtAT.Rows.Count > 0 Then
|
|
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
|
|
dt = dtAT
|
|
Else
|
|
For Each r In dtAT.Rows
|
|
dt.Rows.Add({r(0), r(1), r(2), r(3), r(4), r(5), r(6), r(7), r(8), r(9), r(10), r(11)})
|
|
Next
|
|
End If
|
|
End If
|
|
|
|
Dim connectionString = ""
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
|
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\DEVELOPER\f\FMZoll\MautD.accdb"
|
|
Else
|
|
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\FMZOLL.verag.ost.dmn\f\FMZoll\MautD.accdb"
|
|
End If
|
|
|
|
Dim con As New OleDbConnection(connectionString)
|
|
Dim cmd As New OleDbCommand
|
|
Dim var1 As String
|
|
|
|
Dim adapter As OleDbDataAdapter = New OleDbDataAdapter()
|
|
Dim reader As OleDbDataReader = Nothing
|
|
|
|
|
|
|
|
If dt IsNot Nothing Then
|
|
con.Open()
|
|
For Each r In dt.Rows
|
|
Try
|
|
'Zeitstempel
|
|
|
|
Dim SQLQuery = "INSERT INTO tblMautbericht (Datenquelle,[Customer No],[Licence Plate Number],[Transaction Date],[Transaction Country],[Product description],[Card Number],[Entry Terminal],[Exit Terminal],[Nett Amount],[VAT Amount],[Total Amount]) VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10,@P11,@P12) "
|
|
' "SELECT * FROM DBParent WHERE P_ID = " & UniqeID & ";"
|
|
Using Command As New OleDbCommand(SQLQuery, con)
|
|
'Command.Parameters.AddWithValue("@P1", r(0).ToString)
|
|
'Command.Parameters.AddWithValue("@P2", CInt(r(1)))
|
|
'Command.Parameters.AddWithValue("@P3", r(2).ToString)
|
|
'Command.Parameters.AddWithValue("@P4", CDate(r(3)))
|
|
'Command.Parameters.AddWithValue("@P5", r(4).ToString)
|
|
'Command.Parameters.AddWithValue("@P6", r(5).ToString)
|
|
'Command.Parameters.AddWithValue("@P7", r(6).ToString)
|
|
'Command.Parameters.AddWithValue("@P8", r(7).ToString)
|
|
'Command.Parameters.AddWithValue("@P9", r(8).ToString)
|
|
'Command.Parameters.AddWithValue("@P10", CDbl(r(9)))
|
|
'Command.Parameters.AddWithValue("@P11", CDbl(r(10)))
|
|
'Command.Parameters.AddWithValue("@P12", CDbl(r(11)))
|
|
' .Parameters.AddWithValue("@P13", r(12))
|
|
|
|
Command.Parameters.AddWithValue("@P1", r(0))
|
|
Command.Parameters.AddWithValue("@P2", r(1))
|
|
Command.Parameters.AddWithValue("@P3", r(2))
|
|
Command.Parameters.AddWithValue("@P4", r(3))
|
|
Command.Parameters.AddWithValue("@P5", r(4))
|
|
Command.Parameters.AddWithValue("@P6", r(5))
|
|
Command.Parameters.AddWithValue("@P7", r(6))
|
|
Command.Parameters.AddWithValue("@P8", r(7))
|
|
Command.Parameters.AddWithValue("@P9", r(8))
|
|
Command.Parameters.AddWithValue("@P10", CDbl(r(9)))
|
|
Command.Parameters.AddWithValue("@P11", CDbl(r(10)))
|
|
Command.Parameters.AddWithValue("@P12", CDbl(r(11)))
|
|
|
|
Command.ExecuteNonQuery()
|
|
Command.Dispose()
|
|
End Using
|
|
|
|
'cmd = New OleDbCommand(SQLQuery, con)
|
|
'With cmd
|
|
' .Parameters.AddWithValue("@P1", r(0))
|
|
' .Parameters.AddWithValue("@P2", r(1))
|
|
' .Parameters.AddWithValue("@P3", r(2))
|
|
' .Parameters.AddWithValue("@P4", r(3))
|
|
' .Parameters.AddWithValue("@P5", r(4))
|
|
' .Parameters.AddWithValue("@P6", r(5))
|
|
' .Parameters.AddWithValue("@P7", r(6))
|
|
' .Parameters.AddWithValue("@P8", r(7))
|
|
' .Parameters.AddWithValue("@P9", r(8))
|
|
' .Parameters.AddWithValue("@P10", r(9))
|
|
' .Parameters.AddWithValue("@P11", r(10))
|
|
' .Parameters.AddWithValue("@P12", r(11))
|
|
' ' .Parameters.AddWithValue("@P13", r(12))
|
|
' cmd.Dispose()
|
|
' .ExecuteNonQuery()
|
|
'End With
|
|
|
|
Catch ex2 As System.Exception
|
|
MsgBox("err: " & ex2.Message & ex2.StackTrace)
|
|
|
|
Finally
|
|
If reader IsNot Nothing Then reader.Close()
|
|
End Try
|
|
|
|
|
|
Next
|
|
con.Close()
|
|
End If
|
|
pic.Visible = True
|
|
Return True
|
|
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
|
|
End Function
|
|
|
|
|
|
Function deleteMautD(Datenquelle As String) As Boolean
|
|
Try
|
|
Dim connectionString = ""
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
|
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\DEVELOPER\f\FMZoll\MautD.accdb"
|
|
Else
|
|
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\FMZOLL.verag.ost.dmn\f\FMZoll\MautD.accdb"
|
|
End If
|
|
|
|
Dim con As New OleDbConnection(connectionString)
|
|
Dim cmd As New OleDbCommand
|
|
Dim var1 As String
|
|
|
|
Dim adapter As OleDbDataAdapter = New OleDbDataAdapter()
|
|
Dim reader As OleDbDataReader = Nothing
|
|
|
|
|
|
Try
|
|
con.Open()
|
|
|
|
'Zeitstempel
|
|
Dim SQLQuery = "DELETE FROM tblMautbericht WHERE Datenquelle='" & Datenquelle & "' "
|
|
Using Command As New OleDbCommand(SQLQuery, con)
|
|
|
|
Command.ExecuteNonQuery()
|
|
Command.Dispose()
|
|
End Using
|
|
|
|
Catch ex2 As System.Exception
|
|
MsgBox("err: " & ex2.Message & ex2.StackTrace)
|
|
|
|
Finally
|
|
If reader IsNot Nothing Then reader.Close()
|
|
End Try
|
|
|
|
con.Close()
|
|
|
|
Return True
|
|
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
|
|
End Function
|
|
|
|
Function genPLOSEAttachmentByKdNr(KdNr As String, PLOSEKundenNr As String, von As Date, bis As Date, dir As String)
|
|
Try
|
|
|
|
Dim displayFilter = False
|
|
Dim sqlstr As String = ""
|
|
|
|
sqlstr &= " SELECT AdressenNr,tblPLOSE_Details.*,tblPLOSE_Produktbeschreibung.* "
|
|
sqlstr &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode INNER JOIN Adressen on plose_POLSEKundennummer=PLOSEKundenNr "
|
|
sqlstr &= " WHERE 1=1 "
|
|
sqlstr &= " AND plose_Fakturiert=0 "
|
|
sqlstr &= " AND AdressenNr = '" & KdNr & "' "
|
|
sqlstr &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' "
|
|
|
|
' sqlstr &= " group by plose_ProduktCode"
|
|
sqlstr &= " order by plp_Land, plose_DatumTransaktion"
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
|
|
|
|
Dim rpt As New rptPLOSE_Anhang
|
|
|
|
rpt.DataSource = dt
|
|
|
|
rpt.txtKunde.Text = KdNr & " " & New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr).FullName
|
|
rpt.lblRgDatum.Text = datPloseAnhang.Value.ToShortDateString
|
|
|
|
rpt.GroupHeaderKz.DataField = "plose_Kennzeichen" 'Gruppierung
|
|
|
|
Dim sumNetto As Double = 0
|
|
Dim sumMWST As Double = 0
|
|
Dim sumBrutto As Double = 0
|
|
|
|
Dim sumNettoKat As Double = 0
|
|
Dim sumMWSTKat As Double = 0
|
|
Dim sumBruttoKat As Double = 0
|
|
|
|
Dim sumNettoGes As Double = 0
|
|
Dim sumMWSTGes As Double = 0
|
|
Dim sumBruttoGes As Double = 0
|
|
|
|
Dim cntKat = 0
|
|
Dim cnt = 0
|
|
rpt.GroupFooterKat.Visible = False
|
|
|
|
AddHandler rpt.Detail.Format, Sub()
|
|
' If cnt = 0 Then
|
|
rpt.txtKunde.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plose_POLSEKundennummer").Value, "") & " " & SQL.isDbnullEmpty(rpt.Fields.Item("plose_Firmenname").Value, "")
|
|
' End If
|
|
|
|
' rpt.txtProduktBeschreibung.Text = sql.isDbnullEmpty(rpt.Fields.Item("BC_DESCR").Value, "")
|
|
Select Case "DE"
|
|
Case "DE" : rpt.txtProdukt.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plp_Description_DE").Value, "") 'sql.isDbnullEmpty(rpt.Fields.Item("plose_ProduktCode").Value, "") & " - " & sql.isDbnullEmpty(rpt.Fields.Item("plose_Produktbeschreibung").Value, "")
|
|
Case "IT" : rpt.txtProdukt.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plp_Description_IT").Value, "") 'sql.isDbnullEmpty(rpt.Fields.Item("plose_ProduktCode").Value, "") & " - " & sql.isDbnullEmpty(rpt.Fields.Item("plose_Produktbeschreibung").Value, "")
|
|
Case Else : rpt.txtProdukt.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plp_Description_EN").Value, "") 'sql.isDbnullEmpty(rpt.Fields.Item("plose_ProduktCode").Value, "") & " - " & sql.isDbnullEmpty(rpt.Fields.Item("plose_Produktbeschreibung").Value, "")
|
|
End Select
|
|
|
|
rpt.txtKartennummer.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plose_NummerKarteGeraet").Value, "")
|
|
rpt.txtEingang.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plose_BeschreibungEinfahrt").Value, "")
|
|
rpt.txtAusgang.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plose_BeschreibungAusfahrt").Value, "")
|
|
rpt.txtLand.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plp_Land").Value, "")
|
|
rpt.txtDatum.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plose_DatumTransaktion").Value, "")
|
|
|
|
rpt.txtNetto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_NettobetragWaehrungAbbuchung").Value, 2, "")
|
|
rpt.txtMWST.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_MWSTBetragWaehrungAbbuchung").Value, 2, "")
|
|
rpt.txtBrutto.Text = SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_BruttobetragWaehrungAbbuchung").Value, 2, "")
|
|
|
|
sumNetto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_NettobetragWaehrungAbbuchung").Value, 4, 0)
|
|
sumMWST += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_MWSTBetragWaehrungAbbuchung").Value, 4, 0)
|
|
sumBrutto += SQL.isDbnullEmptyDbl(rpt.Fields.Item("plose_BruttobetragWaehrungAbbuchung").Value, 4, 0)
|
|
cnt += 1
|
|
End Sub
|
|
|
|
AddHandler rpt.GroupHeaderKz.Format, Sub()
|
|
rpt.txtKennzeichen.Text = SQL.isDbnullEmpty(rpt.Fields.Item("plose_Kennzeichen").Value, "")
|
|
If rpt.txtKennzeichen.Text = "" Then rpt.lblKennzeichen.Visible = False
|
|
End Sub
|
|
AddHandler rpt.GroupHeaderKat.Format, Sub()
|
|
rpt.lblKategorie.Text = "MAUT REPORT"
|
|
End Sub
|
|
|
|
AddHandler rpt.GroupFooterKz.Format, Sub()
|
|
rpt.txtNettoKzSum.Text = sumNetto.ToString("N2")
|
|
rpt.txtMWSTKzSum.Text = sumMWST.ToString("N2")
|
|
rpt.txtBruttoKzSum.Text = sumBrutto.ToString("N2")
|
|
|
|
rpt.lblSummeKennzeichen.Text = rpt.lblSummeKennzeichen.Text.Replace("Kennzeichen", SQL.isDbnullEmpty(rpt.Fields.Item("plose_Kennzeichen").Value, ""))
|
|
End Sub
|
|
|
|
|
|
|
|
AddHandler rpt.GroupFooterKat.Format, Sub()
|
|
sumNettoKat += sumNetto
|
|
sumMWSTKat += sumMWST
|
|
sumBruttoKat += sumBrutto
|
|
sumNetto = 0
|
|
sumMWST = 0
|
|
sumBrutto = 0
|
|
|
|
rpt.txtNettoKatSum.Text = sumNettoKat.ToString("N2")
|
|
rpt.txtMWSTKatSum.Text = sumMWSTKat.ToString("N2")
|
|
rpt.txtBruttoKatSum.Text = sumBruttoKat.ToString("N2")
|
|
cntKat += 1
|
|
End Sub
|
|
AddHandler rpt.ReportFooter1.Format, Sub()
|
|
sumNettoGes += sumNettoKat
|
|
sumMWSTGes += sumMWSTKat
|
|
sumBruttoGes += sumBruttoKat
|
|
sumNettoKat = 0
|
|
sumMWSTKat = 0
|
|
sumBruttoKat = 0
|
|
|
|
rpt.txtNettoGesSum.Text = sumNettoGes.ToString("N2")
|
|
rpt.txtMWSTGEsSum.Text = sumMWSTGes.ToString("N2")
|
|
rpt.txtBruttoGesSum.Text = sumBruttoGes.ToString("N2")
|
|
|
|
|
|
|
|
'If cntKat <= 1 Then
|
|
' rpt.GroupFooterKat.Visible = False
|
|
'End If
|
|
End Sub
|
|
|
|
'print.Viewer.LoadDocument(rpt)
|
|
'print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
|
|
'print.Show()
|
|
|
|
|
|
|
|
Dim tmpPath = dir & "\" & KdNr & "_VERAG_Report.pdf"
|
|
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
|
|
rpt.Run(False)
|
|
p.NeverEmbedFonts = ""
|
|
p.Export(rpt.Document, tmpPath)
|
|
|
|
rpt.Dispose()
|
|
|
|
Return tmpPath
|
|
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return ""
|
|
|
|
End Function
|
|
|
|
Function genPLOSE_SPEDBUCH_ByKdNr(KdNr As String, PLOSEKundenNr As String, von As Date, bis As Date, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch)
|
|
Try
|
|
|
|
'Dim displayFilter = False
|
|
'Dim sqlstr As String = ""
|
|
|
|
'sqlstr &= " SELECT * "
|
|
'sqlstr &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode "
|
|
'sqlstr &= " WHERE 1=1 "
|
|
'sqlstr &= " AND plose_Fakturiert=0 "
|
|
'sqlstr &= " AND plose_POLSEKundennummer = '" & KdNr & "' "
|
|
'sqlstr &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' "
|
|
|
|
'' sqlstr &= " group by plose_ProduktCode"
|
|
'sqlstr &= " order by plp_Land, plose_DatumTransaktion"
|
|
|
|
'Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
|
|
|
|
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
|
|
SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
|
|
|
|
Dim OffertenNr = 80
|
|
Dim Abfertigungsart = 10
|
|
|
|
SPEDBUCH.FilialenNr = 4824
|
|
SPEDBUCH.AbfertigungsNr = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(SPEDBUCH.FilialenNr, Now.Year)
|
|
SPEDBUCH.NewUNTER_NR()
|
|
|
|
SPEDBUCH.Vermittler = AD.Ordnungsbegriff
|
|
SPEDBUCH.VermittlerKundenNr = KdNr
|
|
SPEDBUCH.VermittlerOffertenNr = OffertenNr
|
|
SPEDBUCH.Abfertigungsdatum = datPloseAnhang.Value.ToShortDateString
|
|
|
|
SPEDBUCH.Abfertigungsart = Abfertigungsart
|
|
SPEDBUCH.Bar = 0
|
|
SPEDBUCH.Fakturiert = 1
|
|
SPEDBUCH.AnzahlSonstiges = 1
|
|
SPEDBUCH.Abfertigungsanzahl = 1
|
|
|
|
SPEDBUCH.AvisUhrzeit = Nothing
|
|
SPEDBUCH.Umrechnungskurs = Nothing
|
|
SPEDBUCH.veoerz_basbtg = Nothing
|
|
SPEDBUCH.Sicherheitsbetrag = Nothing
|
|
|
|
SPEDBUCH.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
|
|
|
|
Return SPEDBUCH.SAVE
|
|
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
|
|
End Function
|
|
|
|
|
|
Function genPLOSE_RECHNUNG_BySPEDBUCH(KdNr As String, PLOSEKundenNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, von As Date, bis As Date)
|
|
Try
|
|
|
|
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.VermittlerKundenNr)
|
|
Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(SPEDBUCH.VermittlerKundenNr)
|
|
Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang
|
|
|
|
Dim OffertenNr = 80
|
|
Dim Abfertigungsart = 10
|
|
|
|
RG.FilialenNr = SPEDBUCH.FilialenNr
|
|
RG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr
|
|
RG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr
|
|
RG.UnterNr = RG.getMaxRGUnterNr()
|
|
|
|
RG.Buchungsjahr = cRKSV.getGJ(datPloseAnhang.Value) 'If(Now.Month = 1, Now.Year - 1, Now.Year)
|
|
RG.FilialenNr = SPEDBUCH.FilialenNr
|
|
RG.Abfertigungsdatum = SPEDBUCH.Abfertigungsdatum
|
|
RG.Sammelrechnung = 6 'MAUT/DIESEL
|
|
RG.BelegartenKz = "AR"
|
|
RG.BelegartenNr = 70
|
|
RG.BelegartenBez = "Rechnung"
|
|
RG.Vorzeichen = "+"
|
|
|
|
RG.VermittlerKundenNr = AD.AdressenNr
|
|
RG.VermittlerLandKz = AD.LandKz
|
|
RG.VermittlerName_1 = AD.Name_1
|
|
RG.VermittlerName_2 = AD.Name_2
|
|
RG.VermittlerOffertenNr = OffertenNr
|
|
RG.VermittlerOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, ""))
|
|
RG.VermittlerStraße = AD.Straße
|
|
RG.Rechnung_an = 3
|
|
RG.OffertenNr = OffertenNr
|
|
|
|
RG.KundenNrZentrale = KD.KundenNrZentrale
|
|
RG.RechnungsKundenNr = AD.AdressenNr
|
|
RG.RechnungsLandKz = AD.LandKz
|
|
RG.RechnungsName_1 = AD.Name_1
|
|
RG.RechnungsName_2 = AD.Name_2
|
|
RG.RechnungsOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, ""))
|
|
RG.RechnungsStraße = AD.Straße
|
|
|
|
RG.RechnungsUstIdKz = AD.UstIdKz
|
|
RG.RechnungsUstIdNr = AD.UstIdNr
|
|
RG.RechnungsUstIdGeprüft = AD.UstIdGeprüft
|
|
|
|
RG.Lastschrift = KD.Lastschrift
|
|
RG.Kunden_SVS = KD.SVS
|
|
RG.Steuerschlüssel = KD.Steuerschlüssel
|
|
RG.Vorkasse = KD.Vorkasse
|
|
RG.Vorlageprovision_Proz = KD.Vorlageprovision
|
|
RG.Kreditaufwendungen_Proz = KD.Kreditaufwendungen
|
|
RG.RechnungSprache = "DE"
|
|
|
|
|
|
RG.Anlage_1 = ""
|
|
RG.Anlage_2 = ""
|
|
RG.Anlage_3 = ""
|
|
RG.Anlage_4 = ""
|
|
RG.Anlage_5 = ""
|
|
RG.Anlage_6 = ""
|
|
|
|
|
|
RG.Text = ""
|
|
RG.EMailRechnungstext = Nothing ' ""
|
|
|
|
RG.Firma_ID = 15
|
|
RG.Nettozahlungsziel = KD.Zahlungsziel
|
|
|
|
RG.SteuerpflichtigerGesamtbetrag = 0
|
|
RG.SteuerfreierGesamtbetrag = 0
|
|
RG.Status = 0
|
|
|
|
RG.[Vorkosten] = 0
|
|
RG.[Erlös] = 0
|
|
RG.[Buchungsjahr] = 0
|
|
RG.[Währungscode] = "EUR"
|
|
RG.ReErfZeitstempel = Now
|
|
|
|
|
|
RG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
|
|
RG.Buchungsjahr = cRKSV.getGJ(RG.RechnungsDatum)
|
|
|
|
Dim sqlstr As String = ""
|
|
sqlstr &= " SELECT [plp_LeistungsNr],sum([plose_NettobetragWaehrungAbbuchung]) as plose_NettobetragWaehrungAbbuchung,sum([plose_MWSTBetragWaehrungAbbuchung]) as [plose_MWSTBetragWaehrungAbbuchung],sum([plose_BruttobetragWaehrungAbbuchung]) as [plose_BruttobetragWaehrungAbbuchung] "
|
|
sqlstr &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode "
|
|
sqlstr &= " WHERE 1=1 "
|
|
sqlstr &= " AND plose_Fakturiert=0 "
|
|
sqlstr &= " AND plose_POLSEKundennummer = '" & PLOSEKundenNr & "' "
|
|
sqlstr &= " AND plp_LeistungsNr is not null "
|
|
sqlstr &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' "
|
|
|
|
sqlstr &= " group by [plp_LeistungsNr]"
|
|
sqlstr &= " order by plp_LeistungsNr"
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
|
|
|
|
For Each r In dt.Rows
|
|
Dim BLNr = r("plp_LeistungsNr")
|
|
'Dim BProz = r("plose_BruttobetragWaehrungAbbuchung")
|
|
|
|
Dim NettoBetrag As Double = r("plose_NettobetragWaehrungAbbuchung")
|
|
Dim BruttoBetrag As Double = r("plose_BruttobetragWaehrungAbbuchung")
|
|
Dim LeistungsNr As Integer = r("plp_LeistungsNr")
|
|
|
|
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
|
|
|
|
allPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
|
|
|
|
Next
|
|
|
|
|
|
Dim dtSt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & RG.Steuerschlüssel & "'", "FMZOLL")
|
|
If dtSt IsNot Nothing AndAlso dtSt.Rows.Count > 0 Then
|
|
RG.Steuersatz_Proz = dtSt.Rows(0)(0)
|
|
End If
|
|
|
|
cFakturierung.setGesamtBetraege(RG)
|
|
|
|
RG.Text = cFakturierung.przRechnungstext(RG)
|
|
|
|
' Call usrCntlFaktAbrechnung.przSVSRVS(RG) ' SVS/RVS errechnen
|
|
' Call przSKR() ' SKR errechnen
|
|
|
|
'Call usrCntlFaktAbrechnung.przVL(RG) ' Vorlageprovision errechnen
|
|
'Call usrCntlFaktAbrechnung.przKapitalbereitstellung(RG) 'Kapitalbereitstellung errechnen
|
|
|
|
' boolFehler = fktBGeb(RECHNUNG.[RK_ID], RECHNUNG.Steuersatz_Proz, RECHNUNG.[Sammelrechnung], RECHNUNG.[BelegartenNr]) ' Bearbeitungsgebühr errechnen
|
|
|
|
' Call usrCntlFaktAbrechnung.przKA(RG) ' Kreditaufwendungen errechnen
|
|
Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen
|
|
Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen
|
|
|
|
Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen
|
|
|
|
If RG.SAVE Then
|
|
' FAKTURIERT eintragen
|
|
'For Each r In dt.Rows
|
|
' SQL.doSQL("UPDATE [tblPLOSE_Details]SET plose_Fakturiert=1, plose_FakturiertDatum='" & datPloseAnhang.Value & "' where plose_Id='" & r("plose_id") & "'", "FMZOLL")
|
|
'Next
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
Catch ex As System.Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return ""
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
Function allPlosePos(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, LeistungsNr As Integer, NettoBetrag As Double, BruttoBetrag As Double)
|
|
Try
|
|
|
|
For Each o In OFFERTE.POSITIONEN
|
|
If o.LeistungsNr = LeistungsNr Then
|
|
|
|
Dim POS As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen()
|
|
Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(o.LeistungsNr)
|
|
POS.LeistungsNr = o.LeistungsNr
|
|
POS.LeistungsBez = o.LeistungsBez
|
|
|
|
POS.BerechnungsartNr = o.BerechnungsartNr
|
|
'POS.Preis = BruttoBetrag
|
|
POS.Anzahl = 1
|
|
POS.Steuerpflichtig = LEISTUNG.Steuerpflichtig
|
|
POS.BGebBgl = NettoBetrag
|
|
|
|
|
|
If POS.Steuerpflichtig Then
|
|
POS.SteuerpflichtigerBetrag = NettoBetrag
|
|
|
|
POS.Preis = NettoBetrag
|
|
Else
|
|
POS.SteuerfreierBetrag = BruttoBetrag
|
|
POS.Preis = BruttoBetrag
|
|
End If
|
|
|
|
POS.BGebLeistungsNr = o.BGebLeistungsNr
|
|
POS.BGebProzent = o.BGebProzent
|
|
POS.BGebMinBetrag = o.BGebMinBetrag
|
|
|
|
RG.POSITIONEN.Add(POS)
|
|
|
|
If (If(POS.BGebLeistungsNr, 0) > 0) AndAlso (If(POS.BGebProzent, 0) > 0) AndAlso (If(POS.BGebBgl, 0) > 0) Then
|
|
allPlosePosBGeb(RG, OFFERTE, POS.BGebLeistungsNr, POS.BGebBgl, POS.BGebProzent)
|
|
End If
|
|
|
|
Return True
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
Function allPlosePosBGeb(ByRef RG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, OFFERTE As VERAG_PROG_ALLGEMEIN.cOfferte, BGebLeistungsNr As Integer, BGebBgl As Double, BGebProzent As Double)
|
|
Try
|
|
Dim Betrag As Double = Math.Round(BGebBgl * BGebProzent, 1)
|
|
For Each o In OFFERTE.POSITIONEN
|
|
If o.LeistungsNr = BGebLeistungsNr Then
|
|
|
|
'Falls schon vorhanden...
|
|
Dim POS = RG.POSITIONEN.Find(Function(x) x.LeistungsNr = BGebLeistungsNr) 'And x.BerechnungsartNr = 9)
|
|
If POS Is Nothing Then
|
|
POS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen()
|
|
POS.Preis = 0
|
|
POS.SteuerpflichtigerBetrag = 0
|
|
POS.SteuerfreierBetrag = 0
|
|
Dim LEISTUNG As New VERAG_PROG_ALLGEMEIN.cLeistungen(o.LeistungsNr)
|
|
POS.Steuerpflichtig = LEISTUNG.Steuerpflichtig
|
|
|
|
POS.LeistungsNr = o.LeistungsNr
|
|
POS.LeistungsBez = o.LeistungsBez
|
|
|
|
POS.BerechnungsartNr = o.BerechnungsartNr
|
|
POS.Anzahl = 1
|
|
' POS.BGebLeistungsNr = BGebLeistungsNr
|
|
|
|
RG.POSITIONEN.Add(POS)
|
|
End If
|
|
|
|
POS.Preis += Betrag
|
|
|
|
If POS.Steuerpflichtig Then
|
|
POS.SteuerpflichtigerBetrag += Betrag
|
|
Else
|
|
POS.SteuerfreierBetrag += Betrag
|
|
End If
|
|
|
|
' RG.POSITIONEN.Add(POS)
|
|
Return True
|
|
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
|
|
Private Sub dat_Sum_Von_ValueChanged(sender As Object, e As EventArgs) Handles dat_Sum_Von.ValueChanged, dat_Sum_Bis.ValueChanged
|
|
init()
|
|
End Sub
|
|
|
|
Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckedChanged
|
|
Panel2.Enabled = cbx.Checked
|
|
End Sub
|
|
|
|
|
|
Function pruefData_PLOSE() As Boolean
|
|
pruefData_PLOSE = True
|
|
Try
|
|
For Each r As DataGridViewRow In MyDatagridview1.Rows
|
|
Dim VERAGKdNr = SQL.getValueTxtBySql("SELECT TOP 1 AdressenNr FROM Adressen WHERE PLOSEKundenNr='" & r.Cells("plose_POLSEKundennummer").Value & "'", "FMZOLL")
|
|
|
|
If VERAGKdNr <> "" Then
|
|
r.Cells("VERAGKdNr").Value = VERAGKdNr
|
|
r.Cells("VERAGKdNr").Style.BackColor = Color.MintCream
|
|
Else
|
|
pruefData_PLOSE = False
|
|
r.Cells("VERAGKdNr").Style.BackColor = Color.PapayaWhip
|
|
End If
|
|
Dim VERAGLeistungsNr = SQL.getValueTxtBySql("SELECT TOP (1) [plp_LeistungsNr] FROM [tblPLOSE_Produktbeschreibung] where plp_ProductCode='" & r.Cells("plose_ProduktCode").Value & "' and plp_Firma IN ('PSS','PU') ", "FMZOLL")
|
|
If VERAGLeistungsNr <> "" Then
|
|
r.Cells("VERAGLeistungsNr").Value = VERAGLeistungsNr
|
|
r.Cells("VERAGLeistungsNr").Style.BackColor = Color.MintCream
|
|
Else
|
|
pruefData_PLOSE = False
|
|
r.Cells("VERAGLeistungsNr").Style.BackColor = Color.PapayaWhip
|
|
End If
|
|
|
|
|
|
Dim OffertenNr = SQL.getValueTxtBySql("SELECT TOP 1 OffertenNr FROM [Offerten] where KundenNr='" & VERAGKdNr & "' AND OffertenNr = 80 ", "FMZOLL")
|
|
If OffertenNr <> "" Then
|
|
r.Cells("KundeOffertenNr").Value = OffertenNr
|
|
r.Cells("KundeOffertenNr").Style.BackColor = Color.MintCream
|
|
Else
|
|
pruefData_PLOSE = False
|
|
r.Cells("KundeOffertenNr").Style.BackColor = Color.PapayaWhip
|
|
End If
|
|
|
|
If VERAGLeistungsNr <> "" Then
|
|
|
|
Dim KundeLeistungsNr = SQL.getValueTxtBySql("SELECT TOP 1 [LeistungsNr] FROM [Offertenpositionen] where LeistungsNr='" & VERAGLeistungsNr & "' and KundenNr='" & VERAGKdNr & "' AND OffertenNr = 80", "FMZOLL")
|
|
If KundeLeistungsNr <> "" Then
|
|
r.Cells("KundeLeistungsNr").Value = VERAGLeistungsNr
|
|
r.Cells("KundeLeistungsNr").Style.BackColor = Color.MintCream
|
|
Else
|
|
pruefData_PLOSE = False
|
|
r.Cells("KundeLeistungsNr").Style.BackColor = Color.PapayaWhip
|
|
End If
|
|
Else
|
|
pruefData_PLOSE = False
|
|
r.Cells("KundeLeistungsNr").Style.BackColor = Color.PapayaWhip
|
|
End If
|
|
Next
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
pruefData_PLOSE = False
|
|
End Try
|
|
End Function
|
|
|
|
|
|
Private Sub MyDatagridview1_SelectionChanged(sender As Object, e As EventArgs) Handles MyDatagridview1.SelectionChanged
|
|
If MyDatagridview1.SelectedRows.Count > 0 Then
|
|
If MyDatagridview1.Columns("VERAGKdNr") IsNot Nothing Then
|
|
If MyDatagridview1.SelectedRows(0).Cells("VERAGKdNr").Value <> "" Then
|
|
btnKunde.Enabled = True
|
|
Else
|
|
btnKunde.Enabled = False
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btnKunde_Click(sender As Object, e As EventArgs) Handles btnKunde.Click
|
|
If MyDatagridview1.SelectedRows.Count > 0 Then
|
|
If MyDatagridview1.Columns("VERAGKdNr") IsNot Nothing Then
|
|
If MyDatagridview1.SelectedRows(0).Cells("VERAGKdNr").Value <> "" Then
|
|
cProgramFunctions.openKundenblatt(MyDatagridview1.SelectedRows(0).Cells("VERAGKdNr").Value, Me.FindForm)
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|
If vbYes = MsgBox("Möchten Sie den Vorgang wirklich manuell ausgeführen (wird bei Rechnungserstellung automatisch ausgeführt)", vbYesNoCancel) Then
|
|
MautD_Befuellen()
|
|
End If
|
|
End Sub
|
|
|
|
Function MautD_Befuellen() As Boolean
|
|
Select Case LIEFERANT
|
|
Case "PLOSE" : deleteMautD("PLOSE") : Return genPLOSEInsertMautD(dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString)
|
|
End Select
|
|
Return False
|
|
End Function
|
|
|
|
|
|
Sub setFakturiertPLOSE()
|
|
PictureBox1.Visible = False
|
|
If SQL.doSQL("UPDATE tblPLOSE_Details SET plose_Fakturiert=1 WHERE plose_Fakturiert = 0 AND plose_DatumTransaktion between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "' ", "FMZOLL") Then
|
|
PictureBox1.Visible = True
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
|
If vbYes = MsgBox("Möchten Sie den Vorgang wirklich manuell ausgeführen (wird bei Rechnungserstellung automatisch ausgeführt)", vbYesNoCancel) Then
|
|
Select Case LIEFERANT
|
|
Case "PLOSE" : setFakturiertPLOSE()
|
|
End Select
|
|
End If
|
|
End Sub
|
|
|
|
|
|
End Class
|