- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto de entrada - MTA410
×
Linguagem de Programação ADVPL
Perguntas Ponto de entrada - MTA410
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
3 anos 7 meses atrás #33032
por diegoo_martins
Ponto de entrada - MTA410 foi criado por diegoo_martins
Pessoal, bom dia!
Fiz o ponto de entrada na validação do Pedido de Vendas com o objetivo de validar, se o TES atual está diferente do código cadastrado no TES Inteligente. Está funcionando, porém surgiu uma necessidade de validar somente os itens que não foram faturados.
Pode me dar uma ajudar para inserir esta validação?
User Function MTA410()
Local nPosOper := GDFIELDPOS("C6_OPER")
Local nPosTES := GDFIELDPOS("C6_TES")
Local nPosCOD := GDFIELDPOS("C6_PRODUTO")
Local nPosITEM := GDFIELDPOS("C6_ITEM")
Local cTiPed
// Valida TES do pedido x Cadastro de Tes Inteligente
dbSelectArea("SFM")
SFM->(dbSetorder(4)) //FM_FILIAL+FM_TIPO+FM_CLIENTE+FM_LOJACLI+FM_POSIPI
cPOSIPI:= Posicione("SB1",1,xfilial("SB1")+SC6->C6_PRODUTO,"B1_POSIPI")
cTiPed := M->C5_TIPO
IF INCLUI .or. ALTERA // MA410RESID
If SFM->(dbSeek(xFilial("SFM")+SC6->C6_OPER+SC6->C6_CLI+SC6->C6_LOJA+cPOSIPI))
If cTiPed $ "N" //.and. EMPTY(SC6->C6_NOTA)
For nx := 1 To Len(aCols)
If !aCols[nx,Len(aHeader)+1]
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("O Tes do item " + cItem + " está diferente do cadastro de TES Inteligente. Favor verifique com o depto Fiscal.")
Return .F.
Endif
Endif
Next
Endif
EndIf
Endif
Return(.T.)
Fiz o ponto de entrada na validação do Pedido de Vendas com o objetivo de validar, se o TES atual está diferente do código cadastrado no TES Inteligente. Está funcionando, porém surgiu uma necessidade de validar somente os itens que não foram faturados.
Pode me dar uma ajudar para inserir esta validação?
User Function MTA410()
Local nPosOper := GDFIELDPOS("C6_OPER")
Local nPosTES := GDFIELDPOS("C6_TES")
Local nPosCOD := GDFIELDPOS("C6_PRODUTO")
Local nPosITEM := GDFIELDPOS("C6_ITEM")
Local cTiPed
// Valida TES do pedido x Cadastro de Tes Inteligente
dbSelectArea("SFM")
SFM->(dbSetorder(4)) //FM_FILIAL+FM_TIPO+FM_CLIENTE+FM_LOJACLI+FM_POSIPI
cPOSIPI:= Posicione("SB1",1,xfilial("SB1")+SC6->C6_PRODUTO,"B1_POSIPI")
cTiPed := M->C5_TIPO
IF INCLUI .or. ALTERA // MA410RESID
If SFM->(dbSeek(xFilial("SFM")+SC6->C6_OPER+SC6->C6_CLI+SC6->C6_LOJA+cPOSIPI))
If cTiPed $ "N" //.and. EMPTY(SC6->C6_NOTA)
For nx := 1 To Len(aCols)
If !aCols[nx,Len(aHeader)+1]
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("O Tes do item " + cItem + " está diferente do cadastro de TES Inteligente. Favor verifique com o depto Fiscal.")
Return .F.
Endif
Endif
Next
Endif
EndIf
Endif
Return(.T.)
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
3 anos 7 meses atrás #33033
por admin
Respondido por admin no tópico Ponto de entrada - MTA410
Fala diego blz, mas pra saber se os itens forma ou não faturados, só iria funcionar na alteração correto, você pode dar um seek na sc6 e ver o campo C6_QTDENT se está maior que zero, então foi faturado.
Coloquei uma regra ai, se for alteração verifica se a quantidade entregue já está maior que zero então valida a tes, e na inclusão valida sempre.
Coloquei uma regra ai, se for alteração verifica se a quantidade entregue já está maior que zero então valida a tes, e na inclusão valida sempre.
User Function MTA410()
Local nPosOper := GDFIELDPOS("C6_OPER")
Local nPosTES := GDFIELDPOS("C6_TES")
Local nPosCOD := GDFIELDPOS("C6_PRODUTO")
Local nPosITEM := GDFIELDPOS("C6_ITEM")
Local cTiPed
// Valida TES do pedido x Cadastro de Tes Inteligente
dbSelectArea("SFM")
SFM->(dbSetorder(4)) //FM_FILIAL+FM_TIPO+FM_CLIENTE+FM_LOJACLI+FM_POSIPI
cPOSIPI:= Posicione("SB1",1,xfilial("SB1")+SC6->C6_PRODUTO,"B1_POSIPI")
cTiPed := M->C5_TIPO
IF INCLUI .or. ALTERA // MA410RESID
If SFM->(dbSeek(xFilial("SFM")+SC6->C6_OPER+SC6->C6_CLI+SC6->C6_LOJA+cPOSIPI))
If cTiPed $ "N" //.and. EMPTY(SC6->C6_NOTA)
For nx := 1 To Len(aCols)
If !aCols[nx,Len(aHeader)+1]
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 ALTERA .And. SC6->(dbSetOrder(1), dbSeek(xFilial("SC6")+M->C5_PRODUTO+cItem)) .And. SC6->C6_QTDENT > 0
If cTesAtual <> cTes
MsgStop("O Tes do item " + cItem + " está diferente do cadastro de TES Inteligente. Favor verifique com o depto Fiscal.")
Return .F.
Endif
Else
If cTesAtual <> cTes
MsgStop("O Tes do item " + cItem + " está diferente do cadastro de TES Inteligente. Favor verifique com o depto Fiscal.")
Return .F.
Endif
Endif
Endif
Next
Endif
EndIf
Endif
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 #33053
por diegoo_martins
Respondido por diegoo_martins no tópico Ponto de entrada - MTA410
Boa noite Luis.
Só alterei esta linha para pegar na alteração.
IF INCLUI .or. ALTERA => IF ALTERA
Muito obrigado.
Só alterei esta linha para pegar na alteração.
IF INCLUI .or. ALTERA => IF ALTERA
Muito obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto de entrada - MTA410
Tempo para a criação da página:0.104 segundos