Boa noite,
Estou tentando fazer com que o retorno do Json de uma API me retorne todos os pedidos de venda abertos se eu não passar o número nos parâmetros, mas não consigo de forma nenhuma. Ele me traz com sucesso se eu passo o número sem problemas. Alguém consegue me ajudar nesse ponto? Já tentei de tudo mas não consegui.
Segue o código abaixo:
_cSQLPed := "SELECT C5_NUM, C5_CLIENTE, C5_LOJACLI, C5_XNUMORC, C5_EMISSAO, C5_XXTPVEI, C5_XXTPCAR, A1_NOME, A1_EST, A1_MUN, A1_CGC, C6_ITEM, C6_PRODUTO, C6_DESCRI, C6_UM,"
_cSQLPed += " C6_QTDVEN - C6_QTDENT AS SALDO, C6_SEGUM, B1_TIPCONV, B1_CONV, B1_GRUPO, C5_XXCARPA, C5_TPFRETE, C5_XXVLFRE,"
_cSQLPed += " C6_XXESSAL, C5_XXOBSCO, C5_VEND1, A3_NOME"
_cSQLPed += " FROM " + RetSQLName("SC5") + " SC5"
_cSQLPed += " INNER JOIN " + RetSQLName("SC6") + " SC6"
_cSQLPed += " ON C5_FILIAL = C6_FILIAL AND C5_NUM = C6_NUM"
_cSQLPed += " INNER JOIN " + RetSQLName("SA1") + " SA1"
_cSQLPed += " ON C5_CLIENTE = A1_COD AND C5_LOJACLI = A1_LOJA"
_cSQLPed += " INNER JOIN " + RetSQLName("SB1") + " SB1"
_cSQLPed += " ON C6_PRODUTO = B1_COD"
_cSQLPed += " INNER JOIN " + RetSQLName("SA3") + " SA3"
_cSQLPed += " ON C5_VEND1 = A3_COD"
cSQLPed += " WHERE SC5.D_E_L_E_T <> '' AND SC6.DE_L_E_T <> '' AND SA1.DE_L_E_T <> '' AND SB1.DE_L_E_T <> '' AND SA3.DE_L_E_T <> '*'"
_cSQLPed += " AND C6_FILIAL = '" + _cFilial + "'"
if !empty(_cPedido)
_cSQLPed += " AND C5_NUM = '"+_cPedido+"'"
endif
// Não exibir pedidos já faturados
_cSQLPed += " AND (C6_QTDVEN - C6_QTDENT) > 0"
// Não exibir os pedidos com eliminação de resíduo
_cSQLPed += " AND C6_BLQ <> 'R'"
_cSQLPed += " ORDER BY C6_ITEM"
LogMsg('SALW0300', 10, 5, 1, '', '', 'SALW0300 - Query Pedido: ' + _cSQLPed)
_cAliasPed := GetNextAlias()
_cSQLPed := ChangeQuery(_cSQLPed)
DbUseArea(.T., "TOPCONN", TCGenQry(,,_cSQLPed),_cAliasPed, .F., .T.)
DbSelectArea(_cAliasPed)
_oJson := JsonObject():New()
_oJson["filial"] := _cFilial
If !( (_cAliasPed)->( Eof() ) )
While !(_cAliasPed)->( Eof() )
_cSubGrupo := u_xSubGrupo( (_cAliasPed)->B1_GRUPO, (_cAliasPed)->C6_DESCRI )
_cFila := u_xFilaMot( (_cAliasPed)->B1_GRUPO, (_cAliasPed)->C5_CLIENTE + (_cAliasPed)->C5_LOJACLI)
_cEspSal := u_xEspeSal( (_cAliasPed)->C6_XXESSAL )
//Consulta o status de crédito do cliente
_aCredCli := u_xConCred( AllTrim((_cAliasPed)->A1_CGC) )
_oJson["dadospedido"] := {}
_oJsonPed := JsonObject():New()
_oJsonPed["numPedido"] := (_cAliasPed)->C5_NUM
_oJsonPed["clienteCGC"] := AllTrim((_cAliasPed)->A1_CGC)
_oJsonPed["clienteCod"] := (_cAliasPed)->C5_CLIENTE + (_cAliasPed)->C5_LOJACLI
_oJsonPed["clienteNome"] := AllTrim( (_cAliasPed)->A1_NOME )
_oJsonPed["clienteCredito"] := _aCredCli[1][2]
aAdd(_oJson["dadositem"], JsonObject():New())
_oJsonIt := JsonObject():New()
_oJsonIt["itempedido"] := (_cAliasPed)->C6_ITEM
_oJsonIt["itemCod"] := AllTrim( (_cAliasPed)->C6_PRODUTO )
_oJsonIt["nomeItem"] := AllTrim( (_cAliasPed)->C6_DESCRI )
_oJsonIt["especificacao"] := _cEspSal
_oJsonIt["subgrupo"] := _cSubGrupo
_oJsonIt["unidademedida"] := AllTrim( (_cAliasPed)->C6_UM )
_oJsonIt["saldo"] := StrTran( CValToChar( (_cAliasPed)->SALDO ), ',' , '.' )
_oJsonIt["segundaum"] := (_cAliasPed)->C6_SEGUM
_oJsonIt["tipoconversao"] := (_cAliasPed)->B1_TIPCONV
_oJsonIt["fatorconversao"] := StrTran( CValToChar( (_cAliasPed)->B1_CONV ), ',' , '.' )
_oJsonIt["tipoFilaCod"] := _cFila
aAdd(_oJson["dadospedido"], _oJsonPed)
aAdd(_oJson["dadospedido"], _oJsonIt)
(_cAliasPed)->( DbSkip() )
EndDo
::SetResponse(encodeUTF8(_oJson:TOJson()))
Obrigado desde já!
Fala ai Leonardo, tudo bem? É bom ter certeza que sua variável está vazia , tentou dar um conout nela antes do if para ver o conteudo?
— Leandro Lemos 15 de Aug de 2024