Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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:
RotinaNome Técnico
EECAF200.PRW

Manutenção de Câmbio de processos de exportação

EFFEX400.PRWManutenção de Contratos Financing
EFFEX401.PRWFunções FInancing
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:
NomeTipoDescriçãoObrigatório
xAutoCabArray of RecordArray com os dados do cabeçalho para integração automática
X
xOpcBrwAutoNuméricoOpção: 3X
xAutoItensArray of RecordArray com os dados da parcela para integração automáticax
xOpcDetAutoNumérico

Opções: 99 = Liquidar Parcela

98 = Estornar Liquidação da Parcela

95 = Excluir Parcela

4 = Incluir Parcela

5 = Alterar Parcela

x

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

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

...

Exemplos para utilização das rotinas de manutenção de câmbio via execauto.

#Include "Totvs.Ch"
#include "FWBrowse.Ch"
#include "protheus.ch"

User Function MyEECTela()

//Inicia o Ambiente
InitAmbiente()

//Executa a rotina
U_ManutCambio()
//Finaliza o Ambiente
RpcClearEnv()

Return

User Function ManutCambio()
Local oDlg
Local oRadio
Local oPanel1
Local nOpcA := 1
Local cTitulo := "Selecione a opção para simulação"

Private aItens := GetOpcRadio() //Opcoes disponiveis para o rdmake
Private nRadio := 1

DEFINE DIALOG oDlg TITLE cTitulo FROM 1,1 TO 600,800 OF oMainWnd PIXEL STYLE DS_MODALFRAME

lLowered := .T.
lRaised := .T.
nWidth := 390
nHeight := 255
nRow := 30
nCol := 03
oPanel1:= TPanel():New(nRow, nCol, "" , oDlg, , .T., , , ,nWidth,nHeight,lLowered,lRaised )

nRow := 10
nCol := 03
nWidth := 380
nHeight := 240
nRadio := 1
oRadio := TRadMenu():New (nRow, nCol,aItens,,oPanel1, , , , , , , , nWidth, nHeight,,,,.T.)
oRadio:bSetGet := {|u|Iif (PCount()==0,nRadio,nRadio:=u)}

oTButton := TButton():New( 003,150, "OK" ,oDlg,{|| nOpcA := 1,oDlg:End() }, 45,20,,,,.T.,,,, )
oTButton := TButton():New( 003,200, "CANCEL" ,oDlg,{|| nOpcA := 0,oDlg:End() }, 45,20,,,,.T.,,,, )

ACTIVATE MSDIALOG oDlg CENTERED

If nOpcA == 1
nRadio := strzero(nRadio,2)
U_IniciaProc()
EndIf

Return

User Function IniciaProc()
Local aCab := {}
Local aIntegra:= {}
Local oDlg
Local nOpc := 5

Private lMsErroAuto := .F.
Private lMsHelpAuto := .F.//Indica que todas as mensagens de help devem ser direcionadas para o arquivo de log

Do Case
Case alltrim(nRadio) $ "01" //liquida parcela contrato de câmbio

//01 - Deseja LIQUIDAR uma parcela de Câmbio a RECEBER (Contrato de Câmbio)?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_DTNEGO" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_PGT" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_BANC" , "B01" , Nil })
aadd( aIntegra , { "EEQ_AGEN" , "AG001" , Nil })
aadd( aIntegra , { "EEQ_NCON" , "CC00000001" , Nil })
aadd( aIntegra , { "EEQ_NROP" , "1" , Nil })
aadd( aIntegra , { "EEQ_RFBC" , "TR" , Nil })

nOpc := 99 // Opc para a liquidação de títulos

Case alltrim(nRadio) $ "02" // estorna liquidação de contrato de câmbio

//02 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a RECEBER (Contrato de Câmbio) ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })

nOpc := 98 // Opc para estorno de um título

Case alltrim(nRadio) $ "03" // altera parcela para em seguida baixar no mov ext

//03 - Deseja ALTERAR uma parcela de Câmbio a RECEBER, removendo as datas de crédito no exterior e solicitação de câmbio ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod('') , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod('') , Nil })
aadd( aIntegra , { "EEQ_DTNEGO" , stod('') , Nil })
aadd( aIntegra , { "EEQ_BANC" , "" , Nil })
aadd( aIntegra , { "EEQ_AGEN" , "" , Nil })
aadd( aIntegra , { "EEQ_NCON" , "" , Nil })
aadd( aIntegra , { "EEQ_RFBC" , "" , Nil })
aadd( aIntegra , { "EEQ_NROP" , "" , Nil })

nOpc := 5 // Opc para executar alteração na parcela

Case alltrim(nRadio) == "04" // Baixar parcela com mov extmovimento exterior

