Files
SDL/SDL/Fakturierung/usrCntlFaktAbrechnung.vb
2024-05-28 10:43:12 +02:00

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