Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Propriedades de página

CONTEÚDO

  1. Dados Gerais
  2. Exemplo de utilização
    1. Inclusão
    2. Alteração
    3. Exclusão
  3. Outras Informações
  4. Tabelas utilizada


01. DADOS GERAIS

Produto:

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVSTOTVS Comércio Exterior

Linha de Produto:

Linhas_totvs
SegmentoDistribuição
RegionConstrução Projetos
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoManufatura

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.

Informações
titleImportante

Ao incluir um Purchase Order via rotina automática, o mesmo não poderá sofrer alterações via tela no Protheus. Qualquer alteração ou exclusão que venha a ser necessária ser executada para um Purchase Order inserido via rotina automática, deverá ser feita via rotina automática.


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

Função: EICPO400 - Pedido de Importação
Descrição:
Exemplo de ExecAuto na rotina Purchase Order - POExecAuto. Funcionalidade disponível a partir do Microsiga Protheus 11.
Programa Fonte:
eicpo400
Sintaxe:

EICPO400 - Pedido de Importação ( [ ] )

Retorno:
    ()
ObservaçõesExemplos*-------------------------*User Function POExecAuto()*-------------------------*Local cPedido := GetSxeNum("EW2", "W2_PO_NUM")Local aCab := {} Local aItem := {} Private lMsErroAuto := .F.AADD(aCab,{"W2_PO_NUM" ,cPedido ,NIL})AADD(aCab,{"W2_PO_DT" ,dDatabase ,NIL})AADD(aCab,{"W2_FORN" ,"FOR-01" ,NIL})AADD(aCab,{"W2_COMPRA" ,"C01" ,NIL})AADD(aCab,{"W2_IMPORT" ,"01 " ,NIL})AADD(aCab,{"W2_AGENTE" ,"01 " ,NIL})AADD(aCab,{"W2_TIPO_EM" ,"01" ,NIL})AADD(aCab,{"W2_ORIGEM" ,"VYX" ,NIL})AADD(aCab,{"W2_DEST" ,"BLM" ,NIL})AADD(aCab,{"W2_INCOTER" ,"FOB" ,NIL})AADD(aCab,{"W2_FREPPCC" ,"CC" ,NIL})AADD(aCab,{"W2_COND_PA" ,"01 " ,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})aAdd(aItem,{ {"W3_COD_I" , AvKey("PROD-01","W3_COD_I") ,NIL},;
Deck of Cards
idExemplos
Card
id1
labelInclusã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.

Informações
titleImportante
  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 (W1_REG);
Bloco de código
languagepy
themeEclipse
titleModelo de Inclusão do Purchase Order por rotina automática
linenumberstrue
#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 " 
Portuguese
Pagetitle
EICPO400 - Pedido de ImportaçãoEICPO400 - Pedido de Importação
Nível de Acesso:Nível 1 (Acesso Clientes)
              
{"W3_CC"
  	, NIL})
   AADD(aCab,{"W2_TIPO_EM" , "
UN-01
GN"                  	, NIL})
   AADD(aCab,{"W2_ORIGEM"  , "SPO"      
,NIL},;
          	, NIL})
   AADD(aCab,{"
W3
W2_
REG
DEST"    , 
,
"GRU"   
1
              	, NIL})
   AADD(aCab,{"W2_INCOTER" , "CIF"           
,NIL},;
      	, NIL})
   
AADD(aCab,{"
W3
W2_
PRECO
FREPPCC" , "PP" 
,
  
1.00000
               	, NIL})
   AADD(aCab,{"W2_COND_PA" , "GN   " 
,NIL},;
              	, NIL})
   
AADD(aCab,{"
W3
W2_
FABR
MOEDA"   
, 
"
FAB-01
US$"                 	, NIL})
   
,NIL},; {"W3_FORN" , "FOR-01"
AADD(aCab,{"W2_DT_PAR"  , dDataBase             	, NIL})
   AADD(aCab,{"W2_PARID_U" , 1.000000      
,NIL},;
        	, NIL})
   
AADD(aCab,{"
W3
W2_E_
QTDE
LC"    , "2" 
500.00000
                  
	, NIL})
 
   
,NIL},;
//Dados para os Itens do Purchase Order
   aAdd(aItem,{;
      {"W3_
DT
COD_
EMB
I"  ,  
dDatabase
"GEN-00"        , NIL},;             
,NIL},;

      {"W3_
DT_ENTR
CC" 
, dDatabase+2
    ,  "GEN00"         , NIL},;     
,NIL},;
        
      {"W3_
SALDO_Q
REG" 
,
  
500.00000
 ,  1               , NIL},;            
