Files
SDL/SDL/Speditionsbuch/usrCntlSpeditionsBuchSuche.vb
2026-04-21 16:04:38 +02:00

4585 lines
253 KiB
VB.net

Imports System.Data.SqlClient
Imports System.Globalization
Imports GrapeCity.ActiveReports.Viewer.Common.Internal
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.IDEV_Intrastat
Public Class usrCntlSpeditionsBuchSuche
Dim SQL As New SQL
Public Event SendungsdetailsRequested(ByVal AvisoId As Integer, ByVal SendungId As Integer)
Dim AVISOSERVER = VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & " .AVISO.dbo.AVISO"
Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Public KDSearch As Integer
Public dat_von As Date
Public dat_bis As Date
Sub New(KDSearch As Integer, dat_von As Date, dat_bis As Date)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
Me.KDSearch = KDSearch
Me.dat_von = dat_von
Me.dat_bis = dat_bis
'txtAbfertDat._value = dat_von.ToShortDateString
'txtAbfertDatBis._value = dat_bis.ToShortDateString
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Public Sub initSearch()
btnSuche.PerformClick()
End Sub
Private Sub btnSuche_Click(sender As Object, e As EventArgs) Handles btnSuche.Click
Me.Cursor = Cursors.WaitCursor
Dim TopMax = If(IsNumeric(txtMaxSrch.Text), " TOP " & txtMaxSrch.Text, "")
Dim sqlstr As String = ""
If tbcntr.SelectedIndex = 0 Then
dgvLKW.Visible = False
sqlstr &= " SELECT " & TopMax & " [FilialenNr],[AbfertigungsNr],[UnterNr],[Abfertigungsdatum],speditionsbuch.[Abfertigungsart],Abfertigungsarten.Abfertigungsbezeichnung, " &
" isnull(cast([AbsenderKundenNr] as nvarchar(7)) + ' ','') + [Absender] as Absender,isnull(cast([EmpfängerKundenNr] as nvarchar(7)) + ' ','') + [Empfänger] as Empfänger,isnull(cast([VermittlerKundenNr] as nvarchar(7)) + ' ','') + [Vermittler] as Vermittler,isnull(cast([FrachtführerKundenNr] as nvarchar(7)) + ' ','') + [Frachtführer] as Frachtführer,isnull(cast([AvisiererKundenNr] as nvarchar(7)) + ' ','') + [Avisierer] as Avisierer, " &
" [LKW Kennzeichen],QKN,(SELECT isnull(Name,'') FROM Personal Where Personalnummer=ID) AS Sachbearbeiter,BelegNr, Grenzstelle FROM [Speditionsbuch] LEFT JOIN Abfertigungsarten ON Abfertigungsarten.Abfertigungsart=speditionsbuch.Abfertigungsart WHERE 1=1 "
'/*Sachbearbeiter ,[Bar],[Fakturiert],[BelegNr],[ErfassungsNr],[AnzahlZA],[AnzahlZAFremd],[AnzahlZnV],[AnzahlZnVFremd],[AnzahlT1],[AnzahlT2],[AnzahlAE],[AnzahlCarnetTIR],[AnzahlBarvorlagen],[AnzahlSonstiges],[AnzahlGrenzgebühren],[AvisUhrzeit],[Rechnungsbetrag],[Abfertigungsanzahl],[Barzahlungsbetrag],[Sachbearbeiter],[Personalnummer],[AtlasBezNrEZA],[AtlasBezNrNCTS],[Versendungsland],[SB_CMR],[SB_CMRDatum],[veoerz_basbtg],[Zucker_MRN_Nr],[Zucker_MRN_Datum],[Zucker_Aufschub],[Zollsystem],[Bestimmungszollstelle],[Bürgschaft],[Sicherheitsbetrag],[SgutKompl],[Bestimmungsland],[EuFiskalEmpfänger],[QKN],[EndempfängerKundenNr],[Endempfänger] */
With DataGridView
' .DataSource = myTable
.SET_SQL(sqlstr & getSpedBuchWhere() & " ORDER BY Abfertigungsdatum, [FilialenNr],[AbfertigungsNr],[UnterNr] ", "FMZOLL", getSpedbuchList)
'MsgBox(sqlstr)
' MsgBox(getSpedBuchWhere)
.LOAD()
End With
showDGV()
Else
sqlstr &= " SELECT Aviso.AvisoID,[LKW Kennzeichen],Anzahl,Abfertigungsanzahl,CASE WHEN isnull(Aviso.[Frächter_KdNr],0) > 0 then cast(Aviso.[Frächter_KdNr] as nvarchar(60)) + ' ' ELSE '' END + Aviso.frächter as Frächter, CASE WHEN isnull(Aviso.Auftraggeber_KdNr,0) > 0 then cast(Aviso.Auftraggeber_KdNr as nvarchar(60)) + ' ' ELSE '' END + Aviso.Auftraggeber as Avisierer, Freigabe from"
sqlstr &= " (SELECT " & TopMax & " AvisoID,COUNT (*) As anzahl, SUM(Abfertigungsanzahl) as Abfertigungsanzahl , case when Speditionsbuch.AvisoID is null then ' - Kein LKW - ' ELSE max([LKW Kennzeichen]) END as [LKW Kennzeichen]"
sqlstr &= " FROM [Speditionsbuch] WHERE 1=1 "
sqlstr &= getSpedBuchWhere()
sqlstr &= " group by Speditionsbuch.AvisoID"
sqlstr &= " ) as t"
sqlstr &= " INNER JOIN " & AVISOSERVER & " on Aviso.avisoid=t.AvisoID "
DataGridView.Columns.Clear()
With dgvLKW
.SET_SQL(sqlstr, "FMZOLL", getSpedbuchList)
.LOAD()
.Visible = True
If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.Columns("Abfertigungsanzahl").Visible = False
.Columns("AvisoID").HeaderText = "LKW-Id"
.Columns("AvisoID").Width = 50
.Columns("Anzahl").Width = 30
.Columns("Anzahl").HeaderText = "Snd."
.Columns("Anzahl").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("LKW Kennzeichen").Width = 100
.Columns("LKW Kennzeichen").HeaderText = "LKW Kennz."
.Columns("Frächter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Frächter").MinimumWidth = 150
.Columns("Avisierer").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Avisierer").MinimumWidth = 150
.Columns("Freigabe").Width = 105
lblErgebnis.Text = "Ergebnisse: " & .RowCount
AddHandler .SelectionChanged, Sub()
DataGridView.Columns.Clear()
If dgvLKW.SelectedRows().Count = 0 Then Exit Sub
Dim sqlstrTmp = " SELECT " & TopMax & " [FilialenNr],[AbfertigungsNr],[UnterNr],[Abfertigungsdatum],speditionsbuch.[Abfertigungsart],Abfertigungsarten.Abfertigungsbezeichnung, " &
" isnull(cast([AbsenderKundenNr] as nvarchar(7)) + ' ','') + [Absender] as Absender,isnull(cast([EmpfängerKundenNr] as nvarchar(7)) + ' ','') + [Empfänger] as Empfänger,isnull(cast([VermittlerKundenNr] as nvarchar(7)) + ' ','') + [Vermittler] as Vermittler,isnull(cast([FrachtführerKundenNr] as nvarchar(7)) + ' ','') + [Frachtführer] as Frachtführer,isnull(cast([AvisiererKundenNr] as nvarchar(7)) + ' ','') + [Avisierer] as Avisierer, " &
" [LKW Kennzeichen],QKN,(SELECT isnull(Name,'') FROM Personal Where Personalnummer=ID) AS Sachbearbeiter ,BelegNr, Grenzstelle FROM [Speditionsbuch] LEFT JOIN Abfertigungsarten ON Abfertigungsarten.Abfertigungsart=speditionsbuch.Abfertigungsart WHERE 1=1 "
With DataGridView
' .DataSource = myTable
.SET_SQL(sqlstrTmp & getSpedBuchWhere() & " AND AvisoID='" & dgvLKW.SelectedRows(0).Cells("AvisoID").Value & "' " & " ORDER BY Abfertigungsdatum, [FilialenNr],[AbfertigungsNr],[UnterNr] ", "FMZOLL", getSpedbuchList)
.LOAD()
End With
showDGV()
End Sub
End With
End If
Me.Cursor = Cursors.Default
End Sub
Sub showDGV()
With DataGridView
If .RowCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub
.RowHeadersVisible = False
.ReadOnly = True
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.Columns("FilialenNr").Width = 45
.Columns("FilialenNr").HeaderText = "Filiale"
.Columns("FilialenNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("AbfertigungsNr").Width = 80
.Columns("AbfertigungsNr").HeaderText = "Abf-Nr"
.Columns("AbfertigungsNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("UnterNr").Width = 45
.Columns("UnterNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("Abfertigungsdatum").Width = 100
.Columns("Abfertigungsdatum").HeaderText = "Abf-Dat."
.Columns("Abfertigungsdatum").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("Absender").MinimumWidth = 150
.Columns("Absender").HeaderText = "Absender"
.Columns("Absender").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Abfertigungsart").Width = 50
.Columns("Abfertigungsart").HeaderText = "Abf.Nr"
.Columns("Abfertigungsart").DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
.Columns("Abfertigungsbezeichnung").MinimumWidth = 100
.Columns("Abfertigungsbezeichnung").HeaderText = "Abfertigungsart"
.Columns("Abfertigungsbezeichnung").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Vermittler").MinimumWidth = 150
.Columns("Vermittler").HeaderText = "Auftraggeber"
.Columns("Vermittler").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Empfänger").MinimumWidth = 150
.Columns("Empfänger").HeaderText = "Empfänger"
.Columns("Empfänger").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Frachtführer").MinimumWidth = 150
.Columns("Frachtführer").HeaderText = "Frachtführer"
.Columns("Frachtführer").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("Avisierer").MinimumWidth = 150
.Columns("Avisierer").HeaderText = "Avisierer"
.Columns("Avisierer").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
.Columns("LKW Kennzeichen").Width = 120
.Columns("LKW Kennzeichen").HeaderText = "LKW Kennzeichen"
.Columns("Grenzstelle").Visible = False
'.Columns("Avisierer").Visible = False
.Columns("BelegNr").Width = 160
.Columns("Sachbearbeiter").MinimumWidth = 100
'MsgBox(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_niederlassung)
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_niederlassung = "NKD" Then
.Columns("QKN").Width = 45
.Columns("QKN").HeaderText = "QKN"
Else
.Columns("QKN").Visible = False
End If
lblErgebnis.Text = "Ergebnisse: " & .RowCount
End With
End Sub
Function getSpedBuchWhere(Optional ignoreFiliale = False) As String
Dim sqlstr = ""
If txtAvisiererKdNr.Text <> "" And IsNumeric(txtAvisiererKdNr.Text) Then : sqlstr &= " AND Speditionsbuch.[AvisiererKundenNr] LIKE @AvisiererKundenNr "
ElseIf kdtxtAvisierer.Text <> "" Then : sqlstr &= " AND Speditionsbuch.[Avisierer] LIKE @Avisierer " : End If
If txtAbsenderKdnr.Text <> "" And IsNumeric(txtAbsenderKdnr.Text) Then : sqlstr &= " AND Speditionsbuch.[AbsenderKundenNr] LIKE @AbsenderKundenNr "
ElseIf kdtxtAbsender.Text <> "" Then : sqlstr &= " AND Speditionsbuch.[Absender] LIKE @Absender " : End If
If cbxOderEmpfanger.Checked Then
If txtAuftraggeberKdnr.Text <> "" And IsNumeric(txtAuftraggeberKdnr.Text) Then : sqlstr &= " AND ( Speditionsbuch.[VermittlerKundenNr] LIKE @VermittlerKundenNr OR Speditionsbuch.[EmpfängerKundenNr] LIKE @VermittlerKundenNr ) "
ElseIf kdtxtAuftraggeber.Text <> "" Then : sqlstr &= " AND ( Speditionsbuch.[Vermittler] LIKE @Vermittler OR Speditionsbuch.[Empfänger] LIKE @Vermittler ) " : End If
Else
If txtAuftraggeberKdnr.Text <> "" And IsNumeric(txtAuftraggeberKdnr.Text) Then : sqlstr &= " AND Speditionsbuch.[VermittlerKundenNr] LIKE @VermittlerKundenNr "
ElseIf kdtxtAuftraggeber.Text <> "" Then : sqlstr &= " AND Speditionsbuch.[Vermittler] LIKE @Vermittler " : End If
If txtEmpfaengerKdnr.Text <> "" And IsNumeric(txtEmpfaengerKdnr.Text) Then : sqlstr &= " AND Speditionsbuch.[EmpfängerKundenNr] LIKE @EmpfängerKundenNr "
ElseIf kdtxtEmpfaenger.Text <> "" Then : sqlstr &= " AND Speditionsbuch.[Empfänger] LIKE @Empfänger " : End If
End If
If txtFrachtfuehrerKdnr.Text <> "" And IsNumeric(txtFrachtfuehrerKdnr.Text) Then : sqlstr &= " AND Speditionsbuch.[FrachtführerKundenNr] LIKE @FrachtführerKundenNr "
ElseIf kdtxtFrachtfuehrer.Text <> "" Then : sqlstr &= " AND Speditionsbuch.[Frachtführer] LIKE @Frachtführer " : End If
If txtEndempfaengerKdnr.Text <> "" And IsNumeric(txtEndempfaengerKdnr.Text) Then : sqlstr &= " AND Speditionsbuch.[EndempfängerKundenNr] LIKE @EndempfängerKundenNr "
ElseIf kdtxtEndempfaenger.Text <> "" Then : sqlstr &= " AND Speditionsbuch.[Endempfänger] LIKE @Endempfänger " : End If
If txtFiskalEndempfaenger.Text <> "" Then sqlstr &= " AND Speditionsbuch.[EuFiskalEmpfänger] LIKE @FiskalEndempfaengerKundenNr "
If txtKdAuftragsNr.Text <> "" Then sqlstr &= " AND Speditionsbuch.[KdAuftragsNr] LIKE @KdAuftragsNr "
If txtAbfertDat.Text <> "" Then
If txtAbfertDatBis.Text <> "" Then
sqlstr &= " AND (Speditionsbuch.[Abfertigungsdatum] BETWEEN @Abfertigungsdatum AND @Abfertigungsdatum_bis ) "
Else
sqlstr &= " AND (Speditionsbuch.[Abfertigungsdatum] BETWEEN @Abfertigungsdatum AND @Abfertigungsdatum ) "
End If
End If
If txtAbfertigungsnummer.Text <> "" Then
If txtAbfertigungsnummerBis.Text <> "" Then
sqlstr &= " AND (Speditionsbuch.[AbfertigungsNr] BETWEEN @AbfertigungsNr AND @AbfertigungsNr_bis ) "
Else
sqlstr &= " AND Speditionsbuch.AbfertigungsNr LIKE @AbfertigungsNr "
End If
End If
If txtUnterNr.Text <> "" Then sqlstr &= " AND Speditionsbuch.[UnterNr] LIKE @UnterNr "
If Not ignoreFiliale Then
If cboFiliale._value <> "" Then sqlstr &= " AND Speditionsbuch.[FilialenNr] LIKE @FilialenNr "
End If
' If cboFilialeHandling._value <> "" Then sqlstr &= " AND FilialenNrHandling IS NOT NULL AND [FilialenNrHandling] LIKE @FilialeHandling "
Dim abfertigungsarten = getValues()
If abfertigungsarten <> "" Then sqlstr &= " AND Speditionsbuch.Abfertigungsart IN (" & abfertigungsarten & ") "
Dim filialeAuswahl = getValuesFiliale()
If filialeAuswahl <> "" Then sqlstr &= " AND Speditionsbuch.FilialenNr IN (" & filialeAuswahl & ") "
Dim filialeAuswahlHandling = getValuesFilialeHandling()
If filialeAuswahlHandling <> "" Then sqlstr &= " AND Speditionsbuch.FilialenNrHandling IN (" & filialeAuswahlHandling & ") "
Dim grenzeAuswahl = getValuesGrenzstelle()
If grenzeAuswahl <> "" Then sqlstr &= " AND Speditionsbuch.Grenzstelle IN (" & grenzeAuswahl & ") "
If txtCRN.Text <> "" Then sqlstr &= " AND Speditionsbuch.QKN LIKE @QKN "
If txtPackstücke.Text <> "" Then sqlstr &= " AND Speditionsbuch.Packstücke LIKE @Packstücke "
If txtBelegNr.Text <> "" Then sqlstr &= " AND Speditionsbuch.BelegNr LIKE @BelegNr "
If cboVersLand._value <> "" Then sqlstr &= " AND Speditionsbuch.Versendungsland LIKE @Versendungsland "
If cboBestLand._value <> "" Then sqlstr &= " AND Speditionsbuch.Bestimmungsland LIKE @Bestimmungsland "
If txtErfassungsnNr.Text <> "" Then sqlstr &= " AND Speditionsbuch.ErfassungsNr LIKE @ErfassungsNr "
If txtAvisoId.Text.Trim <> "" And IsNumeric(txtAvisoId.Text.Trim) Then sqlstr &= " AND Speditionsbuch.AvisoId=@AvisoId"
If MyTextBox14.Text <> "" Then sqlstr &= " AND Speditionsbuch.[LKW Kennzeichen] LIKE @LKW "
If cbxBar.CheckState = CheckState.Checked Then sqlstr &= " AND Bar=1 "
If cbxFakturiert.CheckState = CheckState.Checked Then sqlstr &= " AND Fakturiert=1 "
If cbxCMR.CheckState = CheckState.Checked Then sqlstr &= " AND SB_CMR=1 "
If cbxBar.CheckState = CheckState.Unchecked Then sqlstr &= " AND Bar=0 "
If cbxFakturiert.CheckState = CheckState.Unchecked Then sqlstr &= " AND Fakturiert=0 "
If cbxCMR.CheckState = CheckState.Unchecked Then sqlstr &= " AND SB_CMR=0 "
If cbxfehlZahlung_AVISOID.CheckState = CheckState.Checked Then sqlstr &= " AND NOT EXISTS (select * FROM [Rechnungsausgang] WHERE [Rechnungsausgang].AvisoID=Speditionsbuch.AvisoID) AND NOT EXISTS (select * FROM [tblEABelegnummer] WHERE LKW_id= Speditionsbuch.AvisoID AND storniert=0 and gebuchtstorno=0)"
'If cbxfehlZahlung_AVISOID.CheckState = CheckState.Unchecked Then sqlstr &= " AND EXISTS (select * FROM [Rechnungsausgang] WHERE [Rechnungsausgang].AvisoID=Speditionsbuch.AvisoID) "
If cbxfehlZahlung_SENDUNG.CheckState = CheckState.Checked Then sqlstr &= " AND NOT EXISTS (select * FROM [Rechnungsausgang] WHERE [Rechnungsausgang].FilialenNr=Speditionsbuch.FilialenNr and [Rechnungsausgang].AbfertigungsNr=[Speditionsbuch].AbfertigungsNr AND [Rechnungsausgang].[SpeditionsbuchUnterNr]=[Speditionsbuch].UnterNr) AND NOT EXISTS (select * FROM [tblEABelegnummer] WHERE tblEABelegnummer].FilialenNr=[Speditionsbuch].[FilialenNr] and [tblEABelegnummer].AbfertigungsNr=[Speditionsbuch].AbfertigungsNr and [tblEABelegnummer].FilialenNr>0 and [tblEABelegnummer].AbfertigungsNr>0 AND storniert=0 and gebuchtstorno=0) "
'If cbxfehlZahlung_SENDUNG.CheckState = CheckState.Unchecked Then sqlstr &= " AND EXISTS (select * FROM [Rechnungsausgang] WHERE [Rechnungsausgang].FilialenNr=Speditionsbuch.FilialenNr and [Rechnungsausgang].AbfertigungsNr=[Speditionsbuch].AbfertigungsNr AND [Rechnungsausgang].[SpeditionsbuchUnterNr]=[Speditionsbuch].UnterNr)"
If cbxEIDR.Visible Then
If cbxEIDR.CheckState = CheckState.Checked Then sqlstr &= " AND UK_EIDR_ausstehend=1 "
If cbxEIDR.CheckState = CheckState.Unchecked Then sqlstr &= " AND UK_EIDR_ausstehend=0 "
End If
If txtZollstelle.Visible And txtZollstelle._value <> "" Then
sqlstr &= " AND Zollstelle='" & txtZollstelle._value & "' "
End If
If cboSachbearbeiter._value <> "" Then sqlstr &= " AND Speditionsbuch.[Personalnummer] = @Personalnummer "
If cboSB_Qs._value <> "" Then sqlstr &= " AND Speditionsbuch.[PersonalnummerQS] = @PersonalnummerQS "
If cboSB_TR._value <> "" Then sqlstr &= " AND Speditionsbuch.[PersonalnummerAbklTR] = @PersonalnummerAbklTR "
If txtVermerk.Text <> "" Then sqlstr &= " AND Speditionsbuch.[Vermerk] LIKE @Vermerk "
Return sqlstr
End Function
Function getSpedbuchList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Avisierer", kdtxtAvisierer.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AvisiererKundenNr", txtAvisiererKdNr.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Absender", kdtxtAbsender.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbsenderKundenNr", txtAbsenderKdnr.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Empfänger", kdtxtEmpfaenger.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EmpfängerKundenNr", txtEmpfaengerKdnr.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vermittler", kdtxtAuftraggeber.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VermittlerKundenNr", txtAuftraggeberKdnr.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Frachtführer", kdtxtFrachtfuehrer.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FrachtführerKundenNr", txtFrachtfuehrerKdnr.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Endempfänger", kdtxtEndempfaenger.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("EndempfängerKundenNr", txtEndempfaengerKdnr.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FiskalEndempfaengerKundenNr", txtFiskalEndempfaenger.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("KdAuftragsNr", txtKdAuftragsNr.Text.Replace("*", "%")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abfertigungsdatum", txtAbfertDat.Text & " 00:00:00"))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Abfertigungsdatum_bis", txtAbfertDatBis.Text & " 23:59:59"))
If txtAbfertigungsnummerBis.Text <> "" Then
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr", txtAbfertigungsnummer.Text.Replace("*", "")))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr_bis", txtAbfertigungsnummerBis.Text.Replace("*", "")))
Else
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AbfertigungsNr", txtAbfertigungsnummer.Text.Replace("*", "%")))
End If
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UnterNr", txtUnterNr.Text))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialenNr", cboFiliale._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LKW", MyTextBox14.Text.Replace("*", "%").ToUpper))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("QKN", txtCRN.Text.Replace("*", "%").ToUpper))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Packstücke", txtPackstücke.Text.Replace("*", "%").ToUpper))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BelegNr", txtBelegNr.Text.Replace("*", "%").ToUpper))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Versendungsland", cboVersLand._value.Replace("*", "%").ToUpper))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Bestimmungsland", cboBestLand._value.Replace("*", "%").ToUpper))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("ErfassungsNr", txtErfassungsnNr.Text.Replace("*", "%").ToUpper))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AvisoId", txtAvisoId.Text.Trim))
' list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("FilialeHandling", cboFilialeHandling._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Personalnummer", cboSachbearbeiter._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PersonalnummerQS", cboSB_Qs._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PersonalnummerAbklTR", cboSB_TR._value))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Vermerk", txtVermerk.Text.Replace("*", "%").ToUpper))
Return list
End Function
Private Sub frmSpeditionsbuchSuche_Load(sender As Object, e As EventArgs) Handles MyBase.Load
VERAG_PROG_ALLGEMEIN.cAllgemein._TRANSLATE(Me)
If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then
AVISOSERVER = "[DEVELOPER\DEVSQL].AVISO_new.dbo.AVISO"
End If
txtAbfertDat.Text = Now.ToShortDateString 'CDate("01." & Now.ToString("MM.yyyy")).AddMonths(-1).ToShortDateString
txtAbfertDatBis.Text = Now.ToShortDateString
btnMonat.Text = MONAT.ToString("MMMM")
btnJahr.Text = JAHR.Year
kdtxtAbsender.initKdBox(Me.FindForm, txtAbsenderKdnr) ' initKdAbsender()
kdtxtEmpfaenger.initKdBox(Me.FindForm, txtEmpfaengerKdnr) 'initKdEmpfaenger()
kdtxtAuftraggeber.initKdBox(Me.FindForm, txtAuftraggeberKdnr) 'initKdAuftraggeber()
kdtxtFrachtfuehrer.initKdBox(Me.FindForm, txtFrachtfuehrerKdnr) 'initKdFrachtfuehrer()
kdtxtEndempfaenger.initKdBox(Me.FindForm, txtEndempfaengerKdnr) 'initKdEndempfaenger()
kdtxtAvisierer.initKdBox(Me.FindForm, txtAvisiererKdNr) 'initKdEndempfaenger()
Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Then
FirmaTmp = "VERAGIMEX"
End If
Dim sbWhere = ""
Select Case FirmaTmp
Case "ATILLA" : sbWhere = " AND Niederlassung = 'SUA' "
Case "IMEX" : sbWhere = " AND Mandant = 'IMEX' "
Case "VERAGIMEX" : sbWhere = " "
Case Else
sbWhere = " AND Mandant <> 'IMEX' "
End Select
cboSachbearbeiter.fillWithSQL("SELECT ID,/*cast(ID as nvarchar(3)) +' ' + Name as*/ Name FROM Personal WHERE [Status]<>'L' " & sbWhere & " ORDER BY Name ", False, "FMZOLL", True)
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
' cboFilialeHandling.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)
' txtBestimmungszollstelle.initSearchBox(Me.FindForm, "[basncd_dstnr] ,[basncd_dstnr] +' - ' + [basncd_name] +' (' +[basncd_alpha]+')' as displayPARAM,[basncd_dstnr] as Nr,[basncd_name] as Dienststelle,[basncd_alpha] as Land FROM basncd", {" [basncd_dstnr]", "basncd_name"}, " [basncd_gbdat] >= getdate() ", " basncd_alpha,[basncd_name]", "basncd_dstnr", "displayPARAM", "ATLAS", , 400, 200, {"displayPARAM", "basncd_dstnr"})
txtZollstelle.initSearchBox(Me.FindForm, "[Code] ,[Code] as Nr,Description as Dienststelle,left(Code,2) as Land,[Description] +' (' +left(Code,2)+')' as display FROM [tbl_DY_ZollDE_C0141_Zollstellen]", {" [Code]", "Description"}, " (StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE()) ", " left(Code,2),[Description]", "Code", "display", "FMZOLL", , 400, 200, {"display", "Code"})
cboHandlingssatz.fillWithSQL("SELECT [hs_Bezeichnung] FROM [tblHandlingssaetzeIntern] group by [hs_Bezeichnung] ", False, "FMZOLL", True)
If VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE <> "" And Not VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER And FirmaTmp <> "VERAGIMEX" Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER = "FRONTOFFICE" Then
Dim whereCluster = ""
If VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER = "FRONTOFFICE" Then whereCluster = ",'5801'"
cboFiliale.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr IN ('" & VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE & "'" & whereCluster & ") ORDER BY FilialenNr ", True, "FMZOLL", True)
' cboFiliale._allowedValuesFreiText = {VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE, 5801}
ElseIf 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
'Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
' Case "IMEX" : cboFiliale._allowedValuesFreiText = {"5501"}
' cboFiliale.changeItem("5501")
' cboFiliale.Enabled = False
' Case "ATILLA" : cboFiliale._allowedValuesFreiText = {"4801"}
' cboFiliale.changeItem("4801")
' cboFiliale.Enabled = False
'End Select
'ComboBox1.fillWithSQL("SELECT [Abfertigungsart],[Abfertigungsbezeichnung] FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", True, "FMZOLL")
cboVersLand.fillWithSQL("SELECT LandKz, LandBez FROM [Länderverzeichnis für die Außenhandelsstatistik] ORDER BY LandKz ", True, "FMZOLL", True)
cboBestLand.fillWithSQL("SELECT LandKz, LandBez FROM [Länderverzeichnis für die Außenhandelsstatistik] ORDER BY LandKz ", True, "FMZOLL", True)
MyListBox1.fillWithSQL(" SELECT [Abfertigungsart],[Abfertigungsbezeichnung] FROM [Abfertigungsarten] ORDER BY Abfertigungsart ", , "FMZOLL")
If VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE <> "" And Not VERAG_PROG_ALLGEMEIN.cAllgemein.isCLUSTER Then
Dim whereCluster = ""
' If VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER = "FRONTOFFICE" Then whereCluster = ",'5801'"
lstFiliale.fillWithSQL(" SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr IN ('" & VERAG_PROG_ALLGEMEIN.cAllgemein.STAMMFILIALE & "'" & whereCluster & ") ORDER BY FilialenNr ", , "FMZOLL")
Else
lstFiliale.fillWithSQL(" SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", , "FMZOLL")
End If
lstFilialeHandling.fillWithSQL(" SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", , "FMZOLL")
'Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
' Case "IMEX"
' lstFiliale.fillWithSQL(" SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr=5501 ORDER BY FilialenNr ", , "FMZOLL")
' Case "ATILLA"
' lstFiliale.fillWithSQL(" SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' AND FilialenNr=4801 ORDER BY FilialenNr ", , "FMZOLL")
' Case Else
' lstFiliale.fillWithSQL(" SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", , "FMZOLL")
'End Select
' lstGrenze.fillWithSQL(" SELECT distinct(Grenzstelle),distinct(Grenzstelle) FROM [VERAG].[dbo].[Speditionsbuch] where Grenzstelle is not null order by Grenzstelle ", , "FMZOLL")
'lstGrenze.Items.Clear()
'lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SUB", "SUB"))
'lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SBG", "SBG"))
'lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("WAI", "WAI"))
'lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NKD", "NKD"))
'lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SUA", "SUA"))
'lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMB", "AMB"))
'lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("???", "???"))
lstGrenze.Items.Clear()
lstGrenze.fillWithSQL("SELECT [grz_Grenzstelle],[grz_BezeichnungCBO] FROM tblGrenzstelle where [grz_Firma]='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' OR grz_Cluster='" & VERAG_PROG_ALLGEMEIN.cAllgemein.CLUSTER & "' AND grz_Aktiv=1 order by grz_Reihenfolge, grz_Grenzstelle", False, "AVISO")
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then
lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SUB", "SUB"))
lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEU", "NEU"))
End If
lstGrenze.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("???", "???"))
lstGrenze.changeItem("")
MyComboBox1.Items.Clear()
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ALLE", "ALLE"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG", "VERAG"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISPED"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBAR", "AMBAR"))
MyComboBox1.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FRONTOFFICE"))
MyComboBox2.Items.Clear()
MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG", "VERAG"))
MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX"))
MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISPED"))
cboFilialeHandling.Items.Clear()
cboFilialeHandling.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cboFilialeHandling.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ALLE", "ALLE"))
cboFilialeHandling.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("VERAG", "VERAG"))
cboFilialeHandling.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("IMEX", "IMEX"))
cboFilialeHandling.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("UNISPED", "UNISPED"))
cboFilialeHandling.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("AMBAR", "AMBAR"))
cboFilialeHandling.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FRONTOFFICE", "FRONTOFFICE"))
Dim where = ""
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "VERAG", "ATILLA", ""
Case Else
where = " AND mit_firma IN ('" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "','BEIDE') "
'Case "IMEX" : where = " AND mit_firma IN ('IMEX','BEIDE') "
''' Case "ATILLA" : cboFiliale._allowedValuesFreiText = {"4801"}
End Select
cboSB_Qs.fillWithSQL("SELECT [mit_id],[mit_vname] + ' '+ [mit_nname] as NAME " &
" FROM [tblMitarbeiter] WHERE mit_niederlassung IN ('SUB','Suben') AND mit_abteilung='QS' AND [mit_gekuendigt]=0 " & where & " order by name", False, "ADMIN", True)
cboSB_TR.fillWithSQL("SELECT [mit_id],[mit_vname] + ' '+ [mit_nname] as NAME " &
" FROM [tblMitarbeiter] WHERE mit_firma IN ('VERIMEX') AND [mit_gekuendigt]=0 order by name", False, "ADMIN", True)
btnDetailsuche.PerformClick()
cboRolle.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Auftraggeber", "VermittlerKundenNr"))
cboRolle.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Avisierer", "AvisiererKundenNr"))
cboRolle.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Absender", "AbsenderKundenNr"))
cboRolle.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Empfänger", "EmpfängerKundenNr"))
cboRolle.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Frachtführer", "FrachtführerKundenNr"))
cboRolle.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Endempfänger", "EndempfängerKundenNr"))
cboRolle.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("FiskalEndempfaenger", "FiskalEndempfaengerKundenNr"))
cboRolle.SelectedIndex = 0
cboDetailberichtKdAtrNr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Auftraggeber", "AUFTRAGGEBER"))
cboDetailberichtKdAtrNr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Avisierer", "AVISIERER"))
cboDetailberichtKdAtrNr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Empfänger", "EMPFAENGER"))
cboDetailberichtKdAtrNr.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Frachtführer", "FRACHTFUEHRER"))
cboDetailberichtKdAtrNr.SelectedIndex = 0
Label29.Visible = False
Label30.Visible = False
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER IsNot Nothing Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standartFiliale > 0 Then
Dim aktNr = (New cOptionenDAL).getMaxPosNr(VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standartFiliale, Now.Year)
Label30.Text = "akt. Pos-Nr. (" & VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_standartFiliale & "):"
Label29.Text = aktNr
Label29.Visible = True
Label30.Visible = True
End If
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMIN", "SDL") Then
btnQSAufteilung.Visible = True
btnCSAufteilung.Visible = True
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
pnlBerichte.Visible = True
Button21.Visible = True
Button16.Visible = True
Button17.Visible = True
ElseIf VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "AMBAR" Then
pnlBerichte.Visible = True
For Each p In pnlBerichte.Controls
p.Visible = False
Next
Button25.Visible = True
MyComboBox2.Visible = True
End If
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen_Erlöse", "SDL") Then
btnSpedBuchEinnahmen.Visible = True
End If
If KDSearch > 0 Then
kdtxtAuftraggeber.KdNr = KDSearch
txtAbfertDat._value = dat_von.ToShortDateString
txtAbfertDatBis._value = dat_bis.ToShortDateString
cbxOderEmpfanger.Checked = True
End If
initToolStripMenu()
End Sub
Function getValues() As String
Dim s As String = ""
For Each i In MyListBox1.SelectedItems
s += DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & ", "
Next
If s.EndsWith(", ") Then
s = s.Substring(0, s.Length - 2)
End If
Return s
End Function
Function getValuesFiliale() As String
Dim s As String = ""
For Each i In lstFiliale.SelectedItems
s += DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & ", "
Next
If s.EndsWith(", ") Then
s = s.Substring(0, s.Length - 2)
End If
Return s
End Function
Function getValuesFilialeHandling() As String
Dim s As String = ""
For Each i In lstFilialeHandling.SelectedItems
s += DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & ", "
Next
If s.EndsWith(", ") Then
s = s.Substring(0, s.Length - 2)
End If
Return s
End Function
Function getValuesGrenzstelle() As String
Dim s As String = ""
For Each i In lstGrenze.SelectedItems
s += "'" & DirectCast(i, VERAG_PROG_ALLGEMEIN.MyListItem).Value & "', "
Next
If s.EndsWith(", ") Then
s = s.Substring(0, s.Length - 2)
End If
Return s
End Function
' Private Sub Button1_Click(sender As Object, e As EventArgs)
' For i = 0 To MyListBox1.Items.Count - 1
' MyListBox1.SetSelected(i, True)
' Next
'End Sub
'
Private Sub Button13_Click(sender As Object, e As EventArgs) Handles btnKeine.Click
For i = 0 To MyListBox1.Items.Count - 1
MyListBox1.SetSelected(i, False)
Next
End Sub
Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
For i = 0 To lstFiliale.Items.Count - 1
lstFiliale.SetSelected(i, False)
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnAlle.Click
For i = 0 To MyListBox1.Items.Count - 1
MyListBox1.SetSelected(i, True)
Next
End Sub
' Sub initKdAuftraggeber()
' Dim dgvFindKD As New DataGridView
' dgvFindKD.Name = "dgvFindKD"
' Me.Controls.Add(dgvFindKD)
' dgvFindKD.Visible = False
' kdtxtAuftraggeber.dgv = dgvFindKD
' AddHandler kdtxtAuftraggeber.PropertyChanged, Sub()
' txtAuftraggeberKdnr.Text = IIf(kdtxtAuftraggeber.KdNr_value > 0, kdtxtAuftraggeber.KdNr_value, "")
' End Sub
' End Sub
' Sub initKdAbsender()
' Dim dgvFindKD As New DataGridView
' dgvFindKD.Name = "dgvFindKD"
' Me.Controls.Add(dgvFindKD)
' dgvFindKD.Visible = False
' kdtxtAbsender.dgv = dgvFindKD
' kdtxtAbsender.kdNrField = txtAbsenderKdnr
' End Sub
' Sub initKdEmpfaenger()
' Dim dgvFindKD As New DataGridView
' dgvFindKD.Name = "dgvFindKD"
' Me.Controls.Add(dgvFindKD)
' dgvFindKD.Visible = False
' kdtxtEmpfaenger.dgv = dgvFindKD
' kdtxtEmpfaenger.kdNrField = txtEmpfaengerKdnr
' End Sub
' Sub initKdFrachtfuehrer()
' Dim dgvFindKD As New DataGridView
' dgvFindKD.Name = "dgvFindKD"
' Me.Controls.Add(dgvFindKD)
' dgvFindKD.Visible = False
' kdtxtFrachtfuehrer.dgv = dgvFindKD
' kdtxtFrachtfuehrer.kdNrField = txtFrachtfuehrerKdnr
' End Sub
' Sub initKdEndempfaenger()
' Dim dgvFindKD As New DataGridView
' dgvFindKD.Name = "dgvFindKD"
' Me.Controls.Add(dgvFindKD)
' dgvFindKD.Visible = False
' kdtxtEndempfaenger.dgv = dgvFindKD
' kdtxtEndempfaenger.kdNrField = txtEndempfaengerKdnr
' End Sub
Private Sub txtAbfertDat_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertDat.TextChanged
txtAbfertDatBis.Enabled = sender.text <> ""
End Sub
Private Sub MyTextBox1_TextChanged(sender As Object, e As EventArgs) Handles txtAbfertigungsnummer.TextChanged
txtAbfertigungsnummerBis.Enabled = sender.text <> ""
End Sub
Private Sub DataGridView_CellContentClick(sender As Object, e As EventArgs) Handles DataGridView.DoubleClick, DataGridView.CellContentDoubleClick
If DataGridView.SelectedRows.Count = 0 Then Exit Sub
'If tbcntr.SelectedIndex = 0 Then
Dim frmNacherfassung As New frmNacherfassungNEU
frmNacherfassung.srchFiliale = DataGridView.SelectedRows(0).Cells("FilialenNr").Value
frmNacherfassung.srchAbfertigungsnummer = DataGridView.SelectedRows(0).Cells("AbfertigungsNr").Value
frmNacherfassung.srchUnterNr = DataGridView.SelectedRows(0).Cells("UnterNr").Value
frmNacherfassung.ShowDialog(Me)
DataGridView.RELOAD()
' End If
' frmNacherfassung.showAll()
End Sub
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
Dim frmNacherfassung As New frmNacherfassungNEU
' frmNacherfassung.cboFiliale.Text = DataGridView.SelectedRows(0).Cells("FilialenNr").Value
' frmNacherfassung.txtUnterNr.Text = DataGridView.SelectedRows(0).Cells("UnterNr").Value
' frmNacherfassung.txtAbfertigungsnummer.Text = DataGridView.SelectedRows(0).Cells("AbfertigungsNr").Value
frmNacherfassung.newEntry = True
' frmNacherfassung.FMZollPersID = VERAG_PROG_ALLGEMEIN.cglobal.AktiverMitarbeiter.mit_FMZollPersID
' frmNacherfassung.initDataBinding()
frmNacherfassung.ShowDialog(Me)
DataGridView.RELOAD()
End Sub
Private Sub EintragLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragLöschenToolStripMenuItem.Click
If DataGridView.SelectedRows.Count > 0 Then
If DataGridView.SelectedRows.Count > 1 Then
MsgBox("Einträge können nur einzeln gelöscht werden!")
Exit Sub
End If
If vbYes = MsgBox("Möchten Sie den Eintrag wirklich löschen?", vbYesNoCancel) Then
Dim r As DataGridViewRow = DataGridView.SelectedRows(0)
Dim anzRechnung = SQL.getValueTxtBySql("select count(*) FROM [VERAG].[dbo].[Rechnungsausgang] where AbfertigungsNr =" & (r.Cells("AbfertigungsNr").Value) & " AND FilialenNr = " & (r.Cells("FilialenNr").Value) & " AND SpeditionsbuchUnterNr = " & (r.Cells("UnterNr").Value), "FMZOLL")
If CInt(anzRechnung) > 0 Then
MsgBox("Eintrag wurde bereits verrechnet (es existiert bereits ein Beleg " & vbNewLine & " mit dieser Abfertigungsnummer) und kann nicht gelöscht werden!")
Exit Sub
End If
Dim spb As New cSpeditionsbuch(r.Cells("FilialenNr").Value, r.Cells("AbfertigungsNr").Value, r.Cells("UnterNr").Value)
Dim arv As New cSpeditionsbucharchiv
arv.FilialenNr = spb.FilialenNr
arv.AbfertigungsNr = spb.AbfertigungsNr
arv.UnterNr = spb.UnterNr
arv.Abfertigungsdatum = spb.Abfertigungsdatum
arv.Bar = spb.Bar
arv.Fakturiert = spb.Fakturiert
arv.BelegNr = spb.BelegNr
arv.ErfassungsNr = spb.ErfassungsNr
arv.LKW_Kennzeichen = spb.LKW_Kennzeichen
arv.AnzahlZA = spb.AnzahlZA
arv.AnzahlZAFremd = spb.AnzahlZAFremd
arv.AnzahlZnV = spb.AnzahlZnV
arv.AnzahlZnVFremd = spb.AnzahlZnVFremd
arv.AnzahlT1 = spb.AnzahlT1
arv.AnzahlT2 = spb.AnzahlT2
arv.AnzahlAE = spb.AnzahlAE
arv.AnzahlCarnetTIR = spb.AnzahlCarnetTIR
arv.AnzahlBarvorlagen = spb.AnzahlBarvorlagen
arv.AnzahlSonstiges = spb.AnzahlSonstiges
arv.AnzahlGrenzgebühren = spb.AnzahlGrenzgebühren
arv.AvisUhrzeit = spb.AvisUhrzeit
arv.Vermerk = spb.Vermerk
arv.Bemerkungen = spb.Bemerkungen
arv.Währungsschlüssel = spb.Währungsschlüssel
arv.Rechnungsbetrag = spb.Rechnungsbetrag
arv.Umrechnungskurs = spb.Umrechnungskurs
arv.Packstücke = spb.Packstücke
arv.Packstücke_Zoll = spb.Packstücke_Zoll
arv.Rohmasse = spb.Rohmasse
arv.Zahlungsaufschub = spb.Zahlungsaufschub
arv.Löschen = spb.Löschen
arv.Abfertigungsart = spb.Abfertigungsart
arv.Abfertigungsanzahl = spb.Abfertigungsanzahl
arv.AbfertigungsanzahlPos = spb.AbfertigungsanzahlPos
arv.Barzahlungsbetrag = spb.Barzahlungsbetrag
arv.Sachbearbeiter = spb.Sachbearbeiter
arv.Personalnummer = spb.Personalnummer
arv.PersonalnummerQS = spb.PersonalnummerQS
arv.AtlasBezNrEZA = spb.AtlasBezNrEZA
arv.AtlasBezNrNCTS = spb.AtlasBezNrNCTS
arv.AtlasBezNrAES = spb.AtlasBezNrAES
arv.Versendungsland = spb.Versendungsland
arv.SB_CMR = spb.SB_CMR
arv.SB_CMRDatum = spb.SB_CMRDatum
arv.SB_CMRNr = spb.SB_CMRNr
arv.veoerz_basbtg = spb.veoerz_basbtg
arv.Zucker_MRN_Nr = spb.Zucker_MRN_Nr
arv.Zucker_MRN_Datum = spb.Zucker_MRN_Datum
arv.Zucker_Aufschub = spb.Zucker_Aufschub
arv.Zollsystem = spb.Zollsystem
arv.Bestimmungszollstelle = spb.Bestimmungszollstelle
arv.Bürgschaft = spb.Bürgschaft
arv.Sicherheitsbetrag = spb.Sicherheitsbetrag
arv.SgutKompl = spb.SgutKompl
arv.Bestimmungsland = spb.Bestimmungsland
arv.EuFiskalEmpfänger = spb.EuFiskalEmpfänger
arv.QKN = spb.QKN
arv.EndempfängerKundenNr = spb.EndempfängerKundenNr
arv.Endempfänger = spb.Endempfänger
arv.AvisoID = spb.AvisoID
arv.SendungID = spb.SendungID
arv.Grenzstelle = spb.Grenzstelle
arv.KdAuftragsNr = spb.KdAuftragsNr
arv.KdAuftragsNrAvisierer = spb.KdAuftragsNrAvisierer
arv.KdAuftragsNrEmpfaenger = spb.KdAuftragsNrEmpfaenger
arv.KdAuftragsNrFrachtfuehrer = spb.KdAuftragsNrFrachtfuehrer
arv.SB_Zeitstempel = spb.SB_Zeitstempel
arv.NCTS_Verzollungsadresse = spb.NCTS_Verzollungsadresse
arv.NCTS_VerzollungsadresseKdNr = spb.NCTS_VerzollungsadresseKdNr
arv.AuftraggeberBetragKassiert = spb.AuftraggeberBetragKassiert
arv.Lieferantenrechnung = spb.Lieferantenrechnung
arv.DokumentId_Steuerbeleg = spb.DokumentId_Steuerbeleg
arv.DokumentId_Mitteilung = spb.DokumentId_Mitteilung
arv.DokumentId_VBD = spb.DokumentId_VBD
arv.DokumentId_ABD = spb.DokumentId_ABD
arv.DokumentId_AVM = spb.DokumentId_AVM
arv.FilialenNrHandling = spb.FilialenNrHandling
arv.HandlingZuKassieren = spb.HandlingZuKassieren
arv.FilialenNrAbklaerung = spb.FilialenNrAbklaerung
arv.PersonalnummerAbklTR = spb.PersonalnummerAbklTR
arv.UK_EIDR_ausstehend = spb.UK_EIDR_ausstehend
arv.Zollstelle = spb.Zollstelle
arv.Zollsystem_Land = spb.Zollsystem_Land
arv.geloescht_von = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
arv.geloescht_am = Now()
arv.AvisiererKundenNr = spb.AvisiererKundenNr
arv.AbsenderKundenNr = spb.AbsenderKundenNr
arv.AbsenderOffertenNr = spb.AbsenderOffertenNr
arv.EmpfängerKundenNr = spb.EmpfängerKundenNr
arv.EmpfängerOffertenNr = spb.EmpfängerOffertenNr
arv.VermittlerKundenNr = spb.VermittlerKundenNr
arv.VermittlerOffertenNr = spb.VermittlerOffertenNr
arv.FrachtführerKundenNr = spb.FrachtführerKundenNr
If Not arv.SAVE() Then
MsgBox("Eintrag konnte nicht gelöscht werden!")
Exit Sub
End If
SQL.doSQL("DELETE FROM [Speditionsbuch] WHERE [FilialenNr]='" & r.Cells("FilialenNr").Value & "' AND [AbfertigungsNr] ='" & r.Cells("AbfertigungsNr").Value & "' AND [UnterNr]='" & r.Cells("UnterNr").Value & "' ", "FMZOLL")
DataGridView.RELOAD()
End If
End If
End Sub
Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
txtAbfertDat._value = CDate(sender.value).ToShortDateString
End Sub
Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.ValueChanged
txtAbfertDatBis._value = CDate(sender.value).ToShortDateString
End Sub
Private Sub btnMonat_Click(sender As Object, e As EventArgs) Handles btnMonat.Click
initBtns("Monat")
End Sub
Dim MONAT As Date = CDate("01." & Now.Month & "." & Now.Year) '.AddMonths(-1)
Dim srcTAG As Date = CDate(Now.ToShortDateString)
Dim JAHR As Date = CDate("01.01." & Now.Year)
Sub initBtns(MonatJahr)
btnMonat.Text = MONAT.ToString("MMMM")
btnJahr.Text = JAHR.Year
Select Case MonatJahr
Case "Monat"
DateTimePicker1.Value = MONAT
DateTimePicker2.Value = MONAT.AddMonths(1).AddDays(-1)
Case "Jahr"
' If cbxGeschaftsjahr.Checked Then
'DateTimePicker1.Value = JAHR.AddMonths(1)
' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1)
' Else
DateTimePicker1.Value = JAHR
DateTimePicker2.Value = JAHR.AddYears(1).AddDays(-1)
'End If
Case "Tag"
' If cbxGeschaftsjahr.Checked Then
'DateTimePicker1.Value = JAHR.AddMonths(1)
' DateTimePicker2.Value = JAHR.AddYears(1).AddMonths(1).AddDays(-1)
' Else
DateTimePicker1.Value = srcTAG
DateTimePicker2.Value = srcTAG
If srcTAG = Now.ToShortDateString Then
btnToday.Text = "Heute"
ElseIf srcTAG = Now.AddDays(-1).ToShortDateString Then
btnToday.Text = "Gestern"
ElseIf srcTAG = Now.AddDays(-2).ToShortDateString Then
btnToday.Text = "Vorgestern"
Else
btnToday.Text = srcTAG.ToString("dd.MM")
End If
'End If
Case ""
DateTimePicker1.Value = ("01." & Now.Month & "." & Now.Year)
DateTimePicker2.Value = Now
End Select
btnSuche.PerformClick()
End Sub
Private Sub btnJahr_Click(sender As Object, e As EventArgs) Handles btnJahr.Click
initBtns("Jahr")
End Sub
Private Sub btnBisMonat_Click(sender As Object, e As EventArgs) Handles btnBisMonat.Click
MONAT = MONAT.AddMonths(1)
initBtns("Monat")
End Sub
Private Sub btnVonMonat_Click(sender As Object, e As EventArgs) Handles btnVonMonat.Click
MONAT = MONAT.AddMonths(-1)
initBtns("Monat")
End Sub
Private Sub btnBisJahr_Click(sender As Object, e As EventArgs) Handles btnBisJahr.Click
JAHR = JAHR.AddYears(1)
initBtns("Jahr")
End Sub
Private Sub btnVonJahr_Click(sender As Object, e As EventArgs) Handles btnVonJahr.Click
JAHR = JAHR.AddYears(-1)
initBtns("Jahr")
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnDetailsuche.Click
Try
SplitContainer1.Panel2Collapsed = Not SplitContainer1.Panel2Collapsed
If SplitContainer1.Panel2Collapsed Then
' pnlSearch.Height = SplitContainer1.Panel1.Height
SplitContainer.SplitterDistance -= 200
Else
'pnlSearch.Height = SplitContainer1.Height
SplitContainer.SplitterDistance += 200
End If
If btnDetailsuche.Image Is SDL.My.Resources.Resources.pfeil_unten Then
btnDetailsuche.Image = SDL.My.Resources.Resources.pfeil_oben
Else
btnDetailsuche.Image = SDL.My.Resources.Resources.pfeil_unten
End If
Catch ex As Exception
End Try
End Sub
Private Sub FlatButton7_Click(sender As Object, e As EventArgs) Handles FlatButton7.Click
DataGridView.RELOAD()
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
srcTAG = srcTAG.AddDays(-1)
initBtns("Tag")
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
srcTAG = srcTAG.AddDays(1)
initBtns("Tag")
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnToday.Click
initBtns("Tag")
End Sub
Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV_NEW(DataGridView, False)
Me.Cursor = Cursors.Default
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Dim displayFilter = cbxFilterInBericht.Checked
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim sqlstr As String = ""
If CheckBox1.Checked Then
sqlstr &= " SELECT FilialenNr,Speditionsbuch.Abfertigungsart,Abfertigungsarten.Abfertigungsbezeichnung,sum(Abfertigungsanzahl) as Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,MIN(Abfertigungsdatum) as von, MAX(Abfertigungsdatum) as bis FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart WHERE 1=1 "
sqlstr &= getSpedBuchWhere()
sqlstr &= " group by FilialenNr,Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung "
sqlstr &= " order by FilialenNr, Speditionsbuch.Abfertigungsart"
Else
sqlstr &= " SELECT Speditionsbuch.Abfertigungsart,Abfertigungsarten.Abfertigungsbezeichnung,sum(Abfertigungsanzahl) as Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,MIN(Abfertigungsdatum) as von, MAX(Abfertigungsdatum) as bis FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart WHERE 1=1 "
sqlstr &= getSpedBuchWhere()
sqlstr &= " group by Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung "
sqlstr &= " order by Speditionsbuch.Abfertigungsart"
End If
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", , getSpedbuchList())
'DataGridView.DataSource = dt
Dim print As New frmPrintLayout
print.Text = "Speditionsbericht"
Dim rpt As New rptSpeditionsbericht
rpt.DataSource = dt
'Filter anzeigen
If displayFilter Then
rpt.lblFilterTxt.Visible = displayFilter
rpt.txtFilter.Visible = displayFilter
rpt.txtFilter.Text = generateReadableFilter(SQL.getStringReplaceScalarVar(getSpedBuchWhere, getSpedbuchList))
Else
If txtUeberschr.Text <> "" Then
rpt.txtFilter.Text = txtUeberschr.Text
rpt.txtFilter.Visible = True
rpt.lblFilterTxt.Visible = True
rpt.lblFilterTxt.Text = "Beschreibung:"
End If
End If
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH"
Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition"
Case "UNISPED" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "UNISPED Spedition"
Case "AMBAR" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "AMBAR"
Case "FRONTOFFICE" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "FRONTOFFICE"
Case "VERIMEX" : rpt.picVERAG.Image = My.Resources.verimex : rpt.Label28.Text = "VERIMEX"
Case Else
End Select
If CheckBox1.Checked Then
rpt.GroupHeader1.DataField = "FilialenNr" 'Gruppierung
End If
If rpt.DataSource.rows.count = 0 Then
rpt.Dispose() : print.Dispose()
MsgBox("Keine Daten vorhanden!")
Exit Sub
End If
Dim sum = 0
rpt.lblUeberschrift.Text = "Speditionsbericht " & txtAbfertDat.Text & " bis " & txtAbfertDatBis.Text
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
'Dim cnt As Integer = 0
rpt.lblDat.Text = Now.ToLongDateString
Dim sumAnz As Double = 0
Dim sumBar As Double = 0
If cbxSpedBerichtBar.Checked Then
rpt.lblBarzahlungsbetrag.Visible = True
rpt.lblBarTitle.Visible = True
rpt.lblSummeBar.Visible = True
Else
rpt.lblBarzahlungsbetrag.Visible = False
rpt.lblBarTitle.Visible = False
rpt.lblSummeBar.Visible = False
End If
rpt.lblFiliale.Text = "Alle Filialen"
AddHandler rpt.Detail.Format, Sub()
rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString
rpt.lblBis.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString
rpt.lblAbfAnz.Text = rpt.Fields.Item("Anzahl").Value
rpt.lblAbfArtNr.Text = If(rpt.Fields.Item("Abfertigungsart").Value Is DBNull.Value, "-", rpt.Fields.Item("Abfertigungsart").Value)
rpt.lblAbfArt.Text = If(rpt.Fields.Item("Abfertigungsbezeichnung").Value Is DBNull.Value, "-", rpt.Fields.Item("Abfertigungsbezeichnung").Value)
rpt.lblBarzahlungsbetrag.Text = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value()).ToString("C")
sumBar += CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value)
sumAnz += CDbl(rpt.Fields.Item("Anzahl").Value)
End Sub
AddHandler rpt.GroupHeader1.Format, Sub()
If CheckBox1.Checked Then rpt.lblFiliale.Text = SQL.getValueTxtBySql("SELECT CAST(FilialenNr as varchar (4)) + ' ' + Grenzstelle FROM filialen WHERE FilialenNr='" & rpt.Fields.Item("FilialenNr").Value & "'", "FMZOLL")
sumAnz = 0
sumBar = 0
End Sub
AddHandler rpt.GroupFooter1.Format, Sub()
rpt.lblSummeAnzahl.Text = sumAnz
rpt.lblSummeBar.Text = sumBar.ToString("C")
End Sub
print.Viewer.LoadDocument(rpt)
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.Show()
End If
End Sub
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles btnQSAufteilung.Click
'MsgBox("Liefer erst korrekte Daten, wenn alle NL umgestellt!")
DataGridView.Columns.Clear()
Dim sqlstr As String = ""
sqlstr &= " SELECT Aviso.[Grenzstelle], SUM(Speditionsbuch.Abfertigungsanzahl) as Anzahl FROM Speditionsbuch INNER JOIN " & AVISOSERVER & " on Aviso.avisoid=Speditionsbuch.AvisoID WHERE PersonalnummerQS is not null "
sqlstr &= " and FilialenNr NOT IN ( 4801,4802,4806 ) "
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
" GROUP BY Aviso.[Grenzstelle]" &
" ORDER BY Anzahl DESC",
"FMZOLL", , getSpedbuchList())
DataGridView.DataSource = dt
End Sub
Private Sub Button9_Click_1(sender As Object, e As EventArgs) Handles Button9.Click, Button24.Click
Dim displayFilter = cbxFilterInBericht.Checked
Dim groupByKd = cboRolle._value
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim sqlstr As String = ""
If txtMax.Text <> "" And Not IsNumeric(txtMax.Text) Then
MsgBox("Max muss eine Zahl sein!") : Exit Sub
End If
sqlstr &= " SELECT " & If(txtMax.Text <> "", " TOP " & txtMax.Text, "") & " isnull(Speditionsbuch.XXXXX,'-') as KdNr,isnull((SELECT Ordnungsbegriff FROM Adressen WHERE AdressenNr=XXXXX),'-') as Kunde, sum(Abfertigungsanzahl) as Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,MIN(Abfertigungsdatum) as von, MAX(Abfertigungsdatum) as bis FROM Speditionsbuch WHERE 1=1 "
sqlstr &= getSpedBuchWhere()
sqlstr &= " group by Speditionsbuch.XXXXX"
sqlstr &= " order by Anzahl DESC,Kunde"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr.Replace("XXXXX", groupByKd), "FMZOLL", , getSpedbuchList())
'DataGridView.DataSource = dt
If sender.name = "Button24" Then
Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDT_NEW(dt)
Me.Cursor = Cursors.Default
Else
Dim print As New frmPrintLayout
print.Text = "Speditionsbericht"
Dim rpt As New rptSpeditionsberichtKunde
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH"
Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition"
Case Else
End Select
rpt.DataSource = dt
'Filter anzeigen
If displayFilter Then
rpt.lblFilterTxt.Visible = displayFilter
rpt.txtFilter.Visible = displayFilter
rpt.txtFilter.Text = generateReadableFilter(SQL.getStringReplaceScalarVar(getSpedBuchWhere, getSpedbuchList))
Else
If txtUeberschr.Text <> "" Then
rpt.txtFilter.Text = txtUeberschr.Text
rpt.txtFilter.Visible = True
rpt.lblFilterTxt.Visible = True
rpt.lblFilterTxt.Text = "Beschreibung:"
End If
End If
If rpt.DataSource.rows.count = 0 Then
rpt.Dispose() : print.Dispose()
MsgBox("Keine Daten vorhanden!")
Exit Sub
End If
Dim sum = 0
Dim cnt = 0
rpt.lblUeberschrift.Text = "Speditionsbericht nach Kunden " & txtAbfertDat.Text & " bis " & txtAbfertDatBis.Text
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
'Dim cnt As Integer = 0
rpt.lblDat.Text = Now.ToLongDateString
Dim sumAnz As Double = 0
Dim sumBar As Double = 0
rpt.lblFiliale.Text = "Alle Filialen"
AddHandler rpt.Detail.Format, Sub()
cnt += 1
' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString
' rpt.lblBis.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString
rpt.lblNr.Text = cnt
' rpt.lblAbfArtNr.Text = rpt.Fields.Item("Abfertigungsart").Value
' rpt.lblAbfArt.Text = rpt.Fields.Item("Abfertigungsbezeichnung").Value
rpt.lblAbfAnz.Text = rpt.Fields.Item("Anzahl").Value
rpt.lblKunde.Text = CInt(If(rpt.Fields.Item("KdNr").Value, "0")).ToString("D6") & " " & rpt.Fields.Item("Kunde").Value
rpt.lblBarzahlungsbetrag.Text = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value()).ToString("C")
sumBar += CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value)
sumAnz += CDbl(rpt.Fields.Item("Anzahl").Value)
End Sub
AddHandler rpt.GroupHeader1.Format, Sub()
sumAnz = 0
sumBar = 0
End Sub
AddHandler rpt.GroupFooter1.Format, Sub()
rpt.lblSummeAnzahl.Text = sumAnz
rpt.lblSummeBar.Text = sumBar.ToString("C")
End Sub
print.Viewer.LoadDocument(rpt)
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.Show()
End If
End If
End Sub
Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
Dim displayFilter = cbxFilterInBericht.Checked
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim sqlstr As String = ""
' If CheckBox1.Checked Then
Dim sql_KdAuftragsNr = ",Speditionsbuch.KdAuftragsNr as KdAuftragsNr"
Select Case cboDetailberichtKdAtrNr._value
Case "AVISIERER" : sql_KdAuftragsNr = ",Speditionsbuch.KdAuftragsNrAvisierer as KdAuftragsNr"
Case "EMPFAENGER" : sql_KdAuftragsNr = ",Speditionsbuch.KdAuftragsNrEmpfaenger as KdAuftragsNr"
Case "FRACHTFUEHRER" : sql_KdAuftragsNr = ",Speditionsbuch.KdAuftragsNrFrachtfuehrer as KdAuftragsNr"
End Select
sqlstr &= " SELECT FilialenNr, AbfertigungsNr,UnterNr, Speditionsbuch.Abfertigungsart as Abfertigungsart ,Abfertigungsdatum, BelegNr, Rohmasse, Vermerk, Packstücke, AbsenderKundenNr, Absender, EmpfängerKundenNr, Empfänger, VermittlerKundenNr, Vermittler, "
sqlstr &= " FrachtführerKundenNr, Frachtführer, AvisiererKundenNr, Avisierer,Währungscode,Barzahlungsbetrag,Rechnungsbetrag, [LKW Kennzeichen],"
sqlstr &= " Abfertigungsanzahl, Speditionsbuch.Abfertigungsart, Abfertigungsbezeichnung,AvisoID" & sql_KdAuftragsNr & ",Speditionsbuch.KdAuftragsNrAvisierer,Speditionsbuch.KdAuftragsNrEmpfaenger,Speditionsbuch.KdAuftragsNrFrachtfuehrer, Speditionsbuch.Bemerkungen,Speditionsbuch.Zollstelle ,Speditionsbuch.Grenzstelle "
sqlstr &= " FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart "
sqlstr &= " LEFT JOIN Währungstabelle on Währungstabelle.Währungsschlüssel=speditionsbuch.Währungsschlüssel WHERE 1=1 "
sqlstr &= getSpedBuchWhere()
If CheckBox2.Checked Then : sqlstr &= " order by FilialenNr, AvisoId,Speditionsbuch.Abfertigungsart,Abfertigungsdatum"
Else : sqlstr &= " order by FilialenNr, Speditionsbuch.Abfertigungsart,Abfertigungsdatum"
End If
' MsgBox(sqlstr)
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", , getSpedbuchList())
'DataGridView.DataSource = dt
Dim print As New frmPrintLayout
print.Text = "Speditionsbericht"
Dim rpt As New rptSpeditionsberichtKdSpez
rpt.PageSettings.PaperKind = GrapeCity.ActiveReports.Printing.PaperKind.A4
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH"
Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition"
Case "VERIMEX" : rpt.picVERAG.Image = My.Resources.verimex : rpt.Label28.Text = "VERIMEX"
Case Else
End Select
rpt.DataSource = dt
'Filter anzeigen
If displayFilter Then
rpt.lblFilterTxt.Visible = displayFilter
rpt.txtFilter.Visible = displayFilter
rpt.txtFilter.Text = generateReadableFilter(SQL.getStringReplaceScalarVar(getSpedBuchWhere, getSpedbuchList))
Else
If txtUeberschr.Text <> "" Then
rpt.txtFilter.Text = txtUeberschr.Text
rpt.txtFilter.Visible = True
rpt.lblFilterTxt.Visible = True
rpt.lblFilterTxt.Text = "Beschreibung:"
End If
End If
Dim Zahlungsdetails = cbxRptDetailsZahlungsdetails.Checked
rpt.lblBarTital.Visible = Zahlungsdetails
rpt.lblBarzahlungsbetrag.Visible = Zahlungsdetails
rpt.lblGesGesSumBarzahlungsbetrag.Visible = Zahlungsdetails
rpt.lblGesSumBarzahlungsbetrag.Visible = Zahlungsdetails
rpt.lblGesSumRechnungsbetrag.Visible = Zahlungsdetails
rpt.lblGesGesSumRechnungsbetrag.Visible = Zahlungsdetails
rpt.Label43.Visible = Zahlungsdetails
rpt.Label43.Visible = Zahlungsdetails
rpt.Label34.Visible = Zahlungsdetails
rpt.Label35.Visible = Zahlungsdetails
rpt.Label13.Visible = Zahlungsdetails
rpt.Label17.Visible = Zahlungsdetails
rpt.lblSumRechnungsbetrag.Visible = Zahlungsdetails
rpt.lblSumBarzahlungsbetrag.Visible = Zahlungsdetails
rpt.Label19.Visible = Zahlungsdetails
rpt.Label39.Visible = Zahlungsdetails
rpt.Label46.Visible = Zahlungsdetails
rpt.Label47.Visible = Zahlungsdetails
rpt.lblGesWaehrung.Visible = Zahlungsdetails
rpt.lblGesgesWaehrung.Visible = Zahlungsdetails
If CheckBox1.Checked Then
rpt.GroupHeader1.DataField = "FilialenNr" 'Gruppierung
Else
rpt.lblFiliale.Text = "Alle Filialen"
rpt.GroupFooter1.Visible = False ' Sonst doppelete Summe
End If
If CheckBox2.Checked Then
rpt.GroupHeader3.DataField = "AvisoId" 'Gruppierung
rpt.lblGesSumLKWsFilialeAnzahl.Visible = True
rpt.lblSumFilialeLKWs.Visible = True
rpt.lblGesGesSumLKWsAnzahl.Visible = True
rpt.lblGesGesSumLKWs.Visible = True
Else
rpt.GroupHeader3.Visible = False ' Sonst doppelete Summe
rpt.GroupFooter3.Visible = False ' Sonst doppelete Summe
rpt.lblGesGesSumLKWsAnzahl.Visible = False
rpt.lblGesGesSumLKWs.Visible = False
End If
If CheckBox3.Checked Then
rpt.GroupHeader2.DataField = "Abfertigungsart" 'Gruppierung
Else
rpt.GroupHeader2.Visible = False ' Sonst doppelete Summe
rpt.GroupFooter2.Visible = False ' Sonst doppelete Summe
End If
' rpt.GroupHeader2.DataField = "AvisoId" 'Gruppierung
' MsgBox(rpt.DataSource.rows.count)
If rpt.DataSource.rows.count = 0 Then
rpt.Dispose() : print.Dispose()
MsgBox("Keine Daten vorhanden!")
Exit Sub
End If
Dim AvsioIdNull As String = ""
For Each r In rpt.DataSource.rows
If r("AvisoId") Is DBNull.Value OrElse r("AvisoId") <= 0 Then
AvsioIdNull &= r("FilialenNr") & " " & r("AbfertigungsNr") & " " & r("UnterNr") & " - " & r("Abfertigungsdatum") & " - " & r("LKW Kennzeichen") & vbNewLine
End If
Next
If AvsioIdNull <> "" Then
MsgBox("Achtung: folgende Sendungen sind keinem LKW/Aviso zugeordnet:" & vbNewLine & AvsioIdNull)
End If
Dim sum = 0
rpt.lblUeberschrift.Text = "Speditionsbuch Details " & txtAbfertDat.Text & " bis " & txtAbfertDatBis.Text
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
'Dim cnt As Integer = 0
rpt.lblDat.Text = Now.ToLongDateString
Dim sumAnz As Double = 0
Dim sumBar As Double = 0
Dim sumRg As Double = 0
Dim gesSumAnz As Double = 0
Dim gesSumBar As Double = 0
Dim gesSumRg As Double = 0
Dim gesgesSumAnz As Double = 0
Dim gesgesSumBar As Double = 0
Dim gesgesSumRg As Double = 0
Dim SumAnzLKW As Double = 0
Dim gesSumAnzLKW As Double = 0
Dim gesgesSumAnzLKW As Double = 0
Dim sumAbfBez = ""
Dim gesFilBez = ""
' Dim gesgesAbfBez = ""
AddHandler rpt.Detail.Format, Sub()
' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString
' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString
rpt.lblPosNr.Text = rpt.Fields.Item("FilialenNr").Value & " " & rpt.Fields.Item("AbfertigungsNr").Value & " " & rpt.Fields.Item("UnterNr").Value
rpt.lblAbfDatum.Text = "Abf.Datum: " & rpt.Fields.Item("Abfertigungsdatum").Value
rpt.lblBezugsNr.Text = checkNull(rpt.Fields.Item("BelegNr").Value)
rpt.lblRohmasse.Text = "Rohmasse: " & checkNull(rpt.Fields.Item("Rohmasse").Value, "0") & "kg"
rpt.txtVermerk.Text = checkNull(rpt.Fields.Item("Vermerk").Value)
rpt.txtPackstücke.Text = checkNull(rpt.Fields.Item("Packstücke").Value)
If cbxSpedDetailBem.Checked Then
If checkNull(rpt.Fields.Item("Bemerkungen").Value) <> "" Then
rpt.txtPackstücke.Text = (rpt.txtPackstücke.Text & vbNewLine & vbNewLine & checkNull(rpt.Fields.Item("Bemerkungen").Value)).trim
End If
End If
If rpt.txtPackstücke.Text.Length > 550 Then
rpt.txtPackstücke.Text = rpt.txtPackstücke.Text.Substring(0, 550) & "..."
End If
rpt.Label11.Text = ""
If rpt.Fields.Item("Grenzstelle").Value IsNot Nothing AndAlso rpt.Fields.Item("Grenzstelle").Value IsNot DBNull.Value Then
If rpt.Fields.Item("Grenzstelle").Value.Replace("???", "").Replace("WO_FREMD", "") = "" Then
rpt.Label11.Text = SQL.getValueTxtBySql("SELECT Code +' - ' + [Description] FROM tbl_DY_ZollDE_C0141_Zollstellen WHERE Code='" & If(rpt.Fields.Item("Zollstelle").Value, "") & "' AND ((StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE()))", "FMZOLL")
Else
Dim GRZ As New VERAG_PROG_ALLGEMEIN.cGrenzstelle(rpt.Fields.Item("Grenzstelle").Value)
If GRZ IsNot Nothing AndAlso GRZ.hasEntry Then
rpt.Label11.Text = If(GRZ.grz_ZollamtDST, "") & " " & If(GRZ.grz_ZollamtBezeichnung, "") & vbNewLine & rpt.Fields.Item("Grenzstelle").Value
End If
End If
End If
rpt.lblAbsKdNr.Text = checkNull(rpt.Fields.Item("AbsenderKundenNr").Value)
rpt.lblAbs.Text = checkNull(rpt.Fields.Item("Absender").Value)
rpt.lblEmpfKdNr.Text = checkNull(rpt.Fields.Item("EmpfängerKundenNr").Value)
rpt.lblEmpf.Text = checkNull(rpt.Fields.Item("Empfänger").Value)
rpt.lblAuftrKdNr.Text = checkNull(rpt.Fields.Item("VermittlerKundenNr").Value)
rpt.lblAuftr.Text = checkNull(rpt.Fields.Item("Vermittler").Value)
rpt.lblFrachtfKdNr.Text = checkNull(rpt.Fields.Item("FrachtführerKundenNr").Value)
rpt.lblFrachtf.Text = checkNull(rpt.Fields.Item("Frachtführer").Value)
' rpt.lblLKWNr.Text = rpt.Fields.Item("AvisiererKundenNr").Value
' rpt.lblLKWNr.Text = rpt.Fields.Item("Avisierer").Value
rpt.lblWaehrung.Text = checkNull(rpt.Fields.Item("Währungscode").Value)
'lblGesgesWaehrung.te
rpt.lblKdAuftragNr.Text = checkNull(rpt.Fields.Item("KdAuftragsNr").Value)
If rpt.lblKdAuftragNr.Text <> "" Then rpt.lblKdAuftragNr.Text = "Auftrag: " & rpt.lblKdAuftragNr.Text
Dim bar As Double = 0
Dim rg As Double = 0
Dim anz As Double = 0
If IsNumeric(checkNull(rpt.Fields.Item("Barzahlungsbetrag").Value)) Then bar = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value())
If IsNumeric(checkNull(rpt.Fields.Item("Rechnungsbetrag").Value)) Then rg = CDbl(rpt.Fields.Item("Rechnungsbetrag").Value())
rpt.lblBarzahlungsbetrag.Text = CDbl(bar).ToString("N2", CultureInfo.CurrentCulture)
rpt.lblRechnungsBetrag.Text = CDbl(rg).ToString("N2", Globalization.CultureInfo.CurrentCulture)
' rpt.lblRechnungsbetragInEur.Text = rpt.Fields.Item("Rechnungsbetrag").Value * rpt.Fields.Item("Umrechnungskurs").Value
rpt.lblLKWNr.Text = checkNull(rpt.Fields.Item("LKW Kennzeichen").Value)
rpt.lblAnzahl.Text = checkNull(rpt.Fields.Item("Abfertigungsanzahl").Value)
rpt.lblAbfertigungsart.Text = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
' rpt.lblAbs.Text = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
' rpt.lblBarzahlungsbetrag.Text = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value()).ToString("C")
'sumBar += CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value)
If IsNumeric(checkNull(rpt.Fields.Item("Abfertigungsanzahl").Value)) Then anz = CDbl(rpt.Fields.Item("Abfertigungsanzahl").Value)
sumAbfBez = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
sumBar += bar
sumRg += rg
sumAnz += anz
gesSumAnz += anz
gesSumBar += bar
gesSumRg += rg
gesgesSumAnz += anz
gesgesSumBar += bar
gesgesSumRg += rg
SumAnzLKW += anz
End Sub
AddHandler rpt.GroupHeader1.Format, Sub()
If CheckBox1.Checked Then
rpt.lblFiliale.Text = SQL.getValueTxtBySql("SELECT CAST(FilialenNr as varchar (4)) + ' ' + Grenzstelle FROM filialen WHERE FilialenNr='" & rpt.Fields.Item("FilialenNr").Value & "'", "FMZOLL")
rpt.lblGesSumFilialeBez.Text = rpt.lblFiliale.Text
Else
rpt.lblFiliale.Text = "Alle Filialen"
End If
gesSumAnz = 0
gesSumBar = 0
gesSumRg = 0
gesSumAnzLKW = 0
End Sub
AddHandler rpt.GroupHeader2.Format, Sub()
rpt.lblAbfertigungsartHeader.Text = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
sumBar = 0
sumRg = 0
sumAnz = 0
End Sub
AddHandler rpt.GroupHeader3.Format, Sub()
rpt.lblLKW.Text = "LKW: " & If(rpt.Fields.Item("LKW Kennzeichen").Value Is DBNull.Value, "LKW: - keine Zuordnung -", checkNull(rpt.Fields.Item("LKW Kennzeichen").Value))
rpt.lblGesSumLKWBez.Text = "LKW: " & If(rpt.Fields.Item("LKW Kennzeichen").Value Is DBNull.Value, "LKW: - keine Zuordnung -", checkNull(rpt.Fields.Item("LKW Kennzeichen").Value))
SumAnzLKW = 0
gesSumAnzLKW += 1
gesgesSumAnzLKW += 1
End Sub
AddHandler rpt.GroupFooter2.Format, Sub()
rpt.lblSumAbfertigungsart.Text = sumAbfBez
rpt.lblSumBarzahlungsbetrag.Text = sumBar.ToString("N2", CultureInfo.CurrentCulture)
rpt.lblSumRechnungsbetrag.Text = sumRg.ToString("N2", CultureInfo.CurrentCulture)
rpt.lblSumAnzahl.Text = sumAnz.ToString("N0")
'rpt.lblSuag.Text = sumRg.ToString("C")
End Sub
AddHandler rpt.GroupFooter3.Format, Sub()
rpt.lblGesSumAnzahlLKW.Text = SumAnzLKW
'rpt.lblSuag.Text = sumRg.ToString("C")
End Sub
AddHandler rpt.GroupFooter1.Format, Sub()
' If CheckBox1.Checked Then
' rpt.lblGesSumFilialeBez.Text = SQL.getValueTxtBySql("SELECT CAST(FilialenNr as varchar (4)) + ' ' + Grenzstelle FROM filialen WHERE FilialenNr='" & rpt.Fields.Item("FilialenNr").Value & "'", "FMZOLL")
' Else
' rpt.lblGesSumFilialeBez.Text = ""
' End If
rpt.lblGesSumBarzahlungsbetrag.Text = gesSumBar.ToString("N2", CultureInfo.CurrentCulture)
rpt.lblGesSumRechnungsbetrag.Text = gesSumRg.ToString("N2", CultureInfo.CurrentCulture)
rpt.lblGesSumAnzahl.Text = gesSumAnz.ToString("N0")
rpt.lblGesSumLKWsFilialeAnzahl.Text = gesSumAnzLKW
End Sub
AddHandler rpt.ReportFooter1.Format, Sub()
rpt.lblGesGesSumBarzahlungsbetrag.Text = gesgesSumBar.ToString("N2", CultureInfo.CurrentCulture)
rpt.lblGesGesSumRechnungsbetrag.Text = gesgesSumRg.ToString("N2", CultureInfo.CurrentCulture)
rpt.lblGesGesSumAnzahl.Text = gesgesSumAnz.ToString("N0")
rpt.lblGesGesSumLKWsAnzahl.Text = gesgesSumAnzLKW
End Sub
print.Viewer.LoadDocument(rpt)
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.Show()
End If
End Sub
Function checkNull(o As Object, Optional ret As String = "") As Object
If o Is Nothing Then Return ret
If o Is DBNull.Value Then Return ret
Return o
End Function
Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
'MsgBox("Liefer erst korrekte Daten, wenn alle NL umgestellt!")
DataGridView.Columns.Clear()
Dim sqlstr As String = ""
sqlstr &= " select SUM(Speditionsbuch.Abfertigungsanzahl) as Anzahl ,[Grenzstelle] from Speditionsbuch WHERE 1=1 "
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() & " GROUP BY [Grenzstelle] order by Anzahl desc ",
"FMZOLL", , getSpedbuchList())
DataGridView.DataSource = dt
End Sub
Private Sub Button15_Click(sender As Object, e As EventArgs) Handles btnCSAufteilung.Click
'MsgBox("Liefer erst korrekte Daten, wenn alle NL umgestellt!")
DataGridView.Columns.Clear()
Dim sqlstr As String = ""
sqlstr &= " SELECT Aviso.[Grenzstelle], SUM(Speditionsbuch.Abfertigungsanzahl) as Anzahl FROM Speditionsbuch INNER JOIN " & AVISOSERVER & " on Aviso.avisoid=Speditionsbuch.AvisoID WHERE Abfertigungsart IN (26,28) "
sqlstr &= " AND Aviso.[Grenzstelle] <> 'SFD' and FilialenNr NOT IN ( 4801,4802,4806 ) "
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
" GROUP BY Aviso.[Grenzstelle]" &
" ORDER BY Anzahl DESC",
"FMZOLL", , getSpedbuchList())
DataGridView.DataSource = dt
End Sub
Private Sub tbcntr_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tbcntr.SelectedIndexChanged
btnSuche.PerformClick()
End Sub
Private Sub DataGridView_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView.ColumnHeaderMouseClick
If e.Button = Windows.Forms.MouseButtons.Right Then
End If
End Sub
Private Sub cbxOderEmpfanger_CheckedChanged(sender As Object, e As EventArgs) Handles cbxOderEmpfanger.CheckedChanged
kdtxtEmpfaenger.Enabled = Not cbxOderEmpfanger.Checked
End Sub
Private Sub Button15_Click_1(sender As Object, e As EventArgs) Handles Button15.Click
Try
If DataGridView.SelectedRows.Count = 0 Then Exit Sub
If Not IsNumeric(DataGridView.SelectedRows(0).Cells("FilialenNr").Value) Then Exit Sub
If Not IsNumeric(DataGridView.SelectedRows(0).Cells("AbfertigungsNr").Value) Then Exit Sub
cProgramFunctions.openThereforeNavigator(DataGridView.SelectedRows(0).Cells("FilialenNr").Value.ToString & DataGridView.SelectedRows(0).Cells("AbfertigungsNr").Value.ToString, DataGridView.SelectedRows(0).Cells("FilialenNr").Value)
Catch ex As Exception
MsgBox("Fehler beim Öffnen!" & vbNewLine & ex.Message & ex.StackTrace)
End Try
End Sub
Private Sub cbxFilterInBericht_CheckedChanged(sender As Object, e As EventArgs) Handles cbxFilterInBericht.CheckedChanged
txtUeberschr.Enabled = Not cbxFilterInBericht.Checked
End Sub
Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ATILLA_VERWALTUNG", "AVISO") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim f As New Form
Dim u As New SDL.usrCntlBrgBuchungenFremd
f.Size = New Size(720, 185)
f.Icon = Me.FindForm.Icon
u.Dock = DockStyle.Fill
f.Controls.Add(u)
f.StartPosition = FormStartPosition.CenterScreen
f.Show(Me)
End If
End Sub
Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ATILLA_VERWALTUNG", "AVISO") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim f As New Form
Dim u As New SDL.usrCntlBrgBuchungenVERAG
f.Size = New Size(720, 185)
f.Icon = Me.FindForm.Icon
u.Dock = DockStyle.Fill
f.Controls.Add(u)
f.StartPosition = FormStartPosition.CenterScreen
f.Show(Me)
End If
End Sub
Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
Dim kdnrTmp = -1
Dim FirmaTmp = ""
If kdtxtAuftraggeber.KdNr_value > 0 Then kdnrTmp = kdtxtAuftraggeber.KdNr_value : FirmaTmp = kdtxtAuftraggeber.Text
If kdtxtEmpfaenger.KdNr_value > 0 Then kdnrTmp = kdtxtEmpfaenger.KdNr_value : FirmaTmp = kdtxtEmpfaenger.Text
If kdtxtEndempfaenger.KdNr_value > 0 Then kdnrTmp = kdtxtEndempfaenger.KdNr_value : FirmaTmp = kdtxtEndempfaenger.Text
If kdtxtAvisierer.KdNr_value > 0 Then kdnrTmp = kdtxtAvisierer.KdNr_value : FirmaTmp = kdtxtAvisierer.Text
Dim VBNr = -1
FirmaTmp = FirmaTmp.Replace("*", "").Replace("/", "").Replace(";", "").Replace(",", "").Replace("&", "").Replace("?", "")
Dim path = getGelangensbestätigung(FirmaTmp, kdnrTmp,, VBNr)
If path <> "" Then
SDL.FormularManagerNEU.OPEN_FORM(SDL.FormularManagerArten.Gelangensbestaetigung, kdnrTmp, {kdnrTmp, path, VBNr})
End If
End Sub
Function getrHandlingAussenstellen(Optional showDok As Boolean = True, Optional Handlingssatz As String = "", Optional whereOpt As String = "", Optional ignoreFiliale As Boolean = False) 'Firma As String, kdnrTmp As Integer, Optional showDok As Boolean = False, Optional ByRef VBNr As Integer = -1) As String
Dim displayFilter = cbxFilterInBericht.Checked
If ignoreFiliale Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim sqlstr As String = ""
' If CheckBox1.Checked Then
Dim sql_KdAuftragsNr = "" '",Speditionsbuch.KdAuftragsNr as KdAuftragsNr"
'sqlstr &= " SELECT FilialenNr, AbfertigungsNr,UnterNr, Speditionsbuch.Abfertigungsart as Abfertigungsart ,Abfertigungsdatum, BelegNr, Rohmasse, Vermerk, Packstücke, AbsenderKundenNr, Absender, EmpfängerKundenNr, Empfänger,EndEmpfänger,EndEmpfängerKundenNr, VermittlerKundenNr, Vermittler, "
'sqlstr &= " FrachtführerKundenNr, Frachtführer, AvisiererKundenNr, Avisierer,Währungscode,Barzahlungsbetrag,Rechnungsbetrag, [LKW Kennzeichen],"
'sqlstr &= " Abfertigungsanzahl, Speditionsbuch.Abfertigungsart, Abfertigungsbezeichnung,AvisoID" & sql_KdAuftragsNr & ",Speditionsbuch.KdAuftragsNrAvisierer,Speditionsbuch.KdAuftragsNrEmpfaenger,Speditionsbuch.KdAuftragsNrFrachtfuehrer, Speditionsbuch.Bemerkungen "
sqlstr &= " SELECT Speditionsbuch.*,Abfertigungsbezeichnung"
sqlstr &= " FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart "
sqlstr &= " WHERE 1=1 "
sqlstr &= getSpedBuchWhere(ignoreFiliale)
sqlstr &= whereOpt
' sqlstr &= " order by FilialenNr, AvisoId,Speditionsbuch.Abfertigungsart,Abfertigungsdatum"
sqlstr &= " order by Speditionsbuch.Abfertigungsart,FilialenNr,Abfertigungsdatum"
' MsgBox(sqlstr)
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", , getSpedbuchList())
Dim header = "Handling / Front-Office "
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : header &= "IMEX Customs Service GmbH"
Case "ATILLA" : header &= "ATILLA Spedition"
Case "AMBAR" : header = "AMBAR Logistc Services GmbH - Handling / AMBAR Bad Reichenhall"
Case Else
End Select
If vbYes = MsgBox("Möchten Sie den Bericht ZUSÄTZLICH als Excel exportieren?", vbYesNoCancel) Then
cProgramFunctions.genExcelFromDT_NEW(dt,,, header)
End If
Dim print As New frmPrintLayout
print.Text = "Handling / Front-Office"
Dim rpt As New rptSpeditionsbericht_HandlingAussenstellen
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH"
Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition"
Case "AMBAR" : rpt.picVERAG.Image = My.Resources.ambar_simple : rpt.Label28.Text = "AMBAR Logistc Services GmbH" : print.Text = "Handling / AMBAR Bad Reichenhall"
Case Else
End Select
rpt.DataSource = dt
If CheckBox1.Checked Then
rpt.GroupHeader1.DataField = "Abfertigungsart" 'Gruppierung
End If
If rpt.DataSource.rows.count = 0 Then
rpt.Dispose() : print.Dispose()
MsgBox("Keine Daten vorhanden!")
Return ""
End If
Dim sum = 0
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
Dim defaultHandlingPreis As Double = 15
Dim HandlingList As VERAG_PROG_ALLGEMEIN.cHandlingssaetzeInternLIST = Nothing
If Handlingssatz <> "" Then
HandlingList = New VERAG_PROG_ALLGEMEIN.cHandlingssaetzeInternLIST(Handlingssatz)
End If
'Dim cnt As Integer = 0
rpt.lblDat.Text = Now.ToLongDateString
'Dim sumRg As Double = 0
'Dim gesSumAnz As Double = 0
'Dim gesSumBar As Double = 0
'Dim gesSumRg As Double = 0
'Dim gesgesSumAnz As Double = 0
'Dim gesgesSumBar As Double = 0
'Dim gesgesSumRg As Double = 0
'Dim SumAnzLKW As Double = 0
'Dim gesSumAnzLKW As Double = 0
'Dim gesgesSumAnzLKW As Double = 0
Dim gesAnz As Double = 0
Dim gesBar As Double = 0
Dim geshandling As Double = 0
Dim geszukassBAR As Double = 0
Dim sumAnz As Double = 0
Dim sumBar As Double = 0
Dim sumhandling As Double = 0
Dim sumzukassBAR As Double = 0
Dim sumAbfBez = ""
Dim gesFilBez = ""
' Dim gesgesAbfBez = ""
Dim SumText = ""
AddHandler rpt.Detail.Format, Sub()
' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString
' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString
rpt.lblPosNr.Text = rpt.Fields.Item("FilialenNr").Value & " " & rpt.Fields.Item("AbfertigungsNr").Value & " " & rpt.Fields.Item("UnterNr").Value
rpt.lblAbfDatum.Text = rpt.Fields.Item("Abfertigungsdatum").Value
rpt.lblEndEmpfKdNr.Text = checkNull(rpt.Fields.Item("EmpfängerKundenNr").Value)
rpt.lblEndEmpf.Text = checkNull(rpt.Fields.Item("Empfänger").Value)
Dim bar As Double = 0
Dim handling As Double = 0
Dim zukassBAR As Double = 0
' Dim rg As Double = 0
Dim anz As Double = 0
If IsNumeric(checkNull(rpt.Fields.Item("Barzahlungsbetrag").Value)) Then bar = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value())
If IsNumeric(checkNull(rpt.Fields.Item("HandlingZuKassieren").Value)) Then zukassBAR = CDbl(rpt.Fields.Item("HandlingZuKassieren").Value())
' If IsNumeric(checkNull(rpt.Fields.Item("Rechnungsbetrag").Value)) Then rg = CDbl(rpt.Fields.Item("Rechnungsbetrag").Value())
If IsNumeric(checkNull(rpt.Fields.Item("Abfertigungsanzahl").Value)) Then anz = CDbl(rpt.Fields.Item("Abfertigungsanzahl").Value)
Dim Abfertigungsart = checkNull(rpt.Fields.Item("Abfertigungsart").Value)
handling = getHandlingKostByListe(Abfertigungsart, defaultHandlingPreis, HandlingList) * anz
' rpt.lblLKWNr.Text = checkNull(rpt.Fields.Item("LKW Kennzeichen").Value)
rpt.lblAnzahl.Text = checkNull(rpt.Fields.Item("Abfertigungsanzahl").Value)
rpt.lblAbfertigungsart.Text = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
' rpt.lblAbs.Text = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
rpt.lblBarzahlungsbetrag.Text = CDbl(bar).ToString("C2")
rpt.lblzuKassierenHandling.Text = CDbl(zukassBAR).ToString("C2")
rpt.lblHandlingsgebuehr.Text = CDbl(handling).ToString("C2")
'sumBar += CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value)
sumAbfBez = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "AMBAR"
rpt.lblBarzahlungsbetrag.Visible = False
rpt.lblzuKassierenHandling.Visible = False
End Select
sumAnz += anz
sumBar += bar
sumhandling += handling
sumzukassBAR += zukassBAR
gesAnz += anz
gesBar += bar
geshandling += handling
geszukassBAR += zukassBAR
End Sub
Dim bezeichnung = ""
AddHandler rpt.ReportFooter1.Format, Sub()
rpt.lblGesGesSumAnzahl.Text = sumAnz.ToString("N0")
rpt.lblSumBarzahlungsbetrag.Text = sumBar.ToString("N2")
rpt.lblSumzuKassierenHandling.Text = sumzukassBAR.ToString("N2")
rpt.lblSumHandlingsgebuehr.Text = sumhandling.ToString("N2")
rpt.txtUebersicht.Text = SumText
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "AMBAR"
rpt.lblSumBarzahlungsbetrag.Visible = False
rpt.lblSumzuKassierenHandling.Visible = False
End Select
End Sub
AddHandler rpt.GroupHeader1.Format, Sub()
rpt.lblAbfArtUeberschrift.Text = checkNull(rpt.Fields.Item("Abfertigungsart").Value) & " - " & checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
bezeichnung = rpt.lblAbfArtUeberschrift.Text
gesAnz = 0
gesBar = 0
geshandling = 0
geszukassBAR = 0
End Sub
AddHandler rpt.GroupFooter1.Format, Sub()
rpt.lblGesSumAnzahl.Text = gesAnz.ToString("N0")
rpt.lblGesBarzahlungsbetrag.Text = gesBar.ToString("N2")
rpt.lblGeszuKassierenHandling.Text = geszukassBAR.ToString("N2")
rpt.lblGesHandlingsgebuehr.Text = geshandling.ToString("N2")
SumText &= gesAnz.ToString("N0") & vbTab & bezeichnung & vbNewLine
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "AMBAR"
rpt.lblGesBarzahlungsbetrag.Visible = False
rpt.lblGeszuKassierenHandling.Visible = False
End Select
End Sub
If showDok Then
print.Viewer.LoadDocument(rpt)
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.Show()
Else
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("HandlingFO.pdf", ".pdf", True, False)
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
rpt.Run(False)
p.NeverEmbedFonts = ""
p.Export(rpt.Document, tmpPath)
rpt.Dispose()
Return tmpPath
End If
End If
Return ""
End Function
Function getHandlingKostByListe(AbfertigungsArt As Integer, defaultHandlingPreis As Double, HandlingList As VERAG_PROG_ALLGEMEIN.cHandlingssaetzeInternLIST) As Double
If HandlingList IsNot Nothing AndAlso HandlingList.LIST IsNot Nothing Then
For Each h In HandlingList.LIST
If h.hs_Abfertigungsart = AbfertigungsArt Then Return h.hs_Preis
If h.hs_Abfertigungsart Is Nothing Then defaultHandlingPreis = h.hs_Preis
Next
End If
Return defaultHandlingPreis
End Function
Function getGelangensbestätigung(Firma As String, kdnrTmp As Integer, Optional showDok As Boolean = False, Optional ByRef VBNr As Integer = -1) As String
Dim displayFilter = cbxFilterInBericht.Checked
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim sqlstr As String = ""
' If CheckBox1.Checked Then
Dim sql_KdAuftragsNr = "" '",Speditionsbuch.KdAuftragsNr as KdAuftragsNr"
sqlstr &= " SELECT FilialenNr, AbfertigungsNr,UnterNr, Speditionsbuch.Abfertigungsart as Abfertigungsart ,Abfertigungsdatum, BelegNr, Rohmasse, Vermerk, Packstücke, AbsenderKundenNr, Absender, EmpfängerKundenNr, Empfänger,EndEmpfänger,EndEmpfängerKundenNr, VermittlerKundenNr, Vermittler, "
sqlstr &= " FrachtführerKundenNr, Frachtführer, AvisiererKundenNr, Avisierer,Währungscode,Barzahlungsbetrag,Rechnungsbetrag, [LKW Kennzeichen],"
sqlstr &= " Abfertigungsanzahl, Speditionsbuch.Abfertigungsart, Abfertigungsbezeichnung,AvisoID" & sql_KdAuftragsNr & ",Speditionsbuch.KdAuftragsNrAvisierer,Speditionsbuch.KdAuftragsNrEmpfaenger,Speditionsbuch.KdAuftragsNrFrachtfuehrer, Speditionsbuch.Bemerkungen "
sqlstr &= " FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart "
sqlstr &= " LEFT JOIN Währungstabelle on Währungstabelle.Währungsschlüssel=speditionsbuch.Währungsschlüssel WHERE 1=1 "
sqlstr &= getSpedBuchWhere()
' sqlstr &= " order by FilialenNr, AvisoId,Speditionsbuch.Abfertigungsart,Abfertigungsdatum"
sqlstr &= " order by FilialenNr, Speditionsbuch.Abfertigungsart,Abfertigungsdatum"
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", , getSpedbuchList())
Dim print As New frmPrintLayout
print.Text = "Gelangensbestätigung"
Dim rpt As New rptSpeditionsbericht_Gelangensbestaetigung
Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH"
Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition"
Case Else
End Select
rpt.DataSource = dt
If rpt.DataSource.rows.count = 0 Then
rpt.Dispose() : print.Dispose()
MsgBox("Keine Daten vorhanden!")
Return ""
End If
If vbYes = MsgBox("Neue Gelangensbestätigungs-Nr. vergeben?", MsgBoxStyle.YesNo) Then
Dim GBST = New VERAG_PROG_ALLGEMEIN.cGelangensbestaetigung(Firma, kdnrTmp)
If GBST.SAVE Then
rpt.lblNr.Text = GBST.gb_nr
VBNr = GBST.gb_nr
Dim barcode As Image = Code128Rendering.MakeBarcodeImage("/VBNR-" & VBNr & "/", 1, True, 25)
rpt.Picture1.Image = barcode
'Gelangensbestätigungs/Verbringungsnachweis-Nr. speichern:
SQL.doSQLVarList("UPDATE Speditionsbuch SET SB_CMRNr='" & VBNr & "' WHERE 1=1 " & getSpedBuchWhere(), "FMZOLL",, getSpedbuchList())
End If
Else
rpt.Label17.Visible = False
End If
Dim AvsioIdNull As String = ""
For Each r In rpt.DataSource.rows
If r("AvisoId") Is DBNull.Value OrElse r("AvisoId") <= 0 Then
AvsioIdNull &= r("FilialenNr") & " " & r("AbfertigungsNr") & " " & r("UnterNr") & " - " & r("Abfertigungsdatum") & " - " & r("LKW Kennzeichen") & vbNewLine
End If
Next
If AvsioIdNull <> "" Then
MsgBox("Achtung: folgende Sendungen sind keinem LKW/Aviso zugeordnet:" & vbNewLine & AvsioIdNull)
End If
Dim sum = 0
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
'Dim cnt As Integer = 0
rpt.lblDat.Text = Now.ToLongDateString
Dim sumAnz As Double = 0
Dim sumBar As Double = 0
Dim sumRg As Double = 0
Dim gesSumAnz As Double = 0
Dim gesSumBar As Double = 0
Dim gesSumRg As Double = 0
Dim gesgesSumAnz As Double = 0
Dim gesgesSumBar As Double = 0
Dim gesgesSumRg As Double = 0
Dim SumAnzLKW As Double = 0
Dim gesSumAnzLKW As Double = 0
Dim gesgesSumAnzLKW As Double = 0
Dim sumAbfBez = ""
Dim gesFilBez = ""
' Dim gesgesAbfBez = ""
AddHandler rpt.Detail.Format, Sub()
' rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString
' rpt.lblLKWNr.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString
rpt.lblPosNr.Text = rpt.Fields.Item("FilialenNr").Value & " " & rpt.Fields.Item("AbfertigungsNr").Value & " " & rpt.Fields.Item("UnterNr").Value
rpt.lblAbfDatum.Text = "Datum: " & rpt.Fields.Item("Abfertigungsdatum").Value
rpt.lblBezugsNr.Text = checkNull(rpt.Fields.Item("BelegNr").Value)
rpt.lblRohmasse.Text = "Rohmasse: " & checkNull(rpt.Fields.Item("Rohmasse").Value, "0") & "kg"
rpt.txtVermerk.Text = checkNull(rpt.Fields.Item("Vermerk").Value)
rpt.txtPackstücke.Text = checkNull(rpt.Fields.Item("Packstücke").Value)
If cbxSpedDetailBem.Checked Then
If checkNull(rpt.Fields.Item("Bemerkungen").Value) <> "" Then
rpt.txtPackstücke.Text = (rpt.txtPackstücke.Text & vbNewLine & vbNewLine & checkNull(rpt.Fields.Item("Bemerkungen").Value)).trim
End If
End If
rpt.lblAbsKdNr.Text = checkNull(rpt.Fields.Item("AbsenderKundenNr").Value)
rpt.lblAbs.Text = checkNull(rpt.Fields.Item("Absender").Value)
rpt.lblEmpfKdNr.Text = checkNull(rpt.Fields.Item("EmpfängerKundenNr").Value)
rpt.lblEmpf.Text = checkNull(rpt.Fields.Item("Empfänger").Value)
'Wenn EndEmpf leer --> Empfänger eintragen:
Dim EndEmpf = checkNull(rpt.Fields.Item("EndEmpfänger").Value)
If EndEmpf <> "" Then
rpt.lblEndEmpfKdNr.Text = checkNull(rpt.Fields.Item("EndEmpfängerKundenNr").Value)
rpt.lblEndEmpf.Text = checkNull(rpt.Fields.Item("EndEmpfänger").Value)
Else
rpt.lblEndEmpfKdNr.Text = checkNull(rpt.Fields.Item("EmpfängerKundenNr").Value)
rpt.lblEndEmpf.Text = checkNull(rpt.Fields.Item("Empfänger").Value)
End If
rpt.lblAuftrKdNr.Text = checkNull(rpt.Fields.Item("VermittlerKundenNr").Value)
rpt.lblAuftr.Text = checkNull(rpt.Fields.Item("Vermittler").Value)
rpt.lblFrachtfKdNr.Text = checkNull(rpt.Fields.Item("FrachtführerKundenNr").Value)
rpt.lblFrachtf.Text = checkNull(rpt.Fields.Item("Frachtführer").Value)
' rpt.lblLKWNr.Text = rpt.Fields.Item("AvisiererKundenNr").Value
' rpt.lblLKWNr.Text = rpt.Fields.Item("Avisierer").Value
'lblGesgesWaehrung.te
' rpt.lblKdAuftragNr.Text = checkNull(rpt.Fields.Item("KdAuftragsNr").Value)
'If rpt.lblKdAuftragNr.Text <> "" Then rpt.lblKdAuftragNr.Text = "Auftrag: " & rpt.lblKdAuftragNr.Text
Dim bar As Double = 0
Dim rg As Double = 0
Dim anz As Double = 0
If IsNumeric(checkNull(rpt.Fields.Item("Barzahlungsbetrag").Value)) Then bar = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value())
If IsNumeric(checkNull(rpt.Fields.Item("Rechnungsbetrag").Value)) Then rg = CDbl(rpt.Fields.Item("Rechnungsbetrag").Value())
' rpt.lblRechnungsbetragInEur.Text = rpt.Fields.Item("Rechnungsbetrag").Value * rpt.Fields.Item("Umrechnungskurs").Value
rpt.lblLKWNr.Text = checkNull(rpt.Fields.Item("LKW Kennzeichen").Value)
rpt.lblAnzahl.Text = checkNull(rpt.Fields.Item("Abfertigungsanzahl").Value)
rpt.lblAbfertigungsart.Text = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
' rpt.lblAbs.Text = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
' rpt.lblBarzahlungsbetrag.Text = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value()).ToString("C")
'sumBar += CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value)
If IsNumeric(checkNull(rpt.Fields.Item("Abfertigungsanzahl").Value)) Then anz = CDbl(rpt.Fields.Item("Abfertigungsanzahl").Value)
sumAbfBez = checkNull(rpt.Fields.Item("Abfertigungsbezeichnung").Value)
gesgesSumAnz += anz
End Sub
AddHandler rpt.ReportFooter1.Format, Sub()
rpt.lblGesGesSumAnzahl.Text = gesgesSumAnz.ToString("N0")
End Sub
If showDok Then
print.Viewer.LoadDocument(rpt)
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.Show()
Else
Dim tmpPath = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath("Verbringungsnachweis_" & Firma & ".pdf", ".pdf", True, False)
Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport
rpt.Run(False)
p.NeverEmbedFonts = ""
p.Export(rpt.Document, tmpPath)
rpt.Dispose()
Return tmpPath
End If
End If
Return ""
End Function
Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click
Dim SQLStr = "SELECT [FilialenNr],[AbfertigungsNr],[UnterNr],[Abfertigungsdatum],[LKW Kennzeichen],[EmpfängerKundenNr],[Empfänger],Abfertigungsart,AtlasBezNrEZA as BezugsNr
, isnull((SELECT SUM(Betrag) FROM Zkteing WHERE Bezugsnummer=AtlasBezNrEZA) ,'') as EUST
FROM [VERAG].[dbo].[Speditionsbuch]
where Abfertigungsart IN (26,28) AND Abfertigungsdatum > DATEADD(Month,-6 ,getdate()) AND isnull(SB_CMR ,0)=0 AND FilialenNr NOT IN (5501,5601,5701)
order by Abfertigungsdatum ASC"
Dim dt As DataTable = SQL.loadDgvBySql(SQLStr, "FMZOLL")
cProgramFunctions.genExcelFromDT_NEW(dt, {"J1:J" & (dt.Rows.Count + 2)})
End Sub
Private Sub Button20_Click(sender As Object, e As EventArgs) Handles Button20.Click
getrHandlingAussenstellen(, cboHandlingssatz._value)
End Sub
Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles MyComboBox1.SelectedIndexChanged
selctList(lstFiliale, MyComboBox1)
End Sub
Private Sub cboFilialeHandling_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFilialeHandling.SelectedIndexChanged
selctList(lstFilialeHandling, cboFilialeHandling)
End Sub
Sub selctList(lst, cbo)
lst.ClearSelected()
Select Case cbo._value
Case "ALLE"
For i = 0 To lst.Items.Count - 1
lst.SetSelected(i, True)
Next
Case ""
lst.ClearSelected()
Case Else
For i = 0 To lst.Items.Count - 1
If VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(DirectCast(lst.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value) = cbo._value Then
lst.SetSelected(i, True)
End If
Next
End Select
End Sub
Private Sub ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZFThyrnauZeitraumAuswählenToolStripMenuItem.Click, ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem.Click, ZFSteyrZeitraumAuswählenToolStripMenuItem.Click
lblKdAusFortschritt.Text = "lädt..."
Me.Cursor = Cursors.WaitCursor
Try
Dim kdnrsrch = -1
If sender Is ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem Then
kdnrsrch = 714869
ElseIf sender Is ZFThyrnauZeitraumAuswählenToolStripMenuItem Then
kdnrsrch = 718486
ElseIf sender Is ZFSteyrZeitraumAuswählenToolStripMenuItem Then
kdnrsrch = 764755
End If
'Dim dt As DataTable = SQL.loadDgvBySql("SELECT CAST(Rechnungsausgang.[FilialenNr] as varchar) + '/' + CAST(Rechnungsausgang.[AbfertigungsNr] as varchar) Abfertigungsnummer
' ,[RechnungsNr],RechnungsKundenNr
' ,cast([RechnungsDatum] as date)RechnungsDatum
' ,[AbsenderName 1]Absender
' ,(SteuerfreierGesamtbetrag+SteuerpflichtigerGesamtbetrag) Betrag
' ,Speditionsbuch.BelegNr
' ,Rechnungsausgang.[FilialenNr],Rechnungsausgang.[AbfertigungsNr] ,Speditionsbuch.Abfertigungsart
' FROM [Rechnungsausgang] inner join Speditionsbuch ON Speditionsbuch.FilialenNr=Rechnungsausgang.FilialenNr and Speditionsbuch.AbfertigungsNr=Rechnungsausgang.AbfertigungsNr and Speditionsbuch.UnterNr=Rechnungsausgang.SpeditionsbuchUnterNr
' where RechnungsKundenNr IN (" & kdNrsrch & ") and rechnungsdatum BETWEEN '" & txtAbfertDat.Text & "' AND '" & txtAbfertDatBis.Text & "'", "FMZOLL")
Dim dt As DataTable = SQL.loadDgvBySql("SELECT CAST([FilialenNr] as varchar) + '/' + CAST([AbfertigungsNr] as varchar) Abfertigungsnummer
,cast([Abfertigungsdatum] as date)Abfertigungsdatum
,Absender
,Rechnungsbetrag Betrag
,BelegNr
,[FilialenNr],[AbfertigungsNr],Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung,Speditionsbuch.Zollsystem_Land
FROM Speditionsbuch INNER JOIN [Abfertigungsarten] ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
where EmpfängerKundenNr IN (" & kdnrsrch & ") and VermittlerKundenNr IN (" & kdnrsrch & ") and Abfertigungsdatum BETWEEN '" & txtAbfertDat.Text & "' AND '" & txtAbfertDatBis.Text & "' And Speditionsbuch.Abfertigungsart IN (1,29,38)", "FMZOLL")
Dim Path = ""
If dt IsNot Nothing And dt.Rows.Count > 0 Then
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\"
If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
My.Computer.FileSystem.CreateDirectory(sPath)
End If
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet
exclApp = CreateObject("Excel.Application")
If cbxDetailbericht.Checked Then
With exclApp
.Visible = False
Try
Path = sPath & "ZF_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
While System.IO.File.Exists(Path)
Path = sPath & "ZF_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
End While
My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.RG_ZF_NEW, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
Me.Cursor = Cursors.Default
Exit Sub
End Try
Datei = .Workbooks.Open(Path) 'Anpassen
Blatt = Datei.Worksheets(1) 'Anpassen
'Blatt.Range("I1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
Dim cnt = 2
For Each r In dt.Rows
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Try
Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
If ZOLLANMELDUNG.dtWARENPOS.Rows.Count > 0 Then
Dim rowcounter As Integer = 0
For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows
Dim ZollInProzent As Double = 0
If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
End If
Blatt.Range("A" & cnt).Value = cnt - 1
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
Blatt.Range("F" & cnt).Value = r("BelegNr")
Blatt.Range("G" & cnt).Value = row.Item("PosNr")
Blatt.Range("H" & cnt).Value = row.Item("WarenNr")
Blatt.Range("I" & cnt).Value = "-"
Blatt.Range("J" & cnt).Value = row.Item("WarenBez")
Blatt.Range("K" & cnt).Value = ""
Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
Blatt.Range("O" & cnt).Value = ""
Blatt.Range("P" & cnt).Value = row.Item("Netto")
Blatt.Range("Q" & cnt).Value = row.Item("PosWert")
Blatt.Range("R" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_EUST, "")
Blatt.Range("S" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_ZOLL, "")
Blatt.Range("T" & cnt).Value = IIf(rowcounter = 0, ZollInProzent.ToString("N2") & " %", "")
Blatt.Range("U" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
Blatt.Range("V" & cnt).Value = ZOLLANMELDUNG.Absender
Blatt.Range("W" & cnt).Value = row.Item("Herkunft")
Blatt.Range("X" & cnt).Value = ZOLLANMELDUNG.Incoterms
Blatt.Range("Y" & cnt).Value = row.Item("Verfahren")
Blatt.Range("Z" & cnt).Value = row.Item("Preferenz")
Blatt.Range("AA" & cnt).Value = IIf(row.Item("isCBAM"), "Y", "N")
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("F" & cnt).Value = "" Then
Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
cnt += 1
rowcounter += 1
Next
Else
Dim ZollInProzent As Double = 0
If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
End If
Blatt.Range("A" & cnt).Value = cnt - 1
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
Blatt.Range("F" & cnt).Value = r("BelegNr")
Blatt.Range("G" & cnt).Value = ""
Blatt.Range("H" & cnt).Value = ""
Blatt.Range("I" & cnt).Value = "-"
Blatt.Range("J" & cnt).Value = ""
Blatt.Range("K" & cnt).Value = ""
Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
Blatt.Range("O" & cnt).Value = ""
Blatt.Range("P" & cnt).Value = ""
Blatt.Range("Q" & cnt).Value = ""
Blatt.Range("R" & cnt).Value = ZOLLANMELDUNG.ABGABEN_EUST
Blatt.Range("S" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
Blatt.Range("T" & cnt).Value = ZollInProzent.ToString("N2") & " %"
Blatt.Range("U" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
Blatt.Range("V" & cnt).Value = ZOLLANMELDUNG.Absender
Blatt.Range("W" & cnt).Value = ""
Blatt.Range("X" & cnt).Value = ZOLLANMELDUNG.Incoterms
Blatt.Range("Y" & cnt).Value = ""
Blatt.Range("Z" & cnt).Value = ""
Blatt.Range("AA" & cnt).Value = ""
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("F" & cnt).Value = "" Then
Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
cnt += 1
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
Me.Refresh()
Next
Datei.Save
If False Then
Blatt.PrintOutEx()
Else
'Process.Start(Path)
.Visible = True
End If
End With
Else
With exclApp
.Visible = False
Try
Path = sPath & "ZF_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
While System.IO.File.Exists(Path)
Path = sPath & "ZF_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
End While
My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.RG_ZF, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
Me.Cursor = Cursors.Default
Exit Sub
End Try
Datei = .Workbooks.Open(Path) 'Anpassen
Blatt = Datei.Worksheets(1) 'Anpassen
Blatt.Range("I1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
Dim cnt = 3
For Each r In dt.Rows
Blatt.Range("A" & cnt).Value = cnt - 2
Blatt.Range("B" & cnt).Value = r("Abfertigungsnummer")
' Blatt.Range("C" & cnt).Value = r("RechnungsNr")
Blatt.Range("C" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("D" & cnt).Value = r("Abfertigungsbezeichnung")
Blatt.Range("E" & cnt).Value = r("Absender")
Blatt.Range("F" & cnt).Value = "" 'r("Betrag")
Blatt.Range("H" & cnt).Value = r("BelegNr")
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Try
Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.RechnungspreisohneWahrung
Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine)
Blatt.Range("I" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
Blatt.Range("J" & cnt).Value = ZOLLANMELDUNG.ANZ_POS
'----------------------------------NEW
Blatt.Range("K" & cnt).Value = ZOLLANMELDUNG.Anmelder
Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.Warenbezeichung
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.VerBestLandZst
'----------------------------------
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" Then
Blatt.Range("H" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
Me.Refresh()
cnt += 1
Next
Datei.Save
If False Then
Blatt.PrintOutEx()
Else
'Process.Start(Path)
.Visible = True
End If
End With
End If
End If
lblKdAusFortschritt.Text = "fertig"
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
lblKdAusFortschritt.Text = "Fehler"
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub cboFiliale_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFiliale.SelectedIndexChanged
cbxEIDR.Visible = cboFiliale._value = "7001"
End Sub
Private Sub Button12_Click(sender As Object, e As EventArgs) Handles btnSpedBuchEinnahmen.Click
Dim displayFilter = cbxFilterInBericht.Checked
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Auswertungen", "SDL") Then
Dim sqlstr As String = ""
Dim SpedBuchWhere = getSpedBuchWhere()
If CheckBox1.Checked Then
sqlstr &= " SELECT Speditionsbuch.FilialenNr,Speditionsbuch.Abfertigungsart,Abfertigungsarten.Abfertigungsbezeichnung,sum(Abfertigungsanzahl) as Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,MIN(Speditionsbuch.Abfertigungsdatum) as von, MAX(Speditionsbuch.Abfertigungsdatum) as bis
,isnull(sum(SteuerfreierGesamtbetrag+SteuerpflichtigerGesamtbetrag),0) as RgBetrag
FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
LEFT JOIN Rechnungsausgang ON Rechnungsausgang.FilialenNr=Speditionsbuch.FilialenNr and Rechnungsausgang.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Rechnungsausgang.SpeditionsbuchUnterNr=Speditionsbuch.UnterNr
WHERE 1=1 "
sqlstr &= SpedBuchWhere
sqlstr &= " group by Speditionsbuch.FilialenNr,Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung "
sqlstr &= " order by Speditionsbuch.FilialenNr, Speditionsbuch.Abfertigungsart"
Else
sqlstr &= " SELECT Speditionsbuch.Abfertigungsart,Abfertigungsarten.Abfertigungsbezeichnung,sum(Abfertigungsanzahl) as Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,MIN(Speditionsbuch.Abfertigungsdatum) as von, MAX(Speditionsbuch.Abfertigungsdatum) as bis
,isnull(sum(SteuerfreierGesamtbetrag+SteuerpflichtigerGesamtbetrag),0) as RgBetrag
FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
LEFT JOIN Rechnungsausgang ON Rechnungsausgang.FilialenNr=Speditionsbuch.FilialenNr and Rechnungsausgang.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Rechnungsausgang.SpeditionsbuchUnterNr=Speditionsbuch.UnterNr
WHERE 1=1 "
sqlstr &= SpedBuchWhere
sqlstr &= " group by Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung "
sqlstr &= " order by Speditionsbuch.Abfertigungsart"
End If
Dim SpedBuchList = getSpedbuchList()
Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL", , SpedBuchList)
'DataGridView.DataSource = dt
Dim print As New frmPrintLayout
print.Text = "Speditionsbericht"
Dim rpt As New rptSpeditionsberichtRg
rpt.DataSource = dt
'Filter anzeigen
If displayFilter Then
rpt.lblFilterTxt.Visible = displayFilter
rpt.txtFilter.Visible = displayFilter
rpt.txtFilter.Text = generateReadableFilter(SQL.getStringReplaceScalarVar(SpedBuchWhere, SpedBuchList))
Else
If txtUeberschr.Text <> "" Then
rpt.txtFilter.Text = txtUeberschr.Text
rpt.txtFilter.Visible = True
rpt.lblFilterTxt.Visible = True
rpt.lblFilterTxt.Text = "Beschreibung:"
End If
End If
''Problem mit beträge
'If cboFiliale._value = "" Then
' rpt.Dispose() : print.Dispose()
' MsgBox("Bitte Filiale angeben!")
' Exit Sub
'End If
Dim FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA
If cboFiliale._value <> "" Then
FirmaTmp = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale2(cboFiliale._value)
End If
Select Case FirmaTmp
Case "IMEX" : rpt.picVERAG.Image = My.Resources.IMEX_LOGO_simple : rpt.Label28.Text = "IMEX Customs Service GmbH"
Case "ATILLA" : rpt.picVERAG.Image = My.Resources.Atilla : rpt.Label28.Text = "ATILLA Spedition"
Case "UNISPED" : rpt.picVERAG.Image = My.Resources.Unisped_logo : rpt.Label28.Text = "UNISPED Spedition"
Case "AMBAR" : rpt.picVERAG.Image = My.Resources.ambar_simple : rpt.Label28.Text = "AMBAR"
Case "FRONTOFFICE" : rpt.picVERAG.Image = My.Resources.FrontOfficeSUB_Horizontal : rpt.Label28.Text = "FRONTOFFICE"
Case Else
End Select
If CheckBox1.Checked Then
rpt.GroupHeader1.DataField = "FilialenNr" 'Gruppierung
End If
If rpt.DataSource.rows.count = 0 Then
rpt.Dispose() : print.Dispose()
MsgBox("Keine Daten vorhanden!")
Exit Sub
End If
Dim sum = 0
rpt.lblUeberschrift.Text = "Speditionsbericht " & txtAbfertDat.Text & " bis " & txtAbfertDatBis.Text
rpt.lblSachbearbeiter.Text = VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME
'rpt.lblMandantNiederlassung.Text = PERSONAL.Mandant & " / " & PERSONAL.Niederlassung
'Dim cnt As Integer = 0
rpt.lblDat.Text = Now.ToLongDateString
Dim sumAnz As Double = 0
Dim sumBar As Double = 0
Dim sumRg As Double = 0
Dim sumVk As Double = 0
Dim sumZwSum As Double = 0
rpt.lblBarzahlungsbetrag.Visible = True
rpt.lblBarTitle.Visible = True
rpt.lblSummeBar.Visible = True
rpt.lblFiliale.Text = "Alle Filialen"
AddHandler rpt.Detail.Format, Sub()
rpt.lblVon.Text = CDate(rpt.Fields.Item("von").Value).ToShortDateString
rpt.lblBis.Text = CDate(rpt.Fields.Item("bis").Value).ToShortDateString
rpt.lblAbfAnz.Text = rpt.Fields.Item("Anzahl").Value
rpt.lblAbfArtNr.Text = If(rpt.Fields.Item("Abfertigungsart").Value Is DBNull.Value, "-", rpt.Fields.Item("Abfertigungsart").Value)
rpt.lblAbfArt.Text = If(rpt.Fields.Item("Abfertigungsbezeichnung").Value Is DBNull.Value, "-", rpt.Fields.Item("Abfertigungsbezeichnung").Value)
Dim BarBetrag As Double = CDbl(rpt.Fields.Item("Barzahlungsbetrag").Value())
Dim sqlstrRg = " SELECT isnull( sum(RechnungsausgangPositionen.SteuerfreierBetrag+RechnungsausgangPositionen.SteuerpflichtigerBetrag),0) as RgBetrag
FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
inner JOIN Rechnungsausgang ON Rechnungsausgang.FilialenNr=Speditionsbuch.FilialenNr and Rechnungsausgang.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Rechnungsausgang.SpeditionsbuchUnterNr=Speditionsbuch.UnterNr
inner JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID=RechnungsausgangPositionen.RK_ID
inner JOIN leistungen ON RechnungsausgangPositionen.LeistungsNr=leistungen.LeistungsNr
WHERE 1=1
" & SpedBuchWhere & "
and Speditionsbuch.Abfertigungsart=" & rpt.Fields.Item("Abfertigungsart").Value &
If(CheckBox1.Checked, " and Speditionsbuch.FilialenNr='" & If(rpt.Fields.Item("FilialenNr") IsNot Nothing, rpt.Fields.Item("FilialenNr").Value, "") & "'", "") & "
and leistungen.Abfertigungskosten=1"
Dim RgBetrag As Double = SQL.getValueTxtBySqlVarList(sqlstrRg, "FMZOLL", SpedBuchList, 0)
Dim sqlstrVK = " SELECT isnull(sum(Vorkosten.Preis),0) as VKBetrag
FROM Speditionsbuch LEFT JOIN Abfertigungsarten ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
inner JOIN Vorkosten ON Vorkosten.FilialenNr=Speditionsbuch.FilialenNr and Vorkosten.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Vorkosten.UnterNr=Speditionsbuch.UnterNr
WHERE 1=1
" & SpedBuchWhere & "
and Speditionsbuch.Abfertigungsart=" & rpt.Fields.Item("Abfertigungsart").Value &
If(CheckBox1.Checked, " and Speditionsbuch.FilialenNr='" & If(rpt.Fields.Item("FilialenNr") IsNot Nothing, rpt.Fields.Item("FilialenNr").Value, "") & "'", "") & ""
Dim VkBetrag As Double = SQL.getValueTxtBySqlVarList(sqlstrVK, "FMZOLL", SpedBuchList, 0)
Dim ZwSum = RgBetrag + BarBetrag - VkBetrag
rpt.lblBarzahlungsbetrag.Text = BarBetrag.ToString("C")
rpt.Label8.Text = (RgBetrag).ToString("C")
rpt.Label13.Text = (VkBetrag).ToString("C")
rpt.Label14.Text = (ZwSum).ToString("C")
sumAnz += CDbl(rpt.Fields.Item("Anzahl").Value)
sumBar += BarBetrag
sumRg += RgBetrag
sumVk += VkBetrag
sumZwSum += ZwSum
End Sub
AddHandler rpt.GroupHeader1.Format, Sub()
If CheckBox1.Checked Then rpt.lblFiliale.Text = SQL.getValueTxtBySql("SELECT CAST(FilialenNr as varchar (4)) + ' ' + Grenzstelle FROM filialen WHERE FilialenNr='" & rpt.Fields.Item("FilialenNr").Value & "'", "FMZOLL")
sumAnz = 0
sumBar = 0
sumRg = 0
sumVk = 0
sumZwSum = 0
End Sub
AddHandler rpt.GroupFooter1.Format, Sub()
rpt.lblSummeAnzahl.Text = sumAnz
rpt.lblSummeBar.Text = sumBar.ToString("C")
rpt.Label10.Text = sumRg.ToString("C")
rpt.Label15.Text = sumVk.ToString("C")
rpt.Label16.Text = sumZwSum.ToString("C")
End Sub
print.Viewer.LoadDocument(rpt)
print.Viewer.ViewType = GrapeCity.Viewer.Common.Model.ViewType.Continuous
print.Show()
End If
End Sub
Private Sub Button12_Click_1(sender As Object, e As EventArgs) Handles btnNurAbf.Click
Dim dt = SQL.loadDgvBySql("SELECT Abfertigungsart FROM [Abfertigungsarten] where isAbfertigung=1", "FMZOLL")
MyListBox1.ClearSelected()
If dt IsNot Nothing Then
For Each r In dt.Rows
For i = 0 To MyListBox1.Items.Count - 1
If DirectCast(MyListBox1.Items(i), VERAG_PROG_ALLGEMEIN.MyListItem).Value = r("Abfertigungsart") Then
MyListBox1.SetSelected(i, True)
End If
Next
Next
End If
End Sub
Private Sub Button21_Click(sender As Object, e As EventArgs) Handles Button21.Click
DataGridView.Columns.Clear()
Dim dt As DataTable
If False Then
Dim sqlstr As String = ""
sqlstr &= " SELECT DATEPART(YEAR,Abfertigungsdatum) Jahr, DATEPART(month,Abfertigungsdatum) Monat, sum(Abfertigungsanzahl) Anzahl FROM Speditionsbuch "
sqlstr &= " WHERE 1=1 "
dt = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
" GROUP BY DATEPART(YEAR,Abfertigungsdatum), DATEPART(month,Abfertigungsdatum) " &
" ORDER BY DATEPART(YEAR,Abfertigungsdatum), DATEPART(month,Abfertigungsdatum) ",
"FMZOLL", , getSpedbuchList())
Else
Dim sqlstr As String = ""
sqlstr &= " SELECT DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum) Jahr, DATEPART(month,Speditionsbuch.Abfertigungsdatum) Monat, sum(Abfertigungsanzahl) Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,isnull(sum(SteuerfreierGesamtbetrag+SteuerpflichtigerGesamtbetrag),0) as RgBetrag "
sqlstr &= " FROM Speditionsbuch "
sqlstr &= " LEFT JOIN Rechnungsausgang ON Rechnungsausgang.FilialenNr=Speditionsbuch.FilialenNr and Rechnungsausgang.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Rechnungsausgang.SpeditionsbuchUnterNr=Speditionsbuch.UnterNr "
sqlstr &= " INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID=RechnungsausgangPositionen.RK_ID "
sqlstr &= " INNER JOIN leistungen ON RechnungsausgangPositionen.LeistungsNr=leistungen.LeistungsNr "
sqlstr &= " WHERE 1=1 and leistungen.Abfertigungskosten=1 "
dt = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
" GROUP BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum), DATEPART(month,Speditionsbuch.Abfertigungsdatum) " &
" ORDER BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum), DATEPART(month,Speditionsbuch.Abfertigungsdatum) ",
"FMZOLL", , getSpedbuchList())
End If
If dt IsNot Nothing Then DataGridView.DataSource = dt
End Sub
Private Sub Button22_Click(sender As Object, e As EventArgs) Handles Button22.Click
DataGridView.Columns.Clear()
Dim dt As DataTable
'Dim sqlstr As String = ""
'sqlstr &= " SELECT DATEPART(YEAR,Abfertigungsdatum) Jahr, DATEPART(iso_week,Abfertigungsdatum) Woche, count(*) Anzahl FROM Speditionsbuch "
'sqlstr &= " WHERE 1=1 "
'Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
' " GROUP BY DATEPART(YEAR,Abfertigungsdatum), DATEPART(iso_week,Abfertigungsdatum) " &
' " ORDER BY DATEPART(YEAR,Abfertigungsdatum), DATEPART(iso_week,Abfertigungsdatum) ",
' "FMZOLL", , getSpedbuchList())
If False Then
Dim sqlstr As String = ""
sqlstr &= " SELECT DATEPART(YEAR,Abfertigungsdatum) Jahr, DATEPART(iso_week,Abfertigungsdatum) Monat, sum(Abfertigungsanzahl) Anzahl FROM Speditionsbuch "
sqlstr &= " WHERE 1=1 "
dt = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
" GROUP BY DATEPART(YEAR,Abfertigungsdatum), DATEPART(iso_week,Abfertigungsdatum) " &
" ORDER BY DATEPART(YEAR,Abfertigungsdatum), DATEPART(iso_week,Abfertigungsdatum) ",
"FMZOLL", , getSpedbuchList())
Else
Dim sqlstr As String = ""
sqlstr &= " SELECT DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum) Jahr, DATEPART(iso_week,Speditionsbuch.Abfertigungsdatum) Monat, sum(Abfertigungsanzahl) Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,isnull(sum(SteuerfreierGesamtbetrag+SteuerpflichtigerGesamtbetrag),0) as RgBetrag "
sqlstr &= " FROM Speditionsbuch "
sqlstr &= " LEFT JOIN Rechnungsausgang ON Rechnungsausgang.FilialenNr=Speditionsbuch.FilialenNr and Rechnungsausgang.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Rechnungsausgang.SpeditionsbuchUnterNr=Speditionsbuch.UnterNr "
sqlstr &= " INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID=RechnungsausgangPositionen.RK_ID "
sqlstr &= " INNER JOIN leistungen ON RechnungsausgangPositionen.LeistungsNr=leistungen.LeistungsNr "
sqlstr &= " WHERE 1=1 and leistungen.Abfertigungskosten=1 "
dt = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
" GROUP BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum), DATEPART(iso_week,Speditionsbuch.Abfertigungsdatum) " &
" ORDER BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum), DATEPART(iso_week,Speditionsbuch.Abfertigungsdatum) ",
"FMZOLL", , getSpedbuchList())
End If
If dt IsNot Nothing Then DataGridView.DataSource = dt
End Sub
Private Sub Buttonf2_Click(sender As Object, e As EventArgs) Handles Button2.Click
DataGridView.Columns.Clear()
Dim dt As DataTable
If True Then
Dim sqlstr As String = ""
sqlstr &= " SELECT DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum) Jahr, sum(Abfertigungsanzahl) Anzahl,SUM(Barzahlungsbetrag) as Barzahlungsbetrag,isnull(sum(SteuerfreierGesamtbetrag+SteuerpflichtigerGesamtbetrag),0) as RgBetrag "
sqlstr &= " FROM Speditionsbuch "
sqlstr &= " LEFT JOIN Rechnungsausgang ON Rechnungsausgang.FilialenNr=Speditionsbuch.FilialenNr and Rechnungsausgang.AbfertigungsNr=Speditionsbuch.AbfertigungsNr and Rechnungsausgang.SpeditionsbuchUnterNr=Speditionsbuch.UnterNr "
sqlstr &= " INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID=RechnungsausgangPositionen.RK_ID "
sqlstr &= " INNER JOIN leistungen ON RechnungsausgangPositionen.LeistungsNr=leistungen.LeistungsNr "
sqlstr &= " WHERE 1=1 and leistungen.Abfertigungskosten=1 "
MsgBox(sqlstr & getSpedBuchWhere() &
" GROUP BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum) " &
" ORDER BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum) ")
dt = SQL.loadDgvBySql_Param(sqlstr & getSpedBuchWhere() &
" GROUP BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum) " &
" ORDER BY DATEPART(YEAR,Speditionsbuch.Abfertigungsdatum) ",
"FMZOLL", , getSpedbuchList())
End If
If dt IsNot Nothing Then DataGridView.DataSource = dt
End Sub
Private Sub Button23_Click(sender As Object, e As EventArgs) Handles Button23.Click
Dim VerbNr = InputBox("Bitte geben Sie die Gelangensbestätigungs-Nr. ein:")
If VerbNr.Trim <> "" AndAlso IsNumeric(VerbNr) Then
Dim cnt = SQL.getValueTxtBySql("SELECT COUNT(*) FROM [Speditionsbuch] where SB_CMRNr ='" & VerbNr & "' ", "FMZOLL")
If cnt > 0 Then
If vbYes = MsgBox(cnt & " Einträge gefunden, fortfahren?", vbYesNoCancel) Then
Dim VerbDat = InputBox("Bitte geben Sie das Datum ein, an dem die Gelangensbestätigung erhalten wurde:")
If VerbDat.Trim <> "" AndAlso IsDate(VerbDat) Then
If SQL.doSQL("UPDATE [Speditionsbuch] SET SB_CMR=1, SB_CMRDatum='" & CDate(VerbDat).ToShortDateString & "' where SB_CMRNr ='" & VerbNr & "' ", "FMZOLL") Then
MsgBox("Erfolgreich eingetragen!")
Else
MsgBox("Fehler beim Eintragen!")
End If
End If
End If
Else
MsgBox("Keine Daten!")
End If
End If
End Sub
Private Sub lstGrenze_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstGrenze.SelectedIndexChanged
txtZollstelle.Visible = False
For Each l In lstGrenze.SelectedItems
If l.text <> "???" Then Exit Sub
Next
txtZollstelle.Visible = True
End Sub
Private Sub initToolStripMenu()
For Each c As ToolStripMenuItem In KundenauswertungenToolStripMenuItem1.DropDownItems
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "VERAG" Then
If c.Name = "ZFFriedrichshafenAGZeitraumAuswählenToolStripMenuItem" Or c.Name = "ZFThyrnauZeitraumAuswählenToolStripMenuItem" Then
c.Visible = True
End If
End If
If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "UNISPED" Then
If c.Name = "FlenderBocholtZeitraumAuswählenToolStripMenuItem" Then
c.Visible = True
End If
End If
Next
End Sub
Private Sub FlenderBocholtZeitraumAuswählenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AuswertungDiversZeitraumAuswählenToolStripMenuItem.Click
lblKdAusFortschritt.Text = "lädt..."
Me.Cursor = Cursors.WaitCursor
Try
Dim dt As DataTable = SQL.loadDgvBySql("SELECT [Speditionsbuch].[FilialenNr]
,[Speditionsbuch].[AbfertigungsNr]
,CAST([Abfertigungsdatum] as DATE) [Abfertigungsdatum]
,isnull([BelegNr],'') ATC
,isnull([sndhdg_nr],'') ATA
,[LKW Kennzeichen]
,[Absender]
,[Empfänger]
,[Vermittler]
,[Frachtführer]
,[Avisierer]
,[Packstücke]
,isnull([Abfertigungsarten].AbfertigungsbezeichnungLang,[Abfertigungsarten].Abfertigungsbezeichnung) Abfertigungsart
,[Abfertigungsanzahl]
,CASE WHEN Aviso.[Grenzstelle]='???' THEN Aviso.[Zollstelle] ELSE Aviso.[Grenzstelle] END [Grenzstelle]
FROM [VERAG].[dbo].[Speditionsbuch] INNER JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".[AVISO].dbo.tblSendungen ON SendungID=[tblSnd_SendungID]
INNER JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".[AVISO].dbo.Aviso ON [Speditionsbuch].AvisoID=Aviso.AvisoID
INNER JOIN Abfertigungsarten ON Abfertigungsarten.Abfertigungsart=[Speditionsbuch].Abfertigungsart
LEFT JOIN " & VERAG_PROG_ALLGEMEIN.cAllgemein.AVISO_SERVER & ".[AVISO].dbo.[tblSendHandling] ON [tblSnd_SendungID]=[sndhdg_sendId]
where Empfänger LIKE '%Flender%' and [Speditionsbuch].FilialenNr=5601
and Abfertigungsdatum BETWEEN '" & txtAbfertDat.Text & "' and '" & txtAbfertDatBis.Text & "'
order by [Speditionsbuch].Abfertigungsart , Abfertigungsdatum", "FMZOLL")
Dim Path = ""
If dt IsNot Nothing And dt.Rows.Count > 0 Then
cProgramFunctions.genExcelFromDT_NEW(dt)
End If
lblKdAusFortschritt.Text = "fertig"
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
lblKdAusFortschritt.Text = "Fehler"
End Try
Me.Cursor = Cursors.Default
End Sub
Private Function generateReadableFilter(text As String) As String
text = text.ToLower()
text = text.Replace("=1", " ist wahr ")
text = text.Replace("=0", " ist falsch ")
text = text.Replace("=", " ist ")
text = text.Replace("[", "")
text = text.Replace("]", "")
text = text.Replace("(", "")
text = text.Replace(")", "")
text = text.Replace(":", "")
text = text.Replace("select", " Felder: ")
text = text.Replace("from", " Tabelle: ")
text = text.Replace("like", " wie ")
text = text.Replace("and", " und ")
text = text.Replace("inner join", " Untertabelle: ")
text = text.Replace("left join", " Untertabelle: ")
text = text.Replace("right join", " Untertabelle: ")
text = text.Replace("between", " zwischen ")
text = text.Replace("00", "")
text = text.Replace("speditionsbuch.", "")
text = text.Replace("%", "*")
Return text
End Function
Private Sub Button25_Click(sender As Object, e As EventArgs) Handles Button25.Click
Dim where = ""
Select Case MyComboBox2._value
Case "VERAG" : where = " AND FilialenNr IN (SELECT Filialen.FilialenNr FROM Filialen WHERE Filialen.Firma='VERAG' AND Filialen.FilialenNr NOT IN (4801,4802)) "
Case "IMEX" : where = " AND FilialenNr IN (5501) "
Case "UNISPED" : where = " AND FilialenNr IN (5601) "
'Case "ATILLA" : where = " AND FilialenNr IN (SELECT Filialen.FilialenNr FROM Filialen WHERE Filialen.Firma='VERAG' AND Filialen.FilialenNr NOT IN (5601)) "
End Select
where &= " and Grenzstelle='AMB' "
getrHandlingAussenstellen(, "AMBAR an ALL", where, True)
End Sub
Private Sub SendungsdetailsÖffnenToolStripMenuItem_Click(
sender As Object, e As EventArgs) _
Handles SendungsdetailsÖffnenToolStripMenuItem.Click
If DataGridView.SelectedRows.Count <> 1 Then
MsgBox("Bitte wählen Sie genau eine Zeile aus.")
Exit Sub
End If
Dim r = DataGridView.SelectedRows(0)
Dim spb = New cSpeditionsbuch(
FilialenNr:=CInt(r.Cells("FilialenNr").Value),
AbfertigungsNr:=CInt(r.Cells("AbfertigungsNr").Value),
UnterNr:=CInt(r.Cells("UnterNr").Value)
)
RaiseEvent SendungsdetailsRequested(spb.AvisoID, spb.SendungID)
End Sub
Private Sub ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem1.Click, ToolStripMenuItem19.Click
Dim kdnrsrch As Integer = -1
Dim KUNDE
Dim Detailbericht As Boolean = False
If sender Is ToolStripMenuItem1 Then
Detailbericht = False
ElseIf sender Is ToolStripMenuItem19 Then
Detailbericht = True
End If
If kdnrsrch < 0 Then
Dim inputKdNr = InputBox("Bitte KdNr eingeben", "Kundenauswertung generieren")
If inputKdNr <> "" Then inputKdNr = inputKdNr.Trim()
If inputKdNr <> "" AndAlso IsNumeric(inputKdNr) AndAlso inputKdNr > 0 Then
kdnrsrch = inputKdNr
KUNDE = New cKunde(kdnrsrch)
If KUNDE Is Nothing Then
MsgBox("KundenNr " & inputKdNr & " nicht vorhanden!")
Exit Sub
End If
Else
MsgBox("KundenNr " & inputKdNr & " nicht gültig!")
Exit Sub
End If
End If
Dim dt As DataTable = SQL.loadDgvBySql("SELECT CAST([FilialenNr] as varchar) + '/' + CAST([AbfertigungsNr] as varchar) Abfertigungsnummer
,cast([Abfertigungsdatum] as date)Abfertigungsdatum
,Absender
,Rechnungsbetrag Betrag
,BelegNr
,[FilialenNr],[AbfertigungsNr],Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung,Speditionsbuch.Zollsystem_Land, Speditionsbuch.[LKW Kennzeichen]
FROM Speditionsbuch INNER JOIN [Abfertigungsarten] ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
where EmpfängerKundenNr IN (" & kdnrsrch & ") and VermittlerKundenNr IN (" & kdnrsrch & ") and Abfertigungsdatum BETWEEN '" & txtAbfertDat.Text & "' AND '" & txtAbfertDatBis.Text & "' And Speditionsbuch.Abfertigungsart IN (1,26,29,38)", "FMZOLL")
Try
Dim Path = ""
If dt IsNot Nothing And dt.Rows.Count > 0 Then
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\"
If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
My.Computer.FileSystem.CreateDirectory(sPath)
End If
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet
exclApp = CreateObject("Excel.Application")
If Detailbericht Then
With exclApp
.Visible = False
Try
Path = sPath & "Detailbericht_" & KUNDE.KundenNr & "_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
While System.IO.File.Exists(Path)
Path = sPath & KUNDE.KundenNr & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
End While
My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Detailauswertung_divers, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
Me.Cursor = Cursors.Default
Exit Sub
End Try
Datei = .Workbooks.Open(Path) 'Anpassen
Blatt = Datei.Worksheets(1) 'Anpassen
Dim cnt = 2
For Each r In dt.Rows
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Try
Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
If ZOLLANMELDUNG.dtWARENPOS.Rows.Count > 0 Then
Dim rowcounter As Integer = 0
For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows
Dim ZollInProzent As Double = 0
If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
End If
Blatt.Range("A" & cnt).Value = cnt - 1
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
Blatt.Range("F" & cnt).Value = r("BelegNr")
Blatt.Range("G" & cnt).Value = row.Item("PosNr")
Blatt.Range("H" & cnt).Value = row.Item("WarenNr")
Blatt.Range("I" & cnt).Value = "-"
Blatt.Range("J" & cnt).Value = row.Item("WarenBez")
Blatt.Range("K" & cnt).Value = ""
Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
Blatt.Range("O" & cnt).Value = ""
Blatt.Range("P" & cnt).Value = row.Item("Netto")
Blatt.Range("Q" & cnt).Value = row.Item("PosWert")
Blatt.Range("R" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_EUST, "")
Blatt.Range("S" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_ZOLL, "")
Blatt.Range("T" & cnt).Value = IIf(rowcounter = 0, ZollInProzent.ToString("N2") & " %", "")
Blatt.Range("U" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
Blatt.Range("V" & cnt).Value = ZOLLANMELDUNG.Absender
Blatt.Range("W" & cnt).Value = row.Item("Herkunft")
Blatt.Range("X" & cnt).Value = ZOLLANMELDUNG.Incoterms
Blatt.Range("Y" & cnt).Value = row.Item("Verfahren")
Blatt.Range("Z" & cnt).Value = row.Item("Preferenz")
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("F" & cnt).Value = "" Then
Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
cnt += 1
rowcounter += 1
Next
Else
Dim ZollInProzent As Double = 0
If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
End If
Blatt.Range("A" & cnt).Value = cnt - 1
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
Blatt.Range("F" & cnt).Value = r("BelegNr")
Blatt.Range("G" & cnt).Value = ""
Blatt.Range("H" & cnt).Value = ""
Blatt.Range("I" & cnt).Value = "-"
Blatt.Range("J" & cnt).Value = ""
Blatt.Range("K" & cnt).Value = ""
Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
Blatt.Range("O" & cnt).Value = ""
Blatt.Range("P" & cnt).Value = ""
Blatt.Range("Q" & cnt).Value = ""
Blatt.Range("R" & cnt).Value = ZOLLANMELDUNG.ABGABEN_EUST
Blatt.Range("S" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
Blatt.Range("T" & cnt).Value = ZollInProzent.ToString("N2") & " %"
Blatt.Range("U" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
Blatt.Range("V" & cnt).Value = ZOLLANMELDUNG.Absender
Blatt.Range("W" & cnt).Value = ""
Blatt.Range("X" & cnt).Value = ZOLLANMELDUNG.Incoterms
Blatt.Range("Y" & cnt).Value = ""
Blatt.Range("Z" & cnt).Value = ""
Blatt.Range("AA" & cnt).Value = ""
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("F" & cnt).Value = "" Then
Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
cnt += 1
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
Me.Refresh()
Next
Datei.Save
If False Then
Blatt.PrintOutEx()
Else
'Process.Start(Path)
.Visible = True
End If
End With
Else
With exclApp
.Visible = False
Try
Path = sPath & "Bericht_" & KUNDE.KundenNr & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
While System.IO.File.Exists(Path)
Path = sPath & KUNDE.KundenNr & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
End While
My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.Auswertung_divers, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
Me.Cursor = Cursors.Default
Exit Sub
End Try
Datei = .Workbooks.Open(Path) 'Anpassen
Blatt = Datei.Worksheets(1) 'Anpassen
If KUNDE.KundenNr = 902452 Then 'KUNDE WILL WIEDER EXZTAWURST!!!!!!!
Blatt.Range("H1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
Blatt.Range("A" & 2).Value = "Nr"
Blatt.Range("B" & 2).Value = "Datum"
Blatt.Range("C" & 2).Value = "MRN-Nr."
Blatt.Range("D" & 2).Value = "LKW/Cont."
Blatt.Range("E" & 2).Value = "Rg.-Nr."
Blatt.Range("F" & 2).Value = "EUST"
Blatt.Range("G" & 2).Value = "Anzahl Pos."
Blatt.Range("H" & 2).Value = ""
Blatt.Range("I" & 2).Value = ""
Blatt.Range("J" & 2).Value = ""
Blatt.Range("K" & 2).Value = ""
Blatt.Range("L" & 2).Value = ""
Dim cnt = 3
For Each r In dt.Rows
Blatt.Range("A" & cnt).Value = cnt - 2
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("C" & cnt).Value = r("BelegNr")
Blatt.Range("D" & cnt).Value = r("LKW Kennzeichen")
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Try
Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
If ZOLLANMELDUNG.Handelsrechnung <> "" Then
Dim RechnungsString = ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine)
Dim rows() As String = RechnungsString.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)
For Each row As String In rows
If IsDate(row) AndAlso row.Length = 10 Then
RechnungsString = RechnungsString.Replace(row.ToString, "")
End If
Next
Blatt.Range("E" & cnt).Value = RechnungsString.Trim
End If
Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.ABGABEN_EUST
Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.ANZ_POS
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" Then
Blatt.Range("C" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
Me.Refresh()
cnt += 1
Next
Else
Blatt.Range("I1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
Dim cnt = 3
For Each r In dt.Rows
Blatt.Range("A" & cnt).Value = cnt - 2
Blatt.Range("B" & cnt).Value = r("Abfertigungsnummer")
' Blatt.Range("C" & cnt).Value = r("RechnungsNr")
Blatt.Range("C" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("D" & cnt).Value = r("Abfertigungsbezeichnung")
Blatt.Range("E" & cnt).Value = r("Absender")
Blatt.Range("F" & cnt).Value = "" 'r("Betrag")
Blatt.Range("H" & cnt).Value = r("BelegNr")
Blatt.Range("L" & cnt).Value = r("LKW Kennzeichen")
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Try
Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
Blatt.Range("F" & cnt).Value = ZOLLANMELDUNG.RechnungspreisohneWahrung
Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine)
Blatt.Range("I" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
Blatt.Range("J" & cnt).Value = ZOLLANMELDUNG.ABGABEN_EUST
Blatt.Range("K" & cnt).Value = ZOLLANMELDUNG.ANZ_POS
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" Then
Blatt.Range("H" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
Me.Refresh()
cnt += 1
Next
End If
Datei.Save
If False Then
Blatt.PrintOutEx()
Else
'Process.Start(Path)
.Visible = True
End If
End With
End If
End If
lblKdAusFortschritt.Text = "fertig"
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
lblKdAusFortschritt.Text = "Fehler"
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub ToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem2.Click
Try
Me.Cursor = Cursors.WaitCursor
Dim RPT As New cSpeditionsbuchReport
If CheckBox4.Checked Then
RPT.RunReport_VERAG_ZA_DETAIL_FULL(770931, CDate(txtAbfertDat.Text), CDate(txtAbfertDatBis.Text))
ElseIf cbxDetailbericht.Checked Then
RPT.RunReport_VERAG_ZA_DETAIL(770931, CDate(txtAbfertDat.Text), CDate(txtAbfertDatBis.Text))
Else
RPT.RunReport_VERAG_ZA_GENERAL(770931, CDate(txtAbfertDat.Text), CDate(txtAbfertDatBis.Text))
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
Me.Cursor = Cursors.Default
Exit Sub
lblKdAusFortschritt.Text = "lädt..."
Me.Cursor = Cursors.WaitCursor
Try
Dim kdnrsrch = 770931
Dim dt As DataTable = SQL.loadDgvBySql("SELECT CAST([FilialenNr] as varchar) + '/' + CAST([AbfertigungsNr] as varchar) Abfertigungsnummer
,cast([Abfertigungsdatum] as date)Abfertigungsdatum
,Absender,Empfänger
,Rechnungsbetrag Betrag
,BelegNr
,[FilialenNr],[AbfertigungsNr],Speditionsbuch.Abfertigungsart,Abfertigungsbezeichnung,Speditionsbuch.Zollsystem_Land,isnull(KdAuftragsNr,'')KdAuftragsNr
FROM Speditionsbuch INNER JOIN [Abfertigungsarten] ON Speditionsbuch.Abfertigungsart=Abfertigungsarten.Abfertigungsart
where (EmpfängerKundenNr IN (" & kdnrsrch & ") OR VermittlerKundenNr IN (" & kdnrsrch & ")) and Abfertigungsdatum BETWEEN '" & txtAbfertDat.Text & "' AND '" & txtAbfertDatBis.Text & "' And isAbfertigung =1 ", "FMZOLL") 'Speditionsbuch.Abfertigungsart IN (1,3,29,38,66,46,47,37,39)
Dim Path = ""
If dt IsNot Nothing And dt.Rows.Count > 0 Then
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\"
If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
My.Computer.FileSystem.CreateDirectory(sPath)
End If
Dim exclApp As Object 'as Application
Dim Datei As Object 'as WorkBook
Dim Blatt As Object 'Microsoft.Office.Interop.Excel.Worksheet 'As Object 'as Worksheet
exclApp = CreateObject("Excel.Application")
If cbxDetailbericht.Checked Then
With exclApp
.Visible = False
Try
Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
While System.IO.File.Exists(Path)
Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
End While
My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.KVI_report, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
Me.Cursor = Cursors.Default
Exit Sub
End Try
Datei = .Workbooks.Open(Path) 'Anpassen
Blatt = Datei.Worksheets(1) 'Anpassen
'Blatt.Range("I1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
Dim cnt = 2
For Each r In dt.Rows
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Try
Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
If ZOLLANMELDUNG.dtWARENPOS.Rows.Count > 0 Then
Dim rowcounter As Integer = 0
For Each row As DataRow In ZOLLANMELDUNG.dtWARENPOS.Rows
Dim ZollInProzent As Double = 0
If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
End If
Dim KdAtrNr = r("KDAuftragsNr")
If kdnrsrch = 770931 Then ' Sonderfall Kanadevia
If KdAtrNr.ToString.Contains("/") Then
KdAtrNr = KdAtrNr.ToString.Split("/")(0) 'nur vorderer Teil nehmen
End If
End If
Blatt.Range("A" & cnt).Value = cnt - 1
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
Blatt.Range("F" & cnt).Value = KdAtrNr
Blatt.Range("G" & cnt).Value = r("BelegNr")
Blatt.Range("H" & cnt).Value = row.Item("PosNr")
Blatt.Range("I" & cnt).Value = row.Item("WarenNr")
Blatt.Range("J" & cnt).Value = "-"
Blatt.Range("K" & cnt).Value = row.Item("WarenBez")
Blatt.Range("L" & cnt).Value = ""
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
Blatt.Range("O" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
Blatt.Range("P" & cnt).Value = ""
Blatt.Range("Q" & cnt).Value = row.Item("Netto")
Blatt.Range("R" & cnt).Value = row.Item("PosWert")
Blatt.Range("S" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_EUST, "")
Blatt.Range("T" & cnt).Value = IIf(rowcounter = 0, ZOLLANMELDUNG.ABGABEN_ZOLL, "")
Blatt.Range("U" & cnt).Value = IIf(rowcounter = 0, ZollInProzent.ToString("N2") & " %", "")
Blatt.Range("V" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
Blatt.Range("W" & cnt).Value = ZOLLANMELDUNG.Absender
Blatt.Range("X" & cnt).Value = row.Item("Herkunft")
Blatt.Range("Y" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Length >= 2, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(ZOLLANMELDUNG.VerBestLandZst.ToString.Length - 2, 2), "")
Blatt.Range("z" & cnt).Value = ZOLLANMELDUNG.Incoterms_code
Blatt.Range("AA" & cnt).Value = ZOLLANMELDUNG.Incoterms_ort
Blatt.Range("AB" & cnt).Value = row.Item("Verfahren")
Blatt.Range("AC" & cnt).Value = row.Item("Preferenz")
Blatt.Range("AD" & cnt).Value = IIf(row.Item("isCBAM"), "Y", "N")
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("G" & cnt).Value = "" Then
Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
cnt += 1
rowcounter += 1
Next
Else
Dim ZollInProzent As Double = 0
If If(ZOLLANMELDUNG.RechnungspreisohneWahrung, "") <> "" Then
ZollInProzent = ZOLLANMELDUNG.ABGABEN_ZOLL / ZOLLANMELDUNG.RechnungspreisohneWahrung * 100
End If
Dim KdAtrNr = r("KDAuftragsNr")
If kdnrsrch = 770931 Then ' Sonderfall Kanadevia
If KdAtrNr.ToString.Contains("/") Then
KdAtrNr = KdAtrNr.ToString.Split("/")(0) 'nur vorderer Teil nehmen
End If
End If
Blatt.Range("A" & cnt).Value = cnt - 1
Blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
Blatt.Range("D" & cnt).Value = ZOLLANMELDUNG.Empfaenger
Blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
Blatt.Range("F" & cnt).Value = KdAtrNr
Blatt.Range("G" & cnt).Value = r("BelegNr")
Blatt.Range("H" & cnt).Value = ""
Blatt.Range("I" & cnt).Value = ""
Blatt.Range("J" & cnt).Value = "-"
Blatt.Range("K" & cnt).Value = ""
Blatt.Range("L" & cnt).Value = ""
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Waehrungscode
Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Geschaeftsart
Blatt.Range("O" & cnt).Value = ZOLLANMELDUNG.Zollstelle_Eingang
Blatt.Range("P" & cnt).Value = ""
Blatt.Range("Q" & cnt).Value = ""
Blatt.Range("R" & cnt).Value = ""
Blatt.Range("S" & cnt).Value = ZOLLANMELDUNG.ABGABEN_EUST
Blatt.Range("T" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
Blatt.Range("U" & cnt).Value = ZollInProzent.ToString("N2") & " %"
Blatt.Range("V" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Count > 1, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(0, 2), "")
Blatt.Range("W" & cnt).Value = ZOLLANMELDUNG.Absender
Blatt.Range("X" & cnt).Value = ""
Blatt.Range("Y" & cnt).Value = IIf(ZOLLANMELDUNG.VerBestLandZst.ToString.Length >= 2, ZOLLANMELDUNG.VerBestLandZst.ToString.Substring(ZOLLANMELDUNG.VerBestLandZst.ToString.Length - 2, 2), "")
Blatt.Range("Z" & cnt).Value = ZOLLANMELDUNG.Incoterms_code
Blatt.Range("AA" & cnt).Value = ZOLLANMELDUNG.Incoterms_ort
Blatt.Range("AB" & cnt).Value = ""
Blatt.Range("AC" & cnt).Value = ""
Blatt.Range("AD" & cnt).Value = ""
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" AndAlso Blatt.Range("G" & cnt).Value = "" Then
Blatt.Range("G" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
End If
End If
cnt += 1
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
Me.Refresh()
Next
Datei.Save
If False Then
Blatt.PrintOutEx()
Else
'Process.Start(Path)
.Visible = True
End If
End With
Else
With exclApp
.Visible = False
Try
Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "" & " .xlsx"
While System.IO.File.Exists(Path)
Path = sPath & "KVI_" & txtAbfertDat.Text & "-" & txtAbfertDatBis.Text & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
End While
My.Computer.FileSystem.WriteAllBytes(Path, My.Resources.KVI_report_general, False)
Catch ex As System.Exception
' MsgBox(ex.Message)
MsgBox("ERROR 01: " & ex.Message & vbNewLine & ex.StackTrace)
Me.Cursor = Cursors.Default
Exit Sub
End Try
Datei = .Workbooks.Open(Path) 'Anpassen
Blatt = Datei.Worksheets(1) 'Anpassen
Blatt.Range("I1").Value = txtAbfertDat.Text & "-" & txtAbfertDatBis.Text
Dim cnt = 3
For Each r In dt.Rows
Blatt.Range("A" & cnt).Value = cnt - 2
Blatt.Range("B" & cnt).Value = r("Abfertigungsnummer")
' Blatt.Range("C" & cnt).Value = r("RechnungsNr")
Blatt.Range("C" & cnt).Value = r("Abfertigungsdatum")
Blatt.Range("D" & cnt).Value = r("Abfertigungsbezeichnung")
Blatt.Range("E" & cnt).Value = r("Absender")
Blatt.Range("F" & cnt).Value = r("Empfänger")
Blatt.Range("H" & cnt).Value = "" 'r("Betrag")
Dim KdAtrNr = r("KDAuftragsNr")
If kdnrsrch = 770931 Then ' Sonderfall Kanadevia
If KdAtrNr.ToString.Contains("/") Then
KdAtrNr = KdAtrNr.ToString.Split("/")(0) 'nur vorderer Teil nehmen
End If
End If
Blatt.Range("G" & cnt).Value = KdAtrNr
Dim ZOLLANMELDUNG As New DAKOSY_Worker.cZollsysteme_Aktenbeschriftung
Try
Dim zS = If(r("Zollsystem_Land") IsNot DBNull.Value, r("Zollsystem_Land").ToString(), "")
If ZOLLANMELDUNG.getDataByBezugsnummer(r("FilialenNr") & "/" & r("AbfertigungsNr"), r("Abfertigungsart"), "", False, zS) Then
Blatt.Range("H" & cnt).Value = ZOLLANMELDUNG.RechnungspreisohneWahrung
Blatt.Range("I" & cnt).Value = ZOLLANMELDUNG.Handelsrechnung.Replace(", ", "," & vbNewLine)
Blatt.Range("K" & cnt).Value = ZOLLANMELDUNG.ABGABEN_ZOLL
Blatt.Range("L" & cnt).Value = ZOLLANMELDUNG.ANZ_POS
'----------------------------------NEW
Blatt.Range("M" & cnt).Value = ZOLLANMELDUNG.Anmelder
Blatt.Range("N" & cnt).Value = ZOLLANMELDUNG.Warenbezeichung
Blatt.Range("O" & cnt).Value = ZOLLANMELDUNG.VerBestLandZst
'----------------------------------
If If(ZOLLANMELDUNG.ATCMRN, "") <> "" Then
Blatt.Range("J" & cnt).Value = ZOLLANMELDUNG.ATCMRN
End If
End If
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
lblKdAusFortschritt.Text = (cnt - 2) & "/" & dt.Rows.Count
Me.Refresh()
cnt += 1
Next
Datei.Save
If False Then
Blatt.PrintOutEx()
Else
'Process.Start(Path)
.Visible = True
End If
End With
End If
End If
lblKdAusFortschritt.Text = "fertig"
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
lblKdAusFortschritt.Text = "Fehler"
End Try
Me.Cursor = Cursors.Default
End Sub
Private Sub DataGridView_CellContentClick(sender As Object, e As DataGridViewCellEventArgs)
End Sub
End Class
Class cSpeditionsbuchReport
Public Function RunReport_VERAG_ZA_DETAIL(KDNR As Integer,
AbfVon As Date,
AbfBis As Date,
Optional whereStr As String = "",
Optional Open As Boolean = True) As String
Try
Dim dt As DataTable = LoadSpeditionsbuchData(KDNR, AbfVon, AbfBis, whereStr)
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
Return ""
End If
Dim path As String = CreateTargetPath(AbfVon, AbfBis, "VERAG_RPT_DETAIL_")
Dim templateBytes() As Byte = My.Resources.KVI_report ', My.Resources.KVI_report_general)
My.Computer.FileSystem.WriteAllBytes(path, templateBytes, False)
Dim exclApp As Object = Nothing
Dim datei As Object = Nothing
Dim blatt As Object = Nothing
Try
exclApp = CreateObject("Excel.Application")
exclApp.Visible = False
datei = exclApp.Workbooks.Open(path)
blatt = datei.Worksheets(1)
CreateDetailReport(blatt, dt, KDNR)
' CreateGeneralReport(blatt, dt, KDNR, AbfVon, AbfBis)
datei.Save()
If Open Then
exclApp.Visible = True
Else
datei.Close(True)
exclApp.Quit()
End If
Catch ex As Exception
Try
If datei IsNot Nothing Then datei.Close(False)
Catch
End Try
Try
If exclApp IsNot Nothing Then exclApp.Quit()
Catch
End Try
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
Return ""
End Try
Return path
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
Return ""
End Try
End Function
Public Function RunReport_VERAG_ZA_GENERAL(KDNR As Integer,
AbfVon As Date,
AbfBis As Date,
Optional whereStr As String = "",
Optional Open As Boolean = True) As String
Try
Dim dt As DataTable = LoadSpeditionsbuchData(KDNR, AbfVon, AbfBis, whereStr)
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
Return ""
End If
Dim path As String = CreateTargetPath(AbfVon, AbfBis, "VERAG_RPT_GENERAL")
Dim templateBytes() As Byte = My.Resources.KVI_report_general
My.Computer.FileSystem.WriteAllBytes(path, templateBytes, False)
Dim exclApp As Object = Nothing
Dim datei As Object = Nothing
Dim blatt As Object = Nothing
Try
exclApp = CreateObject("Excel.Application")
exclApp.Visible = False
datei = exclApp.Workbooks.Open(path)
blatt = datei.Worksheets(1)
CreateGeneralReport(blatt, dt, KDNR, AbfVon, AbfBis)
datei.Save()
If Open Then
exclApp.Visible = True
Else
datei.Close(True)
exclApp.Quit()
End If
Catch ex As Exception
Try
If datei IsNot Nothing Then datei.Close(False)
Catch
End Try
Try
If exclApp IsNot Nothing Then exclApp.Quit()
Catch
End Try
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
Return ""
End Try
Return path
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
Return ""
End Try
End Function
Private Function LoadSpeditionsbuchData(KDNR As Integer,
AbfVon As Date,
AbfBis As Date,
Optional whereStr As String = "") As DataTable
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim sqlText As String =
"SELECT CAST([FilialenNr] as varchar) + '/' + CAST([AbfertigungsNr] as varchar) Abfertigungsnummer, " &
" CAST([Abfertigungsdatum] as date) Abfertigungsdatum, " &
" Absender, Empfänger, " &
" Rechnungsbetrag Betrag, " &
" BelegNr, " &
" [FilialenNr], [AbfertigungsNr], " &
" Speditionsbuch.Abfertigungsart, " &
" Abfertigungsbezeichnung, " &
" Speditionsbuch.Zollsystem_Land, " &
" ISNULL(KdAuftragsNr,'') KdAuftragsNr, " &
" SendungID " &
"FROM Speditionsbuch " &
"INNER JOIN [Abfertigungsarten] " &
" ON Speditionsbuch.Abfertigungsart = Abfertigungsarten.Abfertigungsart " &
"WHERE (EmpfängerKundenNr IN (" & KDNR & ") OR VermittlerKundenNr IN (" & KDNR & ")) " &
" AND Abfertigungsdatum BETWEEN '" & AbfVon.ToShortDateString & "' AND '" & AbfBis.ToShortDateString & "' " &
" AND isAbfertigung = 1 "
Return SQL.loadDgvBySql(sqlText & " " & whereStr, "FMZOLL")
End Function
Private Function CreateTargetPath(AbfVon As Date, AbfBis As Date, prefix As String) As String
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\"
If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
My.Computer.FileSystem.CreateDirectory(sPath)
End If
Dim path As String = sPath & prefix & AbfVon.ToString("yyyy-MM-dd") & "-" & AbfBis.ToString("yyyy-MM-dd") & ".xlsx"
While System.IO.File.Exists(path)
path = sPath & prefix & AbfVon.ToString("yyyy-MM-dd") & "-" & AbfBis.ToString("yyyy-MM-dd") & "_" & Now.ToString("ddMMyyyyHHmmss") & ".xlsx"
End While
Return path
End Function
Private Function LoadCustomsDeclaration(r As DataRow) As cVERAG_CustomsDeclarations
Dim cd As cVERAG_CustomsDeclarations = Nothing
Dim belegNr As String = If(r("BelegNr"), "").ToString().Trim()
If belegNr <> "" Then
cd = cVERAG_CustomsDeclarations.loadByMRN(belegNr, True)
End If
If cd Is Nothing OrElse Not cd.hasEntry Then
Dim sendungsId As String = If(r("SendungID"), "").ToString().Trim()
If sendungsId <> "" Then
cd = cVERAG_CustomsDeclarations.loadBySendungsID(sendungsId, True)
End If
End If
If cd Is Nothing Then cd = New cVERAG_CustomsDeclarations
Return cd
End Function
Private Sub CreateDetailReport(blatt As Object, dt As DataTable, kdnr As Integer)
Dim cnt As Integer = 2
For Each r As DataRow In dt.Rows
Try
Dim cd As cVERAG_CustomsDeclarations = LoadCustomsDeclaration(r)
If Not cd.hasEntry Then
MsgBox("ERROR: Nicht gefunden: " &
If(r("BelegNr"), "").ToString() & " " &
If(r("FilialenNr"), "").ToString() & "/" &
If(r("AbfertigungsNr"), "").ToString())
End If
's
WriteDetailReportRow(blatt, r, cd, cnt, kdnr)
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
End Try
Next
End Sub
Private Sub CreateGeneralReport(blatt As Object,
dt As DataTable,
kdnr As Integer,
AbfVon As Date,
AbfBis As Date)
blatt.Range("I1").Value = AbfVon.ToShortDateString & "-" & AbfBis.ToShortDateString
Dim cnt As Integer = 3
For Each r As DataRow In dt.Rows
Try
Dim cd As cVERAG_CustomsDeclarations = LoadCustomsDeclaration(r)
If Not cd.hasEntry Then
MsgBox("ERROR: Nicht gefunden: " &
If(r("BelegNr"), "").ToString() & " " &
If(r("FilialenNr"), "").ToString() & "/" &
If(r("AbfertigungsNr"), "").ToString())
End If
WriteGeneralReportRow(blatt, r, cd, cnt, kdnr)
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
End Try
Next
End Sub
Private Sub WriteDetailReportRow(blatt As Object,
r As DataRow,
cd As cVERAG_CustomsDeclarations,
ByRef cnt As Integer,
kdnrsrch As Integer)
Dim kdAtrNr As String = NormalizeKdAuftragsNr(r("KdAuftragsNr"), kdnrsrch)
If cd IsNot Nothing AndAlso cd.hasEntry Then
Dim empfaenger As String = GetPartyName(cd, cVERAG_CustomsDeclarations.IMPORTER_ROLES, "")
Dim absender As String = GetPartyName(cd, cVERAG_CustomsDeclarations.EXPORTER_ROLES, "")
Dim eustBetrag As Decimal = GetDutyAmount(cd, {"B%", "B00", "EUST", "VAT"})
Dim zollBetrag As Decimal = GetDutyAmountExcluding(cd, {"B%", "B00", "EUST", "VAT"})
Dim invoiceAmount As Decimal = If(cd.za_InvoiceAmount, 0D)
Dim zollInProzent As Double = 0
If invoiceAmount <> 0 Then
zollInProzent = CDbl(zollBetrag / invoiceAmount * 100D)
End If
If cd.Items IsNot Nothing AndAlso cd.Items.Count > 0 Then
Dim rowcounter As Integer = 0
For Each item As cVERAG_CustomsDeclarations_Item In cd.Items
blatt.Range("A" & cnt).Value = cnt - 1
blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
blatt.Range("D" & cnt).Value = empfaenger
blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
blatt.Range("F" & cnt).Value = kdAtrNr
blatt.Range("G" & cnt).Value = If(Not String.IsNullOrWhiteSpace(If(r("BelegNr"), "").ToString()), r("BelegNr"), cd.za_MRN)
blatt.Range("H" & cnt).Value = item.zaItem_PosNo
blatt.Range("I" & cnt).Value = item.zaItem_HSCode
blatt.Range("J" & cnt).Value = "-"
blatt.Range("K" & cnt).Value = item.zaItem_Description
blatt.Range("L" & cnt).Value = ""
blatt.Range("M" & cnt).Value = cd.za_InvoiceCurrency
blatt.Range("N" & cnt).Value = item.zaItem_MainProcedure 'cd.za_MainProcedure
blatt.Range("O" & cnt).Value = cd.za_EntryCustomsOffice
blatt.Range("P" & cnt).Value = If(item.zaItem_PosNo = 1, cd.za_TotGrossMass, "")
blatt.Range("Q" & cnt).Value = item.zaItem_NetMass
blatt.Range("R" & cnt).Value = If(item.zaItem_InvoiceValueForeign, item.zaItem_InvoiceValueEUR)
blatt.Range("S" & cnt).Value = If(rowcounter = 0, eustBetrag, "")
blatt.Range("T" & cnt).Value = If(rowcounter = 0, zollBetrag, "")
blatt.Range("U" & cnt).Value = If(rowcounter = 0, zollInProzent.ToString("N2") & " %", "")
blatt.Range("V" & cnt).Value = cd.za_CountryDispatch
blatt.Range("W" & cnt).Value = absender
blatt.Range("X" & cnt).Value = item.zaItem_OriginCountry
blatt.Range("Y" & cnt).Value = cd.za_CountryDestination
blatt.Range("Z" & cnt).Value = cd.za_Incoterms
blatt.Range("AA" & cnt).Value = cd.za_IncotermsPlace
blatt.Range("AB" & cnt).Value = item.zaItem_MainProcedure & If(Not String.IsNullOrWhiteSpace(item.zaItem_AdditionalProc), "/" & item.zaItem_AdditionalProc, "")
blatt.Range("AC" & cnt).Value = item.zaItem_PreferenceCode
blatt.Range("AD" & cnt).Value = If(IsItemCBAM(item), "Y", "N")
blatt.Range("AE" & cnt).Value = item.GetInvoiceListString()
cnt += 1
rowcounter += 1
Next
Else
blatt.Range("A" & cnt).Value = cnt - 1
blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
blatt.Range("D" & cnt).Value = empfaenger
blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
blatt.Range("F" & cnt).Value = kdAtrNr
blatt.Range("G" & cnt).Value = If(Not String.IsNullOrWhiteSpace(If(r("BelegNr"), "").ToString()), r("BelegNr"), cd.za_MRN)
blatt.Range("H" & cnt).Value = ""
blatt.Range("I" & cnt).Value = ""
blatt.Range("J" & cnt).Value = "-"
blatt.Range("K" & cnt).Value = ""
blatt.Range("L" & cnt).Value = ""
blatt.Range("M" & cnt).Value = cd.za_InvoiceCurrency
blatt.Range("N" & cnt).Value = cd.za_MainProcedure
blatt.Range("O" & cnt).Value = cd.za_EntryCustomsOffice
blatt.Range("P" & cnt).Value = ""
blatt.Range("Q" & cnt).Value = ""
blatt.Range("R" & cnt).Value = ""
blatt.Range("S" & cnt).Value = eustBetrag
blatt.Range("T" & cnt).Value = zollBetrag
blatt.Range("U" & cnt).Value = zollInProzent.ToString("N2") & " %"
blatt.Range("V" & cnt).Value = cd.za_CountryDispatch
blatt.Range("W" & cnt).Value = absender
blatt.Range("X" & cnt).Value = ""
blatt.Range("Y" & cnt).Value = cd.za_CountryDestination
blatt.Range("Z" & cnt).Value = cd.za_Incoterms
blatt.Range("AA" & cnt).Value = cd.za_IncotermsPlace
blatt.Range("AB" & cnt).Value = ""
blatt.Range("AC" & cnt).Value = ""
blatt.Range("AD" & cnt).Value = ""
cnt += 1
End If
Else
blatt.Range("A" & cnt).Value = cnt - 1
blatt.Range("B" & cnt).Value = r("Abfertigungsdatum")
blatt.Range("C" & cnt).Value = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(r("FilialenNr"))
blatt.Range("D" & cnt).Value = r("Empfänger")
blatt.Range("E" & cnt).Value = r("FilialenNr") & "/" & r("AbfertigungsNr")
blatt.Range("F" & cnt).Value = kdAtrNr
blatt.Range("G" & cnt).Value = r("BelegNr")
cnt += 1
End If
End Sub
Private Sub WriteGeneralReportRow(blatt As Object,
r As DataRow,
cd As cVERAG_CustomsDeclarations,
ByRef cnt As Integer,
kdnrsrch As Integer)
Dim kdAtrNr As String = NormalizeKdAuftragsNr(r("KdAuftragsNr"), kdnrsrch)
blatt.Range("A" & cnt).Value = cnt - 2
blatt.Range("B" & cnt).Value = r("Abfertigungsnummer")
blatt.Range("C" & cnt).Value = r("Abfertigungsdatum")
blatt.Range("D" & cnt).Value = r("Abfertigungsbezeichnung")
blatt.Range("E" & cnt).Value = r("Absender")
blatt.Range("F" & cnt).Value = r("Empfänger")
blatt.Range("G" & cnt).Value = kdAtrNr
blatt.Range("H" & cnt).Value = ""
If cd IsNot Nothing AndAlso cd.hasEntry Then
Dim zollBetrag As Decimal = GetDutyAmountExcluding(cd, {"B%", "B00", "EUST", "VAT"})
blatt.Range("H" & cnt).Value = cd.za_InvoiceAmount
blatt.Range("I" & cnt).Value = GetInvoiceReferences(cd)
blatt.Range("J" & cnt).Value = cd.za_MRN
blatt.Range("K" & cnt).Value = zollBetrag
blatt.Range("L" & cnt).Value = If(cd.Items IsNot Nothing, cd.Items.Count, 0)
blatt.Range("M" & cnt).Value = GetPartyName(cd, cVERAG_CustomsDeclarations.DECLARANT_ROLES, "")
blatt.Range("N" & cnt).Value = GetItemsDescription(cd)
blatt.Range("O" & cnt).Value = cd.za_CountryDispatch & " --> " & cd.za_CountryDestination
End If
cnt += 1
End Sub
Private Function GetPartyName(cd As cVERAG_CustomsDeclarations,
roles As String(),
Optional fallback As String = "") As String
If cd Is Nothing OrElse cd.Parties Is Nothing Then Return fallback
Dim p = cd.Parties.FirstOrDefault(Function(x) roles.Contains(If(x.zaParty_Role, "").Trim().ToUpper()))
If p Is Nothing Then Return fallback
Return If(p.zaParty_Name, fallback)
End Function
Private Function GetDutyAmount(cd As cVERAG_CustomsDeclarations, dutyTypes As String()) As Decimal
If cd Is Nothing OrElse cd.Duties Is Nothing Then Return 0D
Return cd.Duties.
Where(Function(d) DutyTypeMatches(If(d.zaDuty_DutyType, ""), dutyTypes)).
Sum(Function(d) If(d.zaDuty_AmountEUR, 0D))
End Function
Private Function GetDutyAmountExcluding(cd As cVERAG_CustomsDeclarations, excludedDutyTypes As String()) As Decimal
If cd Is Nothing OrElse cd.Duties Is Nothing Then Return 0D
Return cd.Duties.
Where(Function(d) Not DutyTypeMatches(If(d.zaDuty_DutyType, ""), excludedDutyTypes)).
Sum(Function(d) If(d.zaDuty_AmountEUR, 0D))
End Function
Private Function DutyTypeMatches(dutyType As String, patterns As String()) As Boolean
Dim value As String = If(dutyType, "").Trim().ToUpper()
If value = "" OrElse patterns Is Nothing Then Return False
For Each p In patterns
Dim pattern As String = If(p, "").Trim().ToUpper()
If pattern = "" Then Continue For
If pattern.Contains("%") Then
Dim regexPattern As String =
"^" & System.Text.RegularExpressions.Regex.Escape(pattern).Replace("%", ".*") & "$"
If System.Text.RegularExpressions.Regex.IsMatch(value, regexPattern) Then
Return True
End If
Else
If value = pattern Then
Return True
End If
End If
Next
Return False
End Function
Private Function GetInvoiceReferences(cd As cVERAG_CustomsDeclarations) As String
If cd Is Nothing OrElse cd.Documents Is Nothing OrElse cd.Documents.Count = 0 Then Return ""
Return String.Join(vbNewLine,
cd.Documents.
Where(Function(d) Not String.IsNullOrWhiteSpace(If(d.zaDoc_Reference, ""))).
Select(Function(d) d.zaDoc_Reference).
Distinct())
End Function
Private Function GetItemsDescription(cd As cVERAG_CustomsDeclarations) As String
If cd Is Nothing OrElse cd.Items Is Nothing OrElse cd.Items.Count = 0 Then Return ""
Return String.Join(" | ",
cd.Items.
Where(Function(i) Not String.IsNullOrWhiteSpace(If(i.zaItem_Description, ""))).
Select(Function(i) i.zaItem_Description).
Distinct())
End Function
Private Function IsItemCBAM(item As cVERAG_CustomsDeclarations_Item) As Boolean
Try
If item Is Nothing Then Return False
Dim cbamList = VERAG_PROG_ALLGEMEIN.cGreendeal_CBAM_Trn.LoadCBAMTariffNumbers()
Dim hs = If(item.zaItem_HSCode, "").Trim()
If hs = "" OrElse cbamList Is Nothing Then Return False
For Each p In cbamList
If hs.StartsWith(If(p, "").Trim()) Then Return True
Next
Catch
End Try
Return False
End Function
Private Function NormalizeKdAuftragsNr(value As Object, kdnrsrch As Integer) As String
Dim kdAtrNr As String = If(value, "").ToString()
If kdnrsrch = 770931 AndAlso kdAtrNr.Contains("/") Then
kdAtrNr = kdAtrNr.Split("/"c)(0)
End If
Return kdAtrNr
End Function
Private Function LeftSafe(value As String, length As Integer) As String
value = If(value, "")
If value.Length < length Then Return value
Return value.Substring(0, length)
End Function
Private Function RightSafe(value As String, length As Integer) As String
value = If(value, "")
If value.Length < length Then Return value
Return value.Substring(value.Length - length, length)
End Function
Public Function RunReport_VERAG_ZA_DETAIL_FULL(KDNR As Integer,
AbfVon As Date,
AbfBis As Date,
Optional whereStr As String = "",
Optional Open As Boolean = True) As String
Try
Dim dt As DataTable = LoadSpeditionsbuchData(KDNR, AbfVon, AbfBis, whereStr)
If dt Is Nothing OrElse dt.Rows.Count = 0 Then
Return ""
End If
Dim path As String = CreateTargetPathCsv(AbfVon, AbfBis, "KVI_DETAIL_FULL_")
Using sw As New System.IO.StreamWriter(path, False, System.Text.Encoding.UTF8)
sw.WriteLine(String.Join(";", {
CsvField("Speditionsbuch_Abfertigungsnummer"),
CsvField("Speditionsbuch_Abfertigungsdatum"),
CsvField("Speditionsbuch_Absender"),
CsvField("Speditionsbuch_Empfaenger"),
CsvField("Speditionsbuch_BelegNr"),
CsvField("Speditionsbuch_KdAuftragsNr"),
CsvField("Speditionsbuch_FilialenNr"),
CsvField("Speditionsbuch_AbfertigungsNr"),
CsvField("Speditionsbuch_Abfertigungsart"),
CsvField("Speditionsbuch_Abfertigungsbezeichnung"),
CsvField("Speditionsbuch_Zollsystem_Land"),
CsvField("Speditionsbuch_SendungID"),
CsvField("za_Id"),
CsvField("za_System"),
CsvField("za_CustomsSystem"),
CsvField("za_CustomsSystemCountry"),
CsvField("za_IsExternalSystem"),
CsvField("za_IsFinalDeclaration"),
CsvField("za_UCR"),
CsvField("za_Mandant_ID"),
CsvField("za_Bereich_ID"),
CsvField("za_Firma"),
CsvField("za_Niederlassung"),
CsvField("za_MRN"),
CsvField("za_LRN"),
CsvField("za_DeclarationNo"),
CsvField("za_ReferenceCustomer"),
CsvField("za_REGIME"),
CsvField("za_RegistrationType"),
CsvField("za_MainProcedure"),
CsvField("za_AdditionalProcedure"),
CsvField("za_DeclarationDate"),
CsvField("za_ReleaseDate"),
CsvField("za_AcceptanceDate"),
CsvField("za_CustomsOffice"),
CsvField("za_EntryCustomsOffice"),
CsvField("za_RepresentationCode"),
CsvField("za_TransportModeInland"),
CsvField("za_TransportModeBorder"),
CsvField("za_MeansOfTransport_Vehicle"),
CsvField("za_MeansOfTransport_Type"),
CsvField("za_MeansOfTransport_Nationality"),
CsvField("za_ContainerNr1"),
CsvField("za_ContainerNr2"),
CsvField("za_ContainerNr3"),
CsvField("za_ContainerNr4"),
CsvField("za_ContainerNr5"),
CsvField("za_ContainerNr6"),
CsvField("za_ContainerNr7"),
CsvField("za_ContainerNr8"),
CsvField("za_ContainerNr9"),
CsvField("za_CountryDispatch"),
CsvField("za_CountryDestination"),
CsvField("za_CountryDestinationState"),
CsvField("za_CountryImport"),
CsvField("za_WarehouseCode"),
CsvField("za_Incoterms"),
CsvField("za_IncotermsPlace"),
CsvField("za_InvoiceAmount"),
CsvField("za_InvoiceCurrency"),
CsvField("za_FiscalRepFlag"),
CsvField("za_TaxDeduction"),
CsvField("za_ApplicantTaxOffice"),
CsvField("za_ApplicantVATNo"),
CsvField("za_DV1Flag"),
CsvField("za_PrevDocument_Type"),
CsvField("za_PrevDocument_No"),
CsvField("za_AvisoId"),
CsvField("za_SendungsId"),
CsvField("za_Remarks"),
CsvField("za_Sachbearbeiter"),
CsvField("za_SachbearbeiterId"),
CsvField("za_TotGrossMass"),
CsvField("Parties_All"),
CsvField("Importer_Name"),
CsvField("Importer_EORI"),
CsvField("Exporter_Name"),
CsvField("Exporter_EORI"),
CsvField("Declarant_Name"),
CsvField("Declarant_EORI"),
CsvField("Duties_All"),
CsvField("Duty_Total"),
CsvField("Duty_EUST"),
CsvField("Duty_Excluding_EUST"),
CsvField("Header_Documents_All"),
CsvField("Item_Documents_All"),
CsvField("All_Documents_Merged"),
CsvField("Item_PosNo"),
CsvField("Item_ArticleCode"),
CsvField("Item_HSCode"),
CsvField("Item_HSAddition1"),
CsvField("Item_HSAddition2"),
CsvField("Item_HSAddCodes1"),
CsvField("Item_HSAddCodes2"),
CsvField("Item_HSAddCodes3"),
CsvField("Item_HSAddCodes4"),
CsvField("Item_HSAddCodes5"),
CsvField("Item_HSAddCodes6"),
CsvField("Item_HSAddCodes7"),
CsvField("Item_HSAddCodes8"),
CsvField("Item_HSAddCodes9"),
CsvField("Item_HSAddCodes10"),
CsvField("Item_Description"),
CsvField("Item_PackageColli"),
CsvField("Item_PackageType"),
CsvField("Item_PackageMark"),
CsvField("Item_OriginCountry"),
CsvField("Item_PreferentialCountry"),
CsvField("Item_PreferenceCode"),
CsvField("Item_QuotaNo"),
CsvField("Item_MainProcedure"),
CsvField("Item_AdditionalProc"),
CsvField("Item_PrevProcedure"),
CsvField("Item_GrossMass"),
CsvField("Item_NetMass"),
CsvField("Item_SuppUnitCode"),
CsvField("Item_SuppQuantity"),
CsvField("Item_StatisticalValueEUR"),
CsvField("Item_CustomsValueEUR"),
CsvField("Item_InvoiceCurrency"),
CsvField("Item_InvoiceValueForeign"),
CsvField("Item_InvoiceValueEUR"),
CsvField("Item_BeguenstigungCode"),
CsvField("Item_DV1Flag"),
CsvField("Item_PosAddition"),
CsvField("Item_Remarks"),
CsvField("Item_isCBAM")
}))
For Each r As DataRow In dt.Rows
Try
Dim cd As cVERAG_CustomsDeclarations = LoadCustomsDeclaration(r)
Dim kdAtrNr As String = NormalizeKdAuftragsNr(r("KdAuftragsNr"), KDNR)
Dim importer = GetParty(cd, cVERAG_CustomsDeclarations.IMPORTER_ROLES)
Dim exporter = GetParty(cd, cVERAG_CustomsDeclarations.EXPORTER_ROLES)
Dim declarant = GetParty(cd, cVERAG_CustomsDeclarations.DECLARANT_ROLES)
Dim allParties As String = JoinParties(cd)
Dim allDuties As String = JoinDuties(cd)
Dim headerDocs As String = JoinDocuments(cd.Documents)
Dim dutyTotal As Decimal = GetDutyAmountTotal(cd)
Dim dutyEust As Decimal = GetDutyAmount(cd, {"B%", "B00", "EUST", "VAT"})
Dim dutyExcludingEust As Decimal = GetDutyAmountExcluding(cd, {"B%", "B00", "EUST", "VAT"})
If cd IsNot Nothing AndAlso cd.hasEntry AndAlso cd.Items IsNot Nothing AndAlso cd.Items.Count > 0 Then
For Each item As cVERAG_CustomsDeclarations_Item In cd.Items
Dim itemDocs As String = JoinDocuments(item.Documents)
Dim allDocsMerged As String = MergeDocumentStrings(headerDocs, itemDocs)
sw.WriteLine(String.Join(";", {
CsvField(If(r("Abfertigungsnummer"), "")),
CsvField(FormatDateForCsv(r("Abfertigungsdatum"))),
CsvField(If(r("Absender"), "")),
CsvField(If(r("Empfänger"), "")),
CsvField(If(r("BelegNr"), "")),
CsvField(kdAtrNr),
CsvField(If(r("FilialenNr"), "")),
CsvField(If(r("AbfertigungsNr"), "")),
CsvField(If(r("Abfertigungsart"), "")),
CsvField(If(r("Abfertigungsbezeichnung"), "")),
CsvField(If(r("Zollsystem_Land"), "")),
CsvField(If(r("SendungID"), "")),
CsvField(cd.za_Id),
CsvField(cd.za_System),
CsvField(cd.za_CustomsSystem),
CsvField(cd.za_CustomsSystemCountry),
CsvField(FormatBoolForCsv(cd.za_IsExternalSystem)),
CsvField(FormatBoolForCsv(cd.za_IsFinalDeclaration)),
CsvField(cd.za_UCR),
CsvField(cd.za_Mandant_ID),
CsvField(cd.za_Bereich_ID),
CsvField(cd.za_Firma),
CsvField(cd.za_Niederlassung),
CsvField(cd.za_MRN),
CsvField(cd.za_LRN),
CsvField(cd.za_DeclarationNo),
CsvField(cd.za_ReferenceCustomer),
CsvField(cd.za_REGIME),
CsvField(cd.za_RegistrationType),
CsvField(cd.za_MainProcedure),
CsvField(cd.za_AdditionalProcedure),
CsvField(FormatDateForCsv(cd.za_DeclarationDate)),
CsvField(FormatDateForCsv(cd.za_ReleaseDate)),
CsvField(FormatDateForCsv(cd.za_AcceptanceDate)),
CsvField(cd.za_CustomsOffice),
CsvField(cd.za_EntryCustomsOffice),
CsvField(cd.za_RepresentationCode),
CsvField(cd.za_TransportModeInland),
CsvField(cd.za_TransportModeBorder),
CsvField(cd.za_MeansOfTransport_Vehicle),
CsvField(cd.za_MeansOfTransport_Type),
CsvField(cd.za_MeansOfTransport_Nationality),
CsvField(cd.za_ContainerNr1),
CsvField(cd.za_ContainerNr2),
CsvField(cd.za_ContainerNr3),
CsvField(cd.za_ContainerNr4),
CsvField(cd.za_ContainerNr5),
CsvField(cd.za_ContainerNr6),
CsvField(cd.za_ContainerNr7),
CsvField(cd.za_ContainerNr8),
CsvField(cd.za_ContainerNr9),
CsvField(cd.za_CountryDispatch),
CsvField(cd.za_CountryDestination),
CsvField(cd.za_CountryDestinationState),
CsvField(cd.za_CountryImport),
CsvField(cd.za_WarehouseCode),
CsvField(cd.za_Incoterms),
CsvField(cd.za_IncotermsPlace),
CsvField(FormatDecimalForCsv(cd.za_InvoiceAmount)),
CsvField(cd.za_InvoiceCurrency),
CsvField(FormatNullableBoolForCsv(cd.za_FiscalRepFlag)),
CsvField(FormatNullableBoolForCsv(cd.za_TaxDeduction)),
CsvField(cd.za_ApplicantTaxOffice),
CsvField(cd.za_ApplicantVATNo),
CsvField(FormatNullableBoolForCsv(cd.za_DV1Flag)),
CsvField(cd.za_PrevDocument_Type),
CsvField(cd.za_PrevDocument_No),
CsvField(If(cd.za_AvisoId.HasValue, cd.za_AvisoId.Value.ToString(), "")),
CsvField(If(cd.za_SendungsId.HasValue, cd.za_SendungsId.Value.ToString(), "")),
CsvField(cd.za_Remarks),
CsvField(cd.za_Sachbearbeiter),
CsvField(cd.za_SachbearbeiterId),
CsvField(FormatDecimalForCsv(cd.za_TotGrossMass)),
CsvField(allParties),
CsvField(If(importer Is Nothing, "", importer.zaParty_Name)),
CsvField(If(importer Is Nothing, "", importer.zaParty_EORI)),
CsvField(If(exporter Is Nothing, "", exporter.zaParty_Name)),
CsvField(If(exporter Is Nothing, "", exporter.zaParty_EORI)),
CsvField(If(declarant Is Nothing, "", declarant.zaParty_Name)),
CsvField(If(declarant Is Nothing, "", declarant.zaParty_EORI)),
CsvField(allDuties),
CsvField(FormatDecimalForCsv(dutyTotal)),
CsvField(FormatDecimalForCsv(dutyEust)),
CsvField(FormatDecimalForCsv(dutyExcludingEust)),
CsvField(headerDocs),
CsvField(itemDocs),
CsvField(allDocsMerged),
CsvField(item.zaItem_PosNo),
CsvField(item.zaItem_ArticleCode),
CsvField(item.zaItem_HSCode),
CsvField(item.zaItem_HSAddition1),
CsvField(item.zaItem_HSAddition2),
CsvField(item.zaItem_HSAddCodes1),
CsvField(item.zaItem_HSAddCodes2),
CsvField(item.zaItem_HSAddCodes3),
CsvField(item.zaItem_HSAddCodes4),
CsvField(item.zaItem_HSAddCodes5),
CsvField(item.zaItem_HSAddCodes6),
CsvField(item.zaItem_HSAddCodes7),
CsvField(item.zaItem_HSAddCodes8),
CsvField(item.zaItem_HSAddCodes9),
CsvField(item.zaItem_HSAddCodes10),
CsvField(item.zaItem_Description),
CsvField(item.zaItem_PackageColli),
CsvField(item.zaItem_PackageType),
CsvField(item.zaItem_PackageMark),
CsvField(item.zaItem_OriginCountry),
CsvField(item.zaItem_PreferentialCountry),
CsvField(item.zaItem_PreferenceCode),
CsvField(item.zaItem_QuotaNo),
CsvField(item.zaItem_MainProcedure),
CsvField(item.zaItem_AdditionalProc),
CsvField(item.zaItem_PrevProcedure),
CsvField(FormatDecimalForCsv(item.zaItem_GrossMass)),
CsvField(FormatDecimalForCsv(item.zaItem_NetMass)),
CsvField(item.zaItem_SuppUnitCode),
CsvField(FormatDecimalForCsv(item.zaItem_SuppQuantity)),
CsvField(FormatDecimalForCsv(item.zaItem_StatisticalValueEUR)),
CsvField(FormatDecimalForCsv(item.zaItem_CustomsValueEUR)),
CsvField(item.zaItem_InvoiceCurrency),
CsvField(FormatDecimalForCsv(item.zaItem_InvoiceValueForeign)),
CsvField(FormatDecimalForCsv(item.zaItem_InvoiceValueEUR)),
CsvField(item.zaItem_BeguenstigungCode),
CsvField(FormatNullableBoolForCsv(item.zaItem_DV1Flag)),
CsvField(item.zaItem_PosAddition),
CsvField(item.zaItem_Remarks),
CsvField(If(IsItemCBAM(item), "Y", "N"))
}))
Next
Else
sw.WriteLine(String.Join(";", {
CsvField(If(r("Abfertigungsnummer"), "")),
CsvField(FormatDateForCsv(r("Abfertigungsdatum"))),
CsvField(If(r("Absender"), "")),
CsvField(If(r("Empfänger"), "")),
CsvField(If(r("BelegNr"), "")),
CsvField(kdAtrNr),
CsvField(If(r("FilialenNr"), "")),
CsvField(If(r("AbfertigungsNr"), "")),
CsvField(If(r("Abfertigungsart"), "")),
CsvField(If(r("Abfertigungsbezeichnung"), "")),
CsvField(If(r("Zollsystem_Land"), "")),
CsvField(If(r("SendungID"), "")),
CsvField(If(cd Is Nothing, "", cd.za_Id.ToString())),
CsvField(If(cd Is Nothing, "", cd.za_System)),
CsvField(If(cd Is Nothing, "", cd.za_CustomsSystem)),
CsvField(If(cd Is Nothing, "", cd.za_CustomsSystemCountry)),
CsvField(If(cd Is Nothing, "", FormatBoolForCsv(cd.za_IsExternalSystem))),
CsvField(If(cd Is Nothing, "", FormatBoolForCsv(cd.za_IsFinalDeclaration))),
CsvField(If(cd Is Nothing, "", cd.za_UCR)),
CsvField(If(cd Is Nothing, "", cd.za_Mandant_ID)),
CsvField(If(cd Is Nothing, "", cd.za_Bereich_ID)),
CsvField(If(cd Is Nothing, "", cd.za_Firma)),
CsvField(If(cd Is Nothing, "", cd.za_Niederlassung)),
CsvField(If(cd Is Nothing, "", cd.za_MRN)),
CsvField(If(cd Is Nothing, "", cd.za_LRN)),
CsvField(If(cd Is Nothing, "", cd.za_DeclarationNo)),
CsvField(If(cd Is Nothing, "", cd.za_ReferenceCustomer)),
CsvField(If(cd Is Nothing, "", cd.za_REGIME)),
CsvField(If(cd Is Nothing, "", cd.za_RegistrationType)),
CsvField(If(cd Is Nothing, "", cd.za_MainProcedure)),
CsvField(If(cd Is Nothing, "", cd.za_AdditionalProcedure)),
CsvField(If(cd Is Nothing, "", FormatDateForCsv(cd.za_DeclarationDate))),
CsvField(If(cd Is Nothing, "", FormatDateForCsv(cd.za_ReleaseDate))),
CsvField(If(cd Is Nothing, "", FormatDateForCsv(cd.za_AcceptanceDate))),
CsvField(If(cd Is Nothing, "", cd.za_CustomsOffice)),
CsvField(If(cd Is Nothing, "", cd.za_EntryCustomsOffice)),
CsvField(If(cd Is Nothing, "", cd.za_RepresentationCode)),
CsvField(If(cd Is Nothing, "", cd.za_TransportModeInland)),
CsvField(If(cd Is Nothing, "", cd.za_TransportModeBorder)),
CsvField(If(cd Is Nothing, "", cd.za_MeansOfTransport_Vehicle)),
CsvField(If(cd Is Nothing, "", cd.za_MeansOfTransport_Type)),
CsvField(If(cd Is Nothing, "", cd.za_MeansOfTransport_Nationality)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr1)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr2)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr3)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr4)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr5)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr6)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr7)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr8)),
CsvField(If(cd Is Nothing, "", cd.za_ContainerNr9)),
CsvField(If(cd Is Nothing, "", cd.za_CountryDispatch)),
CsvField(If(cd Is Nothing, "", cd.za_CountryDestination)),
CsvField(If(cd Is Nothing, "", cd.za_CountryDestinationState)),
CsvField(If(cd Is Nothing, "", cd.za_CountryImport)),
CsvField(If(cd Is Nothing, "", cd.za_WarehouseCode)),
CsvField(If(cd Is Nothing, "", cd.za_Incoterms)),
CsvField(If(cd Is Nothing, "", cd.za_IncotermsPlace)),
CsvField(If(cd Is Nothing, "", FormatDecimalForCsv(cd.za_InvoiceAmount))),
CsvField(If(cd Is Nothing, "", cd.za_InvoiceCurrency)),
CsvField(If(cd Is Nothing, "", FormatNullableBoolForCsv(cd.za_FiscalRepFlag))),
CsvField(If(cd Is Nothing, "", FormatNullableBoolForCsv(cd.za_TaxDeduction))),
CsvField(If(cd Is Nothing, "", cd.za_ApplicantTaxOffice)),
CsvField(If(cd Is Nothing, "", cd.za_ApplicantVATNo)),
CsvField(If(cd Is Nothing, "", FormatNullableBoolForCsv(cd.za_DV1Flag))),
CsvField(If(cd Is Nothing, "", cd.za_PrevDocument_Type)),
CsvField(If(cd Is Nothing, "", cd.za_PrevDocument_No)),
CsvField(If(cd Is Nothing OrElse Not cd.za_AvisoId.HasValue, "", cd.za_AvisoId.Value.ToString())),
CsvField(If(cd Is Nothing OrElse Not cd.za_SendungsId.HasValue, "", cd.za_SendungsId.Value.ToString())),
CsvField(If(cd Is Nothing, "", cd.za_Remarks)),
CsvField(If(cd Is Nothing, "", cd.za_Sachbearbeiter)),
CsvField(If(cd Is Nothing, "", cd.za_SachbearbeiterId)),
CsvField(If(cd Is Nothing, "", FormatDecimalForCsv(cd.za_TotGrossMass))),
CsvField(If(cd Is Nothing, "", allParties)),
CsvField(If(importer Is Nothing, "", importer.zaParty_Name)),
CsvField(If(importer Is Nothing, "", importer.zaParty_EORI)),
CsvField(If(exporter Is Nothing, "", exporter.zaParty_Name)),
CsvField(If(exporter Is Nothing, "", exporter.zaParty_EORI)),
CsvField(If(declarant Is Nothing, "", declarant.zaParty_Name)),
CsvField(If(declarant Is Nothing, "", declarant.zaParty_EORI)),
CsvField(If(cd Is Nothing, "", allDuties)),
CsvField(If(cd Is Nothing, "", FormatDecimalForCsv(dutyTotal))),
CsvField(If(cd Is Nothing, "", FormatDecimalForCsv(dutyEust))),
CsvField(If(cd Is Nothing, "", FormatDecimalForCsv(dutyExcludingEust))),
CsvField(If(cd Is Nothing, "", headerDocs)),
CsvField(""),
CsvField(If(cd Is Nothing, "", headerDocs)),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField(""),
CsvField("")
}))
End If
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
End Try
Next
End Using
If Open Then
Process.Start(path)
End If
Return path
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & ex.StackTrace)
Return ""
End Try
End Function
Private Function CreateTargetPathCsv(AbfVon As Date, AbfBis As Date, prefix As String) As String
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SR\"
If Not My.Computer.FileSystem.DirectoryExists(sPath) Then
My.Computer.FileSystem.CreateDirectory(sPath)
End If
Dim path As String = sPath & prefix & AbfVon.ToString("yyyy-MM-dd") & "-" & AbfBis.ToString("yyyy-MM-dd") & ".csv"
While System.IO.File.Exists(path)
path = sPath & prefix & AbfVon.ToString("yyyy-MM-dd") & "-" & AbfBis.ToString("yyyy-MM-dd") & "_" & Now.ToString("ddMMyyyyHHmmss") & ".csv"
End While
Return path
End Function
Private Function CsvField(value As Object) As String
Dim s As String = If(value, "").ToString()
s = s.Replace("""", """""")
Return """" & s & """"
End Function
Private Function FormatDateForCsv(value As Object) As String
If value Is Nothing OrElse value Is DBNull.Value Then Return ""
If IsDate(value) Then Return CDate(value).ToString("yyyy-MM-dd")
Return value.ToString()
End Function
Private Function FormatDecimalForCsv(value As Object) As String
If value Is Nothing OrElse value Is DBNull.Value Then Return ""
If IsNumeric(value) Then Return Convert.ToDecimal(value).ToString(System.Globalization.CultureInfo.InvariantCulture)
Return value.ToString()
End Function
Private Function FormatBoolForCsv(value As Boolean) As String
Return If(value, "1", "0")
End Function
Private Function FormatNullableBoolForCsv(value As Boolean?) As String
If Not value.HasValue Then Return ""
Return If(value.Value, "1", "0")
End Function
Private Function GetDutyAmountTotal(cd As cVERAG_CustomsDeclarations) As Decimal
If cd Is Nothing OrElse cd.Duties Is Nothing Then Return 0D
Return cd.Duties.Sum(Function(d) If(d.zaDuty_AmountEUR, 0D))
End Function
Private Function GetParty(cd As cVERAG_CustomsDeclarations, roles As String()) As cVERAG_CustomsDeclarations_Parties
If cd Is Nothing OrElse cd.Parties Is Nothing Then Return Nothing
Return cd.Parties.FirstOrDefault(
Function(x) roles.Contains(If(x.zaParty_Role, "").Trim().ToUpper())
)
End Function
Private Function JoinParties(cd As cVERAG_CustomsDeclarations) As String
If cd Is Nothing OrElse cd.Parties Is Nothing OrElse cd.Parties.Count = 0 Then Return ""
Return String.Join(" || ",
cd.Parties.Select(Function(p)
Return String.Join(" | ", {
"Role=" & If(p.zaParty_Role, ""),
"Name=" & If(p.zaParty_Name, ""),
"EORI=" & If(p.zaParty_EORI, ""),
"EORI_NL=" & If(p.zaParty_EORI_NL, ""),
"Street=" & If(p.zaParty_Street, ""),
"PostalCode=" & If(p.zaParty_PostalCode, ""),
"City=" & If(p.zaParty_City, ""),
"Country=" & If(p.zaParty_Country, ""),
"TIN=" & If(p.zaParty_TIN, ""),
"VAT=" & If(p.zaParty_VATNumber, ""),
"TaxOffice=" & If(p.zaParty_TaxOffice, ""),
"Contact=" & If(p.zaParty_ContactName, ""),
"Phone=" & If(p.zaParty_Phone, ""),
"Email=" & If(p.zaParty_Email, "")
})
End Function))
End Function
Private Function JoinDuties(cd As cVERAG_CustomsDeclarations) As String
If cd Is Nothing OrElse cd.Duties Is Nothing OrElse cd.Duties.Count = 0 Then Return ""
Return String.Join(" || ",
cd.Duties.Select(Function(d)
Return String.Join(" | ", {
"DutyType=" & If(d.zaDuty_DutyType, ""),
"AmountEUR=" & FormatDecimalForCsv(d.zaDuty_AmountEUR),
"AmountForeign=" & FormatDecimalForCsv(d.zaDuty_AmountForeign),
"Currency=" & If(d.zaDuty_Currency, ""),
"BIN=" & If(d.zaDuty_BIN, ""),
"AccountType=" & If(d.zaDuty_AccountType, ""),
"AccountHeadCustoms=" & If(d.zaDuty_AccountHeadCustoms, ""),
"ApplicationType=" & If(d.zaDuty_ApplicationType, ""),
"AccountNo=" & If(d.zaDuty_AccountNo, ""),
"AccountEORI=" & If(d.zaDuty_AccountEORI, ""),
"AccountHolderName=" & If(d.zaDuty_AccountHolderName, ""),
"LimitDate=" & FormatDateForCsv(d.zaDuty_LimitDate)
})
End Function))
End Function
Private Function JoinDocuments(docs As List(Of cVERAG_CustomsDeclarations_Document)) As String
If docs Is Nothing OrElse docs.Count = 0 Then Return ""
Return String.Join(" || ",
docs.Select(Function(d)
Return String.Join(" | ", {
"Date=" & If(d.zaDoc_Date, ""),
"Section=" & If(d.zaDoc_Section, ""),
"Code=" & If(d.zaDoc_Code, ""),
"Reference=" & If(d.zaDoc_Reference, ""),
"Presentation=" & If(d.zaDoc_Presentation, ""),
"DepAmount=" & If(d.zaDoc_DepreciationAmount, ""),
"DepUnit=" & If(d.zaDoc_DepreciationUnitmeasurement, ""),
"DepQual=" & If(d.zaDoc_DepreciationUnitmeasurementQualifier, ""),
"Description=" & If(d.zaDoc_Description, "")
})
End Function))
End Function
Private Function MergeDocumentStrings(headerDocs As String, itemDocs As String) As String
If headerDocs = "" Then Return itemDocs
If itemDocs = "" Then Return headerDocs
Return headerDocs & " || " & itemDocs
End Function
End Class