CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
  3. Tabelas utilizadas

01. VISÃO GERAL

O Easy Import Control (SIGAEIC) disponibiliza a utilização de rotinas automáticas para a manutenção das despesas para o processo. Para isso, deve ser utilizado um rdmake que faça a chamada via Execauto da rotina DI500Main, permitindo assim realizar a manutenção de inclusão, alteração e exclusão das despesas.

A rotina recebe os seguintes parâmetros:

OrdemParâmetroDescriçãoDefaultObrigatórioReferência
1NuloUtilizado internamente.


2NuloUtilizado internamente.


3aProcessoDados do processo (embarque)
Sim
4aDespesasDados das despesas do processo
Sim
5OpçãoOpção para a Despesa (valor 7)
Sim

02. EXEMPLO DE UTILIZAÇÃO

Segue abaixo exemplos de execução da rotina automação para inclusão, alteração e exclusão de despesas do processo.

Para realizar alguma manutenção das despesas do processo, é como premissa:


A informação do campo filial é carregada pelo sistema de acordo com a empresa/filial informada na abertura do ambiente.

O sistema realiza a pesquisa de acordo com o primeiro índice da tabela SWD (Filial+Processo+Despesa+Data ). Caso deseja realizar uma alteração ou exclusão, é de extrema necessidade informar esses dados, caso contrário é considerado uma inclusão.

Para que o sistema identifique se é uma alteração de uma despesa, será validado se já se encontra cadastrada no sistema, caso contrário será considerado uma inclusão.


#include 'protheus.ch'
#include 'totvs.ch'

user function DespExecAuto()
   local aProcesso := {}
   local aDespesas := {}
   local cHawb     := ""

   private lMsErroAuto := .F.

   RpcSetType(3)
   if RPCSetEnv("99", "01", nil, nil, "EIC", nil, {"SW6", "SWD"})

      cHawb := "PROC-0001"
      aProcesso := {"W6_HAWB", cHawb, nil }
   
      // inclui uma despesa
      aAdd(aDespesas ,{;
         {"WD_HAWB"       ,  cHawb     , nil },;
         {"WD_DESPESA"    ,  "404"     , nil },;
         {"WD_DES_ADI"    ,  dDataBase , nil },;
         {"WD_VALOR_R"    ,  830.99    , nil },;
         {"WD_BASEADI"    ,  "2"       , nil },;
         {"WD_PAGOPOR"    ,  "1"       , nil }})

      MSExecAuto({|a,b,c,d,e| DI500Main(a,b,c,d,e)}, nil , nil , aProcesso , aDespesas , 7 )

      If lMsErroAuto
         MostraErro()
      Else
         MsgInfo("Despesa incluída ou alterada com sucesso.")
      EndIf

      RpcClearEnv()
   endif

return .T.

Para que o sistema identifique se é uma exclusão de uma despesa, é de extrema importância informar no vetor aDespesas o contéudo AUTDELETA com a informação S e também que a despesa esteja cadastrada no sistema.


#include 'protheus.ch'
#include 'totvs.ch'

user function DespExecAuto()
   local aProcesso := {}
   local aDespesas := {}
   local cHawb     := ""

   private lMsErroAuto := .F.

   RpcSetType(3)
   if RPCSetEnv("99", "01", nil, nil, "EIC", nil, {"SW6", "SWD"})

      cHawb := "PROC-0001"
      aProcesso := {"W6_HAWB", cHawb, nil }
   
      // deleta uma despesa
      aAdd(aDespesas,{;
         {"WD_DESPESA" ,  "404"     , nil },;
         {"WD_HAWB"    ,  cHawb     , nil },;
         {"WD_DES_ADI" ,  dDataBase , nil },;
         {"AUTDELETA"  ,  "S"       , nil }})

      MSExecAuto({|a,b,c,d,e| DI500Main(a,b,c,d,e)}, nil , nil , aProcesso,aDespesas, 7 )

      If lMsErroAuto
         MostraErro()
      Else
         MsgInfo("Despesa excluída com sucesso.")
      EndIf 

      RpcClearEnv()
   endif

return .T.

03. TABELAS UTILIZADAS