' Action link per l'aggiunta di articoli in anagrafica
' Lo snippet segue il seguente JSON di esempio
'
'{
' "Token": "ec161f8b-ba19-4dac-aab0-2ee16ab94391",
' "Articoli": [
' {
' "ID": "ACITAR",
' "Descrizione": "ACIDO TARTARICO",
' "Tipo": "ENO",
' "StatoFisico": "Confezionato",
' "CatMIPAAF": "107",
' "Formato": 0,
' "UM": "Kg",
' "Categoria": "",
' "Vendibile": false,
' "IDComm": "",
' "IDCED": "",
' "EANBottiglia": "",
' "EANCartone": "",
' "Inattivo": false,
' "GestLotti": true,
' "Esistenza": 0,
' "Disponibilita": 0
' }
' ]
'}
Dim nomeActionLink As String = "Action Link ARTICOLI"
Dim OK As Boolean = True
Dim esito As String = ""
Dim erroreRequest As String = ""
Dim errcode As Integer
Dim jsonr As String
Dim res As New Newtonsoft.Json.Linq.JObject
Try
'OTTENGO LA RICHIESTA IN JSON
Page.Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin)
Using ReceiveStream As System.IO.Stream = Page.Request.InputStream
Using ReadStream As System.IO.StreamReader = New System.IO.StreamReader(ReceiveStream, System.Text.Encoding.UTF8)
jsonr = ReadStream.ReadToEnd()
End Using
End Using
Dim objtmp As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(jsonr)
Dim token As String = CType(objtmp("Token"), Newtonsoft.Json.Linq.JValue).Value
Dim tokenIsValid As Boolean = qwlib.WebUtils.CheckToken2(token)
If tokenIsValid Then
' copia il json in una directory locale
Dim path As String = "C:\dati\Json\Articoli.json"
Dim writer As New System.IO.StreamWriter(path)
writer.WriteLine("" & jsonr)
writer.Close()
'------------------------------------------------------------------------------------------------------------------'
Dim parsedJson As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.Linq.JObject.Parse(jsonr)
Dim artic As New QWTable
artic.DataBase = DB
If Not parsedJson.SelectToken("Articoli") Is Nothing Then
For i As Integer = 0 To parsedJson.SelectToken("Articoli").Count - 1
Dim erroreSalvataggio As String = ""
artic.SQL = "select * "
artic.SQL += "from ARTIC "
artic.SQL += "where CODICE = " & Chr(39) & parsedJson.SelectToken("Articoli[" & i & "].ID").ToString & Chr(39)
artic.Active = True
'SE NON ESISTE UN RECORD CON QUEL CODICE ARTICOLO, NE CREO UNO NUOVO
If Not artic.RowSet.First() Then
artic.BeginAppend()
artic.Replace("CODICE", SqlStr(parsedJson.SelectToken("Articoli[" & i & "].ID").ToString))
artic.Replace("UNMIS", SqlStr(parsedJson.SelectToken("Articoli[" & i & "].UM").ToString))
End If
'SALVO LE INFORMAZIONI DEL JSON NELLE VARIE COLONNE DI ARTIC
artic.Replace("DESCRIZION", SqlStr(parsedJson.SelectToken("Articoli[" & i & "].Descrizione").ToString))
OK = artic.SaveRecord(erroreSalvataggio)
If Not OK Then
esito += erroreSalvataggio & vbCrLf
WriteLog(nomeActionLink & vbCrLf & erroreSalvataggio)
End If
artic.Active = False
Next
Else
esito += "Non ci sono Articoli !" & vbCrLf
WriteLog(nomeActionLink & vbCrLf & esito)
End If
artic.Dispose()
'-----------------------------------------------------------------------------------------------------------'
Else
errcode = 1
esito += "Token non valido !" & vbCrLf
End If
If Not String.IsNullOrEmpty(esito) Then
OK = False
End If
Catch e As Exception
OK = False
errcode = -1
erroreRequest = e.Message & vbCrLf & e.StackTrace
WriteLog(nomeActionLink & vbCrLf & erroreRequest)
End Try
Dim ret_obj = New With {.ResultCode = errcode, .Result = IIf(OK, "OK", "KO"), .ErrResult = esito & vbCrLf & vbCrLf & erroreRequest}
Return Newtonsoft.Json.JsonConvert.SerializeObject(ret_obj)