CONTEÚDO

  1. Dados Gerais
  2. Exemplo de utilização
    1. Inclusão
    2. Alteração
    3. Exclusão
  3. Tabelas utilizada


01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:SIGAEIC
Função:EICPO400.PRW


02. Exemplo de Utilização

O Easy Import Control (SIGAEIC) disponibiliza a utilização de rotinas automáticas para a manutenção de Purchase Orders. Para isso, deve ser utilizado um rdmake que faça a chamada via Execauto da rotina EICPO400, responsável pela manutenção dos POs. Esta rotina espera receber um array com os dados da Capa do Purchase Order, e outro com os dados dos Itens. Também deve ser enviada a opção desejada, como Incluir, Alterar, ou Excluir.

Abaixo iremos abordar algumas características de cada opção.

Para efetuar a inclusão de um Purchase Order via rotina automática, existem duas possibilidades que podem ser abordadas. A primeira opção é o envio dos dados de inclusão, já informando uma Solicitação de Importação previamente cadastrada. A segunda forma de Incçusão, é não informar um código para a Solicitação de Importação, neste caso o sistema efetuará o cadastro da Solicitação de forma automática para os itens enviados na execução da Inclusão.


  1. Quando não for informado o número da Solicitação de Importação (W3_SI_NUM), a sequência dos itens do Purchase Order será a informada no campo W3_REG;
  2. Quando for informada a Solicitação de Importação, o campo W3_REG deve corresponder a sequência do item na Solicitação de Importação;
#Include 'Protheus.ch'
#Include 'Totvs.ch'
#Include 'Tbiconn.ch'
 
User Function PO400Auto()
 
Local aCab  := {} //Array com os dados da Capa do Purchase Order 
Local aItem := {} //Array com os dados dos Itens do Purchase Order

Local nOpc:= 3 //Opção a ser executada. 3-Inclusão
 
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
 
   RPCSetEnv("99", "01", NIL, NIL, "EIC", NIL, {"SW2", "SW3"})
    
   //Capa do Purchase Order
   AADD(aCab,{"W2_PO_NUM"  , "PO-0003" 				, NIL})
   AADD(aCab,{"W2_PO_DT"   , dDataBase     			, NIL})
   AADD(aCab,{"W2_FORN"    , "0001  "              	, NIL})
   AADD(aCab,{"W2_FORLOJ"  , "01"                  	, NIL})
   AADD(aCab,{"W2_COMPRA"  , "GEN"                 	, NIL})
   AADD(aCab,{"W2_IMPORT"  , "GN"                  	, NIL})
   AADD(aCab,{"W2_AGENTE"  , "GN "                 	, NIL})
   AADD(aCab,{"W2_TIPO_EM" , "GN"                  	, NIL})
   AADD(aCab,{"W2_ORIGEM"  , "SPO"                	, NIL})
   AADD(aCab,{"W2_DEST"    , "GRU"                 	, NIL})
   AADD(aCab,{"W2_INCOTER" , "CIF"                 	, NIL})
   AADD(aCab,{"W2_FREPPCC" , "PP"                  	, NIL})
   AADD(aCab,{"W2_COND_PA" , "GN   "               	, NIL})
   AADD(aCab,{"W2_MOEDA"   , "US$"                 	, NIL})
   AADD(aCab,{"W2_DT_PAR"  , dDataBase             	, NIL})
   AADD(aCab,{"W2_PARID_U" , 1.000000              	, NIL})
   AADD(aCab,{"W2_E_LC"    , "2"                   	, NIL})
 
   //Dados para os Itens do Purchase Order
   aAdd(aItem,{;
      {"W3_COD_I"  ,  "GEN-00"        , NIL},;             
      {"W3_CC"     ,  "GEN00"         , NIL},;             
      {"W3_REG"    ,  1               , NIL},;             
      {"W3_PRECO"  ,  100.00000       , NIL},;                 
      {"W3_FABR"   ,  "0001  "        , NIL},;
      {"W3_FABLOJ" ,  "01"            , NIL},;               
      {"W3_FORN"   ,  "0001  "        , NIL},;
      {"W3_FORLOJ" ,  "01"            , NIL},;               
      {"W3_QTDE"   ,  10.000          , NIL},;             
      {"W3_DT_EMB" ,  dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , NIL},;
      {"W3_PESOL"  ,  2.70000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL}})
      //{"W3_SI_NUM" ,  "4748-1",     NIL}}) //A SI deve ser informada quando já possuir a solicitação gerada no sistema. QUando não informada, será gerada de forma automática
 
   aAdd(aItem,{;
      {"W3_COD_I"  ,  "GEN-00"        , NIL},;             
      {"W3_CC"     ,  "GEN00"         , NIL},;             
      {"W3_REG"    ,  2               , NIL},;             
      {"W3_PRECO"  ,  100.00000       , NIL},;                 
      {"W3_FABR"   ,  "0001  "        , NIL},;
      {"W3_FABLOJ" ,  "01"            , NIL},;               
      {"W3_FORN"   ,  "0001  "        , NIL},;
      {"W3_FORLOJ" ,  "01"            , NIL},;               
      {"W3_QTDE"   ,  15.000          , NIL},;             
      {"W3_DT_EMB" ,  dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , NIL},;
      {"W3_PESOL"  ,  3.10000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL}})
      //{"W3_SI_NUM" ,  "4748-2",     NIL}}) //A SI deve ser informada quando já possuir a solicitação gerada no sistema. QUando não informada, será gerada de forma automática

   MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)}, NIL, aCab, aItem, nOpc)
 
   If lMsErroAuto 
      MostraErro()
   Else
      MsgInfo("Ok - P.O.")
   EndIf      
 
RPCClearEnv()
 
Return Nil

#Include 'Protheus.ch'
#Include 'Totvs.ch'
#Include 'Tbiconn.ch'
   
User Function 1PO400Auto()
   
Local aCab  := {} //Array com os dados da Capa do Purchase Order
Local aItem := {} //Array com os dados dos Itens do Purchase Order
  
Local nOpc:= 4 //Opção a ser executada. 4-Alteração
   
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
   
   RPCSetEnv("99", "01", NIL, NIL, "EIC", NIL, {"SW2", "SW3"})
      
   //Capa do Purchase Order
   AADD(aCab,{"W2_PO_NUM"  , "PO-0004"         , NIL})
   AADD(aCab,{"W2_PO_DT"   , dDataBase              , NIL})
   AADD(aCab,{"W2_FORN"    , "GEN-00"               , NIL})
   AADD(aCab,{"W2_FORLOJ"  , "00"                   , NIL})
   AADD(aCab,{"W2_COMPRA"  , "GEN"                  , NIL})
   AADD(aCab,{"W2_IMPORT"  , "GN"                   , NIL})
   AADD(aCab,{"W2_AGENTE"  , "GN2"                  , NIL})
   AADD(aCab,{"W2_TIPO_EM" , "GN"                   , NIL})
   AADD(aCab,{"W2_ORIGEM"  , "SPO"                  , NIL})
   AADD(aCab,{"W2_DEST"    , "GRU"                  , NIL})
   AADD(aCab,{"W2_INCOTER" , "CIF"                  , NIL})
   AADD(aCab,{"W2_FREPPCC" , "PP"                   , NIL})
   AADD(aCab,{"W2_COND_PA" , "GN   "                , NIL})
   AADD(aCab,{"W2_MOEDA"   , "US$"                  , NIL})
   AADD(aCab,{"W2_DT_PAR"  , dDataBase              , NIL})
   AADD(aCab,{"W2_PARID_U" , 1.000000               , NIL})
   AADD(aCab,{"W2_E_LC"    , "2"                    , NIL})
   
   //Dados para os Itens do Purchase Order
   aAdd(aItem,{;
      {"W3_COD_I"  ,  "PA-001"        , NIL},;           
      {"W3_CC"     ,  "GEN00"         , NIL},;           
      {"W3_REG"    ,  1               , NIL},;           
      {"W3_PRECO"  ,  101.00000       , NIL},;               
      {"W3_FABR"   ,  "GEN-01"        , NIL},;
      {"W3_FABLOJ" ,  "00"            , NIL},;             
      {"W3_FORN"   ,  "GEN-00"        , NIL},;
      {"W3_FORLOJ" ,  "00"            , NIL},;             
      {"W3_QTDE"   ,  11.000          , NIL},;           
      {"W3_DT_EMB" ,  dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , NIL},;
      {"W3_PESOL"  ,  2.90000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL},;
      {"W3_SI_NUM" ,  "SITET1",     NIL}})
   
   aAdd(aItem,{;
      {"W3_COD_I"  ,  "PA-001"        , NIL},;           
      {"W3_CC"     ,  "GEN00"         , NIL},;           
      {"W3_REG"    ,  2               , NIL},;           
      {"W3_PRECO"  ,  102.00000       , NIL},;               
      {"W3_FABR"   ,  "GEN-01"        , NIL},;
      {"W3_FABLOJ" ,  "00"            , NIL},;             
      {"W3_FORN"   ,  "GEN-00"        , NIL},;
      {"W3_FORLOJ" ,  "00"            , NIL},;             
      {"W3_QTDE"   ,  45.000          , NIL},;           
      {"W3_DT_EMB" ,  dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , NIL},;
      {"W3_PESOL"  ,  3.30000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL},;
      {"W3_SI_NUM" ,  "SITET1",     NIL}})
   
      aAdd(aItem,{;
      {"W3_COD_I"  ,  "GEN-00"        , NIL},;           
      {"W3_CC"     ,  "GEN00"         , NIL},;           
      {"W3_REG"    ,  3               , NIL},;
      {"W3_PRECO"  ,  103.00000       , NIL},;               
      {"W3_FABR"   ,  "GEN-01"        , NIL},;
      {"W3_FABLOJ" ,  "00"            , NIL},;             
      {"W3_FORN"   ,  "GEN-00"        , NIL},;
      {"W3_FORLOJ" ,  "00"            , NIL},;             
      {"W3_QTDE"   ,  10.000          , NIL},;           
      {"W3_DT_EMB" ,  dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , NIL},;
      {"W3_PESOL"  ,  3.30000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL},;
      {"W3_SI_NUM" ,  "SITET1"        , NIL},;
      {"AUTDELETA" ,  "S"             , NIL}}) //Informa que este item deve ser deletado no PO. Seu saldo retornará para o item na SI
  
  
   MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)}, NIL, aCab, aItem, nOpc)
   
   If lMsErroAuto
      MostraErro()
   Else
      MsgInfo("Ok - P.O.")
   EndIf    
   
