80 lines
3.5 KiB
VB.net

Public Class frmCreateArticle
Public Property Vendor As Vendor
Public Property Group As ProductGroup
Public Property Version As ProductVersion
Public Property ArticleNumber As String
Public Property RunningNumber As String
Private ReadOnly Config As Config = My.Application.ConfigManager.Config
Private ReadOnly Logger As Logger = My.Application.LogConfig.GetLogger
Private Sub frmCreateArticle_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txtRunningNumber.Text = RunningNumber
txtArticleNumber.Text = ArticleNumber
lblImportantInformation.Text = String.Join(vbNewLine, Config.ImportantNotes)
End Sub
Private Function StartArticleCreation(IsSerialNumberArticle As Boolean) As String
Try
If My.Application.Winline.TestArticleExists($"{ArticleNumber}{RunningNumber}") Then
MsgBox($"Der Artikel '{ArticleNumber}{RunningNumber}' kann nicht angelegt werden, da er bereits existiert")
Return Nothing
End If
txtFinalArticleNumber.Text = String.Empty
Logger.Info("Creating Article..")
Dim oArticleResult = My.Application.Winline.CreateArticle(ArticleNumber, RunningNumber, txtArticleDescription.Text, Vendor, IsSerialNumberArticle)
Logger.Info("Creating Price Info..")
Dim oPriceResult = My.Application.Winline.CreatePriceInfo(ArticleNumber, RunningNumber, Vendor.WinlineNumber)
If oArticleResult And oPriceResult Then
txtFinalArticleNumber.Text = $"{ArticleNumber}{RunningNumber}"
Return $"{ArticleNumber}{RunningNumber}"
Else
MsgBox("Artikel konnte nicht angelegt werden!", MsgBoxStyle.Critical, Text)
Return Nothing
End If
Catch ex As Exception
MsgBox("Fehler bei Artikelanlage: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, Text)
Return Nothing
End Try
End Function
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim oResult = MsgBox("Wollen Sie einen Seriennummer-Artikel anlegen?" & vbNewLine & vbNewLine &
"Diese Einstellung kann, anders als beim Altsystem, NICHT mehr im Nachhinein geändert werden!",
MsgBoxStyle.Question Or vbYesNo, Text)
If oResult = MsgBoxResult.Yes Then
Dim oArticleNumber = StartArticleCreation(True)
HandleArticleCreation(oArticleNumber)
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim oArticleNumber = StartArticleCreation(False)
HandleArticleCreation(oArticleNumber)
End Sub
Private Sub HandleArticleCreation(ArticleNumber As String)
If ArticleNumber IsNot Nothing Then
If My.Application.Winline.TestArticleExists(ArticleNumber) Then
My.Computer.Clipboard.SetText(ArticleNumber)
If My.Application.Winline.RunWinlineMacro(My.Application.ConfigManager.Config.CompletionMacro, ArticleNumber) = False Then
MsgBox($"Der Artikelstamm konnte nicht geöffnet werden. Die Artikelnummer {ArticleNumber} wurde in die Zwischenablage kopiert.", MsgBoxStyle.Information, Text)
End If
Application.Exit()
Else
MsgBox($"Der Artikel '{ArticleNumber}' wurde nicht angelegt!", MsgBoxStyle.Critical, Text)
End If
End If
End Sub
End Class