USTV, MDMDatenverarbeitung

This commit is contained in:
2024-06-11 08:35:21 +02:00
parent a1d8cdaff5
commit fa04c12562
9 changed files with 939 additions and 331 deletions

View File

@@ -534,7 +534,8 @@ Public Class frmMDMDatenverarbetiung
INNER JOIN (((Adressen INNER JOIN tblUTAImport ON Adressen.UTAKundenNr = tblUTAImport.Kundennummer)
INNER JOIN Offertenpositionen ON Adressen.AdressenNr = Offertenpositionen.KundenNr)
INNER JOIN tblUTALeistungen ON (tblUTALeistungen.VERAG_LeistungsNr = Offertenpositionen.LeistungsNr) AND (tblUTALeistungen.VERAG_OffertenNr = Offertenpositionen.OffertenNr) AND (tblUTAImport.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImport.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart
group by Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort, Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart,tblUTAImport.Fakturierwarenart", "FMZOLL")
where archiv <> 1
group by Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort, Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart,tblUTAImport.Fakturierwarenart ", "FMZOLL")
.LOAD()
'MsgBox(.GET_SQL())
If .Columns.Count > 0 Then
@@ -673,17 +674,17 @@ Public Class frmMDMDatenverarbetiung
cbxASFINAGAbgerechnet.Visible = False
cbxBelegeerstellt.Visible = False
cbxTestdaten.Visible = False
pnlAsfinag.Visible = False
Panel4.Visible = False
Select Case Me.LIEFERANT
Case "PLOSE"
Panel4.Visible = True
pnlAsfinag.Visible = False
Dim c As New usrCntlMDMDatenverarbeitungAuswertungen_divers(Me, Me.LIEFERANT)
Panel3.Controls.Add(c)
c.Dock = DockStyle.Fill
Case "UTA"
Panel4.Visible = False
pnlAsfinag.Visible = False
Dim c As New usrCntlMDMDatenverarbeitungAuswertungen_divers(Me, Me.LIEFERANT)
Panel3.Controls.Add(c)
c.Dock = DockStyle.Fill
@@ -693,17 +694,12 @@ Public Class frmMDMDatenverarbetiung
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMIN", Me.FindForm) Then
'cbxTestdaten.Visible = True
End If
Panel4.Visible = False
pnlAsfinag.Visible = True
Exit Sub
Case "IDS"
Panel4.Visible = False
MsgBox("Noch nicht verfürbar!")
Case "MSE"
Panel4.Visible = False
MsgBox("Noch nicht verfürbar!")
End Select
@@ -729,8 +725,8 @@ Public Class frmMDMDatenverarbetiung
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
If Not gen_SPEDBUCH_ByKdNr(R_PLOSE("AdressenNr"), SPEDBUCH, "PLOSE", R_PLOSE("PLOSEKundenNr"), dat_Sum_Von.Value.ToShortDateString, dat_Sum_Bis.Value.ToShortDateString) Then verarbOK = False
If Not gen_RECHNUNG_BySPEDBUCH(R_PLOSE("AdressenNr"), SPEDBUCH, "PLOSE", R_PLOSE("PLOSEKundenNr"), 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
@@ -784,6 +780,7 @@ Public Class frmMDMDatenverarbetiung
INNER JOIN (((Adressen INNER JOIN tblUTAImport ON Adressen.UTAKundenNr = tblUTAImport.Kundennummer)
INNER JOIN Offertenpositionen ON Adressen.AdressenNr = Offertenpositionen.KundenNr)
INNER JOIN tblUTALeistungen ON (tblUTALeistungen.VERAG_LeistungsNr = Offertenpositionen.LeistungsNr) AND (tblUTALeistungen.VERAG_OffertenNr = Offertenpositionen.OffertenNr) AND (tblUTAImport.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImport.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart
where archiv <> 1
group by Kundennummer, KundenNr, UTAExportCSV,Rechnungsdruck"
Dim dt_Main As DataTable = SQL.loadDgvBySql_Param(SQLStr, "FMZOLL", 1200)
@@ -816,21 +813,21 @@ Public Class frmMDMDatenverarbetiung
Dim fn As String = dir & "\" & csv.Item(1) & "_Maut_UTA.csv"
Dim outFile As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(fn, False)
Dim clmns As String = ""
For i = 0 To dt_CSV_selected.Columns.Count - 1
clmns &= dt_CSV_selected.Columns(i).ColumnName.ToString().Replace(";", ",") & ";"
Dim clmns As String = ""
For i = 0 To dt_CSV_selected.Columns.Count - 1
clmns &= dt_CSV_selected.Columns(i).ColumnName.ToString().Replace(";", ",") & ";"
Next
outFile.WriteLine(clmns)
For i = 0 To dt_CSV_selected.Rows.Count - 1
clmns = ""
For j = 0 To dt_CSV_selected.Columns.Count - 1
clmns &= dt_CSV_selected.Rows(i)(j).ToString.Replace(";", ",") & ";"
Next
outFile.WriteLine(clmns)
For i = 0 To dt_CSV_selected.Rows.Count - 1
clmns = ""
For j = 0 To dt_CSV_selected.Columns.Count - 1
clmns &= dt_CSV_selected.Rows(i)(j).ToString.Replace(";", ",") & ";"
Next
outFile.WriteLine(clmns)
Next
outFile.Close()
Next
outFile.Close()
Next
For Each UTA In dt_Main.Rows
@@ -838,11 +835,15 @@ Public Class frmMDMDatenverarbetiung
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
Dim verarbOK = True
If Not gen_SPEDBUCH_ByKdNr(UTA("Customer ID"), SPEDBUCH, "UTA") Then verarbOK = False
If Not gen_RECHNUNG_BySPEDBUCH(UTA("Customer ID"), SPEDBUCH, "UTA") Then verarbOK = False
genUTAAttachmentByKdNr(UTA("Customer Nr"), UTA("Customer ID"), dir, datPloseAnhang.Value)
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")
SQL.doSQL("UPDATE [tblUTAImport] set archiv=1, archiviertDatum=GETDATE() where Kundennummer = " & UTA("Customer ID"), "FMZOLL")
End If
If True Then 'cnt Mod 10 = 0 Then
@@ -990,8 +991,8 @@ Public Class frmMDMDatenverarbetiung
For Each R_ASFINAG In distinctDT_distKunden.Rows
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
Dim verarbOK = True
If Not genASFINAG_SPEDBUCH_ByKdNr(R_ASFINAG("KundenNr"), SPEDBUCH) Then verarbOK = False
If Not genASFINAG_RECHNUNG_BySPEDBUCH(R_ASFINAG("KundenNr"), SPEDBUCH) Then verarbOK = False
If Not gen_SPEDBUCH_ByKdNr(R_ASFINAG("KundenNr"), SPEDBUCH, "ASFINAG") Then verarbOK = False
If Not gen_RECHNUNG_BySPEDBUCH(R_ASFINAG("KundenNr"), SPEDBUCH, "ASFINAG") Then verarbOK = False
If verarbOK Then
@@ -1972,9 +1973,19 @@ Public Class frmMDMDatenverarbetiung
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)
Function gen_SPEDBUCH_ByKdNr(KdNr As String, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Lieferant As String, Optional PLOSEKundenNr As String = "", Optional von As Date = Nothing, Optional bis As Date = Nothing)
Try
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
Dim OffertenNr As Integer
Dim Abfertigungsart As Integer
Select Case Lieferant
Case "PLOSE" : OffertenNr = 80 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4824
'Dim displayFilter = False
'Dim sqlstr As String = ""
@@ -1990,55 +2001,12 @@ Public Class frmMDMDatenverarbetiung
'Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
Case "ASFINAG" : OffertenNr = 11 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4814
Case "UTA" : OffertenNr = 30 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4823
Case "MSE" : OffertenNr = 23 : Abfertigungsart = 10 : SPEDBUCH.FilialenNr = 4821
Dim OffertenNr = 80
Dim Abfertigungsart = 10
End Select
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 genASFINAG_SPEDBUCH_ByKdNr(KdNr As String, ByRef SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch)
Try
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(KdNr)
SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
Dim OffertenNr = 11
Dim Abfertigungsart = 10
SPEDBUCH.FilialenNr = 4814
SPEDBUCH.AbfertigungsNr = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(SPEDBUCH.FilialenNr, Now.Year)
SPEDBUCH.NewUNTER_NR()
@@ -2072,15 +2040,174 @@ Public Class frmMDMDatenverarbetiung
Function genPLOSE_RECHNUNG_BySPEDBUCH(KdNr As String, PLOSEKundenNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, von As Date, bis As Date)
'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 OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
' RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
' ' RG.LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE)
' 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_ProduktCode NOT IN (" & ProduktCode_NOT_IN & " ) "
' 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")
' allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
' 'Rückvergütung Consortio !!
' If r("plp_LeistungsNr") = "190" Then '(PRODUCTCODE=301; VERAG-LEISTUNGSNR=190!!
' rabattPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
' End If
' 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.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim
' Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen
' Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen
' Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen
' If RG.SAVE Then
' Return True
' Else
' Return False
' End If
' Catch ex As System.Exception
' MsgBox(ex.Message & ex.StackTrace)
' End Try
' Return ""
'End Function
Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Lieferant As String, Optional PLOSEKundenNr As String = "", Optional von As Date = Nothing, Optional bis As Date = Nothing)
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
Dim OffertenNr As Integer
Dim Abfertigungsart As Integer
Select Case Lieferant
Case "PLOSE" : OffertenNr = 80 : Abfertigungsart = 10 : RG.Anlage_1 = ""
Case "ASFINAG" : OffertenNr = 11 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
Case "UTA" : OffertenNr = 30 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
Case "MSE" : OffertenNr = 23 : Abfertigungsart = 10 : RG.Anlage_1 = "Email Anhang"
End Select
RG.FilialenNr = SPEDBUCH.FilialenNr
RG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr
@@ -2127,171 +2254,6 @@ Public Class frmMDMDatenverarbetiung
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 OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
' RG.LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE)
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_ProduktCode NOT IN (" & ProduktCode_NOT_IN & " ) "
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")
allPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
'Rückvergütung Consortio !!
If r("plp_LeistungsNr") = "190" Then '(PRODUCTCODE=301; VERAG-LEISTUNGSNR=190!!
rabattPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
End If
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.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim
' 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 genASFINAG_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch)
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 = 11
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 = "Email Anhang"
RG.Anlage_2 = ""
RG.Anlage_3 = ""
RG.Anlage_4 = ""
@@ -2320,23 +2282,106 @@ Public Class frmMDMDatenverarbetiung
RG.Buchungsjahr = cRKSV.getGJ(RG.RechnungsDatum)
Dim sqlstr As String = "SELECT '135' as leistungsNr, 'MAUT AT lt. Auslage' as ProductCode, sum([netAmount]) as netamount ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as amountInclVAT FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount <> 0 group by Kreditkarten.AdressenNr
Dim sqlstr As String = ""
Dim useNettogesamtbetrag As Boolean = False
Select Case Lieferant
Case "PLOSE"
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0
' RG.LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE)
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_ProduktCode NOT IN (" & ProduktCode_NOT_IN & " ) "
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")
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
'Rückvergütung Consortio !!
If r("plp_LeistungsNr") = "190" Then '(PRODUCTCODE=301; VERAG-LEISTUNGSNR=190!!
rabattPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
End If
Next
Case "ASFINAG"
useNettogesamtbetrag = True
sqlstr = "SELECT '135' as LeistungsNr, 'MAUT AT lt. Auslage' as ProductCode, sum([netAmount]) as Netto ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as Brutto FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount <> 0 group by Kreditkarten.AdressenNr
UNION
SELECT '153' as leistungsNr, 'MAUT AT lt. Auslage' as ProductCode, sum([netAmount]) as netamount ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as amountInclVAT FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount = 0 group by Kreditkarten.AdressenNr"
SELECT '153' as LeistungsNr, 'MAUT AT lt. Auslage' as ProductCode, sum([netAmount]) as Netto ,sum([VATamount]) as Vatamount ,sum([totalAmount]) as Brutto FROM Kreditkarten INNER JOIN tblAsfinagMaut ON Kreditkarten.KartenNr = tblAsfinagMaut.cardnumber Where Kreditkarten.AdressenNr= '" & KD.KundenNr & "' and tblAsfinagMaut.VATamount = 0 group by Kreditkarten.AdressenNr"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
For Each r In dt.Rows
For Each r In dt.Rows
Dim NettoBetrag As Double = r("netamount")
Dim BruttoBetrag As Double = r("amountInclVAT")
Dim LeistungsNr As Integer = r("leistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto")
Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag) 'kann generisch verwendet werden
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
Next
Next
Case "UTA"
useNettogesamtbetrag = False
sqlstr = " SELECT Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort,Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart, tblUTAImport.Fakturierwarenart,sum(tblUTAImport.Gesamtbetrag_Netto_in_Lieferlandwährung) as Netto ,sum(tblUTAImport.Gesamtbetrag_Brutto_in_Lieferlandwährung) as Brutto
FROM tblUTAFakturierwarenarten
INNER JOIN (((Adressen INNER JOIN tblUTAImport ON Adressen.UTAKundenNr = tblUTAImport.Kundennummer)
INNER JOIN Offertenpositionen ON Adressen.AdressenNr = Offertenpositionen.KundenNr)
INNER JOIN tblUTALeistungen ON (tblUTALeistungen.VERAG_LeistungsNr = Offertenpositionen.LeistungsNr) AND (tblUTALeistungen.VERAG_OffertenNr = Offertenpositionen.OffertenNr) AND (tblUTAImport.Lieferland = tblUTALeistungen.Lieferland) AND (tblUTAImport.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart)) ON tblUTAFakturierwarenarten.Fakturierwarenart = tblUTALeistungen.Fakturierwarenart
where Offertenpositionen.LeistungsNr is not null AND Offertenpositionen.OffertenNr = " & OffertenNr & " AND Offertenpositionen.KundenNr = " & KdNr &
"group by Adressen.AdressenNr, Adressen.[Name 1], Adressen.LandKz, Adressen.Ort, Offertenpositionen.OffertenNr, Offertenpositionen.LeistungsNr, Offertenpositionen.LeistungsBez, tblUTAFakturierwarenarten.Warenart,tblUTAImport.Fakturierwarenart"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL")
For Each r In dt.Rows
Dim NettoBetrag As Double = r("Netto")
Dim BruttoBetrag As Double = r("Brutto")
Dim LeistungsNr As Integer = r("LeistungsNr")
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True)
allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag)
Next
Case "MSE"
'noch nicht implementiert!
End Select
Dim dtSt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & RG.Steuerschlüssel & "'", "FMZOLL")
@@ -2344,30 +2389,18 @@ Public Class frmMDMDatenverarbetiung
RG.Steuersatz_Proz = dtSt.Rows(0)(0)
End If
Dim useNettogesamtbetrag As Boolean = True
cFakturierung.setGesamtBetraege(RG,, useNettogesamtbetrag)
RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim
' 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
@@ -2378,58 +2411,10 @@ Public Class frmMDMDatenverarbetiung
End Try
Return ""
'################################ Code von FMZOLL #########################################################
' Do Until rstOffPos.EOF
' 'Offertenposition als Rechnungsposition übernehmen.
'4630 With rstRP
'4640 .AddNew
'4650 !RK_ID = rstRK!RK_ID
'4660 !LeistungsNr = rstOffPos!LeistungsNr
'4670 If rstRK![Steuersatz %] = 0 Then ' keine Steuerpflicht
'4680 ![steuerpflichtig] = False
'4690 Else ' LeistungsNr bestimmt Steuerpflicht
'4700 ![steuerpflichtig] = DLookup("[Steuerpflichtig]", "Leistungen", "[LeistungsNr]=" & ![LeistungsNr])
'4710 End If
'4720 !LeistungsBez = rstOffPos!LeistungsBez
'4730 !BerechnungsartNr = rstOffPos!BerechnungsartNr
'4740 !Preis = fktEuro(rstOffPos!Preis, rstKu!Währungscode, rstRK!Währungscode)
'4750 !Anzahl = rstOffPos!Anzahl
'4760 !BGebLeistungsNr = rstOffPos!BGebLeistungsNr
'4770 !BGebProzent = rstOffPos!BGebProzent
'4780 !BGebMinBetrag = rstOffPos!BGebMinBetrag
'4790 If Not IsNull(![Preis]) Then
'4800 ![Preisbindung] = True
'4810 Else
'4820 ![Preisbindung] = False
'4830 Select Case rstRK!OffertenNr
' Case 11 'LKW Maut AT
'4840 Select Case !LeistungsNr
' Case 135 ' Mautberechnung für Österreich steuerpflichtig
'4850 !Anzahl = 1
'4860 !Preis = DSum("[Nettobetrag]", "qryMautbetrag_AT_Stpfl", "[Kundennummer]=" & rstRK![RechnungsKundenNr])
'4870 Case 153 ' Mautberechnung für Österreich steuerfrei
'4880 !Anzahl = 1
'4890 !Preis = DSum("[Nettobetrag]", "qryMautbetrag_AT_Stfrei", "[Kundennummer]=" & rstRK![RechnungsKundenNr])
'4900 End Select
' .
' .
' .
' .
' If IsNull(![Preis]) Or ![Preis] = 0 Or IsNull(![Anzahl]) Or ![Anzahl] = 0 Then
' .Delete
' .
' .
' .
' .
'################################ Code von FMZOLL #########################################################
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)
Function allPos(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
@@ -2450,7 +2435,7 @@ Public Class frmMDMDatenverarbetiung
'POS.Preis = BruttoBetrag
POS.Anzahl = 1
POS.Steuerpflichtig = LEISTUNG.Steuerpflichtig
POS.BGebBgl = NettoBetrag
POS.BGebBgl = IIf(LIEFERANT = "UTA", BruttoBetrag, NettoBetrag)
If POS.Steuerpflichtig Then