//04 - Deseja BAIXAR uma parcela de Câmbio a RECEBER (Com Movimento no Exterior)?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_MODAL" , "2" , Nil })
aadd( aIntegra , { "EEQ_BCOEXT" , "BFI" , Nil })
aadd( aIntegra , { "EEQ_CNTEXT" , "CC00000001" , Nil })
aadd( aIntegra , { "EEQ_AGCEXT" , "00001" , Nil })
aadd( aIntegra , { "EEQ_OBS" , "" , Nil })

nOpc := 5 // Para baixar o título com movimento no exterior é necessário envir o Opc
// como alteração e com as informações do banco do exterior para realizar a baixa

Case alltrim(nRadio) == "05" // liquida a parcela com mov ext

//05 - Deseja LIQUIDAR uma parcela de Câmbio a RECEBER (Com Movimento no Exterior)?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_DTNEGO" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_PGT" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_BANC" , "B01" , Nil })
aadd( aIntegra , { "EEQ_AGEN" , "AG001" , Nil })
aadd( aIntegra , { "EEQ_NCON" , "CC00000001" , Nil })
aadd( aIntegra , { "EEQ_NROP" , "1" , Nil })
aadd( aIntegra , { "EEQ_RFBC" , "TR" , Nil })

nOpc := 99 // Opc para a liquidação de títulos


Case alltrim(nRadio) $ "06" // estorna liquidação de contrato de câmbio

//06 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a RECEBER (Com Movimento no Exterior) ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })

nOpc := 98 // Opc para estorno de um título

Case alltrim(nRadio) == "07" // estorna baixa com mov ext

//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod('') , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod('') , Nil })

nOpc := 5 // Opc para executar alteração na parcela removendo a data de crédito no exterior e assim realizando
// o estorno da parcela de câmbio

Case alltrim(nRadio) $ "08" // altera parcela para realizar um desdobramento da parcela principal

//08 - Deseja ALTERAR uma parcela de Câmbio a RECEBER (Realizando Desdobramento da parcela) ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "01" , Nil })
aadd( aIntegra , { "EEQ_VL" , 500000 , Nil })

nOpc := 5 // Opc para executar alteração na parcela

Case alltrim(nRadio) $ "09" // exclusão/estorno de parcelas com desdobramento

//09 - Deseja EXCLUIR uma parcela de Câmbio a RECEBER (Parcela gerada por Desdobramento) ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })

nOpc := 95 // Opc para exclusão/estorno de parcelas

Case alltrim(nRadio) $ "10" // exclusão/estorno de parcelas de embarque para simular o retorno de validação

//10 - Deseja EXCLUIR uma parcela de Câmbio a RECEBER (Parcela gerada pelo Embarque, não deve remover a parcela) ?")
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "01" , Nil })

nOpc := 95 // Opc para exclusão/estorno de parcelas

Case alltrim(nRadio) $ "11" //liquida parcela A PAGAR com contrato de câmbio
/// parcelas a pagar
//11 - Deseja LIQUIDAR uma parcela de Câmbio a PAGAR (Contrato de Câmbio)?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "05" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_DTNEGO" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_PGT" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_BANC" , "B01" , Nil })
aadd( aIntegra , { "EEQ_AGEN" , "AG001" , Nil })
aadd( aIntegra , { "EEQ_NCON" , "CC00000001" , Nil })
aadd( aIntegra , { "EEQ_NROP" , "1" , Nil })
aadd( aIntegra , { "EEQ_RFBC" , "TR" , Nil })

nOpc := 99 // Opc para a liquidação de títulos

Case alltrim(nRadio) $ "12" // estorna liquidação de contrato de câmbio

//14 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a PAGAR (Contrato de Câmbio) ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "05" , Nil })

nOpc := 98 // Opc para estorno de um título

Case alltrim(nRadio) $ "13" // alrear parcela de câmbio a pagar preparando para mov ext

//13 - Deseja ALTERAR uma parcela de Câmbio a PAGAR (preparando para liquidar no exterior) ?")
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "05" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod('') , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod('') , Nil })
aadd( aIntegra , { "EEQ_BANC" , "" , Nil })
aadd( aIntegra , { "EEQ_AGEN" , "" , Nil })
aadd( aIntegra , { "EEQ_NCON" , "" , Nil })
aadd( aIntegra , { "EEQ_RFBC" , "" , Nil })
aadd( aIntegra , { "EEQ_NROP" , "" , Nil })

nOpc := 5 // Opc para executar alteração na parcela

Case alltrim(nRadio) $ "14" // liquidar título a pagar com mov mo movimento no exterior

