Árvore de páginas

Versões comparadas

Chave

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

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

(Obrigatório)

Informações Gerais

 

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

PCREQ-9370

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

Objetivo

 

O projeto Hedge Traceability 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 SBM 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;

  • Baixa Hedge Manual;
  • Rolagem;
  • Alteração de Trade Slip, com opção para trava de cotação pagamentos e valor componentes;
  • Mudança de Execução;

  • Integração destas operações com o sistema de Hedge Moeda;
  • Relatório Informações Diárias de Exposiçã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 MoedaCriaçãoRelató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:

  • Cancelar contratos fixos, tanto a quantidade contratada como a quantidade fixada;
  • Cancelar fixação de contratos fixos, total ou parcial;
  • Cancelar total ou parcial fixação de preço em contrato a fixar;
  • Cancelar total ou parcial fixação de componente em contrato a fixar;

 

Considerações:

  • Fluxo da situação do TS de cancelamento:
    • Incluir -> Pendente;
    • Aprova TS -> Aprovação Banking (se tiver hedge ou aprov Bank no gg1005), integrar SBM;
    • Aprova Bank -> Aprovação Margem (se tiver hedge ou fix preço);
    • Aprova Margem -> Atualizado (cancela contrato/fix contrato, gera título de multa no financeiro);

  • Situações do Trade Slip, onde não é permitido o cancelamento:
    • Aprovação Banking (com exceção se não utilizar integração com sistema externo);
    • Cancelado;

  • Situação do Trade Slip, onde o cancelamento é realizado sobre o próprio Trade Slip:
    • Pendente;
    • Completar (sem nenhuma fixação de componente ou preço);
    • Atualizado (sem nenhuma fixação de componente ou preço);

  • Situação do Trade Slip, onde o cancelamento é realizado através de um novo Trade Slip, com nova versão, do tipo Cancelamento:
    • Aprovação de Margem;
    • Completar (com fixação de componente ou preço);
    • Atualizado (com fixação de componente ou preço);
      ** Quando o TS a ser cancelado for do tipo Alteração (ind-trade=4) ou Mudança de Execução (ind-trade=7) será permitido o cancelamento apenas quando a situação estiver Atualizado.

  • Para cancelar, o usuário seleciona o TS que quer cancelar na tela do gg0103 e aciona o botão Cancelar. Quando a situação do TS estiver como Aprovação de Margem, Completar ou Atualizado. É apresentada a tela para inclusão do TS de versão (gg0103d/gg0103e) com a ação Cancelamento. Somente aceito para este cancelamento TS relacionado com tipo (ind-trade) igual a NOVO, Fixação ou Alteração. TS de cancelamento ou rolagem, não pode ser cancelado, caso necessário terá que ser feito nova alteração/rolagem.

 

  • Ao entrar na tela de inclusão do TS (gg0103d/gg0103e, ggapi034/ggapi035), carregar os dados do TS, mantendo o número e criando uma versão nova, bem como guardando nos campos gg-negocio.num-trade-slip-relac e num-versao-relac o número do TS selecionado. O campo gg-negocio/gg-negocio-vmi.ind-trade deve ser = cancelamento.

  • Validações:
    • Caso tiver algum outro TS, com o mesmo TS relacionado, que esteja com situação Pendente, aprovação Margem, Completar, aprovação banking, não deve permitir Continuar. Mensagem “Já existe outro Trade Slip não atualizado ” + número e versão do TS encontrado;
    • Caso tiver contrato, e existir um outro TS com o mesmo contrato, que esteja com situação Pendente, aprovação Margem, Completar, aprovação banking, não deve permitir Continuar. Mensagem “Já existe outro Trade Slip para este contrato e não está atualizado ” + número e versão do TS;

  • Quanto ao Tipo do cancelamento:

- 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.

 

  • Quanto a quantidade:

- 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.

 

  • Ao abrir a tela de inclusão do trade Slip (gg0103d/gg0103e), deve solicitar novos campos: Data Multa, Motivo cancelamento (colocar zoom, e descrição do motivo de cancelamento, do cadastro que já é utilizado no gg1001b, pasta movimentos, botão cancelar) e tipo do cancelamento (quando for contrato novo, fixo, e com contrato, os demais casos desabilitado).

  • Quanto as parcelas de pagamento:

