CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
  3. Parâmetros
  4. Variáveis
  5. Tabelas utilizadas


01. VISÃO GERAL

Este Ponto de Entrada pertence à rotina de Embarque/Desembaraço da Importação (EICDI500). Ele deve ser utilizado para customizar a rotina de Embarque/Desembaraço de Importação.

Programa Fonte: EICDI500.PRW

02. EXEMPLO DE UTILIZAÇÃO


 #include "protheus.ch"

User function EICDI500()

   Local cParam := if(Type("ParamIxb") = "A", ParamIxb[1], if(Type("ParamIxb") = "C", ParamIxb, ""))

   Do Case

      Case cParam == "STRU_WORKS"

         aadd(aSemSX3SW7,{"W7_DTPRVE","D",8,0})

      Case cParam == "BROWSE_SELECIONA"

         aadd(aCamposItem,{"W7_DTPRVE",,"DT Prev Entrega",""})
         aadd(aCamposItem,{"W7_DTENTRG",,"DT Entrega",""})

         //AAdd(aBotaoItem, {"" ,{|| MsgInfo("Teste")}, "Botão de teste"})
         //AAdd(aCamposItem, {"WKCAMPO" , , "Titulo" , "substituir por picture"})

      Case cParam == "GRV_WORK_ITEM"

         WORK->W7_DTENTRG  := SW3->W3_DT_ENTR
         WORK->W7_DTPRVE   := SW3->W3_DT_ENTR - 5
         
      Case  ParamIXB == "ANT_VALID_SW6"

         If cNomeCampo =   'TFOBUNIT'

            MsgInfo("Entrou no ponto de entrada para validação dos campos no item do embarque.")

         EndIf

      Case PARAMIXB == "MANUT_SW9"

         lSair: = .T.

      Case PARAMIXB == "ANTES_TELA"

         MsgInfo("Entrou no ponto de entrada para manipulação de campos customizados.")

      Case cParam == "TELA_DESP"

         If AScan(aBotoesDesp, {|x| x[1] == "TESTE1"}) == 0

            AAdd(aBotoesDesp, {"TESTE1", {|| MsgInfo("Teste")}, "Teste aBotoesDesp", "Teste aBotoesDesp"})

         EndIf

      Case cParam == "BROWSE_WORK_SW9"

         AAdd(aBotoes, {"TESTE aBotoes", {|| MsgInfo("Teste aBotoes")}, "Teste aBotoes", "Teste aBotoes"})

         AAdd(aTB_CposSW9, {"TESTE aTB_CposSW9", {|| MsgInfo("Teste aBotoes")}, "Teste aTB_CposSW9", "Teste aTB_CposSW9"})

      Case cParam == "RATEIO_ACRESCIMOS"

         cCodRatPeso := "10/13"

      Case cParam == "DESVIA_REL"

         lDesvio := .T.

      Case cParam == "ANTES_INFO_COMPL"

         nLin2 := 20

      Case cParam == "IMP_COMPLE"

         cMemo := "Teste"

      Case cParam == "FINAL_IMPR_ADI"

         nLin2 := 20

      Case cParam == "MANUT_W9_INC"

         MsgInfo("Ponto de entrada com o parâmetro MANUT_W9_INC")

         //M->W9_FRETEIN:= 145.00

      Case cParam == "ANTES_INICIA_SW6_SW9"

         //MsgInfo("Ponto de entrada com o parâmetro ANTES_INICIA_SW6_SW9")

         cCpoNaoInicia += "W2_AAAA; W2_BBBB"

      Case cParam == "INICIA_SW6_SW9"

         MsgInfo("Ponto de entrada com o parâmetro INICIA_SW6_SW9")

         //M->W9_ABCD:= SW2→W2_ABCD

      Case cParam == "AROTINA"

         Aadd(aRotina, {"Nova Rotina", "DI500Rotina", 0, 2})

      Case cParam == "ALTERA_WHEN"

         lWhenDesp := .F.    //Desabilita o campo Despesa

         lWhenAdian := .F.   //Adianta/o

         lWhenPgPor := .F.  //Pago Por

         lWhenGrFin := .F.  //Gera Financ.

      Case PARAMIXB == "GERATXT_MERCODI_ALT"

         If !lMERCODI

            Aadd(aLoadTxt,{ 86 ," ", "C" , 1 , 0 ,1141 ,1141})

         Elseif Ascan(aLoadTxt, {|x|x[1] == 86}) # 0

            Aadd(aLoadTxt,{ 86 ," ", "C" , 1 , 0 ,1141 ,1141})

         EndIf

      Case ParamIXB == "DI500LOTEVAL_VALLOTE" .AND. cValCampo == "LOTE"
         MsgInfo("DI500LOTEVAL_VALLOTE")
		
 	  Case ParamIXB == "DESPESA"
         lSair := .T.//Permite abrir a tela de despesas
         IF lSair
             msginfo("Abrindo a tela de despesas")
         else
             msginfo("Não é possível abrir a tela de despesas")
  
	   Case cParam == "ANTES_TELA_DESP"
          lSair:=.T.
          aAdd(aEncAltera, "WD_PRDSIS")
      
       Case cParam == "DESP_ALTERA1"
         lSair := .T.//Permite a alteração na tela de despesas
         If lSair
             msginfo("Permitida a alteração na tela de despesas")
         ELSE
             msginfo("Não é possível abrir a tela de alteração de despesa")

                
        Case cParam == "DESP_EXCLUI1"
             lSair := .T.//Permite alterar ou excluir na tela de despesas
             If lSair
                msginfo("Permitida a exclusão na tela de despesas")
             ELSE
                msginfo("Não é possível abrir a tela de exclusão de despesa")

      Case ParamIXB == "INCLUI_DESP"

         MsgInfo("Ponto de entrada antes de salvar a inclusão da despesa")

      Case ParamIXB == "ALTERA_DESP"

         MsgInfo("Ponto de entrada antes de salvar a alteração da despesa")

      Case ParamIXB == "DELETA_DESP "

         MsgInfo("Ponto de entrada antes de excluir a despesa")
	
	  Case cParam == "ADD_TB_CAMPOS" //Adiciona campos a serem exibidos nos itens nas opções de Menu "Visualização" e "Estorno"
                       /*{Nome_Campo ,,Tamanho              , Decimais             }*/
    	 AADD(aTB_Campos,{"NOVOCAMPO",,AVSX3("W3_QTSEGUM",5),AVSX3("W3_QTSEGUM" ,6)}) 

	  Case cParam == "ALTERA_AEMBARQUE" //Adiciona campos a serem exibidos na manutenção do Embarque/Desembaraço
	     If aScan(aEmbarques,{|x| x == "W6_ARMADOR"}) == 0
	        AADD(aEmbarques,"W6_ARMADOR")
    	 EndIf

   EndCase

