345 lines
16 KiB
VB.net
345 lines
16 KiB
VB.net
Public Class frmAbschluss
|
|
Dim Mandant As String
|
|
Dim Mandant_ID As Integer
|
|
Private Sub frmAbschluss_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
|
|
Try
|
|
Me.VWAbschlussTableAdapter.Connection.ConnectionString = My.Settings.ConfigConnectionString
|
|
Me.TBKOMMCOLLI_MANDANTTableAdapter.Connection.ConnectionString = My.Settings.ConfigConnectionString
|
|
Me.TBKOMMCOLLI_PAKET_KOPFTableAdapter.Connection.ConnectionString = My.Settings.ConfigConnectionString
|
|
Me.TBKOMMCOLLI_PAKET_POSTableAdapter.Connection.ConnectionString = My.Settings.ConfigConnectionString
|
|
Me.TBKOMMCOLLI_PAKET_POS_LSTableAdapter.Connection.ConnectionString = My.Settings.ConfigConnectionString
|
|
|
|
Me.VKKOPFTableAdapter.Connection.ConnectionString = My.Settings.ConfigConnStringMercator
|
|
|
|
Me.TBKOMMCOLLI_MANDANTTableAdapter.Fill(MyDataset.TBKOMMCOLLI_MANDANT)
|
|
LoadProfilesInCombobox()
|
|
Catch ex As Exception
|
|
MsgBox("Fehler bei Load: " & vbNewLine & ex.Message, MsgBoxStyle.Exclamation)
|
|
End Try
|
|
End Sub
|
|
Private Sub LoadProfilesInCombobox()
|
|
Try
|
|
Me.cmbMandant.Items.Clear()
|
|
For Each row As DataRow In MyDataset.TBKOMMCOLLI_MANDANT
|
|
cmbMandant.Items.Add(row.Item("KURZNAME"))
|
|
Next
|
|
If My.Settings.Default_Mandant <> String.Empty Then
|
|
cmbMandant.SelectedIndex = cmbMandant.FindStringExact(My.Settings.Default_Mandant)
|
|
Else
|
|
cmbMandant.SelectedIndex = -1
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox("Fehler beim Laden der Mandanten in die Auswahlliste" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
Private Function AbschlussPaket(Mandant_ID As Integer, Speicherort As String)
|
|
Try
|
|
'Schreibt Daten aus View_Export in Datei!!!
|
|
Dim Save_Datei As String = Speicherort & "/" & Date.Now.ToShortDateString & "_exp.ar" '"E:\" & Date.Now.ToShortDateString & "_exp.ar" '
|
|
|
|
Dim Version As Integer = 0
|
|
Do While IO.File.Exists(Save_Datei)
|
|
Version += 1
|
|
Save_Datei = Speicherort & "/" & Date.Now.ToShortDateString & "_exp~" & Version & ".ar"
|
|
Loop
|
|
'Setzt das Code-Format auf ASCII
|
|
|
|
Dim streamwriter As New System.IO.StreamWriter(Save_Datei, False, System.Text.Encoding.Default)
|
|
Dim anz As Integer = 0
|
|
Dim PAKET_ID As String
|
|
'Jedes Paket durchlaufen
|
|
For Each dbRow As DataRow In MyDataset.VWKOMMCOLLI_ABSCHLUSS_PAKET.Rows
|
|
If CBool(dbRow.Item("Auswahl")) = True Then
|
|
PAKET_ID = dbRow.Item("PAKET_ID").ToString
|
|
If Verarbeite_Paket(streamwriter, dbRow.Item("GUID"), PAKET_ID, dbRow.Item("TERMIN_KZ").ToString, dbRow.Item("ANZ_PACKSTUECK").ToString, dbRow.Item("GESAMTGEWICHT").ToString) = True Then
|
|
anz += 1
|
|
VWAbschlussTableAdapter.cmdAbschluss(Save_Datei, dbRow.Item("GUID"))
|
|
End If
|
|
End If
|
|
Next
|
|
streamwriter.Flush()
|
|
streamwriter.Close()
|
|
MsgBox("Es wurden " & anz.ToString & " Pakete erfolgreich abgeschlossen")
|
|
Catch ex As Exception
|
|
MsgBox("Fehler bei AbschlussPaket: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
'
|
|
End Function
|
|
Function Verarbeite_Paket(sw As System.IO.StreamWriter, PAKET_GUID As Integer, PAKET_ID As String, Terminart As String, AnzPaket As Integer, GewichtGESAMT As String)
|
|
Try
|
|
Dim Paketschluessel As String = PAKET_ID
|
|
Dim LieferscheinString As String
|
|
'Das Gewicht "berechnen", hierzu wird das hitnerlegte Gewicht durch die Anzahl der Paakete geteilt
|
|
GewichtGESAMT = GewichtGESAMT / AnzPaket
|
|
If CDbl(GewichtGESAMT) > 40.0 Then
|
|
MsgBox("Achtung: Das Gewicht des Pakets '" & PAKET_ID & "' überschreitet das Maximalgewicht von 40 kg!" & vbNewLine & "Bitte verständigen Sie Ihren Systembetreuuer", MsgBoxStyle.Critical, "Fehler")
|
|
Return False
|
|
End If
|
|
Me.TBKOMMCOLLI_PAKET_POS_LSTableAdapter.Fill(Me.MyDataset.TBKOMMCOLLI_PAKET_POS_LS, PAKET_GUID)
|
|
'Lieferschein-String laden
|
|
Dim DTLS As DataTable = MyDataset.TBKOMMCOLLI_PAKET_POS_LS
|
|
Dim a As Integer = 0
|
|
Dim tempLS As String = ""
|
|
If DTLS.Rows.Count > 0 Then
|
|
For Each row As DataRow In DTLS.Rows
|
|
If a = 0 Then
|
|
tempLS = row.Item(0)
|
|
Else
|
|
tempLS = tempLS & "," & row.Item(0)
|
|
End If
|
|
a += 1
|
|
Next
|
|
Else
|
|
tempLS = ""
|
|
End If
|
|
|
|
LieferscheinString = tempLS
|
|
|
|
|
|
If GewichtGESAMT.Contains(".") Then
|
|
GewichtGESAMT = GewichtGESAMT.Replace(".", ",")
|
|
End If
|
|
If GewichtGESAMT.Contains(",") = False Then
|
|
GewichtGESAMT = GewichtGESAMT & ",0"
|
|
Else
|
|
If GewichtGESAMT.Contains(",00") = True Then
|
|
GewichtGESAMT = GewichtGESAMT.Replace(",00", ",0")
|
|
End If
|
|
End If
|
|
|
|
For i As Integer = 1 To AnzPaket
|
|
PAKET_ID = Paketschluessel & "." & i.ToString
|
|
'Den Builder für die Zeile definieren
|
|
Dim ZeilenBuilder As System.Text.StringBuilder
|
|
Dim DT As DataTable = MyDataset.TBKOMMCOLLI_PAKET_POS
|
|
ZeilenBuilder = New System.Text.StringBuilder
|
|
ZeilenBuilder.Append(PAKET_ID.PadRight(25))
|
|
ZeilenBuilder.Append(";")
|
|
Dim Name1, Name2, Name3, Strasse, PLZ, Ort, LAND As String
|
|
Dim exists As Integer = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseExists(PAKET_GUID)
|
|
'Für die Bestellnummer konnten Zeilen gefunden werden
|
|
If exists > 0 Then
|
|
Name1 = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseFirma1(PAKET_GUID)
|
|
Name2 = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseFirma2(PAKET_GUID)
|
|
Name3 = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseFirma3(PAKET_GUID)
|
|
Strasse = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseStrasse(PAKET_GUID)
|
|
PLZ = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweisePLZ(PAKET_GUID)
|
|
Ort = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseOrt(PAKET_GUID)
|
|
LAND = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseLAND(PAKET_GUID)
|
|
'Gewicht = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdAllVerweiseGewicht(PAKET_GUID)
|
|
Else
|
|
Name1 = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBestellNrFirma1(PAKET_GUID)
|
|
Name2 = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBestellNrFirma2(PAKET_GUID)
|
|
Name3 = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBestellNrFirma3(PAKET_GUID)
|
|
Strasse = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBEstellNrStrasse(PAKET_GUID)
|
|
PLZ = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBestellNrPLZ(PAKET_GUID)
|
|
Ort = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBestellNrOrt(PAKET_GUID)
|
|
LAND = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBestellNrLand(PAKET_GUID)
|
|
' Gewicht = TBKOMMCOLLI_PAKET_KOPFTableAdapter.cmdBestellNrGewicht(PAKET_GUID)
|
|
End If
|
|
If Name1 <> String.Empty Then
|
|
ZeilenBuilder.Append(Name1.PadRight(30))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(Name2.PadRight(30))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(Name3.PadRight(30))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(Strasse.PadRight(30))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(PLZ.PadRight(10))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(Ort.PadRight(30))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(Paketschluessel.PadRight(30))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(LAND.PadRight(3))
|
|
ZeilenBuilder.Append(";")
|
|
|
|
|
|
ZeilenBuilder.Append(GewichtGESAMT.PadRight(6))
|
|
ZeilenBuilder.Append(";")
|
|
|
|
Else
|
|
MsgBox("Fehler beim Abschluss des Pakets '" & PAKET_ID & "'!" & vbNewLine & "Kein eindeutiger Datensatz zu VKOPF_BESTELLNR Und VKOPF_EINGANSNR gefunden." & _
|
|
vbNewLine & "Bitte verständigen Sie Ihren Systembetreuuer", MsgBoxStyle.Critical, "Fehler")
|
|
Return False
|
|
End If
|
|
ZeilenBuilder.Append(Terminart.PadRight(3))
|
|
ZeilenBuilder.Append(";")
|
|
ZeilenBuilder.Append(LieferscheinString)
|
|
ZeilenBuilder.Append(";")
|
|
'ZeilenBuilder.Append(AnzPaket.ToString.PadRight(3))
|
|
'ZeilenBuilder.Append(";")
|
|
sw.WriteLine(ZeilenBuilder.ToString)
|
|
Next
|
|
|
|
Return True
|
|
Catch ex As Exception
|
|
MsgBox("Fehler bei Verarbeite_Paket: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Function
|
|
Private Sub tsbtcheck_all_Click(sender As System.Object, e As System.EventArgs) Handles tsbtcheck_all.Click
|
|
If cmbMandant.Text = "GLS" Then
|
|
Dim DT As DataTable = MyDataset.VWKOMMCOLLI_ABSCHLUSS_PAKET
|
|
For Each DR As DataRow In DT.Rows
|
|
DR.Item("Auswahl") = True
|
|
Next
|
|
Else
|
|
Dim DT As DataTable = MyDataset.VWHUP_REPORT1
|
|
For Each DR As DataRow In DT.Rows
|
|
DR.Item("Selected") = True
|
|
Next
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub tsbtde_check_all_Click(sender As System.Object, e As System.EventArgs) Handles tsbtde_check_all.Click
|
|
If cmbMandant.Text = "GLS" Then
|
|
Dim DT As DataTable = MyDataset.VWKOMMCOLLI_ABSCHLUSS_PAKET
|
|
For Each DR As DataRow In DT.Rows
|
|
DR.Item("Auswahl") = False
|
|
Next
|
|
Else
|
|
Dim DT As DataTable = MyDataset.VWHUP_REPORT1
|
|
For Each DR As DataRow In DT.Rows
|
|
DR.Item("Selected") = False
|
|
Next
|
|
End If
|
|
|
|
End Sub
|
|
Sub Load_Pakete(vMandant As String)
|
|
|
|
Try
|
|
Mandant = vMandant
|
|
Me.VWAbschlussTableAdapter.Fill(Me.MyDataset.VWKOMMCOLLI_ABSCHLUSS_PAKET, Mandant)
|
|
Catch ex As Exception
|
|
MsgBox("Fehler bei Load_Pakete: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub btnAbschluss_Click(sender As System.Object, e As System.EventArgs) Handles btnAbschluss.Click
|
|
Me.Validate()
|
|
VWAbschlussBindingSource.EndEdit()
|
|
' Fragen ob das Profil wirklich gelöscht werden soll
|
|
Dim result As DialogResult = MessageBox.Show("Dies wird die Sendungsdaten exportieren und verschicken." & vbNewLine & vbNewLine & "DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN!" & vbNewLine & vbNewLine & "Sind Sie sicher dass Sie den Tageschluss durchführen wollen?", "Tagesabschluss", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2)
|
|
|
|
' wenn das Profil gelöscht werden soll
|
|
If result = MsgBoxResult.Yes Then
|
|
|
|
If cmbMandant.Text = "GLS" Then
|
|
|
|
Dim Speicherort As String
|
|
Mandant_ID = 0
|
|
|
|
Mandant_ID = TBKOMMCOLLI_MANDANTTableAdapter.cmdGetGUIDbyKurzname(Mandant)
|
|
Speicherort = TBKOMMCOLLI_MANDANTTableAdapter.cmdgetSpeicherort(Mandant_ID)
|
|
If Speicherort IsNot Nothing Then
|
|
AbschlussPaket(Mandant_ID, Speicherort)
|
|
Else
|
|
MsgBox("Achtung: Ein Mandant konnte nicht bestimmt werden!", MsgBoxStyle.Exclamation)
|
|
End If
|
|
Load_Pakete(Mandant)
|
|
|
|
ElseIf cmbMandant.Text = "HuP" Then
|
|
|
|
bw_Tagesabschluss.RunWorkerAsync()
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub btndelete_Click(sender As System.Object, e As System.EventArgs) Handles btndelete.Click
|
|
Me.Validate()
|
|
|
|
' Fragen ob das Profil wirklich gelöscht werden soll
|
|
Dim result As MsgBoxResult = MsgBox("Sind Sie sicher, dass sie die ausgewählten Einheiten löschen wollen?", MsgBoxStyle.YesNo, "Löschen bestätigen")
|
|
' wenn das Profil gelöscht werden soll
|
|
If result = MsgBoxResult.Yes Then
|
|
|
|
If cmbMandant.Text = "GLS" Then
|
|
VWAbschlussBindingSource.EndEdit()
|
|
For Each dbRow As DataRow In MyDataset.VWKOMMCOLLI_ABSCHLUSS_PAKET.Rows
|
|
If CBool(dbRow.Item("Auswahl")) = True Then
|
|
'Positionen löschen
|
|
TBKOMMCOLLI_PAKET_POSTableAdapter.cmdDeletePos(dbRow.Item("GUID"))
|
|
'Kopf löschen
|
|
TBKOMMCOLLI_PAKET_KOPFTableAdapter.CmdDeleteGUID(dbRow.Item("GUID"))
|
|
End If
|
|
Next
|
|
Load_Pakete(Mandant)
|
|
|
|
ElseIf cmbMandant.Text = "HuP" Then
|
|
'Sendung löschen bei HuP
|
|
VWHUP_REPORT1BindingSource.EndEdit()
|
|
For Each row As DataRow In MyDataset.VWHUP_REPORT1.Rows
|
|
If row.Item("Selected") = True Then
|
|
Dim cmd = String.Format("EXECUTE PRKOMMCOLLI_SDG_LOESCHEN {0}", row.Item("GUID"))
|
|
ClassDatabase.Execute_non_Query(cmd, True)
|
|
End If
|
|
Next
|
|
Load_Sendungen()
|
|
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
Sub Refresh_Grid()
|
|
VWAbschlussDataGridView.Visible = False
|
|
VWAbschlussDataGridView.Dock = DockStyle.None
|
|
VWHUP_REPORT1DataGridView.Visible = False
|
|
btndelete.Enabled = False
|
|
If cmbMandant.SelectedIndex <> -1 Then
|
|
Select Case cmbMandant.SelectedIndex
|
|
Case 0
|
|
Load_Sendungen()
|
|
VWHUP_REPORT1DataGridView.Dock = DockStyle.Fill
|
|
VWHUP_REPORT1DataGridView.Visible = True
|
|
btndelete.Text = "Sendung(en)" & vbNewLine & "löschen"
|
|
btndelete.Enabled = True
|
|
Case 1
|
|
VWAbschlussDataGridView.Visible = True
|
|
VWAbschlussDataGridView.Dock = DockStyle.Fill
|
|
Load_Pakete(cmbMandant.Text)
|
|
btndelete.Enabled = True
|
|
btndelete.Text = "Paket(e)" & vbNewLine & "löschen"
|
|
End Select
|
|
|
|
btnAbschluss.Text = "Mandanten '" & cmbMandant.Text & "' abschliessen"
|
|
|
|
End If
|
|
End Sub
|
|
Private Sub cmbMandant_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbMandant.SelectedIndexChanged
|
|
Refresh_Grid()
|
|
|
|
End Sub
|
|
|
|
Private Sub bw_Tagesabschluss_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles bw_Tagesabschluss.DoWork
|
|
Dim Result As Boolean = True
|
|
Result = ClassDatabase.Execute_non_Query("EXEC PRKOMMCOLLI_BORDERO_EXPORTIEREN", False)
|
|
e.Result = Result
|
|
End Sub
|
|
Private Sub bw_Tagesabschluss_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bw_Tagesabschluss.RunWorkerCompleted
|
|
If e.Result = True Then
|
|
MsgBox("Abschluss erfolgreich ausgeführt.", MsgBoxStyle.Information, "Tagesabschluss")
|
|
Load_Sendungen()
|
|
Else
|
|
MsgBox("Fehler bei Abschluss, bitte Log prüfen.")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub Load_Sendungen()
|
|
Try
|
|
Me.VWHUP_REPORT1TableAdapter.Connection.ConnectionString = My.Settings.ConfigConnectionString
|
|
Me.VWHUP_REPORT1TableAdapter.Fill(Me.MyDataset.VWHUP_REPORT1, True, False)
|
|
Catch ex As System.Exception
|
|
MsgBox("Fehler bei Load_Sendungen: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub frmAbschluss_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
|
Refresh_Grid()
|
|
End Sub
|
|
End Class |