Perguntas Retorno Poder Terceiros

Mais
11 anos 4 meses atrás #16428 por claysonalves
Bom Dia,

Pessoal alguém sabe alguma forma de melhor a busca da nota fiscal de retorno no pedido de venda, quando tenho retorno e o usuário vai buscar nota fiscal original via F4 o sistema demora muito para apresentar a tela com lista das nota fiscal, estou com problema somente nessa rotina, não questão de desempenho pois tenho balanceamento e a configuração do servidor é muito boa.

No aguardo,

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 4 meses atrás #16504 por ftvernier
Respondido por ftvernier no tópico Retorno Poder Terceiros
Clayson,

Tenho um ponto de entrada que filtra somente as notas com saldo, isso agilizou e muito a busca.

Segue o ponto.


User Function A410RNF
Local AreaAtu := GetArea()
Local cQryB6 := ""
Local cNotasB6 := ""

cQryB6 := " SELECT B6_DOC+B6_SERIE B6_CHAVE"
cQryB6 += " FROM "+RetSqlName("SB6")+" B6"
cQryB6 += " WHERE B6_CLIFOR+B6_LOJA = '"+cFornece+cLoja+"'"
cQryB6 += " AND B6_SALDO > 0 AND D_E_L_E_T_ <> '*'"
DBUseArea(.T.,"TOPCONN",TCGENQRY(,,cQryB6),"TRB",.F.,.T.)
DbSelectArea("TRB")
While TRB->(!EOF())
cNotasB6 += TRB->B6_CHAVE + '/'
TRB->(DbSkip())
EndDo
TRB->(DbCloseArea())

If !PARAMIXB[4]
cNotasB6 := Left(cNotasB6,Len(cNotasB6)-1)
cQuery := " SF1->F1_FILIAL == '" + xFilial("SF1") + "' "
cQuery += " And SF1->F1_FORNECE == '" + cFornece + "' "
cQuery += " And SF1->F1_LOJA == '" + cLoja + "' "
cQuery += " And DtoS(SF1->F1_DTDIGIT) >= '" + DtoS(PARAMIXB[1]) + "'"
cQuery += " And DtoS(SF1->F1_DTDIGIT) <= '" + DtoS(PARAMIXB[2]) + "' "
cQuery += " And SF1->F1_STATUS <> '" + Space(Len(SF1->F1_STATUS)) + "' "
If PARAMIXB[3]
cQuery += " And !(SF1->F1_TIPO $ 'DB') "
Else
cQuery += " And SF1->F1_TIPO $ 'DB'
EndIf
If !Empty(cNotasB6)
//Filtra somente as notas que possuem saldo na tabela de saldos em poder de terceiros(SB6)
cQuery += " And F1_DOC+F1_SERIE $ "+cNotasB6 //FormatIn(cNotasB6,'/')
Endif
Else
cQuery := " SELECT * "
cQuery += " FROM " + RetSqlName("SF1")
cQuery += " WHERE F1_FILIAL = '" + xFilial("SF1") + "' "
cQuery += " AND F1_FORNECE = '" + cFornece + "' "
cQuery += " AND F1_LOJA = '" + cLoja + "' "
cQuery += " AND F1_DTDIGIT BETWEEN '" + DtoS(PARAMIXB[1]) + "' AND '" + DtoS(PARAMIXB[2]) + "' "
cQuery += " AND F1_STATUS <> '" + Space(Len(SF1->F1_STATUS)) + "' "
If PARAMIXB[3]
cQuery += " AND F1_TIPO NOT IN ('D','B')
Else
cQuery += " AND F1_TIPO IN ('D','B')
EndIf
cQuery += " AND D_E_L_E_T_ = ' ' "
If !Empty(cNotasB6)
//Filtra somente as notas que possuem saldo na tabela de saldos em poder de terceiros(SB6)
cQuery += " And F1_DOC+F1_SERIE IN"+FormatIn(cNotasB6,'/')
Endif
Endif
RestArea(AreaAtu)
Return cQuery

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.083 segundos
Joomla templates by a4joomla