PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Ponto de Entrada - MT103IPC()
Versão:
12.1.2210
Plataforma:
Microsoft
Complemento:
DB:
SQL Server
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EDSONNOVAE EDSONNOVAE em 19/06/2024, 12:46 h
Local: SP  Registro: 13/12/2022  Postagens: 3
Boa tarde, Prezados.

Estou tentando utilizar o ponto de entrada MT103IPC para gravar no campo D1_ICMSRET o valor do campo C7_ICMSRET ao selecionar o pedido de compra no Documento de Entrada.

Mais não está buscando nenhum resultado o ponto de entrada que fiz a implementação, alguem já passou por isso?

Tem alguma sugestão do que possa ser feito para resolver.

Segue o fonte.

User Function MT103IPC()

Local fD1Icms    := GdFieldPos(‘D1_ICMSRET‘) as numeric
Local nLine     := PARAMIXB[01] as numeric


    If fD1Icms > 0
        aCols[nLine,fD1Icms]   := SC7->C7_ICMSRET
    Endif

Return( Nil )

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EMERSON.EN EMERSON.EN em 19/06/2024, 19:06 h
Local: SP  Registro: 20/08/2010  Postagens: 680
os campos de impostos são preenchidos ao informar o TES ou operação.
de qualquer modo, se quiser preencher o campo com as informações do pedido, você precisa buscar o valor do item correto do pedido.

tente algo assim:

User Function MT103IPC()
Local nItem := PARAMIXB[0]
Local nD1ICMRET := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_ICMSRET"})
Local nD1PEDIDO := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_PEDIDO"})
Local nD1ITEMPC := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_ITEMPC"})
Local nVlrICMSR, cChvPed

     If (nD1ICMRET > 0) .AND. (nD1PEDIDO > 0) .AND. (nD1ITEMPC > 0)
          cChvPed := xFilial(‘SC7‘) + padr(gdFieldGet(‘D1_PEDIDO‘,nItem), len(SC7->C7_NUM)) + gdFieldGet(‘D1_ITEMPC‘,nItem)
          nVlrICMSR := GetADVFVal(‘SC7‘, ‘C7_ICMSRET‘, cChvPed, 1)
          gdFieldPut(‘D1_ICMSRET‘, nVlrICMSR, nItem)
     Endif

Return

Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN ROBERTOMEN em 19/06/2024, 19:49 h
Local: PR  Registro: 04/07/2017  Postagens: 519
boa noite


O Ponto de entrada MT103IPC Atualiza os campos CUSTOMIZADOS no documento de entrada na Pré Nota de Entrada após a importação dos itens do Pedido de Compras (SC7).


D1_ICMSRET é um campo padrão do sistema.


Então creio que por este motivo o Ponto de Entrada não esteja atualizando o campo.
















Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN ROBERTOMEN em 20/06/2024, 06:58 h
Local: PR  Registro: 04/07/2017  Postagens: 519
Bom dia.


Bom saber que atualiza também campos padrão do Protheus.


Vou validar aqui.


Obrigado Emerson

Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN ROBERTOMEN em 20/06/2024, 08:16 h
Local: PR  Registro: 04/07/2017  Postagens: 519

Bom dia, deu certo aqui atualizar o CAMPO D1_ICMSRET


Mas, com nItem := PARAMIXB[0] não funcionou,

tive que alterar para nItem := PARAMIXB[1]

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EDSONNOVAE EDSONNOVAE em 21/06/2024, 08:08 h
Local: SP  Registro: 13/12/2022  Postagens: 3
Olá Emerson Bom dia.

Fiz a implementação do código fonte.
não gerou errou mais também não trouxe o campo D1_ICMSRET
preenchido com o valor do C7_ICMSRET.

Será que isso pode ter acontecido devido alguma validação no configurador?

Esse eo fonte que estou usando.

User Function MT103IPC()

Local nItem := PARAMIXB[1]
Local nD1ICMRET := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_ICMSRET"})
Local nD1PEDIDO := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_PEDIDO"})
Local nD1ITEMPC := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_ITEMPC"})
Local nVlrICMSR, cChvPed

     If (nD1ICMRET > 0) .AND. (nD1PEDIDO > 0) .AND. (nD1ITEMPC > 0)
          cChvPed := xFilial(‘SC7‘) + padr(gdFieldGet(‘D1_PEDIDO‘,nItem), len(SC7->C7_NUM)) + gdFieldGet(‘D1_ITEMPC‘,nItem)
          nVlrICMSR := GetADVFVal(‘SC7‘, ‘C7_ICMSRET‘, cChvPed, 1)
          gdFieldPut(‘D1_ICMSRET‘, nVlrICMSR, nItem)
     Endif

Return


Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN ROBERTOMEN em 21/06/2024, 15:44 h
Local: PR  Registro: 04/07/2017  Postagens: 519
Boa tarde.


Edson o campo D1_ICMSRET possui validação de sistema que recalcula o ICMS Solidário, então mesmo vc "forçando" ele para pegar o valor da SC7 pelo P.E. MT103IPC, na validação de sistema ele será recalculado.

Veja que mesmo que você informe um valor para ele no documento de entrada e depois de informado o valor você alterar o valor unitário o sistema o recalcula.

Creio que seja este o problema.

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário EDSONNOVAE EDSONNOVAE em 21/06/2024, 16:32 h
Local: SP  Registro: 13/12/2022  Postagens: 3
Obrigado pela explicação Roberto, e como fazer para que o campo D1_ICMSRET seja preenchido com o campo do C7_ICMSRET do pedido de compra nesse caso?


Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN ROBERTOMEN em 23/06/2024, 10:41 h
Local: PR  Registro: 04/07/2017  Postagens: 519
Bom dia.


pelo P.E. MT100LOK vai preencher, mas o valor só será apresentado na tela quando vc mudar para a proxima linha ou quando salvar o Doc de Entrada.



**********************
User Function MT100LOK()
**********************    
Local aArea := GetArea()
Local lRet := .T.

Local nD1ICMRET := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_ICMSRET"})
Local nD1PEDIDO := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_PEDIDO"})
Local nD1ITEMPC := aScan(aheader,{|x|upper(alltrim(x[2]))=="D1_ITEMPC"})
   
             
cChvPed := xFilial(‘SC7‘) + padr(aCols[N,nD1PEDIDO] , len(SC7->C7_NUM)) + aCols[N,nD1ITEMPC]

nVlrICMSR := GetADVFVal(‘SC7‘, ‘C7_ICMSRET‘, cChvPed, 1)

If (nD1ICMRET > 0) .AND. (nD1PEDIDO > 0) .AND. (nD1ITEMPC > 0) .and. nVlrICMSR > 0
     aCols[N,nD1ICMRET] := nVlrICMSR
endif
     
RestArea(aArea)
Return lRet



Outra forma seria incluindo um gatilho no D1_COD preenchendo o D1_ICMSRET com o conteúdeo de SC7->C7_ICMSRET, mas o valor só será preenchido se teclar Enter no campo Cod de Produto para acionar o Gatilho.




Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal