Descrição: | Possibilita a realização das manutenções do Embarque de Exportação, tais como Inclusão, Alteração e Exclusão, 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: | EEC - Capa do Embarque de Exportação EE9 - Itens do Embarque de Exportação EXL - Dados Complementares do Embarque EEN - Notify EXB - Agenda de Atividades/Documentos EEB - Agentes de um Pedido | ||||||||||||
Parâmetros: |
| ||||||||||||
Observações: | Alguns campos das tabelas EEC, EE9, EXL, EEN, EXB e EEB podem receber o tratamento via dicionario de dados (SX3), o qual permite ser utilizado somente por alguns módulos (X3_USADO). Exemplo: PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" Modulo "EEC" TABLES "EEC,EE9" |
Integração automática do Embarque de Exportação
Para realizar a integração automática de um Embarque de Exportação, é necessária a utilização da função MsExecAuto. Para isso, deve ser utilizado o programa EECAE100, responsável pela manutenção dos embarques.
A utilização da rotina automática, depende 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
Restrições
A rotina automática para integração de Embarques de Exportação somente está disponível para processos do tipo "Exportação Regular", não sendo possível integrar os tipos de processos abaixo:
- Processos de Intermediação: São aqueles onde o campo "Offshore" (EEC_INTERM) possui seu conteúdo igual a "1=Sim"
- Back to Back: Processos gerenciados pela opção de menu "Back to Back"
- Remessa em Consignação: Processos gerenciados pelas opções de menu "Rem. Exportação" e "Rem. Back to Back"
- Venda de Remessa de Consignação: Processos gerenciados pela opção de menu "Venda Remessa"
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
Exemplo - Inclusão de Embarque automático com Auxiliares (Notify (EEN), Agenda de Documentos (EXB) e Agente de Comissão (EEB) ) |
---|
#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.
Exemplo - Alteração de Embarque automático com Auxiliares (Notify (EEN), Agenda de Documentos (EXB) e Agente de Comissão (EEB) ) |
---|
#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 |
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.
Exemplo - Exclusão de Embarque automático com Auxiliares (Notify (EEN), Agenda de Documentos (EXB) e Agente de Comissão (EEB) ) |
---|
#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} ).
Exemplo - Vinculação e Exclusão da Vinculação de Adiantamento com Embarque |
---|
User Function MyEECAE100() Private lMsErroAuto := .F. RpcSetType(3) RpcSetEnv("99", "01",,,"EEC") nModulo := 29 If MsgYesNo("Deseja entrar na rotina de Associação dos Adiantamentos?", "Aviso") U_AdVincAuto() EndIf RpcClearEnv() Return /*************************************************** * Function: AdVincAuto() * * Objetivo: Efetuar a Vinculação do Adiantamento * ****************************************************/ User Function AdVincAuto() Local aEmb := {}, aAdian := {}, aParc, aIntegra Local lExecuta := .T. Local cParc:="" Local nValor:=0 Local cEmbarque := "PED-EMB-AUT002" Private lMsErroAuto := .F. While lExecuta lMsErroAuto := .F. aEmb := {} aAdian:= {} lExcluir := .F. If !MsgYesNo("Selecione SIM para associar um adiantamento ou NÃO para excluir uma associação?", "Aviso") lExcluir := .T. EndIf aAdd(aEmb, {"EEC_FILIAL", "01" , Nil}) aAdd(aEmb, {"EEC_PREEMB", cEmbarque , Nil}) //Informe qual o embarque que será vinculado o adiantamento aParc := {} If lExcluir If MsgYesNo("Deseja excluir informando a parcela de origem? Se SIM, informe a parcela do adiantamento. Caso escolha não, a parcela informada deverá ser a parcela da associação.", "Aviso") cParc := IoDlg() aAdd(aParc, {"EEQ_FAOR" , "C" , Nil}) aAdd(aParc, {"EEQ_PROR" , "001 01", Nil}) aAdd(aParc, {"EEQ_PAOR" , cParc , Nil}) Else cParc := IoDlg() aAdd(aParc, {"EEQ_FASE" , "E" , Nil}) aAdd(aParc, {"EEQ_PREEMB" , cEmbarque , Nil}) aAdd(aParc, {"EEQ_PARC" , cParc , Nil}) EndIf Else cParc := IoDlg() aAdd(aParc, {"EEQ_FASE" , "C" , Nil}) aAdd(aParc, {"EEQ_PREEMB" , "001 01", Nil}) aAdd(aParc, {"EEQ_PARC" , cParc , Nil}) EndIf If !lExcluir nvalor := IoDlgValor() aAdd(aParc, {"AUTVALVINC", nvalor, Nil}) //Valor a ser associado Else aAdd(aParc, {"AUTDELETA", "S", Nil})//Enviar quando for excluir uma vinculação EndIf aAdd(aAdian, aClone(aParc)) aIntegra := {{"EEC", aEmb}, {"EEQ", aAdian}} MsAguarde({|| MsExecAuto({|aIntegra| EECAE100(,,aIntegra,"AE100Adian") }, aIntegra) }, "Integrando associação de adiantamentos") If lMsErroAuto MostraErro() Else MsgInfo("Executado com sucesso!", "Aviso") EndIf lExecuta := MsgYesNo("Continuar com as associações?", "Aviso") EndDo RpcClearEnv() Return Nil |