- 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.

 

  • Quanto aos componentes:

- 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.

 

  • Quanto ao componente do tipo Multa:

- 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:


- O 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 fonte do programa de exemplo.


  • Quanto as integrações com sistema externo SBM:

- 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 SBM as baixas/reversões informando o componente, valor e boleto.

- Caso tiver multa, deverá criar uma solicitação de hedge ao SBM da Multa, no layout de createHedge.

- No retorno da baixa do SBM, 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.


  • Quanto a aprovação de Margem:

- Um TS de cancelamento sofrerá aprovação Margem da mesma forma.


  • Quanto a atualização do TS de cancelamento no contrato (após as aprovações):

- 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 deve 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.

 

  • Quanto a consulta do Título da Multa:

- 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:

  • Tit_ap
  • Tit_acr
  • Gg-hedge
  • Gg-hedge-mov

 

Considerações:

  • Frete, Produto, Impostos Retidos, Fobbings. Para cada tipo poderão ser parametrizadas espécies.
  • A baixa por pagamento será feita com base nos títulos a vencer, conforme seleção.
  • Vincular o fornecedor a um porto, a fim de quando tiver um adto de elevação, poder relacionar aos contratos com aquele porto.

 

Baixas Controladas através dos Títulos:

  1. Fatura Rodoviária (Contas a Pagar).
  2. Fatura Ferroviária (Contas a Pagar).
  3. Nota Fiscal Fobbings (Contas a Pagar).
  4. Pagamento Contrato Compra (Contas a Pagar).
  5. Adiantamento Contrato Compra (Contas a Pagar).
  6. Impostos Retidos Compra (Contas a Pagar).
  7. Multa Whashout (Contas a Pagar).
  8. Multa Whashout (Contas a Receber).  
  9. Nota Fiscal Entrega Futura (Contas a Pagar). 
  10. Cobrança contrato vendas (Contas a Receber).  
  11. Fatura Hidroviária (Contas a Pagar).

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:

  • Esboço Tela:


  • Botão Parâmetros[P]

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


  • Botão Filtro [F]:


  • Botão Atualizar [A]

Este botão é para fazer carregar os dados da tela, conforme filtro.

Criar uma procedure no ggp701za ou ggp702za, onde recebe os parâmetros da seleção e as espécies do 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):

Image Added

Image Added

Image Added

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:

    • Nota Fiscal que acompanha a entrega física (GG2000);
    • Nota Fiscal compra global, para entrega futura (RE1001);
    • Nota Fiscal complemento de preço de uma compra (GG2000);

 

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.

Específico Cofco: As faturas registradas no Módulo Específico Logística Cofco (ESLG2122), que tiverem Hedge de Frete, serão baixadas do Boleto relacionado ao Trade Slip do contrato relacionado a Operação logística da fatura.

 

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.

Específico COFCO: As faturas registradas no Módulo Específico Logística Cofco (ESLG2000), que tiverem Hedge de Frete, serão baixadas do Boleto relacionado ao Trade Slip do contrato relacionado a Operação logística da fatura.

 

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:

Image Added

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:

    • Boletos de Hedge com status Atualizado;
    • Contratos do Porto relacionado ao fornecedor do serviço (CD0401);
    • Contratos (compra ou venda) com entregas físicas já registradas;
    • Data de Vencimento Boleto mais antiga (FIFO);

 

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 */

         Igg-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 financerio, contas a receber.

 

Após encontrar o hedge, então listar os dados na tela, no 2º browser.

 

  • 2º Browser “Movimentos Hedge Moeda”

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"


  • Botão Confirmar [C]

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.

 

  • Botão atalho para atualização Batch [B] .

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.

Image Added

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

Image Added

Image Added

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.


Image Added

Image Added

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.

 

Image Added


  • Vínculo Fornecedor ao Porto:

 

Precisa ajustar a appc que temos no cadastro de clientes CD0401 e também a mesma viewer é usada no CD0704.

 

DE:

Image Added

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á */

 Image Added

 

 

 


 

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.