Árvore de páginas

ESSIS100 - Execução Automática de Registro de Invoices

Produto:

Easy Siscoserv - SIGAESS

Versões:

P11 e P12.1.7

Ocorrência:

Execução Automática de Registro de Invoices via ExecAuto

Passo a passo:

Vide abaixo.

 

Para utilizar a integração, é necessário que o módulo Easy Siscoserv esteja implantado. Para verificar se o ambiente possui a atualização e configuração necessária, é possível utilizar a função ADVPL AvFlags, conforme abaixo:

AvFlags(“CONTROLE_SERVICOS_AQUISICAO”) para Processos de Aquisição.

AvFlags(“CONTROLE_SERVICOS_VENDA”) para Processos de Venda.

Essa função irá retornar o valor verdadeiro (.T.) caso o módulo Easy Siscoserv (SIGAESS) esteja instalado e devidamente configurado para receber tais integrações, caso contrario, retorna o valor falso (.F.)

 

Para integração de Invoices, é necessário executar via código ADVPL a função ESSIS400 de forma automática. Exemplo:

MSExecAuto({|a,b,c,d,e,f,g| ESSIS400(a,b,c,d,e,f,g)},cAlias, nReg, nOpc, cTipo, aCab, aItens, nOpcAuto)

Onde os parâmetros:

cAlias - Tabela da capa da Invoice. Deve vir com conteudo fixo "ELA".
nReg - Recno da tabela: não obrigatório
nOpc - Número da operação: não obrigatório
cTipo - Variável do tipo Caractere que identifica o tipo de integração. Deve vir com conteúdo fixo "A" quando Aquisição, ou "V" quando Venda.
aCab (CAPA) - Variavel do tipo Array com os dados do cabeçalho da invoice
aItens (ITENS) - Variavel do tipo Array com os dados dos itens da invoice
nOpcAuto (OPERAÇÃO) - Variavel do tipo Numerico responsavel por definir qual operação executar (Inclusão, Alteração, Exclusão). 

 

Os campos de Capa para geração da Invoice são listados abaixo:

Título

Campo

Tipo

Tam.

Dec.

Obrigatório

Observação

Filial

ELA_FILIAL

Caracter

2

0

Sim

Filial do Sistema (xFilial)

Exportador

ELA_EXPORT

Caracter

10

0

Sim

Código válido do cadastro de fornecedores (SA2). Este campo deve ser utilizado apenas para Invoices e Pedidos de Aquisição.

Loja Exportador

ELA_LOJEXP

Caracter

2

0

Sim

Código válido do cadastro de fornecedores (SA2). Este campo deve ser utilizado apenas para Invoices e Pedidos de Aquisição.

ImportadorELA_IMPORTCaracter100SimCódigo válido do cadastro de clientes (SA1). Este campo deve ser utilizado apenas para Invoices e Pedidos de Venda.
Loja ImportadorELA_LOJIMPCaracter20SimCódigo válido do cadastro de clientes(SA1). Este campo deve ser utilizado apenas para Invoices e Pedidos de Venda.

Nro. Invoice

ELA_NRINVO

Caracter

20

0

Sim

Numero da Invoice (fatura) emitida pelo exportador (fornecedor).

Origem

ELA_ORIGEM

Caracter

10

0

Sim

Módulo de Origem (SIGACOM/SIGAFAT/EXECAUTO/etc.)

Data Emissão

ELA_DTEMIS

Data

8

0

Sim

Data de emissão da invoice.

Cond. Pag.

ELA_CONDPG

Caracter

3

0

Não

Condição de Pagamento. Necessário apenas para uso do controle de câmbio.

Moeda

ELA_MOEDA

Caracter

3

0

Sim

Moeda da invoice

Taxa Emissão

ELA_TX_MOE

Numerico

15

8

Sim

Cotação da moeda na data da emissão da invoice

Observações

ELA_COMPL

Memo

60

0

Não

Texto livre para informações complementares e referencias para consulta desta invoice.

Processo

ELA_PROCES

Caracter

15

0

Sim

Processo de serviço da fatura.

Nota Fiscal

ELA_DOC

Caracter

9

0

Não

Numero da Nota Fiscal, caso tenha sido emitida.

Serie

ELA_SERIE

Caracter

3

0

Não

Série da Nota Fiscal, caso tenha sido emitida.

Modelo NF

ELA_MODELO

Caracter

10

0

Não

Modelo da Nota Fiscal, caso tenha sido emitida.

 

