5043 lines
243 KiB
VB.net
5043 lines
243 KiB
VB.net
Imports System.Web.UI.WebControls.Expressions
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class usrCntlFaktAbrechnung
|
|
|
|
|
|
Dim RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang = Nothing
|
|
Dim SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch = Nothing
|
|
Dim FUNC As New cProgramFunctions
|
|
|
|
Dim FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen = Nothing
|
|
Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL
|
|
|
|
|
|
Public SAVED = True ' Eigenschaft, ob das Formular gespeichert ist oder verändert wurde
|
|
Dim loaded As Boolean = False
|
|
Dim allowGetValues As Boolean = True
|
|
Public Event EVENT_SAVED()
|
|
Public Event EVENT_DELETED()
|
|
Public Event SOMETHING_CHANGED(RK_ID)
|
|
|
|
Dim vorherige_RK_ID = 0
|
|
Dim nachstehende_RK_ID = 0
|
|
Dim veragKunde As Integer = -1
|
|
Public isVZ As Boolean = False
|
|
|
|
' Public VALUE_CHANGED = True ' Eigenschaft, ob das Formular gespeichert ist oder verändert wurde
|
|
|
|
Sub New()
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
|
|
End Sub
|
|
|
|
Sub New(RK_ID)
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
RECHNUNG = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID)
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
|
|
End Sub
|
|
|
|
Public Sub newRECHNUNG(Optional Firma = Nothing)
|
|
|
|
RECHNUNG = Nothing
|
|
dgvOfferteDetailsUebersicht.Columns.Clear()
|
|
initRECHNUNG()
|
|
|
|
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
'Case "IMEX"
|
|
'Firma = 20 'VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
'cboFiliale.changeItem(5501)
|
|
Case "UNISPED"
|
|
Firma = -1
|
|
cboFiliale.changeItem(5601)
|
|
Case "AMBAR"
|
|
Firma = 24
|
|
cboFiliale.changeItem(5701)
|
|
|
|
Case "FRONT-OFFICE"
|
|
Firma = 17
|
|
cboFiliale.changeItem(5801)
|
|
|
|
End Select
|
|
|
|
|
|
If Firma IsNot Nothing Then
|
|
cboFirma.changeItem(Firma)
|
|
End If
|
|
If cboFiliale._value <> "" Then
|
|
txtAbfertigungsnummer.Focus()
|
|
Else
|
|
cboFiliale.Focus()
|
|
End If
|
|
' RaiseEvent SOMETHING_CHANGED(-1)
|
|
End Sub
|
|
|
|
|
|
|
|
Sub initLblAnzahl()
|
|
vorherige_RK_ID = 0
|
|
nachstehende_RK_ID = 0
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql("SELECT UnterNr,RK_ID FROM Rechnungsausgang WHERE FilialenNr='" & RECHNUNG.FilialenNr & "' AND AbfertigungsNr='" & RECHNUNG.AbfertigungsNr & "' order by UnterNr", "FMZOLL")
|
|
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
|
|
Dim anzahlRg = dt.Rows.Count
|
|
Dim cnt = 1
|
|
Dim exitSub = False
|
|
Dim found = False
|
|
For Each r In dt.Rows
|
|
If exitSub Then
|
|
nachstehende_RK_ID = r("RK_ID")
|
|
btnPrev.Enabled = (vorherige_RK_ID > 0)
|
|
btnNext.Enabled = (nachstehende_RK_ID > 0)
|
|
|
|
Exit Sub
|
|
End If
|
|
If r("UnterNr") = RECHNUNG.UnterNr Then
|
|
|
|
lblSendungen.Text = cnt & "/" & anzahlRg
|
|
found = True
|
|
exitSub = True
|
|
Else
|
|
If Not exitSub Then vorherige_RK_ID = r("RK_ID")
|
|
|
|
End If
|
|
cnt += 1
|
|
Next
|
|
'If exitSub Then Exit Sub
|
|
If Not found Then lblSendungen.Text = "-/" & anzahlRg : Exit Sub
|
|
|
|
Else
|
|
lblSendungen.Text = "-"
|
|
End If
|
|
' If Not IsNumeric(anzahlRg) Then anzahlRg = 0
|
|
btnPrev.Enabled = (vorherige_RK_ID > 0)
|
|
btnNext.Enabled = (nachstehende_RK_ID > 0)
|
|
End Sub
|
|
|
|
Public Sub initRECHNUNG(Optional RK_ID_TMP = -1)
|
|
|
|
Try
|
|
cbxAdmin.Checked = False
|
|
loaded = False
|
|
allowGetValues = False
|
|
lblUIDOK.Visible = False
|
|
lblUIDErr.Visible = False
|
|
lblKdInaktiv.Visible = False
|
|
Label40.Visible = False
|
|
sbLeistung._value = ""
|
|
cbxOriginalPrint.Checked = False
|
|
|
|
If RK_ID_TMP > 0 Then
|
|
RECHNUNG = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RK_ID_TMP)
|
|
End If
|
|
If RECHNUNG Is Nothing Then
|
|
txtAbfertigungsnummer.Text = ""
|
|
cboFiliale.changeItem("")
|
|
txtUnterNr.Text = ""
|
|
lblRechnungsNummer.Text = "-"
|
|
RECHNUNG = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang
|
|
RECHNUNG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
Else
|
|
txtAbfertigungsnummer.Text = RECHNUNG.AbfertigungsNr
|
|
Dim FirmaTMP = RECHNUNG.Firma_ID
|
|
cboFiliale.changeItem(RECHNUNG.FilialenNr)
|
|
RECHNUNG.Firma_ID = FirmaTMP
|
|
cboFirma.changeItem(RECHNUNG.Firma_ID) 'sonst durch filiale Überschrieben
|
|
txtUnterNr.Text = RECHNUNG.UnterNr
|
|
|
|
cboSpedBuchUnterNr.changeItem(RECHNUNG.SpeditionsbuchUnterNr)
|
|
lblRechnungsNummer.Text = RECHNUNG.RechnungsNr
|
|
End If
|
|
|
|
Dim OfferteNrTmp = RECHNUNG.OffertenNr
|
|
' MsgBox (OfferteNrTmp)
|
|
getDataFromSpedbuch_SHOW()
|
|
|
|
PictureBox1.BackgroundImage = My.Resources.ok_gray
|
|
PictureBox2.BackgroundImage = My.Resources.ok_gray
|
|
PictureBox1.Cursor = Cursors.Default : Label50.Cursor = Cursors.Default
|
|
PictureBox2.Cursor = Cursors.Default : Label51.Cursor = Cursors.Default
|
|
If SPEDBUCH IsNot Nothing Then
|
|
If SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then
|
|
PictureBox1.BackgroundImage = My.Resources.ok
|
|
PictureBox1.Cursor = Cursors.Hand : Label50.Cursor = Cursors.Hand
|
|
End If
|
|
If SPEDBUCH.DokumentId_VBD IsNot Nothing Then
|
|
PictureBox2.BackgroundImage = My.Resources.ok
|
|
PictureBox2.Cursor = Cursors.Hand : Label51.Cursor = Cursors.Hand
|
|
End If
|
|
End If
|
|
|
|
If RECHNUNG.DruckDatumZeit Is Nothing Then
|
|
cbxOriginalPrint.Visible = False
|
|
Else
|
|
cbxOriginalPrint.Visible = True
|
|
End If
|
|
|
|
initLblAnzahl()
|
|
' Exit Sub 'Falls keine Rechnung geladen
|
|
'If RECHNUNG.RK_ID <= 0 Then Exit Sub 'Falls keine Rechnung geladen
|
|
lblRechnungsDatum.Text = ""
|
|
If RECHNUNG.RechnungsDatum IsNot Nothing AndAlso IsDate(RECHNUNG.RechnungsDatum) Then
|
|
lblRechnungsDatum.Text = If(RECHNUNG.RechnungsDatum > CDate("01.01.1990"), CDate(RECHNUNG.RechnungsDatum).ToString("dd.MM.yyyy HH:mm"), "-")
|
|
End If
|
|
lblDruckDatum.Text = If(RECHNUNG.DruckDatumZeit, "")
|
|
lblDruckaufheben.Visible = (RECHNUNG.DruckDatumZeit IsNot Nothing)
|
|
|
|
cboRgGS.SelectedIndex = 0
|
|
Select Case RECHNUNG.[BelegartenKz]
|
|
Case "AR" : cboRgGS.SelectedIndex = 0
|
|
Case "AG" : cboRgGS.SelectedIndex = 1
|
|
End Select
|
|
cboFirma.changeItem(RECHNUNG.Firma_ID)
|
|
|
|
cboRechnungAn.changeItem(RECHNUNG.Rechnung_an)
|
|
|
|
kdFirmaAbsender._displayWoelflKd = IIf(RECHNUNG.Firma_ID = 19, True, False)
|
|
kdFirmaAuftraggeber._displayWoelflKd = IIf(RECHNUNG.Firma_ID = 19, True, False)
|
|
kdFirmaAvisierer._displayWoelflKd = IIf(RECHNUNG.Firma_ID = 19, True, False)
|
|
kdFirmaEmpfaenger._displayWoelflKd = IIf(RECHNUNG.Firma_ID = 19, True, False)
|
|
kdFirmaRechnungAn._displayWoelflKd = IIf(RECHNUNG.Firma_ID = 19, True, False)
|
|
|
|
If RECHNUNG.RechnungsKundenNr > 0 Then
|
|
kdFirmaRechnungAn.KdNr = RECHNUNG.RechnungsKundenNr
|
|
kdFirmaRechnungAn.Text = If(RECHNUNG.RechnungsName_1, "")
|
|
txtRechnungAnName2.Text = If(RECHNUNG.RechnungsName_2, "")
|
|
Else
|
|
kdFirmaRechnungAn.KdNr = -1
|
|
kdFirmaRechnungAn.Text = If(RECHNUNG.RechnungsName_1, "")
|
|
txtRechnungAnName2.Text = If(RECHNUNG.RechnungsName_2, "")
|
|
End If
|
|
txtRechnungAnStrasse.Text = If(RECHNUNG.RechnungsStraße, "")
|
|
txtRechnungAnOrt.Text = If(RECHNUNG.RechnungsOrt, "")
|
|
txtRechnungAnZusatz.Text = If(RECHNUNG.RechnungsName_AdressZusatz, "")
|
|
|
|
If RECHNUNG.AbsenderKundenNr IsNot Nothing AndAlso RECHNUNG.AbsenderKundenNr > 0 Then
|
|
kdFirmaAbsender.KdNr = RECHNUNG.AbsenderKundenNr
|
|
kdFirmaAbsender.Text = If(RECHNUNG.AbsenderName_1, "")
|
|
txtAbsenderName2.Text = If(RECHNUNG.AbsenderName_2, "")
|
|
Else
|
|
kdFirmaAbsender.KdNr = -1
|
|
kdFirmaAbsender.Text = If(RECHNUNG.AbsenderName_1, "")
|
|
txtAbsenderName2.Text = If(RECHNUNG.AbsenderName_2, "")
|
|
End If
|
|
txtAbsenderStrasse.Text = If(RECHNUNG.AbsenderStraße, "")
|
|
txtAbsenderOrt.Text = If(RECHNUNG.AbsenderOrt, "")
|
|
'txtAbsenderPLZ.Text = If(RECHNUNG., "")
|
|
' sbAbsenderLand.Text = If(RECHNUNG.AbsenderLandKz, "")
|
|
|
|
If RECHNUNG.EmpfängerKundenNr IsNot Nothing AndAlso RECHNUNG.EmpfängerKundenNr > 0 Then
|
|
kdFirmaEmpfaenger.KdNr = RECHNUNG.EmpfängerKundenNr
|
|
' kdFirmaEmpfaenger.KdNr_value = RECHNUNG.EmpfängerKundenNr
|
|
kdFirmaEmpfaenger.Text = If(RECHNUNG.EmpfängerName_1, "")
|
|
txtEmpfeangerName2.Text = If(RECHNUNG.EmpfängerName_2, "")
|
|
Else
|
|
kdFirmaEmpfaenger.KdNr = -1
|
|
kdFirmaEmpfaenger.Text = If(RECHNUNG.EmpfängerName_1, "")
|
|
txtEmpfeangerName2.Text = If(RECHNUNG.EmpfängerName_2, "")
|
|
End If
|
|
txtEmpfaengerStrasse.Text = If(RECHNUNG.EmpfängerStraße, "")
|
|
txtEmpfaengerOrt.Text = If(RECHNUNG.EmpfängerOrt, "")
|
|
'txtEmpfaengerPLZ.Text = If(RECHNUNG., "")
|
|
' sbEmpfaengerLand.Text = If(RECHNUNG.EmpfängerLandKz, "")
|
|
|
|
|
|
|
|
If RECHNUNG.VermittlerKundenNr IsNot Nothing AndAlso RECHNUNG.VermittlerKundenNr > 0 Then
|
|
kdFirmaAuftraggeber.KdNr = RECHNUNG.VermittlerKundenNr
|
|
kdFirmaAuftraggeber.Text = If(RECHNUNG.VermittlerName_1, "")
|
|
txtAuftraggeberName2.Text = If(RECHNUNG.VermittlerName_2, "")
|
|
Else
|
|
kdFirmaAuftraggeber.KdNr = -1
|
|
kdFirmaAuftraggeber.Text = If(RECHNUNG.VermittlerName_1, "")
|
|
txtAuftraggeberName2.Text = If(RECHNUNG.VermittlerName_2, "")
|
|
End If
|
|
|
|
|
|
txtAuftragggeberStrasse.Text = If(RECHNUNG.VermittlerStraße, "")
|
|
txtAuftragggeberOrt.Text = If(RECHNUNG.VermittlerOrt, "")
|
|
'txtAuftragggeberPLZ.Text = If(RECHNUNG., "")
|
|
' sbAuftragggeberLand.Text = If(RECHNUNG.VermittlerLandKz, "")
|
|
|
|
If RECHNUNG.AvisiererKundenNr IsNot Nothing AndAlso RECHNUNG.AvisiererKundenNr > 0 Then
|
|
kdFirmaAvisierer.KdNr = RECHNUNG.AvisiererKundenNr
|
|
kdFirmaAvisierer.Text = If(RECHNUNG.Avisierer, "")
|
|
Else
|
|
kdFirmaAvisierer.KdNr = -1
|
|
kdFirmaAvisierer.Text = If(RECHNUNG.Avisierer, "")
|
|
End If
|
|
txtAvisoId.Text = If(RECHNUNG.AvisoID, "")
|
|
|
|
|
|
cboSammelrechnung.changeItem(RECHNUNG.Sammelrechnung)
|
|
txtZollbelegNr.Text = If(RECHNUNG.BelegNr, "")
|
|
cboRechnungSprache.changeItem(If(RECHNUNG.RechnungSprache, "DE"))
|
|
|
|
txtWarenwertUmrechnung.Text = ""
|
|
txtWarenwert._value = If(RECHNUNG.Wert, "")
|
|
cboWaehrung.changeItem(If(RECHNUNG.WährungsNr, 900))
|
|
cboWaehrungUmrechnung.changeItem(If(RECHNUNG.Währungscode, "EUR"))
|
|
txtSendungsdaten.Text = If(RECHNUNG.Packstücke_und_Warenbezeichnung, "")
|
|
txtGrenze.Text = If(RECHNUNG.Grenze, "")
|
|
|
|
txtVermerk.Text = If(RECHNUNG.Vermerk, "")
|
|
'txtRohmasse.Text = If(RECHNUNG.ro, "")
|
|
txtBefoerderungsmittel.Text = If(RECHNUNG.LKW_Kennzeichen, "")
|
|
|
|
txtErfassungsnummer.Text = If(RECHNUNG.ErfassungsNr, "")
|
|
cboRechnungNotiz.Text = If(RECHNUNG.Notiz, "")
|
|
'txtRohmasse.Text = If(RECHNUNG., "")
|
|
|
|
cboAnlage1.Text = If(RECHNUNG.Anlage_1, "")
|
|
cboAnlage2.Text = If(RECHNUNG.Anlage_2, "")
|
|
cboAnlage3.Text = If(RECHNUNG.Anlage_3, "")
|
|
cboAnlage4.Text = If(RECHNUNG.Anlage_4, "")
|
|
cboAnlage5.Text = If(RECHNUNG.Anlage_5, "")
|
|
cboAnlage6.Text = If(RECHNUNG.Anlage_6, "")
|
|
|
|
rtbHandling.Text = If(RECHNUNG.Handling, "")
|
|
|
|
txtText.Text = If(RECHNUNG.Text, "")
|
|
txtTextZZ.Text = If(RECHNUNG.TextZZ, "")
|
|
|
|
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
|
|
cboSteuerschlüssel.changeItem(RECHNUNG.ForceSteuerschlüssel)
|
|
Else
|
|
cboSteuerschlüssel.changeItem(RECHNUNG.Steuerschlüssel)
|
|
End If
|
|
|
|
txtSteuerpflichtigerBetrag._value = If(RECHNUNG.SteuerpflichtigerGesamtbetrag <> 0, RECHNUNG.SteuerpflichtigerGesamtbetrag, "")
|
|
txtSteuerFreierBetrag._value = If(RECHNUNG.SteuerfreierGesamtbetrag <> 0, RECHNUNG.SteuerfreierGesamtbetrag, "")
|
|
'txtSteuerBetrag._value = RECHNUNG.ste
|
|
txtGesamtsumme._value = RECHNUNG.SteuerfreierGesamtbetrag + RECHNUNG.SteuerpflichtigerGesamtbetrag
|
|
lblSB.Text = If(RECHNUNG.Sachbearbeiter, "")
|
|
|
|
cboRechnungAn.changeItem(RECHNUNG.Rechnung_an)
|
|
|
|
|
|
If RECHNUNG.Vorkasse Then
|
|
'lblVorauskasse.Text = "JA"
|
|
cboVorauskasse.changeItem("1")
|
|
Else
|
|
'lblVorauskasse.Text = "NEIN"
|
|
cboVorauskasse.changeItem("0")
|
|
End If
|
|
|
|
txtKdAuftragsNr.Text = If(RECHNUNG.KdAuftragsNr, "")
|
|
|
|
Button2.Enabled = (RECHNUNG.Status = 0)
|
|
btnOK.Enabled = (RECHNUNG.Status = 0)
|
|
|
|
'RECHNUNG.OffertenNr = OfferteNrTmp
|
|
' RECHNUNG.OffertenNr = OfferteNrTmp
|
|
initSperre(RECHNUNG.OffertenNr)
|
|
RECHNUNG.OffertenNr = OfferteNrTmp
|
|
RECHNUNG.LOAD_POSITIONEN() 'Sonst werden beim Laden die POS überschrieben
|
|
loadFormRGPosInOfferte(False)
|
|
initDGVRechnungenPositionen()
|
|
' dgvOffertenSperrlisteasdasd
|
|
initDGVAnhaenge()
|
|
|
|
Dim VK = VERAG_PROG_ALLGEMEIN.cVorauskasse.LOADByFilialeAbfNr(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr)
|
|
btnVorauskasseAnzeigen.Enabled = (VK IsNot Nothing)
|
|
lblVK_Zahlungseingang.Text = ""
|
|
lblVK_ZahlungseingangBemerkung.Text = ""
|
|
picVK.Visible = False
|
|
|
|
If VK IsNot Nothing Then
|
|
If VK.vk_GeldEingetroffen Then
|
|
picVK.Visible = True
|
|
lblVK_Zahlungseingang.Text = VK.vk_Betrag
|
|
lblVK_ZahlungseingangBemerkung.Text = VK.vk_BH_Bemerkung
|
|
End If
|
|
End If
|
|
|
|
Dim pnlEnabled = (RECHNUNG.SpeditionsbuchUnterNr Is Nothing OrElse RECHNUNG.SpeditionsbuchUnterNr < 0)
|
|
setControlsEnabled(pnlEmpfaenger, pnlEnabled)
|
|
setControlsEnabled(pnlAbsender, pnlEnabled)
|
|
setControlsEnabled(pnlAuftraggeber, pnlEnabled)
|
|
setControlsEnabled(pnlAvisierer, pnlEnabled)
|
|
|
|
'If RECHNUNG.Sachbearbeiter = "AUTO" AndAlso RECHNUNG.VermittlerKundenNr = "3013401" Then 'sperren, damit autom. generierte Email neu mit Offerte initialisiwert werden kann!
|
|
' dgvOffertenSperrliste.Enabled = False
|
|
'Else
|
|
' dgvOffertenSperrliste.Enabled = True
|
|
'End If
|
|
|
|
|
|
SAVED = True
|
|
loaded = True
|
|
allowGetValues = True
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Sub setControlsEnabled(pnl As Panel, pnlEnabled As Boolean)
|
|
For Each c In pnl.Controls
|
|
If c.GetType Is GetType(VERAG_PROG_ALLGEMEIN.MyTextBox) Or c.GetType Is GetType(VERAG_PROG_ALLGEMEIN.KdSearchBox) Then
|
|
c.Enabled = IIf(cboFiliale._value = "5701" AndAlso VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("AMBAR_ALLE_RECHNUNGSEMPFÄNGER", "SDL") Or (cboFiliale._value = "4817" AndAlso FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso RECHNUNG.DruckDatumZeit Is Nothing), True, pnlEnabled)
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Sub loadFormRGPosInOfferte(Optional checkLoaded = True)
|
|
If RECHNUNG Is Nothing Then Exit Sub
|
|
If checkLoaded Then
|
|
If Not loaded Then Exit Sub
|
|
End If
|
|
Dim tmpLoaded = loaded
|
|
loaded = False
|
|
'Zuerst eichtiges Offert auswählen
|
|
|
|
|
|
For Each r As DataGridViewRow In dgvOffertenSperrliste.Rows
|
|
If r.Cells("OffertenNr").Value = RECHNUNG.OffertenNr Then
|
|
dgvOffertenSperrliste.ClearSelection() : r.Cells("OffertenBez").Selected = True : Exit For
|
|
End If
|
|
Next
|
|
|
|
If dgvOffertenSperrliste.SelectedRows.Count > 0 Then
|
|
If Not IsDBNull(dgvOffertenSperrliste.SelectedRows(0).Cells("Gesperrt").Value) AndAlso dgvOffertenSperrliste.SelectedRows(0).Cells("Gesperrt").Value AndAlso IsDate(dgvOffertenSperrliste.SelectedRows(0).Cells("Gesperrt_Datum").Value) AndAlso dgvOffertenSperrliste.SelectedRows(0).Cells("Gesperrt_Datum").Value >= RECHNUNG.Abfertigungsdatum Then
|
|
dgvOfferteDetailsUebersicht.Rows.Clear()
|
|
RECHNUNG.POSITIONEN.Clear()
|
|
Exit Sub
|
|
End If
|
|
|
|
End If
|
|
'initDGVOfferteDetailsUebersicht(RECHNUNG.kundenn,RECHNUNG.OffertenNr)
|
|
'Dann die Werte eintragen:
|
|
' MsgBox("G: " & RECHNUNG.POSITIONEN.Count)
|
|
Dim vorzeichen = 1 'If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
|
|
Try
|
|
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN.OrderBy(Function(x) If(IsNumeric(x.Preis), CDbl(x.Preis), CDbl(0)))
|
|
Dim found = False
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If r.Cells("LeistungsNr").Value = POS.LeistungsNr And r.Cells("LeistungsBez").Value = POS.LeistungsBez Then
|
|
|
|
r.Cells("Preis").Value = If(POS.Preis, 0) * vorzeichen
|
|
r.Cells("Anzahl").Value = If(POS.Anzahl, 0)
|
|
|
|
r.Cells("BGebLeistungsNr").Value = If(POS.BGebLeistungsNr, DBNull.Value)
|
|
r.Cells("BGebProzent").Value = If(POS.BGebProzent, DBNull.Value)
|
|
r.Cells("BGebMinBetrag").Value = If(POS.BGebMinBetrag, DBNull.Value)
|
|
If RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
|
|
POS.Steuerpflichtig = (RECHNUNG.ForceSteuerschlüssel > 0)
|
|
End If
|
|
|
|
r.Cells("Steuerpflichtig").Value = POS.Steuerpflichtig
|
|
r.Cells("IndexZkteing").Value = If(POS.IndexZkteing <= 0, DBNull.Value, POS.IndexZkteing)
|
|
r.Cells("AufschubkontoNr").Value = If(POS.AufschubkontoNr, DBNull.Value)
|
|
r.Cells("Aufschubfälligkeit").Value = If(POS.Aufschubfälligkeit, DBNull.Value)
|
|
r.Cells("DateiNameAufschub").Value = If(POS.DateiNameAufschub, DBNull.Value)
|
|
r.Cells("Belegdaten").Value = If(POS.Belegdaten, DBNull.Value)
|
|
'MsgBox(r.Cells("LeistungsBez").Value & " : " & If(POS.Preis, 0) & " : " & If(POS.Anzahl, 0))
|
|
|
|
found = True : Exit For
|
|
End If
|
|
Next
|
|
' MsgBox("G2: " & RECHNUNG.POSITIONEN.Count)
|
|
|
|
If Not found Then
|
|
' Dim dRow As DataRow = SQL.loadDgvBySql(" SELECT * FROM [Leistungen] WHERE LeistungsNr=" & POS.LeistungsNr, "FMZOLL").Rows(0)
|
|
'dgvOfferteDetailsUebersicht.DataBindings.clear
|
|
Dim dtable As DataTable = dgvOfferteDetailsUebersicht.DataSource
|
|
' If dgvOfferteDetailsUebersicht.Rows.Count > 0 Then dgvOfferteDetailsUebersicht.Rows.Clear()
|
|
|
|
If dtable IsNot Nothing Then
|
|
'Sortierung
|
|
'Dim dataView As New DataView(dtable)
|
|
'dataView.Sort = " LeistungsNr ASC "
|
|
'Dim dt As DataTable = dataView.ToTable()
|
|
'For Each r As DataColumn In dt.Columns
|
|
' MsgBox(r.ColumnName)
|
|
'Next
|
|
'dt.Rows.Add(POS.LeistungsNr, POS.LeistungsBez, POS.Anzahl, POS.Preis, POS.BerechnungsartNr, POS.[BGebLeistungsNr], POS.[BGebProzent], POS.[BGebMinBetrag], POS.Steuerpflichtig,
|
|
' POS.IndexZkteing, POS.AufschubkontoNr, POS.Aufschubfälligkeit, POS.DateiNameAufschub, POS.Belegdaten)
|
|
'dgvOfferteDetailsUebersicht.DataSource = dt
|
|
'MsgBox("ASF")
|
|
'dgvOfferteDetailsUebersicht.Rows.Add(POS.LeistungsNr, POS.LeistungsBez, POS.Anzahl, POS.Preis, POS.BerechnungsartNr, POS.[BGebLeistungsNr], POS.[BGebProzent], POS.[BGebMinBetrag], POS.Steuerpflichtig,
|
|
' POS.IndexZkteing, POS.AufschubkontoNr, POS.Aufschubfälligkeit, POS.DateiNameAufschub, POS.Belegdaten)
|
|
End If
|
|
'SELECT [Offertenpositionen].[LeistungsNr],[Offertenpositionen].[LeistungsBez],[Offertenpositionen].[BerechnungsartNr],[Anzahl],[Preis],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],/*[Eingegeben am],[PreisänderungProzent],[PreisAlt],[Preisänderung],*/Steuerpflichtig,[Geändert am],[Sachbearbeiter] " &
|
|
If dgvOfferteDetailsUebersicht.Columns.Count > 0 And dgvOfferteDetailsUebersicht.Rows.Count > 0 Then
|
|
'If(POS.BerechnungsartNr, 1)
|
|
Try
|
|
' POS.BerechnungsartNr !!!
|
|
Dim newR As DataGridViewRow = dgvOfferteDetailsUebersicht.Rows(0).Clone ' dgvOfferteDetailsUebersicht.DataSource.Tables(0).NewRow()
|
|
|
|
newR.Cells(0).Value = POS.LeistungsNr
|
|
newR.Cells(1).Value = If(POS.LeistungsBez, DBNull.Value)
|
|
newR.Cells(2).Value = If(POS.Anzahl, DBNull.Value)
|
|
newR.Cells(3).Value = If(POS.Preis, DBNull.Value) '* vorzeichen
|
|
newR.Cells(4).Value = POS.BerechnungsartNr
|
|
newR.Cells(5).Value = If(POS.BGebLeistungsNr, DBNull.Value)
|
|
newR.Cells(6).Value = If(POS.BGebProzent, DBNull.Value)
|
|
newR.Cells(7).Value = If(POS.BGebMinBetrag, DBNull.Value)
|
|
newR.Cells(8).Value = POS.Steuerpflichtig ' * vorzeichen
|
|
newR.Cells(9).Value = POS.IndexZkteing
|
|
newR.Cells(10).Value = If(POS.AufschubkontoNr, DBNull.Value)
|
|
newR.Cells(11).Value = If(POS.Aufschubfälligkeit, DBNull.Value)
|
|
newR.Cells(12).Value = If(POS.DateiNameAufschub, DBNull.Value)
|
|
newR.Cells(13).Value = If(POS.Belegdaten, DBNull.Value)
|
|
dgvOfferteDetailsUebersicht.Rows.Add(newR)
|
|
setBerartValue(newR, POS.BerechnungsartNr)
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
loaded = tmpLoaded
|
|
End Sub
|
|
|
|
Private Sub usrCntlFaktAbrechnung_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
tGespeichert.Interval = 2000
|
|
|
|
cboRgGS.SelectedIndex = 0
|
|
|
|
GutschriftAnVeragToolStripMenuItem.Visible = False
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
|
|
cboFiliale.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr IN(4801,4802) ORDER BY FilialenNr ", True, "FMZOLL", True)
|
|
Else
|
|
cboFiliale.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)
|
|
End If
|
|
|
|
|
|
Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGIMEX", "SDL") Then
|
|
FirmaTmp = "VERAGIMEX"
|
|
End If
|
|
|
|
If Not IsDBNull(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_firmaFMZoll) AndAlso CInt(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_firmaFMZoll) = 19 Then
|
|
FirmaTmp = "VERAG360"
|
|
End If
|
|
|
|
cboVorauskasse.Items.Clear()
|
|
cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEIN", 0))
|
|
cboVorauskasse.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("JA", 1))
|
|
|
|
cboSammelrechnung.Items.Clear()
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("0 Einzel", 0))
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1 täglich", 1))
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2 halbmonatlich", 2))
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3 monatlich", 3))
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4 Dekade", 4))
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("5 wöchentlich", 5))
|
|
If FirmaTmp = "VERAG360" Then cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("6 Maut/Diesel", 6))
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("7 pro LKW", 7))
|
|
cboSammelrechnung.changeItem(0)
|
|
|
|
cboRechnungSprache.Items.Clear()
|
|
cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Deutsch", "DE"))
|
|
cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Englisch", "EN"))
|
|
If FirmaTmp = "VERAG360" Then cboRechnungSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Rumänisch", "RO"))
|
|
cboRechnungSprache.changeItem(0)
|
|
|
|
'cboSteuerschlüssel.fillWithSQL("SELECT tblSteuersätze.Nr, tblSteuersätze.Beschreibung FROM tblSteuersätze ORDER BY tblSteuersätze.Nr; ", False, "FMZOLL", True)
|
|
cboSteuerschlüssel.fillWithSQL("SELECT [Steuerschlüssel],isnull([AuswahlSteuerbezeichnung],'') as Steuerbezeichnung FROM [Steuertabelle] ORDER BY [Steuerschlüssel]", False, "FMZOLL", True)
|
|
|
|
Dim whereFirma = ""
|
|
Dim firstEmpty = False
|
|
|
|
'If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
|
|
'FirmaTmp = "AMBAR"
|
|
'End If
|
|
|
|
Select Case FirmaTmp
|
|
Case "VERAG"
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGAG_DE", "SDL") Then
|
|
whereFirma = " AND FIRMENGRUPPE IN ('VERAG','ATILLA','FRONTOFFICE','VERAGAG_DE') " : pnlDocs.Visible = True
|
|
'MsgBox("AH")
|
|
Else
|
|
whereFirma = " AND FIRMENGRUPPE IN ('VERAG','ATILLA','FRONTOFFICE') " : pnlDocs.Visible = True
|
|
End If
|
|
|
|
Case "IMEX" : whereFirma = " AND FIRMENGRUPPE IN ('IMEX') " : pnlDocs.Visible = True
|
|
'Case "VERAG" : whereFirma = " AND Firma_ID<>20 " : pnlDocs.Visible = True
|
|
'Case "IMEX" : whereFirma = " AND Firma_ID=20 "
|
|
Case "ATILLA" : whereFirma = " AND Firma_ID=7 " : pnlDocs.Visible = True
|
|
Case "UNISPED" : whereFirma = " AND FIRMENGRUPPE IN ('UNISPED') " : firstEmpty = True : pnlDocs.Visible = True
|
|
|
|
Case "AMBAR" : whereFirma = " AND Firma_ID=24 " : pnlDocs.Visible = True : GutschriftAnVeragToolStripMenuItem.Visible = True
|
|
Case "FRONT-OFFICE" : whereFirma = " AND Firma_ID=17 " : pnlDocs.Visible = True
|
|
Case "VERAGIMEX"
|
|
whereFirma = " AND FIRMENGRUPPE IN ('VERAG','IMEX','ATILLA','VERAGUNISPED','FRONTOFFICE') "
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGAG_DE", "SDL") Then
|
|
whereFirma = " AND FIRMENGRUPPE IN ('VERAG','IMEX','ATILLA','VERAGUNISPED','FRONTOFFICE','VERAGAG_DE') "
|
|
End If
|
|
pnlDocs.Visible = True
|
|
Case "VERAG360"
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGAG_DE", "SDL") Then
|
|
whereFirma = " AND FIRMENGRUPPE IN ('VERAG360','VERAGAG_DE') " : pnlDocs.Visible = True
|
|
Else
|
|
whereFirma = " AND FIRMENGRUPPE IN ('VERAG360') " : pnlDocs.Visible = True
|
|
End If
|
|
|
|
End Select
|
|
|
|
|
|
cboFirma.fillWithSQL("SELECT [Firma_ID],[Firma_Bez] FROM [tblFirma] WHERE Firma_ID NOT IN(3) " & whereFirma & " ORDER BY Firma_ID ", True, "FMZOLL", firstEmpty)
|
|
|
|
|
|
cboFirma.SelectedIndex = 0
|
|
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE <> "" And Not VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER And FirmaTmp <> "VERAGIMEX" Then
|
|
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
|
|
cboFiliale._allowedValuesFreiText = {4801, 4802}
|
|
cboFiliale.Enabled = True
|
|
Else
|
|
cboFiliale._allowedValuesFreiText = {VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE}
|
|
cboFiliale.Enabled = False
|
|
End If
|
|
|
|
cboFiliale.changeItem(VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE)
|
|
|
|
End If
|
|
|
|
cboRechnungNotiz.fillWithSQL("SELECT [Notiz],[Notiz] as N2 FROM tblRechnungsnotizen", True, "FMZOLL", True)
|
|
'cboWaehrung.fillWithSQL(" SELECT Währungscode, isnull(Währungscode + ' - ' ,'') + LandBez + ' (' + cast(LandNr as varchar(8)) + ')' FROM [Länderverzeichnis für die Außenhandelsstatistik] ORDER BY case when Währungscode is null then 1 else 0 end,LandBez ", False, "FMZOLL", True)
|
|
cboWaehrung.fillWithSQL(" SELECT Währungsschlüssel, Währungscode FROM Währungstabelle ORDER BY Währungscode,[Währungsschlüssel] DESC ", False, "FMZOLL", True)
|
|
cboWaehrungUmrechnung.fillWithSQL("SELECT Währungstabelle.Währungscode, Währungstabelle.Währungscode FROM Währungstabelle WHERE (((Währungstabelle.Eurokurs) Is Not Null And (Währungstabelle.Eurokurs)>0)) ORDER BY Währungstabelle.Währungscode; ", False, "FMZOLL", True)
|
|
cboWaehrungUmrechnung.changeItem("EUR")
|
|
|
|
|
|
sbLeistung.initSearchBox(Me.FindForm, " [LeistungsNr] ,[LeistungsBez],(cast([LeistungsNr] as varchar(3)) + ' - ' + [LeistungsBez]) AS Display FROM Leistungen", {"LeistungsNr", "LeistungsBez"}, " 1=1 ", "LeistungsNr", "LeistungsNr", "Display", "FMZOLL", , 400, 200, {"Display"})
|
|
|
|
Dim ANL_LIST = SQL.loadCboBySqlWithListItem("SELECT [AnlagenBez],AnlagenBez as AnlagenBez2 FROM [Anlagen] ORDER BY AnlagenBez; ", False, "FMZOLL")
|
|
cboAnlage1.fillWithMyListItem(ANL_LIST, True)
|
|
cboAnlage1.fillWithMyListItem(ANL_LIST, True)
|
|
cboAnlage2.fillWithMyListItem(ANL_LIST, True)
|
|
cboAnlage3.fillWithMyListItem(ANL_LIST, True)
|
|
cboAnlage4.fillWithMyListItem(ANL_LIST, True)
|
|
cboAnlage5.fillWithMyListItem(ANL_LIST, True)
|
|
cboAnlage6.fillWithMyListItem(ANL_LIST, True)
|
|
|
|
|
|
kdFirmaRechnungAn.initKdBox(Me.FindForm, txtkdNrRechnungAn)
|
|
kdFirmaAbsender.initKdBox(Me.FindForm, txtkdNrAbsender)
|
|
kdFirmaEmpfaenger.initKdBox(Me.FindForm, txtkdNrEmpfaenger)
|
|
kdFirmaAuftraggeber.initKdBox(Me.FindForm, txtkdNrAuftraggeber)
|
|
kdFirmaAvisierer.initKdBox(Me.FindForm, txtkdNrAvisierer)
|
|
|
|
|
|
AddHandler kdFirmaRechnungAn.PropertyChanged, Sub()
|
|
Try
|
|
initKdAtrNr()
|
|
initRechnungKd()
|
|
FlatButton3.Image = IIf(kdFirmaRechnungAn.KdNr_value > 0, My.Resources.person1, My.Resources.personInaktiv)
|
|
|
|
' setOffertFromAbfArt() 'setzt dir OffertenNr in RECHNUNG, für die Auswahl wichtig!
|
|
initDGVOffertenSperrliste(kdFirmaRechnungAn.KdNr_value, IIf(veragKunde = -1, False, True))
|
|
initWarnKd(kdFirmaRechnungAn, picWarnRgAn)
|
|
|
|
cboRechnungSprache.changeItem("DE")
|
|
If kdFirmaRechnungAn.KdData_KUNDE_ERW IsNot Nothing Then
|
|
If If(kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_Fakturierung_Sprache, "") <> "" Then
|
|
|
|
If kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_Fakturierung_Sprache = "TR" Then
|
|
cboRechnungSprache.changeItem("EN")
|
|
Else
|
|
cboRechnungSprache.changeItem(kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_Fakturierung_Sprache)
|
|
End If
|
|
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
If kdFirmaRechnungAn.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_InfoAuftragsNr IsNot Nothing AndAlso kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_InfoAuftragsNr <> "" Then
|
|
ToolTip.SetToolTip(picKdAuftrInfo, kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_InfoAuftragsNr)
|
|
picKdAuftrInfo.Cursor = Cursors.Hand
|
|
picKdAuftrInfo.Tag = kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_InfoAuftragsNr
|
|
|
|
Else
|
|
ToolTip.SetToolTip(picKdAuftrInfo, "")
|
|
picKdAuftrInfo.Cursor = Cursors.Default
|
|
picKdAuftrInfo.Tag = ""
|
|
End If
|
|
|
|
|
|
Try
|
|
Dim OfferteNnr = setOffertFromAbfArt() 'setzt dir OffertenNr in RECHNUNG, für die Auswahl wichtig!
|
|
For Each r As DataGridViewRow In dgvOffertenSperrliste.Rows
|
|
If r.Cells("OffertenNr").Value = OfferteNnr Then
|
|
dgvOffertenSperrliste.ClearSelection() : r.Cells("OffertenBez").Selected = True : Exit For
|
|
End If
|
|
Next
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
|
|
If kdFirmaRechnungAn.KdData_KUNDE_ERW.AutoFakturierung Then
|
|
Button7.Visible = True
|
|
Button7.Enabled = True
|
|
Button7.PerformClick()
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
End Sub
|
|
AddHandler kdFirmaRechnungAn.TextChanged, Sub()
|
|
picWarnRgAn.Visible = False
|
|
lblKdInaktiv.Visible = False
|
|
End Sub
|
|
|
|
AddHandler kdFirmaAbsender.PropertyChanged, Sub()
|
|
FlatButton1.Image = If(kdFirmaAbsender.KdNr_value > 0, My.Resources.person1, My.Resources.personInaktiv)
|
|
End Sub
|
|
AddHandler kdFirmaEmpfaenger.PropertyChanged, Sub()
|
|
FlatButton2.Image = If(kdFirmaEmpfaenger.KdNr_value > 0, My.Resources.person1, My.Resources.personInaktiv)
|
|
End Sub
|
|
AddHandler kdFirmaAuftraggeber.PropertyChanged, Sub()
|
|
FlatButton4.Image = If(kdFirmaAuftraggeber.KdNr_value > 0, My.Resources.person1, My.Resources.personInaktiv)
|
|
End Sub
|
|
AddHandler kdFirmaAvisierer.PropertyChanged, Sub()
|
|
FlatButton5.Image = If(kdFirmaAvisierer.KdNr_value > 0, My.Resources.person1, My.Resources.personInaktiv)
|
|
End Sub
|
|
|
|
cboRechnungAn.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
|
|
cboRechnungAn.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1 - Absender", "1"))
|
|
cboRechnungAn.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2 - Empfänger", "2"))
|
|
cboRechnungAn.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("3 - Auftraggeber", "3"))
|
|
cboRechnungAn.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("4 - Avisierer", "4"))
|
|
|
|
|
|
'initChangeEvent(Panel1)
|
|
'AddHandler DirectCast(cboSteuerschlüssel, ComboBox).SelectedIndexChanged, AddressOf setChange
|
|
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMINFUNCTIONS", "SDL") Then
|
|
cbxAdmin.Visible = True
|
|
End If
|
|
|
|
initRECHNUNG()
|
|
End Sub
|
|
|
|
Function setOffertFromAbfArt()
|
|
Dim OffertNr = ""
|
|
If SPEDBUCH IsNot Nothing Then
|
|
If IsNumeric(SPEDBUCH.Abfertigungsart) Then
|
|
Dim OffertNrtmp = SQL.getValueTxtBySql("SELECT isnull([ao_OffertenNr],-1) FROM [tblAbfertigungsartOffertenstamm] WHERE [ao_Abfertigungsart]=" & SPEDBUCH.Abfertigungsart, "FMZOLL")
|
|
If OffertNrtmp <> "" AndAlso OffertNrtmp > 0 Then OffertNr = OffertNrtmp
|
|
'MsgBox(OffertNr)
|
|
End If
|
|
End If
|
|
Return OffertNr
|
|
End Function
|
|
|
|
'Läuft alle Elememte durch
|
|
Public Sub initChangeEvent(ByVal oContainer As Object)
|
|
If Not IsNothing(oContainer) Then
|
|
' alle Controls des Container-Objekts durchlaufen
|
|
For Each oControl As Control In oContainer.Controls
|
|
' Falls es sich um ein Container-Control handelt und die
|
|
' TextBox-Controls ebenfalls zurückgesetzt werden sollen, muss
|
|
' die Funktion ResetTextBox rekursiv erneut aufgerufen werden
|
|
If oControl.Controls.Count > 0 Then
|
|
initChangeEvent(oControl)
|
|
Else
|
|
' Sofern es sich um ein TextBox-Control handelt...
|
|
If TypeOf oControl Is TextBox Or TypeOf oControl Is RichTextBox Or TypeOf oControl Is VERAG_PROG_ALLGEMEIN.MyRichTextBox Or TypeOf oControl Is VERAG_PROG_ALLGEMEIN.MyTextBox Then
|
|
AddHandler oControl.TextChanged, AddressOf setChange
|
|
End If
|
|
If TypeOf oControl Is CheckBox Or TypeOf oControl Is VERAG_PROG_ALLGEMEIN.MyCheckbox Then
|
|
AddHandler DirectCast(oControl, CheckBox).CheckedChanged, AddressOf setChange
|
|
End If
|
|
If TypeOf oControl Is DateTimePicker Then
|
|
AddHandler DirectCast(oControl, DateTimePicker).ValueChanged, AddressOf setChange
|
|
End If
|
|
If TypeOf oControl Is ComboBox Or TypeOf oControl Is VERAG_PROG_ALLGEMEIN.MyComboBox Then
|
|
AddHandler DirectCast(oControl, ComboBox).SelectedIndexChanged, AddressOf setChange
|
|
End If
|
|
If TypeOf oControl Is RadioButton Then
|
|
AddHandler DirectCast(oControl, RadioButton).CheckedChanged, AddressOf setChange
|
|
End If
|
|
If TypeOf oControl Is VERAG_PROG_ALLGEMEIN.KdSearchBox Then
|
|
AddHandler DirectCast(oControl, VERAG_PROG_ALLGEMEIN.KdSearchBox).PropertyChanged, AddressOf setChange
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
End If
|
|
End Sub
|
|
Private Sub setChange()
|
|
If loaded Then
|
|
SAVED = False
|
|
End If
|
|
End Sub
|
|
Sub initWarnKd(kdSearch As VERAG_PROG_ALLGEMEIN.KdSearchBox, pic As PictureBox)
|
|
Try
|
|
lblKdInaktiv.Visible = False
|
|
pic.Visible = False
|
|
ToolTip.SetToolTip(pic, "")
|
|
Dim InfoText = ""
|
|
If kdSearch.KdData_ADRESSEN IsNot Nothing Then
|
|
If kdSearch.KdData_ADRESSEN.Auswahl = "I" Then
|
|
InfoText &= "KUNDE INAKTIV!" & vbNewLine & vbNewLine
|
|
lblKdInaktiv.Visible = True
|
|
End If
|
|
End If
|
|
|
|
If kdSearch.KdData_KUNDE IsNot Nothing Then
|
|
If kdSearch.KdData_KUNDE.Abfertigungsverbot Then
|
|
pic.Visible = True
|
|
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
Case "VERAG" : InfoText &= "ACHTUNG!" & vbNewLine
|
|
Case Else
|
|
InfoText &= "ABFERTIGUNGSVERBOT!" & vbNewLine
|
|
End Select
|
|
|
|
If If(kdSearch.KdData_KUNDE.Abfertigungsverbot_Grund, "") <> "" Then InfoText &= kdSearch.KdData_KUNDE.Abfertigungsverbot_Grund & vbNewLine
|
|
|
|
|
|
If If(kdSearch.KdData_KUNDE.Besonderheiten, "") <> "" Then
|
|
pic.Visible = True
|
|
InfoText &= "BESONDERHEITEN:" & vbNewLine
|
|
InfoText &= kdSearch.KdData_KUNDE.Besonderheiten
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
ToolTip.SetToolTip(pic, InfoText.Trim)
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Sub initRechnungKd(Optional reload = False)
|
|
Try
|
|
If reload Then kdFirmaRechnungAn.reloadKdData()
|
|
|
|
txtRechnungAnUIDNr.Text = ""
|
|
txtRechnungAnUIDKz.Text = ""
|
|
Label7.Text = "-"
|
|
txtRechnungAnBuKdNr.Text = ""
|
|
txtBesonderheiten.Text = ""
|
|
|
|
rtbAbf_Besonderheiten.Visible = False
|
|
RECHNUNG.Lastschrift = Nothing
|
|
RECHNUNG.Kunden_SVS = Nothing
|
|
|
|
RECHNUNG.Vorlageprovision_Proz = Nothing
|
|
RECHNUNG.Kreditaufwendungen_Proz = Nothing
|
|
RECHNUNG.Besonderheiten = Nothing
|
|
RECHNUNG.Vorkasse = Nothing
|
|
|
|
If kdFirmaRechnungAn.KdNr_value > 0 And kdFirmaRechnungAn.KdData_ADRESSEN IsNot Nothing Then
|
|
Dim AD As VERAG_PROG_ALLGEMEIN.cAdressen = kdFirmaRechnungAn.KdData_ADRESSEN
|
|
Dim KD_ERW As VERAG_PROG_ALLGEMEIN.cKundenErweitert = kdFirmaRechnungAn.KdData_KUNDE_ERW
|
|
txtRechnungAnName2.Text = If(AD.Name_2, "")
|
|
txtRechnungAnStrasse.Text = If(AD.Straße, "")
|
|
txtRechnungAnOrt.Text = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "")).trim
|
|
If KD_ERW IsNot Nothing Then txtRechnungAnZusatz.Text = If(KD_ERW.kde_AdressZusatz, "") Else txtRechnungAnZusatz.Text = ""
|
|
|
|
txtRechnungAnUIDNr.Text = If(AD.UstIdNr, "")
|
|
txtRechnungAnUIDKz.Text = If(AD.UstIdKz, "")
|
|
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
|
|
txtRechnungAnBuKdNr.Text = If(KD.KundenNrZentrale, "")
|
|
txtBesonderheiten.Text = If(KD.Besonderheiten, "")
|
|
|
|
If KUNDE_ERW.kde_BesonderheitenNeu Then
|
|
rtbAbf_Besonderheiten.Size = txtBesonderheiten.Size
|
|
rtbAbf_Besonderheiten.init(kdFirmaRechnungAn.KdNr_value, , True, "VRR", "'ZOLL','ALLG','DISPO'")
|
|
rtbAbf_Besonderheiten.Visible = True
|
|
Else
|
|
rtbAbf_Besonderheiten.Visible = False
|
|
End If
|
|
|
|
RECHNUNG.Besonderheiten = KD.Besonderheiten
|
|
RECHNUNG.Kunden_SVS = KD.SVS
|
|
RECHNUNG.Vorkasse = KD.Vorkasse
|
|
RECHNUNG.Kreditaufwendungen_Proz = KD.Kreditaufwendungen
|
|
RECHNUNG.Vorlageprovision_Proz = KD.Vorlageprovision
|
|
|
|
If FIRMA IsNot Nothing Then
|
|
If FIRMA.Firma_ID = 11 Then ' Bei VERAG Customs Service GmbH --> kein Bankeinzug
|
|
RECHNUNG.Lastschrift = False
|
|
Else
|
|
RECHNUNG.Lastschrift = KD.Lastschrift
|
|
End If
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
txtBesonderheiten.Visible = Not rtbAbf_Besonderheiten.Visible
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub txtRechnungAnUIDKz_TextChanged(sender As Object, e As EventArgs) Handles txtRechnungAnUIDKz.TextChanged, txtRechnungAnUIDNr.TextChanged
|
|
Button6.Enabled = (txtRechnungAnUIDNr.Text <> "" And txtRechnungAnUIDKz.Text <> "")
|
|
End Sub
|
|
Private Sub cboRechnungAn_TextChanged(sender As Object, e As EventArgs) Handles cboRechnungAn.SelectedIndexChanged
|
|
Button15.Enabled = (cboRechnungAn._value <> "")
|
|
End Sub
|
|
|
|
Private Sub cboSteuerschlüssel_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboSteuerschlüssel.SelectedIndexChanged
|
|
If IsNumeric(cboSteuerschlüssel._value) Then
|
|
' txtSteuersatz.fillWithSQL("SELECT isnull(tblSteuersätze.Steuersatz,0) FROM tblSteuersätze WHERE tblSteuersätze.Nr='" & cboSteuerschlüssel._value & "' ", "FMZOLL")
|
|
txtSteuersatz.fillWithSQL("SELECT isnull([Steuersatz %],0) FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & cboSteuerschlüssel._value & "' ", "FMZOLL")
|
|
End If
|
|
getValues()
|
|
'initDGVRechnungenPositionen()
|
|
przRefreshDGV_Positionen()
|
|
|
|
End Sub
|
|
|
|
Private Sub cboRechnungAn_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboRechnungAn.SelectedIndexChanged
|
|
'initBackColor = Color.WhiteSmoke
|
|
pnlEmpfaenger.BackColor = Color.WhiteSmoke
|
|
pnlAuftraggeber.BackColor = Color.WhiteSmoke
|
|
pnlAvisierer.BackColor = Color.WhiteSmoke
|
|
btnAbsenderEuro.ForeColor = Color.Silver
|
|
btnEmpfaengerEuro.ForeColor = Color.Silver
|
|
btnAuftraggeberEuro.ForeColor = Color.Silver
|
|
btnAvisiererEuro.ForeColor = Color.Silver
|
|
|
|
Select Case cboRechnungAn._value
|
|
Case "1" : pnlAbsender.BackColor = Color.PapayaWhip ': setBGbColotTxt(pnlAbsender)
|
|
btnAbsenderEuro.ForeColor = Color.FromArgb(0, 54, 128)
|
|
Case "2" : pnlEmpfaenger.BackColor = Color.PapayaWhip ': setBGbColotTxt(pnlEmpfaenger)
|
|
btnEmpfaengerEuro.ForeColor = Color.FromArgb(0, 54, 128)
|
|
Case "3" : pnlAuftraggeber.BackColor = Color.PapayaWhip ': setBGbColotTxt(pnlAuftraggeber)
|
|
btnAuftraggeberEuro.ForeColor = Color.FromArgb(0, 54, 128)
|
|
Case "4" : pnlAvisierer.BackColor = Color.PapayaWhip ' : setBGbColotTxt(pnlAvisierer)
|
|
btnAvisiererEuro.ForeColor = Color.FromArgb(0, 54, 128)
|
|
Case Else
|
|
End Select
|
|
|
|
setBGbColotTxt(pnlAbsender)
|
|
setBGbColotTxt(pnlEmpfaenger)
|
|
setBGbColotTxt(pnlAuftraggeber)
|
|
setBGbColotTxt(pnlAvisierer)
|
|
|
|
If Not loaded Then Exit Sub
|
|
|
|
Select Case cboRechnungAn._value
|
|
Case "1"
|
|
kdFirmaRechnungAn.KdNr = kdFirmaAbsender.KdNr
|
|
If kdFirmaRechnungAn.KdNrNullInt <= 0 Then kdFirmaRechnungAn.Text = kdFirmaAbsender.Text
|
|
txtRechnungAnName2.Text = txtAbsenderName2.Text
|
|
txtRechnungAnStrasse.Text = txtAbsenderStrasse.Text
|
|
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
|
|
cboSteuerschlüssel.changeItem(If(kdFirmaAbsender.KdData_KUNDE.Steuerschlüssel, ""))
|
|
End If
|
|
cboSammelrechnung.changeItem(If(kdFirmaAbsender.KdData_KUNDE.Sammelrechnung, ""))
|
|
cboWaehrungUmrechnung.changeItem(If(kdFirmaAbsender.KdData_KUNDE.Währungscode, ""))
|
|
cboVorauskasse.changeItem(Convert.ToInt32(kdFirmaAbsender.KdData_KUNDE.Vorkasse))
|
|
End If
|
|
Case "2"
|
|
kdFirmaRechnungAn.KdNr = kdFirmaEmpfaenger.KdNr
|
|
If kdFirmaRechnungAn.KdNrNullInt <= 0 Then kdFirmaRechnungAn.Text = kdFirmaEmpfaenger.Text
|
|
txtRechnungAnName2.Text = txtEmpfeangerName2.Text
|
|
txtRechnungAnStrasse.Text = txtEmpfaengerStrasse.Text
|
|
txtRechnungAnOrt.Text = txtEmpfaengerOrt.Text
|
|
If kdFirmaEmpfaenger.KdData_KUNDE_ERW IsNot Nothing Then txtRechnungAnZusatz.Text = If(kdFirmaEmpfaenger.KdData_KUNDE_ERW.kde_AdressZusatz, "") Else txtRechnungAnZusatz.Text = ""
|
|
If kdFirmaEmpfaenger.KdData_KUNDE IsNot Nothing Then
|
|
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
|
|
cboSteuerschlüssel.changeItem(RECHNUNG.ForceSteuerschlüssel)
|
|
Else
|
|
cboSteuerschlüssel.changeItem(If(kdFirmaEmpfaenger.KdData_KUNDE.Steuerschlüssel, ""))
|
|
End If
|
|
cboSammelrechnung.changeItem(If(kdFirmaEmpfaenger.KdData_KUNDE.Sammelrechnung, ""))
|
|
cboWaehrungUmrechnung.changeItem(If(kdFirmaEmpfaenger.KdData_KUNDE.Währungscode, ""))
|
|
cboVorauskasse.changeItem(Convert.ToInt32(kdFirmaEmpfaenger.KdData_KUNDE.Vorkasse))
|
|
End If
|
|
Case "3"
|
|
kdFirmaRechnungAn.KdNr = kdFirmaAuftraggeber.KdNr
|
|
If kdFirmaRechnungAn.KdNrNullInt <= 0 Then kdFirmaRechnungAn.Text = kdFirmaAuftraggeber.Text
|
|
txtRechnungAnName2.Text = txtAuftraggeberName2.Text
|
|
txtRechnungAnStrasse.Text = txtAuftragggeberStrasse.Text
|
|
txtRechnungAnOrt.Text = txtAuftragggeberOrt.Text
|
|
If kdFirmaAuftraggeber.KdData_KUNDE_ERW IsNot Nothing Then txtRechnungAnZusatz.Text = If(kdFirmaAuftraggeber.KdData_KUNDE_ERW.kde_AdressZusatz, "") Else txtRechnungAnZusatz.Text = ""
|
|
If kdFirmaAuftraggeber.KdData_KUNDE IsNot Nothing Then
|
|
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
|
|
cboSteuerschlüssel.changeItem(RECHNUNG.ForceSteuerschlüssel)
|
|
Else
|
|
cboSteuerschlüssel.changeItem(If(kdFirmaAuftraggeber.KdData_KUNDE.Steuerschlüssel, ""))
|
|
End If
|
|
cboSammelrechnung.changeItem(If(kdFirmaAuftraggeber.KdData_KUNDE.Sammelrechnung, ""))
|
|
cboWaehrungUmrechnung.changeItem(If(kdFirmaAuftraggeber.KdData_KUNDE.Währungscode, ""))
|
|
cboVorauskasse.changeItem(Convert.ToInt32(kdFirmaAuftraggeber.KdData_KUNDE.Vorkasse))
|
|
End If
|
|
Case "4"
|
|
kdFirmaRechnungAn.KdNr = kdFirmaAvisierer.KdNr
|
|
If kdFirmaRechnungAn.KdNrNullInt <= 0 Then kdFirmaRechnungAn.Text = kdFirmaAvisierer.Text
|
|
If kdFirmaAvisierer.KdData_KUNDE_ERW IsNot Nothing Then txtRechnungAnZusatz.Text = If(kdFirmaAvisierer.KdData_KUNDE_ERW.kde_AdressZusatz, "") Else txtRechnungAnZusatz.Text = ""
|
|
If kdFirmaAvisierer.KdData_KUNDE IsNot Nothing Then
|
|
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
|
|
cboSteuerschlüssel.changeItem(RECHNUNG.ForceSteuerschlüssel)
|
|
Else
|
|
cboSteuerschlüssel.changeItem(If(kdFirmaAvisierer.KdData_KUNDE.Steuerschlüssel, ""))
|
|
End If
|
|
cboSammelrechnung.changeItem(If(kdFirmaAvisierer.KdData_KUNDE.Sammelrechnung, ""))
|
|
cboWaehrungUmrechnung.changeItem(If(kdFirmaAvisierer.KdData_KUNDE.Währungscode, ""))
|
|
cboVorauskasse.changeItem(Convert.ToInt32(kdFirmaAvisierer.KdData_KUNDE.Vorkasse))
|
|
End If
|
|
Case Else
|
|
End Select
|
|
|
|
initKdAtrNr()
|
|
initPkSt()
|
|
End Sub
|
|
|
|
Sub setBGbColotTxt(p_cntl As Control)
|
|
For Each c As Control In p_cntl.Controls
|
|
If c.GetType.ToString = GetType(VERAG_PROG_ALLGEMEIN.MyTextBox).ToString Then
|
|
If DirectCast(c, VERAG_PROG_ALLGEMEIN.MyTextBox).BorderStyle = BorderStyle.None Then
|
|
c.BackColor = p_cntl.BackColor
|
|
End If
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Sub initKdAtrNr()
|
|
Select Case cboRechnungAn._value
|
|
Case "1"
|
|
txtKdAuftragsNr.Text = ""
|
|
Case "2"
|
|
If SPEDBUCH IsNot Nothing Then txtKdAuftragsNr.Text = If(SPEDBUCH.KdAuftragsNrEmpfaenger, "")
|
|
Case "3"
|
|
If SPEDBUCH IsNot Nothing Then txtKdAuftragsNr.Text = If(SPEDBUCH.KdAuftragsNr, "")
|
|
Case "4"
|
|
If SPEDBUCH IsNot Nothing Then txtKdAuftragsNr.Text = If(SPEDBUCH.KdAuftragsNrAvisierer, "")
|
|
Case Else
|
|
End Select
|
|
initKdAtrNrBG()
|
|
End Sub
|
|
Sub initPkSt()
|
|
Select Case cboRechnungAn._value
|
|
Case "1"
|
|
If kdFirmaAbsender.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaAbsender.KdData_KUNDE_ERW.kde_Abrechnung_SendungsdatenAusSTB Then
|
|
If SPEDBUCH IsNot Nothing Then txtSendungsdaten.Text = If(SPEDBUCH.Packstücke_Zoll, "")
|
|
End If
|
|
Case "2"
|
|
If kdFirmaEmpfaenger.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaEmpfaenger.KdData_KUNDE_ERW.kde_Abrechnung_SendungsdatenAusSTB Then
|
|
If SPEDBUCH IsNot Nothing Then txtSendungsdaten.Text = If(SPEDBUCH.Packstücke_Zoll, "")
|
|
End If
|
|
Case "3"
|
|
If kdFirmaAuftraggeber.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaAuftraggeber.KdData_KUNDE_ERW.kde_Abrechnung_SendungsdatenAusSTB Then
|
|
If SPEDBUCH IsNot Nothing Then txtSendungsdaten.Text = If(SPEDBUCH.Packstücke_Zoll, "")
|
|
End If
|
|
Case "4"
|
|
If kdFirmaAvisierer.KdData_KUNDE_ERW IsNot Nothing AndAlso kdFirmaAvisierer.KdData_KUNDE_ERW.kde_Abrechnung_SendungsdatenAusSTB Then
|
|
If SPEDBUCH IsNot Nothing Then txtSendungsdaten.Text = If(SPEDBUCH.Packstücke_Zoll, "")
|
|
End If
|
|
Case Else
|
|
End Select
|
|
initKdAtrNrBG()
|
|
End Sub
|
|
|
|
Sub initKdAtrNrBG()
|
|
picKdAuftrInfo.Visible = False
|
|
txtKdAuftragsNr.BackColor = Color.White
|
|
If kdFirmaRechnungAn.KdNr > 0 Then
|
|
If kdFirmaRechnungAn.KdData_KUNDE_ERW IsNot Nothing Then
|
|
If kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_VerwendetAuftragsNr Then txtKdAuftragsNr.BackColor = Color.LightYellow : picKdAuftrInfo.Visible = True
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub txtkdNrRechnungAn_KeyDown(sender As Object, e As KeyEventArgs) Handles txtkdNrRechnungAn.KeyDown
|
|
If e.KeyCode = Keys.Return Then
|
|
If IsNumeric(txtkdNrRechnungAn.Text) Then
|
|
kdFirmaRechnungAn.KdNr = txtkdNrRechnungAn.Text
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
Sub initDGVOffertenSperrliste(kdNr As Integer, Optional VeragGU As Boolean = False)
|
|
With dgvOffertenSperrliste
|
|
If Not IsNumeric(kdNr) OrElse kdNr < 0 Then
|
|
.Columns.Clear()
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim nurVerzollung = IIf(VeragGU, " AND Offerten.OffertenNr = 1", "")
|
|
|
|
.DataSource = SQL.loadDgvBySql("SELECT Offerten.OffertenNr, cast(Offerten.OffertenNr as varchar(3)) + ' - ' + Offertenstamm.OffertenBez as OffertenBez ,Offerten.Besonderheiten, Gesperrt, Gesperrt_Datum, Gesperrt_Grund FROM Offerten inner join Offertenstamm on [Offerten].OffertenNr=Offertenstamm.OffertenNr WHERE Offerten.KundenNr='" & kdNr & "' " & nurVerzollung & " ORDER BY Offerten.OffertenNr ", "FMZOLL")
|
|
If .ColumnCount = 0 Then Exit Sub
|
|
.Columns("OffertenNr").Visible = False
|
|
.Columns("Besonderheiten").Visible = False
|
|
' .Columns("OffertenNr").HeaderText = "Nr"
|
|
.Columns("OffertenBez").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("OffertenBez").HeaderText = "Bezeichnung"
|
|
.Columns("Gesperrt").HeaderText = "Sperre"
|
|
.Columns("Gesperrt").Width = 45
|
|
.Columns("Gesperrt_Datum").HeaderText = "Datum"
|
|
.Columns("Gesperrt_Datum").Width = 100
|
|
.Columns("Gesperrt_Grund").HeaderText = "Sperre-Grund"
|
|
.Columns("Gesperrt_Grund").Width = 320
|
|
.Columns("Gesperrt").Visible = False
|
|
.Columns("Gesperrt_Grund").Visible = False
|
|
.Columns("Gesperrt_Datum").Visible = False
|
|
|
|
' lblKeineSperren.Visible = (.RowCount = 0)
|
|
|
|
|
|
For Each r As DataGridViewRow In .Rows
|
|
If r.Cells("Gesperrt").Value IsNot DBNull.Value Then
|
|
If CBool(r.Cells("Gesperrt").Value) = True Then
|
|
r.DefaultCellStyle.ForeColor = Color.Red
|
|
End If
|
|
End If
|
|
Next
|
|
If loaded Then initSperre()
|
|
|
|
End With
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dgvOffertenSperrliste_SelectionChanged(sender As Object, e As EventArgs) Handles dgvOffertenSperrliste.SelectionChanged
|
|
If dgvOffertenSperrliste.Rows.Count <= 0 Then dgvOfferteDetailsUebersicht.Columns.Clear()
|
|
If loaded Then initSperre()
|
|
End Sub
|
|
|
|
Private Sub initSperre(Optional OffertenNr = -1)
|
|
RECHNUNG.OffertenNr = Nothing
|
|
dgvOfferteDetailsUebersicht.Columns.Clear()
|
|
If dgvOffertenSperrliste.SelectedRows.Count > 0 Then
|
|
If OffertenNr > 0 Then
|
|
initDGVOfferteDetailsUebersicht(kdFirmaRechnungAn.KdNr_value, OffertenNr)
|
|
RECHNUNG.OffertenNr = OffertenNr
|
|
Else
|
|
initDGVOfferteDetailsUebersicht(kdFirmaRechnungAn.KdNr_value, dgvOffertenSperrliste.SelectedRows(0).Cells("OffertenNr").Value)
|
|
RECHNUNG.OffertenNr = dgvOffertenSperrliste.SelectedRows(0).Cells("OffertenNr").Value
|
|
End If
|
|
If dgvOffertenSperrliste.SelectedRows(0).Cells("Gesperrt").Value IsNot DBNull.Value Then
|
|
If dgvOffertenSperrliste.SelectedRows(0).Cells("Gesperrt").Value Then
|
|
dgvOffertenSperrliste.SelectedRows(0).DefaultCellStyle.SelectionForeColor = Color.Red
|
|
|
|
Else
|
|
dgvOffertenSperrliste.SelectedRows(0).DefaultCellStyle.SelectionForeColor = Color.Black
|
|
End If
|
|
lblOFgesperrt.Visible = dgvOffertenSperrliste.SelectedRows(0).Cells("Gesperrt").Value
|
|
Else
|
|
lblOFgesperrt.Visible = False
|
|
End If
|
|
Else
|
|
'.Columns..Columns.Clear()
|
|
przRefreshDGV_Positionen()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
|
|
Sub initDGVOfferteDetailsUebersicht(kdNr, OffertenNr)
|
|
|
|
Dim addFieldsBoolean As Boolean = False
|
|
|
|
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 Then addFieldsBoolean = True
|
|
|
|
Dim landNr As String = ""
|
|
Dim landBez As String = ""
|
|
Dim antrag As cUSTVAntrag = Nothing
|
|
Dim summeRMC As Double = 0
|
|
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 Then landBez = CheckLandNr_getLandBezFromAntrag(landNr, antrag)
|
|
|
|
Dim addFields As String = ""
|
|
|
|
If addFieldsBoolean Then
|
|
addFields = ", Land, RMC, Fremd, VZ"
|
|
End If
|
|
|
|
With dgvOfferteDetailsUebersicht
|
|
If Not IsNumeric(kdNr) OrElse kdNr < 0 Then
|
|
.Columns.Clear()
|
|
Exit Sub
|
|
End If
|
|
Dim loadedtmp = loaded
|
|
loaded = False
|
|
|
|
Dim c As New DataGridViewTextBoxColumn() : c.Name = "LeistungsNr" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "LeistungsBez" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "Anzahl" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "Preis" : .Columns.Add(c)
|
|
'BerechnungsartNr
|
|
.Columns.Add(FUNC.getdgvCboCell("BerechnungsartNr", "BerechnungsartNr", "BerechnungsartNr", " SELECT [BerechnungsartNr], CAST(BerechnungsartNr as varchar(2)) + ' - ' + [BerechnungsartBez] as Display FROM [Berechnungsart] ORDER BY [BerechnungsartNr] ", "FMZOLL", 250)) ', 1))
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "BGebLeistungsNr" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "BGebProzent" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "BGebMinBetrag" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "Steuerpflichtig" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "IndexZkteing" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "AufschubkontoNr" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "Aufschubfälligkeit" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "DateiNameAufschub" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "Belegdaten" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "BerechnungsartPosInkludiert" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "ReverseCharge" : .Columns.Add(c)
|
|
|
|
If addFieldsBoolean Then
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "Land" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "RMC" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "Fremd" : .Columns.Add(c)
|
|
c = New DataGridViewTextBoxColumn() : c.Name = "VZ" : .Columns.Add(c)
|
|
End If
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql(" SELECT [Offertenpositionen].[LeistungsNr],[Offertenpositionen].[LeistungsBez],[Anzahl],[Preis],[Offertenpositionen].[BerechnungsartNr],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],Steuerpflichtig, ReverseCharge/*,[Geändert am],[Sachbearbeiter]*/,BerechnungsartPosInkludiert " & addFields &
|
|
" FROM [Offertenpositionen] INNER JOIN [Leistungen] ON leistungen.LeistungsNr=Offertenpositionen.LeistungsNr " &
|
|
" WHERE KundenNr='" & kdNr & "' and OffertenNr='" & OffertenNr & "' ORDER BY LeistungsNr ", "FMZOLL")
|
|
|
|
.Columns("LeistungsNr").Width = 30
|
|
.Columns("LeistungsNr").HeaderText = "Nr"
|
|
.Columns("LeistungsBez").MinimumWidth = 180
|
|
.Columns("LeistungsBez").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("LeistungsBez").HeaderText = "Leistung"
|
|
DirectCast(.Columns("LeistungsBez"), DataGridViewTextBoxColumn).MaxInputLength = 30
|
|
|
|
.Columns("LeistungsNr").ReadOnly = True
|
|
.Columns("LeistungsBez").ReadOnly = False
|
|
.Columns("BerechnungsartNr").ReadOnly = False
|
|
.Columns("Preis").Width = 60
|
|
.Columns("Preis").DefaultCellStyle.Format = "N2"
|
|
.Columns("Preis").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
|
|
.Columns("BGebProzent").Width = 65
|
|
.Columns("BGebMinBetrag").Width = 65
|
|
.Columns("BGebLeistungsNr").Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
|
.Columns("BGebProzent").Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
|
.Columns("BGebMinBetrag").Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
|
.Columns("Steuerpflichtig").Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
|
.Columns("BerechnungsartPosInkludiert").Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
|
.Columns("ReverseCharge").Visible = VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM
|
|
.Columns("IndexZkteing").Visible = False
|
|
.Columns("AufschubkontoNr").Visible = False
|
|
.Columns("Aufschubfälligkeit").Visible = False
|
|
.Columns("DateiNameAufschub").Visible = False
|
|
.Columns("Belegdaten").Visible = False
|
|
|
|
If dt Is Nothing Then Exit Sub
|
|
For Each r As DataRow In dt.Rows
|
|
Dim steuerpflichtigTMP = r("Steuerpflichtig")
|
|
If RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
|
|
steuerpflichtigTMP = (RECHNUNG.ForceSteuerschlüssel > 0)
|
|
End If
|
|
|
|
If addFieldsBoolean Then
|
|
|
|
dgvOfferteDetailsUebersicht.Rows.Add(r("LeistungsNr"), r("LeistungsBez"), r("Anzahl"), r("Preis"), r("BerechnungsartNr"), r("BGebLeistungsNr"), r("BGebProzent"), r("BGebMinBetrag"), steuerpflichtigTMP,
|
|
DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, r("BerechnungsartPosInkludiert"), r("ReverseCharge"), r("Land"), r("RMC"), r("Fremd"), r("VZ"))
|
|
|
|
Else
|
|
dgvOfferteDetailsUebersicht.Rows.Add(r("LeistungsNr"), r("LeistungsBez"), r("Anzahl"), r("Preis"), r("BerechnungsartNr"), DBNull.Value, DBNull.Value, DBNull.Value, steuerpflichtigTMP,
|
|
DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value, r("BerechnungsartPosInkludiert"), r("ReverseCharge"))
|
|
End If
|
|
|
|
Next
|
|
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
' Try : If (r.Cells("BerechnungsartNr").Value = 8) And r.Cells("Anzahl").Value > 1 Then r.Cells("Anzahl").Value = 1
|
|
' Catch ex As Exception : End Try
|
|
Try : r.Cells("Preis").ReadOnly = (r.Cells("BerechnungsartNr").Value = 8)
|
|
|
|
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
|
|
Dim isRC As Boolean = If(r.Cells("ReverseCharge").Value IsNot DBNull.Value, r.Cells("ReverseCharge").Value, False)
|
|
setMWSTABRfromSPEDinPOS(r, landNr, landBez, summeRMC, False, antrag, isVZ)
|
|
End If
|
|
|
|
Catch ex As Exception : End Try
|
|
Next
|
|
|
|
przRefreshDGV_Positionen()
|
|
|
|
' loaded = True
|
|
loaded = loadedtmp
|
|
End With
|
|
|
|
End Sub
|
|
|
|
|
|
Sub initDGVRechnungenPositionen()
|
|
Dim loadedtmp = loaded
|
|
|
|
Try
|
|
Dim steuerPflichtigerBetrag As Double = 0
|
|
Dim steuerFreierBetrag As Double = 0
|
|
Dim Abfertigungskosten As Double = 0
|
|
Dim vorzeichen = 1 'If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
With dgvRechnungenPositionen
|
|
.Rows.Clear()
|
|
|
|
If RECHNUNG Is Nothing Then loaded = loadedtmp : Exit Sub
|
|
' MsgBox(RECHNUNG.POSITIONEN.Count)
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If .Columns.Count > 0 Then
|
|
If POS.Anzahl > 0 And POS.Preis <> 0 Then 'HIER WIRD GEFILTERT --> Nur wo etwas zu verrechnen ist!
|
|
|
|
|
|
'If RECHNUNG.Steuersatz_Proz = 0 Then
|
|
' .Rows.Add(POS.LeistungsNr & " " & POS.LeistungsBez, POS.Anzahl, POS.Preis, 0, (If(POS.SteuerfreierBetrag, 0) + If(POS.SteuerpflichtigerBetrag, 0)), POS.AufschubkontoNr)
|
|
'Else
|
|
' .Rows.Add(POS.LeistungsNr & " " & POS.LeistungsBez, POS.Anzahl, POS.Preis, POS.SteuerpflichtigerBetrag, POS.SteuerfreierBetrag, POS.AufschubkontoNr)
|
|
'End If
|
|
|
|
|
|
.Rows.Add(POS.LeistungsNr & " " & POS.LeistungsBez, POS.Anzahl, POS.Preis * vorzeichen, If(POS.SteuerpflichtigerBetrag = 0, "", POS.SteuerpflichtigerBetrag * vorzeichen), If(POS.SteuerfreierBetrag = 0, "", POS.SteuerfreierBetrag * vorzeichen), POS.AufschubkontoNr)
|
|
|
|
If CBool(POS.Steuerpflichtig) Then
|
|
steuerPflichtigerBetrag += POS.SteuerpflichtigerBetrag
|
|
Else
|
|
steuerFreierBetrag += POS.SteuerfreierBetrag
|
|
End If
|
|
|
|
If CBool(SQL.DLookup("[Abfertigungskosten]", "Leistungen", "[LeistungsNr]=" & POS.[LeistungsNr], "FMZOLL", False)) Then
|
|
|
|
Abfertigungskosten += VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(POS.[SteuerpflichtigerBetrag], RECHNUNG.Währungscode, "EUR")
|
|
Abfertigungskosten += VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(POS.[SteuerfreierBetrag], RECHNUNG.Währungscode, "EUR")
|
|
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
Next
|
|
.ClearSelection()
|
|
End With
|
|
|
|
RECHNUNG.Steuersatz_Proz = If(txtSteuersatz._value, 0)
|
|
RECHNUNG.Abfertigungskosten = Abfertigungskosten * vorzeichen
|
|
|
|
steuerFreierBetrag *= vorzeichen
|
|
steuerPflichtigerBetrag *= vorzeichen
|
|
steuerFreierBetrag *= vorzeichen
|
|
|
|
Dim steuerBetrag As Double = 0
|
|
If RECHNUNG.Steuersatz_Proz <> 0 Then
|
|
steuerBetrag = steuerPflichtigerBetrag * RECHNUNG.Steuersatz_Proz
|
|
RECHNUNG.SteuerpflichtigerGesamtbetrag = steuerPflichtigerBetrag + steuerBetrag
|
|
RECHNUNG.SteuerfreierGesamtbetrag = steuerFreierBetrag
|
|
Else
|
|
' txtSteuerFreierBetrag._value = steuerFreierBetrag + steuerPflichtigerBetrag
|
|
' txtSteuerpflichtigerBetrag._value = 0
|
|
RECHNUNG.SteuerpflichtigerGesamtbetrag = 0
|
|
RECHNUNG.SteuerfreierGesamtbetrag = steuerFreierBetrag + steuerPflichtigerBetrag
|
|
End If
|
|
|
|
|
|
vorzeichen = If(cboRgGS.SelectedIndex = 1, -1, 1)
|
|
|
|
txtSteuerFreierBetrag._value = steuerFreierBetrag * vorzeichen
|
|
txtSteuerpflichtigerBetrag._value = steuerPflichtigerBetrag * vorzeichen
|
|
txtSteuerBetrag._value = steuerBetrag * vorzeichen
|
|
txtGesamtsumme._value = (steuerFreierBetrag + steuerPflichtigerBetrag + steuerBetrag) * vorzeichen
|
|
|
|
' txtSteuerFreierBetrag._value = steuerFreierBetrag
|
|
' txtSteuerpflichtigerBetrag._value = steuerPflichtigerBetrag
|
|
|
|
' RECHNUNG.SteuerpflichtigerGesamtbetrag = steuerPflichtigerBetrag
|
|
' RECHNUNG.SteuerfreierGesamtbetrag = steuerFreierBetrag
|
|
txtText.Text = cFakturierung.przRechnungstextTXT(RECHNUNG, SPEDBUCH) 'Das war vorher unter przBerechneRAPos
|
|
txtTextZZ.Text = cFakturierung.przRechnungstextZZ(RECHNUNG) 'Das war vorher unter przBerechneRAPos
|
|
|
|
' przBerechneRAPos("")
|
|
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
loaded = loadedtmp
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub dgvOfferteDetailsUebersicht_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles dgvOfferteDetailsUebersicht.CellValueChanged
|
|
If Not loaded Then Exit Sub
|
|
|
|
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 AndAlso RECHNUNG.DruckDatumZeit Is Nothing AndAlso e.ColumnIndex = 3 Then
|
|
|
|
Dim landNr As String = ""
|
|
Dim landBez As String = ""
|
|
Dim antrag As cUSTVAntrag = Nothing
|
|
Dim summeRMC As Double = 0
|
|
|
|
landBez = CheckLandNr_getLandBezFromAntrag(landNr, antrag)
|
|
|
|
Dim containRMC As Boolean = False
|
|
Dim containFremd As Boolean = False
|
|
|
|
For Each r In dgvOfferteDetailsUebersicht.Rows
|
|
|
|
If r.Cells("LeistungsBez").Value.Contains("Fremd-RG") AndAlso r.Cells("Anzahl").Value > 0 Then
|
|
containFremd = True
|
|
End If
|
|
If r.Cells("LeistungsBez").Value.Contains("RMC-RG") AndAlso r.Cells("Anzahl").Value > 0 Then
|
|
containRMC = True
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
For Each r In dgvOfferteDetailsUebersicht.Rows
|
|
|
|
setMWSTABRfromSPEDinPOS(r, landNr, landBez, summeRMC, (containRMC AndAlso containFremd), antrag, isVZ, True)
|
|
|
|
Next
|
|
|
|
'Dim datarow As DataGridViewRow = dgvOfferteDetailsUebersicht.Rows(e.RowIndex)
|
|
|
|
'-----------------------MWST-Abrechnung! + Kompat. zu FM-Zoll
|
|
'If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
|
|
' Dim isRC As Boolean = If(r.Cells("ReverseCharge").Value IsNot DBNull.Value, r.Cells("ReverseCharge").Value, False)
|
|
|
|
'End If
|
|
|
|
'-----------------------MWST-Abrechnung! + Kompat. zu FM-Zoll
|
|
End If
|
|
|
|
|
|
przRefreshDGV_Positionen()
|
|
End Sub
|
|
|
|
Sub przRefreshDGV_Positionen()
|
|
|
|
RECHNUNG.POSITIONEN.Clear()
|
|
If RECHNUNG Is Nothing Then Exit Sub 'OrElse RECHNUNG.RK_ID <= 0 Then Exit Sub
|
|
Try
|
|
If dgvOfferteDetailsUebersicht.Columns IsNot Nothing AndAlso dgvOfferteDetailsUebersicht.Columns("LeistungsNr") IsNot Nothing Then dgvOfferteDetailsUebersicht.Sort(dgvOfferteDetailsUebersicht.Columns("LeistungsNr"), System.ComponentModel.ListSortDirection.Ascending)
|
|
Catch ex As Exception
|
|
End Try
|
|
Try
|
|
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If r.Cells("Anzahl").Value IsNot DBNull.Value AndAlso Not IsNumeric(r.Cells("Anzahl").Value) Then r.Cells("Anzahl").Value = 0
|
|
If r.Cells("Preis").Value IsNot DBNull.Value AndAlso Not IsNumeric(r.Cells("Preis").Value) Then r.Cells("Preis").Value = 0
|
|
|
|
' If r.Cells("Anzahl").Value IsNot DBNull.Value AndAlso r.Cells("Anzahl").Value > 0 Then
|
|
Dim POS As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
POS.LeistungsNr = r.Cells("LeistungsNr").Value
|
|
POS.LeistungsBez = If(r.Cells("LeistungsBez").Value, "")
|
|
|
|
|
|
|
|
' POS.IndexZkteing = r.Cells("IndexZkteing").Value
|
|
POS.BerechnungsartNr = r.Cells("BerechnungsartNr").Value
|
|
POS.Preis = If(r.Cells("Preis").Value Is DBNull.Value, 0, CDbl(r.Cells("Preis").Value.ToString.Replace(".", "")))
|
|
POS.Anzahl = If(r.Cells("Anzahl").Value Is DBNull.Value, 0, r.Cells("Anzahl").Value)
|
|
|
|
'-----------------------MWST-Abrechnung! + Kompat. zu FM-Zoll
|
|
'If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
|
|
' Dim isRC As Boolean = If(r.Cells("ReverseCharge").Value IsNot DBNull.Value, r.Cells("ReverseCharge").Value, False)
|
|
' setMWSTABRfromSPEDinPOS(r, POS, landNr, landBez, summeRMC, antrag, isVZ)
|
|
'End If
|
|
|
|
'-----------------------MWST-Abrechnung! + Kompat. zu FM-Zoll
|
|
|
|
If POS.Anzahl = 0 And POS.BerechnungsartNr = 8 And POS.Preis <> 0 Then
|
|
POS.Preis = 0 'Wenn Anzahl =0 bei Berart 8, dann Preis auch 0
|
|
End If
|
|
|
|
Dim vorzeichen = 1 'If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
POS.Preis *= vorzeichen
|
|
'MsgBox(RECHNUNG.Steuersatz_Proz)
|
|
|
|
|
|
' POS.Steuerpflichtig = r.Cells("Steuerpflichtig").Value
|
|
initSteuerbetraege(RECHNUNG, POS)
|
|
|
|
'If (RECHNUNG.Steuersatz_Proz <> 0) And CBool(SQL.DLookup("Steuerpflichtig", "Leistungen", "[LeistungsNr] = '" & POS.LeistungsNr & "'", "FMZOLL")) Then ' Steuersatz muss ungleich 0 sein, damit der Betrag steuerpflichtig wird
|
|
' POS.SteuerpflichtigerBetrag = POS.Preis * POS.Anzahl
|
|
' POS.Steuerpflichtig = True
|
|
'Else
|
|
' POS.SteuerfreierBetrag = POS.Preis * POS.Anzahl
|
|
' POS.Steuerpflichtig = False
|
|
'End If
|
|
|
|
|
|
|
|
' POS.AufschubkontoNr = r.Cells("AufschubkontoNr").Value
|
|
' POS.Aufschubfälligkeit = r.Cells("Aufschubfälligkeit").Value
|
|
' POS.Prüfsumme_berechnen = r.Cells("Prüfsumme berechnen").Value
|
|
' POS.DateiNameAufschub = r.Cells("DateiNameAufschub").Value
|
|
' POS.Preisbindung = r.Cells("Preisbindung").Value
|
|
' POS.Belegdaten = r.Cells("Belegdaten").Value
|
|
' POS.Fremdwährung = r.Cells("Fremdwährung").Value
|
|
POS.BGebLeistungsNr = r.Cells("BGebLeistungsNr").Value
|
|
POS.BGebProzent = r.Cells("BGebProzent").Value
|
|
POS.BGebMinBetrag = r.Cells("BGebMinBetrag").Value
|
|
|
|
' Property RePosZeitstempel As Object = Nothing
|
|
|
|
|
|
POS.IndexZkteing = DBnullNothing(r.Cells("IndexZkteing").Value, 0)
|
|
POS.AufschubkontoNr = DBnullNothing(r.Cells("AufschubkontoNr").Value)
|
|
POS.Aufschubfälligkeit = DBnullNothing(r.Cells("Aufschubfälligkeit").Value)
|
|
POS.DateiNameAufschub = DBnullNothing(r.Cells("DateiNameAufschub").Value)
|
|
POS.Belegdaten = DBnullNothing(r.Cells("Belegdaten").Value)
|
|
|
|
|
|
' Try : If (r.Cells("BerechnungsartNr").Value = 8) And r.Cells("Anzahl").Value > 1 Then r.Cells("Anzahl").Value = 1
|
|
' Catch ex As Exception : End Try
|
|
|
|
Try : r.Cells("Preis").ReadOnly = (IIf(SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115, False, r.Cells("BerechnungsartNr").Value = 8))
|
|
Catch ex As Exception : End Try
|
|
|
|
'End If
|
|
RECHNUNG.POSITIONEN.Add(POS) 'ALLE HINENLADEN! --> Sonst Proglem mit SVS/VP/KA
|
|
|
|
Next
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
Dim loadedTmp = loaded
|
|
loaded = False
|
|
przBerechneRAPos("")
|
|
loadFormRGPosInOfferte()
|
|
'initDGVOfferteDetailsUebersicht(kdFirmaRechnungAn.KdNr_value, RECHNUNG.OffertenNr)
|
|
|
|
'Die 0-Einträge löschen:
|
|
RECHNUNG.POSITIONEN.RemoveAll(Function(p) p.Anzahl = 0 Or p.Preis = 0)
|
|
initDGVRechnungenPositionen()
|
|
|
|
|
|
'loaded = True
|
|
loaded = loadedTmp
|
|
|
|
End Sub
|
|
Function DBnullNothing(o, Optional t = Nothing)
|
|
If o Is DBNull.Value Then Return t
|
|
Return o
|
|
End Function
|
|
Private Sub dgvOffertenSperrliste_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvOffertenSperrliste.KeyDown
|
|
If e.KeyCode = Keys.Tab Then
|
|
dgvOfferteDetailsUebersicht.Focus()
|
|
e.Handled = True
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnDatenLaden.Click
|
|
lblAbfNrExists.Visible = False
|
|
lblAbfNr_Err.Visible = False
|
|
lblErrFiliale.Visible = False
|
|
lblErrUnterNr.Visible = False
|
|
|
|
|
|
|
|
If Not IsNumeric(cboFiliale._value) Then lblErrFiliale.Visible = True : Exit Sub
|
|
If Not IsNumeric(txtAbfertigungsnummer.Text) OrElse txtAbfertigungsnummer.Text.Length <> 8 Then lblAbfNr_Err.Visible = True : Exit Sub
|
|
If Not IsNumeric(cboSpedBuchUnterNr._value) Then lblErrUnterNr.Visible = True : Exit Sub
|
|
|
|
|
|
|
|
|
|
Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(cboFiliale._value, txtAbfertigungsnummer.Text, cboSpedBuchUnterNr._value) 'txtUnterNr.Text)
|
|
If Not SPEDBUCH.hasEntry Then lblAbfNrExists.Visible = True : Exit Sub
|
|
|
|
'Neue Rg; UnterNr noch nicht vergeben; oder Abfertigungsnummer wurde geändert...
|
|
If RECHNUNG Is Nothing OrElse RECHNUNG.UnterNr < 0 OrElse RECHNUNG.AbfertigungsNr <> txtAbfertigungsnummer.Text Then
|
|
RECHNUNG = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang
|
|
RECHNUNG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr
|
|
RECHNUNG.FilialenNr = SPEDBUCH.FilialenNr
|
|
RECHNUNG.UnterNr = RECHNUNG.getMaxRGUnterNr()
|
|
If RECHNUNG.UnterNr > 0 Then
|
|
Label53.Visible = True
|
|
Timer.Enabled = True
|
|
End If
|
|
Else
|
|
RECHNUNG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr
|
|
RECHNUNG.FilialenNr = SPEDBUCH.FilialenNr
|
|
|
|
End If
|
|
'RECHNUNG.Firma_ID = If(cboFirma._value = "", -1, cboFirma._value)
|
|
RECHNUNG.Abfertigungsdatum = SPEDBUCH.Abfertigungsdatum
|
|
|
|
RECHNUNG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr
|
|
|
|
'rechnung. RechnungsNr As Integer
|
|
'RECHNUNG.RechnungsDatum = Now ???????????????????? WAR ZUVOR AKTIV!!!
|
|
'RECHNUNG.Sammelrechnung = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.BelegartenNr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.BelegartenKz = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.BelegartenBez = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Vorzeichen = SPEDBUCH.XXXXXXXX
|
|
RECHNUNG.BelegNr = If(SPEDBUCH.BelegNr, "")
|
|
If SPEDBUCH.AbsenderKundenNr IsNot Nothing AndAlso SPEDBUCH.AbsenderKundenNr > 0 Then
|
|
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.AbsenderKundenNr)
|
|
RECHNUNG.AbsenderLandKz = AD.LandKz
|
|
RECHNUNG.AbsenderKundenNr = AD.AdressenNr
|
|
RECHNUNG.AbsenderName_1 = AD.Name_1
|
|
RECHNUNG.AbsenderName_2 = AD.Name_2
|
|
RECHNUNG.AbsenderStraße = AD.Straße
|
|
RECHNUNG.AbsenderOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "")).ToString.Trim
|
|
RECHNUNG.AbsenderOffertenNr = SPEDBUCH.AbsenderOffertenNr
|
|
Else
|
|
RECHNUNG.AbsenderName_1 = SPEDBUCH.Absender
|
|
End If
|
|
If SPEDBUCH.EmpfängerKundenNr IsNot Nothing AndAlso SPEDBUCH.EmpfängerKundenNr > 0 Then
|
|
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.EmpfängerKundenNr)
|
|
RECHNUNG.EmpfängerLandKz = AD.LandKz
|
|
RECHNUNG.EmpfängerKundenNr = AD.AdressenNr
|
|
RECHNUNG.EmpfängerName_1 = AD.Name_1
|
|
RECHNUNG.EmpfängerName_2 = AD.Name_2
|
|
RECHNUNG.EmpfängerStraße = AD.Straße
|
|
RECHNUNG.EmpfängerOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "")).ToString.Trim
|
|
RECHNUNG.EmpfängerOffertenNr = SPEDBUCH.EmpfängerOffertenNr
|
|
Else
|
|
RECHNUNG.EmpfängerName_1 = SPEDBUCH.Empfänger
|
|
End If
|
|
|
|
If SPEDBUCH.VermittlerKundenNr IsNot Nothing AndAlso SPEDBUCH.VermittlerKundenNr > 0 Then
|
|
Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.VermittlerKundenNr)
|
|
RECHNUNG.VermittlerLandKz = AD.LandKz
|
|
RECHNUNG.VermittlerKundenNr = AD.AdressenNr
|
|
RECHNUNG.VermittlerName_1 = AD.Name_1
|
|
RECHNUNG.VermittlerName_2 = AD.Name_2
|
|
RECHNUNG.VermittlerStraße = AD.Straße
|
|
RECHNUNG.VermittlerOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "")).ToString.Trim
|
|
RECHNUNG.VermittlerOffertenNr = SPEDBUCH.VermittlerOffertenNr
|
|
Else
|
|
RECHNUNG.VermittlerName_1 = SPEDBUCH.Vermittler
|
|
End If
|
|
|
|
'RECHNUNG.Rechnung_an =
|
|
'RECHNUNG.KundenNrZentrale = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RechnungsLandKz = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RechnungsKundenNr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RechnungsName_1 = SPEDBUCH.XXXXXXXX '!!!!
|
|
'RECHNUNG.RechnungsName_2 = SPEDBUCH.XXXXXXXX '!!!!
|
|
'RECHNUNG.RechnungsStraße = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RechnungsOrt = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RechnungsUstIdKz = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RechnungsUstIdNr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RechnungsUstIdGeprüft = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Lastschrift = SPEDBUCH.
|
|
'RECHNUNG.Kunden_SVS = SPEDBUCH.XXXXXXXX '!!!!-
|
|
'RECHNUNG.Steuerschlüssel = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Steuersatz_Proz = SPEDBUCH.XXXXXXXX '!!!! %
|
|
RECHNUNG.LKW_Kennzeichen = SPEDBUCH.LKW_Kennzeichen
|
|
'txtRohmasse SPEDBUCH.Rohmasse
|
|
RECHNUNG.WährungsNr = SPEDBUCH.Währungsschlüssel
|
|
RECHNUNG.Wert = SPEDBUCH.Rechnungsbetrag
|
|
' RECHNUNG.Umrechnungskurs = "EUR"
|
|
RECHNUNG.Packstücke_und_Warenbezeichnung = SPEDBUCH.Packstücke
|
|
RECHNUNG.Vermerk = SPEDBUCH.Vermerk
|
|
'RECHNUNG.Anlage_1 = SPEDBUCH.XXXXXXXX '!!!!
|
|
' RECHNUNG.Anlage_2 = SPEDBUCH.XXXXXXXX '!!!!
|
|
' RECHNUNG.Anlage_3 = SPEDBUCH.XXXXXXXX '!!!!
|
|
' RECHNUNG.Anlage_4 = SPEDBUCH.XXXXXXXX '!!!!
|
|
' RECHNUNG.Anlage_5 = SPEDBUCH.XXXXXXXX '!!!!
|
|
' RECHNUNG.Anlage_6 = SPEDBUCH.XXXXXXXX '!!!!
|
|
'RECHNUNG.OffertenNr = SPEDBUCH.o
|
|
'RECHNUNG.Vorlageprovision_Proz = SPEDBUCH.XXXXXXXX '!!!!%
|
|
'RECHNUNG.Kreditaufwendungen_Proz = SPEDBUCH.XXXXXXXX '!!!!%
|
|
'RECHNUNG.Besonderheiten = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Vorkasse = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Text = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.SteuerpflichtigerGesamtbetrag = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.SteuerfreierGesamtbetrag = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Status = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.DruckDatumZeit = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Abfertigungskosten = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Vorkosten = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Erlös = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Buchungsjahr = SPEDBUCH.XXXXXXXX
|
|
' RECHNUNG.Währungscode = SPEDBUCH.XXXXXXXX
|
|
RECHNUNG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
'RECHNUNG.Trdin = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.KartenNr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RefFilialenNr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RefAbfertigungsNr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.RefUnterNr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Notiz = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Zucker_MRN_Nr = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Zucker_MRN_Datum = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Zucker_Aufschub = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.ReErfZeitstempel = SPEDBUCH.XXXXXXXX
|
|
'RECHNUNG.Nettozahlungsziel = SPEDBUCH.XXXXXXXX
|
|
' RECHNUNG.Firma_ID = SPEDBUCH.XXXXXXXX
|
|
RECHNUNG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr
|
|
RECHNUNG.ErfassungsNr = SPEDBUCH.ErfassungsNr
|
|
RECHNUNG.AvisiererKundenNr = SPEDBUCH.AvisiererKundenNr
|
|
RECHNUNG.Avisierer = SPEDBUCH.Avisierer
|
|
'RECHNUNG.EMailRechnungstext = SPEDBUCH.XXXXXXXX
|
|
RECHNUNG.AvisoID = SPEDBUCH.AvisoID
|
|
|
|
If SPEDBUCH.Grenzstelle IsNot Nothing Then
|
|
If SPEDBUCH.Grenzstelle.Replace("???", "") = "" Then
|
|
If RECHNUNG.AvisoID IsNot Nothing Then
|
|
Dim Zollstelle = SQL.DLookup("Zollstelle", "AVISO", "AvisoID='" & SPEDBUCH.AvisoID & "'", "AVISO")
|
|
' RECHNUNG.Grenze = SQL.getValueTxtBySql("SELECT [basncd_name] FROM basncd WHERE basncd_dstnr='" & If(Zollstelle, "") & "' ", "ATLAS")
|
|
RECHNUNG.Grenze = SQL.getValueTxtBySql("SELECT [Description] FROM tbl_DY_ZollDE_C0141_Zollstellen WHERE Code='" & If(Zollstelle, "") & "' AND ((StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE())) ", "FMZOLL")
|
|
|
|
|
|
End If
|
|
Else
|
|
Select Case SPEDBUCH.Grenzstelle
|
|
Case "SUB" : RECHNUNG.Grenze = "Suben"
|
|
Case "WAI" : RECHNUNG.Grenze = "Waidhaus"
|
|
Case "SBG" : RECHNUNG.Grenze = "Bad Reichenhall"
|
|
Case "NKD" : RECHNUNG.Grenze = "Nickelsdorf"
|
|
Case "SFD" : RECHNUNG.Grenze = "Spielfeld"
|
|
End Select
|
|
End If
|
|
End If
|
|
If RECHNUNG.Grenze = String.Empty Then RECHNUNG.Grenze = SQL.getValueTxtBySql("SELECT TOP 1 isnull([Grenzstelle],'') FROM [Filialen] where FilialenNr='" & RECHNUNG.FilialenNr & "'", "FMZOLL")
|
|
|
|
|
|
If SPEDBUCH.SendungID IsNot Nothing AndAlso IsNumeric(SPEDBUCH.SendungID) AndAlso SPEDBUCH.SendungID > 0 Then
|
|
Dim SND As New VERAG_PROG_ALLGEMEIN.cSendungen(SPEDBUCH.SendungID)
|
|
SND.LOAD_HANDLING()
|
|
RECHNUNG.Handling = ""
|
|
If SND.HANDLING IsNot Nothing Then
|
|
For Each s In SND.HANDLING
|
|
RECHNUNG.Handling &= If(RECHNUNG.Handling = "", "", vbNewLine) & s.sndhdg_nr
|
|
Next
|
|
End If
|
|
End If
|
|
|
|
initDGVAnhaenge()
|
|
|
|
cboRechnungAn.Focus()
|
|
initRg_Anhaenhe_Default(RECHNUNG, SPEDBUCH)
|
|
initRECHNUNG()
|
|
Me.SPEDBUCH = SPEDBUCH
|
|
initKdAtrNr()
|
|
initFirma() ' wegen EV-VZ
|
|
End Sub
|
|
|
|
|
|
Sub initDGVAnhaenge()
|
|
With dgvAnhaenge
|
|
|
|
.Rows.Clear()
|
|
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.AvisoID IsNot Nothing AndAlso SPEDBUCH.SendungID IsNot Nothing Then
|
|
Dim dt = SQL.loadDgvBySql("SELECT [anh_docId],[anh_id],[anh_Art],[anh_Name] FROM [tblAvisoAnhaenge] where (anh_SendungsId='" & SPEDBUCH.SendungID & "' OR (anh_AvisoId='" & SPEDBUCH.AvisoID & "' AND anh_SendungsId is null))", "AVISO")
|
|
|
|
If dt IsNot Nothing Then
|
|
For Each r In dt.Rows
|
|
.Rows.Add(0, r("anh_Art"), r("anh_Name"), r("anh_docId"), r("anh_id"))
|
|
Next
|
|
End If
|
|
End If
|
|
|
|
RECHNUNG.LOAD_ANHAENGE()
|
|
|
|
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ANHAENGE IsNot Nothing Then
|
|
'-----------------------------
|
|
'ANHÄNGE OHNE AVISO-BEZUG LADEN:
|
|
'-----------------------------
|
|
For Each RG_AH In RECHNUNG.ANHAENGE
|
|
If RG_AH.anhId <= 0 Then
|
|
.Rows.Add(0, "", RG_AH.Bezeichnung, RG_AH.dsId, RG_AH.anhId)
|
|
End If
|
|
Next
|
|
'-----------------------------
|
|
|
|
'-----------------------------
|
|
'ANHÄNGE SELEKTIEREN
|
|
'-----------------------------
|
|
For Each RG_AH In RECHNUNG.ANHAENGE
|
|
For Each r As DataGridViewRow In .Rows
|
|
If r.Cells("clmnDsId").Value = RG_AH.dsId Or r.Cells("clmnAnhId").Value = 0 Then 'anh_id = 0 --> Anhang ohne AVISO-Bezug
|
|
DirectCast(r.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = -1
|
|
End If
|
|
Next
|
|
Next
|
|
'-----------------------------
|
|
End If
|
|
|
|
'Anhänge aus USTVA -> SPED-BUCH + Excel Pos-Liste
|
|
If SPEDBUCH IsNot Nothing Then
|
|
If FIRMA IsNot Nothing Then
|
|
If FIRMA.Firma_ID = 19 AndAlso SPEDBUCH.ErfassungsNr <> "" AndAlso SPEDBUCH.ErfassungsNr > 0 AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115 Or SPEDBUCH.Abfertigungsart = 10) Then
|
|
|
|
Dim func As New cMDMFunctionsAllgemein()
|
|
Dim dt = SQL.loadDgvBySql("SELECT UStVPo_daId, UStVPo_ID,UStVPo_SchnittstellenNr, UStVPo_ReNr, UStVPo_ReDat FROM tblUStVPositionen where UStVAn_ID='" & SPEDBUCH.ErfassungsNr & "' AND UStVPo_SchnittstellenNr <> 1 order by UStVPo_ID", "FMZOLL")
|
|
Dim USTV As New cUSTVAntrag(SPEDBUCH.ErfassungsNr)
|
|
|
|
'soll immer alle POS bekommen! laut Lidya! 28.04.2025 - aber nicht im Excel-Format sondern als PDF-Batinic 15.05.2025
|
|
Dim dtPOSList As New DataTable
|
|
Dim prt As String = func.generatePosList(USTV, "", "", "", False, "prt", dtPOSList, isVZ, IIf(RECHNUNG IsNot Nothing, RECHNUNG.RK_ID, -1))
|
|
If prt <> "" Then
|
|
|
|
Try
|
|
|
|
Dim rpt As New rptMWSTListe
|
|
|
|
rpt.DataSource = dtPOSList
|
|
|
|
rpt.GroupHeader1.DataField = "Firma_ID" 'Gruppierung
|
|
|
|
If rpt.DataSource.rows.count > 0 Then
|
|
|
|
Dim AD As New cAdressen(USTV.UStVAn_KuNr)
|
|
Dim sum As Double = 0
|
|
|
|
rpt.lblVatNo.Text = USTV.UStVAn_Steuernummer
|
|
rpt.lblCompanyname.Text = AD.Name_1 & " " & AD.Name_2
|
|
rpt.lblDat.Text = Now.ToShortDateString
|
|
|
|
|
|
AddHandler rpt.Detail.Format, Sub()
|
|
|
|
rpt.lblNumber.Text = rpt.Fields.Item("Number").Value()
|
|
rpt.lblGoods.Text = rpt.Fields.Item("Name of service").Value()
|
|
rpt.lblName.Text = rpt.Fields.Item("Name of supplier").Value()
|
|
rpt.lblTax.Text = CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2")
|
|
rpt.lblDate.Text = CDate((rpt.Fields.Item("Date of Invoice").Value())).ToShortDateString
|
|
rpt.lblInvoiceNo.Text = rpt.Fields.Item("Number of invoice").Value()
|
|
|
|
sum += CDbl(rpt.Fields.Item("Amount of tax refund").Value()).ToString("N2")
|
|
End Sub
|
|
|
|
|
|
AddHandler rpt.GroupFooter1.Format, Sub()
|
|
rpt.lblSumme.Text = sum.ToString("N2")
|
|
rpt.lblWahrung.Text = USTV.UStVAn_Währungscode
|
|
|
|
End Sub
|
|
|
|
|
|
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(SPEDBUCH.AbfertigungsNr, ".pdf", , False)
|
|
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
|
|
rpt.Run(False)
|
|
p.NeverEmbedFonts = ""
|
|
p.Export(rpt.Document, tmpPath)
|
|
rpt.Dispose()
|
|
|
|
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER("DOKUMENTE", "MDM", "POS_LISTE", "", "", SPEDBUCH.AbfertigungsNr & ".pdf", USTV.UStVAn_KuNr, False)
|
|
DS.uploadDataToDATENSERVER(tmpPath,,, False,,, True)
|
|
|
|
If .Rows.Count > 0 Then
|
|
|
|
For Each r As DataGridViewRow In .Rows
|
|
If .Columns.Contains("clmnBezeichnung") AndAlso r.Cells("clmnBezeichnung").Value = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
|
|
.Rows.Remove(r)
|
|
For Each ATT As cRechnungsausgangAnhaenge In RECHNUNG.ANHAENGE
|
|
If ATT.Bezeichnung = DS.da_name AndAlso RECHNUNG.DruckDatumZeit Is Nothing Then
|
|
Dim ANH_DEL As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge()
|
|
ANH_DEL.DELETE(ATT.RK_ID, ATT.dsId)
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
End If
|
|
If RECHNUNG.ANHAENGE.Count > 0 Then
|
|
If RECHNUNG.DruckDatumZeit IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.Bezeichnung = DS.da_name) Or RECHNUNG.DruckDatumZeit Is Nothing Then
|
|
.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
|
|
End If
|
|
Else
|
|
.Rows.Add(-1, "POS-LIST", DS.da_name, DS.da_id, -1)
|
|
End If
|
|
End If
|
|
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
|
|
End If
|
|
|
|
If dt IsNot Nothing Then
|
|
For Each r In dt.Rows
|
|
|
|
If Not IsDBNull(r("UStVPo_daId")) Then
|
|
|
|
If RECHNUNG.ANHAENGE IsNot Nothing AndAlso Not RECHNUNG.ANHAENGE.Exists(Function(c) c.dsId = r("UStVPo_daId")) Then 'wenn der Anhang schon existiert!
|
|
|
|
Dim DAID As String = ""
|
|
DAID = func.getPDF(r("UStVPo_SchnittstellenNr"), r("UStVPo_ReNr"), r("UStVPo_ReDat"), r("UStVPo_daId"), False, True, USTV.UStVAn_LandKz, USTV, New cFakturierung, True)
|
|
|
|
Dim nameLief As String = ""
|
|
|
|
Select Case r("UStVPo_SchnittstellenNr")
|
|
Case 1 : nameLief = "VERAG-" 'Verag360
|
|
Case 2, 8, 12 : nameLief = "IDS-"
|
|
Case 3 : nameLief = "IT-"
|
|
Case 4, 9 : nameLief = "MSE-"
|
|
Case 5, 10 : nameLief = "UTA-"
|
|
Case 6, 11 : nameLief = "PLOSE-"
|
|
Case 7 : nameLief = "RMC-"
|
|
End Select
|
|
|
|
nameLief &= "RE"
|
|
|
|
If DAID <> "" AndAlso IsNumeric(DAID) Then
|
|
Dim daidno As Integer = CInt(DAID)
|
|
Dim ds As New cDATENSERVER(daidno)
|
|
.Rows.Add(-1, nameLief, ds.da_name, ds.da_id, -1)
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
Next
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
End With
|
|
dgvAnhaenge.ClearSelection()
|
|
End Sub
|
|
Sub getDataFromSpedbuch_SHOW()
|
|
txtAbfertigungsart.Text = ""
|
|
txtAbfertigungsanzahl.Text = ""
|
|
txtPositionAnzahl.Text = ""
|
|
|
|
If Not IsNumeric(cboFiliale._value) Then Exit Sub
|
|
If Not IsNumeric(txtAbfertigungsnummer.Text) OrElse txtAbfertigungsnummer.Text.Length <> 8 Then Exit Sub
|
|
If Not IsNumeric(cboSpedBuchUnterNr._value) Then Exit Sub
|
|
|
|
SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(cboFiliale._value, txtAbfertigungsnummer.Text, cboSpedBuchUnterNr._value) 'txtUnterNr.Text)
|
|
If SPEDBUCH IsNot Nothing And SPEDBUCH.hasEntry Then
|
|
txtAbfertigungsart.Text = SPEDBUCH.Abfertigungsart & " " & (SQL.getValueTxtBySql("SELECT isnull([Abfertigungsbezeichnung],'') FROM [Abfertigungsarten] WHERE Abfertigungsart ='" & SPEDBUCH.Abfertigungsart & "'", "FMZOLL"))
|
|
txtAbfertigungsanzahl.Text = SPEDBUCH.Abfertigungsanzahl
|
|
If SPEDBUCH.Vermerk.Contains("Pos-Anzahl: ") And IsNumeric(SPEDBUCH.Vermerk.Replace("Pos-Anzahl: ", "")) Then
|
|
txtPositionAnzahl.Text = CInt(SPEDBUCH.Vermerk.Replace("Pos-Anzahl: ", ""))
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub initRg_Anhaenhe_Default(ByRef RECHNUNG, SPEDBUCH)
|
|
If RECHNUNG IsNot Nothing Then
|
|
Select Case RECHNUNG.Firma_ID
|
|
Case 26 ' VERAG-UNISPED LTD
|
|
RECHNUNG.Anlage_1 = ""
|
|
RECHNUNG.Anlage_2 = ""
|
|
RECHNUNG.Anlage_3 = ""
|
|
RECHNUNG.Anlage_4 = ""
|
|
RECHNUNG.Anlage_5 = ""
|
|
Case 4 ' VERAG AG (DE)
|
|
'RECHNUNG.Anlage_1 = "" wird befüllt
|
|
RECHNUNG.Anlage_2 = ""
|
|
RECHNUNG.Anlage_3 = ""
|
|
RECHNUNG.Anlage_4 = ""
|
|
RECHNUNG.Anlage_5 = ""
|
|
|
|
Case 19 'MDM
|
|
|
|
Select Case RECHNUNG.RechnungSprache
|
|
Case "DE" : RECHNUNG.Anlage_1 = "Rechnung" : RECHNUNG.Anlage_2 = "Lief.-Rechn." : RECHNUNG.Anlage_3 = "POS-Liste"
|
|
Case "EN" : RECHNUNG.Anlage_1 = "Invoice" : RECHNUNG.Anlage_2 = "Supplier Invoice(s)" : RECHNUNG.Anlage_3 = "Item List"
|
|
Case "RO" : RECHNUNG.Anlage_1 = "Factura" : RECHNUNG.Anlage_2 = "Factura furnizorului" : RECHNUNG.Anlage_3 = "Lista articolelor"
|
|
End Select
|
|
|
|
|
|
RECHNUNG.Anlage_4 = ""
|
|
RECHNUNG.Anlage_5 = ""
|
|
|
|
Case Else
|
|
If SPEDBUCH IsNot Nothing Then
|
|
Select Case SPEDBUCH.Abfertigungsart
|
|
Case "26", "27", "38"
|
|
If If(RECHNUNG.Anlage_1, String.Empty) = String.Empty Then RECHNUNG.Anlage_1 = "Zollbelege"
|
|
Case "5", "6"
|
|
If If(RECHNUNG.Anlage_1, String.Empty) = String.Empty Then RECHNUNG.Anlage_1 = ""
|
|
Case "7"
|
|
If If(RECHNUNG.Anlage_1, String.Empty) = String.Empty Then RECHNUNG.Anlage_1 = ""
|
|
Case "19"
|
|
If If(RECHNUNG.Anlage_1, String.Empty) = String.Empty Then RECHNUNG.Anlage_1 = ""
|
|
Case "9" 'Leihgeld
|
|
If If(RECHNUNG.Anlage_1, String.Empty) = String.Empty Then RECHNUNG.Anlage_1 = "Auszahlungsquittung"
|
|
If If(RECHNUNG.Anlage_2, String.Empty) = String.Empty Then RECHNUNG.Anlage_2 = "Auftrag"
|
|
If If(RECHNUNG.Anlage_3, String.Empty) = String.Empty Then RECHNUNG.Anlage_3 = "Passkopie"
|
|
Case Else
|
|
If If(RECHNUNG.Anlage_1, String.Empty) = String.Empty Then RECHNUNG.Anlage_1 = "Zollbelege"
|
|
If If(RECHNUNG.Anlage_2, String.Empty) = String.Empty Then RECHNUNG.Anlage_2 = "Lief.-Rechn."
|
|
If If(RECHNUNG.Anlage_3, String.Empty) = String.Empty Then RECHNUNG.Anlage_3 = "Präferenzz./Original"
|
|
If If(RECHNUNG.Anlage_4, String.Empty) = String.Empty Then RECHNUNG.Anlage_4 = ""
|
|
If If(RECHNUNG.Anlage_5, String.Empty) = String.Empty Then RECHNUNG.Anlage_5 = ""
|
|
End Select
|
|
End If
|
|
End Select
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub btnAbsenderEuro_Click(sender As Object, e As EventArgs) Handles btnAbsenderEuro.Click
|
|
cboRechnungAn.changeItem("1")
|
|
End Sub
|
|
|
|
Private Sub btnEmpfaengerEuro_Click(sender As Object, e As EventArgs) Handles btnEmpfaengerEuro.Click
|
|
cboRechnungAn.changeItem("2")
|
|
End Sub
|
|
|
|
Private Sub btnAuftraggeberEuro_Click(sender As Object, e As EventArgs) Handles btnAuftraggeberEuro.Click
|
|
cboRechnungAn.changeItem("3")
|
|
End Sub
|
|
|
|
Private Sub btnAvisiererEuro_Click(sender As Object, e As EventArgs) Handles btnAvisiererEuro.Click
|
|
cboRechnungAn.changeItem("4")
|
|
End Sub
|
|
|
|
|
|
Private Sub cboFirma_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedIndexChanged
|
|
Dim errCOlor = Color.Red
|
|
pnlTop.BackColor = Color.FromArgb(0, 54, 128)
|
|
pic.BackgroundImage = Nothing
|
|
|
|
cboWaehrungUmrechnung.changeItem("EUR")
|
|
Select Case cboFirma._value
|
|
Case 1 : pic.BackgroundImage = My.Resources.Verag_AG_Logo
|
|
pnlTop.BackColor = Color.FromArgb(0, 54, 128)
|
|
Case 4 : pic.BackgroundImage = My.Resources.Verag_AG_Logo_DE
|
|
pnlTop.BackColor = Color.FromArgb(0, 54, 128)
|
|
Case 7 : pic.BackgroundImage = My.Resources.Atilla_big_med
|
|
pnlTop.BackColor = Color.FromArgb(192, 0, 0) : errCOlor = Color.Yellow
|
|
Case 11 : pic.BackgroundImage = My.Resources.Verag_Customs_Service_GMBH_Logo
|
|
pnlTop.BackColor = Color.Teal
|
|
Case 20 : pic.BackgroundImage = My.Resources.IMEX_LOGO_simple
|
|
pnlTop.BackColor = Color.FromArgb(250, 120, 0) : errCOlor = Color.DarkRed
|
|
Case 19 : pic.BackgroundImage = My.Resources.VERAG_360
|
|
pnlTop.BackColor = Color.FromArgb(250, 120, 0) : errCOlor = Color.LightBlue
|
|
|
|
'UNISPED:
|
|
Case 21 : pic.BackgroundImage = My.Resources.Unisped_logo
|
|
pnlTop.BackColor = Color.FromArgb(192, 0, 0) : errCOlor = Color.DarkRed
|
|
Case 22 : pic.BackgroundImage = My.Resources.Unisped_DE_logo
|
|
pnlTop.BackColor = Color.FromArgb(192, 0, 0) : errCOlor = Color.DarkRed
|
|
Case 23 : pic.BackgroundImage = My.Resources.Unisped_ZS_logo
|
|
pnlTop.BackColor = Color.FromArgb(192, 0, 0) : errCOlor = Color.DarkRed
|
|
|
|
Case 24 : pic.BackgroundImage = My.Resources.ambar_boarder
|
|
pnlTop.BackColor = Color.FromArgb(0, 120, 120) : errCOlor = Color.DarkRed
|
|
'Case 23 : pic.BackgroundImage = My.Resources.FrontOfficeSUB_Horizontal
|
|
' pnlTop.BackColor = Color.FromArgb(0, 120, 120) : errCOlor = Color.DarkRed
|
|
Case 17 : pic.BackgroundImage = My.Resources.FrontOfficeSUB_Horizontal
|
|
pnlTop.BackColor = Color.FromArgb(192, 0, 0) : errCOlor = Color.DarkRed
|
|
|
|
|
|
Case 26 : pic.BackgroundImage = My.Resources.VERAG_UNISPED_Logo
|
|
pnlTop.BackColor = Color.FromArgb(192, 0, 0) : errCOlor = Color.DarkRed
|
|
cboWaehrungUmrechnung.changeItem("GBP")
|
|
Case Else : pic.BackgroundImage = Nothing
|
|
pnlTop.BackColor = Color.Gray : errCOlor = Color.White
|
|
|
|
End Select
|
|
|
|
|
|
cboRgGS.BackColor = pnlTop.BackColor
|
|
' Panel2.BackColor = pnlTop.BackColor
|
|
lblErrFiliale.ForeColor = errCOlor
|
|
lblErrUnterNr.ForeColor = errCOlor
|
|
lblAbfNr_Err.ForeColor = errCOlor
|
|
|
|
' Exit Sub
|
|
|
|
If cboFirma._value <> "" Then
|
|
FIRMA = New VERAG_PROG_ALLGEMEIN.cFirmen(cboFirma._value)
|
|
lblFirma1.Text = FIRMA.Firma_Bez
|
|
lblFirma2.Text = If(FIRMA.Firma_Straße, "")
|
|
lblFirma3.Text = If(FIRMA.Firma_Ort, "")
|
|
'Try
|
|
|
|
' Dim stmBLOBData As New MemoryStream(DirectCast(FIRMA.Firma_Logo, Byte()))
|
|
' pic.BackgroundImage = Image.FromStream(stmBLOBData)
|
|
'Catch ex As Exception
|
|
' ' MsgBox(ex.Message)
|
|
'End Try
|
|
|
|
Else
|
|
lblFirma1.Text = "-"
|
|
lblFirma2.Text = "-"
|
|
lblFirma3.Text = "-"
|
|
FIRMA = Nothing
|
|
End If
|
|
|
|
initRg_Anhaenhe_Default(RECHNUNG, SPEDBUCH)
|
|
|
|
If cboFirma._value IsNot Nothing AndAlso cboFirma._value <> "" AndAlso Not cboFirma._value = 19 Then
|
|
|
|
If cboSammelrechnung.Items.Count > 7 Then
|
|
|
|
|
|
For iIndex = 0 To cboSammelrechnung.Items.Count - 1
|
|
If cboSammelrechnung.Items(iIndex).value = 6 Then
|
|
cboSammelrechnung.Items.RemoveAt(iIndex)
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
|
|
End If
|
|
|
|
Else
|
|
|
|
If cboSammelrechnung.Items.Count < 8 Then
|
|
cboSammelrechnung.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("6 Maut/Diesel", 6))
|
|
End If
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub cboFiliale_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFiliale.SelectedIndexChanged
|
|
initFirma()
|
|
End Sub
|
|
|
|
Sub initFirma()
|
|
Select Case cboFiliale._value
|
|
Case "4805" : cboFirma.changeItem(11) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 11
|
|
Case "4801", "4802" : cboFirma.changeItem(7) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 7
|
|
Case "5501" : cboFirma.changeItem(20) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 20
|
|
'' Case "4819" : cboFirma.changeItem(4) : RECHNUNG.Firma_ID = 4
|
|
|
|
Case "5601" : cboFirma.changeItem("") : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = -1 'UNISPED
|
|
Case "7001" : cboFirma.changeItem("") : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = -1 'UK oder AG
|
|
Case "7002", "7003" : cboFirma.changeItem("26") : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 26 'UK AWOR oder UNISPED
|
|
'Case "7002" : cboFirma.changeItem(26) : RECHNUNG.Firma_ID = 26 'UK oder AG
|
|
Case "5701" : cboFirma.changeItem(24) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 24'AMBAR
|
|
Case "5801" : cboFirma.changeItem(17) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 17 'FRONT-OFFICE
|
|
Case "4817", "4820", "4821", "4823", "4824", "4814", "4868" : cboFirma.changeItem(19) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 19 'MDM
|
|
|
|
Case Else
|
|
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.Abfertigungsart = 38 Then 'EV-VZ
|
|
cboFirma.changeItem(11) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 11
|
|
Else
|
|
cboFirma.changeItem(1) : If RECHNUNG IsNot Nothing Then RECHNUNG.Firma_ID = 1
|
|
End If
|
|
End Select
|
|
|
|
Dim FIRMATMP = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(cboFiliale._value)
|
|
|
|
kdFirmaRechnungAn._UseFIRMA = FIRMATMP
|
|
'If cboFiliale._value = "5701" AndAlso VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("AMBAR_ALLE_RECHNUNGSEMPFÄNGER", "SDL") Then kdFirmaRechnungAn._UseFIRMA = Nothing
|
|
kdFirmaAbsender._UseFIRMA = FIRMATMP
|
|
kdFirmaAuftraggeber._UseFIRMA = FIRMATMP
|
|
kdFirmaEmpfaenger._UseFIRMA = FIRMATMP
|
|
kdFirmaAvisierer._UseFIRMA = FIRMATMP
|
|
End Sub
|
|
|
|
Sub getValues()
|
|
If Not allowGetValues Then Exit Sub
|
|
|
|
' RECHNUNG.RK_ID As Integer
|
|
'RECHNUNG.FilialenNr As Integer
|
|
'RECHNUNG.AbfertigungsNr As Integer
|
|
'RECHNUNG.UnterNr As Integer
|
|
'RECHNUNG.Abfertigungsdatum As Date
|
|
'RECHNUNG.RechnungsNr As Integer
|
|
' RECHNUNG.RechnungsDatum As Date
|
|
' RECHNUNG.Umrechnungskurs = 1
|
|
|
|
Dim zahlbar = ""
|
|
|
|
Select Case cboRgGS.SelectedIndex
|
|
Case 0 : RECHNUNG.[BelegartenKz] = "AR" : RECHNUNG.[BelegartenNr] = 70 : RECHNUNG.Vorzeichen = "+" : RECHNUNG.BelegartenBez = "Rechnung" : RECHNUNG.Text = cProgramFunctions.isLeerNothing(txtText.Text) : RECHNUNG.TextZZ = cProgramFunctions.isLeerNothing(txtTextZZ.Text)
|
|
Case 1 : RECHNUNG.[BelegartenKz] = "AG" : RECHNUNG.[BelegartenNr] = 71 : RECHNUNG.Vorzeichen = "-" : RECHNUNG.BelegartenBez = "Gutschrift" : RECHNUNG.Text = "" : If RECHNUNG.Firma_ID = 19 Then RECHNUNG.TextZZ = cProgramFunctions.isLeerNothing(txtTextZZ.Text)
|
|
End Select
|
|
|
|
RECHNUNG.Sammelrechnung = cProgramFunctions.isLeerNothing(cboSammelrechnung._value)
|
|
|
|
|
|
|
|
RECHNUNG.RechnungSprache = cboRechnungSprache._value
|
|
If RECHNUNG.RechnungSprache = "" Then RECHNUNG.RechnungSprache = "DE"
|
|
|
|
RECHNUNG.BelegNr = txtZollbelegNr.Text
|
|
|
|
RECHNUNG.AbsenderKundenNr = kdFirmaAbsender.KdNrNullInt
|
|
RECHNUNG.AbsenderName_1 = cProgramFunctions.isLeerNothing(kdFirmaAbsender.Text) '!!!!
|
|
RECHNUNG.AbsenderName_2 = cProgramFunctions.isLeerNothing(txtAbsenderName2.Text) '!!!!
|
|
RECHNUNG.AbsenderStraße = cProgramFunctions.isLeerNothing(txtAbsenderStrasse.Text)
|
|
RECHNUNG.AbsenderOrt = cProgramFunctions.isLeerNothing(txtAbsenderOrt.Text)
|
|
If kdFirmaAbsender.KdData_ADRESSEN IsNot Nothing Then
|
|
RECHNUNG.AbsenderLandKz = kdFirmaAbsender.KdData_ADRESSEN.LandKz
|
|
'RECHNUNG.AbsenderOffertenNr = cProgramFunctions.isLeerNothing(absen.text)
|
|
End If
|
|
|
|
RECHNUNG.EmpfängerKundenNr = kdFirmaEmpfaenger.KdNrNullInt
|
|
RECHNUNG.EmpfängerName_1 = cProgramFunctions.isLeerNothing(kdFirmaEmpfaenger.Text) '!!!!
|
|
RECHNUNG.EmpfängerName_2 = cProgramFunctions.isLeerNothing(txtEmpfeangerName2.Text) '!!!!
|
|
RECHNUNG.EmpfängerStraße = cProgramFunctions.isLeerNothing(txtEmpfaengerStrasse.Text)
|
|
RECHNUNG.EmpfängerOrt = cProgramFunctions.isLeerNothing(txtEmpfaengerOrt.Text)
|
|
If kdFirmaEmpfaenger.KdData_ADRESSEN IsNot Nothing Then
|
|
RECHNUNG.EmpfängerLandKz = kdFirmaEmpfaenger.KdData_ADRESSEN.LandKz
|
|
'RECHNUNG.EmpfängerOffertenNr = cProgramFunctions.isLeerNothing(absen.text)
|
|
End If
|
|
|
|
RECHNUNG.VermittlerKundenNr = kdFirmaAuftraggeber.KdNrNullInt
|
|
RECHNUNG.VermittlerName_1 = cProgramFunctions.isLeerNothing(kdFirmaAuftraggeber.Text) '!!!!
|
|
RECHNUNG.VermittlerName_2 = cProgramFunctions.isLeerNothing(txtAuftraggeberName2.Text) '!!!!
|
|
RECHNUNG.VermittlerStraße = cProgramFunctions.isLeerNothing(txtAuftragggeberStrasse.Text)
|
|
RECHNUNG.VermittlerOrt = cProgramFunctions.isLeerNothing(txtAuftragggeberOrt.Text)
|
|
If kdFirmaAuftraggeber.KdData_ADRESSEN IsNot Nothing Then
|
|
RECHNUNG.VermittlerLandKz = kdFirmaAuftraggeber.KdData_ADRESSEN.LandKz
|
|
'RECHNUNG.VermittlerOffertenNr = cProgramFunctions.isLeerNothing(absen.text)
|
|
|
|
End If
|
|
|
|
RECHNUNG.Rechnung_an = cProgramFunctions.isLeerNothing(cboRechnungAn._value) '!!!!
|
|
RECHNUNG.KundenNrZentrale = cProgramFunctions.isLeerNothing(txtRechnungAnBuKdNr.Text)
|
|
RECHNUNG.RechnungsKundenNr = kdFirmaRechnungAn.KdNrNullInt
|
|
If kdFirmaRechnungAn.KdData_ADRESSEN IsNot Nothing Then
|
|
RECHNUNG.RechnungsName_1 = cProgramFunctions.isLeerNothing(kdFirmaRechnungAn.KdData_ADRESSEN.Name_1) '!!!!
|
|
RECHNUNG.RechnungsName_2 = cProgramFunctions.isLeerNothing(kdFirmaRechnungAn.KdData_ADRESSEN.Name_2) '!!!!
|
|
Else
|
|
RECHNUNG.RechnungsName_1 = cProgramFunctions.isLeerNothing(kdFirmaRechnungAn.Text) '!!!!
|
|
RECHNUNG.RechnungsName_2 = cProgramFunctions.isLeerNothing(txtRechnungAnName2.Text) '!!!!
|
|
End If
|
|
RECHNUNG.RechnungsStraße = cProgramFunctions.isLeerNothing(txtRechnungAnStrasse.Text)
|
|
RECHNUNG.RechnungsOrt = cProgramFunctions.isLeerNothing(txtRechnungAnOrt.Text)
|
|
RECHNUNG.RechnungsName_AdressZusatz = (txtRechnungAnZusatz.Text)
|
|
RECHNUNG.RechnungsUstIdKz = cProgramFunctions.isLeerNothing(txtRechnungAnUIDKz.Text)
|
|
RECHNUNG.RechnungsUstIdNr = cProgramFunctions.isLeerNothing(txtRechnungAnUIDNr.Text)
|
|
If kdFirmaRechnungAn.KdData_ADRESSEN IsNot Nothing Then
|
|
RECHNUNG.RechnungsLandKz = kdFirmaRechnungAn.KdData_ADRESSEN.LandKz
|
|
RECHNUNG.RechnungsUstIdGeprüft = kdFirmaRechnungAn.KdData_ADRESSEN.UstIdGeprüft
|
|
End If
|
|
If kdFirmaRechnungAn.KdData_KUNDE IsNot Nothing Then
|
|
If cboFirma._value <> "" Then
|
|
If cboFirma._value = 11 Then ' Bei VERAG Customs Service GmbH --> kein Bankeinzug
|
|
RECHNUNG.Lastschrift = False
|
|
Else
|
|
RECHNUNG.Lastschrift = kdFirmaRechnungAn.KdData_KUNDE.Lastschrift
|
|
End If
|
|
End If
|
|
RECHNUNG.Kunden_SVS = kdFirmaRechnungAn.KdData_KUNDE.SVS
|
|
RECHNUNG.Vorlageprovision_Proz = kdFirmaRechnungAn.KdData_KUNDE.Vorlageprovision '!!!!%
|
|
RECHNUNG.Kreditaufwendungen_Proz = kdFirmaRechnungAn.KdData_KUNDE.Kreditaufwendungen '!!!!%
|
|
RECHNUNG.Besonderheiten = kdFirmaRechnungAn.KdData_KUNDE.Besonderheiten
|
|
|
|
|
|
If cboVorauskasse._value <> "" Then
|
|
RECHNUNG.Vorkasse = CBool(cboVorauskasse._value)
|
|
Else
|
|
RECHNUNG.Vorkasse = kdFirmaRechnungAn.KdData_KUNDE.Vorkasse
|
|
End If
|
|
|
|
|
|
RECHNUNG.Nettozahlungsziel = kdFirmaRechnungAn.KdData_KUNDE.Zahlungsziel
|
|
End If
|
|
|
|
|
|
|
|
RECHNUNG.Steuerschlüssel = cProgramFunctions.isLeerNothing(cboSteuerschlüssel._value)
|
|
' MsgBox("txtSteuersatz._value" & txtSteuersatz._value)
|
|
RECHNUNG.Steuersatz_Proz = cProgramFunctions.isLeerNothing(txtSteuersatz._value) '!!!! %
|
|
RECHNUNG.LKW_Kennzeichen = cProgramFunctions.isLeerNothing(txtBefoerderungsmittel.Text) '!!!!
|
|
|
|
RECHNUNG.WährungsNr = cProgramFunctions.isLeerNothing(cboWaehrung._value) '?????????????????
|
|
RECHNUNG.Währungscode = cProgramFunctions.isLeerNothing(cboWaehrungUmrechnung._value) '?????????????????
|
|
If RECHNUNG.Währungscode Is Nothing Then RECHNUNG.Währungscode = "EUR"
|
|
If RECHNUNG.WährungsNr Is Nothing Then RECHNUNG.WährungsNr = 900
|
|
|
|
|
|
|
|
RECHNUNG.Wert = cProgramFunctions.isLeerNothingDbl(txtWarenwert._value) '?????????????????
|
|
|
|
' RECHNUNG.Umrechnungskurs = cProgramFunctions.isLeerNothing(XXXXXXXXX.text)--> Erst beim Erstellen?? '?????????????????
|
|
|
|
' If RECHNUNG.Umrechnungskurs Is Nothing Then RECHNUNG.Umrechnungskurs = 1
|
|
RECHNUNG.Packstücke_und_Warenbezeichnung = cProgramFunctions.isLeerNothing(txtSendungsdaten.Text) '!!!!
|
|
RECHNUNG.Grenze = cProgramFunctions.isLeerNothing(txtGrenze.Text) '!!!!
|
|
RECHNUNG.Vermerk = txtVermerk.Text
|
|
RECHNUNG.Anlage_1 = cProgramFunctions.isLeerNothing(cboAnlage1.Text) '!!!!
|
|
RECHNUNG.Anlage_2 = cProgramFunctions.isLeerNothing(cboAnlage2.Text) '!!!!
|
|
RECHNUNG.Anlage_3 = cProgramFunctions.isLeerNothing(cboAnlage3.Text) '!!!!
|
|
RECHNUNG.Anlage_4 = cProgramFunctions.isLeerNothing(cboAnlage4.Text) '!!!!
|
|
RECHNUNG.Anlage_5 = cProgramFunctions.isLeerNothing(cboAnlage5.Text) '!!!!
|
|
RECHNUNG.Anlage_6 = cProgramFunctions.isLeerNothing(cboAnlage6.Text) '!!!!
|
|
|
|
RECHNUNG.Handling = cProgramFunctions.isLeerNothing(rtbHandling.Text)
|
|
|
|
|
|
'RECHNUNG.SteuerpflichtigerGesamtbetrag = cProgramFunctions.isLeerNothing(steuer.text)
|
|
'RECHNUNG.SteuerfreierGesamtbetrag = cProgramFunctions.isLeerNothing(XXXXXXXXX.text)
|
|
|
|
RECHNUNG.Status = 0
|
|
'RECHNUNG.DruckDatumZeit = nothicProgramFunctions.isLeerNothing(XXXXXXXXX.text) DRUCK!!!!
|
|
' RECHNUNG.Buchungsjahr = cProgramFunctions.isLeerNothing(XXXXXXXXX.text) DRUCK!!!!
|
|
|
|
RECHNUNG.Abfertigungskosten = Abfertigungskosten_Berechnen()
|
|
|
|
RECHNUNG.Vorkosten = Vorkosten_Berechnen()
|
|
|
|
RECHNUNG.Erlös = RECHNUNG.Abfertigungskosten - RECHNUNG.Vorkosten
|
|
' RECHNUNG.Währungscode = cProgramFunctions.isLeerNothing(cboWaehrung._value) '????????
|
|
If Not cbxAdmin.Checked Then
|
|
RECHNUNG.Sachbearbeiter = cProgramFunctions.isLeerNothing(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME)
|
|
RECHNUNG.FakturierungsGruppe = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_fakturierungsgruppe
|
|
End If
|
|
|
|
' RECHNUNG.Trdin = cProgramFunctions.isLeerNothing(XXXXXXXXX.text) '????????
|
|
' RECHNUNG.KartenNr = cProgramFunctions.isLeerNothing(XXXXXXXXX.text) '????????
|
|
RECHNUNG.RefFilialenNr = cProgramFunctions.isLeerNothing(cboFilialeRef._value) '????????
|
|
RECHNUNG.RefAbfertigungsNr = cProgramFunctions.isLeerNothing(txtAbfertigungsnummerRef.Text) '????????
|
|
RECHNUNG.RefUnterNr = cProgramFunctions.isLeerNothing(txtUnterNrRef.Text) '????????
|
|
RECHNUNG.Notiz = cProgramFunctions.isLeerNothing(cboRechnungNotiz.Text)
|
|
' RECHNUNG.Zucker_MRN_Nr = cProgramFunctions.isLeerNothing(XXXXXXXXX.text)
|
|
' RECHNUNG.Zucker_MRN_Datum = cProgramFunctions.isLeerNothing(XXXXXXXXX.text)
|
|
' RECHNUNG.Zucker_Aufschub = cProgramFunctions.isLeerNothing(XXXXXXXXX.text)
|
|
RECHNUNG.ReErfZeitstempel = Now
|
|
RECHNUNG.Firma_ID = If(cboFirma._value = "", -1, cboFirma._value)
|
|
RECHNUNG.SpeditionsbuchUnterNr = cProgramFunctions.isLeerNothing(cboSpedBuchUnterNr._value)
|
|
RECHNUNG.ErfassungsNr = txtErfassungsnummer.Text
|
|
|
|
RECHNUNG.AvisiererKundenNr = kdFirmaAvisierer.KdNrNullInt
|
|
RECHNUNG.Avisierer = cProgramFunctions.isLeerNothing(kdFirmaAvisierer.Text)
|
|
' RECHNUNG.EMailRechnungstext = cProgramFunctions.isLeerNothing(XXXXXXXXX.text)
|
|
RECHNUNG.AvisoID = cProgramFunctions.isLeerNothing(txtAvisoId.Text)
|
|
|
|
RECHNUNG.KdAuftragsNr = cProgramFunctions.isLeerNothing(txtKdAuftragsNr.Text)
|
|
|
|
If RECHNUNG.Abfertigungsdatum < CDate("01.01.2000") Then RECHNUNG.Abfertigungsdatum = Now
|
|
|
|
If dgvOffertenSperrliste.SelectedRows.Count > 0 Then RECHNUNG.OffertenNr = dgvOffertenSperrliste.SelectedRows(0).Cells("OffertenNr").Value 'Wenn mehrfachauswahl möcglich-> Ändern
|
|
|
|
getValues_ANHAENGE()
|
|
End Sub
|
|
Sub getValues_ANHAENGE()
|
|
Try
|
|
|
|
RECHNUNG.ANHAENGE.Clear()
|
|
|
|
For Each r As DataGridViewRow In dgvAnhaenge.Rows
|
|
|
|
If r.Cells("optAnhSel") IsNot Nothing AndAlso r.Cells("optAnhSel").Value Then
|
|
Dim ANH As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge
|
|
ANH.dsId = r.Cells("clmnDsId").Value
|
|
ANH.anhId = r.Cells("clmnAnhId").Value
|
|
ANH.Bezeichnung = r.Cells("clmnBezeichnung").Value
|
|
RECHNUNG.ANHAENGE.Add(ANH)
|
|
End If
|
|
Next
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Function Abfertigungskosten_Berechnen() As Double
|
|
Abfertigungskosten_Berechnen = 0
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If POS.Preis IsNot Nothing AndAlso IsNumeric(POS.Preis) AndAlso POS.Preis <> 0 Then
|
|
If CBool(SQL.getValueTxtBySql("Select isnull([Abfertigungskosten],0) FROM [Leistungen] where LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL")) Then
|
|
Abfertigungskosten_Berechnen += POS.SteuerpflichtigerBetrag 'fktEuro(![SteuerpflichtigerBetrag], Me![Währungscode], "EUR")
|
|
Abfertigungskosten_Berechnen += POS.SteuerfreierBetrag
|
|
'Me![Abfertigungskosten] = Me![Abfertigungskosten] + fktEuro(![SteuerfreierBetrag], Me![Währungscode], "EUR")
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
End Function
|
|
|
|
|
|
Function Vorkosten_Berechnen() As Double
|
|
Dim vk = SQL.getValueTxtBySql("SELECT isnull([Preis],0) FROM [Vorkosten] where FilialenNr='" & RECHNUNG.FilialenNr & "' and AbfertigungsNr='" & RECHNUNG.AbfertigungsNr & "' and UnterNr='" & RECHNUNG.SpeditionsbuchUnterNr & "'", "FMZOLL")
|
|
If IsNumeric(vk) Then Return CDbl(vk) Else Return 0
|
|
End Function
|
|
|
|
|
|
Private Sub przBerechneRAPos(ByRef strProzedur As String)
|
|
loaded = False
|
|
Dim boolFehler As Boolean
|
|
|
|
Dim varAbfertigungskosten As Object
|
|
Dim varVorkosten As Object
|
|
|
|
'WANN WELCHES EVENT AUSLÖSEN??????????????????
|
|
getValues()
|
|
' If RECHNUNG.RK_ID <= 0 Then Exit Sub
|
|
If RECHNUNG.FilialenNr <= 0 Then Exit Sub
|
|
If RECHNUNG.AbfertigungsNr <= 0 Then Exit Sub
|
|
If RECHNUNG.UnterNr < 0 Then Exit Sub
|
|
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If False Then
|
|
|
|
If POS.BerechnungsartNr = 9 Then 'Berechnung lt. Basistarif
|
|
If POS.Preis IsNot Nothing Then
|
|
POS.Preis = Nothing
|
|
POS.Anzahl = Nothing
|
|
POS.SteuerpflichtigerBetrag = 0
|
|
POS.SteuerfreierBetrag = 0
|
|
End If
|
|
End If
|
|
|
|
End If
|
|
If If(POS.Anzahl, 0) < 0 Then ' falls Anzahl negativ ist
|
|
POS.Anzahl *= -1
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
Call przSVSRVS(RECHNUNG) ' SVS/RVS errechnen
|
|
' Call przSKR() ' SKR errechnen
|
|
'RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang
|
|
RECHNUNG.RechnungSprache = cboRechnungSprache._value
|
|
Call przVL(RECHNUNG) ' Vorlageprovision errechnen
|
|
Call przKapitalbereitstellung(RECHNUNG) 'Kapitalbereitstellung errechnen
|
|
|
|
' boolFehler = fktBGeb(RECHNUNG.[RK_ID], RECHNUNG.Steuersatz_Proz, RECHNUNG.[Sammelrechnung], RECHNUNG.[BelegartenNr]) ' Bearbeitungsgebühr errechnen
|
|
|
|
Call przKA(RECHNUNG) ' Kreditaufwendungen errechnen
|
|
RECHNUNG.Währungscode = cProgramFunctions.isLeerNothing(cboWaehrungUmrechnung._value)
|
|
Call przFixeTaxe(RECHNUNG) ' Fixe Taxe errechnen
|
|
Call przPP(RECHNUNG) ' Porto/Papiere errechnen
|
|
Call przBS415(RECHNUNG) ' Bankspesen errechnen
|
|
'Call setFixeTaxeMin(RECHNUNG, 500, 20) ' Mind Fixe Taxe errechnen
|
|
|
|
'Me![SteuerpflichtigerGesamtbetrag] = 0.0#
|
|
'Me![SteuerfreierGesamtbetrag] = 0.0#
|
|
'Me![Abfertigungskosten] = 0.0#
|
|
'Me![Vorkosten] = 0.0#
|
|
'Me![Erlös] = 0.0#
|
|
|
|
|
|
|
|
' initDGVRechnungenPositionen()
|
|
|
|
|
|
'txtText.Text = cFakturierung.przRechnungstext(RECHNUNG) ', zahlbar, MyRichTextBox2.Text)
|
|
|
|
' przRechnungstext()
|
|
'initDGVRechnungenPositionen() ??????????????
|
|
'Positionsanzeige aktualisieren.
|
|
|
|
loaded = True
|
|
End Sub
|
|
|
|
|
|
Shared Sub przVL(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
' Vorlageprovision errechnen
|
|
|
|
Dim curVLPreis As Double
|
|
Dim Vorlageprovision_Berechnungbetrag As Double = 0
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 700, 9) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
If If(RECHNUNG.Vorlageprovision_Proz, 0) = 0 Then Exit Sub 'keine Vorlageprovision
|
|
If RECHNUNG.[Vorkasse] Then Exit Sub 'Vorkasse
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If Not POS.Preisbindung Then
|
|
If SQL.getValueTxtBySql("SELECT isnull(Vorlageprovision,0) FROM Leistungen WHERE LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL") Then
|
|
Vorlageprovision_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
|
|
If Vorlageprovision_Berechnungbetrag > 0 Then
|
|
|
|
'Sucht, ob BS415 schon vorhanden ist,...
|
|
Dim FindPOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 700 And x.BerechnungsartNr = 9)
|
|
If FindPOS IsNot Nothing Then
|
|
' FindPOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
FindPOS.LeistungsNr = 700
|
|
FindPOS.BerechnungsartNr = 9
|
|
FindPOS.Steuerpflichtig = False
|
|
If RECHNUNG.RechnungSprache = "DE" Or FindPOS.LeistungsBez Is Nothing Then FindPOS.LeistungsBez = "Vorlageprovision"
|
|
'RECHNUNG.POSITIONEN.Add(FindPOS)
|
|
FindPOS.Anzahl = 1
|
|
FindPOS.Preis = Math.round(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz), 2) 'Int(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz) * 10 + 0.5) / 10
|
|
'...und der Wert gesetzt.
|
|
|
|
initSteuerbetraege(RECHNUNG, FindPOS)
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Shared Sub przKapitalbereitstellung(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
' Vorlageprovision % WIRD VERWENDET!!
|
|
|
|
Dim curVLPreis As Double
|
|
Dim Vorlageprovision_Berechnungbetrag As Double = 0
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 751, 9) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
|
|
If If(RECHNUNG.Vorlageprovision_Proz, 0) = 0 Then Exit Sub 'keine Vorlageprovision
|
|
If RECHNUNG.[Vorkasse] Then Exit Sub 'Vorkasse
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If Not POS.Preisbindung Then
|
|
If SQL.getValueTxtBySql("SELECT isnull(Vorlageprovision,0) FROM Leistungen WHERE LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL") Then
|
|
Vorlageprovision_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
|
|
If Vorlageprovision_Berechnungbetrag > 0 Then
|
|
|
|
'Sucht, ob BS415 schon vorhanden ist,...
|
|
Dim FindPOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 751 And x.BerechnungsartNr = 9)
|
|
|
|
If FindPOS IsNot Nothing Then
|
|
' FindPOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
FindPOS.LeistungsNr = 751
|
|
FindPOS.BerechnungsartNr = 9
|
|
FindPOS.Steuerpflichtig = False
|
|
If RECHNUNG.RechnungSprache = "DE" Or FindPOS.LeistungsBez Is Nothing Then FindPOS.LeistungsBez = "Kapitalbereitstellung"
|
|
'RECHNUNG.POSITIONEN.Add(FindPOS)
|
|
FindPOS.Anzahl = 1
|
|
FindPOS.Preis = Math.round(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz), 2) ' Int(Vorlageprovision_Berechnungbetrag * (RECHNUNG.Vorlageprovision_Proz) * 10 + 0.5) / 10
|
|
'...und der Wert gesetzt.
|
|
|
|
initSteuerbetraege(RECHNUNG, FindPOS)
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Function getNumeric(o) As Double
|
|
If o Is Nothing Then Return 0
|
|
If o Is DBNull.Value Then Return 0
|
|
Return If(IsNumeric(o), o, 0)
|
|
End Function
|
|
Public Function fktBGeb(ByRef lngRK_ID As Long, ByRef sngSteuersatz As Single, ByVal intSammelrechnung As Integer, ByVal intBelegartenNr As Integer) As Boolean
|
|
'---------------------------------------------------------------------------------------
|
|
' Prozedur : fktBGeb (Aufruf in Rechnungserfassung-HF und frmReErfSchn)
|
|
' Autor : MSa
|
|
' Datum : 27.09.2014
|
|
' Aufgabe : Bearbeitungsgebühr berechnen.
|
|
'---------------------------------------------------------------------------------------
|
|
'
|
|
|
|
Dim fResult As Boolean
|
|
Dim curBGebBetrag As Double
|
|
Dim curBGebErrBetrag As Double
|
|
Dim curBGebMinBetrag As Double
|
|
Dim fSteuerpflichtig As Boolean
|
|
Dim strLeistungsBez As String
|
|
|
|
|
|
fResult = False
|
|
Dim FixeTaxePOS = Nothing
|
|
' Int(Nz([BGebBgl],[Preis]*[Anzahl])*[BGebProzent]*10+0.5)/10 AS BGebErrBetrag
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
' Dim BGebErrBetrag As Double = Int(If(If(POS.BGebBgl, 0), If(POS.Preis, 0) * If(POS.Anzahl, 0)) * If(POS.BGebProzent, 0) * 10 + 0.5) / 10
|
|
Dim BGebErrBetrag As Double = Math.round(If(POS.BGebBgl IsNot Nothing, POS.BGebBgl, getNumeric(POS.Preis) * getNumeric(POS.Anzahl)) * getNumeric(POS.BGebProzent), 2) 'Int(If(POS.BGebBgl IsNot Nothing, POS.BGebBgl, getNumeric(POS.Preis) * getNumeric(POS.Anzahl)) * getNumeric(POS.BGebProzent) * 10 + 0.5) / 10
|
|
|
|
|
|
curBGebBetrag = 0
|
|
curBGebErrBetrag = BGebErrBetrag 'Errechneten Betrag bereitstellen.
|
|
curBGebMinBetrag = getNumeric(POS.BGebMinBetrag) 'Mindestbetrag bereitstellen.
|
|
'Vorzeichen für Vergleich einstellen.
|
|
If curBGebErrBetrag < 0 Then
|
|
curBGebErrBetrag = 0 - curBGebErrBetrag 'Vorzeichen in Plus ändern.
|
|
End If
|
|
If curBGebMinBetrag < 0 Then
|
|
curBGebMinBetrag = 0 - curBGebMinBetrag 'Vorzeichen in Plus ändern.
|
|
End If
|
|
'Größeren Betrag bereitstellen.
|
|
If curBGebErrBetrag > curBGebMinBetrag Then
|
|
curBGebBetrag = curBGebErrBetrag 'Errechneten Betrag verwenden
|
|
Else
|
|
curBGebBetrag = curBGebMinBetrag 'Mindestbetrag verwenden
|
|
End If
|
|
'Vorzeichen einstellen.
|
|
If POS.Preis < 0 Then
|
|
curBGebBetrag = 0 - curBGebBetrag 'Vorzeichen von Plus in Minus ändern.
|
|
End If
|
|
|
|
'Prüfung auf UStV-Rückerstattung.
|
|
If SQL.DLookup("[BGebUStV]", "Leistungen", "[LeistungsNr] = '" & POS.LeistungsNr & "'", "FMZOLL") Then
|
|
curBGebBetrag = 0 - curBGebBetrag 'Vorzeichen wechseln.
|
|
End If
|
|
'ab 20.06.2015 bei Rechnung aus Maut/Diesel-Schnittstelle keine negative Bearbeitungsgebühr ausweisen.
|
|
If intSammelrechnung = 6 And intBelegartenNr = 70 Then
|
|
If curBGebBetrag < 0 Then
|
|
curBGebBetrag = 0
|
|
End If
|
|
End If
|
|
|
|
|
|
'WHERE (((RechnungsausgangPositionen.RK_ID)=[prmRK_ID]) AND ((RechnungsausgangPositionen.LeistungsNr)=[prmLeistungsNr]) AND ((RechnungsausgangPositionen.BerechnungsartNr)=[prmBerechnungsartNr]));
|
|
|
|
|
|
|
|
'Sucht, ob Fixetaxe schon vorhanden ist,...
|
|
FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = POS.LeistungsNr And x.BerechnungsartNr = 1)
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
If FixeTaxePOS IsNot Nothing Then
|
|
' FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
FixeTaxePOS.LeistungsNr = 440
|
|
FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe"
|
|
FixeTaxePOS.BerechnungsartNr = 1
|
|
|
|
|
|
'Steuerpflichtig/Steuerfrei ermitteln.
|
|
If sngSteuersatz = 0 Then
|
|
fSteuerpflichtig = False
|
|
Else
|
|
'LeistungsNr bestimmt Steuerpflicht
|
|
fSteuerpflichtig = SQL.DLookup("[Steuerpflichtig]", "Leistungen", "[LeistungsNr] = " & POS.[BGebLeistungsNr], "FMZOLL")
|
|
End If
|
|
FixeTaxePOS.Steuerpflichtig = fSteuerpflichtig
|
|
|
|
'Leistungsbezeichnung ermitteln.
|
|
FixeTaxePOS.LeistungsBez = SQL.DLookup("[LeistungsBez]", "Leistungen", "[LeistungsNr] = " & POS.[BGebLeistungsNr], "FMZOLL")
|
|
|
|
End If
|
|
'...und der Wert gesetzt.
|
|
FixeTaxePOS.Anzahl = 1
|
|
FixeTaxePOS.Preis = curBGebBetrag 'If(If(RECHNUNG.Vorzeichen, False), -1, 1) * FixeTaxe
|
|
|
|
Next
|
|
|
|
If FixeTaxePOS IsNot Nothing Then
|
|
' RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
|
|
|
|
End If
|
|
':::::::::::::BEARBEITUNGSGEBÜHR : Evtl zuerst elistungen durchlaufen, dann meherere Bearbgeb,. je nach gekoppelter leistungsnr...????
|
|
|
|
End Function
|
|
|
|
Private Sub prBearbGeb_NEW(r As DataGridViewRow, OFFERTE As cOfferte, RE As cRechnungsausgang, BGebLeistungsNr As Integer, BGebProzent As Double, BGebMinBetrag As Double, BGebBgl As Integer, ByRef summeRMCBearb As Double, isRMC As Boolean, isFREMD As Boolean, FremdUndRMC As Boolean, changed As Boolean)
|
|
|
|
|
|
If r.Cells("Anzahl").Value <> 0 Then
|
|
|
|
If (BGebLeistungsNr > 0 AndAlso BGebProzent > 0 AndAlso BGebBgl <> 0) Then
|
|
|
|
Dim minBetragRMCUsed As Boolean = False
|
|
|
|
Dim curBGebMinBetrag = BGebMinBetrag
|
|
|
|
Dim curBGebErrBetrag As Double = Math.round(BGebBgl * BGebProzent, 1)
|
|
Dim curBGebBetrag As Double = 0
|
|
curBGebBetrag = curBGebErrBetrag
|
|
|
|
If curBGebErrBetrag < 0 Then
|
|
curBGebErrBetrag = 0 - curBGebErrBetrag 'Vorzeichen in Plus ändern.
|
|
End If
|
|
If curBGebMinBetrag < 0 Then
|
|
curBGebMinBetrag = 0 - curBGebMinBetrag 'Vorzeichen in Plus ändern.
|
|
End If
|
|
'Größeren Betrag bereitstellen.
|
|
If curBGebErrBetrag > curBGebMinBetrag Then
|
|
curBGebBetrag = curBGebErrBetrag 'Errechneten Betrag verwenden
|
|
summeRMCBearb += If(r.Cells("LeistungsBez").Value.Contains("Fremd-RG") OrElse r.Cells("LeistungsBez").Value.Contains("RMC-RG"), curBGebErrBetrag, 0)
|
|
Else
|
|
curBGebBetrag = curBGebMinBetrag 'Mindestbetrag verwenden
|
|
summeRMCBearb += If(r.Cells("LeistungsBez").Value.Contains("Fremd-RG") OrElse r.Cells("LeistungsBez").Value.Contains("RMC-RG"), curBGebErrBetrag, 0)
|
|
minBetragRMCUsed = IIf(r.Cells("LeistungsBez").Value.Contains("Fremd-RG") OrElse r.Cells("LeistungsBez").Value.Contains("RMC-RG"), True, False)
|
|
End If
|
|
'Vorzeichen einstellen.
|
|
If (r.Cells("Preis").Value < 0) Then
|
|
curBGebBetrag = 0 - curBGebBetrag 'Vorzeichen von Plus in Minus ändern.
|
|
End If
|
|
|
|
If SQL.DLookup("[BGebUStV]", "Leistungen", "[LeistungsNr] = '" & r.Cells("LeistungsNr").Value & "'", "FMZOLL") Then
|
|
curBGebBetrag = 0 - curBGebBetrag 'Vorzeichen wechseln.
|
|
End If
|
|
|
|
For Each o In OFFERTE.POSITIONEN
|
|
|
|
If o.LeistungsNr = BGebLeistungsNr And o.BerechnungsartNr = 9 Then
|
|
|
|
Dim preisInital As Double = 0
|
|
|
|
If Not IsDBNull(r.Cells("Preis").Value) Then
|
|
preisInital = curBGebBetrag
|
|
End If
|
|
|
|
'Falls schon vorhanden...
|
|
Dim POS = RE.POSITIONEN.Find(Function(x) x.LeistungsNr = BGebLeistungsNr And x.BerechnungsartNr = 9)
|
|
If POS Is Nothing Then
|
|
'hier wird die BearbeitungsPOS gesetzt!
|
|
For Each row As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If row.Cells("LeistungsNr").Value = BGebLeistungsNr And row.Cells("BerechnungsartNr").Value = 9 Then
|
|
row.Cells("Anzahl").Value = 1
|
|
preisInital = curBGebBetrag
|
|
|
|
If preisInital = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
|
|
preisInital = preisInital / 2
|
|
row.Cells("Preis").Value = preisInital
|
|
Exit For
|
|
ElseIf preisInital <> curBGebBetrag * 2 AndAlso summeRMCBearb <> preisInital AndAlso (minBetragRMCUsed OrElse isRMC OrElse isFREMD) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
|
|
preisInital = summeRMCBearb
|
|
row.Cells("Preis").Value = preisInital
|
|
Exit For
|
|
Else
|
|
row.Cells("Preis").Value = preisInital
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
'hier wird der Betrag der BearbeitungsPOS NEU berechnet!
|
|
|
|
Dim curBearbPreis As Double = 0
|
|
|
|
If changed Then
|
|
|
|
For Each row As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If row.Cells("LeistungsNr").Value = BGebLeistungsNr And row.Cells("BerechnungsartNr").Value = 9 AndAlso row.Cells("Anzahl").Value = 1 Then
|
|
|
|
If IsDBNull(row.Cells("Preis").Value) Then row.Cells("Preis").Value = preisInital
|
|
|
|
curBearbPreis += row.Cells("Preis").Value
|
|
|
|
|
|
If FremdUndRMC Then
|
|
'beide POS sind enthalten
|
|
If curBearbPreis = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
|
|
If curBearbPreis <> row.Cells("Preis").Value Then row.Cells("Preis").Value = curBGebBetrag / 2
|
|
ElseIf curBearbPreis <> curBGebBetrag * 2 AndAlso summeRMCBearb <> curBearbPreis AndAlso (minBetragRMCUsed OrElse isRMC OrElse isFREMD) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
|
|
|
|
If summeRMCBearb <> row.Cells("Preis").Value Then
|
|
If Math.abs(row.Cells("Preis").Value - summeRMCBearb) > 0.5 Then 'Rundungsdifferenzen ignorieren (weil sonst Deadloop)
|
|
row.Cells("Preis").Value = summeRMCBearb
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
|
|
Else
|
|
|
|
If minBetragRMCUsed Then
|
|
|
|
If curBearbPreis > curBGebBetrag AndAlso summeRMCBearb > 0 Then
|
|
If curBearbPreis <> summeRMCBearb Then row.Cells("Preis").Value = summeRMCBearb
|
|
Else
|
|
If curBearbPreis <> curBGebMinBetrag Then row.Cells("Preis").Value = curBGebMinBetrag
|
|
|
|
End If
|
|
|
|
Else
|
|
|
|
If curBearbPreis > curBGebBetrag AndAlso summeRMCBearb > 0 Then
|
|
If curBearbPreis <> summeRMCBearb Then row.Cells("Preis").Value = summeRMCBearb
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'If curBearbPreis <> curBGebBetrag * 2 AndAlso curBearbPreis <> summeRMCBearb AndAlso (minBetragRMCUsed OrElse isRMC) Then
|
|
|
|
' If summeRMCBearb > curBGebMinBetrag AndAlso summeRMCBearb <> 0 Then
|
|
' If curBearbPreis <> summeRMCBearb Then row.Cells("Preis").Value = summeRMCBearb
|
|
' ElseIf curBGebErrBetrag = summeRMCBearb Then
|
|
|
|
' If Not FremdUndRMC Then 'dann ist das die die erste POS und es gibt nur 1 hier setzen, sonder überspringen!! '!!!!!!!!! außer beide POS fallen unter die Mindestgrenze!!!
|
|
' If curBearbPreis <> curBGebMinBetrag Then row.Cells("Preis").Value = curBGebMinBetrag
|
|
' End If
|
|
|
|
' ElseIf curBGebErrBetrag <> summeRMCBearb And FremdUndRMC Then 'dann ist das die NICHT die erste POS, hier setzen
|
|
' If curBearbPreis <> curBGebMinBetrag Then row.Cells("Preis").Value = curBGebMinBetrag
|
|
' End If
|
|
|
|
|
|
'ElseIf curBearbPreis = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then
|
|
|
|
' If curBearbPreis <> curBGebBetrag Then row.Cells("Preis").Value = curBGebBetrag
|
|
|
|
'ElseIf Not isRMC AndAlso curBearbPreis <> curBGebBetrag Then
|
|
|
|
' If curBearbPreis <> curBGebBetrag Then row.Cells("Preis").Value = curBGebBetrag
|
|
|
|
'End If
|
|
|
|
|
|
'If row.Cells("Preis").Value = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
|
|
' row.Cells("Preis").Value = row.Cells("Preis").Value / 2
|
|
'ElseIf row.Cells("Preis").Value <> curBGebBetrag * 2 AndAlso summeRMCBearb <> row.Cells("Preis").Value AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
|
|
' row.Cells("Preis").Value = summeRMCBearb
|
|
'End If
|
|
End If
|
|
|
|
Next
|
|
|
|
|
|
End If
|
|
|
|
'POS.Preis += curBGebBetrag
|
|
|
|
'If POS.Preis = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
|
|
' POS.Preis = POS.Preis / 2
|
|
'ElseIf POS.Preis <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.Preis AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
|
|
' POS.Preis = summeRMCBearb
|
|
'End If
|
|
|
|
|
|
'If POS.Steuerpflichtig Then
|
|
' POS.SteuerpflichtigerBetrag += curBGebBetrag
|
|
|
|
' If POS.SteuerpflichtigerBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
|
|
' POS.SteuerpflichtigerBetrag = POS.SteuerpflichtigerBetrag / 2
|
|
' ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
|
|
' POS.SteuerpflichtigerBetrag = summeRMCBearb
|
|
|
|
' End If
|
|
|
|
'Else
|
|
' POS.SteuerfreierBetrag += curBGebBetrag
|
|
|
|
' If POS.SteuerfreierBetrag = curBGebBetrag * 2 AndAlso minBetragRMCUsed Then 'wenn RMCPOS und MIND-BERTAG 2x verrechnet -> nur 1x berechnen
|
|
' POS.SteuerfreierBetrag = POS.SteuerfreierBetrag / 2
|
|
' ElseIf POS.SteuerpflichtigerBetrag <> curBGebBetrag * 2 AndAlso summeRMCBearb <> POS.SteuerpflichtigerBetrag AndAlso (minBetragRMCUsed OrElse isRMC) AndAlso summeRMCBearb > curBGebMinBetrag Then 'wenn RMCPOS und Summe der berechneten Bearb > Mindestbetrag --> berechnetBearb verrechnet!
|
|
' POS.SteuerpflichtigerBetrag = summeRMCBearb
|
|
' End If
|
|
|
|
'End If
|
|
|
|
End If
|
|
Next
|
|
'Catch ex As Exception
|
|
' VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
'End Try
|
|
' Return False
|
|
'End Function
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub przBerechneWert()
|
|
Try
|
|
|
|
Dim varVonWährung As Object
|
|
Dim varNachWährung As Object
|
|
|
|
If RECHNUNG.[WährungsNr] Is Nothing Then Exit Sub ' Währungsnummer für Warenwert nicht eingegeben
|
|
If RECHNUNG.[Wert] Is Nothing Then Exit Sub ' Warenwert nicht eingegeben
|
|
If RECHNUNG.[Währungscode] Is Nothing Then Exit Sub ' Währungscode für Rechnung nicht eingegeben
|
|
|
|
Dim dt = SQL.loadDgvBySql("SELECT Währungscode, Menge, Eurokurs FROM Währungstabelle WHERE Währungsschlüssel = " & If(RECHNUNG.[WährungsNr], -1) & ";", "FMZOLL")
|
|
|
|
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
|
|
MsgBox("Die Währungsnummer " & RECHNUNG.[WährungsNr] & " ist nicht in der Währungstabelle gespeichert.", , "przBerechneWert")
|
|
Exit Sub
|
|
Else
|
|
If RECHNUNG.Währungscode = dt.Rows(0)("Währungscode") Then
|
|
' Die Währung für Rechnung und Warenwert ist gleich. Keine Kursumrechnung erforderlich.
|
|
RECHNUNG.Umrechnungskurs = Nothing
|
|
End If
|
|
|
|
If RECHNUNG.Umrechnungskurs IsNot Nothing AndAlso RECHNUNG.Umrechnungskurs <> 0 Then
|
|
' Der Mengenfaktor für den Umrechnungskurs muß in der Währungstabelle gespeichert sein.
|
|
If dt.Rows(0)("Menge") Is DBNull.Value OrElse dt.Rows(0)("Menge") = 0 Then
|
|
MsgBox("Für die Währungsnummer " & RECHNUNG.[WährungsNr] & " ist in der Währungstabelle keine Mengenangabe gespeichert.", , "przBerechneWert")
|
|
Exit Sub
|
|
End If
|
|
' Mit dem eingegebenen Umrechnungskurs rechnen.
|
|
RECHNUNG.[Wert] = Int(RECHNUNG.[Wert] / dt.Rows(0)("Menge") * RECHNUNG.[Umrechnungskurs] + 0.5)
|
|
RECHNUNG.[WährungsNr] = SQL.DLookup("[Währungsschlüssel]", "Währungstabelle", "Währungscode = '" & RECHNUNG.[Währungscode] & "' ORDER BY Währungsschlüssel DESC", "FMZOLL")
|
|
RECHNUNG.[Umrechnungskurs] = Nothing
|
|
Call przBerechneRAPos("Wert_1")
|
|
Exit Sub
|
|
End If
|
|
If dt.Rows(0)("Eurokurs") Is DBNull.Value OrElse dt.Rows(0)("Eurokurs") = 0 Then
|
|
' Eine Umrechnung in EURO ist nicht möglich.
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim dt_Umrechnung = SQL.loadDgvBySql("SELECT Währungsschlüssel, Eurokurs FROM Währungstabelle WHERE Währungscode = '" & If(RECHNUNG.[Währungscode], "") & "' ORDER BY Währungsschlüssel DESC;", "FMZOLL")
|
|
If dt Is Nothing OrElse dt.Rows.Count > 0 Then
|
|
' Die Zielwährung ist nicht in der Währungstabelle enthalten.
|
|
Exit Sub
|
|
Else
|
|
If dt_Umrechnung.Rows(0)("Eurokurs") Is Nothing OrElse dt_Umrechnung.Rows(0)("Eurokurs") = 0 Then
|
|
' Eine Umrechnung von EURO ist nicht möglich.
|
|
Exit Sub
|
|
End If
|
|
varVonWährung = RECHNUNG.[WährungsNr]
|
|
varNachWährung = RECHNUNG.[Währungscode]
|
|
|
|
RECHNUNG.[Wert] = Int(VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(RECHNUNG.[Wert], varVonWährung, varNachWährung) + 0.5)
|
|
RECHNUNG.[WährungsNr] = dt_Umrechnung.Rows(0)("Währungsschlüssel")
|
|
RECHNUNG.[Umrechnungskurs] = Nothing
|
|
Call przBerechneRAPos("Wert_2")
|
|
|
|
End If
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Shared Sub przBS415(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
|
|
' Banküberweisung/Bankspesen berechnen
|
|
Dim BS415 As Double = 0.0
|
|
|
|
' Dim Bankspesen_DT As DataTable = SQL.loadDgvBySql("SELECT isnull(Kunden.[Bankspesen %],0) as BankspesenProz, Kunden.[Bankspesen Mindestbetrag] FROM Kunden WHERE KundenNr=" & RECHNUNG.RechnungsKundenNr & "", "FMZOLL")
|
|
Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(RECHNUNG.RechnungsKundenNr)
|
|
If KD IsNot Nothing Then
|
|
|
|
If If(KD.Bankspesen, 0) > 0 Then
|
|
|
|
Dim BS415_Berechnungbetrag As Double = 0
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If Not POS.Preisbindung Then
|
|
If SQL.getValueTxtBySql("SELECT isnull(BS415,0) FROM Leistungen WHERE LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL") Then
|
|
BS415_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
End If
|
|
Next
|
|
' mind??KD
|
|
If BS415_Berechnungbetrag <> 0 Then
|
|
If BS415_Berechnungbetrag < 0 Then BS415_Berechnungbetrag *= -1
|
|
BS415 = Int(BS415_Berechnungbetrag * KD.Bankspesen + 0.5)
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
If BS415 = 0 Then Exit Sub
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 415, 1) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
|
|
'Sucht, ob BS415 schon vorhanden ist,...
|
|
Dim BS415POS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 415 And x.BerechnungsartNr = 1)
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
If BS415POS IsNot Nothing Then
|
|
' BS415POS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
BS415POS.LeistungsNr = 415
|
|
BS415POS.BerechnungsartNr = 1
|
|
BS415POS.LeistungsBez = "Überweisung/Bankspesen"
|
|
'RECHNUNG.POSITIONEN.Add(BS415POS)
|
|
BS415POS.Anzahl = 1
|
|
BS415POS.Preis = getVorzeichen(RECHNUNG) * BS415
|
|
initSteuerbetraege(RECHNUNG, BS415POS)
|
|
End If
|
|
'...und der Wert gesetzt.
|
|
End Sub
|
|
|
|
Shared Sub przFixeTaxe(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
Dim FixeTaxe_Berechnungbetrag As Double = 0
|
|
' Bei Leistungs-Nr 440 und Berechnungs-Code-Nr 9 wird Fixe Taxe berechnet.
|
|
Dim FixeTaxe As Double = 0.0
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 440, 9) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If SQL.getValueTxtBySql("SELECT isnull(FixeTaxe,0) FROM Leistungen WHERE LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL") Then
|
|
FixeTaxe_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
Next
|
|
|
|
If FixeTaxe_Berechnungbetrag <> 0 Then
|
|
If FixeTaxe_Berechnungbetrag < 0 Then
|
|
FixeTaxe_Berechnungbetrag *= -1
|
|
End If
|
|
' Die Basistabelle ist in der Währung ATS geführt.
|
|
' Wenn der Basisbetrag auf einer anderen Währung basiert,
|
|
' wird der Basisbetrag in ATS umgerechnet.
|
|
|
|
FixeTaxe_Berechnungbetrag = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(FixeTaxe_Berechnungbetrag, RECHNUNG.Währungscode, "ATS")
|
|
Select Case FixeTaxe_Berechnungbetrag
|
|
Case Is <= 100
|
|
FixeTaxe = 61.8
|
|
Case Is <= 300
|
|
FixeTaxe = 82.4
|
|
Case Is <= 500
|
|
FixeTaxe = 124
|
|
Case Is <= 1000
|
|
FixeTaxe = 185
|
|
Case Is <= 5000
|
|
FixeTaxe = 185
|
|
FixeTaxe_Berechnungbetrag = FixeTaxe_Berechnungbetrag - 1000
|
|
While FixeTaxe_Berechnungbetrag > 0
|
|
FixeTaxe = FixeTaxe + 124
|
|
FixeTaxe_Berechnungbetrag = FixeTaxe_Berechnungbetrag - 1000
|
|
End While
|
|
Case Else
|
|
FixeTaxe = 185 + 124 + 124 + 124 + 124
|
|
FixeTaxe_Berechnungbetrag = FixeTaxe_Berechnungbetrag - 5000
|
|
While FixeTaxe_Berechnungbetrag > 0
|
|
FixeTaxe = FixeTaxe + 61.8
|
|
FixeTaxe_Berechnungbetrag = FixeTaxe_Berechnungbetrag - 1000
|
|
End While
|
|
End Select
|
|
' Die Fixe Taxe ist in der Währung ATS angegeben.
|
|
' Lautet die Rechnung auf eine andere Währung,
|
|
' wird die Fixe Taxe auf diese Währung umgerechnet.
|
|
FixeTaxe = VERAG_PROG_ALLGEMEIN.cProgramFunctions.fktEuro(FixeTaxe, "ATS", RECHNUNG.Währungscode)
|
|
|
|
End If
|
|
|
|
|
|
If FixeTaxe = 0 Then Exit Sub
|
|
|
|
'Sucht, ob Fixetaxe schon vorhanden ist,...
|
|
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 440 And x.BerechnungsartNr = 9)
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
If FixeTaxePOS IsNot Nothing Then
|
|
' FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
FixeTaxePOS.LeistungsNr = 440
|
|
FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe"
|
|
FixeTaxePOS.BerechnungsartNr = 9
|
|
' RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
|
|
'...und der Wert gesetzt.
|
|
FixeTaxePOS.Anzahl = 1
|
|
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * FixeTaxe
|
|
|
|
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
|
|
End If
|
|
|
|
End Sub
|
|
Shared Sub setFixeTaxeMin(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef minBetrag As Double, fixeTaxe As Double)
|
|
|
|
Dim FixeTaxe_Berechnungbetrag As Double = 0
|
|
Dim PapirePorti As Double = 0
|
|
If Not CBool(SQL.DLookup("[PP441]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
|
|
Exit Sub
|
|
End If
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 441) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If POS.LeistungsNr <> 441 Then
|
|
FixeTaxe_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
Next
|
|
|
|
If FixeTaxe_Berechnungbetrag < 0 Then FixeTaxe_Berechnungbetrag *= -1
|
|
|
|
'Sucht, ob Fixetaxe schon vorhanden ist,...
|
|
Dim FixeTaxePOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 441)
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
If FixeTaxePOS IsNot Nothing Then
|
|
'FixeTaxePOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
FixeTaxePOS.LeistungsNr = 441 '441 und nicht 440 laut Brigitte weil Steuerfrei!!
|
|
FixeTaxePOS.LeistungsBez = "P.P./Fixe Taxe"
|
|
FixeTaxePOS.BerechnungsartNr = 1
|
|
'RECHNUNG.POSITIONEN.Add(FixeTaxePOS)
|
|
'...und der Wert gesetzt.
|
|
If FixeTaxe_Berechnungbetrag < minBetrag Then
|
|
FixeTaxePOS.Anzahl = 1
|
|
Else
|
|
FixeTaxePOS.Anzahl = 0
|
|
End If
|
|
FixeTaxePOS.Preis = getVorzeichen(RECHNUNG) * fixeTaxe 'Preis wird bewusst überschrieben!!!
|
|
initSteuerbetraege(RECHNUNG, FixeTaxePOS)
|
|
End If
|
|
|
|
If FixeTaxePOS.Anzahl = 0 Then
|
|
RECHNUNG.POSITIONEN.Remove(FixeTaxePOS)
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Shared Function getVorzeichen(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang) As Integer
|
|
Return 1
|
|
Return If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
End Function
|
|
|
|
|
|
Shared Sub przKA(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
' Bei Leistungs-Nr 440 und Berechnungs-Code-Nr 9 wird Fixe Taxe berechnet.
|
|
Dim Kreditaufwendungen As Double = 0.0
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 750, 9) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
' Dim Bankspesen_DT As DataTable = SQL.loadDgvBySql("SELECT isnull(Kunden.[Bankspesen %],0) as BankspesenProz, Kunden.[Bankspesen Mindestbetrag] FROM Kunden WHERE KundenNr=" & RECHNUNG.RechnungsKundenNr & "", "FMZOLL")
|
|
Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(RECHNUNG.RechnungsKundenNr)
|
|
If KD IsNot Nothing Then
|
|
If RECHNUNG.[Lastschrift] Then Exit Sub 'Lastschrift
|
|
If RECHNUNG.[Vorkasse] Then Exit Sub 'Vorkasse
|
|
|
|
If If(KD.Kreditaufwendungen, 0) > 0 Then
|
|
|
|
Dim Kreditaufwendungen_Berechnungbetrag As Double = 0
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If Not POS.Preisbindung Then
|
|
If SQL.getValueTxtBySql("SELECT isnull(Kreditaufwendungen,0) FROM Leistungen WHERE LeistungsNr='" & POS.LeistungsNr & "'", "FMZOLL") Then
|
|
Kreditaufwendungen_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If Kreditaufwendungen_Berechnungbetrag <> 0 Then
|
|
' MsgBox("1: " & Kreditaufwendungen_Berechnungbetrag)
|
|
If Kreditaufwendungen_Berechnungbetrag < 0 Then Kreditaufwendungen_Berechnungbetrag *= -1
|
|
Kreditaufwendungen = Math.round(Kreditaufwendungen_Berechnungbetrag * KD.Kreditaufwendungen, 2) '(Int(Kreditaufwendungen_Berechnungbetrag * KD.Kreditaufwendungen) * 10 + 0.5) / 10
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
|
|
If Kreditaufwendungen = 0 Then Exit Sub
|
|
|
|
'Sucht, ob Kreditaufwendungen schon vorhanden ist,...
|
|
Dim KreditaufwendungenPOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 750 And x.BerechnungsartNr = 9)
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
|
|
If KreditaufwendungenPOS IsNot Nothing Then
|
|
' KreditaufwendungenPOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
KreditaufwendungenPOS.LeistungsNr = 750
|
|
If RECHNUNG.RechnungSprache = "DE" Or KreditaufwendungenPOS.LeistungsBez Is Nothing Then KreditaufwendungenPOS.LeistungsBez = "Kreditaufwendungen"
|
|
KreditaufwendungenPOS.BerechnungsartNr = 9
|
|
' RECHNUNG.POSITIONEN.Add(KreditaufwendungenPOS)
|
|
|
|
'...und der Wert gesetzt.
|
|
KreditaufwendungenPOS.Anzahl = 1
|
|
KreditaufwendungenPOS.Preis = getVorzeichen(RECHNUNG) * Kreditaufwendungen
|
|
initSteuerbetraege(RECHNUNG, KreditaufwendungenPOS)
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Shared Sub initSteuerbetraege(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, ByRef POS As VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
|
|
If RECHNUNG.ForceSteuerschlüssel Is Nothing Then
|
|
POS.Steuerpflichtig = 0
|
|
POS.SteuerfreierBetrag = 0
|
|
Dim vorzeichen = 1 'If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
|
|
If (RECHNUNG.Steuersatz_Proz <> 0) And CBool(SQL.DLookup("Steuerpflichtig", "Leistungen", "[LeistungsNr] = '" & POS.LeistungsNr & "'", "FMZOLL")) Then ' Steuersatz muss ungleich 0 sein, damit der Betrag steuerpflichtig wird
|
|
POS.SteuerpflichtigerBetrag = POS.Preis * POS.Anzahl
|
|
POS.Steuerpflichtig = True
|
|
Else
|
|
POS.SteuerfreierBetrag = POS.Preis * POS.Anzahl
|
|
POS.Steuerpflichtig = False
|
|
End If
|
|
|
|
POS.Steuerpflichtig *= vorzeichen
|
|
POS.SteuerfreierBetrag *= vorzeichen
|
|
Else
|
|
|
|
POS.Steuerpflichtig = (RECHNUNG.ForceSteuerschlüssel > 0)
|
|
If POS.Steuerpflichtig Then
|
|
POS.SteuerpflichtigerBetrag = POS.Preis * POS.Anzahl
|
|
Else
|
|
POS.SteuerfreierBetrag = POS.Preis * POS.Anzahl
|
|
End If
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Shared Sub przPP(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
' Berechnung Porto/Papiere
|
|
|
|
Dim PapirePorti_Berechnungbetrag As Double = 0
|
|
Dim PapirePorti As Double = 0
|
|
If Not CBool(SQL.DLookup("[PP440]", "Filialen", "[FilialenNr]=" & RECHNUNG.FilialenNr, "FMZOLL", False)) Then
|
|
'If Not CBool(SQL.getValueTxtBySql("SELECT isnull(Filialen.PP440,0) FROM Filialen WHERE Filialen.FilialenNr='" & RECHNUNG.FilialenNr & "'", "FMZOLL")) Then
|
|
'bei dieser Filiale gibt es keine PP
|
|
Exit Sub
|
|
End If
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 440) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If POS.LeistungsNr <> 440 Then
|
|
PapirePorti_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
Next
|
|
|
|
|
|
If PapirePorti_Berechnungbetrag < 0 Then PapirePorti_Berechnungbetrag *= -1
|
|
|
|
If PapirePorti_Berechnungbetrag > 150 Then
|
|
'Sucht, ob PapirePorti schon vorhanden ist,...
|
|
Dim PapirePortiPOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 440 And If(x.LeistungsBez, "") = "PapirePorti")
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
If PapirePortiPOS IsNot Nothing Then
|
|
'PapirePortiPOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
PapirePortiPOS.LeistungsNr = 440
|
|
PapirePortiPOS.LeistungsBez = "PapirePorti"
|
|
' RECHNUNG.POSITIONEN.Add(PapirePortiPOS)
|
|
'...und der Wert gesetzt.
|
|
PapirePortiPOS.Anzahl = 1
|
|
' PapirePortiPOS.Preis = ??????
|
|
initSteuerbetraege(RECHNUNG, PapirePortiPOS)
|
|
End If
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Shared Sub przSKR(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
|
|
|
|
|
|
Dim SKR_Berechnungbetrag As Double = 0
|
|
Dim SKR As Double = 0
|
|
|
|
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If POS.LeistungsNr <> 261 Then
|
|
SKR_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
End If
|
|
Next
|
|
|
|
|
|
If SKR_Berechnungbetrag < 0 Then SKR_Berechnungbetrag *= -1
|
|
|
|
If SKR_Berechnungbetrag > 150 Then
|
|
'Sucht, ob SKR schon vorhanden ist,...
|
|
Dim SKRPOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 261 And x.BerechnungsartNr = 9)
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
If SKRPOS IsNot Nothing Then
|
|
'SKRPOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
SKRPOS.LeistungsNr = 261
|
|
SKRPOS.LeistungsBez = "SKR"
|
|
SKRPOS.BerechnungsartNr = 9
|
|
'RECHNUNG.POSITIONEN.Add(SKRPOS)
|
|
'...und der Wert gesetzt.
|
|
SKRPOS.Anzahl = 1
|
|
' PapirePortiPOS.Preis = ??????
|
|
|
|
initSteuerbetraege(RECHNUNG, SKRPOS)
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Shared Function leistungExistsInPos(RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang, LeistungsNr As Integer, Optional BerechnungsartNr As Object = Nothing)
|
|
Return True
|
|
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
If POS.LeistungsNr = LeistungsNr And If(BerechnungsartNr Is Nothing, True, POS.BerechnungsartNr = BerechnungsartNr) Then
|
|
Return True
|
|
End If
|
|
Next
|
|
Return False
|
|
End Function
|
|
|
|
Shared Sub przSVSRVS(ByRef RECHNUNG As VERAG_PROG_ALLGEMEIN.cRechnungsausgang)
|
|
|
|
Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(RECHNUNG.RechnungsKundenNr)
|
|
|
|
If Not KD.SVS Then Exit Sub ' Kunde ist Verzeichtskunde!
|
|
|
|
Dim SVSRVS_Berechnungbetrag As Double = 0
|
|
Dim SVSRVS As Double = 0
|
|
|
|
If Not leistungExistsInPos(RECHNUNG, 260) Then Exit Sub 'Schauen, ob die Leistung in den Positionen vorhanden ist
|
|
|
|
'For Each POS In RECHNUNG.POSITIONEN
|
|
' If POS.LeistungsNr <> 260 Then
|
|
' SVSRVS_Berechnungbetrag += POS.[Preis] * POS.Anzahl
|
|
' End If
|
|
'Next
|
|
|
|
Dim ur = If(RECHNUNG.Umrechnungskurs, 1)
|
|
If ur <= 0 Then ur = 1
|
|
|
|
SVSRVS_Berechnungbetrag = RECHNUNG.Wert * ur
|
|
|
|
If SVSRVS_Berechnungbetrag < 0 Then SVSRVS_Berechnungbetrag *= -1
|
|
' If SVSRVS_Berechnungbetrag > 150 Then
|
|
'Sucht, ob SVSRVS schon vorhanden ist,...
|
|
Dim SVSRVSPOS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = 260 And x.BerechnungsartNr = 9)
|
|
'... sonst wird eine neue Pos eingefügt...
|
|
|
|
If SVSRVSPOS IsNot Nothing Then
|
|
|
|
' SVSRVSPOS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
SVSRVSPOS.LeistungsNr = 260
|
|
SVSRVSPOS.LeistungsBez = "SVS/RVS"
|
|
SVSRVSPOS.BerechnungsartNr = 9
|
|
SVSRVSPOS.Steuerpflichtig = False
|
|
'RECHNUNG.POSITIONEN.Add(SVSRVSPOS)
|
|
|
|
SVSRVSPOS.Anzahl = 1
|
|
' Dim vorzeichen = If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
' SVSRVSPOS.Preis = cFakturierung.fktSVSRVS(SVSRVS_Berechnungbetrag, "EUR") '= ??????
|
|
If SVSRVS_Berechnungbetrag > 150 Then
|
|
'Dim waehrungCode As String = SQL.getValueTxtBySql("SELECT isnull(Währungscode,'') FROM Währungstabelle WHERE Währungsschlüssel = " & If(RECHNUNG.[WährungsNr], 900) & ";", "FMZOLL")
|
|
'SVSRVSPOS.Preis = cFakturierung.fktSVSRVS(RECHNUNG.Wert * ur, waehrungCode) '*vorzeichen
|
|
SVSRVSPOS.Preis = cFakturierung.fktSVSRVS(SVSRVS_Berechnungbetrag) '*vorzeichen
|
|
Else
|
|
SVSRVSPOS.Preis = 0
|
|
End If
|
|
|
|
'...und der Wert gesetzt.
|
|
' SVSRVSPOS.Anzahl = 1
|
|
' PapirePortiPOS.Preis = ??????
|
|
'
|
|
initSteuerbetraege(RECHNUNG, SVSRVSPOS)
|
|
|
|
' End If
|
|
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Sub setError(s, Optional c = Nothing, Optional type = "ERR")
|
|
Label40.Text = s
|
|
Label40.Visible = (s <> "")
|
|
Select Case type
|
|
Case "ERR" : Label40.ForeColor = Color.Red
|
|
Case "WARN" : Label40.ForeColor = Color.DarkOrange
|
|
End Select
|
|
|
|
If c IsNot Nothing Then
|
|
Try : DirectCast(c, Control).Focus()
|
|
Catch ex As Exception : End Try
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
|
|
|
|
If Not checkUIDNR() Then Exit Sub
|
|
|
|
saveMe()
|
|
End Sub
|
|
|
|
|
|
Dim WithEvents tGespeichert As New Timer
|
|
|
|
Sub setLblGespeichert()
|
|
Label46.Visible = True
|
|
tGespeichert.Enabled = True
|
|
End Sub
|
|
|
|
Private Sub tGespeichert_Tick(sender As Object, e As EventArgs) Handles tGespeichert.Tick
|
|
Label46.Visible = False
|
|
tGespeichert.Enabled = False
|
|
End Sub
|
|
|
|
Function saveMe() As Boolean
|
|
If cbxAdmin.Checked And cbxAdmin.Visible Then
|
|
'Nix
|
|
Else
|
|
If RECHNUNG.DruckDatumZeit IsNot Nothing Or RECHNUNG.Status <> 0 Then
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
getValues()
|
|
Dim errMsg = ""
|
|
setError(errMsg)
|
|
|
|
If RECHNUNG.CHECK_Validation(errMsg, dgvRechnungenPositionen) Then
|
|
If RECHNUNG.SAVE(True) Then
|
|
RECHNUNG.setSPEDBUCH_FAKTURIERT() 'Fakturiert wird in SpedBuch geschrieben
|
|
|
|
If SPEDBUCH.hasEntry AndAlso SPEDBUCH.Vermittler = "" Then
|
|
addVermittlerToSpedbuch()
|
|
End If
|
|
|
|
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 AndAlso (RECHNUNG.OffertenNr = 14 Or RECHNUNG.OffertenNr = 15 Or RECHNUNG.OffertenNr = 31) Then
|
|
Dim antrag As cUSTVAntrag = Nothing
|
|
Dim landNr = ""
|
|
CheckLandNr_getLandBezFromAntrag(landNr, antrag)
|
|
If antrag IsNot Nothing Then setUSTVPOSfakturiert(antrag)
|
|
End If
|
|
|
|
|
|
initLblAnzahl()
|
|
SAVED = True
|
|
setLblGespeichert()
|
|
RaiseEvent EVENT_SAVED()
|
|
Return True
|
|
End If
|
|
setError(errMsg,, "WARN")
|
|
Else
|
|
setError(errMsg)
|
|
End If
|
|
Return False
|
|
End Function
|
|
|
|
Sub addVermittlerToSpedbuch()
|
|
Try
|
|
Dim VmAd = New VERAG_PROG_ALLGEMEIN.cAdressen(RECHNUNG.RechnungsKundenNr)
|
|
SPEDBUCH.Vermittler = VmAd.Ordnungsbegriff
|
|
SPEDBUCH.VermittlerKundenNr = RECHNUNG.RechnungsKundenNr
|
|
SPEDBUCH.SAVE()
|
|
Catch ex As Exception
|
|
MsgBox("VERMITTLER: " & ex.Message & ex.StackTrace)
|
|
End Try
|
|
End Sub
|
|
Private Sub txtWarenwert_TextChanged(sender As Object, e As EventArgs) Handles txtWarenwert.Leave, cboWaehrung.SelectedIndexChanged, cboWaehrungUmrechnung.SelectedIndexChanged
|
|
If cbxAdmin.Checked OrElse RECHNUNG Is Nothing OrElse RECHNUNG.Status = 0 Then WarenwertUmrechnung()
|
|
|
|
lblEUR_1.Text = cboWaehrungUmrechnung.Text
|
|
lblEUR_2.Text = cboWaehrungUmrechnung.Text
|
|
lblEUR_3.Text = cboWaehrungUmrechnung.Text
|
|
lblEUR_4.Text = cboWaehrungUmrechnung.Text
|
|
|
|
End Sub
|
|
|
|
Sub WarenwertUmrechnung()
|
|
Try
|
|
If RECHNUNG Is Nothing Then Exit Sub
|
|
If cboWaehrung._value = "" Then Exit Sub
|
|
If Not IsNumeric(txtWarenwert._value) Then Exit Sub
|
|
|
|
Dim rg_Umrechnung As Double = 1
|
|
Dim euro As Double = txtWarenwert._value
|
|
If cboWaehrung._value <> "900" Then
|
|
Dim kurs = (SQL.getValueTxtBySql("SELECT TOP 1 isnull([Eurokurs] ,0) FROM [Währungstabelle] where Währungsschlüssel='" & cboWaehrung._value & "' AND Eurokurs is not null ", "FMZOLL"))
|
|
If IsNumeric(kurs) AndAlso kurs > 0 Then
|
|
euro = CDbl(txtWarenwert._value / kurs)
|
|
rg_Umrechnung /= kurs
|
|
End If
|
|
End If
|
|
|
|
Dim umrechnung As Double = euro
|
|
If cboWaehrungUmrechnung._value <> "EUR" Then
|
|
Dim kurs_Umrechnung = CDbl(SQL.getValueTxtBySql("SELECT TOP 1 isnull([Eurokurs] ,0) FROM [Währungstabelle] where Währungscode='" & cboWaehrungUmrechnung._value & "' ORDER BY Währungsschlüssel DESC", "FMZOLL"))
|
|
umrechnung = CDbl(euro * kurs_Umrechnung)
|
|
rg_Umrechnung *= kurs_Umrechnung
|
|
End If
|
|
|
|
RECHNUNG.Umrechnungskurs = If(rg_Umrechnung = 1, Nothing, rg_Umrechnung)
|
|
txtWarenwertUmrechnung._value = umrechnung
|
|
|
|
If loaded Then przRefreshDGV_Positionen() 'wegen SVS
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Dim loadedFilAbf = True
|
|
Private Sub txtAbfertigungsnummer_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.TextChanged, cboFiliale.TextChanged
|
|
If cboFiliale.Text.StartsWith("/") Then
|
|
If cboFiliale.Text.EndsWith("/") And cboFiliale.Text.Contains("-") Then
|
|
Dim t As String = cboFiliale.Text
|
|
t = t.Replace("/", "")
|
|
Dim v() = t.split("-")
|
|
If v.Length > 1 Then
|
|
txtAbfertigungsnummer.Text = v(1)
|
|
|
|
loadedFilAbf = False 'damit changeItem kein erneuters laden verursachts
|
|
cboFiliale.changeItem(v(0))
|
|
loadedFilAbf = True
|
|
|
|
getFilialeAbfertNUrnterNr(v(0), v(1))
|
|
|
|
End If
|
|
End If
|
|
Else
|
|
getFilialeAbfertNUrnterNr(cboFiliale._value, txtAbfertigungsnummer.Text)
|
|
End If
|
|
End Sub
|
|
|
|
Sub getFilialeAbfertNUrnterNr(FilialenNr, AbfertigungsNr)
|
|
If Not loadedFilAbf Then Exit Sub
|
|
If FilialenNr <> String.Empty And AbfertigungsNr.Length >= 8 Then
|
|
cboSpedBuchUnterNr.fillWithSQL("SELECT [UnterNr], convert(varchar(10),[Abfertigungsdatum], 104) + ' | ' + cast(Abfertigungsarten.Abfertigungsart as varchar(2)) + ' ' + Abfertigungsarten.Abfertigungsbezeichnung + ' - ' + isnull(cast(EmpfängerKundenNr as varchar(10)),'') + ' ' + isnull(Empfänger,'') " &
|
|
" FROM [Speditionsbuch] inner join Abfertigungsarten on Abfertigungsarten.Abfertigungsart=Speditionsbuch.Abfertigungsart where FilialenNr='" & FilialenNr & "' and AbfertigungsNr='" & AbfertigungsNr & "'", True, "FMZOLL", False)
|
|
If loaded Then
|
|
If cboSpedBuchUnterNr.Items.Count = 1 Then
|
|
cboSpedBuchUnterNr.SelectedIndex = 0
|
|
btnDatenLaden.PerformClick()
|
|
End If
|
|
End If
|
|
Else
|
|
cboSpedBuchUnterNr.Items.Clear()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub txtAbfertigungsnummer_Leave(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.Leave
|
|
If IsNumeric(txtAbfertigungsnummer.Text) AndAlso txtAbfertigungsnummer.Text.Length <= 6 Then
|
|
txtAbfertigungsnummer.Text = Now.ToString("yy") & CInt(txtAbfertigungsnummer.Text).ToString("000000")
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub cboFiliale_Leave(sender As Object, e As EventArgs) Handles cboFiliale.Leave
|
|
If cboFiliale.Text.StartsWith("/") Then
|
|
loadedFilAbf = False 'damit changeItem kein erneuters laden verursachts
|
|
cboFiliale.changeItem(RECHNUNG.FilialenNr)
|
|
loadedFilAbf = True
|
|
End If
|
|
|
|
If cboSpedBuchUnterNr.Items.Count = 1 Then
|
|
cboSpedBuchUnterNr.SelectedIndex = 0
|
|
ElseIf cboSpedBuchUnterNr.Items.Count > 1 Then
|
|
cboSpedBuchUnterNr.DroppedDown = True
|
|
cboSpedBuchUnterNr.Focus()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
|
|
|
|
If Not checkUIDNR() Then Exit Sub
|
|
saveMe() 'Damit Prüfungen in der Vorschau funktionieren (zT mit DB abhängig -> ReverseCharge)
|
|
getValues()
|
|
|
|
|
|
cFakturierung.doRechnungsDruck(RECHNUNG,, True,,, getPrinterFromParent)
|
|
End Sub
|
|
|
|
|
|
|
|
Function getRechnungsText() As String
|
|
Dim strText = ""
|
|
Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [Rechnungstexte] where [Text] is not null", "FMZOLL")
|
|
If dt Is Nothing Then Return ""
|
|
For Each r In dt.Rows
|
|
|
|
' Informations- und Werbetexte drucken
|
|
' Set rstTex = dbs.OpenRecordset("qryRechnungstexte", dbOpenSnapshot)
|
|
|
|
If r("Firma_ID") IsNot DBNull.Value Then
|
|
If RECHNUNG.Firma_ID <= 0 Then GoTo Nächste_Textzeile_lesen
|
|
If r("Firma_ID") <> RECHNUNG.Firma_ID Then GoTo Nächste_Textzeile_lesen
|
|
End If
|
|
If r("LandKz") IsNot DBNull.Value Then
|
|
If RECHNUNG.RechnungsLandKz Is Nothing Then GoTo Nächste_Textzeile_lesen
|
|
If r("LandKz") <> RECHNUNG.RechnungsLandKz Then GoTo Nächste_Textzeile_lesen
|
|
End If
|
|
If r("OffertenNr") IsNot DBNull.Value Then
|
|
If RECHNUNG.OffertenNr Is Nothing Then GoTo Nächste_Textzeile_lesen
|
|
If r("OffertenNr") <> RECHNUNG.OffertenNr Then GoTo Nächste_Textzeile_lesen
|
|
End If
|
|
|
|
If r("EMailRechnung") IsNot DBNull.Value Then
|
|
If kdFirmaRechnungAn.KdData_ADRESSEN Is Nothing Then GoTo Nächste_Textzeile_lesen
|
|
If kdFirmaRechnungAn.KdData_ADRESSEN.Rechnungsdruck <> 2 Then GoTo Nächste_Textzeile_lesen
|
|
If If(kdFirmaRechnungAn.KdData_ADRESSEN.[E_Mail], "") = "" Then GoTo Nächste_Textzeile_lesen
|
|
End If
|
|
Select Case RECHNUNG.BelegartenNr
|
|
Case "R" 'RECHNUNG
|
|
If r("DrucksteuerungsKz") Is DBNull.Value OrElse r("DrucksteuerungsKz") = "R" Then
|
|
strText = strText & r("Text") & vbCrLf
|
|
End If
|
|
Case "G" 'GUTSCHRIFT
|
|
If r("DrucksteuerungsKz") Is DBNull.Value OrElse r("DrucksteuerungsKz") = "G" Then
|
|
strText = strText & r("Text") & vbCrLf
|
|
End If
|
|
End Select
|
|
|
|
Nächste_Textzeile_lesen:
|
|
|
|
|
|
Next
|
|
Return strText
|
|
End Function
|
|
|
|
Private Sub dgvRechnungenPositionen_Leave(sender As Object, e As EventArgs) Handles dgvRechnungenPositionen.Leave
|
|
'przBerechneRAPos
|
|
End Sub
|
|
|
|
'Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
|
|
' Try
|
|
' If keyData = (Keys.Control Or Keys.Add) Then
|
|
' 'RaiseEvent a() : Return True
|
|
' addItem()
|
|
' Return True
|
|
' ElseIf keyData = (Keys.Control Or Keys.Subtract) Then
|
|
' 'RaiseEvent REMOVE(ID) : Return True
|
|
' removeItem(dgvPositionen.SelectedRows(0).Cells("index").Value)
|
|
' Return True
|
|
' ElseIf keyData = Keys.PageUp Then
|
|
' 'RaiseEvent PREV_POS() : Return True
|
|
' PREV_POS()
|
|
' Return True
|
|
' ElseIf keyData = Keys.PageDown Then
|
|
' 'RaiseEvent NEXT_POS() : Return True
|
|
' NEXT_POS()
|
|
' Return True
|
|
' End If
|
|
' Catch ex As Exception
|
|
' End Try
|
|
' Return False
|
|
'End Function
|
|
|
|
Dim fired = False
|
|
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
|
|
Try
|
|
|
|
|
|
If keyData = (Keys.Control Or Keys.Tab) Then
|
|
If Me.ActiveControl Is cboRechnungAn Then : txtZollbelegNr.Focus() : Return False
|
|
ElseIf Me.ActiveControl Is cboSammelrechnung Then : txtZollbelegNr.Focus() : Return False
|
|
ElseIf Me.ActiveControl.Parent Is pnlRechnungAn Then : txtZollbelegNr.Focus() : Return False
|
|
ElseIf Me.ActiveControl Is txtZollbelegNr Then : dgvOfferteDetailsUebersicht.Focus() : Return False
|
|
ElseIf Me.ActiveControl Is dgvOfferteDetailsUebersicht Then : cboAnlage1.Focus() : Return False
|
|
ElseIf Me.ActiveControl.Parent Is dgvOfferteDetailsUebersicht Then : cboAnlage1.Focus() : Return False
|
|
ElseIf Me.ActiveControl.Name.Contains("cboAnlage") Then : cboSteuerschlüssel.Focus() : Return False
|
|
End If
|
|
End If
|
|
|
|
|
|
If False Then
|
|
If fired Then Return False
|
|
If keyData = (Keys.Control Or Keys.Tab) Then
|
|
|
|
fired = True
|
|
Dim thisControl = Me.ActiveControl
|
|
Dim cnt = 0
|
|
Do
|
|
SendKeys.Send("{TAB}") '"{TAB}")
|
|
|
|
Application.DoEvents()
|
|
If Me.ActiveControl IsNot thisControl Then
|
|
If Me.ActiveControl Is cboRechnungAn Then fired = False : Return False
|
|
If Me.ActiveControl Is txtZollbelegNr Then fired = False : Return False
|
|
If Me.ActiveControl Is dgvOfferteDetailsUebersicht Then fired = False : Return False
|
|
If Me.ActiveControl Is cboAnlage1 Then fired = False : Return False
|
|
If Me.ActiveControl Is cboSteuerschlüssel Then fired = False : Return False
|
|
If Me.ActiveControl Is btnOK Then
|
|
btnOK.PerformClick()
|
|
fired = False : Return False
|
|
End If
|
|
End If
|
|
cnt += 1
|
|
If cnt > 200 Then fired = False : Return False ' zur Sicherheit
|
|
Loop
|
|
End If
|
|
End If
|
|
|
|
If keyData = Keys.F1 Then
|
|
Button7.PerformClick()
|
|
Return True
|
|
End If
|
|
If keyData = Keys.F2 Then
|
|
Button1.PerformClick()
|
|
Return True
|
|
End If
|
|
|
|
If keyData = Keys.F3 AndAlso cboSammelrechnung._value = 0 Then
|
|
btn.PerformClick()
|
|
Return True
|
|
End If
|
|
|
|
If keyData = (Keys.Control Or Keys.P) Then
|
|
Button4.PerformClick()
|
|
Return True
|
|
End If
|
|
|
|
If keyData = (Keys.Control Or Keys.S) Then
|
|
saveMe()
|
|
Return True
|
|
End If
|
|
|
|
|
|
If (keyData = (Keys.Control Or Keys.Add)) Or (keyData = (Keys.Control Or Keys.Return)) Then
|
|
btnNeueUnterNR.PerformClick()
|
|
Return True
|
|
End If
|
|
|
|
If keyData = Keys.PageDown Then
|
|
If saveMe() Then
|
|
btnNext.PerformClick()
|
|
Return True
|
|
End If
|
|
End If
|
|
If keyData = Keys.PageUp Then
|
|
If saveMe() Then
|
|
btnPrev.PerformClick()
|
|
Return True
|
|
End If
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
Return False
|
|
End Function
|
|
|
|
Private Sub dgvRechnungenPositionen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvRechnungenPositionen.SelectionChanged
|
|
dgvRechnungenPositionen.ClearSelection()
|
|
End Sub
|
|
|
|
Private Sub btnVorauskasseAnzeigen_Click(sender As Object, e As EventArgs) Handles btnVorauskasseAnzeigen.Click
|
|
'If Not btnVorauskasseAnzeigen.Enabled Then Exit Sub
|
|
'Dim VK = VERAG_PROG_ALLGEMEIN.cVorauskasse.LOADByFilialeAbfNr(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr)
|
|
'If VK IsNot Nothing Then
|
|
' SDL.FormularManagerNEU.OPEN_FORM(SDL.FormularManagerArten.Importaviso_VK, VK.vk_KdNr, {VK.vk_KdNr, Nothing, Nothing, Nothing, "", VK.vk_id})
|
|
'End If
|
|
|
|
Dim f As New SDL.frmVorauskasse(RECHNUNG.FilialenNr, RECHNUNG.AbfertigungsNr, Now.AddYears(-1))
|
|
f.Show(Me)
|
|
End Sub
|
|
|
|
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
|
|
Dim bezugsNr = ""
|
|
If RECHNUNG IsNot Nothing Then
|
|
bezugsNr = RECHNUNG.FilialenNr & "/" & RECHNUNG.AbfertigungsNr & ""
|
|
End If
|
|
Dim DakosyRef = SQL.DLookup("tblSnd_DakosyRef", "tblSendungen", "FilialenNr='" & RECHNUNG.FilialenNr & "' and AbfertigungsNr='" & RECHNUNG.AbfertigungsNr & "'", "AVISO", "")
|
|
Dim f As New frmFaktAufschubSuche(bezugsNr, True, DakosyRef)
|
|
If f.ShowDialog(Me) = DialogResult.OK Then
|
|
For Each i In f.Zkteing_Index
|
|
przInsertEUSTZOLL(i)
|
|
Next
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Sub przInsertEUSTZOLL(Zkteing_Index)
|
|
getValues()
|
|
przRefreshDGV_Positionen()
|
|
Dim Zkteing As New VERAG_PROG_ALLGEMEIN.cZkteing(Zkteing_Index)
|
|
|
|
If Zkteing.hasEntry Then
|
|
Dim LeistungsNr = ""
|
|
Dim LeistungsBez = ""
|
|
Select Case Zkteing.LeistungsNr
|
|
Case 20, 77
|
|
LeistungsNr = 20 ' immer 20
|
|
Case 10, 76, 60
|
|
LeistungsNr = Zkteing.LeistungsNr
|
|
Case 482
|
|
LeistungsNr = 482
|
|
If If(Zkteing.LeistungsBez, "") <> "" Then LeistungsBez = Zkteing.LeistungsBez
|
|
End Select
|
|
'Sucht, ob EUST/ZOLL schon vorhanden ist,...
|
|
Dim ZKteing_POS
|
|
If LeistungsBez <> "" Then
|
|
ZKteing_POS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = LeistungsNr And LeistungsBez = x.LeistungsBez And x.BerechnungsartNr = 8)
|
|
Else
|
|
ZKteing_POS = RECHNUNG.POSITIONEN.Find(Function(x) x.LeistungsNr = LeistungsNr And x.BerechnungsartNr = 8)
|
|
LeistungsBez = SQL.getValueTxtBySql("SELECT LeistungsBez FROM Leistungen WHERE LeistungsNr=" & LeistungsNr, "FMZOLL")
|
|
End If
|
|
|
|
If ZKteing_POS Is Nothing Then
|
|
ZKteing_POS = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
ZKteing_POS.LeistungsNr = LeistungsNr
|
|
If RECHNUNG.RechnungSprache = "DE" Or ZKteing_POS.LeistungsBez Is Nothing Then ZKteing_POS.LeistungsBez = LeistungsBez
|
|
ZKteing_POS.BerechnungsartNr = 8
|
|
RECHNUNG.POSITIONEN.Add(ZKteing_POS)
|
|
End If
|
|
|
|
ZKteing_POS.Anzahl = 1
|
|
ZKteing_POS.Preis = Zkteing.Betrag '* If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
ZKteing_POS.SteuerfreierBetrag = ZKteing_POS.Preis
|
|
ZKteing_POS.SteuerpflichtigerBetrag = Nothing
|
|
|
|
If Zkteing.[AKTO] IsNot Nothing And Zkteing.AOFD IsNot Nothing Then
|
|
ZKteing_POS.AufschubkontoNr = SQL.isleernothing(If(Zkteing.[AOFD], "") & "-" & CInt(Zkteing.[AKTO]))
|
|
Else
|
|
ZKteing_POS.AufschubkontoNr = Nothing
|
|
End If
|
|
ZKteing_POS.Aufschubfälligkeit = Zkteing.[Fälligkeitsdatum]
|
|
ZKteing_POS.DateiNameAufschub = Zkteing.Dateiname
|
|
ZKteing_POS.IndexZkteing = Zkteing.Index
|
|
|
|
ZKteing_POS.Belegdaten = If(Zkteing.Registriernummer, "")
|
|
If ZKteing_POS.Belegdaten.ToString.Length > 30 Then ZKteing_POS.Belegdaten = ZKteing_POS.Belegdaten.ToString.Substring(0, 30)
|
|
'If Zkteing.Fälligkeitsdatum IsNot Nothing AndAlso IsDate(Zkteing.Fälligkeitsdatum) Then
|
|
' ZKteing_POS.Belegdaten &= " " & CDate(Zkteing.Fälligkeitsdatum).ToShortDateString
|
|
'End If
|
|
'If ZKteing_POS.Belegdaten.ToString.Length > 30 Then ZKteing_POS.Belegdaten = ZKteing_POS.Belegdaten.ToString.Substring(0, 30)
|
|
'...und der Wert gesetzt.
|
|
|
|
End If
|
|
|
|
loadFormRGPosInOfferte()
|
|
' initDGVRechnungenPositionen()
|
|
przRefreshDGV_Positionen()
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub btnNeueUnterNR_Click(sender As Object, e As EventArgs) Handles btnNeueUnterNR.Click
|
|
If (RECHNUNG IsNot Nothing AndAlso (RECHNUNG.DruckDatumZeit IsNot Nothing Or RECHNUNG.Status <> 0)) OrElse saveMe() Then
|
|
newRECHNUNG()
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
|
|
lblUIDErr.Visible = False
|
|
lblUIDOK.Visible = False
|
|
'Dim UID As New
|
|
getValues()
|
|
Dim UID = VERAG_PROG_ALLGEMEIN.cUIDPruefung.doUIDPruefung(RECHNUNG.RechnungsKundenNr)
|
|
If UID IsNot Nothing Then
|
|
|
|
If UID.uid_valid Then
|
|
lblUIDOK.Visible = True
|
|
Else
|
|
lblUIDErr.Visible = True
|
|
End If
|
|
|
|
initRechnungKd(True)
|
|
getValues()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub FlatButton3_Click(sender As Object, e As EventArgs) Handles FlatButton3.Click
|
|
If kdFirmaRechnungAn.KdNr > 0 Then
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Dim zoll As New SDL.frmKundenUebersichtZOLL(kdFirmaRechnungAn.KdNr)
|
|
zoll.ShowDialog(Me)
|
|
initRechnungKd()
|
|
Me.Cursor = Cursors.Default
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub FlatButton1_Click(sender As Object, e As EventArgs) Handles FlatButton1.Click
|
|
showKd(kdFirmaAbsender)
|
|
End Sub
|
|
|
|
Sub showKd(kd As VERAG_PROG_ALLGEMEIN.KdSearchBox)
|
|
If kd.KdNr > 0 Then
|
|
Me.Cursor = Cursors.WaitCursor
|
|
Dim zoll As New SDL.frmKundenUebersichtZOLL(kd.KdNr)
|
|
zoll.ShowDialog(Me)
|
|
Me.Cursor = Cursors.Default
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub FlatButton4_Click(sender As Object, e As EventArgs) Handles FlatButton4.Click
|
|
showKd(kdFirmaAuftraggeber)
|
|
End Sub
|
|
|
|
Private Sub FlatButton5_Click(sender As Object, e As EventArgs) Handles FlatButton5.Click
|
|
showKd(kdFirmaAvisierer)
|
|
End Sub
|
|
|
|
Private Sub FlatButton2_Click(sender As Object, e As EventArgs) Handles FlatButton2.Click
|
|
showKd(kdFirmaEmpfaenger)
|
|
End Sub
|
|
|
|
Private Sub btnNext_Click(sender As Object, e As EventArgs) Handles btnNext.Click
|
|
saveMe()
|
|
initRECHNUNG(nachstehende_RK_ID)
|
|
End Sub
|
|
|
|
Private Sub btnPrev_Click(sender As Object, e As EventArgs) Handles btnPrev.Click
|
|
saveMe()
|
|
initRECHNUNG(vorherige_RK_ID)
|
|
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
|
|
If cFakturierung.doRechnungsDruck(RECHNUNG,,, 3,, getPrinterFromParent, cbxOriginalPrint.Checked) Then
|
|
initRECHNUNG()
|
|
RaiseEvent SOMETHING_CHANGED(-1)
|
|
End If
|
|
End If
|
|
End If
|
|
cbxOriginalPrint.Checked = False
|
|
End Sub
|
|
|
|
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
|
If RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Exit Sub
|
|
If RECHNUNG.Status <> 0 OrElse vbYes = MsgBox("Möchten Sie die Rechnung drucken?" & vbNewLine & "Es wird eine Rechnungsnummer vergeben, die Rechnung kann nicht mehr bearbeitet werden.", vbYesNoCancel) Then
|
|
If RECHNUNG.Status <> 0 OrElse saveMe() Then
|
|
|
|
' Anhänge sichern, falls geändert
|
|
If RECHNUNG.RK_ID > 0 And RECHNUNG.Status <> 0 Then
|
|
getValues_ANHAENGE()
|
|
RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID)
|
|
End If
|
|
|
|
Dim PARAM_printZollbeleg = VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("FAKTURIERUNG_PRINT_Zollbeleg")
|
|
If cFakturierung.doRechnungsDruck(RECHNUNG,,, 0,, getPrinterFromParent, cbxOriginalPrint.Checked,, PARAM_printZollbeleg) Then
|
|
initRECHNUNG()
|
|
RaiseEvent SOMETHING_CHANGED(-1)
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
cbxOriginalPrint.Checked = False
|
|
End Sub
|
|
|
|
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
|
If vbYes = MsgBox("Möchten Sie diese ungedruckte Rechnung wirklich löschen?", vbYesNoCancel) Then
|
|
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.Status = 0 Then
|
|
If RECHNUNG.DELETE() Then
|
|
If FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 AndAlso SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.FilialenNr = 4817 Then
|
|
Dim UST_ID As Integer = -1
|
|
UST_ID = CInt(SQL.getValueTxtBySql("SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL",,, 0))
|
|
If UST_ID > 0 Then
|
|
SQL.doSQL("UPDATE [tblUStVPositionen] SET UStVPo_VZ_RKID = NULL WHERE [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) =" & RECHNUNG.RK_ID, "FMZOLL")
|
|
SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] IN (SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0 AND [UStVAn_ID] = " & UST_ID & " )", "FMZOLL")
|
|
End If
|
|
End If
|
|
End If
|
|
RaiseEvent EVENT_DELETED()
|
|
End If
|
|
End If
|
|
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
|
|
If RECHNUNG.RK_ID > 0 And RECHNUNG.Status <> 0 Then
|
|
getValues_ANHAENGE()
|
|
RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID)
|
|
End If
|
|
|
|
'RG-Druck - Mail (+Kopie)
|
|
Dim RG_DRUCK = 2
|
|
If sender Is Button16 Then
|
|
RG_DRUCK = 5
|
|
End If
|
|
|
|
Dim f As New frmFaktEmail(RECHNUNG, SPEDBUCH, If(cbxOriginalPrint.Visible, cbxOriginalPrint.Checked, Nothing), RG_DRUCK, RECHNUNG.Firma_ID)
|
|
f.ShowDialog(Me)
|
|
initRECHNUNG()
|
|
RaiseEvent SOMETHING_CHANGED(-1)
|
|
|
|
'If cFakturierung.doRechnungsDruck(RECHNUNG,,, 2,, getPrinterFromParent) Then
|
|
' initRECHNUNG()
|
|
' RaiseEvent SOMETHING_CHANGED(-1)
|
|
'End If
|
|
|
|
End If
|
|
cbxOriginalPrint.Checked = False
|
|
End Sub
|
|
|
|
|
|
Function getPrinterFromParent()
|
|
Try
|
|
If Me.FindForm IsNot Nothing Then
|
|
If Me.FindForm.GetType Is GetType(frmAbrechnungsMaske) Then
|
|
Return DirectCast(Me.FindForm, frmAbrechnungsMaske).cboPrinter.Text
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
Return ""
|
|
End Function
|
|
|
|
Private Sub lblDruckaufheben_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lblDruckaufheben.LinkClicked
|
|
If RECHNUNG.Sammelrechnung = 0 Then
|
|
'saveMe()
|
|
RECHNUNG.DruckDatumZeit = Nothing
|
|
RECHNUNG.SAVE()
|
|
initRECHNUNG()
|
|
RaiseEvent SOMETHING_CHANGED(RECHNUNG.RK_ID)
|
|
Else
|
|
MsgBox("Nur bei Einzelrechnung möglich!")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub cboRgGS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboRgGS.SelectedIndexChanged
|
|
Select Case cboRgGS.SelectedIndex
|
|
Case 0
|
|
cboRgGS.BackColor = pnlTop.BackColor
|
|
Case 1
|
|
cboRgGS.BackColor = Color.LightGreen
|
|
End Select
|
|
|
|
initDGVRechnungenPositionen()
|
|
End Sub
|
|
|
|
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
|
If kdFirmaRechnungAn.KdNr_value > 0 Then
|
|
Dim f As New frmKundenUebersichtZOLL(kdFirmaRechnungAn.KdNr)
|
|
f.selectedTAB = "Offerte"
|
|
f.ShowDialog(Me)
|
|
If vbYes = MsgBox("Sollen die Offerte/Preise neu geladen werden (Rg.-Positionen werden zurückgesetzt)?", vbYesNoCancel) Then
|
|
initDGVOffertenSperrliste(kdFirmaRechnungAn.KdNr_value, IIf(veragKunde = -1, False, True))
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
|
|
If sbLeistung._value <> "" Then
|
|
Dim leistungTmp = sbLeistung._value
|
|
Dim TMPPos = New VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen
|
|
TMPPos.LeistungsNr = leistungTmp
|
|
TMPPos.LeistungsBez = SQL.DLookup("[LeistungsBez]", "Leistungen", "[LeistungsNr] = " & leistungTmp, "FMZOLL")
|
|
TMPPos.BerechnungsartNr = SQL.DLookup("[BerechnungsartNr]", "Leistungen", "[LeistungsNr] = " & leistungTmp, "FMZOLL")
|
|
|
|
|
|
RECHNUNG.POSITIONEN.Add(TMPPos)
|
|
sbLeistung._value = ""
|
|
'aktualisieren:
|
|
|
|
'przBerechneRAPos("")
|
|
|
|
przBerechneRAPos("")
|
|
loadFormRGPosInOfferte()
|
|
initDGVRechnungenPositionen()
|
|
'przRefreshDGV_Positionen() 'false
|
|
'initDGVRechnungenPositionen()
|
|
' przRefreshDGV_Positionen()
|
|
' przRefreshDGV_Positionen()
|
|
|
|
sbLeistung.SET_VALUE("")
|
|
|
|
' loadFormRGPosInOfferte(False)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
|
|
If Not IsNumeric(cboFiliale._value) Then Exit Sub
|
|
If Not IsNumeric(txtAbfertigungsnummer.Text) Then Exit Sub
|
|
If Not IsNumeric(cboSpedBuchUnterNr._value) Then Exit Sub
|
|
|
|
Dim s As New SDL.frmNacherfassungNEU()
|
|
Dim frmNacherfassung As New frmNacherfassungNEU
|
|
frmNacherfassung.srchFiliale = cboFiliale._value
|
|
frmNacherfassung.srchAbfertigungsnummer = txtAbfertigungsnummer.Text
|
|
frmNacherfassung.srchUnterNr = cboSpedBuchUnterNr._value
|
|
frmNacherfassung.ShowDialog(Me)
|
|
End Sub
|
|
|
|
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
|
|
ContextMenuStrip2.Show(Cursor.Position)
|
|
End Sub
|
|
|
|
Private Sub GutschriftAusRechnungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GutschriftAusRechnungToolStripMenuItem.Click
|
|
If vbYes = MsgBox("Soll aus den Daten der Rechnung wirklich eine neue Gutschrift erstellt werden?", vbYesNoCancel) Then
|
|
|
|
saveMe()
|
|
'Dim RECHNUNG2 = RECHNUNG
|
|
RECHNUNG.RK_ID = -1
|
|
RECHNUNG.RechnungsNr = -1
|
|
'RECHNUNG.RechnungsNr = Nothing
|
|
RECHNUNG.UnterNr = RECHNUNG.getMaxRGUnterNr()
|
|
RECHNUNG.RechnungsDatum = Nothing
|
|
RECHNUNG.DruckDatumZeit = Nothing
|
|
RECHNUNG.Status = 0
|
|
RECHNUNG.Trdin = 0
|
|
|
|
RECHNUNG.[BelegartenKz] = "AG" : RECHNUNG.[BelegartenNr] = 71 : RECHNUNG.Vorzeichen = "-"
|
|
cboRgGS.SelectedIndex = 1
|
|
|
|
dgvOfferteDetailsUebersicht.Columns.Clear()
|
|
|
|
' initDGVRechnungenPositionen()
|
|
|
|
przBerechneRAPos("")
|
|
loadFormRGPosInOfferte()
|
|
|
|
|
|
initDGVRechnungenPositionen()
|
|
|
|
' przRefreshDGV_Positionen()
|
|
|
|
|
|
cboFiliale.Focus()
|
|
saveMe()
|
|
initRECHNUNG()
|
|
RaiseEvent SOMETHING_CHANGED(RECHNUNG.RK_ID)
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
Sub setBerartValue(row As DataGridViewRow, valuetmp As String)
|
|
For Each r In DirectCast(dgvOfferteDetailsUebersicht.Columns("Berechnungsartnr"), DataGridViewComboBoxColumn).Items
|
|
If r("Berechnungsartnr") = valuetmp Then
|
|
CType(row.Cells("Berechnungsartnr"), DataGridViewComboBoxCell).Value = r("Berechnungsartnr")
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
'Private Sub dgvOfferteDetailsUebersicht_CellValidating(sender As Object, e As DataGridViewCellValidatingEventArgs) Handles dgvOfferteDetailsUebersicht.CellValidating
|
|
' 'e.Cancel = False
|
|
' If e.ColumnIndex = 4 Then
|
|
' dgvOfferteDetailsUebersicht.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 1
|
|
' End If
|
|
'End Sub
|
|
|
|
|
|
Private Sub DataGridView_DataError(ByVal sender As Object, ByVal e As DataGridViewDataErrorEventArgs) Handles dgvOfferteDetailsUebersicht.DataError
|
|
If (e.Context = (DataGridViewDataErrorContexts.Formatting Or DataGridViewDataErrorContexts.PreferredSize)) Then
|
|
e.ThrowException = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub cboAnlage1_MouseWheel(sender As Object, e As HandledMouseEventArgs) Handles cboAnlage1.MouseWheel, cboAnlage2.MouseWheel, cboAnlage3.MouseWheel, cboAnlage4.MouseWheel, cboAnlage5.MouseWheel, cboAnlage6.MouseWheel
|
|
e.Handled = True 'Scrollen unterbinden
|
|
End Sub
|
|
|
|
Private Sub cbxAdmin_CheckedChanged(sender As Object, e As EventArgs) Handles cbxAdmin.CheckedChanged
|
|
If cbxAdmin.Checked Then btnOK.Enabled = True
|
|
End Sub
|
|
|
|
Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Click, Label51.Click
|
|
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.DokumentId_VBD IsNot Nothing Then
|
|
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(SPEDBUCH.DokumentId_VBD)
|
|
DS.OPEN_SINGLE()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click, Label50.Click
|
|
If SPEDBUCH IsNot Nothing AndAlso SPEDBUCH.DokumentId_Steuerbeleg IsNot Nothing Then
|
|
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(SPEDBUCH.DokumentId_Steuerbeleg)
|
|
DS.OPEN_SINGLE()
|
|
If SPEDBUCH.DokumentId_Mitteilung IsNot Nothing Then 'AT
|
|
Dim DS2 As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(SPEDBUCH.DokumentId_Mitteilung)
|
|
DS2.OPEN_SINGLE()
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
|
|
If cboFiliale._value = "" Then
|
|
MsgBox("Es muss eine Filiale ausgewählt werden")
|
|
Exit Sub
|
|
End If
|
|
|
|
Dim dtAbf = SQL.loadDgvBySql("SELECT [Abfertigungsarten].[Abfertigungsart],[Abfertigungsbezeichnung] FROM [Abfertigungsarten] inner join tblAbfertigungsartenFiliale on tblAbfertigungsartenFiliale.Abfertigungsart=[Abfertigungsarten].Abfertigungsart where FilialenNr=" & cboFiliale._value & " order by tblAbfertigungsartenFiliale.Abfertigungsart", "FMZOLL")
|
|
CntxtAbfArt.Items.Clear()
|
|
|
|
For Each r In dtAbf.Rows
|
|
Dim tool As New ToolStripMenuItem()
|
|
tool.Text = r("Abfertigungsart") & " - " & r("Abfertigungsbezeichnung")
|
|
tool.Tag = r("Abfertigungsart")
|
|
AddHandler tool.Click, Sub()
|
|
' If vbYes = MsgBox("Möchten Sie einen neuen Speditionsbucheintrag für die Filiale '" & cboFiliale._value & "' erstellen?", vbYesNoCancel) Then
|
|
SPEDBUCH = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch
|
|
|
|
Dim Abfertigungsart = r("Abfertigungsart") ' 10
|
|
|
|
SPEDBUCH.FilialenNr = cboFiliale._value
|
|
SPEDBUCH.AbfertigungsNr = VERAG_PROG_ALLGEMEIN.cAllgemein.getMaxPosNrIncrement(SPEDBUCH.FilialenNr, Now.Year)
|
|
SPEDBUCH.NewUNTER_NR()
|
|
|
|
SPEDBUCH.Abfertigungsdatum = Now.Date
|
|
|
|
SPEDBUCH.Abfertigungsart = Abfertigungsart
|
|
SPEDBUCH.Abfertigungsanzahl = 1
|
|
SPEDBUCH.SgutKompl = "K"
|
|
SPEDBUCH.Zollsystem = "D"
|
|
|
|
'SPEDBUCH.Vermittler = ""
|
|
|
|
SPEDBUCH.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
|
|
If SPEDBUCH.SAVE Then
|
|
txtAbfertigungsnummer.Text = SPEDBUCH.AbfertigungsNr
|
|
txtUnterNr.Text = SPEDBUCH.UnterNr
|
|
btnDatenLaden.PerformClick()
|
|
End If
|
|
' End If
|
|
End Sub
|
|
CntxtAbfArt.Items.Add(tool)
|
|
Next
|
|
CntxtAbfArt.Show(Cursor.Position)
|
|
|
|
End Sub
|
|
|
|
Function bool_SendAbrechung(sendungsId As Integer, kdNr As Integer, art As String)
|
|
Dim SENDUNG As New VERAG_PROG_ALLGEMEIN.cSendungen(SPEDBUCH.SendungID)
|
|
If SENDUNG IsNot Nothing Then
|
|
SENDUNG.LOAD_ABRECHNUNG()
|
|
For Each AB In SENDUNG.ABRECHNUNG
|
|
If AB.sndabr_abrArt = art And AB.sndabr_wert = "X" Then
|
|
Select Case AB.sndabr_beteiligter
|
|
Case "ABS" : If kdNr = SPEDBUCH.AbsenderKundenNr Then Return True
|
|
Case "AVISIERER" : If kdNr = SPEDBUCH.AvisiererKundenNr Then Return True
|
|
Case "EMPF" : If kdNr = SPEDBUCH.EmpfängerKundenNr Then Return True
|
|
Case "FRACHTF" : If kdNr = SPEDBUCH.FrachtführerKundenNr Then Return True
|
|
Case "AUFTR" : If kdNr = SPEDBUCH.VermittlerKundenNr Then Return True
|
|
End Select
|
|
End If
|
|
Next
|
|
End If
|
|
Return False
|
|
End Function
|
|
|
|
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
|
|
If kdFirmaRechnungAn.KdNr <= 0 Then Exit Sub
|
|
If dgvOfferteDetailsUebersicht.Rows.Count = 0 Then Exit Sub
|
|
|
|
If SPEDBUCH IsNot Nothing And SPEDBUCH.SendungID IsNot Nothing Then
|
|
If If(SPEDBUCH.AtlasBezNrEZA, "") <> "" Then
|
|
|
|
If bool_SendAbrechung(SPEDBUCH.SendungID, kdFirmaRechnungAn.KdNr, "EUST") Then
|
|
loadEUST()
|
|
End If
|
|
|
|
If bool_SendAbrechung(SPEDBUCH.SendungID, kdFirmaRechnungAn.KdNr, "ZOLL") Then
|
|
loadZOLL()
|
|
End If
|
|
End If
|
|
|
|
If bool_SendAbrechung(SPEDBUCH.SendungID, kdFirmaRechnungAn.KdNr, "ABFKOST") Then
|
|
loadBerechnungsArt_jePosition()
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Sub loadEUST()
|
|
Dim whereKTO = ""
|
|
Select Case cboFirma._value
|
|
Case 20 : whereKTO = " AND AKTO IN ('002719','002718') "
|
|
Case Else : whereKTO = " AND AKTO IN ('006136','006128','3517233') "
|
|
End Select
|
|
|
|
'Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
' Case "IMEX"
|
|
' whereKTO = " AND AKTO IN ('002719','002718') "
|
|
' Case Else
|
|
' whereKTO = " AND AKTO IN ('006136','006128','3517233') "
|
|
'End Select
|
|
Try
|
|
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql("SELECT [Index] FROM [Zkteing] where Bezugsnummer='" & SPEDBUCH.AtlasBezNrEZA & "' AND LeistungsNr IN (20,77) AND [Status] IS NULL " & whereKTO, "FMZOLL")
|
|
For Each r In dt.Rows
|
|
VERAG_PROG_ALLGEMEIN.cZkteing.UPDATE_Status("X", r("Index"))
|
|
przInsertEUSTZOLL(r("Index"))
|
|
Next
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
'Case 20, 77
|
|
'Case 10, 76, 60
|
|
'Case 482
|
|
Sub loadZOLL()
|
|
Dim whereKTO = ""
|
|
Select Case cboFirma._value
|
|
Case 20 : whereKTO = " AND AKTO IN ('002719','002718') "
|
|
Case Else : whereKTO = " AND AKTO IN ('006136','006128','3517233') "
|
|
End Select
|
|
|
|
'Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
|
|
' Case "IMEX"
|
|
' whereKTO = " AND AKTO IN ('002719','002718') "
|
|
' Case Else
|
|
' whereKTO = " AND AKTO IN ('006136','006128','3517233') "
|
|
'End Select
|
|
Try
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql("SELECT [Index] FROM [Zkteing] where Bezugsnummer='" & SPEDBUCH.AtlasBezNrEZA & "' AND LeistungsNr NOT IN (20,77) AND [Status] IS NULL " & whereKTO, "FMZOLL")
|
|
For Each r In dt.Rows
|
|
VERAG_PROG_ALLGEMEIN.cZkteing.UPDATE_Status("X", r("Index"))
|
|
przInsertEUSTZOLL(r("Index"))
|
|
Next
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
End Try
|
|
|
|
End Sub
|
|
Sub loadBerechnungsArt_jeAbfertigung()
|
|
If Not IsNumeric(SPEDBUCH.Abfertigungsanzahl) Then Exit Sub
|
|
If SPEDBUCH.Abfertigungsanzahl = 0 Then Exit Sub
|
|
|
|
'Sucht, ob PosAnzahl schon vorhanden ist,...
|
|
'For Each PosAnzahlPOS In RECHNUNG.POSITIONEN
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If r.Cells("BerechnungsartNr").Value = 1 Then
|
|
r.Cells("Anzahl").Value = SPEDBUCH.Abfertigungsanzahl
|
|
If r.Cells("Anzahl").Value < 0 Then r.Cells("Anzahl").Value = 0
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Sub loadBerechnungsArt_jePosition()
|
|
If Not IsNumeric(txtPositionAnzahl.Text) Then Exit Sub
|
|
Dim PosAnzahl = CInt(txtPositionAnzahl.Text)
|
|
If PosAnzahl = 0 Then Exit Sub
|
|
|
|
'inkludierte Pos ermitteln
|
|
Dim BerechnungsartPosInkludiert = 0
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If r.Cells("BerechnungsartNr").Value = 1 AndAlso r.Cells("BerechnungsartPosInkludiert").Value IsNot DBNull.Value AndAlso IsNumeric(r.Cells("BerechnungsartPosInkludiert").Value) AndAlso CInt(r.Cells("BerechnungsartPosInkludiert").Value) > 0 Then
|
|
BerechnungsartPosInkludiert = CInt(r.Cells("BerechnungsartPosInkludiert").Value)
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If r.Cells("BerechnungsartNr").Value = 10 Then
|
|
Dim AnzahlTmp = PosAnzahl - BerechnungsartPosInkludiert
|
|
If AnzahlTmp <= 0 Then AnzahlTmp = 0
|
|
' MsgBox(PosAnzahl - BerechnungsartPosInkludiert)
|
|
r.Cells("Anzahl").Value = AnzahlTmp
|
|
If r.Cells("Anzahl").Value < 0 Then r.Cells("Anzahl").Value = 0
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
|
|
loadEUST()
|
|
loadZOLL()
|
|
loadBerechnungsArt_jePosition()
|
|
End Sub
|
|
|
|
Private Sub cboAnlage1_MouseWheel(sender As Object, e As MouseEventArgs) Handles cboAnlage6.MouseWheel, cboAnlage5.MouseWheel, cboAnlage4.MouseWheel, cboAnlage3.MouseWheel, cboAnlage2.MouseWheel, cboAnlage1.MouseWheel
|
|
|
|
End Sub
|
|
|
|
Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles Timer.Tick
|
|
Label53.Visible = False
|
|
Timer.Enabled = False
|
|
End Sub
|
|
|
|
Private Sub Label53_Click(sender As Object, e As EventArgs) Handles Label53.Click
|
|
Label53.Visible = False
|
|
End Sub
|
|
|
|
Private Sub cboRechnungSprache_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboRechnungSprache.SelectedIndexChanged
|
|
txtTextZZ.Text = cFakturierung.przRechnungstextZZ(RECHNUNG)
|
|
txtText.Text = cFakturierung.przRechnungstextTXT(RECHNUNG, SPEDBUCH)
|
|
|
|
If RECHNUNG IsNot Nothing Then
|
|
If RECHNUNG.Firma_ID = 19 AndAlso RECHNUNG.Anlage_1 <> "" AndAlso RECHNUNG.Anlage_2 <> "" AndAlso RECHNUNG.Anlage_3 <> "" Then
|
|
Select Case cboRechnungSprache._value
|
|
Case "DE" : cboAnlage1.Text = "Rechnung" : cboAnlage2.Text = "Lief.-Rechn." : cboAnlage3.Text = "POS-Liste"
|
|
Case "EN" : cboAnlage1.Text = "Invoice" : cboAnlage2.Text = "Supplier Invoice(s)" : cboAnlage3.Text = "Item List"
|
|
Case "RO" : cboAnlage1.Text = "Factura" : cboAnlage2.Text = "Factura furnizor" : cboAnlage3.Text = "Lista articole"
|
|
End Select
|
|
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub dbgAnhaenge_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAnhaenge.CellClick 'dbgAnhaenge.CellContentClick,
|
|
Try
|
|
' DirectCast(r.Cells("optAnhSel"), DataGridViewCheckBoxCell).Value = 1
|
|
If dgvAnhaenge.Columns(e.ColumnIndex).Name = "optAnhSel" Then
|
|
' MsgBox(DirectCast(dgvAnhaenge.Rows(e.RowIndex).Cells(e.ColumnIndex), DataGridViewCheckBoxCell).Value)
|
|
dgvAnhaenge.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = Not DirectCast(dgvAnhaenge.Rows(e.RowIndex).Cells(e.ColumnIndex), DataGridViewCheckBoxCell).Value
|
|
End If
|
|
dgvAnhaenge.ClearSelection()
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub dbgAnhaenge_sel(sender As Object, e As EventArgs) Handles dgvAnhaenge.SelectionChanged
|
|
|
|
End Sub
|
|
|
|
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
|
|
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Kundendaten_bearbeiten", "SDL") Then
|
|
Dim frmKundenblatt As New SDL.frmKundenblatt
|
|
frmKundenblatt.showEdit = True
|
|
frmKundenblatt.kdNr = -1
|
|
frmKundenblatt.FilialeNr = cboFiliale._value
|
|
|
|
'frmKundenblatt.BERECHTIGUNEN = BERECHTIGUNEN
|
|
If frmKundenblatt.ShowDialog(Me) Then
|
|
If frmKundenblatt.kdNr > 0 Then
|
|
kdFirmaRechnungAn.KdNr = frmKundenblatt.kdNr
|
|
End If
|
|
End If
|
|
Else
|
|
Dim frmKd As New SDL.frmNeuerKunde
|
|
frmKd.openKd = False
|
|
frmKd.timerIntervall = 500
|
|
frmKd.username = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.mit_username
|
|
If frmKd.username.Length > 15 Then frmKd.username = frmKd.username.Substring(0, 15)
|
|
frmKd.tmpFiliale = VERAG_PROG_ALLGEMEIN.cGlobal.AktiverMitarbeiter.StandartFiliale
|
|
' frmKd.tmpKdNrKreis = 9
|
|
If kdFirmaRechnungAn.KdNr = -1 Then
|
|
frmKd.tmpKdName = kdFirmaRechnungAn.Text
|
|
End If
|
|
frmKd.ShowDialog()
|
|
If frmKd.kdnr > 0 Then
|
|
kdFirmaRechnungAn.KdNr = frmKd.kdnr
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub dgvAnhaenge_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAnhaenge.CellDoubleClick
|
|
|
|
Try
|
|
If dgvAnhaenge.SelectedRows.Count > 0 Then ' If e.RowIndex > 0 Then
|
|
dgvAnhaenge.Rows(e.RowIndex).Selected = True
|
|
Process.Start(VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(dgvAnhaenge.SelectedRows(0).Cells("clmnDsId").Value))
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
|
|
ContextMenuStrip1.Show(Cursor.Position)
|
|
End Sub
|
|
|
|
Private Sub AbsenderToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbsenderToolStripMenuItem.Click, EmpfängerToolStripMenuItem.Click, AuftraggeberToolStripMenuItem.Click, AvisiererToolStripMenuItem.Click
|
|
Try
|
|
|
|
|
|
If cboRechnungAn._value = "" Then Exit Sub
|
|
getValues()
|
|
Dim ROLLE = "AUFTRAGGEBER"
|
|
|
|
Dim FirmaFrm = (RECHNUNG.RechnungsName_1 & " " & If(RECHNUNG.RechnungsName_2, "")).trim
|
|
Dim kdnrFrm As Integer = RECHNUNG.RechnungsKundenNr
|
|
|
|
Select Case sender.text.ToString.Substring(0, 1) 'cboRechnungAn._value
|
|
Case "1"
|
|
ROLLE = "ABSENDER"
|
|
FirmaFrm = (RECHNUNG.AbsenderName_1 & " " & If(RECHNUNG.AbsenderName_2, "")).trim
|
|
kdnrFrm = RECHNUNG.AbsenderKundenNr
|
|
Case "2"
|
|
ROLLE = "EMPFAENGER"
|
|
FirmaFrm = (RECHNUNG.EmpfängerName_1 & " " & If(RECHNUNG.EmpfängerName_2, "")).trim
|
|
kdnrFrm = RECHNUNG.EmpfängerKundenNr
|
|
Case "3"
|
|
ROLLE = "AUFTRAGGEBER"
|
|
FirmaFrm = (RECHNUNG.VermittlerName_1 & " " & If(RECHNUNG.VermittlerName_2, "")).trim
|
|
kdnrFrm = RECHNUNG.VermittlerKundenNr
|
|
Case "4"
|
|
ROLLE = "AVISIERER"
|
|
FirmaFrm = (RECHNUNG.Avisierer)
|
|
kdnrFrm = RECHNUNG.AvisiererKundenNr
|
|
End Select
|
|
If SPEDBUCH IsNot Nothing Then
|
|
|
|
Dim SENDUNG As New VERAG_PROG_ALLGEMEIN.cSendungen(SPEDBUCH.SendungID)
|
|
Dim AVISODAL As New VERAG_PROG_ALLGEMEIN.cAvisoDAL
|
|
Dim AVISO = AVISODAL.LesenAviso(SPEDBUCH.AvisoID, "")
|
|
SDL.FormularManagerNEU.OPEN_FORM(SDL.FormularManagerArten.Verzollungsunterlagen, kdnrFrm, {kdnrFrm, FirmaFrm, SENDUNG, AVISO, ROLLE, -1, True})
|
|
Else
|
|
MsgBox("Speditionsbuch Eintrag nicht gefunden.")
|
|
End If
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub SeperateRechnungFürEUSTToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SeperateRechnungFürEUSTToolStripMenuItem.Click
|
|
If vbYes = MsgBox("Soll aus der Rechnung wirklich eine seperate EUST Rechnung erstellt werden?", vbYesNoCancel) Then
|
|
|
|
saveMe()
|
|
Dim RECHNUNG_TMP_RKID = RECHNUNG.RK_ID
|
|
|
|
|
|
'--------------------------------------------------------------------------------------------
|
|
|
|
'Dim RECHNUNG2 = RECHNUNG
|
|
RECHNUNG.RK_ID = -1
|
|
RECHNUNG.RechnungsNr = -1
|
|
'RECHNUNG.RechnungsNr = Nothing
|
|
RECHNUNG.UnterNr = RECHNUNG.getMaxRGUnterNr()
|
|
RECHNUNG.RechnungsDatum = Nothing
|
|
RECHNUNG.DruckDatumZeit = Nothing
|
|
RECHNUNG.Status = 0
|
|
RECHNUNG.Trdin = 0
|
|
RECHNUNG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
|
|
dgvOfferteDetailsUebersicht.Columns.Clear()
|
|
|
|
' initDGVRechnungenPositionen()
|
|
|
|
przBerechneRAPos("")
|
|
loadFormRGPosInOfferte()
|
|
initDGVRechnungenPositionen()
|
|
cboFiliale.Focus()
|
|
|
|
'--------------------------------------------------------------------------------------------
|
|
If Not saveMe() Then Exit Sub 'neue EUST-Rg speichern
|
|
Dim REM_POS_TMP As New List(Of VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
|
|
'EUST aus alter Rg entfernen
|
|
Dim RECHNUNG_TMP = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RECHNUNG_TMP_RKID)
|
|
RECHNUNG_TMP.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
|
|
'RECHNUNG_TMP.SteuerfreierGesamtbetrag
|
|
For Each POS In RECHNUNG_TMP.POSITIONEN
|
|
Select Case POS.LeistungsNr
|
|
Case "20", "77"
|
|
REM_POS_TMP.Add(POS)
|
|
End Select
|
|
Next
|
|
For Each R_POS In REM_POS_TMP
|
|
RECHNUNG_TMP.POSITIONEN.Remove(R_POS)
|
|
Next
|
|
initDGVRechnungenPositionen()
|
|
RECHNUNG_TMP.SAVE_POSITIONEN(RECHNUNG_TMP.RK_ID)
|
|
saveMe()
|
|
|
|
|
|
'--------------------------------------------------------------------------------------------
|
|
|
|
'alles außer EUST aus neuer Rg entfernen
|
|
Dim REM_POS As New List(Of VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
Select Case POS.LeistungsNr
|
|
Case "20", "77"
|
|
Case Else
|
|
REM_POS.Add(POS)
|
|
End Select
|
|
Next
|
|
For Each R_POS In REM_POS
|
|
RECHNUNG.POSITIONEN.Remove(R_POS)
|
|
Next
|
|
RECHNUNG.SAVE_POSITIONEN(RECHNUNG.RK_ID)
|
|
|
|
'--------------------------------------------------------------------------------------------
|
|
|
|
|
|
' End If
|
|
initRECHNUNG()
|
|
RaiseEvent SOMETHING_CHANGED(RECHNUNG.RK_ID)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub EUStGutschriftAnVeragToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VeragAGToolStripMenuItem.Click, VeragCSToolStripMenuItem.Click
|
|
|
|
Dim verag As String = ""
|
|
|
|
Select Case sender.name
|
|
Case "VeragAGToolStripMenuItem"
|
|
verag = "Verag AG"
|
|
veragKunde = 3013401
|
|
|
|
Case "VeragCSToolStripMenuItem"
|
|
verag = "Verag Customs Service"
|
|
veragKunde = 3017683
|
|
End Select
|
|
|
|
Dim spedbuch = New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(cboFiliale._value, txtAbfertigungsnummer.Text, cboSpedBuchUnterNr._value)
|
|
|
|
If spedbuch.Abfertigungsart <> 1 AndAlso RECHNUNG.[BelegartenNr] = 71 Then Exit Sub 'nur bei Rechnung und abfertigungsart 1
|
|
|
|
|
|
Dim abfrage = "Soll eine neue Gutschrift an die " & verag & " für die Verzollung/EUST erstellt werden?"
|
|
Dim PosWithWEustOrVerz As Boolean = False
|
|
Dim selectedPOS As New List(Of VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
|
|
For Each POS In RECHNUNG.POSITIONEN.Where(Function(x) x.Anzahl > 0).ToList
|
|
Select Case POS.LeistungsNr
|
|
Case "20" : abfrage &= vbNewLine & POS.Anzahl & "x EUSt: " & CDbl(POS.Preis) : PosWithWEustOrVerz = True : selectedPOS.Add(POS)
|
|
Case "340", "60" : abfrage &= vbNewLine & POS.Anzahl & "x : " & POS.LeistungsBez & " laut Offerte" : PosWithWEustOrVerz = True : selectedPOS.Add(POS)
|
|
End Select
|
|
Next
|
|
|
|
If Not PosWithWEustOrVerz Then Exit Sub
|
|
|
|
If vbYes = MsgBox(abfrage, vbYesNoCancel) Then
|
|
saveMe()
|
|
Dim RECHNUNGOldID = RECHNUNG.RK_ID
|
|
Dim RECHNUNG_TMP = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RECHNUNGOldID)
|
|
'--------------------------------------------------------------------------------------------
|
|
'Gutschrift
|
|
|
|
RECHNUNG.RK_ID = -1
|
|
RECHNUNG.RechnungsNr = -1
|
|
RECHNUNG.UnterNr = RECHNUNG.getMaxRGUnterNr()
|
|
RECHNUNG.RechnungsDatum = Nothing
|
|
RECHNUNG.DruckDatumZeit = Nothing
|
|
RECHNUNG.Status = 0
|
|
RECHNUNG.Trdin = 0
|
|
RECHNUNG.[BelegartenKz] = "AG" : RECHNUNG.[BelegartenNr] = 71 : RECHNUNG.Vorzeichen = "-"
|
|
RECHNUNG.OffertenNr = 1
|
|
|
|
cboRgGS.SelectedIndex = 1
|
|
|
|
'setze VERG ALS Vermittler/Kunde
|
|
Dim kundeVerag As New cKunde(veragKunde)
|
|
Dim kundeVeragAdr As New cAdressen(veragKunde)
|
|
Dim kundeVeragErw As New cKundenErweitert(veragKunde)
|
|
RECHNUNG.VermittlerKundenNr = veragKunde
|
|
kdFirmaAuftraggeber.KdNr_value = veragKunde
|
|
kdFirmaAuftraggeber.KdNr = veragKunde
|
|
kdFirmaAuftraggeber.KdData_KUNDE = kundeVerag
|
|
kdFirmaAuftraggeber.KdData_ADRESSEN = kundeVeragAdr
|
|
kdFirmaAuftraggeber.KdData_KUNDE_ERW = kundeVeragErw
|
|
RECHNUNG.Rechnung_an = cboRechnungAn._value
|
|
|
|
cboRechnungAn.changeItem("3")
|
|
|
|
cboSteuerschlüssel.changeItem(If(kdFirmaAuftraggeber.KdData_KUNDE.Steuerschlüssel, ""))
|
|
|
|
kdFirmaRechnungAn.KdNr = veragKunde
|
|
|
|
przBerechneRAPos("")
|
|
loadFormRGPosInOfferte()
|
|
initDGVRechnungenPositionen()
|
|
cboFiliale.Focus()
|
|
saveMe()
|
|
|
|
RECHNUNG.OffertenNr = 1
|
|
|
|
Dim REM_POS_TMP As New List(Of VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
|
|
|
|
|
|
For Each POS In RECHNUNG_TMP.POSITIONEN
|
|
POS.RK_ID = RECHNUNG.RK_ID
|
|
Select Case POS.LeistungsNr
|
|
Case "20", "60" '->org. EUST direkt in POS
|
|
''POS.Preis = POS.Preis * -1
|
|
'REM_POS_GU.Add(POS)
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If r.Cells("LeistungsNr").Value = POS.LeistungsNr And r.Cells("LeistungsBez").Value = POS.LeistungsBez Then
|
|
r.Cells("Anzahl").Value = If(POS.Anzahl, 0)
|
|
r.Cells("Preis").Value = If(POS.Preis, 0)
|
|
End If
|
|
Next
|
|
|
|
|
|
Case "340" 'Verzollung in dgvPOS
|
|
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
|
|
If r.Cells("LeistungsNr").Value = POS.LeistungsNr And r.Cells("LeistungsBez").Value = POS.LeistungsBez Then
|
|
r.Cells("Anzahl").Value = If(POS.Anzahl, 0)
|
|
End If
|
|
Next
|
|
End Select
|
|
initSteuerbetraege(RECHNUNG, POS)
|
|
Next
|
|
|
|
RECHNUNG.POSITIONEN.Clear()
|
|
|
|
przRefreshDGV_Positionen()
|
|
|
|
RECHNUNG.SAVE_POSITIONEN(RECHNUNG.RK_ID)
|
|
saveMe()
|
|
If Not loaded Then Exit Sub
|
|
|
|
initRECHNUNG()
|
|
|
|
RaiseEvent SOMETHING_CHANGED(RECHNUNG.RK_ID)
|
|
|
|
End If
|
|
|
|
veragKunde = -1
|
|
|
|
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(cboFirma._value, RECHNUNG.RechnungsLandKz, RECHNUNG.RechnungsUstIdKz, RECHNUNG.RechnungsUstIdNr, RECHNUNG.RechnungsUstIdGeprüft)
|
|
Dim daysCheck As Integer = 31
|
|
If check >= 0 Then
|
|
If IsNumeric(cboSteuerschlüssel._value) AndAlso CInt(cboSteuerschlüssel._value) <> check Then
|
|
Dim text = SQL.getValueTxtBySql("select AuswahlSteuerbezeichnung from Steuertabelle where Steuerschlüssel =" & check, "FMZOLL")
|
|
Dim hintUIDPruef As String = IIf((RECHNUNG.RechnungsUstIdGeprüft IsNot Nothing AndAlso CDate(RECHNUNG.RechnungsUstIdGeprüft) < Today.AddDays(-daysCheck)), "UID-Prüfung ist älter als " & daysCheck & " Tage!", "")
|
|
If Not vbYes = MsgBox("Falscher Steuertyp!" & vbNewLine & "Steuerschlüssel " & text & " sollte hinterlegt werden." & vbNewLine & IIf(hintUIDPruef <> "", hintUIDPruef & vbNewLine, "") & "Trotzdem speichern?", vbYesNo) Then
|
|
Return False
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Return True
|
|
|
|
End Function
|
|
|
|
Private Sub cboSammelrechnung_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboSammelrechnung.SelectedValueChanged
|
|
|
|
btn.Enabled = IIf(cboSammelrechnung._value = 0, True, False)
|
|
|
|
End Sub
|
|
|
|
Private Sub cboVorauskasse_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboVorauskasse.SelectedIndexChanged
|
|
If cboVorauskasse._value <> "" Then RECHNUNG.Vorkasse = CBool(cboVorauskasse._value)
|
|
If loaded Then
|
|
txtTextZZ.Text = cFakturierung.przRechnungstextZZ(RECHNUNG)
|
|
txtText.Text = cFakturierung.przRechnungstextTXT(RECHNUNG, SPEDBUCH)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
|
|
ContextMenuStrip3.Show(Cursor.Position)
|
|
End Sub
|
|
|
|
Private Sub AbsenderToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles AbsenderToolStripMenuItem2.Click, EmpfängerToolStripMenuItem2.Click, AuftraggeberToolStripMenuItem2.Click, AvisiererToolStripMenuItem2.Click
|
|
Try
|
|
|
|
|
|
If cboRechnungAn._value = "" Then Exit Sub
|
|
getValues()
|
|
Dim ROLLE = "AUFTRAGGEBER"
|
|
|
|
Dim FirmaFrm = (RECHNUNG.RechnungsName_1 & " " & If(RECHNUNG.RechnungsName_2, "")).trim
|
|
Dim kdnrFrm As Integer = RECHNUNG.RechnungsKundenNr
|
|
|
|
Select Case sender.text.ToString.Substring(0, 1) 'cboRechnungAn._value
|
|
Case "1"
|
|
ROLLE = "ABSENDER"
|
|
FirmaFrm = (RECHNUNG.AbsenderName_1 & " " & If(RECHNUNG.AbsenderName_2, "")).trim
|
|
kdnrFrm = RECHNUNG.AbsenderKundenNr
|
|
Case "2"
|
|
ROLLE = "EMPFAENGER"
|
|
FirmaFrm = (RECHNUNG.EmpfängerName_1 & " " & If(RECHNUNG.EmpfängerName_2, "")).trim
|
|
kdnrFrm = RECHNUNG.EmpfängerKundenNr
|
|
Case "3"
|
|
ROLLE = "AUFTRAGGEBER"
|
|
FirmaFrm = (RECHNUNG.VermittlerName_1 & " " & If(RECHNUNG.VermittlerName_2, "")).trim
|
|
kdnrFrm = RECHNUNG.VermittlerKundenNr
|
|
Case "4"
|
|
ROLLE = "AVISIERER"
|
|
FirmaFrm = (RECHNUNG.Avisierer)
|
|
kdnrFrm = RECHNUNG.AvisiererKundenNr
|
|
End Select
|
|
If Not checkUIDNR() Then Exit Sub
|
|
|
|
If RECHNUNG.Status <> 0 OrElse saveMe() Then
|
|
' Anhänge sichern, falls geändert
|
|
If RECHNUNG.RK_ID > 0 And RECHNUNG.Status <> 0 Then
|
|
getValues_ANHAENGE()
|
|
RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID)
|
|
End If
|
|
|
|
'RG-Druck - Mail (+Kopie)
|
|
Dim RG_DRUCK = 2
|
|
If sender Is Button16 Then
|
|
RG_DRUCK = 5
|
|
End If
|
|
|
|
Dim f As New frmSendEmail(RECHNUNG, SPEDBUCH, If(cbxOriginalPrint.Visible, cbxOriginalPrint.Checked, Nothing), RG_DRUCK, kdnrFrm)
|
|
f.ShowDialog(Me)
|
|
initRECHNUNG()
|
|
RaiseEvent SOMETHING_CHANGED(-1)
|
|
|
|
|
|
End If
|
|
cbxOriginalPrint.Checked = False
|
|
|
|
Catch ex As Exception
|
|
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Function CheckLandNr_getLandBezFromLandNr(ByRef LandNr As String) As String
|
|
|
|
Dim landbez As String = ""
|
|
If SPEDBUCH Is Nothing Then Return landbez
|
|
If SPEDBUCH.Packstücke.ToString.Contains("Mehrwertsteuerrückerstattung") Then
|
|
LandNr = SPEDBUCH.Packstücke.ToString.Replace("Mehrwertsteuerrückerstattung ", "")
|
|
LandNr = LandNr.Substring(0, 2).Trim()
|
|
If IsNumeric(LandNr) Then
|
|
landbez = SQL.getValueTxtBySql("select LandKz from [Länderverzeichnis für die Außenhandelsstatistik] where LandNr = " & LandNr, "FMZOLL")
|
|
Return landbez
|
|
ElseIf LandNr = "AT" Then
|
|
landbez = LandNr
|
|
Return landbez
|
|
End If
|
|
End If
|
|
Return landbez
|
|
End Function
|
|
|
|
Private Function CheckLandNr_getLandBezFromAntrag(ByRef LandNr As String, ByRef Antrag As cUSTVAntrag) As String
|
|
|
|
Dim landbez As String = ""
|
|
If SPEDBUCH Is Nothing Then Return landbez
|
|
If SPEDBUCH.FilialenNr = 4817 AndAlso SPEDBUCH.AbfertigungsNr > 0 AndAlso FIRMA IsNot Nothing AndAlso FIRMA.Firma_ID = 19 Then
|
|
|
|
|
|
Dim antragsID As Integer = CInt(SQL.getValueTxtBySql("SELECT UStVAn_ID FROM tblUStVAntrag WHERE FilialenNr = " & SPEDBUCH.FilialenNr & " AND AbfertigungsNr = " & SPEDBUCH.AbfertigungsNr, "FMZOLL",,, "-1"))
|
|
|
|
If antragsID > 0 Then
|
|
Dim MWSTAntrag As New cUSTVAntrag(antragsID)
|
|
LandNr = MWSTAntrag.UStVAn_LandNr
|
|
landbez = SQL.getValueTxtBySql("select LandKz from [Länderverzeichnis für die Außenhandelsstatistik] where LandNr = " & MWSTAntrag.UStVAn_LandNr, "FMZOLL")
|
|
Antrag = MWSTAntrag
|
|
|
|
End If
|
|
End If
|
|
|
|
Return landbez
|
|
|
|
End Function
|
|
|
|
Private Sub setMWSTABRfromSPEDinPOS(r As DataGridViewRow, LandNr As String, LandBez As String, ByRef summeRMC As Double, ByRef FremdUndRMC As Boolean, Optional antrag As cUSTVAntrag = Nothing, Optional isVZ As Boolean = False, Optional changed As Boolean = False)
|
|
|
|
If SPEDBUCH IsNot Nothing AndAlso (SPEDBUCH.Abfertigungsart = 114 Or SPEDBUCH.Abfertigungsart = 115 Or SPEDBUCH.Abfertigungsart = 10) Then
|
|
|
|
Dim OFFERT_LAND = ""
|
|
Dim OFFERT_VZ = False
|
|
Dim OFFERT_RMC = False
|
|
Dim OFFERT_FREMD = False
|
|
Dim OFFERT_LeistungsBez = r.Cells("LeistungsBez").Value
|
|
|
|
If Not IsDBNull(r.Cells("Land").Value) AndAlso r.Cells("Land").Value IsNot Nothing AndAlso r.Cells("Land").Value <> "" Then OFFERT_LAND = r.Cells("Land").Value
|
|
|
|
If Not IsDBNull(r.Cells("VZ").Value) AndAlso r.Cells("VZ").Value IsNot Nothing Then OFFERT_VZ = r.Cells("VZ").Value
|
|
|
|
If Not IsDBNull(r.Cells("RMC").Value) AndAlso r.Cells("RMC").Value IsNot Nothing Then OFFERT_RMC = r.Cells("RMC").Value
|
|
|
|
If Not IsDBNull(r.Cells("Fremd").Value) AndAlso r.Cells("Fremd").Value IsNot Nothing Then OFFERT_FREMD = r.Cells("Fremd").Value
|
|
|
|
|
|
If OFFERT_LeistungsBez <> "" AndAlso OFFERT_LAND <> "" Then
|
|
|
|
If (isVZ = OFFERT_VZ) Then
|
|
|
|
Dim isMWST As Boolean = False
|
|
Dim kdNr = IIf(RECHNUNG.RechnungsKundenNr > 0, RECHNUNG.RechnungsKundenNr, kdFirmaRechnungAn.KdNr)
|
|
Dim isRMCKunde = IIf(kdNr = 150000 AndAlso (antrag.UStVAn_AntragArt = "MWST" Or antrag.UStVAn_AntragArt = "MOEST"), True, False)
|
|
|
|
Dim sumRMC As Double = 0
|
|
Dim sumFremdBeleg As Double = 0
|
|
Dim sumBelegVZ As Double = 0
|
|
|
|
If antrag IsNot Nothing AndAlso LandBez <> "" AndAlso antrag.UStVAn_AntragArt <> "" Then
|
|
|
|
If (antrag.UStVAn_AntragArt <> "MWST" And antrag.UStVAn_AntragArt <> "MOEST") Then isRMCKunde = False
|
|
|
|
Dim LandISO2 = ""
|
|
|
|
If LandBez.Length = 2 Then
|
|
LandISO2 = LandBez
|
|
ElseIf LandBez.Length = 3 Then
|
|
LandISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(LandBez)
|
|
ElseIf LandBez.Length = 1 Then
|
|
LandISO2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(LandBez)
|
|
End If
|
|
|
|
'wegen Übersetzungslogik in RE-POS
|
|
Dim USTV_EN = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("mwst", "vat")
|
|
Dim MÖST_EN = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("moest", "excise")
|
|
Dim MÖST_DE = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("oe", "ö")
|
|
Dim USTV_RO = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("mwst", "rambursare tva")
|
|
Dim MÖST_RO = antrag.UStVAn_AntragArt.ToString.ToLower.Replace("moest", "rambursare acciza")
|
|
|
|
If OFFERT_LAND = "FR" Then
|
|
'MsgBox("Test1")
|
|
End If
|
|
|
|
If OFFERT_LAND = LandISO2 AndAlso (OFFERT_LeistungsBez.ToString.ToLower.StartsWith(antrag.UStVAn_AntragArt.ToString.ToLower) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(USTV_EN) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(MÖST_EN) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(MÖST_DE) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(USTV_RO) Or OFFERT_LeistungsBez.ToString.ToLower.StartsWith(MÖST_RO)) Then
|
|
|
|
'wenn RMC, dann ebenfalls unterscheiden!
|
|
|
|
If isRMCKunde Then
|
|
If (OFFERT_FREMD Or OFFERT_RMC) Then
|
|
|
|
'aus AntragsPOS die
|
|
|
|
For Each ANTR_POS As cUStVPositionen In antrag.POSITIONEN
|
|
|
|
If ANTR_POS.UStVPo_Leistender.ToString.ToUpper.StartsWith("RMC") Then
|
|
If isVZ Then
|
|
If ANTR_POS.UStVPo_VZ AndAlso (IsDBNull(ANTR_POS.UStVPo_VZ_RKID) Or ANTR_POS.UStVPo_VZ_RKID Is Nothing) Then sumRMC += ANTR_POS.UStVPo_USteuerbetragEUR
|
|
Else
|
|
If ANTR_POS.UStVPo_VZ_RKID Is Nothing AndAlso (IsDBNull(ANTR_POS.UStVPo_VZ) OrElse Not ANTR_POS.UStVPo_VZ) Then sumRMC += ANTR_POS.UStVPo_USteuerbetragEUR
|
|
End If
|
|
|
|
Else
|
|
If isVZ Then
|
|
If ANTR_POS.UStVPo_VZ AndAlso (IsDBNull(ANTR_POS.UStVPo_VZ_RKID) Or ANTR_POS.UStVPo_VZ_RKID Is Nothing) Then sumFremdBeleg += ANTR_POS.UStVPo_USteuerbetragEUR
|
|
Else
|
|
If ANTR_POS.UStVPo_VZ_RKID Is Nothing AndAlso (IsDBNull(ANTR_POS.UStVPo_VZ) OrElse Not ANTR_POS.UStVPo_VZ) Then sumFremdBeleg += ANTR_POS.UStVPo_USteuerbetragEUR
|
|
End If
|
|
|
|
End If
|
|
|
|
Next
|
|
|
|
'SPEDBUCH.Abfertigungsart = 114 -> EU
|
|
'SPEDBUCH.Abfertigungsart = 115 -> DL Drittland
|
|
Dim BEZ_LAND_RMC As String = ""
|
|
Select Case SPEDBUCH.Abfertigungsart
|
|
Case 114 : BEZ_LAND_RMC = IIf(isVZ, "00", "00-00")
|
|
Case 115 : BEZ_LAND_RMC = IIf(isVZ, "DL", "DL-00")
|
|
End Select
|
|
|
|
|
|
If (OFFERT_RMC Or OFFERT_FREMD) AndAlso OFFERT_VZ = isVZ AndAlso OFFERT_LeistungsBez.ToString.Contains(BEZ_LAND_RMC) Then
|
|
isMWST = True
|
|
GoTo mwst
|
|
End If
|
|
|
|
End If
|
|
Else
|
|
|
|
If isVZ AndAlso OFFERT_VZ Then
|
|
|
|
For Each ANTR_POS As cUStVPositionen In antrag.POSITIONEN
|
|
|
|
If ANTR_POS.UStVPo_VZ AndAlso (IsDBNull(ANTR_POS.UStVPo_VZ_RKID) Or ANTR_POS.UStVPo_VZ_RKID Is Nothing) Then sumBelegVZ += ANTR_POS.UStVPo_USteuerbetragEUR
|
|
|
|
Next
|
|
|
|
isMWST = True
|
|
GoTo mwst
|
|
|
|
ElseIf Not isVZ AndAlso Not OFFERT_VZ Then
|
|
|
|
For Each ANTR_POS As cUStVPositionen In antrag.POSITIONEN
|
|
|
|
If ANTR_POS.UStVPo_VZ_RKID Is Nothing AndAlso (IsDBNull(ANTR_POS.UStVPo_VZ) OrElse Not ANTR_POS.UStVPo_VZ) Then sumFremdBeleg += ANTR_POS.UStVPo_USteuerbetragEUR
|
|
|
|
Next
|
|
|
|
isMWST = True
|
|
GoTo mwst
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
End If
|
|
|
|
mwst:
|
|
|
|
If isMWST Then
|
|
r.Cells("Anzahl").Value = 1
|
|
|
|
|
|
If antrag IsNot Nothing AndAlso antrag.UStVAn_ID > 0 Then
|
|
|
|
If IsDBNull(r.Cells("Preis").Value) OrElse r.Cells("Preis").Value = 0 Then
|
|
|
|
If isRMCKunde Then
|
|
If OFFERT_RMC AndAlso sumRMC <> 0 Then
|
|
r.Cells("Preis").Value = sumRMC '* -1
|
|
ElseIf OFFERT_FREMD AndAlso sumFremdBeleg <> 0 Then
|
|
r.Cells("Preis").Value = sumFremdBeleg '* -1
|
|
End If
|
|
|
|
Else
|
|
If sumBelegVZ <> 0 Then
|
|
r.Cells("Preis").Value = sumBelegVZ '* -1
|
|
Else
|
|
|
|
Dim GesamtUSteuerEUR As Double = SQL.DLookup("isnull(sum(UStVPo_USteuerbetragEUR),0)", "tblUStVPositionen", "UStVAn_ID='" & antrag.UStVAn_ID & "'", "FMZOLL", "0")
|
|
Dim GesamtErstattungEUR As Double = SQL.DLookup("isnull(sum(UStVEr_USteuerbetragEUR),0)", "tblUStVErstattung", "UStVAn_ID='" & antrag.UStVAn_ID & "'", "FMZOLL", "0")
|
|
Dim DiffernezbetragEUR As Double = GesamtUSteuerEUR - GesamtErstattungEUR
|
|
|
|
If DiffernezbetragEUR <> 0 Then
|
|
r.Cells("Preis").Value = DiffernezbetragEUR '* -1
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
If r.Cells("BGebLeistungsNr").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("BGebLeistungsNr").Value) AndAlso r.Cells("BGebProzent").Value IsNot Nothing AndAlso Not IsDBNull(r.Cells("BGebProzent").Value) Then
|
|
|
|
Dim OffertNr As Integer = IIf(IsNumeric(RECHNUNG.OffertenNr), RECHNUNG.OffertenNr, (dgvOffertenSperrliste.SelectedRows(0).Cells("OffertenNr").Value))
|
|
|
|
If OffertNr = 15 Or OffertNr = 14 Or OffertNr = 31 Then
|
|
If Not IsDBNull(r.Cells("Preis").Value) Then
|
|
Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(IIf(RECHNUNG.RechnungsKundenNr > 0, RECHNUNG.RechnungsKundenNr, kdFirmaRechnungAn.KdNr), OffertNr, True)
|
|
Call prBearbGeb_NEW(r, OFFERTE, RECHNUNG, r.Cells("BGebLeistungsNr").Value, r.Cells("BGebProzent").Value, IIf(Not IsDBNull(r.Cells("BGebMinBetrag").Value), r.Cells("BGebMinBetrag").Value, 0), r.Cells("Preis").Value * If(RECHNUNG.Vorzeichen = "-", -1, 1), summeRMC, OFFERT_RMC, OFFERT_FREMD, FremdUndRMC, changed)
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Function setUSTVPOSfakturiert(USTV_ANTRAG As cUSTVAntrag) As Boolean
|
|
|
|
|
|
Dim hasVZ As Boolean = False
|
|
For Each pos In USTV_ANTRAG.POSITIONEN
|
|
If pos.UStVPo_VZ AndAlso (IsDBNull(pos.UStVPo_VZ_RKID) Or pos.UStVPo_VZ_RKID Is Nothing) Then 'VZ die noch nicht abgerechnet wurde!
|
|
hasVZ = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If hasVZ Then
|
|
Dim SQL As New SQL
|
|
|
|
For Each pos As cUStVPositionen In USTV_ANTRAG.POSITIONEN
|
|
|
|
If Not IsDBNull(pos.UStVPo_VZ) AndAlso pos.UStVPo_VZ AndAlso (IsDBNull(pos.UStVPo_VZ_RKID) Or pos.UStVPo_VZ_RKID Is Nothing) Then
|
|
pos.UStVPo_VZ_RKID = RECHNUNG.RK_ID
|
|
pos.SAVE()
|
|
End If
|
|
|
|
Next
|
|
|
|
Dim count_nichtAbgerVZ As Integer = -1
|
|
count_nichtAbgerVZ = CInt(SQL.getValueTxtBySql("SELECT COUNT(*) FROM [tblUStVPositionen] WHERE [UStVAn_ID] = " & USTV_ANTRAG.UStVAn_ID & " and [UStVPo_VZ] = 1 and isnull(UStVPo_VZ_RKID,0) = 0", "FMZOLL"))
|
|
If count_nichtAbgerVZ = 0 Then
|
|
Return SQL.doSQL("UPDATE [tblUStVAntrag] SET UStVAn_VZoffen = 0 WHERE [UStVAn_ID] IN (SELECT [UStVAn_ID] FROM [tblUStVPositionen] WHERE isnull([UStVPo_VZ],0) = 1 and isnull([UStVPo_VZ_RKID],0) = 0 AND [UStVAn_ID] = " & USTV_ANTRAG.UStVAn_ID & " )", "FMZOLL")
|
|
End If
|
|
End If
|
|
|
|
Return False
|
|
|
|
|
|
End Function
|
|
|
|
End Class |