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 If Not checkUIDNR() Then Exit Sub saveMe() End Sub Dim WithEvents tGespeichert As New Timer Sub setLblGespeichert() Label46.Visible = True tGespeichert.Enabled = True End Sub Private Sub tGespeichert_Tick(sender As Object, e As EventArgs) Handles tGespeichert.Tick Label46.Visible = False tGespeichert.Enabled = False End Sub Function saveMe() As Boolean If cbxAdmin.Checked And cbxAdmin.Visible Then 'Nix Else If RECHNUNG.DruckDatumZeit IsNot Nothing Or RECHNUNG.Status <> 0 Then Return False End If End If getValues() Dim errMsg = "" setError(errMsg) If RECHNUNG.CHECK_Validation(errMsg, dgvRechnungenPositionen) Then If RECHNUNG.SAVE(True) Then RECHNUNG.setSPEDBUCH_FAKTURIERT() 'Fakturiert wird in SpedBuch geschrieben If SPEDBUCH.hasEntry AndAlso SPEDBUCH.Vermittler = "" Then addVermittlerToSpedbuch() End If 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 If Not checkUIDNR() Then Exit Sub saveMe() 'Damit Prüfungen in der Vorschau funktionieren (zT mit DB abhängig -> ReverseCharge) getValues() cFakturierung.doRechnungsDruck(RECHNUNG,, True,,, getPrinterFromParent) End Sub Function getRechnungsText() As String Dim strText = "" Dim dt As DataTable = SQL.loadDgvBySql("SELECT * FROM [Rechnungstexte] where [Text] is not null", "FMZOLL") If dt Is Nothing Then Return "" For Each r In dt.Rows ' Informations- und Werbetexte drucken ' Set rstTex = dbs.OpenRecordset("qryRechnungstexte", dbOpenSnapshot) If r("Firma_ID") IsNot DBNull.Value Then If RECHNUNG.Firma_ID <= 0 Then GoTo Nächste_Textzeile_lesen If r("Firma_ID") <> RECHNUNG.Firma_ID Then GoTo Nächste_Textzeile_lesen End If If r("LandKz") IsNot DBNull.Value Then If RECHNUNG.RechnungsLandKz Is Nothing Then GoTo Nächste_Textzeile_lesen If r("LandKz") <> RECHNUNG.RechnungsLandKz Then GoTo Nächste_Textzeile_lesen End If If r("OffertenNr") IsNot DBNull.Value Then If RECHNUNG.OffertenNr Is Nothing Then GoTo Nächste_Textzeile_lesen If r("OffertenNr") <> RECHNUNG.OffertenNr Then GoTo Nächste_Textzeile_lesen End If If r("EMailRechnung") IsNot DBNull.Value Then If kdFirmaRechnungAn.KdData_ADRESSEN Is Nothing Then GoTo Nächste_Textzeile_lesen If kdFirmaRechnungAn.KdData_ADRESSEN.Rechnungsdruck <> 2 Then GoTo Nächste_Textzeile_lesen If If(kdFirmaRechnungAn.KdData_ADRESSEN.[E_Mail], "") = "" Then GoTo Nächste_Textzeile_lesen End If Select Case RECHNUNG.BelegartenNr Case "R" 'RECHNUNG If r("DrucksteuerungsKz") Is DBNull.Value OrElse r("DrucksteuerungsKz") = "R" Then strText = strText & r("Text") & vbCrLf End If Case "G" 'GUTSCHRIFT If r("DrucksteuerungsKz") Is DBNull.Value OrElse r("DrucksteuerungsKz") = "G" Then strText = strText & r("Text") & vbCrLf End If End Select Nächste_Textzeile_lesen: Next Return strText End Function Private Sub dgvRechnungenPositionen_Leave(sender As Object, e As EventArgs) Handles dgvRechnungenPositionen.Leave 'przBerechneRAPos End Sub 'Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean ' Try ' If keyData = (Keys.Control Or Keys.Add) Then ' 'RaiseEvent a() : Return True ' addItem() ' Return True ' ElseIf keyData = (Keys.Control Or Keys.Subtract) Then ' 'RaiseEvent REMOVE(ID) : Return True ' removeItem(dgvPositionen.SelectedRows(0).Cells("index").Value) ' Return True ' ElseIf keyData = Keys.PageUp Then ' 'RaiseEvent PREV_POS() : Return True ' PREV_POS() ' Return True ' ElseIf keyData = Keys.PageDown Then ' 'RaiseEvent NEXT_POS() : Return True ' NEXT_POS() ' Return True ' End If ' Catch ex As Exception ' End Try ' Return False 'End Function Dim fired = False Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean Try If keyData = (Keys.Control Or Keys.Tab) Then If Me.ActiveControl Is cboRechnungAn Then : txtZollbelegNr.Focus() : Return False ElseIf Me.ActiveControl Is cboSammelrechnung Then : txtZollbelegNr.Focus() : Return False ElseIf Me.ActiveControl.Parent Is pnlRechnungAn Then : txtZollbelegNr.Focus() : Return False ElseIf Me.ActiveControl Is txtZollbelegNr Then : dgvOfferteDetailsUebersicht.Focus() : Return False ElseIf Me.ActiveControl Is dgvOfferteDetailsUebersicht Then : cboAnlage1.Focus() : Return False ElseIf Me.ActiveControl.Parent Is dgvOfferteDetailsUebersicht Then : cboAnlage1.Focus() : Return False ElseIf Me.ActiveControl.Name.Contains("cboAnlage") Then : cboSteuerschlüssel.Focus() : Return False End If End If If False Then If fired Then Return False If keyData = (Keys.Control Or Keys.Tab) Then fired = True Dim thisControl = Me.ActiveControl Dim cnt = 0 Do SendKeys.Send("{TAB}") '"{TAB}") Application.DoEvents() If Me.ActiveControl IsNot thisControl Then If Me.ActiveControl Is cboRechnungAn Then fired = False : Return False If Me.ActiveControl Is txtZollbelegNr Then fired = False : Return False If Me.ActiveControl Is dgvOfferteDetailsUebersicht Then fired = False : Return False If Me.ActiveControl Is cboAnlage1 Then fired = False : Return False If Me.ActiveControl Is cboSteuerschlüssel Then fired = False : Return False If Me.ActiveControl Is btnOK Then btnOK.PerformClick() fired = False : Return False End If End If cnt += 1 If cnt > 200 Then fired = False : Return False ' zur Sicherheit Loop End If End If If keyData = Keys.F1 Then Button7.PerformClick() 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 Not checkUIDNR() Then Exit Sub If RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Exit Sub If RECHNUNG.Status <> 0 OrElse vbYes = MsgBox("Möchten Sie das PDF erstellen?" & vbNewLine & "Es wird eine Rechnungsnummer vergeben, die Rechnung gilt somit als gedruckt und kann nicht mehr bearbeitet werden.", vbYesNoCancel) Then If RECHNUNG.Status <> 0 OrElse saveMe() Then If cFakturierung.doRechnungsDruck(RECHNUNG,,, 3,, getPrinterFromParent, cbxOriginalPrint.Checked) Then initRECHNUNG() RaiseEvent SOMETHING_CHANGED(-1) End If End If End If cbxOriginalPrint.Checked = False End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click If RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Exit Sub If RECHNUNG.Status <> 0 OrElse vbYes = MsgBox("Möchten Sie die Rechnung drucken?" & vbNewLine & "Es wird eine Rechnungsnummer vergeben, die Rechnung kann nicht mehr bearbeitet werden.", vbYesNoCancel) Then If RECHNUNG.Status <> 0 OrElse saveMe() Then ' Anhänge sichern, falls geändert If RECHNUNG.RK_ID > 0 And RECHNUNG.Status <> 0 Then getValues_ANHAENGE() RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID) End If Dim PARAM_printZollbeleg = VERAG_PROG_ALLGEMEIN.cAllgemein.PARAMS.GET_PARAMETER_VALUE_BOOL("FAKTURIERUNG_PRINT_Zollbeleg") If cFakturierung.doRechnungsDruck(RECHNUNG,,, 0,, getPrinterFromParent, cbxOriginalPrint.Checked,, PARAM_printZollbeleg) Then initRECHNUNG() RaiseEvent SOMETHING_CHANGED(-1) End If End If End If cbxOriginalPrint.Checked = False End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If vbYes = MsgBox("Möchten Sie diese ungedruckte Rechnung wirklich löschen?", vbYesNoCancel) Then If RECHNUNG IsNot Nothing AndAlso RECHNUNG.Status = 0 Then 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 Not checkUIDNR() Then Exit Sub If RECHNUNG.Sammelrechnung <> "0" Then MsgBox("Nur bei Einzelrechnung möglich!") : Exit Sub If RECHNUNG.Status <> 0 OrElse saveMe() Then ' Anhänge sichern, falls geändert If RECHNUNG.RK_ID > 0 And RECHNUNG.Status <> 0 Then getValues_ANHAENGE() RECHNUNG.SAVE_ANHAENGE(RECHNUNG.RK_ID) End If 'RG-Druck - Mail (+Kopie) Dim RG_DRUCK = 2 If sender Is Button16 Then RG_DRUCK = 5 End If Dim f As New frmFaktEmail(RECHNUNG, SPEDBUCH, If(cbxOriginalPrint.Visible, cbxOriginalPrint.Checked, Nothing), RG_DRUCK) 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 Private Function checkUIDNR() As Boolean If cboSteuerschlüssel._value IsNot Nothing AndAlso IsNumeric(cboSteuerschlüssel._value) Then Dim check As Integer = cAllgemein.checkSteuerschluessel(cboFirma._value, RECHNUNG.RechnungsLandKz, RECHNUNG.RechnungsUstIdKz, RECHNUNG.RechnungsUstIdNr, RECHNUNG.RechnungsUstIdGeprüft) If check >= 0 Then If IsNumeric(cboSteuerschlüssel._value) AndAlso CInt(cboSteuerschlüssel._value) <> check Then If Not vbYes = MsgBox("Falscher Steuertyp!" & vbNewLine & " Steuerschlüssel mit " & IIf(check = 2, "20 %", check & " %") & " sollte hinterlegt werden." & vbNewLine & "Trotzdem speichern?", vbYesNo) Then Return False End If End If End If End If Return True End Function End Class