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 Case cParam == "FINAL_GRAVA_NF" MsgInfo("Entrou no Ponto de entrada FINAL_GRAVA_NF","Nota Fiscal emitida") Case cParam == "ALTERA_CALC_IMPOSTOS_2" /* Este é apenas um exemplo de reapuração do valor do ICMS, fazendo uso de dados fictícios */ SB1->(DBseek(xFilial() + Work1->WKCOD_I)) nFator:= 0.136363636363 qBCMonoReten:= (nFator * Work1->WKQTDE) /* Novo valor do ICMS */ Work1->WKVL_ICM += qBCMonoReten * (SB1->B1_VLR_ICM * Work1->WKICMS_RED) 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. |
FINAL_GRAVA_NF | Caracter | Ponto de entrada executado ao final da gravação da nota fiscal |
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". |
INICIA_VARIAVEIS | lRatFretePorFOB | Lógico | Sim | Quando True, indica que o rateio do frete será por valor FOB. |
INICIA_VARIAVEIS | lRatFreQtde | Lógico | Sim | Quando True, indica que o rateio do frete será por quantidade. |
<!-- 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> |