Return a price list in a VB web service

Asked

Viewed 23 times

1

I have this method within a service(asmx)

<WebMethod()> Public Function RetornarPrecoCSP(ByVal CodigoCliente As Long, ByVal CodigoProduto As String, ByVal QtdItem As Long, ByVal TipoVenda As Integer) As RetornoPreco()

    Dim obPrecos As New List(Of RetornoPreco)
    Dim BD As New SND.Data.AcessoDados

    Dim obDados As DataTable = Me.RetornarPreco(CodigoCliente, CodigoProduto, QtdItem, TipoVenda).Tables(0)
    If (obDados Is Nothing) Then
        Return Nothing
    End If

    Dim obLinha As DataRow
    For Each obLinha In obDados.Rows

        Dim obPreco As New RetornoPreco()

        Try

            obPreco.CDOrigem = Convert.ToInt32(obLinha.Item("CDOrigem"))
            obPreco.ValorProduto = Convert.ToDecimal(obLinha.Item("ValorProduto"))
            obPreco.ValorMultiplo = Convert.ToDecimal(obLinha.Item("ValorMultiplo"))
            obPreco.ValorMPdoBem = Convert.ToDecimal(obLinha.Item("ValorMPdoBem"))
            obPreco.AcimaDe = Convert.ToString(obLinha.Item("AcimaDe"))
            obPreco.ValorDolar = Convert.ToDecimal(obLinha.Item("ValorDolar"))
            obPreco.CodigoMoeda = Convert.ToInt32(obLinha.Item("CodigoMoeda"))
            obPreco.DataCotacao = Convert.ToDateTime(obLinha.Item("DataCotacao"))
            obPreco.CodigoMensagem = Convert.ToInt32(obLinha.Item("CodigoMensagem"))
            obPreco.Mensagem = Convert.ToString(obLinha.Item("Mensagem"))
            obPreco.CodTabelaPreco = Convert.ToInt32(obLinha.Item("TabelaPreco"))

            Dim obTable As DataTable = BD.AbreDS(String.Format("SELECT * FROM FaixasPrecoMaterial WHERE CodMaterial = '{0}' AND CodTabela = {1}", CodigoProduto, Convert.ToInt32(obLinha("TabelaPreco"))), "FaixasPreco").Tables("FaixasPreco")
            Dim obFaixas As New List(Of FaixaPreco)

            Dim obRow As DataRow
            For Each obRow In obTable.Rows
                Dim obEntry As New FaixaPreco
                obEntry.Minimo = obRow("InicioFaixa")
                obEntry.Maximo = obRow("TerminoFaixa")
                obEntry.Preco = obRow("ValorFaixa")
                obFaixas.Add(obEntry)
            Next

            obPreco.FaixasPreco = obFaixas.ToArray()
            obPrecos.Add(obPreco)

        Catch ex As Exception

            obPreco.Mensagem = ex.Message
            obPreco.CodigoMensagem = -1000

        End Try

    Next

    Return obPrecos.ToArray()

End Function

It returns only one product despite being a Toarray(). How do I return a list of products?

Don’t need code ready, just an idea of how to do.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.