Perguntas M410LIOK
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
3 anos 7 meses atrás #33014
por diegoo_martins
M410LIOK foi criado por diegoo_martins
Pessoal, boa tarde!
Utilizamos Tes Inteligente e precisamos fazer uma validação no pedido de venda para não deixar confirmar o pedido com um TES diferente do cadastrado na SFM.
Alguém tem alguma ideia de como montar esta validação?
Hoje temos o ponto de entrada M410LIOK fazendo uma validação para deixar obrigatório o campo C6_OPER e gatilhar a SFM, mas mesmo assim ainda sim é possível ter falhas..
If Inclui .or. Altera
cCodigo := aCols[n][nPosCOD]
cTipo := Posicione("SB1",1,xFilial("SB1")+cCodigo,"B1_TIPO")
cTiPed := M->C5_TIPO
If cTipo $ ("PA/ME") .and. Empty(cOper) .and. cTiPed $ "N"
MsgBox("Para pedidos Tipo N - Normal é necessário preencher o Tipo de Operação.","M410LIOK","INFO")
lRet := .F.
EndIf
Endif
Obrigado.
Utilizamos Tes Inteligente e precisamos fazer uma validação no pedido de venda para não deixar confirmar o pedido com um TES diferente do cadastrado na SFM.
Alguém tem alguma ideia de como montar esta validação?
Hoje temos o ponto de entrada M410LIOK fazendo uma validação para deixar obrigatório o campo C6_OPER e gatilhar a SFM, mas mesmo assim ainda sim é possível ter falhas..
If Inclui .or. Altera
cCodigo := aCols[n][nPosCOD]
cTipo := Posicione("SB1",1,xFilial("SB1")+cCodigo,"B1_TIPO")
cTiPed := M->C5_TIPO
If cTipo $ ("PA/ME") .and. Empty(cOper) .and. cTiPed $ "N"
MsgBox("Para pedidos Tipo N - Normal é necessário preencher o Tipo de Operação.","M410LIOK","INFO")
lRet := .F.
EndIf
Endif
Obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
3 anos 7 meses atrás #33015
por diegoo_martins
Respondido por diegoo_martins no tópico M410LIOK
Fiz desta forma, mas não funcionou...
If Inclui .or. Altera
cCodigo := aCols[n][nPosCOD]
cTipo := Posicione("SB1",1,xFilial("SB1")+cCodigo,"B1_TIPO")
cTiPed := M->C5_TIPO
If cTipo $ ("PA/ME") .and. Empty(cOper) .and. cTiPed $ "N"
MsgBox("Para pedidos Tipo N - Normal é necessário preencher o Tipo de Operação.","M410LIOK","INFO")
lRet := .F.
EndIf
// Verifica se existe a amarração TES INTELIGENTE - SFM
cCodNCM := Posicione("SB1",1,xfilial("SB1")+cCodigo,"B1_POSIPI")
dbSelectArea("SFM") // Posiciona na tabela SFM (Tes Inteligente)
SFM->(dbSetOrder(4))//Filial + Tipo + Cliente + Loja + NCM
If SFM->(dbSeek(xFilial("SFM") + SC6->C6_OPER + SC6->C6_CLI + SC6->C6_LOJA + cCodNCM ))
IF SFM->(FM_FILIAL + FM_TIPO + FM_CLIENTE + FM_LOJACLI + FM_POSIPI ) == xFilial("SFM") + SC6->C6_OPER + SC6->C6_CLI + SC6->C6_LOJA + cCodNCM
Aviso("TES","O TES está diferente da amarração realizada no cadastro de TES Inteligente.",{"OK"},1)
lRet := .F.
EndIf
EndIf
EndIf
If Inclui .or. Altera
cCodigo := aCols[n][nPosCOD]
cTipo := Posicione("SB1",1,xFilial("SB1")+cCodigo,"B1_TIPO")
cTiPed := M->C5_TIPO
If cTipo $ ("PA/ME") .and. Empty(cOper) .and. cTiPed $ "N"
MsgBox("Para pedidos Tipo N - Normal é necessário preencher o Tipo de Operação.","M410LIOK","INFO")
lRet := .F.
EndIf
// Verifica se existe a amarração TES INTELIGENTE - SFM
cCodNCM := Posicione("SB1",1,xfilial("SB1")+cCodigo,"B1_POSIPI")
dbSelectArea("SFM") // Posiciona na tabela SFM (Tes Inteligente)
SFM->(dbSetOrder(4))//Filial + Tipo + Cliente + Loja + NCM
If SFM->(dbSeek(xFilial("SFM") + SC6->C6_OPER + SC6->C6_CLI + SC6->C6_LOJA + cCodNCM ))
IF SFM->(FM_FILIAL + FM_TIPO + FM_CLIENTE + FM_LOJACLI + FM_POSIPI ) == xFilial("SFM") + SC6->C6_OPER + SC6->C6_CLI + SC6->C6_LOJA + cCodNCM
Aviso("TES","O TES está diferente da amarração realizada no cadastro de TES Inteligente.",{"OK"},1)
lRet := .F.
EndIf
EndIf
EndIf
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
3 anos 7 meses atrás #33018
por admin
Cara ve se funfa ai, não testei.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOPCONN.CH"
#INCLUDE "COLORS.CH"
#INCLUDE "RWMAKE.CH"
#include "TbiConn.ch"
#include "TbiCode.ch"
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³ MT410CPY Autor ³ Luiz ³ Data ³ 20/08/12 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
/*/
USER FUNCTION MT410TOK()
Local aArea := GetArea()
Local lRet := .T.
Local nPosOper := GDFIELDPOS("C6_OPER")
Local nPosTES := GDFIELDPOS("C6_TES")
Local nPosCOD := GDFIELDPOS("C6_PRODUTO")
Local nPosITEM := GDFIELDPOS("C6_ITEM")
// Valida TES
For nx := 1 To Len(aCols)
If !aCols[nx,Len(aHeader)+1] // se o acols náo estiver deleta processa.
cTesAtual := aCols[nx,nPosTES]
cProduto := aCols[nx,nPosCod]
cOpera := aCols[nx,nPosOper]
cItem := aCols[nx,nPosITEM]
cTes := MaTesInt( 2 ,;
cOpera,;
SA1->A1_COD,;
SA1->A1_LOJA,;
"C",;
cProduto,,;
SA1->A1_TIPO)
If cTesAtual <> cTes
MsgStop("Atenção a Tes do Item " + cItem + " Está Diferente No Programado pelo Sistema, Verifique !!!")
Return .F.
Endif
Endif
Next
Return .T.
Por favor Acessar ou Registrar para participar da conversa.
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
3 anos 7 meses atrás #33019
por diegoo_martins
Respondido por diegoo_martins no tópico M410LIOK
Luiz,
Quando clico para Salvar o pedido gera a mensagem de erro, mas está deixando salvar o pedido com o TES errado. Fiz algumas alterações, mas sem sucesso...
USER FUNCTION MT410TOK()
Local aArea := GetArea()
Local lRet := .T.
Local nPosOper := GDFIELDPOS("C6_OPER")
Local nPosTES := GDFIELDPOS("C6_TES")
Local nPosCOD := GDFIELDPOS("C6_PRODUTO")
Local nPosITEM := GDFIELDPOS("C6_ITEM")
Local aAreaC9 := SC9->(GetArea())
Local aAreaC5 := SC5->(GetArea())
Local aAreaC6 := SC6->(GetArea())
If Inclui .or. Altera
// Valida TES
For nx := 1 To Len(aCols)
If !aCols[nx,Len(aHeader)+1] // se o acols náo estiver deleta processa.
cTesAtual := aCols[nx,nPosTES]
cProduto := aCols[nx,nPosCod]
cOpera := aCols[nx,nPosOper]
cItem := aCols[nx,nPosITEM]
cTes := MaTesInt( 2 ,;
cOpera,;
SA1->A1_COD,;
SA1->A1_LOJA,;
"C",;
cProduto,,;
SA1->A1_TIPO)
If cTesAtual <> cTes
MsgBox("O TES do item " +cItem+ " está diferente do cadastro de Tes Inteligente. Favor verificar com o depto Fiscal.","MT410TOK","INFO")
Return .F.
Endif
Endif
Next
EndIf
RestArea(aAreaC6)
RestArea(aAreaC5)
RestArea(aAreaC9)
RestArea(aArea)
Return (lRet)
Quando clico para Salvar o pedido gera a mensagem de erro, mas está deixando salvar o pedido com o TES errado. Fiz algumas alterações, mas sem sucesso...
USER FUNCTION MT410TOK()
Local aArea := GetArea()
Local lRet := .T.
Local nPosOper := GDFIELDPOS("C6_OPER")
Local nPosTES := GDFIELDPOS("C6_TES")
Local nPosCOD := GDFIELDPOS("C6_PRODUTO")
Local nPosITEM := GDFIELDPOS("C6_ITEM")
Local aAreaC9 := SC9->(GetArea())
Local aAreaC5 := SC5->(GetArea())
Local aAreaC6 := SC6->(GetArea())
If Inclui .or. Altera
// Valida TES
For nx := 1 To Len(aCols)
If !aCols[nx,Len(aHeader)+1] // se o acols náo estiver deleta processa.
cTesAtual := aCols[nx,nPosTES]
cProduto := aCols[nx,nPosCod]
cOpera := aCols[nx,nPosOper]
cItem := aCols[nx,nPosITEM]
cTes := MaTesInt( 2 ,;
cOpera,;
SA1->A1_COD,;
SA1->A1_LOJA,;
"C",;
cProduto,,;
SA1->A1_TIPO)
If cTesAtual <> cTes
MsgBox("O TES do item " +cItem+ " está diferente do cadastro de Tes Inteligente. Favor verificar com o depto Fiscal.","MT410TOK","INFO")
Return .F.
Endif
Endif
Next
EndIf
RestArea(aAreaC6)
RestArea(aAreaC5)
RestArea(aAreaC9)
RestArea(aArea)
Return (lRet)
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.093 segundos