Anlage des Repos
This commit is contained in:
199
current/Modules/Archiv/Packtisch/CompleteOrder.vbs
Normal file
199
current/Modules/Archiv/Packtisch/CompleteOrder.vbs
Normal file
@@ -0,0 +1,199 @@
|
||||
' CompleteOrder()
|
||||
' ---------------------------------------------------------
|
||||
' Schließt die Prüfung ab und erstellt einen Lieferschein
|
||||
'
|
||||
' Rückgabewert: Keiner
|
||||
' ---------------------------------------------------------
|
||||
Sub CompleteOrder()
|
||||
Set mywin = CWLStart.CurrentModule.Windows.Item(WINDOW_ID)
|
||||
Set Conn = CWLStart.CurrentCompany.Connection
|
||||
Set Grid = mywin.Controls.Item(GRID_ID).Grid
|
||||
|
||||
Dim OrderId, AccountSQL, MandatorId, RunningNumber
|
||||
|
||||
|
||||
OrderId = mywin.Controls.Item(ORDER_INPUT).ScreenContents
|
||||
AccountSQL = "SELECT DISTINCT c021 FROM t025 (NOLOCK) WHERE c044 = '" & OrderId & "' " & SQLQuery_BasicWhere
|
||||
|
||||
Set AccountResult = Connection.Select(AccountSQL)
|
||||
|
||||
If DEBUG_ON = True Then
|
||||
AddDebugLine "Querying for CustomerAccountId.. " & vbNewline
|
||||
AddDebugLine "Result Columns: " & AccountResult
|
||||
AddDebugLine "Result Rows: " & AccountResult.RowCount
|
||||
AddDebugLine "SQL: " & AccountSQL
|
||||
|
||||
ShowDebugBox "CompleteOrder"
|
||||
End If
|
||||
|
||||
MandatorId = AccountResult.Value("c021")
|
||||
RunningNumber = RUNNING_NUMBER_PREFIX & OrderId
|
||||
BelegKey = Cstr(DateDiff("s", "01/01/1970 00:00:00", Now))
|
||||
|
||||
' ===================== KOPFDATEN =====================
|
||||
|
||||
HeadSQL = "INSERT INTO " & SQLDB_for_EXIM & "." & SQLHeadTB_for_EXIM & " "
|
||||
HeadSQL = HeadSQL & "(BELEGKEY, Kontonummer, Laufnummer, Auftragsnummer, Datum_Lieferschein) "
|
||||
HeadSQL = HeadSQL & "VALUES("& BelegKey &", '"& MandatorId &"', '"& RunningNumber &"', '"& OrderId &"', GETDATE())"
|
||||
|
||||
HeadResult = Conn.ExecuteSQL(HeadSQL)
|
||||
|
||||
If DEBUG_ON = True Then
|
||||
AddDebugLine "Inserting Head Data" & vbNewline
|
||||
AddDebugLine "Result: " & HeadResult
|
||||
AddDebugLine "SQL: " & HeadSQL
|
||||
|
||||
ShowDebugBox "CompleteOrder"
|
||||
End If
|
||||
|
||||
' ===================== ENDE KOPFDATEN =====================
|
||||
|
||||
' ===================== MITTEDATEN =====================
|
||||
|
||||
Dim ArticleNumber, AmountDelivered, SerialNumber, StorageLocation, LineNumber
|
||||
|
||||
For Row = 1 To Grid.LineCount
|
||||
IsSerialNumberArticle = Grid.GetCellValue(Row, COLUMN_TYPE)
|
||||
ArticleNumber = Grid.GetCellValue(Row, COLUMN_ARTICLENUMBER)
|
||||
SerialNumber = Grid.GetCellValue(Row, COLUMN_SERIALNUMBER)
|
||||
LineNumber = GetWinLineOriginalLineNumber(OrderId, ArticleNumber, IsSerialNumberArticle)
|
||||
StorageLocation = GetWinLineStorageLocation(ArticleNumber, SerialNumber, IsSerialNumberArticle)
|
||||
AmountDelivered = Grid.GetCellValue(Row, COLUMN_SCANNED)
|
||||
|
||||
If IsSerialNumberArticle = 1 Then
|
||||
MidSQL = "INSERT INTO " & SQLDB_for_EXIM & "." & SQLMiddleTB_for_EXIM & " "
|
||||
MidSQL = MidSQL & "(BELEGKEY, Artikelnummer, Hauptartikelnummer, Zeilennummer, Datentyp, Mengegeliefert, ChargeIdentnummer, Lagerort) "
|
||||
MidSQL = MidSQL & "VALUES("& BelegKey &", '"& ArticleNumber &"', '"& ArticleNumber &"', "& LineNumber &", '1', "& AmountDelivered &", '"& SerialNumber &"', "& StorageLocation &")"
|
||||
Else
|
||||
MidSQL = "INSERT INTO " & SQLDB_for_EXIM & "." & SQLMiddleTB_for_EXIM & " "
|
||||
MidSQL = MidSQL & "(BELEGKEY, Artikelnummer, Hauptartikelnummer, Zeilennummer, Datentyp, Mengegeliefert, ChargeIdentnummer, Lagerort) "
|
||||
MidSQL = MidSQL & "VALUES("& BelegKey &", '"& ArticleNumber &"', '"& ArticleNumber &"', NULL, '1', "& AmountDelivered &", '"& SerialNumber &"', "& StorageLocation &")"
|
||||
End If
|
||||
|
||||
MidResult = Conn.ExecuteSQL(MidSQL)
|
||||
|
||||
If DEBUG_ON = True Then
|
||||
AddDebugLine "Inserting Middle Data" & vbNewline
|
||||
AddDebugLine "Result: " & MidResult
|
||||
AddDebugLine "SQL: " & MidSQL
|
||||
|
||||
ShowDebugBox "CompleteOrder"
|
||||
End If
|
||||
Next
|
||||
|
||||
' ===================== ENDE MITTEDATEN =====================
|
||||
|
||||
' ============================ XML ============================
|
||||
Dim Request, URL, XML
|
||||
Dim DObj : DObj = Now
|
||||
Dim DateString : DateString = Year(DObj) & "-" & GetLeftPad(Month(DObj)) & "-" & GetLeftPad(Day(DObj))
|
||||
|
||||
XML = ""
|
||||
XML = XML & "<?xml version=""1.0"" encoding=""UTF-8""?>"
|
||||
XML = XML & "<MESOWebService TemplateType=""__TYPE__"" Template=""__VORLAGE__"" option=""__OPTION__"" printVoucher=""__PRINT__"">"
|
||||
|
||||
' Kopf
|
||||
XML = XML & "<__VORLAGE__T025>"
|
||||
XML = XML & "<BELEGKEY>" & BelegKey & "</BELEGKEY>"
|
||||
XML = XML & "<Kontonummer>" & MandatorId & "</Kontonummer>"
|
||||
XML = XML & "<Laufnummer>" & RunningNumber & "</Laufnummer>"
|
||||
XML = XML & "<Auftragsnummer>" & OrderId & "</Auftragsnummer>"
|
||||
XML = XML & "<Datum_Lieferschein>" & DateString & "</Datum_Lieferschein>"
|
||||
XML = XML & "</__VORLAGE__T025>"
|
||||
|
||||
For Row = 1 To Grid.LineCount
|
||||
|
||||
ArticleNumber = Grid.GetCellValue(Row, COLUMN_ARTICLENUMBER)
|
||||
SerialNumber = Grid.GetCellValue(Row, COLUMN_SERIALNUMBER)
|
||||
LineNumber = GetWinLineOriginalLineNumber(OrderId, ArticleNumber, IsSerialNumberArticle)
|
||||
StorageLocation = GetWinLineStorageLocation(ArticleNumber, SerialNumber, IsSerialNumberArticle)
|
||||
AmountDelivered = Grid.GetCellValue(Row, COLUMN_SCANNED)
|
||||
InternalArticleNumber = GetWinLineInternalProductNumber(ArticleNumber, SerialNumber)
|
||||
|
||||
' Mitte
|
||||
MidXML = ""
|
||||
MidXML = MidXML & "<__VORLAGE__T026>"
|
||||
MidXML = MidXML & "<BELEGKEY>" & BelegKey & "</BELEGKEY>"
|
||||
MidXML = MidXML & "<Artikelnummer>" & InternalArticleNumber & "</Artikelnummer>"
|
||||
MidXML = MidXML & "<Hauptartikelnummer>" & ArticleNumber & "</Hauptartikelnummer>"
|
||||
MidXML = MidXML & "<Zeilennummer>" & LineNumber & "</Zeilennummer>"
|
||||
MidXML = MidXML & "<Datentyp>" & "1" & "</Datentyp>"
|
||||
MidXML = MidXML & "<Mengegeliefert>" & AmountDelivered & "</Mengegeliefert>"
|
||||
MidXML = MidXML & "<ChargeIdentnummer>" & SerialNumber & "</ChargeIdentnummer>"
|
||||
MidXML = MidXML & "<Lagerort>" & StorageLocation & "</Lagerort>"
|
||||
MidXML = MidXML & "</__VORLAGE__T026>"
|
||||
|
||||
If DEBUG_ON = True Then
|
||||
AddDebugLine "Adding Product Row to XML:" & vbNewLine
|
||||
AddDebugLine MidXML
|
||||
|
||||
ShowDebugBox "CompleteOrder"
|
||||
End If
|
||||
|
||||
XML = XML & MidXML
|
||||
Next
|
||||
|
||||
XML = XML & "</MESOWebService>"
|
||||
XML = Replace(XML, "__VORLAGE__", WEB_VORLAGE)
|
||||
XML = Replace(XML, "__TYPE__", WEB_TYPE)
|
||||
XML = Replace(XML, "__OPTION__", WEB_OPTION)
|
||||
XML = Replace(XML, "__PRINT__", WEB_PRINT)
|
||||
|
||||
URL = "http://__SERVER__/ewlservice/import?User=__USER__&Password=__PASSWORD__&Company=__COMPANY__&Type=30&Vorlage=__VORLAGE__&Actioncode=__ACTIONCODE__&byref=0&Data=__DATA__"
|
||||
URL = Replace(URL, "__SERVER__", WEB_SERVER)
|
||||
URL = Replace(URL, "__USER__", WEB_USER)
|
||||
URL = Replace(URL, "__PASSWORD__", WEB_PASS)
|
||||
URL = Replace(URL, "__COMPANY__", WEB_COMPANY)
|
||||
URL = Replace(URL, "__VORLAGE__", WEB_VORLAGE)
|
||||
URL = Replace(URL, "__ACTIONCODE__", WEB_ACTIONCODE)
|
||||
URL = Replace(URL, "__DATA__", XML)
|
||||
|
||||
If DEBUG_ON = True Then
|
||||
AddDebugLine "Sending Request to WebServices.."
|
||||
AddDebugLine "URL: " & URL
|
||||
|
||||
ShowDebugBox "CompleteOrder"
|
||||
End If
|
||||
|
||||
' ======================= ENDE XML =======================
|
||||
|
||||
' ===================== HTTP REQUEST =====================
|
||||
|
||||
Set Request = CreateObject("MSXML2.XMLHTTP")
|
||||
Request.Open "POST", URL, False
|
||||
Request.Send
|
||||
Response = Request.ResponseText
|
||||
Status = Request.Status
|
||||
|
||||
If DEBUG_ON = True Then
|
||||
AddDebugLine "Response from WebServices!"
|
||||
AddDebugLine "Status: " & Status
|
||||
AddDebugLine "Body: " & Response
|
||||
|
||||
ShowDebugBox "CompleteOrder"
|
||||
End If
|
||||
|
||||
' =================== ENDE HTTP REQUEST ==================
|
||||
|
||||
Error = False
|
||||
Message = ""
|
||||
|
||||
If Status = 200 Then
|
||||
If InStr(Response, "<OverallSuccess>true</OverallSuccess>") > 0 Then
|
||||
Message = "Lieferschein wurde übertragen!"
|
||||
Else
|
||||
Error = True
|
||||
Message = "Lieferschein wurde nicht übertragen! Fehlerdetails: " & vbNewline & vbNewline & Response
|
||||
End If
|
||||
Else
|
||||
Error = True
|
||||
Message = "Fehler beim Zugriff auf Webservices aufgetreten" & vbNewline & "Status: " & Status
|
||||
End If
|
||||
|
||||
If Error = False Then
|
||||
MsgBox Message, vbInformation, DEFAULT_TITLE & " - Abschluss erfolgreich"
|
||||
MacroCommands.MSetFieldFocus WINDOW_ID, ORDER_INPUT
|
||||
Else
|
||||
MsgBox Message, vbExclamation, DEFAULT_TITLE & " - Fehler bei Abschluss"
|
||||
End If
|
||||
End Sub
|
||||
Reference in New Issue
Block a user