RPCClearEnv()
   
Return Nil

Para a realização da exclusão do Purchase Order via rotina automática, é necessário apenas que seja enviado as informações referente a capa do PO, podendo também, de forma opcional, enviar os dados dos itens.


#Include 'Protheus.ch'
#Include 'Totvs.ch'
#Include 'Tbiconn.ch'
  
User Function 1PO400Auto()
  
Local aCab  := {} //Array com os dados da Capa do Purchase Order
Local aItem := {} //Array com os dados dos Itens do Purchase Order
 
Local nOpc:= 5 //Opção a ser executada. -Exclusão
  
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
  
   RPCSetEnv("99", "01", NIL, NIL, "EIC", NIL, {"SW2", "SW3"})
     
   //Capa do Purchase Order
   AADD(aCab,{"W2_PO_NUM"  , "PO-0004"              , NIL})
   AADD(aCab,{"W2_PO_DT"   , dDataBase              , NIL})
   AADD(aCab,{"W2_FORN"    , "0001  "               , NIL})
   AADD(aCab,{"W2_FORLOJ"  , "01"                   , NIL})
   AADD(aCab,{"W2_COMPRA"  , "GEN"                  , NIL})
   AADD(aCab,{"W2_IMPORT"  , "GN"                   , NIL})
   AADD(aCab,{"W2_AGENTE"  , "GN "                  , NIL})
   AADD(aCab,{"W2_TIPO_EM" , "GN"                   , NIL})
   AADD(aCab,{"W2_ORIGEM"  , "SPO"                  , NIL})
   AADD(aCab,{"W2_DEST"    , "GRU"                  , NIL})
   AADD(aCab,{"W2_INCOTER" , "CIF"                  , NIL})
   AADD(aCab,{"W2_FREPPCC" , "PP"                   , NIL})
   AADD(aCab,{"W2_COND_PA" , "GN   "                , NIL})
   AADD(aCab,{"W2_MOEDA"   , "US$"                  , NIL})
   AADD(aCab,{"W2_DT_PAR"  , dDataBase              , NIL})
   AADD(aCab,{"W2_PARID_U" , 1.000000               , NIL})
   AADD(aCab,{"W2_E_LC"    , "2"                    , NIL})
  
   //Dados para os Itens do Purchase Order
   aAdd(aItem,{;
      {"W3_COD_I"  ,  "GEN-00"        , NIL},;            
      {"W3_CC"     ,  "GEN00"         , NIL},;            
      {"W3_REG"    ,  1               , NIL},;            
      {"W3_PRECO"  ,  100.00000       , NIL},;                
      {"W3_FABR"   ,  "0001  "        , NIL},;
      {"W3_FABLOJ" ,  "01"            , NIL},;              
      {"W3_FORN"   ,  "0001  "        , NIL},;
      {"W3_FORLOJ" ,  "01"            , NIL},;              
      {"W3_QTDE"   ,  10.000          , NIL},;            
      {"W3_DT_EMB" ,  dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , NIL},;
      {"W3_PESOL"  ,  2.90000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL}})
  
   aAdd(aItem,{;
      {"W3_COD_I"  ,  "GEN-00"        , NIL},;            
      {"W3_CC"     ,  "GEN00"         , NIL},;            
      {"W3_REG"    ,  2               , NIL},;            
      {"W3_PRECO"  ,  100.00000       , NIL},;                
      {"W3_FABR"   ,  "0001  "        , NIL},;
      {"W3_FABLOJ" ,  "01"            , NIL},;              
      {"W3_FORN"   ,  "0001  "        , NIL},;
      {"W3_FORLOJ" ,  "01"            , NIL},;              
      {"W3_QTDE"   ,  15.000          , NIL},;            
      {"W3_DT_EMB" ,  dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , NIL},;
      {"W3_PESOL"  ,  3.30000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL}})

 
   MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)}, NIL, aCab, aItem, nOpc)
  
   If lMsErroAuto
      MostraErro()
   Else
      MsgInfo("Ok - P.O.")
   EndIf     
  
RPCClearEnv()
  
Return Nil



03. Tabelas Utilizadas

SW0 - Capa de Solicitação Importação

SW1 - Itens Solicitação Importação  

SW2 - Capa de Purchase Order  

SW3 - Itens de Purchase Order  

SW5 - Itens Preparação Licença Imp  

SW6 - Capa Declaração de Importação 



<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;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>