Este Ponto de Entrada pertence à rotina de Recebimento de Importação. Ele deve ser utilizado para customização desta rotina.
Programa Fonte: EICDI154.PRW
#Include 'Protheus.ch'
User Function EICDI154()
Local cParam
Local nValQuebra:= 150 //Quantidade de itens desejada por nota fiscal (alterar conforme necessidade)
local lExibeTela:= .F.
Local nPos
If ValType(ParamIXB) == "A"
cParam:= ParamIXB[1]
Else
cParam:= ParamIXB
EndIf
cParam:= Upper(cParam)
Do Case
Case cParam == "TEM_OUTRA_QUEBRA"
lQuebra_espe:= .T.
Case cParam == "QUEBROU_NF"
IF nTipoNF == 2 .Or. nTipoNF == 7
IF Work1->WKNOTAOR <> cNumComp .OR. Work1->WKSERIEOR <> cSerieComp .Or. nItem >= nValQuebra
cNumComp := WORK1->WKNOTAOR
cSerieComp := WORK1->WKSERIEOR
lQuebrou_NF:= .T.
ENDIF
ELSE
IF nItem >= nValQuebra .OR.;
cForn # Work1->WKFORN .OR. (EICLoja() .And. cForLoj # Work1->WKLOJA) .OR.;
nItem == 0 .OR. If(lQuebraCFO, cCFO # Work1->WK_CFO,.F.) .OR.;
(lIntDraw .AND. Work1->WKACMODAL # cACModal) .OR.;
(lQuebraOperacao .AND. cOperacao # Work1→WK_OPERACA)
lQuebrou_NF:= .T.
ENDIF
ENDIF
Case cParam == "INICIA_VARIAVEIS"
lLoop:= .T.
lAlteraItemPE := .F. //Bloqueia a abertura da tela de edição de valores
Case cParam == "FINALGRAVA"
/* lComDiferenca indica se há divergência entre os valores dos impostos informados nas despesas do desembaraço comparados aos valores dos impostos apurados pelo recebimento de importação. */
If lComDiferenca
//lRetorno aborta a gravação do recebimento de importação
lRetorno:= .F.
//Exibe a tela com a mensagem de divergências (lExibeTela é local, disponível apenas na customização)
If lExibeTela
DI154MsgDif(.T.) //função padrão que exibe a tela de divergências dos valores de impostos
EndIf
EndIf
Case cParam == "GERA_MAINWND"
lEstornoPE:= .F.
Case cParam == "IDI154MNU"
Local aRotina := {}
//{Nome apresentado, Função que vai ser executado, 0 ,0}
aAdd(aRotina,{"P.E. de Teste","FUNCTIONX",0,0})
Return aRotina
Case cParam == "GRAVACAO_SF1"
cChaveSF1 := 'nova chave da nfe'
AADD(aCab,{"F1_PLIQUI" ,10 ,Nil})
Case cParam == "GRAVACAO_SD1"
nPos:= AScan(aItem[1], {|x| AllTrim(x[1]) == "D1_DESPESA"})
If nPos > 0
aItem[nPos][2]:= 0 //novo valor
EndIf
Case cParam == "ADD_ESTRU_WORK1"
//AADD(aDBF_Stru,{"campo" ,"tipo",tamanho,decimal quando houver})
AADD(aDBF_Stru,{"WKNomeCampo" ,"N",13,3})
Case cParam == "ESTORNO NA NOTA"
MsgInfo(“Grava dados antes do estorno”) Case cParam == "ANTES_ESTORNO_NOTA"
lOk:= .F.
Case cParam == "GRV_WORK1"
Work1->WK_EXEMPLO :=SWV->WV_EXEMPLO
Case cParam == "FIM_ESTORNO"
MsgInfo(“Depois do estorno”)
Case cParam == "TEM_OUTRA_QUEBRA"
lQuebra_espe:=.T.
IF nItem >= GetMV("MV_HDNFIMP") .OR.;
cForn # Work1->WKFORN .OR.;
nItem == 0 .OR. cCFO # Work1->WK_CFO .OR.;
(lIntDraw .AND. Work1->WKACMODAL # cACModal) .OR.;
(lQuebraOperacao .AND. cOperacao # Work1->WK_OPERACA)
lQuebrou_NF:=.T.
Endif
Case cParam := “RATEIO_ACRESCIMO”
MsgInfo("Entrou no ponto de entrada 'RATEIO_ACRESCIMO'." + CHR(13)+CHR(10)+ "Variavel lExitPE := .T.")
Case cParam := "DEDUCAO_FRETE"
MsgInfo("Entrou no ponto de entrada DEDUCAO_FRETE." + CHR(13)+CHR(10)+ "Variavel lDeduFrete := .T.")
lDeduFrete := .T.
Case cParam := “WHILE_1_WORK2”
Do while Work1->(!Eof()) .And. Work1->WKADICAO == Work2->WKADICAO
[instruções]
EndDo
Case cParam := "ALT_CRIT_RAT_DSPICM"
If [Variável] == Work1->WKADICAO //Qualquer outro campo da Work1
[Instrução]
EndIf
Case cParam := "DT_DESEMBARACO"
MsgInfo("Entrou no ponto de entrada 'DT_DESEMBARACO'.")
lDataDesmb := .F. //Desativa a validação da Data Desembaraço.
Case cParam == "ANTES_GRAVA_WORK4"
If SWD->WD_DESPESA <> "404" //condição customizada
lLoop:= .T.
EndIf
Case cParam == "DI154_SWDVAL"
If SWD->WD_DESPESA <> "404" //condição customizada
nValor:= 0
EndIf
Case cParam == "TAB_DESPESAS" //condição customizada
If SWD->WD_DESPESA <> "404"
lSair := .T.
EndIf
Case cParam == "GRAVA_SWD"
If SWD->WD_DESPESA == "ABC"
SWD->WD_CUSTOM:= "DEFG"
EndIf
EndCase
Return
Nome | Tipo | Descrição |
---|---|---|
TEM_OUTRA_QUEBRA | Caracter | Possibilita customizar novas opções de quebra para a Nota Fiscal. |
QUEBROU_NF | Caracter | Possibilita controlar a quebra de nota. |
GRAVACAO_SF1 | Caracter | Possibilita alterar o valor da chave da nota fiscal e também o array aCab onde contém as informações da capa da nota fiscal de entrada. |
INICIA_VARIAVEIS | Caracter | Chamada para prosseguir ou impedir a abertura da tela para gerar nota fiscal na rotina de recebimento de importação. Atribuir a variável lLoop := .T. para impedir a abertura da janela de nota fiscal. Atribuir lLoop := .F. |
FINALGRAVA | Caracter | Chamado após a apuração dos valores do recebimento de importação, permite determinar se o sistema deverá prosseguir com a geração do recebimento de importação. Neste momento estará disponível a variável lRetorno. Vide também a variável lComDiferenca abaixo. |
GERA_MAINWND | Caracter | Executado antes da abertura da tela do recebimento de importaçao, permite customizar o título (variável cTit) e ações da tela, como o desabilitar o botão estonar (variável lEstornoPE). |
IDI154MNU | Caracter | Possibilita a inclusão de opções no menu mbrowse. |
ADD_ESTRU_WORK1 | Caracter | Possibilita a inclusão ou alteração de campos na estrutura da work1. |
FIM_ESTORNO | Caracter | Possibilita o acréscimo de funções no estorno das notas fiscais de entrada na rotina Recebimento de Importação, o ponto de entrada é executado após o estorno da(s) nota (s) de entrada. |
ESTORNO NA NOTA | Caracter | Possibilita gravação dos dados antes de realizar o estorno, é executado durante o while na SF1, antes de efetivar o estorno. |
ANTES_ESTORNO_NOTA | Caracter | Executado no início da função do estorno da nota, no momento de declaração de variáveis. Possibilita sair da rotina antes de ser executada. |
GRV_WORK1 | Caracter | Possibilita a gravação na Work1 campos customizados da tabela SWV. |
RATEIO_ACRESCIMO | Caracter | Permite a customização de rateios dos itens quando a variável lExitPE for setada como .T.. |
DEDUCAO_FRETE | Caracter | Permite a dedução de frete no momento da geração da NF quando a variável lDeduFrete estiver habilitada. |
WHILE_1_WORK2 | Caracter | Permite manipular alguns valores apurados por adição |
ALT_CRIT_RAT_DSPICM | Caracter | Altera o Critério de Rateio das despesas base de ICMS na Nota Fiscal |
DT_DESEMBARACO | Caracter | Permite alterar o valor da variavel lDataDesemb |
APOS_ESTORNO | Caracter | Este parâmetro indica que a chamada do ponto de entrada está sendo realizada após o estorno do recebimento de importação. |
GRAVACAO_SD1 | Caracter | Este parâmetro indica que a chamada do ponto de entrada está sendo realizada durante a geração da nota fiscal de entrada, durante a gravação dos itens. |
MBROWSE | Array | Quando o ponto de entrada "EICDI154" estiver passando no parâmetro "PARAMIXB" o conteúdo "MBROWSE", permitirá a inclusão de um novo campo no Browse através de RdMake customizado no Recebimento de Importação no módulo de Importação. |
ANTES_GRAVA_WORK4 | Caracter | Este parâmetro indica que o ponto de entrada foi executado durante a criação dos dados das despesas que serão apresentados quando acessada a ação Despesa do recebimento de importação. Estará disponível a variável lLoop que possibilitará condicionar quais despesas serão consideradas para a geração da nota fiscal. |
DI154_SWDVAL | Caracter | Este parâmetro indica que o ponto de entrada foi executado durante a composição dos valores de despesas que serão utilizadas na apuração do custo do item. Caso queira que o valor da despesa seja desconsiderado, estará disponível a variável nValor para intervenção. |
TAB_DESPESAS | Caracter | Este parâmetro indica que o ponto de entrada foi executado durante composição dos valores de despesas que serão armazenados nas tabelas de histórico de despesas da nota fiscal (SWW). Neste momento estará disponível a variável lSair que possibilitará indicar quais despesas serão usadas ou desprezadas na operação. |
GRAVA_SWD | Caracter | Parâmetro executado no momento da gravação dos dados da nota fiscal única ou complementar nas despesas do desembaraço. Executado uma ver para cada despesa existente na operação e considerada na geração da nota fiscal, possibilita o usuário intervir nos dados que serão gravados ou efetuar gravações complementares em campos customizados. |
Parâmetro | Nome | Tipo | Permite alterar | Descrição |
---|---|---|---|---|
GRAVACAO_SF1 | cChaveSF1 | Caracter | Sim | Variável com a chave da nota do momento do recebimento da importação. |
GRAVACAO_SF1 | aCab | Array | Sim | Array com as informações da capa da nota fiscal de entrada - tabela SF1. |
GRAVACAO_SD1 | aItem | Array | Sim | Contém as informações do item do documento de entrada - tabela SD1 |
INICIA_VARIAVEIS | lLoop | Lógico | Sim | Atribuir .T. para impedir a geração de nota fiscal. Atribuir .F. para permitir a geração da nota fiscal. |
FINALGRAVA | lRetorno | Lógico | Sim | Disponível no ponto de entrada com o parâmetro FINALGRAVA, determina se o sistema deverá prosseguir (true) ou não (false) com a gravação do recebimento de importação. Quando definido que não deverá prosseguir com a geração de recebimento de importação, a tela de divergência de valores de impostos não será exibida caso existam divergências entre os dados informados no processo e os impostos apurados pelo sistema. Para exibir a tela de divergências pode ser realizada a chamada da função DI154MsgDif(.T.) pela customização. Vide também a variável lComDiferenca. |
FINALGRAVA | lComDiferenca | Lógico | Não | Também disponível no ponto de entrada com o parâmetro FINALGRAVA, permite identificar se houve divergências entre os impostos informados nas despesas do desembaraço e os impostos calculados pelo recebimento de importação (cenário de negócio com o parâmetro MV_TEM_DI desabilitado). A variável lComDiferenca será True quando houver despesas de impostos informadas no desembaraço e houver divergência; quando não houver despesas de impostos lançadas no desembaraço o sistema informará que estas não foram cadastradas para o processo e a variável lComDiferenca não será alterada para True. Neste cenário, a verificação da não existência das despesas de impostos (SWD) deve ser feita pela customização. |
GERA_MAINWND | cTit | Caracter | Sim | Disponível no ponto de entrada com o parâmetro GERA_MAINWND, permite customizar o título da tela do recebimento de importação, aberto após acesso às ações do browse. |
GERA_MAINWND | lEstornoPE | Lógico | Sim | Disponível no ponto de entrada com o parâmetro GERA_MAINWND, permite desabilitar (False) o botão estorno para os processos que possuem nota fiscal gerada. |
IDI154MNU | aRotina | Array | Sim | Array disponível para criar botões e suas respectivas funções no menu Outras Ações do recebimento da importação. |
ADD_ESTRU_WORK1 | aDBF_Stru | Array | Sim | Array disponível para incluir ou alterar campos na work1. |
ANTES_ESTORNO_NOTA | lOk | Lógico | Sim | Quando alterada para falso por meio do ponto de entrada 'ANTES_ESTORNO_NOTA', sai da rotina sem executar. |
DEDUCAO_FRETE | lDeduFrete | Lógico | Sim | Quando alterada para verdadeiro por meio do ponto de entrada 'DEDUCAO_FRETE', efetua a dedução de frete. |
nSomaBaseICMS | Numérico | Sim | Despesas Base de ICMS somadas da DI (exceto a Taxa do SISCOMEX). | |
nTxSisc | Numérico | Sim | Total da Taxa do SISCOMEX na DI | |
DT_DESEMBARACO | lDataDesmb | Lógico | Sim | Define se vai ter a validação da Data do desembaraço |
INICIA_VARIAVEIS | lAlteraItemPE | Lógico | Sim | Permite bloquear a tela de edição de valores |
ANTES_GRAVA_WORK4 | lLoop | Lógico | Sim | Possibilitará condicionar quais despesas serão consideradas para a geração da nota fiscal. Quando retornada True (.T.) o sistema irá desprezar a despesa em processamento. |
DI154_SWDVAL | nValor | Numérico | Sim | Possibilitará retornar um valor diferente do informado na rotina de Despesas do Desembaraço, passando a ser este o valor considerado na composição do custo do produto no recebimento de importação. |
TAB_DESPESAS | lSair | Lógico | Sim | Possibilitará condicionar quais despesas serão usadas (conteúdo False - .F.) ou desprezadas (conteúdo True - .T.) na geração do recebimento de importação, na composição dos registros de histórico de despesas da nota fiscal (tabela SWW). |
INICIA_VARIAVEIS | lAlteraAdicaoPE | Lógico | Sim | Poderá ser alterada para desabilitar o botão "Altera Adições" |
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |