Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Especificação | |||
Produto | Datasul | Módulo | Vendas, Compras e Armazenagem de Grãos |
Segmento Executor | Agroindústria | ||
Projeto1 | Integrar Originação de Grãos ao Sistema Externo Hedge Moeda 2a fase | IRM1 | AGROG01-5 |
Requisito1 | AGROG01-2 | Subtarefa1 | |
Chamado2 | |||
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
O projeto integração com Hedge moeda surgiu da necessidade de ter a garantia que de todos os processos de compra e venda (TradeSlip) de grãos terem seus valores (em reais) com hedges executados. Essa execução hoje é feita de forma manual e deverá ser feita automaticamente entre o Datasul e sistema hedge moeda do cliente para assegurar que as informações estejam iguais nos dois sistemas.
Esta 2ª fase compreende:
Cancelamento de Fixação através de Trade Slip, com opção de pagamento ou recebimento de Multa;
Baixa Hedge nos pagamentos;
Mudança de Execução;
Definição da Regra de Negócio
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
GG1014-Componentes de Preço | Alteração | Cadastros | - |
GG0103-Registro Negócios | Alteração | Tarefas | - |
GG0104-Monitor Hedge | Alteração | Tarefas | - |
GG0105-Baixa Hedge por Pagamento | Criação | Tarefas | - |
GG4013-Acompanhamento Diário Hedge Moeda | Criação | Relatório | - |
1) Cancelamento de Fixações
Objetivo: Permitir o cancelamento de fixações através da rotina de trade Slip. Esta opção será utilizada tanto para cancelamento de pequenas quantidades para quantidades mais expressivas, que poderá envolver uma Multa, caracterizando um Washout.
O cancelamento poderá ser utilizado para:
Considerações:
- Se o TS selecionado para cancelar estiver com situação Aprovação de Margem, Completar, ou Atualizado sem contrato, o tipo de cancelamento será Total. Neste caso vai cancelar todo o TS, a parte contratada e a parte fixada, não faz sentido cancelar parcial, se o processo está na metade, e não chegou a atualizar ainda o contrato. Quando terminar as aprovações do TS de Cancelamento, simplesmente atualiza o status do TS, sem fazer nada no contrato.
-Se o TS selecionado para cancelar, estiver com status Atualizado, já tiver contrato (ind-trade = novo, ind-motivo = fixação preço, tipo de preço Fixo), o usuário poderá selecionar em tela o tipo de cancelamento se Contrato ou Fixação. Essa é a única opção que o usuário poderá selecionar o tipo de cancelamento.
-Se o TS selecionado para cancelar, estiver com status Atualizado, já tiver contrato, ind-trade = fixação, o tipo de cancelamento será sempre = Fixação.
- Se tiver fixação no TS a ser cancelado, verificar no contrato o saldo que permite cancelar, como exemplo no compras:
Ler gg-contrato-pre, com ep-codigo, contrato, num-seq = gg-negocio.num-seq-pre, e poderá cancelar: gg-contrato-pre.qtd-fixada – gg-contrato-pre.qtd-paga – gg-contrato-pre.qtd-alocada-fechto.
- Se for um TS de fixação de componente, verificar no contrato o saldo de cada componente que permite cancelar: gg-contrato-fixacao.qtd-fixada – gg-contrato-fixação.qtd-alocada.
- Se não tiver quantidade para cancelar, apresentar mensagem de bloqueio e não permitir. Essa validação pode ser na API da confirmação dos dados principais do TS de cancelamento (ggapi034/ggapi035).
- Se for um cancelamento Total, então ver a quantidade do contrato, caso tenha contrato: gg-contrato.qtd-contrato – gg-contrato.qtd-entrega.
Nas API's de confirmação do TS, antes de passar das temp-table's para as tabelas do banco, efetuar validações destas quantidades, pois o usuário em tela poderá alterar, e logo pode acabar informando uma quantidade maior que o saldo disponível a cancelar ou mesmo zero, que não faz sentido o cancelamento.
- Trazer do TS relacionado ao cancelamento e não permitir alterar.
- Também não poderá alterar os dados do TS, datas, nada. Somente poderá alterar no TS, os campos específicos do cancelamento, e data do trade slip.
- Deve buscar os componentes válidos para o TS, como se fosse fazer um novo TS, trazendo também os componentes do TS original (pode acontecer de algum componente estar inativo, porém precisa ser de qualquer forma cancelado), porém buscar mais os componentes marcados como Multa no gg1014.
- O TS de cancelamento deve ter apenas qtd-a-fixar, e val-a-fixar, não usar os campos qtd-fixada, e val-fixada, mesmo que o TS original selecionado tenha componente com qtd-fixada. Poderá ter valor fixado, caso no ts a ser cancelado tenha feito alocação em fixação de componente.
- Poderão ter um ou mais componentes do tipo Multa, e cada componente poderá está ligado a uma espécie/conta do APB ou ACR.
- No cadastro gg1014, um componente do tipo Multa não pode estar ligado a uma espécie ACR e APB ao mesmo tempo. Ou pode ser informado dados para geração no contas a receber, ou no módulo de contas a pagar.
- exemplo de cadastro de Multa: MULTA RECEBER, MULTA PAGAR.
Contabilização do Movimento de implantação do título de Multa no módulo de Contas a Pagar:
CR - Conta Saldo informada para espécie (Esp APB) e grupo cliente
DB - Conta informada Multa Washout APB (GG1014)
Exemplo cadastro Conta Saldo Espécie e Grupo Fornecedor:
Contabilização do Movimento de implantação do título de Multa no módulo de Contas a Receber:
DB - Conta informada Multa Washout ACR (GG1014)
CR - Conta Saldo informada para espécie (Esp ACR) e grupo fornecedor
Exemplo cadastro Conta Saldo Espécie e Grupo Cliente:
- Componente Multa, não terá um tratamento ou cálculo automático, seguirá a parametrização do cadastro, podendo ser tabelado ou não, ou ainda ter um programa específico de cálculo relacionado. O programa específico de cálculo poderá ser desenvolvido pelo cliente em progress, e compilado na versão do ERP para execução. É liberado o código fonte do programa de exemplo.
- Ao digitar o TS de cancelamento, terá solicitação de pré-taxa, nos mesmos moldes de um TS novo ou fixação.
- Após aprovar um TS pendente de cancelamento, deve criar a tabela gg-hedge-mov, com transação Baixa por Cancelamento, relacionado ao gg-hedge do TS original relacionado, para cada componente e valor que estiver no TS de cancelamento. Deve gravar na gg-hedge-mov, em um campo livre, o TS e a versão do TS de cancelamento. Deve verificar se o movimento de hedge possui saldo, e criar a baixa apenas para quando tiver saldo.
- Criando os registros gg-hedge-mov, irá para o sistema externo hedge moeda cliente as baixas/reversões informando o componente, valor e boleto.
- Caso tiver multa, deverá criar uma solicitação de hedge ao sistema externo hedge moeda cliente da Multa, no layout de createHedge.
- No retorno da baixa do sistema externo hedge moeda cliente, deve ler o TS de cancelamento (pelo campo livre que gravou qual o TS do cancelamento), e atualizar neste TS de cancelamento as taxas.
- No retorno da Multa, atualizar a taxa no TS para o componente.
- Após confirmar retorno das baixas e da Multa, calcular a margem deste TS de cancelamento. Ou seja, o retorno da taxa no TS de cancelamento, mais a taxa da multa, deverá ser usada para recalcular a margem do ts de cancelamento.
- Um TS de cancelamento sofrerá aprovação Margem da mesma forma.
- Quando for efetuar a atualização no contrato, após as aprovações, deve cancelar a quantidade contratada (conforme o caso, e criando movimento gg-contrato-mov), diminuir a quantidade da fixação de preço(gg-contrato-pre) e diminuir a fixação de componente (gg-contrato-fixacao).
- Incluir na i01gg040.i uma transsação para o campo gg-contrato-mov.ind-trasacao .
22 - Multa Cancelamento
Esta transação de cancelamento será gerada no TS de cancelamento, após sua confirmação, bem como o titulo para pagamento ou cobrança.
- Caso tiver componente de multa, verificar se no cadastro de componente tem parametrização de Espécie, Série, Conta no gg1014 para APB, e gerar um titulo no contas a pagar, ou ACR, gerando também no gg-contrato-mov, um movimento para guardar o ID deste titulo gerado. Este titulo deve ficar relacionado ao contrato (gg-ext-tit-ap) e também na própria tit_ap, nos campos novos de contrato e safra que o financeiro possui.
- Ajustar Detalhes do contrato, no gg1001b/gg1091, para mostrar o novo tipo de transação (gg-contrato-mov.ind-transacao) que será usado para o titulo de multa. Também vendas gg1091.
- Na linha do componente de multa, incluir menu para acesso a consulta do titulo financeiro:
Consulta do contrato após cancelamento:
2) GG0105 - Baixa Hedge por Pagamento
Objetivo: Permitir efetuar a baixa de Hedge Moeda pela programação de pagamentos e recebimentos no financeiro.
Tabelas Utilizadas:
Considerações:
Baixas Controladas através dos Títulos:
Para cada tipo de título é necessário parametrizar na rotina de Baixa Hedge por Pagamento, qual componente de preço que tem o Boleto de Hedge para baixar, e qual espécie de título:
Exemplo:
Importante: para cada tipo, o melhor é ter uma espécie de título específica para o caso, pois isso trará maior segurança e performance. Caso não seja possível, também será feita a pesquisa, porém pode perder em performance.
Lay Out:
Poderá incluir, excluir e alterar.
Campos:
Espécie: validar que seja uma válida no financeiro (exemplo gg1005, gg1014), colocar descrição.
Componente: validar que esteja na tabela gg-comp-preco, colocar pesquisa, e descrição ao lado (exemplo gg1014).
Tipo Pagto: solicitar uma das opções abaixo:
01- Fatura Rodoviária
02- Fatura Ferroviária
03- Nota Fiscal Fobbings
04- Pagamento Contrato Compra
05- Adiantamento Contrato Compra
06- Impostos Retidos Compra /* fatura geradas pelos impostos:Funrual, Facs, Fethab, Fundersul*/
07- Multa Receber Contrato Compra
08- Multa Pagar Contrato Compra
09- Cobrança Contrato Vendas
10- Nota Fiscal Global Entrega Futura
11- Fatura Hidroviária
Depois que solicitar, salvar na tabela gg-parâmetros, onde:
gg-parametros.CodParam = GG0105 + sequencial Exemplo: GG01050001
gg-parametros.paramValue = espécie
gg-parametros.char-1 = componente
gg-parametros.char-2 = tipo pagamento
Este botão é para fazer a carrega dos dados da tela, conforme filtro.
Criar uma procedure no ggp701za ou ggp702za, onde recebe os parâmetros da seleção e as espécies dos parâmetros.
Deve retornar:
- temp-table com os títulos encontrados
- temp-table com os títulos originais, em caso de ser um título substituído.
Deve pesquisar da tit_ap
For each estabelecimento considerar seleção inicial a final
And cod_empresa = variável global empresa logada:
for each tt-param-espec
where tt-param-espc.cod-esp conforme selecao
and tt-param-espc.tipo-pagto <> 8:
for each tit_ap
Where cod-estab = estabelecimento.cod_estab
And cod_espec_docto = tt-param-espec.cod-esp
And log_inter_cfl_atlzdo = yes
And dat_prev_pagto >= data inicial selecao
And dat_prev_pagto <= data final selecao
And cod_fornec conforme seleção
And val_sdo_tit_ap > 0
Retornar em uma temp-table
Modulo = “APB”
Cod_tit_ap
Cod_espec_docto
Cod_ser_docto
Cod_estab
Parcela
Dat_prev_pagto
Dat_transacao
Cdn_fornec
Cod_indic_econ /* traduzir para moeda do ems2, mas guardar em temp-table para que a cada título não seja necessário traduzir novamente, assim ganha-se performance */
Val_sdo_tit_ap
Num_id_tit_ap
tit_ap.ind_origin_tit_ap
Log-subst = flag na tt de retorno para identificar que teve substituição.
Caso ter substituição, criar outra tt para retorno com os títulos que deram origem a este titulo novo.
Para saber se o titulo teve origem numa substituição:
If tit_ap.ind_origin_tit_ap = “APB”
and can-FIND(FIRST movto_tit_ap OF tit_ap NO-Lock
where movto_tit_ap.ind_trans_ap_abrev = “SBND”)
Para ler as origens do titulo substituído:
for each estabelecimento no-lock
where estabelecimento.cod_empresa = v_cod_empres_usuar:
for each movto_tit_ap no-lock
where movto_tit_ap.cod_estab = estabelecimento.cod_estab
and movto_tit_ap.cod_refer = tit_ap.cod_refer
and movto_tit_ap.num_id_tit_ap <> tit_ap.num_id_tit_ap
and movto_tit_ap.ind_trans_ap_abrev = "BXSB":
find b_tit_ap no-lock
where b_tit_ap.num_id_tit_ap = movto_tit_ap.num_id_tit_ap
and b_tit_ap.cod_estab = movto_tit_ap.cod_estab no-error.
Deve pesquisar da tit_acr
For each estabelecimento considerar seleção inicial a final
And cod_empresa = variável global empresa logada:
for each tt-param-espec
where tt-param-espc.cod-esp conforme selecao
and tt-param-espc.tipo-pagto = 8:
for each tit_acr
Where cod_estab = estabelecimento.cod_estab
And cod_espec_docto = tt-param-espec.cod-esp
And log_inter_cfl_atlzdo = yes
And dat_fluxo_tit_acr >= data inicial selecao
And dat_fluxo_tit_acr <= data final selecao
And cod_fornec conforme seleção
And val_sdo_tit_acr > 0
Retornar em uma temp-table
Modulo = “ACR”
Cod_tit_acr
Cod_espec_docto
Cod_ser_docto
Cod_estab
Parcela
Dat_fluxo_tit_acr
Dat_transacao
Cdn_cliente
Cod_indic_econ /* traduzir para moeda do ems2, mas guardar em temp-table para que a cada título não seja necessário traduzir novamente, assim ganha-se performance */
Val_sdo_tit_acr
Num_id_tit_acr
tit_ap.ind_origin_tit_acr
Log-subst = flag na tt de retorno para identificar que teve substituição.
Caso ter substituição, criar outra tt para retorno com os títulos que deram origem a este titulo novo, assim como no contas a pagar.
Para saber se o titulo teve origem numa substituição:
If tit_ap.ind_origin_tit_acr = “ACR” and
Can-FIND(FIRST movto_tit_acr OF tit_acr NO-Lock
where movto_tit_acr.ind_trans_abrev = “SBND”)
Para ler as origens do titulo substituído:
/* Procura as Notas da Duplicata */
for each movto_tit_acr no-lock
where movto_tit_acr.cod_estab = tit_acr.cod_estab
and movto_tit_acr.cod_refer = tit_acr.cod_refer
and movto_tit_acr.num_id_tit_acr <> tit_acr.num_id_tit_acr
and movto_tit_acr.ind_trans_acr_abrev = "BXSB" :
find first b_tit_acr no-lock
where b_tit_acr.num_id_tit_acr = movto_tit_acr.num_id_tit_acr
and b_tit_acr.cod_estab = movto_tit_acr.cod_estab no-error.
Exemplos de pesquisas no financeiro:pi_consult_tit_acr_aberto / ggp702za e pi_ggp_retornar_titulos_em_aberto ggp701za.
Após retornar do financeiro, para cada titulo a ser pago ou cobrado verificar se já foi realizada a baixa do hedge:
Se for APB:
Assign i-modul = 1 /* compras*/
Else
Assign i-modul = 2 /* vendas */
If can-find(first gg-hedge-mov no-lock
Where gg-hegge-mov.nro-docto = tt-titulo.cod-tit
And gg-hedge-mov.serie-docto = tt-titulo.cod-ser-docto
And gg-hedge-mov.cod-emitente = tt-titulo.cod-emitente
And gg-hedge-mov.cod-estabel = tt-titulo.cod-estabel
And gg-hedge-mov.cod-esp = tt-titulo.cod-esp
And gg-hedge-mov.parcela = tt-titulo.parcela
And gg-hedge-mov.idi-modul = i-modul) then next. /* desconsiderar pois já atualizou a baixa de hedge */
Conforme o tipo da espécie, deve ser efetuada pesquisa no hedge, para popular uma temp-table tt-hedge-mov, que deve estar relacionada ao titulo (modulo+ cod-estabel+ num-id-tit).
Tipo 4 Pagamento Contrato Compra:
Os pagamentos registrados no Fechamento Financeiro (GG8000), que tiverem Hedge de Produto, serão baixados do Boleto relacionado ao Trade Slip no contrato.
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso do pagamento contrato compra, será a espécie de previsão.
PROCEDURE piOrigemPagtoGraos:
/* verificar nos pagamentos do fechamento */
FIND FIRST gg-fecha-pagto-tit NO-LOCK
WHERE gg-fecha-pagto-tit.cod-modul-dtsul = "APB":U
AND gg-fecha-pagto-tit.cod-estab = tt-tit-ap.cod-estab
AND gg-fecha-pagto-tit.num-id-tit = tt-tit-ap.num-id-tit-ap NO-ERROR.
IF AVAIL gg-fecha-pagto-tit THEN DO:
ASSIGN l-encontrou = YES. /* se encontrou o pagamento entÆo considera-se que ‚ deste tipo, porque pode nÆo encontrar a origem, se for em dolar */
IF tt-tit-ap.moeda = 0 /* moeda corrente */ THEN DO:
ASSIGN de-val-baixar = tt-tit-ap.valor-saldo.
/* VERIFICAR O TITULO DE PREVISAO RELACIONADO */
FOR FIRST gg-fecha-contrat-pagto NO-LOCK OF gg-fecha-pagto-tit:
FOR FIRST gg-fecha-contrat NO-LOCK OF gg-fecha-contrat-pagto:
b-fix-fechto:
FOR each gg-fecha-contrat-pre NO-LOCK OF gg-fecha-contrat:
FOR EACH gg-hedge NO-LOCK
WHERE gg-hedge.ep-codigo = gg-fecha-contrat-pre.ep-codigo
AND gg-hedge.num-trad-slip = gg-fecha-contrat-pre.num-trad-slip
AND gg-hedge.num-vers = gg-fecha-contrat-pre.num-vers
AND gg-hedge.idi-modul = 1 /* compras*/
AND gg-hedge.cod-comp = gg-parametros.char-1
AND gg-hedge.log-saldo = YES
AND gg-hedge.ind-situacao = 4 /* confirmado */
BY gg-hedge.dat-hedge: /* mais antiga */
Tipo 5 Adiantamento Contrato Compra:
Os adiantamentos registrados no contrato de compra, que tiverem Hedge de Produto, serão baixados do Boleto relacionado ao Trade Slip no contrato.
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso do adiantamento em Valor, em contratos de compras, será a espécie de previsão.
Os adiantamentos são registrados no detalhe do contrato de compras (GG1001b):
PROCEDURE piOrigemPagtoAdtoGraos:
/* encontrar o adiantamento no contrato */
For FIRST gg-contrato-ant NO-LOCK
WHERE gg-contrato-ant.cod-estabel = tt-tit-ap.cod-estab
AND gg-contrato-ant.num-id-tit-gerado = tt-tit-ap.num-id-tit-ap:
ASSIGN l-encontrou = YES. /* se encontrou o adiantamento então considera-se que ‚ deste tipo, porque pode não encontrar a origem, se for em dolar */
IF tt-tit-ap.moeda = 0 /* moeda corrente */ THEN DO:
ASSIGN de-val-baixar = tt-tit-ap.valor-saldo.
b-ant-ctr:
FOR EACH gg-contrat-pre-cotac NO-LOCK
WHERE gg-contrat-pre-cotac.ep-codigo = gg-contrato-ant.ep-codigo
AND gg-contrat-pre-cotac.cod-contrato = gg-contratoa-nt.cod-contrato
AND gg-contrat-pre-cotac.num-seq-pre = gg-contrato-ant.num-seq:
FOR EACH gg-hedge NO-LOCK
WHERE gg-hedge.ep-codigo = gg-contrat-pre-cotac.ep-codigo
AND gg-hedge.num-trad-slip = gg-contrat-pre-cotac.num-livre-1
AND gg-hedge.num-vers = gg-contrat-pre-cotac.num-livre-2
AND gg-hedge.idi-modul = 1 /* compras*/
AND gg-hedge.cod-comp = gg-parametros.char-1
AND gg-hedge.log-saldo = YES
AND gg-hedge.ind-situacao = 4 /* confirmado */
BY gg-hedge.dat-hedge: /* mais antiga */
Tipo 6 Impostos Retidos Compra:
As faturas referentes impostos retidos, geradas por substituição no Contas a Pagar, vinculados a contrato de compra, que tiverem Hedge de Produto, serão baixados do Boleto relacionado ao Trade Slip no contrato.
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso de faturas referente impostos retidos, em contratos de compras, será a espécie utilizada na geração da fatura.
Os títulos de impostos são gerados no módulo de contas a pagar a partir das notas fiscais relacionadas a compra, que podem ser:
Ao chegar próximo ao vencimento dos títulos de impostos retidos (Funrural, Facs, Fethab, Fundersul), é feito o registro da fatura no módulo de contas a pagar.
PROCEDURE piOrigemImptoGraos:
IF ttTitulosEncontrados.codModul = "APB" THEN DO:
/* encontrar os titulos originais dos impostos */
FOR EACH ttTitulosSubsEncontr
WHERE ttTitulosSubsEncontr.codModul = "APB"
AND ttTitulosSubsEncontr.codEstabelPai = ttTitulosEncontrados.codEstabel
AND ttTitulosSubsEncontr.numIdTituloPai = ttTitulosEncontrados.numIdTitulo:
IF ttTitulosSubsEncontr.ind_tip_espec_docto = "Imposto Retido":U THEN DO:
/* buscar o titulo original relacionado */
ASSIGN l-encontrou = YES. /* se encontrou o adiantamento então considera-se que ‚ deste tipo, porque pode não encontrar a origem, se for em dolar */
ASSIGN de-val-baixar = ttTitulosSubsEncontr.valSdoTitulo /* valor da parte substituida do titulo original */
/* Procura pelos movimentos de Impostos Geradores */
b-origem-impto:
FOR each compl_impto_retid_ap no-lock
where compl_impto_retid_ap.num_id_tit_ap = tit_ap.num_id_tit_ap
and compl_impto_retid_ap.cod_estab = tit_ap.cod_estab:
find first b_movto_tit_ap no-lock
where b_movto_tit_ap.cod_estab = compl_impto_retid_ap.cod_estab
and b_movto_tit_ap.num_id_movto_tit_ap = compl_impto_retid_ap.num_id_movto_tit_ap_pai no-error.
if avail b_movto_tit_ap then do:
find b_tit_ap no-lock
where b_tit_ap.cod_estab = b_movto_tit_ap.cod_estab
and b_tit_ap.num_id_tit_ap = b_movto_tit_ap.num_id_tit_ap no-error.
IF AVAIL b_tit_ap THEN DO:
/* procurar o titulo da entrega no contrato */
ASSIGN l-entr-ctr = NO.
FOR EACH gg-contrato-mov NO-LOCK
WHERE gg-contrato-mov.cod-estabel = b_tit_ap.cod_estab
AND gg-contrato-mov.num-id-tit-ap = b_tit_ap.num_id_tit_ap
AND gg-contrato-mov.ind-transacao = 1: /* entrega*/
ASSIGN l-entr-ctr = YES.
/* procurar as fixa‡äes do contrato */
FOR EACH gg-contrato-pre NO-LOCK
WHERE gg-contrato-pre.ep-codigo = gg-contrato-mov.ep-codigo
AND gg-contrato-pre.cod-contrato = gg-contrato-mov.cod-contrato:
FOR EACH gg-hedge NO-LOCK
WHERE gg-hedge.ep-codigo = gg-contrato-pre.ep-codigo
AND gg-hedge.num-trad-slip = gg-contrato-pre.num-trade-slip
AND gg-hedge.num-vers = gg-contrato-pre.num-versao
AND gg-hedge.idi-modul = 1 /* compras*/
AND gg-hedge.cod-comp = gg-parametros.char-1
AND gg-hedge.log-saldo = YES
AND gg-hedge.ind-situacao = 4 /* confirmado */
BY gg-hedge.dat-hedge: /* mais antiga */
Tipo 2 Fatura Ferroviária:
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso de fatura de Frete Ferro, será a espécie da fatura gerada.
procedure piOrigemFreteFerro:
Ferro:
Fatura gera... ESLG2122, log-ope-vagao-nf, para cada registro da log-ope-ferroviaria, tamb‚m com CF, e o financeiro gera uma fatura/substituição gerando uma RF.
Será verificado até o 1º nível, não poderá ser feito substituição da substituição.
Sequencia de leitura:
- tit-ap
- relacionamento substitui‡Æo
- log-ope-ferroviaria
- log-ope-vagao-nf
- log-ope-operacao
- se for fob tem o contrato na OL, se não for ler tabela de relacionamento com contratos cif.
Tipo 1 Fatura Rodoviária:
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso de fatura de Frete Rodo, será a espécie da fatura gerada.
procedure piOrigemFreteRodo:
Rodo:
Fatura gera...ESLG2000, substituição de títulos, com espécie CF e que seja um titulo gerado por substituição. Log-ope-ctrc-terc.
Verificar para usar uma espécie diferente, exemplo FF.
A busca ser restrita a um nível.
Sequencia de leitura:
- tit-ap
- relacionamento substituição
- log-ope-ctrc-terc
- log-ope-operacao
- se for fob tem o contrato na OL, se não for ler tabela de relacionamento com contratos cif.
Tipo 7 e 8 Multa Receber e Pagar Contrato Compra:
As Multas registradas nos Trade Slips de Cancelamento (GG0103), que tiverem Hedge, serão baixadas do Boleto relacionado ao Trade Slip do contrato.
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso da Multa, será a espécie informada no cadastro do componente de preço.
PROCEDURE piOrigemMulta:
IF ttTitulosEncontrados.codModul = "APB" THEN DO:
FIND FIRST gg-ext-tit-ap NO-LOCK
WHERE gg-ext-tit-ap.cod-estab = ttTitulosEncontrados.codEstabel
AND gg-ext-tit-ap.num-id-tit-ap = ttTitulosEncontrados.numIdTitulo NO-ERROR.
IF AVAIL gg-ext-tit-ap AND gg-ext-tit-ap.cod-contrato <> "" THEN DO:
ASSIGN de-val-baixar = ttTitulosEncontrados.valSdoTitulo. /* valor da parte substituida do titulo original */
FOR first gg-contrato-mov NO-LOCK
WHERE gg-contrato-mov.cod-estabel = gg-ext-tit-ap.cod-estab
AND gg-contrato-mov.num-id-tit-ap = gg-ext-tit-ap.num-id-tit-ap
AND gg-contrato-mov.ind-transacao = 22: /* multa cancelamento ???? verificar se vai ficar este número mesmo */
ASSIGN l-encontrou = YES. /* se encontrou o adiantamento então considera-se que ‚ deste tipo, porque pode não encontrar a origem, se for em dolar */
b-origem-multaApb:
FOR EACH gg-hedge NO-LOCK
WHERE gg-hedge.ep-codigo = gg-contrato-mov.ep-codigo
AND gg-hedge.num-trad-slip = gg-contrato-mov.num-trade-slip
AND gg-hedge.num-vers = gg-contrato-mov.num-versao
AND gg-hedge.idi-modul = 1 /* compras*/
AND gg-hedge.cod-comp = gg-parametros.char-1 /* componente da espécie */
AND gg-hedge.log-saldo = YES
AND gg-hedge.ind-situacao = 4 /* confirmado */
BY gg-hedge.dat-hedge: /* mais antiga */
ELSE DO:
FIND FIRST gg-ext-titulo NO-LOCK
WHERE gg-ext-titulo.cod-estab = ttTitulosEncontrados.codEstabel
AND gg-ext-titulo.num-id-tit-ap = ttTitulosEncontrados.numIdTitulo NO-ERROR.
IF AVAIL gg-ext-titulo AND gg-ext-titulo.cod-contrato <> "" THEN DO:
ASSIGN de-val-baixar = ttTitulosEncontrados.valSdoTitulo. /* valor da parte substituida do titulo original */
FOR first gg-contrato-mov NO-LOCK
WHERE gg-contrato-mov.cod-estabel = gg-ext-titulo.cod-estab
AND gg-contrato-mov.num-id-tit-ap = gg-ext-titulo.num-id-titulo
AND gg-contrato-mov.ind-transacao = 22: /* multa cancelamento ???? verificar se vai ficar este número mesmo */
ASSIGN l-encontrou = YES. /* se encontrou o adiantamento então considera-se que ‚ deste tipo, porque pode não encontrar a origem, se for em dolar */
b-origem-multaAcr:
FOR EACH gg-hedge NO-LOCK
WHERE gg-hedge.ep-codigo = gg-contrato-mov.ep-codigo
AND gg-hedge.num-trad-slip = gg-contrato-mov.num-trade-slip
AND gg-hedge.num-vers = gg-contrato-mov.num-versao
AND gg-hedge.idi-modul = 1 /* compras*/
AND gg-hedge.cod-comp = gg-parametros.char-1 /* componente da espécie */
AND gg-hedge.log-saldo = YES
AND gg-hedge.ind-situacao = 4 /* confirmado */
BY gg-hedge.dat-hedge: /* mais antiga */
Tipo 3 Nota Fiscal Fobbings:
Os títulos com origem em notas fiscais referente serviços de Elevação, que tiverem Hedge, serão baixados do Boleto relacionado ao Trade Slip nos contratos com saldo deste tipo de componente de preço.
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso do pagamento Elevação, será a espécie do título gerado através da nota fiscal emitida pelo fornecedor do serviço.
Além do parâmetro da espécie e componente, será necessário vincular os fornecedores de serviços de elevação a um porto:
Esta informação do porto vinculado ao fornecedor é importante para a busca dos saldos de Hedge de elevação para efetuar a baixa/reversão.
Critérios da busca dos contratos com Boletos de Elevação que tenham saldo:
As notas de serviço de Elevação podem ser digitadas no Recebimento (RE1001):
Após confirmar e atualizar o documento fiscal no recebimento, o título referente ao pagamento é atualizado no financeiro Contas a Pagar.
PROCEDURE piOrigemFobbings:
IF ttTitulosEncontrados.codModul = "APB" THEN DO:
FOR first gg-ext-emitente NO-LOCK
WHERE gg-ext-emitente.cod-emitente = ttTitulosEncontrados.cdnFornecedor:
/* fornecedor relacionado a um porto entÆo ‚ fobbings */
IF gg-ext-emitente.int-1 <> 0 THEN DO:
ASSIGN l-encontrou = YES. /* se encontrou o adiantamento entÆo considera-se que ‚ deste tipo, porque pode nÆo encontrar a origem, se for em dolar */
ASSIGN de-val-baixar = ttTitulosEncontrados.valSdoTitulo. /* valor da parte substituida do titulo original */
b-origem-fobb:
FOR EACH gg-hedge NO-LOCK
WHERE gg-hedge.cod-comp = gg-parametros.char-1 /* componente da esp‚cie */
AND gg-hedge.log-sdo = YES
AND gg-hedge.num-livre-2 = gg-ext-emitente.int-1 /* cod-porto relacionado ao fornecedor da nota fiscal */
AND gg-hedge.idi-modul = 1 /* compras*/
AND gg-hedge.ind-situacao = 4 /* confirmado */,
BY gg-hedge.dat-hedge: /* mais antiga */
- Baixa Pagamentos Fobbings, buscar somente os contratos que já tiveram entrega, não pode buscar contrato que não tenha nenhuma entrega.
Se for compras:
If not can-find( First gg-contrato no-lock
Where gg-contrato.ep-codigo = gg-hedge.ep-codigo
And gg-contrato.cod-contrato = gg-hedge.cod-contrato
And gg-contrato.qtd-entrega > 0) then next.
Se for vendas:
If not can-find( First gg-contrato-prod no-lock
Where gg-contrato-prod.ep-codigo = gg-hedge.ep-codigo
And gg-contrato-prod.cod-contrato = gg-hedge.cod-contrato
And gg-contrato-prod.qtd-entrega > 0) then next.
Tipo 9 Nota Fiscal Entrega Futura:
Os títulos com origem em notas fiscais referente compra global para entrega via remessa futura, que tiverem Hedge, serão baixados do Boleto relacionado ao Trade Slip no contrato relacionado a esta nota fiscal.
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título. No caso do pagamento da compra global, será a espécie do título gerado através da nota fiscal.
A nota global da compra para remessa futura é digitada no recebimento (RE1001). Importante que ao digitar esta nota no recebimento, seja informado junto ao item da nota, o contrato de compra originação que se refere esta nota fiscal.
Após confirmar e atualizar o documento fiscal no recebimento, o título referente ao pagamento é atualizado no financeiro Contas a Pagar.
Tipo 10 cobrança contrato vendas:
A cobrança do contrato de vendas é efetuada através dos títulos gerados no faturamento dos pedidos (FT4001/FT4002/FT4003/GG2000) ou na programação de cobrança (GG2035).
Para que seja executada a rotina para este tipo de pagamento, é necessário parametrizar (GG0105, botão parâmetros) qual componente de preço que possui Boletos de hedge e qual espécie de título.
Após acontecer o faturamento, os títulos são gerados no financeiro, contas a receber.
Após encontrar o hedge, então listar os dados na tela, no 2º browser.
Trader todos tt-hedge-mov, referente ao título a ser pago, que estiver selecionado no 1º browser:
Cod-contrato
Num-trade-slip /* like gg-hedge.num-trade-slip */
Num-versao /* like gg-hedge.num-versao */
tt-hedge-mov.val-movto FORMAT "->>>,>>>,>>9.9999" LABEL "Val Movto"
tt-hedge-mov.val-pagto FORMAT "->>>,>>>,>>9.9999" LABEL "Val Pagto"
tt-hedge-mov.num-boleto
tt-hedge-mov.dat-mov FORMAT "99/99/9999" LABEL "Data Movimento"
tt-hedge-mov.qtd-movto FORMAT "->>>,>>>,>>9.9999" LABEL "Qdt Mov"
tt-hedge-mov.cod-estabel FORMAT "x(5)" LABEL "Estabelecimento"
tt-hedge-mov.cod-esp FORMAT "x(2)" LABEL "Esp"
tt-hedge-mov.serie-docto FORMAT "x(5)" LABEL "Série"
tt-hedge-mov.nro-docto FORMAT "x(16)" LABEL "Nro Docto"
tt-hedge-mov.cod-emitente FORMAT ">>>>>>>>9" LABEL "Emitente"
tt-hedge-mov.it-codigo FORMAT "x(16)" LABEL "Item"
tt-hedge-mov.cod-parcela FORMAT "x(02)" LABEL "Parcela"
tt-hedge-mov.num-id-hedge FORMAT ">>>>>>>>>9" LABEL "Num id"
O usuário poderá selecionar um ou mais registros, e para cada selecionado, chamar um API para efetuar a gravação dos registros de movimentos de baixa de hedge.
Esta api deve prever retorno de erros.
As baixas podem ser programadas para executar diariamente em servidor de rpw (Batch).
Chamar programa GG0105T, que é um programa novo a ser criado em template de relatório. Não necessário passar parâmetros.
Criar Novo programa GG0105T.
Conforme seleção e Parâmetros deve efetuar pesquisa dos títulos no ACR e APB e efetuar a atualização, bem como listar relatório do que foi possível atualizar e o que não foi possível, por não localizar os hedges.
Para a data, calcular today + número de dias informado em tela.
Na tela de Baixa por pagamentos (GG0105) tem atalho para o programa que pode ser executado em Batch (GG0105T):
Nota: Em parâmetros é importante indicar a quantidade de dias para busca dos títulos a vencer. No exemplo abaixo está indicando dois dias, ou seja, sempre que for executado será considerado o vencimento da data atual + 2 dias.
Após a execução, é gerado um relatório do que foi efetuada a reversão, bem como erros retornados da tentativa de chamar a integração com sistema externo hedge de moeda, caso utilizar integração automática.
Precisa ajustar a appc que temos no cadastro de clientes CD0401 e também a mesma viewer é usada no CD0704.
DE:
PARA:
- Mudar o nome da pasta.
- Alguns campos foram retirados da tela, pois não são usados e conflitam com outros.
- Ajustado os retângulos
- Incluso novo campo Porto, que não é obrigatório, passa com 0 (zero) ou precisa estar cadastrada na gg-porto-base, mostrar descrição ao lado, e pesquisa.
- Gravar novo campo em gg-ext-emitente. Int-1 /* conferir se não está sendo usado, pela pesquisa que eu fiz não está */
3) Baixa Manual (GG0104)
Objetivo: Permitir efetuar a baixa de Hedge Moeda de forma Manual, ou seja, quando não for possível através dos pagamentos (gg0105).
Tabelas Utilizadas:
Considerações:
No gg0104, uma opção para selecionar os gg-hedge (seleção múltipla), e efetuar a baixa manual do hedge.
Sendo assim teremos as opções de baixa:
Estes tipos acima devem estar no campo transação que tem na gg-hedge-mov.
Para fazer a baixa manual, então será filtrado os gg-hedge que tenham saldo, e pode ser feito seleção múltipla, mas todos devem ter o mesmo componente. No filtro, vai ter a opção de filtrar só componente frete, por exemplo (inicial a final) e assim só serão listados gg-hedge que tenham saldo e que sejam do componente frete. Isso acho que já até tínhamos falado.
No gg0104, o usuário vai selecionar um ou mais registros da gg-hedge-mov, e vai clicar em um botão, onde será solicitado: data da baixa, valor total, e um texto para histórico, sendo que vai trazer a data do dia como default e o valor total de saldo dos registros selecionados como default. A data não pode ser futura, e o valor informado não pode ser zero e não pode ser maior que o saldo.
Ao confirmar, gerar gg-hedge-mov com transação manual para os registros, efetuando um fifo (data vencimento do hedge) até chegar no valor informado em tela. Gerar histórico no TS (gg-negocio-hist) com o texto informado.
Esses registros gg-hedge-mov, vão então para o sistema externo hedge moeda cliente, solicitando a baixa/reversão.
Com isso, eles podem efetuar baixas das sobras, e também de outros componentes novos que venham a criar e que não estejam previstos no GG0105.
4) Relatório Acompanhamento Diário Hedge Moeda (GG4103):
Objetivo: Demonstrar as informações diárias de movimentações dos negócios efetuados que tenham Hedge de Moeda. Este relatório terá apenas a opção de exportação para planilha, pois há grande quantidade de colunas.
Tabelas Principais Utilizadas:
Considerações:
Seleção:
Item: Inicial a final
Estabelecimento: Inicial a Final
Safra: inicial a final
Estado:
Trade Slip: Inicial a Final
Contrato: Inicial a final
Componente: Inicial a final
Finalidade: Inicial a Final /* monstar combo-box idem filtro gg0103 */
Data Negoc: Inicial a Final
Data Vencto: Inicial a Final
Data Movimentação: Inicial a Final
Parâmetros:
Tipo de Contrato:
Situação Trade Slip:
Obs.: Cancelados pode retirar dos parâmetros, tela acima apenas para exemplo.
Dt Mov-> data do movimento
=> Este campo deve conter a informação da data que ocorreu o evento, conforme a busca das movimentações. Exemplo: data da criação do trade slip, data do retorno da confirmação do hedge moeda, data do cancelamento, data do pagamento, data da rolagem.
Hr Mov-> hora do movimento
=> Este campo deve conter a informação da hora que ocorreu o evento, conforme a busca das movimentações.
St TS-> Situação do Trade Slip
=> Gg-negocio.ind-situacao ou gg-negocio-vmi-ind-situacao
Componente-> código do componente de preço
=> Gg-negocio-comp.cod-comp ou gg-negocio-vmi.cod-comp
Ação-> Qual ação ocorreu na Movimentação, será um campo tratado para o relatório, que vai identificar a origem da movimentação que está sendo listada.
=> Situações possíveis: Hedge (quando TS está pendente ou para indicar a inclusão do hedge), Pagamento (baixa/reversão por pagamento), cancelamento (baixa/reversão por cancelamento), rolagem (baixa/reversão por rolagem).
Item-> código do item
=> Gg-negocio.it-codigo ou gg-negocio-vmi-prod.it-codigo
Vl Movimento-> Valor do movimento
=> Valor do movimento, conforme a origem da informação que está sendo listada. Pode ser o valor inicial da criação do hedge, ou o valor de um cancelamento, pagamento, rolagem.
Cotação Mov-> Cotação do Movimento
=> Valor da cotação do hedge de moeda. Quando o trade slip está pendente será a pré-taxa (gg-negocio-comp.dec-1 ou gg-negocio-pag.val-cotac, ou gg-negocio-vmi-comp.dec-1 ou gg-negocio-vmi-cond.val-cotac). Quando for uma movimentação de cancelamento ou pagamento, será a cotação do movimento (gg-hedge-mov.val-cotac).
Dt Vencto-> Data do vencimento do Hedge para o componente
=> Gg-negocio-comp.data-1 ou gg-negocio-vmi-comp.dat-1, ou gg-negocio-pag.dat-vencto ou gg-negocio-cond.dat-vencto.
Tp Ctr-> Tipo do contrato
=> C para compras e V para vendas
Trade Slip-> Número do Trade slip
=> Gg-negocio.num-trade-slip gg-negocio-vmi.num-trade-slip
V-> versão do trade slip
=> Gg-negocio.num-versão gg-negocio-vmi.num-versao
Estab-> código do estabelecimento
=> Gg-negocio.cod-estabel gg-negocio-vmi.cod-estabel
Estado-> sigla do estado do trade slip
=> Gg-negocio.estado-orig gg-negocio-vmi.estado-orig (ver campo livre no vendas)
Safra-> código da safra do trade slip
=> Gg-negocio.des-safra gg-negocio-vmi.des-safra
Finalidade-> descrição da finalidade
=> A descrição do campo Gg-negocio.des-finalid ou gg-negocio-vmi.des-finalid
Vl Comp-> Valor unitário do componente
=> Gg-negocio-comp.val-a-fixar ou gg-negocio-vmi-comp.val-a-fixar
Vl Saldo-> Valor Saldo do componente
=> Será um campo calculado.
=> Quando for a linha de inclusão do TS (ação Hedge) será o mesmo valor do movimento. Quando não for, será a linha anterior, menos o valor do movimento.
Quantidade-> Quantidade do movimento
=> Quando for inclusão do TS (ação Hedge) será a quantidade do componente (gg-negocio-comp.qtd-a-fixa ou gg-negocio-pag.qtd-fixacao ou gg-negocio-vmi-comp.qtd-a-fixar ou gg-negocio-vmi-cond.qtd-fixada ou campo livre). Quando for um movimento de hedge, será a quantidade do movimento (gg-hedge-mov.qtd-mov).
Dt Ret Hedge-> Data do retorno da confirmação do sitema externo hedge moeda
=> Gg-hedge.dat-ret ou gg-hedge-mov.dat-hedge
Hr Ret Hedge-> Data do retorno da confirmação do sitema externo hedge moeda
=> Gg-hedge.dat-ret ou gg-hedge-mov.dat-hedge
Num Boleto-> Número do Boleto
=> Gg-hedge.num-boleto
St Hedge-> Situação do Retorno do Hedge no Sistema externo
=> Gg-hedge.ind-situacao ou gg-hedge-mov.ind-situacao, conforme o caso.
Ação Hedge-> Qual ação ocorreu na Movimentação do Hedge, será um campo tratado para o relatório, que vai identificar a origem da movimentação retornada do sistema externo que está sendo listada.
=> Situações possíveis: Hedge (quando ts está pendente ou para indicar a inclusão do hedge), Reversão (baixa/reversão por pagamento, cancelamento ou rolagem.
Vl Movimento Hedge-> Valor do movimento que ocorreu no sistema externo de hedge moeda.
=> Valor do movimento, conforme a origem da informação que está sendo listada. Pode ser o valor inicial do retorno da criação do hedge, ou o valor de um cancelamento, pagamento, rolagem. Só deve ser listado quando já teve o retorno do sistema externo.
Vl Saldo Hedge-> Valor Saldo do componente após retorno do sistema externo hedge moeda
=> Será um campo calculado.
=> Quando for a linha de inclusão do TS (ação Hedge) será o mesmo valor do movimento, se tiver retorno. Quando não for, será a linha anterior, menos o valor do movimento que teve retorno sistema externo.
5) Rolagem (GG0104)
Objetivo: Permitir verificar os pagamentos vencidos ou a vencer dentro de um limite, e efetuar a alteração em lote, informando uma nova data.
Rolagem:
- É quando a alteração é somente de datas.
- Não recalcula margem, somente e precisa guardar a taxa do cancelamento e da nova nos movimentos da gg-hedge e gg-hedge-mov.
Tabelas Principais Envolvidas:
Considerações:
Exemplo:
1. Criação do TS fixo
Criar gg-hedge – preço produto – 20/02/2017 - ID 1001 – valor R$ 1.000,00
Criar gg-hedge – elevação – 04/03/2017 – ID 1002 – valor R$ 500,00
Criar gg-hedge – frete - 04/03/2017 - ID 1003 – valor R$ 100,00
Encaminhar registros criados gg-hedge para sistema externo hedge moeda cliente no lay out de solicitação de hedge
2. Retorno sistema externo hedge moeda cliente da criação do Hedge
Recebe do sistema externo hedge moeda cliente os retornos dos hedges criados
Alterar gg-hedge – preço produto – 20/02/2017 - ID 1001 – valor R$ 1.000,00 - Boleto B001 – cotação 3,5
Alterar gg-hedge – elevação – 04/03/2017 – ID 1002 – valor R$ 500,00 – Boleto B002 – cotação 3,6
Alterar gg-hedge – frete - 04/03/2017 - ID 1003 – valor R$ 100,00 – Boleto B003 – cotação 3,7
Recalcular a Margem do TS (ggapi037/ggapi038)
3. Completar o TS (depois de aprovar a margem)
Ggapi037/ggapi038
Criar o contrato (se for automático) gg-contrato.
Criar a fixação e preço no contrato gg-contrato-pre/gg-contrato-pre-comp/gg-contrato-pre-comp-fix.
Criar os componentes no contrato gg-contrato-fixação.
Criar a previsão de pagamento no contrato gg-contrato-ant, R$ 1.000,00 – data 20/02/2017.
4. ROLAGEM - Alterar data de pagamento do produto, de 20/02/2017 para 30/03/2017, de R$ 600,00.
Criar gg-hedge-mov - preço produto – transação “Baixa Rolagem”, 20/02/2017 - ID MOV 3000 – valor R$ 600,00 – Boleto B001.
Alterar gg-hedge – preço produto – 20/02/2017 - ID 1001 – Saldo de R$ 1.000,00 para R$ 400,00
Criar gg-hedge – preço produto – 30/03/2017 - ID 1004 – valor R$ 600,00. Este movimento não deve ir ao sistema externo hedge moeda cliente, porém necessário guardar o ID do movimento de Baixa MOV ID 3000, e também no movimento de baixa o ID deste, assim ficam relacionados.
Alterar gg-hedge-mov - preço produto – transação “Baixa Rolagem”, 20/02/2017 - ID MOV 3000 – valor R$ 600,00 – Boleto B001, para guardar ID do novo registro da gg-hedge ID 1004 em campo livre.
Encaminhar registros criados gg-hedge-mov ID MOV 3000 – Boleto B001, para sistema externo hedge moeda cliente no lay out de rolagem. Atenção: gg-hedge ID 1004 NÃO DEVE ir para o sistema externo hedge moeda cliente criar novo hedge pois na rolagem o sistema externo hedge moeda cliente já vai fazer isso.
5. Retorno sistema externo hedge moeda cliente ref. rolagem do ID MOV 3000 – Boleto B001
Alterar gg-hedge-mov - preço produto – transação “Baixa Rolagem”, 20/02/2017 - ID MOV 3000 – Boleto B001 - valor R$ 600,00 – Cotação 3,8.
Alterar gg-hedge – preço produto – 30/03/2017 - ID 1004 – valor R$ 600,00 – Boleto B004 – cotação 3,85 . Para encontrar este registro, olhar dentro do gg-hedge-mov ID MOV 3000, no campo livre que tem o ID 1004 guardado.
** como pode ser visto acima, o retorno da rolagem o sistema externo hedge moeda cliente vai mandar duas taxas 3,8 para a parte da baixa, e 3,85 para a criação do novo Boleto B004.
(ggapi037/ggapi038) Não deve recalcular margem, somente atualizar no contrato a nova data da previsão (gg-contrato-ant), porém como foi parcial, terá que:
- gg-contrato-ant que já existe alterar de R$ 1.000,00 para R$ 400,00 – data 20/02/2017.
- criar novo gg-contrato-ant com valor de R$ 600,00 – data 30/03/2017
Implementações:
- no botão da rolagem no gg0104, deixar duas colunas de datas: Nova Dt Venc e Dt Venc Orig, sendo que somente a Nova Dt Venc que fica habilitada. Ver cor de fundo, com tem no gg8000 para o campo editável.
- no campo abaixo onde tem aplicação múltipla de vencimento, deixar só uma data, que seria Nova Dt Venc.
- ajustar as colunas do browser com os labels que foram ajustados na tela gg0104, para ficar igual, bem coo deixar o saldo do lado do campo de valor.
- ao confirmar, executar a newHedgeRollover da ggapi036, passando uma temp-table com o id da gg-hedge, nova data, componente, pode ser até a mesma tt que mostra na tela para facilitar.
Processo Rolagem:
1) Selecionar Boleto a ser feito rolagem na tela monitor Hedge (GG0104), podendo ser um registro ou vários:
2) Ao acionar o botão para solicitar Rolagem de Boletos, será apresentada tela para informar a nova data. Poderá ser informado linha a linha ou uma única data para todos.
A nova data deverá ser em dia útil, e ser igual ou superior a data atual do sistema.
3) Após confirmar a rolagem será criado movimento de reversão por rolagem dos boletos originais:
4) E será solicitado um novo Boleto, com a nova data:
5) Quando tiver integração automática, ao retornar a reversão, serão atualizados o novo Boleto, com sua taxa, e também a taxa da reversão, ao mesmo tempo.
6) Quando for integração manual, será necessário atualizar a informação da reversão:
7) E também o Boleto e taxa da nova solicitação:
8) No Trade Slip será gerado um histórico, informando da rolagem:
9) Após fazer uma rolagem, o mesmo boleto não poderá ter outra rolagem, pois teve seu saldo liquidado:
10) Porém o Novo Boleto originado de uma rolagem, poderá sofrer outra alteração de vencimento:
11) Quando a rolagem se tratar de um componente do tipo Preço Produto, ao registrar uma rolagem, a informação do vencimento será atualizada no Trade Slip e na previsão de pagamento no contrato:
6) Alteração de Trade Slip
Objetivo: Permitir a inclusão de um trade slip, para efetuar a alteração de fixações de preço, componente, ou trava de câmbio para preço produto.
Tabelas Utilizadas:
Considerações:
=> Somente Trade slip com status: Atualizado
=> Que possuem saldo a ser alterado. A quantidade já paga, não pode sofrer alteração. Pode alterar uma quantidade que já tenha recebimento/faturamento.
=> Trade slip com status: Pendente, Aprov Banking, Aprov Margem, Aprov Componente, Completar, Cancelado.
=> Que já estejam com quantidade totalmente paga, no caso de fixação de preço, ou já totalmente alocados, no caso de fixação de componente.
=> Preço Fixado nunca pode ser alterado, com exceção de trava do cotação quando o preço já fixado estiver em moeda diferente de corrente.
=> Datas de Pagamento, nunca podem ser alteradas em processo de alteração. Para alterar deve ser utilizada rolagem.
=> Se entrar para efetuar alteração e apenas alterar a data de execução, e não alterar nenhum valor de ecomponente, não haverá ajustes no Hedge de Moeda. Para ajuste de vencimento dos boletos utilizar a rolagem.
=> Nas alterações, os valores de componentes deve trazer os mesmos da alteração, e apenas se desejar, alterar.
=> As cotações devem ser também atualizadas com base no TS relacionado/original, e somente quando for alterado o valor, deve solicitar nova taxa.
=> Ao confirmar a alteração quanto ao Hedge irá criar um vboleto complementar, se o valor for maior, ou irá efetuar uma reversão, caso o valor seja menor. Os componentes que tiverem valores iguais não serão alterados.
=> Caso alterar alguma informação, como exemplo porto, que faça surgir novos componentes, e se estes tiverem Hedge, será gerado um novo Boleto. Caso a alteração, retire algum componente que tinha hedge no ts original, então será efetuado reversão total, proporcional a quantidade alterada.
7) Alteração para Trava de Cotação
Objetivo: Permitir a alteração do trade slip de Compras, para trava de cotação, em contratos em outras moedas (ex. dólar), ou seja, transformar uma fixação de preço em outra moeda para a moeda corrente. Ao realizar uma programação de pagamento atravésdo fechamento financeiro, o preço travado na moeda corrente será utilizado. Trade Slip de Vendas não terá está opção de trava de cotação.
Tabelas Utilizadas:
Considerações:
8) Alteração Execução
Objetivo: Permitir alterar a finalidade de um TS. Segue o mesmo fluxo da alteração, porém sempre deverá mudar a finalidade.
Diferenças com relação ao TS de alteração:
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|