//14 - Deseja LIQUIDAR uma parcela de Câmbio a PAGAR, realizando o Movimento no Exterior ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "05" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_PGT" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_MODAL" , "2" , Nil })
aadd( aIntegra , { "EEQ_BCOEXT" , "BFI" , Nil })
aadd( aIntegra , { "EEQ_CNTEXT" , "CC00000001" , Nil })
aadd( aIntegra , { "EEQ_AGCEXT" , "00001" , Nil })
aadd( aIntegra , { "EEQ_OBS" , "" , Nil })
aadd( aIntegra , { "EEQ_NROP" , "1" , Nil })

nOpc := 99 // Opc para a liquidação de títulos

Case alltrim(nRadio) $ "15" // estorno da liquidação dp do título a pagar com mov mo movimento no exterior

//15 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a PAGAR (Com Movimento no Exterior) ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "05" , Nil })

nOpc := 98 // Opc para estorno de um título

Case alltrim(nRadio) $ "16" // altera parcela para realizar um desdobramento da parcela principal

//16 - Deseja ALTERAR uma parcela de Câmbio a PAGAR (Realizando o Desdobramento) ?")
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "05" , Nil })
aadd( aIntegra , { "EEQ_VL" , 100 , Nil })

nOpc := 5 // Opc para executar alteração na parcela

Case alltrim(nRadio) $ "17" // exclusão/estorno de parcelas com desdobramento

//17 - Deseja EXCLUIR uma parcela de Câmbio a PAGAR (Parcela gerada por Desdobramento) ?")
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "07" , Nil })

nOpc := 95 // Opc para exclusão/estorno de parcelas

Case alltrim(nRadio) $ "18" // exclusão/estorno de parcelas com desdobramento, não deve permitir

//18 - Deseja EXCLUIR uma parcela de Câmbio a PAGAR (Parcela gerada pelo Embarque) ?")
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "102" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "05" , Nil })

nOpc := 95 // Opc para exclusão/estorno de parcelas

Case alltrim(nRadio) == "19"

//21 - Deseja INCLUIR uma parcela de Câmbio ?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2200-02" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "127" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2200-02" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "INCLUSAO" , Nil })
aadd( aIntegra , { "EEQ_EMISSA" , stod("20190905") , Nil })
aadd( aIntegra , { "EEQ_VCT" , stod("20191005") , Nil })
aadd( aIntegra , { "EEQ_MOEDA" , "US$" , Nil })
aadd( aIntegra , { "EEQ_PARI" , 1 , Nil })
aadd( aIntegra , { "EEQ_VL" , 200 , Nil })
aadd( aIntegra , { "EEQ_CODEMP" , "F-FRET" , Nil })
aadd( aIntegra , { "EEQ_FORN " , "F-FRET" , Nil })
aadd( aIntegra , { "EEQ_FOLOJA" , "01" , Nil })
aadd( aIntegra , { "EEQ_OBS" , "" , Nil })

nOpc := 4 // Opc para inclusão de uma parcela de câmbio

Case alltrim(nRadio) $ "20" // liquidação de parcela de comissão a pagar

//20 - Deseja LIQUIDAR uma parcela de Câmbio de comissão sem receber o título principal antes? (deve rejeitar o pagamento.)")
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2374-03" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "120" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2374-03" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "I-DTRADE-2374-03" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "02" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod("20190909") , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod("20190909") , Nil })
aadd( aIntegra , { "EEQ_DTNEGO" , stod("20190909") , Nil })
aadd( aIntegra , { "EEQ_PGT" , stod("20190909") , Nil })
//aadd( aIntegra , { "EEQ_TX" , 3 , Nil })
//aadd( aIntegra , { "EEQ_EQVL" , 3*200 , Nil })
aadd( aIntegra , { "EEQ_BANC" , "B01" , Nil })
aadd( aIntegra , { "EEQ_AGEN" , "AG001" , Nil })
aadd( aIntegra , { "EEQ_NCON" , "CC00000001" , Nil })
aadd( aIntegra , { "EEQ_NROP" , "1" , Nil })
aadd( aIntegra , { "EEQ_RFBC" , "TR" , Nil })

nOpc := 99 // Opc para liquidar parcelas parcelas

Case alltrim(nRadio) $ "21" // liquida parcela vinculada à um contrato EFF

//21 - Deseja LIQUIDAR uma parcela de Câmbio a PAGAR vinculada à um contrato de financing?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "03" , Nil })
aadd( aIntegra , { "EEQ_DTCE" , stod("20190910") , Nil })
aadd( aIntegra , { "EEQ_SOL" , stod("20190910") , Nil })
aadd( aIntegra , { "EEQ_DTNEGO" , stod("20190910") , Nil })
aadd( aIntegra , { "EEQ_PGT" , stod("20190910") , Nil })
aadd( aIntegra , { "AUTENCERRACONTRA", "S" , Nil })

nOpc := 99 // Opc para liquidar parcela

Case alltrim(nRadio) $ "22" // estorna liquida liquidação da parcela vinculada à um contrato EFF