Return



03. PARÂMETROS


NomeTipoDescrição

STRU_WORKS

CaracterPossibilita a inclusão de campos na work de itens e pode ser usado com os parâmetros GRV_WORK_ITEM e BROWSE_SELECIONA onde o primeiro permite gravar uma informação no campo adicionado e o segundo que o campo criado seja exibido na tela de itens.

GRV_WORK_ITEM

CaracterPermite gravar os campos que foram criados pelo usuário, seja pelo configurador ou pelo uso do parâmetro STRU_WORKS.
ANT_VALID_SW6CaracterPossibilita a validação dos itens da SW6 e também da tela de seleção de itens do embarque.
MANUT_SW9CaracterPossibilita a validação dos itens da SW9 (Invoice) e também a alteração dela.
ANTES_TELACaracterPossibilita a customização dos campos customizados a serem apresentados na enchoice.
BROWSE_SELECIONACaracterPossibilita controlar os campos que serão exibidos na tela de itens da manutenção de itens do embarque.
ANT_GRAVA_CAPACaracterPonto de entrada executado imediatamente após confirma a mensagem "Confirma a gravação somente da capa do processo?". Não é executado na fase de desembaraço.
POS_GRAVA_CAPACaracterPonto de entrada executado após efetivar a gravação da capa do embarque. Não é executado na fase de desembaraço.
ANT_GRAVA_TUDOCaracterPonto de entrada executado antes de gravar todo o processo. Também é executado na fase desembaraço.
POS_GRAVA_TUDOCaracterPonto de entrada executado após gravar todo o processo, além dos capa. Também é executado na fase desembaraço.
TELA_DESPCaracterPossibilita a customização dos botões que serão exibidos nas ações da tela de despesas do desembaraço.
BROWSE_WORK_SW9CaracterPossibilita a customização dos botões aBotoes e aTB_CposSW9 na tela de invoices do desembaraço.
RATEIO_ACRESCIMOSCaracterPossibilita customizar via ponto de entrada os códigos dos acréscimos a serem rateados por peso.
DESVIA_RELCaracterPossibilita definir se haverá desvio para uma versão customizada da impressão do Relatório de Conferência da DI
ANTES_INFO_COMPLCaracterPossibilita inserir dados na próxima linha disponível antes da impressão da seção Informações Complementares do Relatório de Conferência da DI

IMP_COMPLE

