Perguntas Retorno Poder Terceiros
- claysonalves
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 7
- Obrigados Recebidos: 0
11 anos 3 meses atrás #16428
por claysonalves
Retorno Poder Terceiros foi criado 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,
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.
- ftvernier
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 386
- Obrigados Recebidos: 2
11 anos 3 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
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.063 segundos