Histórico da Página
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#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 If Type("ParamIXB") == "A" cParam:= ParamIXB[1] Else ElseIf Type("ParamIXB") == "C" 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 FInalFINAL_gravaGRAVA_NF","Nota Fiscal emitida") EndCase Return |
03. Parâmetros
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)
Case cParam == "MOSTRA_TOTAIS"
lTotICMS:= .T.
Case cParam == "NOTA_SERIE"
lSerieCust := .T. // Variável deverá ser atribuída como .T. para indicar que será customizado a serie da nota
MsgInfo("Tela de customização para serie da nota")
EndCase
Return |
03. Parâmetros
Nome | Tipo | Descrição | |||
---|---|---|---|---|---|
TEM_OUTRA_ | |||||
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. | |||
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 | |||
MOSTRA_TOTAIS | Caracter | Ponto de entrada que permite ao cliente decidir se o cálculo do total na NFE será pela base do ICMS. | |||
NOTA_SERIE | Caracter | Ponto de entrada que possibilita a criação de tela customizada para selecionar a serie que será utilizada para geração da nota, deverá ser atribuído a serie na variável cSerie e atualizar a variável lSerieCust como .T. (true) Observação: a validação da serie é de responsabilidade da customização | FINAL_GRAVA_NF | Caracter | Ponto de entrada executado ao final da gravação da nota fiscal
04. Variáveis
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_ | SF1aCab | 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). |
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. |
MOSTRA_TOTAIS | lTotICMS | Lógico | Sim | O valor da variável será atribuído ao retorno da função. Quando True, é assumida a base do ICMS como valor total da NFE e, quando retornado False, o total da NFE é o valor calculado por outra função, somando-se o valor do ICMS alterado no item. |
NOTA_SERIE | lSerieCust | Lógico | Sim | O valor da variável deverá ser atribuído dentro do ponto de entrada para .T. (true) para definir que a serie será customizada |
NOTA_SERIE | cSerie | Caracter | Sim | O valor da variável deverá ser atribuído dentro do ponto de entrada onde foi definida a serie ser utilizada | 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.
05. TABELAS UTILIZADAS
- Não há.
...