CaracterPossibilita customizar a Impressão de Informações Complementares no Relatório de Conferência da DI
FINAL_IMPR_ADICaracterPossibilita inserir dados na próxima linha disponível no Final da Impressão da Adição dentro do loop da impressões das adições
MANUT_W9_INCCaracterIndica que o ponto de entrada foi executado durante a inclusão de uma Invoice, possibilitando customizar as suas informações de capa (SW9).
ANTES_INICIA_SW6_SW9CaracterIndica que o ponto de entrada foi executado a partir da inclusão da Invoice, antes que os dados da capa sejam carregados a partir do Purchase Order de referência informado na capa do embarque/ desembaraço. A execução o ponto de entrada com este parâmetro está condicionada ao parâmetro MV_INIINV.
INICIA_SW6_SW9CaracterExecutado quando a Invoice for incluída, possibilitará intervir nas informações de capa do processo (SW9). Havendo o Purchase Order de referência informado na capa do embarque/ desembaraço, este registro estará posicionado neste momento. A execução o ponto de entrada com este parâmetro está condicionada ao parâmetro MV_INIINV.
AROTINACaracterPossiblita incluir novas rotinas no menu de outras ações do desembaraço.
ALTERA_WHENCaracterPossibilitar desabilitar a edição (when) dos campos "Despesa", "Adiantamento", "Pago Por" e/ou "Gera Título no Financeiro?".
GERATXT_MERCODI_ALTCaracterPossibilita a alteração dos dados do mercosul(certificado) no TXT de envio da DI eletrônica.
DI500LOTEVAL_VALLOTECaracterPossibilitará a validação do número do lote na inclusão.Deve-se usar a variável private cValCampo para a identificação do campo que está sendo validado, no caso do número do lote (e da data de validade) a variável estará com o conteúdo “LOTE”, use a variável lValLote para identificar se a validação está correta ou não (.T., para correto, e .F., para incorreto). A criação do ponto de entrada adicionará novas validações ao sistema, ou seja, as validações já existentes no padrão do sistema continuarão sendo executadas.
ANTES_TELA_DESP_MANUTCaracaterPossibilita o controle de alteração e inclusão da despesa do desembaraço
INCLUI_DESPCaracaterPossibilita a alteração dos campos da tabela SWD antes da gravação da inclusão da despesa.
ALTERA_DESPCaracaterPossibilita a alteração dos campos da tabela SWD antes da gravação da alteração da despesa.
DELETA_DESPCaracaterPossibilita a manipulação das informações antes da exclusão da despesa.
ADD_TB_CAMPOSCaracterPossibilita adicionar campos nos itens do processo exibidos para as telas de Visualização e Estorno.
ALTERA_AEMBARQUECaracterPossibilita adicionar campos na tela de Capa do Processo do Embarque\Desembaraço.
DespesaCaracter

Permite validar se poderá abrir a tela de despesas ou não.

DESP_ALTERA1CaracterPermite validar se será possível abrir a tela de alteração de despesa ou não.
DESP_EXCLUI1CaracterPermite validar se será possível abrir a tela de exclusão de despesa ou não.

04. VARIÁVEIS


ParâmetroNomeTipoPermite alterarDescrição
STRU_WORKS

aSemSX3SW7

ArraySimArray com os campos que serão criados na work de itens da manutenção de itens do embarque.
ANT_VALID_SW6cNomeCampoCaracterSimVariável que armazena o nome do campo a ser validado.
MANUT_SW9lSairLógicoSimVariável usada no ponto de entrada MANUT_SW9
ANTES_TELA
aCamposMostraArraySimArray que armazena os campos a serem apresentados em tela
BROWSE_SELECIONA
aDarGetsArraySimArray com os campos que serão exibidos na tela de manutenção dos itens do embarque.
BROWSE_SELECIONA

aCamposItem

ArraySimArray com os campos que serão exibidos na tela de manutenção dos itens do embarque.
ANT_GRAVA_CAPA
cTitItensCaracterSimPermite manipular o título da tela de itens
POS_GRAVA_CAPA
nOpcaoItemNuméricoSimPermite verificar e intervir na ação de acesso à tela de itens
ANT_GRAVA_TUDOaBotaoItemArraySimPossibilita a adição de novas ações na tela de itens
TELA_DESPaBotoesDespArraySimDisponível no ponto de entrada com o parâmetro TELA_DESP, possibilita a customização das ações exibidas na tela de despesas do desembaraço.
POS_GRAVA_TUDOaCamposItemArraySim

Disponível no ponto de entrada com o parâmetro BROWSE_SELECIONA, possibilita a adição de campos na tela de seleção de itens das fases de embarque e desembaraço.