,NIL}
 
})

    
aAdd(aItem,{
  {"W3_
COD_I
PRECO"  ,  
,
100.00000  
AvKey("PROD-02","W3_COD_I")
     , NIL},;              
{"W3_CC"
   
    
,
  
"UN-01
{"W3_FABR"   ,  "0001  "        
,
, NIL},;
      {"W3_FABLOJ" ,  "01"     
{"W3_REG"
     
,
  
1
, NIL},;               
      {"W3_FORN"   ,  "0001  "  
,NIL},;
      , NIL},;
      
{"W3_
PRECO
FORLOJ" 
,  
15.00000
"01"            
,
, NIL},;               
      {"W3_
FABR
QTDE"   
,  
"FAB-01"
10.000          , NIL},;             
,NIL},;

      {"W3_DT_
FORN
EMB" 
,  
"FOR-01"
dDataBase       , NIL},;
      {"W3_DT_ENTR",  dDataBase       , 
,
NIL},;

      
{"W3_
QTDE
PESOL"
  ,  
300
2.
00000
70000000      , NIL},;
      {"W3_PESO_BR",  1.000000        , NIL}
,;
})
      
//{"W3_
DT
SI_
EMB
NUM" 
,  
dDatabase
"4748-1",     NIL}}) //A SI deve ser informada quando  possuir a solicitação gerada no sistema. QUando não informada, será 
,NIL},;
gerada de forma automática
 
   aAdd(aItem,{;
      
{"W3_
DT
COD_
ENTR
I"  ,  
dDatabase+2
"GEN-00"        , NIL},;            
,NIL},;
 
      {"W3_CC"     ,  
{
"
W3_SALDO_Q
GEN00"  
,
   
300.00000
    , NIL},;             
     
,NIL} })
 {"W3_REG"    
MSExecAuto({|a,b,c,d| EICPO400(a,b,c,d)},NIL,aCab,aItem,3)If lMsErroAuto MOSTRAERRO()EndIf
,  2               
Return Nil
Updates
UIEXECAUTO
Parâmetros:NomeTipoDescriçãoDefaultObrigatórioReferênciaArray of Record Aviso
titleObservação

Nos casos em que ocorram mais de uma linha na tabela SN3, é obrigatório a passagem do campo N3_SEQ.

Card documentos
InformacaoUse esse box para destacar informações relevantes e/ou de destaque.
TituloIMPORTANTE!

Bloco de código
languagepy
themeMidnight
titleInclusão
linenumberstrue
collapsetrue
#INCLUDE "Protheus.CH"
#include "rwmake.ch"
#include "TOTVS.ch"
#include "TBICONN.ch"

User Function MyAtfa012
    Local aArea := GetArea()
	Local cBase := "ATFX01"//"0000000000"
	Local cItem := "0002"
	Local nQtd := 1
	Local cChapa := "AJEDS10"//"00000"
	Local cPatrim := "N"
	Local cTipo := "01"//"01"

	Local cGrupo := ""
	Local dAquisic //:= dDataBase //:= CTOD("01/06/20")//dDataBase
	Local dIndDepr //:= RetDinDepr(dDataBase)
	Local cDescric := "Teste 01"

	Local cHistor := "TESTE "
	Local cContab := "11101"
	Local cCusto := "CDL"
	Local cSubCon := "000000001"
	Local cClvlCon := "000000000"

	Local nValor := 1000
	Local nTaxa := 10
	Local nTamBase //:= TamSX3("N3_CBASE")[1]
	Local nTamChapa //:= TamSX3("N3_CBASE")[1]

	Local aParam := {}
	Local aCab := {}
	Local aItens := {}

	Private lMsErroAuto := .F.
	Private lMsHelpAuto := .T.

	PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "ATF" TABLES "SN1","SN3"

		dAquisic := dDataBase //:= CTOD("01/06/20")//dDataBase
		dIndDepr := RetDinDepr(dDataBase)

		DBSelectArea(aArea)
		nTamBase := TamSX3("N3_CBASE")[1]
		nTamChapa := TamSX3("N3_CBASE")[1]

		aCab := {}
		AAdd(aCab,{"N1_CBASE" , cBase ,NIL})
		AAdd(aCab,{"N1_ITEM" , cItem ,NIL})
		AAdd(aCab,{"N1_AQUISIC", dDataBase ,NIL})
		AAdd(aCab,{"N1_DESCRIC", cDescric ,NIL})
		AAdd(aCab,{"N1_QUANTD" , nQtd ,NIL})
		AAdd(aCab,{"N1_CHAPA" , cChapa ,NIL})
		AAdd(aCab,{"N1_PATRIM" , cPatrim ,NIL})
		AAdd(aCab,{"N1_GRUPO" , cGrupo ,NIL})
		//Coloque os campos desejados aqui 

		aItens := {}
		//-- Preenche itens


		AAdd(aItens,{;
		{"N3_CBASE" , cBase ,NIL},;
		{"N3_ITEM" , cItem ,NIL},;
		{"N3_TIPO" , cTipo ,NIL},;
		{"N3_BAIXA" , "0" ,NIL},;
		{"N3_HISTOR" , cHistor ,NIL},;
		{"N3_CCONTAB" , cContab ,NIL},;
		{"N3_CUSTBEM" , cCusto ,NIL},;
		{"N3_CDEPREC" , cContab ,NIL},;
		{"N3_CDESP" , cContab ,NIL},;
		{"N3_CCORREC" , cContab ,NIL},;
		{"N3_CCUSTO" , cCusto ,NIL},;
		{"N3_DINDEPR" , dIndDepr ,NIL},;
		{"N3_VORIG1" , nValor ,NIL},;
		{"N3_TXDEPR1" , nTaxa ,NIL},;
		{"N3_VORIG2" , nValor ,NIL},;
		{"N3_TXDEPR2" , nTaxa ,NIL},;
		{"N3_VORIG3" , nValor ,NIL},;
		{"N3_TXDEPR3" , nTaxa ,NIL},;
		{"N3_VORIG4" , nValor ,NIL},;
		{"N3_TXDEPR4" , nTaxa ,NIL},;
		{"N3_VORIG5" , nValor ,NIL},;
		{"N3_SUBCCON" , cSubCon ,NIL},;
		{"N3_CLVLCON" , cClvlCon ,NIL},;
		{"N3_TXDEPR5" , nTaxa ,NIL};
		})
		//Coloque os campos desejados aqui

		Begin Transaction

			MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,aItens,3,aParam)
			If lMsErroAuto 

			MostraErro()
				DisarmTransaction()
			Endif
		End Transaction

		RestArea(aArea)
	RESET ENVIRONMENT

