Action link per l’aggiunta di articoli in anagrafica

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
' 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)
' 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)
' 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)