Histórico da Página
...
Descrição: | Possibilita a realização das manutenções de Câmbio de Exportação, tais como Inclusão, Alteração e Exclusão, Baixa, Liquidação e estornos através do mecanismo de rotina automática. | ||||||||||||||||||||
Produto: | Microsiga Protheus | ||||||||||||||||||||
Segmento: | Comércio Exterior | ||||||||||||||||||||
Módulo: | SIGAEEC - Easy Export Control | ||||||||||||||||||||
Rotina: |
| ||||||||||||||||||||
País(es): | Todos | ||||||||||||||||||||
Banco(s) de Dados: | Todos Homologados pela TOTVS | ||||||||||||||||||||
Tabelas Utilizadas: | EEQ - Parcelas de Câmbio do processo de exportação | ||||||||||||||||||||
Parâmetros: |
| ||||||||||||||||||||
Observações: | Para a integração via Execauto a opção xOpcBrwAuto deve ser sempre 3 e para os itens que seriam as parcelas temos a variável xOpcDetAuto onde são enviadas as opções para cada ação do câmbio, lembrando que e as ações são como na utilização do câmbio em tela, ou seja, para o de baixa de título com movimento no exterior deve ser enviado via Execauto um alteração da parcela informando os dados necessários, os mesmos que se usa via tela, para executar uma alteração e então a baixa do título e o mesmo vale para o estorno que deve ser enviado uma alteração com a data de crédito no exterior, assim como funciona em tela hoje. É importante ressaltar que a associação de adiantamentos não está no escopo dessa melhoria e que por enquanto não é possível fazer uso dessa ação como parte da integração automática via ExecAuto. |
Integração automática do Câmbio de Exportação
...
aadd( aCab , { "EEC_FILIAL" , "Filial" , Nil })
aadd( aCab , { "EEC_PREEMB" , "Embarque" , Nil })
xOpcBrwAuto que representa a opção da rotina do browse a ser executada e no caso da manutenção de câmbio deverá ser utilizada sempre a opção 3, responsável pela rotina de manutenção das parcelas;
...
E por fim xOpcDetAuto que representa a ação a ser executada para a parcela que no caso está explicada no quadro de parâmetros da rotina, no rdmake disponibilizado abaixo e no explicativo logo a seguir:
Alterações
Para executar uma alteração na parcela específica na parcela como por exemplo o desdobramento de valores de uma parcela será necessário enviar os dados citados acima para alteração e no mesmo modelo o valor da parcela que esteja de acordo, somente isso é suficiente para que a rotina entenda como desdobramento de parcelas.
Também é possível excluir uma parcela de desdobramento ou uma parcela que não tenha sido gerada pela rotina de câmbio.
Alterar uma parcela para movimento no exterior requer a alteração da modalidade da parcela e do preenchimento dos dados bancários.
Baixas
E caso deseje baixar essa parcela com movimento no exterior é necessário enviar a data de crédito no exterior.
Liquidação (número de operação )
Para liquidar a parcela uma com movimento no exterior e baixada é necessário que envie os dados bancários do banco no brasil para que seja movimentado o dinheiro entre o banco de recebimento no exterior e a movimentação desse dinheiro para um banco brasileiro.
Para liquidar uma parcela de contrato de câmbio também é necessário enviar os dados bancários de um banco nacional e as datas de solicitação de câmbio, crédito no exterior, negociação e pagamento.
Estornos
Para realizar um estorno de baixa de uma parcela com movimento no exterior é necessário mandar os campos chave da parcela assim como a data de crédito no exterior em branco no formato de data.
E o estorno da liquidação de um título em ambos os casos de contrato de câmbio ou movimento no exterior é necessário enviar apenas os campos chaves.
da passagem de duas informações para que possa ser executada, sendo a primeira delas, a opção que se deseja realizar, ou seja, é necessário informar para a rotina se a operação que será realizada é uma Inclusão, uma Alteração ou uma Exclusão, e a segunda informação obrigatória, é o array com as informações a serem integradas.
Este array com os dados da integração, devem ser informados seguindo o seguinte critério:
Deve ser montado um único array de dados, sendo este responsável por enviar tanto as informações da capa do processo de exportação, quanto os itens e seus auxiliares (os auxiliares são opcionais).
- Para a integração da Capa do Embarque (Tabela EEC), deve ser montado um array, onde a primeira posição deve ser passado o Alias da tabela (ECC), e a segunda posição deve conter os dados, seguindo a estrutura de Nome do Campo, Informação a ser Gravada e um terceiro parâmetro que pode ser enviada uma validação adicional para o campo. As informações da Capa do Processo, são obrigatórias para a integração automática;
- Para a integração dos Itens do Embarque (Tabela EE9), deve ser montado um array, seguindo o mesmo critério da Capa do Embarque. A primeira posição do array deve ser informado o Alias da tabela (EE9), e a segunda posição deve conter os dados a serem integrados, seguindo a mesma estrutura da capa, Nome do Campo, Informação a ser Gravada e um terceiro parâmetro que pode ser enviada uma validação adicional para o campo;
- A integração de Auxiliares também podem ser feitas de forma automática. Neste caso, cada um deles deve ser montado um novo array, seguindo a mesma estrutura do Embarque. Podem ser integrados de forma automática dados de Notify (Tabela EEN), Agenda de Documentos (Tabela EXB) e Agentes de Comissão (Tabela EEB). Cada um deles deve ser um array separado contendo o Alias a ser integrado e as informações contendo o Nome do Campo, Informação a ser Gravada e um terceiro parâmetro que pode ser enviada uma validação adicional para o campo. As informações dos Auxiliares, não são obrigatórias para a integração automática
Vinculação automática de Adiantamento ao Embarque de Exportação
Para realizar a vinculação automática de um adiantamento ao Embarque, é necessário que o Importador/Cliente utilizado no Processo, possua adiantamento com Saldo. Para que esta integração ocorra, é necessário que seja enviado pela MsExecAuto, dentro do Array aDados, as informações do Embarque que se deseja realizar a vinculação e os dados dos adiantamentos que serão vinculados. Também será necessário informar para o sistema, o nome da rotina de vinculação do adiantamento, que no caso deve ser sempre "AE100Adian".
A estrutura do Array deve constar os dados do Processo (Tabela EEC) contendo os campos chave do Embarque (EEC_FILIAL e EEC_PREEMB) e também os dados do adiantamento (Tabela EEQ).
- Para a Vinculação do adiantamento, é importante que seja enviado os campos de Fase do Adiantamento (EEQ_FASE), Processo (EEQ_PREEMB), Parcela (EEQ_PARC) e o Valor a ser associado, que deve ser enviado com a tag AUTVALVINC;
- Para a exclusão de uma associação, existem duas formas de ser efetuada. No primeiro cenário, a exclusão pode ser feita informando o número da parcela da associação (que pode não ser o mesmo número da parcela do adiantamento que foi utilizado neste associação). Neste caso, junto com a parcela (EEQ_PARC), deve ser informado a Fase (EEQ_FASE) e o Processo (EEQ_PREEMB) referente a associação. No segundo cenário, a exclusão pode ser feita informando para o sistema o número da parcela do adiantamento que foi associado ao Embarque. Neste caso, os campos a serem informados para o Array devem ser os campos referente a Parcela de Origem, sendo eles Parcela de Origem (EEQ_PAOR), Fase de Origem (EEQ_FAOR) e Processo de Origem (EEQ_PROR). É importante dizer, que ao enviar qualquer um destes campos de Origem, o sistema já irá tratar como uma exclusão através da origem, então para que a parcela seja localizada, os três campos sempre deverão ser enviados.
Abaixo temos 3 exemplos de integração automática do embarque de exportação, sendo na sequência uma Inclusão, uma Alteração e uma Excluisão e também um exemplo para Vinculação e Exclusão da Vinculação de um Adiantamento com o Embarque:
Inclusão automática do Embarque de Exportação
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include "Totvs.Ch"
#include "tbiconn.ch"
User Function MyEECAE100()
Local aCab := {}
Local aItens := {}
Local aDados := {}
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'Administrador' PASSWORD '' TABLES 'EEC,EE9' MODULO 'EEC'
//Dados da Capa do Embarque
aCab :={{'EEC_PREEMB' , "EMB-AUT001" ,NIL},;
{'EEC_IMPORT' ,'001' ,NIL},;
{'EEC_IMLOJA' ,'01' ,NIL},;
{'EEC_IMPODE' ,"CLIENTE 001" ,NIL},;
{'EEC_FORN' ,'001' ,NIL},;
{'EEC_FOLOJA' ,'01' ,NIL},;
{'EEC_IDIOMA' ,"PORT. -PORTUGUES" ,NIL},;
{'EEC_CONDPA' ,"001" ,NIL},;
{'EEC_DIASPA' , 0 ,NIL},;
{'EEC_MPGEXP' ,'001' ,NIL},;
{'EEC_INCOTE' ,'FOB' ,NIL},;
{'EEC_MOEDA' ,'US$' ,NIL},;
{'EEC_FRPPCC' ,'PP' ,NIL},;
{'EEC_UNIDAD' ,'KG' ,NIL},;
{'EEC_EMBAFI' ,' ' ,NIL},;
{'EEC_CALCEM' ,'1' ,NIL},;
{'EEC_VIA' ,'02' ,NIL},;
{'EEC_ORIGEM' ,'SSZ' ,NIL},;
{'EEC_DEST' ,'HST' ,NIL},;
{'EEC_PAISET' ,'249' ,NIL},;
{'EEC_VIA_DE' ,"NOME DA VIA" ,NIL},;
{'EEC_TIPTRA' ,'1' ,NIL}}
aAdd(aDados, {"EEC", aCab})
//Dados dos Itens do Embarque
aItens := {}
aAdd(aItens, {{'EE9_PEDIDO' ,"EMB-AUT001" , NIL},;
{'EE9_SEQUEN' ,"1" , NIL},;
{'EE9_COD_I' ,'001' , NIL},;
{'EE9_FORN' ,'001' , NIL},;
{'EE9_FOLOJA' ,'01' , NIL},;
{'EE9_SLDINI' , 3737.95 , NIL},;
{'EE9_QE' ,197 , NIL},;
{'EE9_QTDEM1' ,19 , NIL},;
{'EE9_EMBAL1' ,'01' , NIL},;
{'EE9_PSLQUN' ,200 , NIL},;
{'EE9_PRECO' ,2100 , NIL},;
{'EE9_PLSQUN' ,200 , NIL},;
{'EE9_TES' ,"501" , NIL},;
{'EE9_CF' ,"999" , NIL},;
{'EE9_POSIPI' ,"01011010" , NIL}})
aAdd(aItens, {{'EE9_PEDIDO' ,"EMB-AUT001" , NIL},;
{'EE9_SEQUEN' ,"2 " , NIL},;
{'EE9_COD_I' ,'002' , NIL},;
{'EE9_FORN' ,'001' , NIL},;
{'EE9_FOLOJA' ,'01' , NIL},;
{'EE9_SLDINI' , 40 , NIL},;
{'EE9_QE' , 20 , NIL},;
{'EE9_QTDEM1' , 2 , NIL},;
{'EE9_EMBAL1' , '01' , NIL},;
{'EE9_PSLQUN' ,200 , NIL},;
{'EE9_PRECO' ,2100 , NIL},;
{'EE9_PLSQUN' ,200 , NIL},;
{'EE9_TES' ,"501" , NIL},;
{'EE9_CF' ,"999" , NIL},;
{'EE9_POSIPI' ,"01011010" , NIL}})
aAdd(aDados, {"EE9", aItens})
//-------Inclusão de Auxiliares
//Notify
aNotifys := {}
aNotify := {}
aAdd(aNotify, {"EEN_IMPORT", "001" , Nil})
aAdd(aNotify, {"EEN_IMLOJA", "01" , Nil})
aAdd(aNotifys, aNotify)
aAdd(aDados, {"EEN", aNotifys})
//Agenda de Documentos
aDocs := {}
aDoc := {}
aAdd(aDoc, {"EXB_CODATV", "05" , Nil})
aAdd(aDoc, {"EXB_TIPO" , "1" , Nil})
aAdd(aDocs, aDoc)
aAdd(aDados, {"EXB", aDocs})
//Agentes
aAgentes := {}
aAgente := {}
aAdd(aAgente, {"EEB_CODAGE", "002" , Nil})
aAdd(aAgente, {"EEB_TIPCOM", "1" , Nil})
aAdd(aAgente, {"EEB_TIPCVL", "1" , Nil})
aAdd(aAgente, {"EEB_VALCOM", 10, Nil})
aAdd(aAgente, {"EEB_REFAGE", "TESTE", Nil})
aAdd(aAgentes, aAgente)
aAdd(aDados, {"EEB", aAgentes})
MsAguarde({|| MSExecAuto( {|aAux, nOpc| EECAE100(,nOpc,aAux) },aDados, 3) }, "Integrando Embarque Automático")
If lMsErroAuto
MostraErro()
Else
MsgInfo("Executado com sucesso!", "Aviso")
EndIf
RESET ENVIRONMENT
Return !lMsErroAuto
|
Alteração automática do Embarque de Exportação
IMPORTANTE: Para a alteração do Embarque de Exportação, é obrigatório que os itens tenham em sua estrutura o campo EE9_SEQEMB, pois este campo é responsável pela definição de cada item do embarque (Na Inclusão, este campo não precisa ser informado). Caso a alteração do embarque seja para a inclusão de um novo item ao Processo, os itens já existentes devem ser informado o campo EE9_SEQEMB e o item novo que está sendo incluído, não deve enviar o campo EE9_SEQEMB, pois o próprio sistema deve definir qual será a sequência deste novo item.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#Include "Totvs.Ch"
#include "tbiconn.ch"
User Function MyEECAE100()
Local aCab := {}
Local aItens := {}
Local aDados := {}
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'Administrador' PASSWORD '' TABLES 'EEC,EE9' MODULO 'EEC'
//Dados da Capa do Embarque
aCab :={{'EEC_PREEMB' , "EMB-AUT001" ,NIL},;
{'EEC_IMPORT' ,'001' ,NIL},;
{'EEC_IMLOJA' ,'01' ,NIL},;
{'EEC_IMPODE' ,"CLIENTE 001" ,NIL},;
{'EEC_FORN' ,'001' ,NIL},;
{'EEC_FOLOJA' ,'01' ,NIL},;
{'EEC_IDIOMA' ,"PORT. -PORTUGUES" ,NIL},;
{'EEC_CONDPA' ,"001" ,NIL},;
{'EEC_DIASPA' , 0 ,NIL},;
{'EEC_MPGEXP' ,'001' ,NIL},;
{'EEC_INCOTE' ,'FOB' ,NIL},;
{'EEC_MOEDA' ,'US$' ,NIL},;
{'EEC_FRPPCC' ,'PP' ,NIL},;
{'EEC_UNIDAD' ,'KG' ,NIL},;
{'EEC_EMBAFI' ,' ' ,NIL},;
{'EEC_CALCEM' ,'1' ,NIL},;
{'EEC_VIA' ,'02' ,NIL},;
{'EEC_ORIGEM' ,'SSZ' ,NIL},;
{'EEC_DEST' ,'HST' ,NIL},;
{'EEC_PAISET' ,'249' ,NIL},;
{'EEC_VIA_DE' ,"NOME DA VIA" ,NIL},;
{'EEC_TIPTRA' ,'1' ,NIL}}
aAdd(aDados, {"EEC", aCab})
//Dados dos Itens do Embarque
aItens := {}
aAdd(aItens, {{'EE9_PEDIDO' ,"EMB-AUT001" , NIL},;
{'EE9_SEQUEN' ,"1" , NIL},;
{'EE9_SEQEMB' ,"1" , NIL},;
{'EE9_COD_I' ,'001' , NIL},;
{'EE9_FORN' ,'001' , NIL},;
{'EE9_FOLOJA' ,'01' , NIL},;
{'EE9_SLDINI' , 3737.95 , NIL},;
{'EE9_QE' ,197 , NIL},;
{'EE9_QTDEM1' ,19 , NIL},;
{'EE9_EMBAL1' ,'01' , NIL},;
{'EE9_PSLQUN' ,200 , NIL},;
{'EE9_PRECO' ,2100 , NIL},;
{'EE9_PLSQUN' ,200 , NIL},;
{'EE9_TES' ,"501" , NIL},;
{'EE9_CF' ,"999" , NIL},;
{'EE9_POSIPI' ,"01011010" , NIL}})
aAdd(aItens, {{'EE9_PEDIDO' ,"EMB-AUT001" , NIL},;
{'EE9_SEQUEN' ,"2 " , NIL},;
{'EE9_SEQEMB' ,"2" , NIL},;
{'EE9_COD_I' ,'002' , NIL},;
{'EE9_FORN' ,'001' , NIL},;
{'EE9_FOLOJA' ,'01' , NIL},;
{'EE9_SLDINI' , 40 , NIL},;
{'EE9_QE' , 20 , NIL},;
{'EE9_QTDEM1' , 2 , NIL},;
{'EE9_EMBAL1' , '01' , NIL},;
{'EE9_PSLQUN' ,200 , NIL},;
{'EE9_PRECO' ,2100 , NIL},;
{'EE9_PLSQUN' ,200 , NIL},;
{'EE9_TES' ,"501" , NIL},;
{'EE9_CF' ,"999" , NIL},;
{'EE9_POSIPI' ,"01011010" , NIL}})
aAdd(aDados, {"EE9", aItens})
//-------Inclusão de Auxiliares
//Notify
aNotifys := {}
aNotify := {}
aAdd(aNotify, {"EEN_IMPORT", "001" , Nil})
aAdd(aNotify, {"EEN_IMLOJA", "01" , Nil})
aAdd(aNotifys, aNotify)
aAdd(aDados, {"EEN", aNotifys})
//Agenda de Documentos
aDocs := {}
aDoc := {}
aAdd(aDoc, {"EXB_CODATV", "05" , Nil})
aAdd(aDoc, {"EXB_TIPO" , "1" , Nil})
aAdd(aDocs, aDoc)
aAdd(aDados, {"EXB", aDocs})
//Agentes
aAgentes := {}
aAgente := {}
aAdd(aAgente, {"EEB_CODAGE", "002" , Nil})
aAdd(aAgente, {"EEB_TIPCOM", "1" , Nil})
aAdd(aAgente, {"EEB_TIPCVL", "1" , Nil})
aAdd(aAgente, {"EEB_VALCOM", 10, Nil})
aAdd(aAgente, {"EEB_REFAGE", "TESTE", Nil})
aAdd(aAgentes, aAgente)
aAdd(aDados, {"EEB", aAgentes})
MsAguarde({|| MSExecAuto( {|aAux, nOpc| EECAE100(,nOpc,aAux) },aDados, 4) }, "Integrando Embarque Automático")
If lMsErroAuto
MostraErro()
Else
MsgInfo("Executado com sucesso!", "Aviso")
EndIf
RESET ENVIRONMENT
Return !lMsErroAuto
|
Informações Técnicas
Todos as opções abaixo estão detalhadas no Rdmake abaixo e para caso de dúvida sobre quais campos enviar para o ExecAuto é importante ressaltar que são as mesmas validações de quando está fazendo uma operação em tela, ou seja, caso deseje incluir uma parcela específica ao tentar fazer a inclusão via tela é possível saber os campos necessários para a inclusão de uma parcela. Abaixo teremos uma explanação básica do necessário para executar cada opção a ser realizada pela rotina de Manutenção de Câmbio.
Inclusão (número de operação 4)
- Para inclusão de uma parcela devem ser enviados os campos chaves, menos a parcela que é gerada automaticamente e vários outros campos que variam de acordo com a parcela a ser incluída.
Alterações (número de operação 5)
- Para executar uma alteração na parcela específica na parcela como por exemplo o desdobramento de valores de uma parcela será necessário enviar os dados citados acima para alteração e no mesmo modelo o valor da parcela que esteja de acordo, somente isso é suficiente para que a rotina entenda como desdobramento de parcelas.
- Também é possível excluir uma parcela de desdobramento ou uma parcela que não tenha sido gerada pela rotina de câmbio.
- Alterar uma parcela para movimento no exterior requer a alteração da modalidade da parcela e do preenchimento dos dados bancários.
Baixas (número de operação 5)
- E caso deseje baixar essa parcela com movimento no exterior é necessário enviar a data de crédito no exterior.
Estorno de baixa (número de operação 5)
- Para realizar um estorno de baixa de uma parcela com movimento no exterior é necessário mandar os campos chave da parcela assim como a data de crédito no exterior em branco no formato de data.
Liquidação (número de operação 99 )
- Para liquidar a parcela uma com movimento no exterior e baixada é necessário que envie os dados bancários de um banco nacional e as datas de solicitação de câmbio, negociação e pagamento para que seja movimentado o dinheiro entre o banco de recebimento no exterior e a movimentação desse dinheiro para um banco brasileiro.
- Para liquidar uma parcela de contrato de câmbio também é necessário enviar os dados bancários de um banco nacional e as datas de solicitação de câmbio, crédito no exterior, negociação e pagamento.
Estorno de liquidação (número de operação 98 )
- E o estorno da liquidação de um título em ambos os casos de contrato de câmbio ou movimento no exterior é necessário enviar apenas os campos chaves.
Parcela de Câmbio Integrada com o Financing (EFF)
Para as parcelas de câmbio integradas com o Financing é necessário enviar um parâmetro específico para quando executar a ação de liquidação de um título integrado e um outro para quando necessitar realizar o estorno de uma parcela de câmbio integrada, sendo que, para:
Liquidação (número de operação 99 ):
- É necessário enviar os dados chave da parcela e as datas de solicitação de câmbio, crédito no exterior, negociação e pagamento e mais um campo que é usado para saber se em caso de o contrato tiver seu limite 0 com a liquidação dessa parcela saber se deseja encerrar ou não o contrato de Financing do qual está atrelado e deve ser enviado da seguinte forma:
aadd( aIntegra , { "AUTENCERRACONTRA", "S" , Nil })
Deve ser enviado apenas S ou N e em caso de não enviar esse campo será considerado como sim por padrão da rotina.
Estorno da liquidação (número de operação 98 ):
- É necessário enviar os campos chaves da parcela que deseja estornar e um campo extra deverá conter a justificativa desse estorno, conforme rotina padrão e caso não seja enviado não realizará a ação de estorno. O campo deve ser enviado se seguinte forma:
aadd( aIntegra , { "AUTMOTIVO" , "JUSTIFICATIVA" , Nil })
Rdmake para a rotina de Manutenção de Câmbio
Exclusão automática do Embarque de Exportação
IMPORTANTE: Para a Exclusão do Embarque de Exportação e seus auxiliares, é obrigatório que seja informado nas estruturas que contém as informações dos campos a serem gravados, uma nova opção com o nome AUTDELETA e o conteúdo S ( Exemplo: {"AUTDELETA" ,"S" , Nil} ). Esta informação é responsável por identificar o que deverá ser excluído pelo sistema.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include "Totvs.Ch"
#include "tbiconn.ch"
User Function MyEECAE100()
Local aCab := {}
Local aItens := {}
Local aDados := {}
Private lMsErroAuto := .F.
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'Administrador' PASSWORD '' TABLES 'EEC,EE9' MODULO 'EEC'
//Dados da Capa do Embarque
aCab :={{'EEC_PREEMB' , "EMB-AUT001" ,NIL},;
{'EEC_IMPORT' ,'001' ,NIL},;
{'EEC_IMLOJA' ,'01' ,NIL},;
{'EEC_IMPODE' ,"CLIENTE 001" ,NIL},;
{'EEC_FORN' ,'001' ,NIL},;
{'EEC_FOLOJA' ,'01' ,NIL},;
{'EEC_IDIOMA' ,"PORT. -PORTUGUES" ,NIL},;
{'EEC_CONDPA' ,"001" ,NIL},;
{'EEC_DIASPA' , 0 ,NIL},;
{'EEC_MPGEXP' ,'001' ,NIL},;
{'EEC_INCOTE' ,'FOB' ,NIL},;
{'EEC_MOEDA' ,'US$' ,NIL},;
{'EEC_FRPPCC' ,'PP' ,NIL},;
{'EEC_UNIDAD' ,'KG' ,NIL},;
{'EEC_EMBAFI' ,' ' ,NIL},;
{'EEC_CALCEM' ,'1' ,NIL},;
{'EEC_VIA' ,'02' ,NIL},;
{'EEC_ORIGEM' ,'SSZ' ,NIL},;
{'EEC_DEST' ,'HST' ,NIL},;
{'EEC_PAISET' ,'249' ,NIL},;
{'EEC_VIA_DE' ,"NOME DA VIA" ,NIL},;
{'EEC_TIPTRA' ,'1' ,NIL},;
{"AUTDELETA" ,"S" , Nil}}
aAdd(aDados, {"EEC", aCab})
//Dados dos Itens do Embarque
aItens := {}
aAdd(aItens, {{'EE9_PEDIDO' ,"EMB-AUT001" , NIL},;
{'EE9_SEQUEN' ,"1" , NIL},;
{'EE9_COD_I' ,'001' , NIL},;
{'EE9_FORN' ,'001' , NIL},;
{'EE9_FOLOJA' ,'01' , NIL},;
{'EE9_SLDINI' , 3737.95 , NIL},;
{'EE9_QE' ,197 , NIL},;
{'EE9_QTDEM1' ,19 , NIL},;
{'EE9_EMBAL1' ,'01' , NIL},;
{'EE9_PSLQUN' ,200 , NIL},;
{'EE9_PRECO' ,2100 , NIL},;
{'EE9_PLSQUN' ,200 , NIL},;
{'EE9_TES' ,"501" , NIL},;
{'EE9_CF' ,"999" , NIL},;
{'EE9_POSIPI' ,"01011010" , NIL},;
{"AUTDELETA" ,"S" , Nil}})
aAdd(aItens, {{'EE9_PEDIDO' ,"EMB-AUT001" , NIL},;
{'EE9_SEQUEN' ,"2 " , NIL},;
{'EE9_COD_I' ,'002' , NIL},;
{'EE9_FORN' ,'001' , NIL},;
{'EE9_FOLOJA' ,'01' , NIL},;
{'EE9_SLDINI' , 40 , NIL},;
{'EE9_QE' , 20 , NIL},;
{'EE9_QTDEM1' , 2 , NIL},;
{'EE9_EMBAL1' , '01' , NIL},;
{'EE9_PSLQUN' ,200 , NIL},;
{'EE9_PRECO' ,2100 , NIL},;
{'EE9_PLSQUN' ,200 , NIL},;
{'EE9_TES' ,"501" , NIL},;
{'EE9_CF' ,"999" , NIL},;
{'EE9_POSIPI' ,"01011010" , NIL},;
{"AUTDELETA" ,"S" , Nil}})
aAdd(aDados, {"EE9", aItens})
//-------Inclusão de Auxiliares
//Notify
aNotifys := {}
aNotify := {}
aAdd(aNotify, {"EEN_IMPORT", "001" , Nil})
aAdd(aNotify, {"EEN_IMLOJA", "01" , Nil})
aAdd(aNotify, {"AUTDELETA" ,"S" , Nil})
aAdd(aNotifys, aNotify)
aAdd(aDados, {"EEN", aNotifys})
//Agenda de Documentos
aDocs := {}
aDoc := {}
aAdd(aDoc, {"EXB_CODATV", "05" , Nil})
aAdd(aDoc, {"EXB_TIPO" , "1" , Nil})
aAdd(aDoc, {"AUTDELETA" ,"S" , Nil})
aAdd(aDocs, aDoc)
aAdd(aDados, {"EXB", aDocs})
//Agentes
aAgentes := {}
aAgente := {}
aAdd(aAgente, {"EEB_CODAGE", "002" , Nil})
aAdd(aAgente, {"EEB_TIPCOM", "1" , Nil})
aAdd(aAgente, {"EEB_TIPCVL", "1" , Nil})
aAdd(aAgente, {"EEB_VALCOM", 10 , Nil})
aAdd(aAgente, {"EEB_REFAGE", "TESTE" , Nil})
aAdd(aAgente, {"AUTDELETA" ,"S" , Nil})
aAdd(aAgentes, aAgente)
aAdd(aDados, {"EEB", aAgentes})
MsAguarde({|| MSExecAuto( {|aAux, nOpc| EECAE100(,nOpc,aAux) },aDados, 5) }, "Integrando Embarque Automático")
If lMsErroAuto
MostraErro()
Else
MsgInfo("Executado com sucesso!", "Aviso")
EndIf
RESET ENVIRONMENT
Return !lMsErroAuto
|
Vinculação automática de Adiantamento de Importador/Cliente no Embarque de Exportação
IMPORTANTE: Para a Vinculação do adiantamento, o valor a ser associado deve ser enviado na Tag AUTVALVINC (Exemplo: {"AUTVALVINC", nvalor, Nil} ). Já para a Exclusão da vinculação, é necessário enviar a Tag AUTDELETA e o conteúdo S ( Exemplo: {"AUTDELETA" ,"S" , Nil} ).
language | actionscript3 |
---|---|
linenumbers | true |
Exemplos para utilização das rotinas de manutenção de câmbio via execauto. |
---|
#Include "Totvs.Ch" User Function MyEECTela() //Inicia o Ambiente //Executa a rotina
|