4072 lines
192 KiB
VB.net
4072 lines
192 KiB
VB.net
Imports System.IO
|
|
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 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)
|
|
|
|
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, "")
|
|
|
|
If RECHNUNG.Vorkasse Then
|
|
lblVorauskasse.Text = "JA"
|
|
Else
|
|
lblVorauskasse.Text = "NEIN"
|
|
End If
|
|
|
|
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)
|
|
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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 = 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
|
|
'initDGVOfferteDetailsUebersicht(RECHNUNG.kundenn,RECHNUNG.OffertenNr)
|
|
'Dann die Werte eintragen:
|
|
' MsgBox("G: " & RECHNUNG.POSITIONEN.Count)
|
|
Dim vorzeichen = 1 'If(RECHNUNG.Vorzeichen = "-", -1, 1)
|
|
For Each POS In RECHNUNG.POSITIONEN
|
|
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.DataSource.AcceptChanges()
|
|
' dgvOfferteDetailsUebersicht.DataSource.Tables(0).Rows.add(newR)
|
|
' dgvOfferteDetailsUebersicht.Rows(dgvOfferteDetailsUebersicht.Rows.Count - 1).Cells("BerechnungsartNr").DefaultNewRowValue = POS.BerechnungsartNr.ToString
|
|
|
|
dgvOfferteDetailsUebersicht.Rows.Add(newR)
|
|
setBerartValue(newR, POS.BerechnungsartNr)
|
|
|
|
|
|
'newR.Cells(4).Value = POS.BerechnungsartNr
|
|
|
|
' dgvOfferteDetailsUebersicht.Rows(dgvOfferteDetailsUebersicht.Rows.Count - 1).Cells("BerechnungsartNr"). = POS.BerechnungsartNr.ToString
|
|
|
|
' MsgBox(DirectCast(newR.Cells(4), DataGridViewComboBoxCell).ValueMember.Count) '= POS.BerechnungsartNr
|
|
'dgvOfferteDetailsUebersicht.DataSource.AcceptChanges()
|
|
|
|
' dgvOfferteDetailsUebersicht.Rows.Add(POS.LeistungsNr, POS.LeistungsBez, POS.Anzahl, POS.Preis, DBNull.Value, POS.[BGebLeistungsNr], POS.[BGebProzent], POS.[BGebMinBetrag], POS.Steuerpflichtig,
|
|
' POS.IndexZkteing, POS.AufschubkontoNr, POS.Aufschubfälligkeit, POS.DateiNameAufschub, POS.Belegdaten)
|
|
|
|
' dgvOfferteDetailsUebersicht.Rows(dgvOfferteDetailsUebersicht.Rows.Count - 1).Cells("BerechnungsartNr").Value = POS.BerechnungsartNr
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
End If
|
|
Next
|
|
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
|
|
|
|
|
|
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))
|
|
' 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"))
|
|
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([Steuerbezeichnung],'') as Steuerbezeichnung FROM [Steuertabelle] ORDER BY [Steuerschlüssel]", False, "FMZOLL", True)
|
|
|
|
Dim whereFirma = ""
|
|
Dim firstEmpty = False
|
|
|
|
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 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 "VERA360"
|
|
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
|
|
cboRechnungSprache.changeItem(kdFirmaRechnungAn.KdData_KUNDE_ERW.kde_Fakturierung_Sprache)
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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, ""))
|
|
|
|
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, ""))
|
|
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, ""))
|
|
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, ""))
|
|
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
|
|
End If
|
|
Else
|
|
'.Columns..Columns.Clear()
|
|
przRefreshDGV_Positionen()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
|
|
Sub initDGVOfferteDetailsUebersicht(kdNr, OffertenNr)
|
|
|
|
With dgvOfferteDetailsUebersicht
|
|
If Not IsNumeric(kdNr) OrElse kdNr < 0 Then
|
|
.Columns.Clear()
|
|
Exit Sub
|
|
End If
|
|
Dim loadedtmp = loaded
|
|
loaded = False
|
|
' .Columns.Clear()
|
|
|
|
' FUNC.dgvCellToCbo(dgvOfferteDetailsUebersicht, 4, "Berechnungsart", "BerechnungsartNr", " SELECT [BerechnungsartNr], CAST(BerechnungsartNr as varchar(3)) + ' - ' + [BerechnungsartBez] as [BerechnungsartBez] FROM [Berechnungsart] ORDER BY BerechnungsartNr ", "FMZOLL", 150)
|
|
'NAMEN:::::::::::
|
|
|
|
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)
|
|
|
|
|
|
Dim dt As DataTable = SQL.loadDgvBySql(" SELECT [Offertenpositionen].[LeistungsNr],[Offertenpositionen].[LeistungsBez],[Anzahl],[Preis],[Offertenpositionen].[BerechnungsartNr],[BGebLeistungsNr],[BGebProzent],[BGebMinBetrag],Steuerpflichtig/*,[Geändert am],[Sachbearbeiter]*/,BerechnungsartPosInkludiert " &
|
|
" FROM [Offertenpositionen] INNER JOIN [Leistungen] ON leistungen.LeistungsNr=Offertenpositionen.LeistungsNr" &
|
|
" WHERE KundenNr='" & kdNr & "' and OffertenNr='" & OffertenNr & "' ORDER BY LeistungsNr ", "FMZOLL")
|
|
|
|
|
|
'If .ColumnCount = 0 Then Exit Sub
|
|
.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("BerechnungsartNr").DefaultCellStyle.NullValue = 1
|
|
|
|
|
|
' .Columns("BerechnungsartNr").MinimumWidth = 130
|
|
.Columns("Preis").Width = 60
|
|
.Columns("Preis").DefaultCellStyle.Format = "N2"
|
|
.Columns("Preis").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
|
|
'.Columns("Anzahl").Width = 50
|
|
'.Columns("Anzahl").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
|
|
'.Columns("BGebLeistungsNr").Width = 60
|
|
'.Columns("BGebProzent").Width = 55
|
|
'.Columns("BGebProzent").HeaderText = "BGeb %"
|
|
'.Columns("BGebProzent").DefaultCellStyle.Format = "P"
|
|
'.Columns("BGebProzent").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
|
|
'.Columns("BGebMinBetrag").Width = 60
|
|
'.Columns("BGebMinBetrag").HeaderText = "BGebMinBetr."
|
|
'.Columns("BGebMinBetrag").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
|
|
'.Columns("Eingegeben am").Visible = False
|
|
|
|
'.Columns("Sachbearbeiter").Width = 65
|
|
' .Columns("Geändert am").Width = 95
|
|
.Columns("BGebProzent").Width = 65
|
|
.Columns("BGebMinBetrag").Width = 65
|
|
'.Columns("PreisänderungProzent").Width = 65
|
|
'.Columns("PreisänderungProzent").HeaderText = "Preisänd.%"
|
|
'.Columns("PreisänderungProzent").DefaultCellStyle.Format = "P"
|
|
'.Columns("PreisänderungProzent").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
|
|
'.Columns("PreisAlt").Width = 60
|
|
'.Columns("PreisAlt").DefaultCellStyle.Format = "N2"
|
|
'.Columns("PreisAlt").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
|
|
'.Columns("Preisänderung").Width = 60
|
|
'.Columns("Preisänderung").HeaderText = "PreisNeu"
|
|
'.Columns("Preisänderung").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
|
|
|
|
|
|
.Columns("BGebLeistungsNr").Visible = False
|
|
.Columns("BGebProzent").Visible = False
|
|
.Columns("BGebMinBetrag").Visible = False
|
|
.Columns("Steuerpflichtig").Visible = False
|
|
.Columns("BerechnungsartPosInkludiert").Visible = False
|
|
' .Columns("Geändert am").Visible = False
|
|
'.Columns("Sachbearbeiter").Visible = False
|
|
|
|
|
|
|
|
.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
|
|
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"))
|
|
|
|
|
|
|
|
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)
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
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)
|
|
|
|
|
|
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.BGebBgl = r.Cells("BGebBgl").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 = (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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
|
|
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 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
|
|
|
|
'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)
|
|
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 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
|
|
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 = ""
|
|
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
|
|
RECHNUNG.Vorkasse = kdFirmaRechnungAn.KdData_KUNDE.Vorkasse
|
|
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
|
|
|
|
'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 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 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
|
|
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
|
|
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
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()
|
|
End If
|
|
If keyData = Keys.F2 Then
|
|
Button1.PerformClick()
|
|
End If
|
|
|
|
If keyData = Keys.F3 Then
|
|
btn.PerformClick()
|
|
End If
|
|
|
|
If keyData = (Keys.Control Or Keys.P) Then
|
|
Button4.PerformClick()
|
|
End If
|
|
|
|
If keyData = (Keys.Control Or Keys.S) Then
|
|
|
|
saveMe()
|
|
End If
|
|
|
|
|
|
If (keyData = (Keys.Control Or Keys.Add)) Or (keyData = (Keys.Control Or Keys.Return)) Then
|
|
btnNeueUnterNR.PerformClick()
|
|
End If
|
|
|
|
If keyData = Keys.PageDown Then
|
|
If saveMe() Then
|
|
btnNext.PerformClick()
|
|
End If
|
|
End If
|
|
If keyData = Keys.PageUp Then
|
|
If saveMe() Then
|
|
btnPrev.PerformClick()
|
|
End If
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
saveMe()
|
|
newRECHNUNG()
|
|
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 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
|
|
RECHNUNG.DELETE()
|
|
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 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)
|
|
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)
|
|
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
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
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
|
|
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
|
|
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 GutschriftAnVeragToolStripMenuItem.Click
|
|
|
|
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 AG 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
|
|
veragKunde = 3013401
|
|
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
|
|
|
|
End Class |