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 Type("ParamIXB") == "A"
cParam:= ParamIXB[1]
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 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)
Case cParam == "MOSTRA_TOTAIS"
lTotICMS:= .T.
EndCase
Return |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas