- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Validar duplicidade em SC
×
Linguagem de Programação ADVPL
Perguntas Validar duplicidade em SC
- jonasdidu
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 15
- Obrigados Recebidos: 0
10 anos 2 semanas atrás #26417
por jonasdidu
Validar duplicidade em SC foi criado por jonasdidu
Boa tarde, galera.
Sou iniciante em ADVPL, gostaria de saber como faço para criar uma rotina que avise se existe, quando for abrir SC, outra com mesmo produto contido.
Necessito fazer essa validação em um ponto de entrada??
Sou iniciante em ADVPL, gostaria de saber como faço para criar uma rotina que avise se existe, quando for abrir SC, outra com mesmo produto contido.
Necessito fazer essa validação em um ponto de entrada??
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 2 semanas atrás - 10 anos 2 semanas atrás #26427
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Validar duplicidade em SC
Jonas boa noite, não necessariamente um ponto de entrada, poderá utilizar uma validação no campo C1_PRODUTO para pesquisar se existe alguma sc não atendida com o mesmo produto.
Não testei mas veja se funfa:
Na Validação Usuario deste Campo Coloque U_BsqSC(M->C1_PRODUTO)
User Function BsqSC(cProduto)
Local aArea := GetArea()
Local lExiste := .f.
Local lRet := .t.
If SC1->(dbSetOrder(1), dbSeek(xFilial("SC1")+cProduto))
While SC1->(!Eof()) .And. SC1->C1_PRODUTO == cProduto .And. SC1->C1_FILIAL == xFilial("SC1")
If SC1->C1_QUANT > SC1->C1_QUJE // Quantidade Solicitada Menos Quantidade Atendida Se For Maior Entao Esta em Aberto
lExiste := .t.
Exit
Endif
SC1->(dbSkip(1))
Enddo
Endif
If lExiste
MsgBox("Atenção Já Existe Solicitação de Compras para Este Produto Ainda Não Atendida !")
lRet := .f.
Endif
RestArea(aArea)
Return lRet
Não testei mas veja se funfa:
Na Validação Usuario deste Campo Coloque U_BsqSC(M->C1_PRODUTO)
User Function BsqSC(cProduto)
Local aArea := GetArea()
Local lExiste := .f.
Local lRet := .t.
If SC1->(dbSetOrder(1), dbSeek(xFilial("SC1")+cProduto))
While SC1->(!Eof()) .And. SC1->C1_PRODUTO == cProduto .And. SC1->C1_FILIAL == xFilial("SC1")
If SC1->C1_QUANT > SC1->C1_QUJE // Quantidade Solicitada Menos Quantidade Atendida Se For Maior Entao Esta em Aberto
lExiste := .t.
Exit
Endif
SC1->(dbSkip(1))
Enddo
Endif
If lExiste
MsgBox("Atenção Já Existe Solicitação de Compras para Este Produto Ainda Não Atendida !")
lRet := .f.
Endif
RestArea(aArea)
Return lRet
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Ultima edição: 10 anos 2 semanas atrás por lalberto.
Por favor Acessar ou Registrar para participar da conversa.
- jonasdidu
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 15
- Obrigados Recebidos: 0
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Validar duplicidade em SC
Tempo para a criação da página:0.126 segundos