Os campos dos Itens para geração da Invoice são listados abaixo:

Título

Campo

Tipo

Tam.

Dec.

Obrigatório

Observação

Filial

ELB_FILIAL

Caracter

2

0

Sim

Filial do Sistema (xFilial)

Exportador

ELB_EXPORT

Caracter

10

0

Sim

Mesmo que da capa (ELA). Este campo deve ser utilizado apenas para Invoices e Pedidos de Aquisição.

Loja Exportador

ELB_LOJEXP

Caracter

2

0

Sim

Mesmo que da capa (ELA). Este campo deve ser utilizado apenas para Invoices e Pedidos de Aquisição.

ImportadorELB_IMPORTCaracter20SimMesmo que da capa (ELA). Este campo deve ser utilizado apenas para Invoices e Pedidos de Venda.
Loja ImportadorELB_LOJIMPCaracter20SimMesmo que da capa (ELA). Este campo deve ser utilizado apenas para Invoices e Pedidos de Venda.

Nro. Invoice

ELB_NRINVO

Caracter

20

0

Sim

Mesmo que da capa (ELA)

Processo

ELB_PROCES

Caracter

15

0

Sim

Mesmo que da capa (ELA)

Seq. Processo

ELB_SEQPRC

Caracter

4

0

Sim

Item do processo.

Valor Cambio

ELB_VLCAMB

Numerico

16

2

Não

Valor para contratação de câmbio para este item nesta invoice.

Valor Exterior

ELB_VLEXT

Numerico

16

2

Não

Valor a manter no exterior para este item nesta invoice.

 

A operação de execução é definida conforme abaixo:

Opção

Valor

Inclusão

3

Alteração

4

Exclusão

5

 

Exemplo de desenvolvimento:

Exemplo de Inclusão de Invoice via ExecAuto

*------------------------------------------*
User Function ExecInvAuto()
*------------------------------------------*
Local aCab := {}, aItem := {}, aItens := {}
Local nOpcAuto := 3
Private lMsErroAuto := .F.

/******* Montagem dos Arrays *******/
// CAPA (aCab)
aAdd(aCab, {"ELA_FILIAL" , xFilial("ELA") , NIL})
aAdd(aCab, {"EJW_IMPORT" , "01" , NIL})
aAdd(aCab, {"EJW_LOJIMP" , "01" , NIL})
aAdd(aCab, {"ELA_NRINVO" , "INV545" , NIL})
aAdd(aCab, {"ELA_PROCES" , "0100" , NIL})
aAdd(aCab, {"ELA_ORIGEM" , "EXECAUTO" , NIL})
aAdd(aCab, {"ELA_DTEMIS" , dDataBase , NIL})
aAdd(aCab, {"ELA_CONDPG" , "01" , NIL})
aAdd(aCab, {"ELA_MOEDA" , "US$" , NIL})
aAdd(aCab, {"ELA_TX_MOE" , 4 , NIL})
aAdd(aCab, {"ELA_COMPL" , "Geração via ExecAuto" , NIL})
aAdd(aCab, {"ELA_DOC" , "NF069" , NIL})
aAdd(aCab, {"ELA_SERIE" , "B" , NIL})
aAdd(aCab, {"ELA_MODELO" , "1" , NIL})

// ITENS (aItens)
aAdd(aItem, {"ELB_FILIAL" , xFilial("ELB") , NIL})
aAdd(aItem, {"ELB_PROCES" , aCab[5][2] , NIL})
aAdd(aItem, {"ELB_IMPORT" , "01" , NIL})
aAdd(aItem, {"ELB_LOJIMP" , "01" , NIL})
aAdd(aItem, {"ELB_NRINVO" , "INV540" , NIL})
aAdd(aItem, {"ELB_SEQPRC" , "0001" , NIL})
aAdd(aItem, {"ELB_VLCAMB" , 50.00 , NIL})
aAdd(aItem, {"ELB_VLEXT" , 0.00 , NIL})
aAdd(aItens,aItem)

/******* Execução do ExecAuto *******/
MSExecAuto({|a,b,c,d,e,f,g| ESSIS400(a,b,c,d,e,f,g)},"ELA", NIL, NIL, "V", aCab, aItens, nOpcAuto)

/******* Tratamento de Erro *******/
If lMsErroAuto
MostraErro()
Else
MsgInfo("Registro manipulado com sucesso.")
EndIf

Return NIL

 

Exemplo de Resultado da operação

Exemplo de Resultado com erros.

Exemplo de Resultado com sucesso.