First Testable Version

This commit is contained in:
Jonathan Jenne
2021-08-27 15:20:35 +02:00
parent b99627359a
commit f45540a283
14 changed files with 612 additions and 141 deletions

View File

@@ -74,8 +74,8 @@ Public Class frmMain
cmbMandator.Properties.DataSource = Winline.Mandators
cmbYears.Properties.Items.AddRange(Winline.Years)
cmbYears.SelectedItem = ConfigManager.Config.GetYear()
cmbYear.Properties.Items.AddRange(Winline.Years)
cmbYear.SelectedItem = ConfigManager.Config.GetYear()
' Initialize Grids
GridBuilder = New GridBuilder(New List(Of GridView) From {GridViewFiles, GridViewPositions})
@@ -127,7 +127,7 @@ Public Class frmMain
Try
If DocumentLoader.LoadFiles(ConfigManager.Config.InputDirectory) = True Then
RibbonGroupData.Enabled = True
RibbonGroupDataTransmission.Enabled = True
RibbonGroupDocument.Enabled = True
RibbonGroupPositions.Enabled = True
@@ -210,8 +210,8 @@ Public Class frmMain
Dim oData As Orders.Input.MESOWebService = DirectCast(pDocument.Data, Orders.Input.MESOWebService)
Dim oDataOriginal As Orders.Input.MESOWebService = DirectCast(pDocument.DataOriginal, Orders.Input.MESOWebService)
Dim oHead = Orders.Helpers.GetOrderHead(oData)
Dim oHeadOriginal = Orders.Helpers.GetOrderHead(oDataOriginal)
Dim oHead = Orders.Helpers.GetOrderHead(Of Orders.Input.MESOWebServiceEXIMVRG_ordersT025)(oData)
Dim oHeadOriginal = Orders.Helpers.GetOrderHead(Of Orders.Input.MESOWebServiceEXIMVRG_ordersT025)(oDataOriginal)
' --- Head Data --------------------------------------------------------------------------------------
@@ -221,10 +221,9 @@ Public Class frmMain
' Regular Data from EDI
txtRunningNumber.Text = oHead.Laufnummer
txtOrderIssuer.Text = oHead.Fakt_Ansprechpartner
txtOrderNumber.Text = oHead.AuftragsBestellnummer
txtDocumentReference.Text = oHead.Auftragsreferenz
cmbOrderIssuer.Text = oHead.Fakt_Ansprechpartner
txtOrderNumber.Text = oHead.Auftragsreferenz
txtInfoText.Text = oHead.Infotext
dateOrderDate.EditValue = oHead.Datum_AuftragBestellung
' --- Find Mandator --------------------------------------------------------------------------------------
@@ -245,7 +244,13 @@ Public Class frmMain
cmbDocumentKind.Properties.Items.Clear()
cmbDocumentKind.Properties.Items.AddRange(oMandatorKinds)
cmbDocumentKind.SelectedItem = oSelectedKind
If oSelectedKind Is Nothing Then
cmbDocumentKind.ErrorText = "Es wurde keine passende Belegart gefunden."
cmbDocumentKind.SelectedItem = Nothing
Else
cmbDocumentKind.SelectedItem = oSelectedKind
End If
' --- Find Accounts --------------------------------------------------------------------------------------
@@ -275,6 +280,13 @@ Public Class frmMain
End If
End If
' CONTACTS
If cmbCustomer.EditValue IsNot Nothing Then
Dim oContacts = Winline.GetContacts(oHead.Fakt_Kontonummer, oMandator)
cmbOrderIssuer.Properties.DataSource = oContacts
End If
' DEVLIERY
If oHead.Lief_Kontonummer = oHeadOriginal.Lief_Kontonummer Then
If oHeadOriginal.Lief_Kontonummer = String.Empty Then
@@ -291,15 +303,14 @@ Public Class frmMain
Where(Function(oAccount) oAccount.Id = oHead.Lief_Kontonummer)
If oMatchingAccounts.Count() > 1 Then
cmbCustomer.EditValue = Nothing
cmbCustomer.ErrorText = "Für die Kontonummer wurden mehrere Konten gefunden."
cmbDeliveryAddress.EditValue = Nothing
cmbDeliveryAddress.ErrorText = "Für die Kontonummer wurden mehrere Konten gefunden."
ElseIf oMatchingAccounts.Count() = 0 Then
cmbCustomer.EditValue = Nothing
cmbCustomer.ErrorText = "Für die Kontonummer wurde kein Konto gefunden."
cmbDeliveryAddress.EditValue = Nothing
cmbDeliveryAddress.ErrorText = "Für die Kontonummer wurde kein Konto gefunden."
Else
cmbCustomer.EditValue = oMatchingAccounts.SingleOrDefault()
cmbDeliveryAddress.EditValue = oMatchingAccounts.SingleOrDefault()
End If
End If
' --- Find Positions ------------------------------------------------------------------------------------
@@ -329,32 +340,106 @@ Public Class frmMain
End Sub
Private Async Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick
Dim oMessageText As String = ""
Dim oMessageStyle As MsgBoxStyle = MsgBoxStyle.Critical
Dim oDocument As Document = GetFocusedDocument()
If oDocument Is Nothing Then
Exit Sub
End If
SplashScreenManager1.ShowWaitForm()
ChangeUIState(False)
Try
Dim oFinalDocument As Document = TransferChangesToDocument(oDocument)
Dim oResult = Await WebService.TransferDocumentToWinLine(oFinalDocument)
oMessageText = "Beleg wurde erfolgreich übertragen!"
oMessageStyle = MsgBoxStyle.Information
Catch ex As Exception
Logger.Error(ex)
Dim oMessage = $"Fehler beim Übertragen des Dokuments:{vbNewLine}{vbNewLine}{ex.Message}"
MsgBox(oMessage, MsgBoxStyle.Critical, Text)
oMessageText = $"Fehler beim Übertragen des Dokuments:{vbNewLine}{vbNewLine}{ex.Message}"
oMessageStyle = MsgBoxStyle.Critical
Finally
SplashScreenManager1.CloseWaitForm()
ChangeUIState(True)
MsgBox(oMessageText, oMessageStyle, Text)
End Try
End Sub
Private Sub ChangeUIState(pEnabled As Boolean)
GridControlPositions.Enabled = pEnabled
GridControlFiles.Enabled = pEnabled
LayoutControlHead.Enabled = pEnabled
RibbonGroupDataTransmission.Enabled = pEnabled
RibbonGroupDataLoading.Enabled = pEnabled
RibbonGroupDocument.Enabled = pEnabled
RibbonGroupPositions.Enabled = pEnabled
End Sub
Private Function TransferChangesToDocument(pDocument As Document)
Dim oData As Orders.Input.MESOWebService = pDocument.Data
Try
Orders.Helpers.SetOrderHead(Of Orders.Input.MESOWebServiceEXIMVRG_ordersT025)(oData, AddressOf UpdateOrderHead)
Catch ex As Exception
Logger.Error(ex)
Throw ex
End Try
Return pDocument
End Function
Private Function UpdateOrderHead(pObject As Orders.Input.MESOWebServiceEXIMVRG_ordersT025) As Orders.Input.MESOWebServiceEXIMVRG_ordersT025
' Update DocumentKind
If cmbDocumentKind.EditValue IsNot Nothing AndAlso TypeOf cmbDocumentKind.EditValue Is DocumentKind Then
pObject.Belegart = DirectCast(cmbDocumentKind.EditValue, DocumentKind).Id
End If
' Update Talking Person lol
If cmbOrderIssuer.EditValue IsNot Nothing AndAlso TypeOf cmbOrderIssuer.EditValue Is Contact Then
pObject.Fakt_Ansprechpartner = DirectCast(cmbOrderIssuer.EditValue, Contact).Id
End If
' Update Delivery Address
If cmbDeliveryAddress.EditValue IsNot Nothing AndAlso TypeOf cmbDeliveryAddress.EditValue Is Account Then
pObject.Lief_Kontonummer = DirectCast(cmbDeliveryAddress.EditValue, Account)?.Id
End If
' Update Order Number
If txtOrderNumber.EditValue IsNot Nothing AndAlso txtOrderNumber.EditValue <> String.Empty Then
pObject.Auftragsreferenz = txtOrderNumber.EditValue
End If
' Update Order Date
If dateOrderDate IsNot Nothing Then
pObject.Datum_AuftragBestellung = DirectCast(dateOrderDate.EditValue, Date).ToString("yyyy-MM-dd")
End If
' Update Extra Address
pObject.Lief_Name = txtName.EditValue
pObject.Lief_Ort = txtPlace.EditValue
pObject.Lief_PLZ = txtZIP.EditValue
pObject.Lief_Strasse = txtStreetName.EditValue
Return pObject
End Function
Private Sub BarButtonItem8_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem8.ItemClick
TryOpenDirectory(LogConfig.LogDirectory, "Logverzeichnis")
End Sub
Private Sub cmbAccount_Validating(sender As BaseEdit, e As System.ComponentModel.CancelEventArgs) Handles cmbCustomer.Validating, cmbDeliveryAddress.Validating
Private Sub cmbCustomer_Validating(sender As BaseEdit, e As System.ComponentModel.CancelEventArgs) Handles cmbCustomer.Validating, cmbDocumentKind.Validating, cmbMandator.Validating, cmbYear.Validating
If sender.EditValue Is Nothing Then
sender.ErrorText = "Dieses Feld muss ausgefüllt werden!"
sender.ErrorText = "Dieses Feld muss ausgefüllt werden"
Else
sender.ErrorText = ""
End If
@@ -368,8 +453,8 @@ Public Class frmMain
Dim oReport As New OrderReport()
Dim oDataSource = New DevExpress.DataAccess.ObjectBinding.ObjectDataSource With {
.DataSource = New Orders.ReportSource With {
.Head = Orders.Helpers.GetOrderHead(oDocument.Data),
.Positions = Orders.Helpers.GetOrderPositions(oDocument.Data)
.Head = Orders.Helpers.GetOrderHead(Of Orders.Input.MESOWebServiceEXIMVRG_ordersT025)(oDocument.Data),
.Positions = Orders.Helpers.GetOrderPositions(Of Orders.Input.MESOWebServiceEXIMVRG_ordersT025)(oDocument.Data)
}
}
oDataSource.Fill()