Return

...

tabsPasso 01, Passo 02, Passo 03, Passo 04
idspasso1,passo2
, 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

Card
id2
labelAlteração

Ao realizar a alteração de um Purchase Order, obrigatoriamente deverá ser informado, além do código do PO nas informações da Capa, os dados de número da SI (Solicitação de Importação), Código do Produto, Centro de Custo e Reg para os Itens.

Durante uma alteração, também será possível adicionar novos itens ao PO ou até mesmo retirar itens já vinculados ao PO. 

Informações
titleImportante
  1. Para todas as alterações do PO, será sempre obrigatório o envio de uma Solicitação de Importação e a sequência do item (W3_REG). Ao informar uma SI com uma sequência (W3_REG) que não exista, a alteração do PO efetuará a inclusão deste item na SI e o vinculará no PO. Também é possível enviar uma SI e um REG de um registro que já exista na SI, desta forma este item somente será adicionado ao PO.
  2. Para o envio de uma Alteração do PO, para a exclusão de Itens (O item será desmarcado do PO, sendo desvinculado do mesmo e seu saldo devolvido à SI) será obrigatório o envio da opção "AUTDELETA" com o conteúdo "S".
Bloco de código
languagepy
themeEclipse
titleModelo de Alteração do Purchase Order por rotina automática com Adição de um novo item
linenumberstrue
collapsetrue
#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},; //Item novo a ser adicionado na Alteração.
      {"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}}) //Solicitação que será adicionado o novo item. O W3_REG deve ter um núemro que ainda não existe 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
Bloco de código
languagepy
themeEclipse
titleModelo de Alteração do Purchase Order por rotina automática com Exclusão de item
linenumberstrue
collapsetrue
#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




Card
id3
labelExclusão

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.


Bloco de código
languagepy
themeEclipse
titleModelo de Exclusão do Purchase Order por rotina automática
linenumberstrue
#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. Outras Informações

Ao utilizar a rotina automático do Purchase Order sem a utilização de uma Solicitação de Importação já préviamente cadastrada, o sistema efetuará a inclusão de uma SI de forma automática. Esta Solicitação de Importação inserida de forma automática não poderá sofrer alterações via tela no Protheus, mesmo que o Purchase Order seja excluído.

Caso seja necessária a exclusão de uma SI gerada de forma automática, deverá ser utilizado o ponto de entrada VALIDA_EXCLUSAO, que pode ter sua documentação consultada em: DT PE EICSI400 - Solicitação de Importação


04. 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 

...

defaultyes
referenciapasso1

...


Templatedocumentos


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