BROWSE_WORK_SW9aBotoes e aTB_CposSW9ArraySimPossibilita a adição de novas opções na tela de invoices do desembaraço. Através da customização dos botões.
RATEIO_ACRESCIMOScCodRatPesoCaracterSimVariável para indicar quais os códigos de acréscimos terão o rateio efetuado por peso.

DESVIA_REL

lDesvioLógicoSimVariável que define se haverá desvio na impressão do Relatório
ANTES_INFO_COMPLnLin2NuméricoSimVariável que Possibilita inserir dados na próxima linha disponível antes da impressão da seção Informações Complementares do Relatório de Conferência da DI
IMP_COMPLEcMemoMemoSimVariável que receberá o conteúdo(customizado) a ser impresso em Informações Complementares do Relatório de Conferência da DI
FINAL_IMPR_ADInLin2NuméricoSimVariável que Possibilita inserir dados na próxima linha disponível no Final da Impressão da Adição dentro do loop da impressões das adições
ANTES_INICIA_SW6_SW9cCpoNaoIniciaCaracterSimDisponível na inclusão da Invoice, possibilita relacionar os campos da capa do Purchase Order (SW2) que não devem ser considerados ao carregar a capa da Invoice (SW9)
AROTINAaRotinaArray SimVariável que recebe as novas rotinas a serem exibidas no menu de outras ações do desembaraço 
ALTERA_WHEN

lWhenDesp := .F.    

LógicoSimVariável responsável por Desabilitar o campo "Despesa"
ALTERA_WHEN

lWhenAdian := .F.   

LógicoSimVariável responsável por Desabilitar o campo "Adiantamento"
ALTERA_WHEN

lWhenPgPor := .F.     

LógicoSimVariável responsável por Desabilitar o campo "Pago Por"
ALTERA_WHENlWhenGrFin := .F.  LógicoSimVariável responsável por Desabilitar o campo "Gera Título no Financeiro?".
GERATXT_MERCODI_ALTcValCampoCaracterSimVariável que possibilita a alteração dos dados do mercosul(certificado) no TXT de envio da DI eletrônica.
DI500LOTEVAL_VALLOTElValLoteLógicoSimVariável utilizada para validação do número do lote na inclusão. Deve-se usar a variável private cValCampo para a identificação do campo que está sendo validado, no caso do número do lote (e da data de validade) a variável estará com o conteúdo “LOTE”, use a variável lValLote para identificar se a validação está correta ou não (.T., para correto, e .F., para incorreto). A criação do ponto de entrada adicionará novas validações ao sistema, ou seja, as validações já existentes no padrão do sistema continuarão sendo executadas.
DI500LOTEVAL_VALLOTEcValCampo CaracterNãoVariável utilizada para identificar qual campo está sendo validado.  Para a validação do número do lote (e da data de validade) a variável estará com o conteúdo “LOTE”.
ANTES_TELA_DESP_MANUTlSairLógicoSimVariável que possibilita a permissão ou não de uma alteação ou incluão da despesa do desembaraço, se retornar .T. permite a inclusão ou alteração da despesa e se retornar .F. volta pra tela anterior sem abrir a tela de inclusão ou alteração.
ANTES_TELA_DESP_MANUTaEncAlteraArraySimArray utilizado para informar os campos que são passíveis de alteração na tela da despesa do desembaraço.
ADD_TB_CAMPOSaTB_CamposArraySimArray com os campos de itens do processo exibidos nas telas de Visualização e Estorno.
ALTERA_AEMBARQUEaEmbarquesArraySimArray com os campos da capa do processo a serem exibidos na manutenção do Embarque/Desembaraço.
DespesalSairLógicoSimVariável que possibilita a permissão ou não de uma alteação ou incluão da despesa do desembaraço, se retornar .T. permite a inclusão ou alteração da despesa e se retornar .F. volta pra tela anterior sem abrir a tela de inclusão ou alteração.
DESP_ALTERA1lSairLógicoSimVariável que possibilita a permissão ou não de uma alteação ou incluão da despesa do desembaraço, se retornar .T. permite a inclusão ou alteração da despesa e se retornar .F. volta pra tela anterior sem abrir a tela de inclusão ou alteração.
DESP_EXCLUI1lSairLógicoSimVariável que possibilita a permissão ou não de uma alteação ou incluão da despesa do desembaraço, se retornar .T. permite a inclusão ou alteração da despesa e se retornar .F. volta pra tela anterior sem abrir a tela de inclusão ou alteração.


05. TABELAS UTILIZADAS

<!-- 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>