//22 - Deseja ESTORNAR O VINCULO de uma parcela de Câmbio a PAGAR de um contrato de financing?
//Cabeçalho do câmbio
aadd( aCab , { "EEC_FILIAL" , "01" , Nil })
aadd( aCab , { "EEC_PREEMB" , "DTRADE-2690-01" , Nil })
//Itens da parcela
aadd( aIntegra , { "EEQ_EVENT" , "101" , Nil })
aadd( aIntegra , { "EEQ_PREEMB" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_NRINVO" , "DTRADE-2690-01" , Nil })
aadd( aIntegra , { "EEQ_PARC" , "03" , Nil })
aadd( aIntegra , { "AUTMOTIVO" , "THE ZUEIRA NEVER ENDS" , Nil })

nOpc := 98 // Opc para estorno da liquidação

EndCase

if len(aCab) > 0
If EEC->( DbSetOrder(1) , DbSeek( avkey(acab[1][2] , "EEC_FILIAL" ) + avkey(acab[2][2] , "EEC_PREEMB" ) ))

MsExecAuto({|a,b,c,d| EECAF200(a,b,c,d) },aCab, 3, aIntegra, nOpc)

If lMsErroAuto
mostraerro()
Else
msgSTOP("Parcela atualizada com sucesso.","CAUTION")
endif

Else // se não encontrar o embarque
Alert("Embarque não encontrado")

EndIf
endif
Return

Static Function InitAmbiente()

//Inicializa o ambiente
RpcSetType(3)
RpcSetEnv("99", "01")
nModulo := 29
cModulo := "EEC"
__CUSERID := "000000"

Return

Static Function GetOpcRadio()
Local aRet := {}

//RECEBER
aAdd(aRet,"01 - Deseja LIQUIDAR uma parcela de Câmbio a RECEBER (Contrato de Câmbio)?")
aAdd(aRet,"02 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a RECEBER (Contrato de Câmbio) ?")
aAdd(aRet,"03 - Deseja ALTERAR uma parcela de Câmbio a RECEBER, realizando o Movimento no Exterior ?")
aAdd(aRet,"04 - Deseja BAIXAR uma parcela de Câmbio a RECEBER (Com Movimento no Exterior)?")
aAdd(aRet,"05 - Deseja LIQUIDAR uma parcela de Câmbio a RECEBER (Com Movimento no Exterior)?")
aAdd(aRet,"06 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a RECEBER (Com Movimento no Exterior) ?")
aAdd(aRet,"07 - Deseja ESTORNAR BAIXA de uma parcela de Câmbio a RECEBER (Com Movimento no Exterior) ?")
aAdd(aRet,"08 - Deseja ALTERAR uma parcela de Câmbio a RECEBER (Realizando Desdobramento da parcela) ?")
aAdd(aRet,"09 - Deseja EXCLUIR uma parcela de Câmbio a RECEBER (Parcela gerada por Desdobramento) ?")
aAdd(aRet,"10 - Deseja EXCLUIR uma parcela de Câmbio a RECEBER (Parcela gerada pelo Embarque, não deve remover a parcela) ?")

//PAGAR
aAdd(aRet,"11 - Deseja LIQUIDAR uma parcela de Câmbio a PAGAR (Contrato de Câmbio)?")
aAdd(aRet,"12 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a PAGAR (Contrato de Câmbio) ?")
aAdd(aRet,"13 - Deseja ALTERAR uma parcela de Câmbio a PAGAR (preparando para liquidar no exterior) ?")
aAdd(aRet,"14 - Deseja LIQUIDAR uma parcela de Câmbio a PAGAR, realizando o Movimento no Exterior ?")
aAdd(aRet,"15 - Deseja ESTORNAR LIQUIDAÇÃO de uma parcela de Câmbio a PAGAR (Com Movimento no Exterior) ?")
aAdd(aRet,"16 - Deseja ALTERAR uma parcela de Câmbio a PAGAR (Realizando o Desdobramento) ?")
aAdd(aRet,"17 - Deseja EXCLUIR uma parcela de Câmbio a PAGAR (Parcela gerada por Desdobramento) ?")
aAdd(aRet,"18 - Deseja EXCLUIR uma parcela de Câmbio a PAGAR (Parcela gerada pelo Embarque) ?")
aAdd(aRet,"19 - Deseja INCLUIR uma parcela de Câmbio ?")

//comissão
aAdd(aRet,"20 - Deseja LIQUIDAR uma parcela de Câmbio de comissão sem receber o título principal antes? (deve rejeitar o pagamento.)")

//contrato de financing
aAdd(aRet,"21 - Deseja LIQUIDAR uma parcela de Câmbio a vinculada à um contrato de financing?")
aAdd(aRet,"22 - Deseja ESTORNAR O VINCULO de uma parcela de Câmbio a PAGAR de um contrato de financing?")

Return aRet