Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

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

  

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

IRM1

PCREQ-9370

Requisito1

PCREQ-9373

Subtarefa1

PDR_AGR_ORI004-88

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

Permitir a integração dos negócios efetuados, através de Trade Slip, com sistema externo para hedge de moeda. O sistema externo não faz parte deste projeto, apenas a integração através de WS, conforme layouts predeterminados.

Como piloto para a integração, está sendo usado o sistema externo do cliente Cofco (antes Noble).   Na Cofco, 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 sistema externo para assegurar que as informações estejam iguais nos dois sistemas.

Esta 1ª fase compreende: efetuar o registro de negócios, ou seja Trade Slip de Compras e Vendas, de forma facilitada, para que seja possível a integração destes negócios com sistema externo de hedge de moeda.

 


Definição da Regra de Negócio


Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

GG1024-Parâmetros Integração Grãos

Criação/NOVO

Cadastros

-

GG1034-Finalidade Negócio

Criação/NOVO

Cadastros

-

GG1014-Componentes de Preço

Alteração

Cadastros

-

GG1094-Limites de AprovaçãoAlteraçãoCadastros-
Gg1005B-Parâmetros Comerciais Itens GrãosAlteraçãoCadastros-
GG5010-Calendário BolsaAlteraçãoCadastros-
GG1065-Porto BaseAlteraçãoCadastros-
GG0103-Registro NegóciosCriação/NOVOTarefas-
GG0104-Monitor HedgeCriação/NOVOTarefas-
GG1001b-Detalhe Contrato ComprasAlteraçãoTarefas-
GG1091-Detalhe Contrato VendasAlteraçãoTarefas-
    

 

 

GG1034 - Finalidade Negócios


Objetivo: Parametrizar as opções de finalidade de negócios, como exemplo: Exportação, Esmagamento e Vendas no Mercado interno.  A finalidade será solicitada no Trade Slip e seguirá para o contrato.

 

Tabelas Utilizadas:

  • Gg-finalidade - Finalidade

 Campos:

  • Gg-finalidade.des-finalidade: código da finalidade, apesar de ser campo caracter no dicionário, vamos padronizar em tela o formato “99”. Obrigatório, ou seja não deve aceitar o código “00”.
  • Gg-finalidade.desc-finalidade: descrição, obrigatória
  • Gg-finalidade.ind-modulo: opções Compras/Vendas/Armazenagem/Todos.

 

Considerações:

  • Cadastro Simples, Thin Template.
  • Salvar em $/EMS2/Fontes_Doc/Sustentacao/V11/V11/progress/src/ggp, ggbo e ggzoom

 

 

GG1024 - Parâmetros Integração Grãos


Objetivo: Parametrizar as integrações do módulo de originação de grãos.

 

Tabelas Utilizadas:

  • Gg-param-integr – Parâmetros Integração Grãos

 

Campos:

  • Gg-param-integr.cdn-integr
  • Gg-param-integr.des-integr
  • Gg-param-integr.log-ativo
  • gg-param-integr.des-e-mail (x(400)) novo campo para informar emails quando “E-mails Falha Integração” /* aguardar campo na aplicação da 2ª janela – usar campo livre */, opcional
  • gg-param-integr.num-livre-1 (Minutos intervalo entre e-mails erro conexão)
  • Gg-param-integr.des-url-integr-pin, campo opcional

 

Considerações:

  • Cadastro Simples, com opção apenas para modificar os campos log-ativo, des-e-mail e des-url-integr-pin.
  • Não terá opção para incluir,copiar ou excluir.
  • A exemplo do que existe no programa setup-graos.w, exemplo arquivo gg532.d, criar um arquivo .d com o dump da tabela, com as seguintes opções:

CódigoDescriçãoAtivo
1Romaneio Produção PIMSNão
2Hedge Moeda Sistema ExternoNão
  • Ao entrar no programa GG1024,  verificar se existe o arquivo .d, e realizar a importação dos registros que não existem ainda na gg-param-integr. Desta forma apenas as integrações disponíveis poderão ser atualizadas pelos usuários.  
  • Cadastro Simples, apenas com opção Modifica.
  • Inclusão automática com as integrações disponíveis.
  • Pesquisa/zoom, pode ser código + descrição.
  • Inserir botão para teste de conexão caso campo des-url-integr-pin tenha alguma informação.

Explo:

 


GG1014 - Componentes de Preço


Objetivo: Incluir parâmetros para permitir registrar Trade Slip de forma facilitada, ou seja o pré-ts, apresentando em tela apenas os componentes essenciais. 

 

Tabelas Utilizadas:

  • Gg-comp-preco – Componentes de Preço (pai)
  • GG-comp-item – Itens do Componente de Preço (filho)
  • Gg-comp-perc – Componentes Relacionados (filho)
  • Gg-comp-porto – Portos do Componente de Preço  (filho)

 

Considerações:

  • Cadastro Pai/Filho atualiza ambos.
  • O cadastro GG1014 já existe em smart, porém como serão inclusos vários campos, então refazer o mesmo em thin-template. Fazer uma nova pesquisa/zoom, porém a que existe hoje, deve continuar funcionando pois é chamado em outras partes do sistema.
  • Manter a mesmo layout, porém ao incluir o registro pai gg-comp-preço, GG1014C, terá agora dois folders Pag 1 e Pag2, sendo que a Pag1, terão praticamente os mesmos campos que existem hoje, com alguns ajustes:

 

  • Alterações da Pag1:

 

    •  Campo gg-comp-preco.ind-forma, passará a usar include, ao invés de fixo no dicionário e fonte:

VIEW-AS "view-as radio-set vertical radio-buttons {gginc/i02gg017.i 2}"

A include i02gg017.i deve ter as opções:

&glob val1 %

&glob val2  Valor

&glob val3  Total

No programa para o campo Forma (gg-comp-preco.ind-forma) usar a include e não deixar fixo no fonte. Ver exemplo GG1109B, pasta Movimento, campo fat-gerador. Se não tiver espaço em tela, mudar de radio-set para combo-box.

Sempre que o usuário escolher a opção Total, deve passar o campo ind-calculo para “Informativo” e desabilitar o campo ind-calculo.

 

    •  Campo gg-com-preco.ind-calculo, passará a usar include, ao invés de fixo no dicionário e fonte:

VIEW-AS "view-as radio-set vertical radio-buttons {gginc/i03gg017.i 2}"

A include i03gg017.i deve ter as opções:

&glob val1 Preço

&glob val2 Custo

&glob val3 Informativo

&glob val4 Royalties

&glob val5 Revisão 

&glob val6 Preço Calculado

&glob val7 Preço Proposto

 

    •  Campo gg-comp-preco.tipo-tabela, passará a usar include, ao invés de fixo no dicionário e fonte:

VIEW-AS "view-as radio-set vertical radio-buttons {gginc/i04gg017.i 2}”. Pode mudra de radio-set para combo-box, com as opções da include.

&glob val1 Padrão

&glob val2 Origem-Porto

&glob val3 Tabela p/Item

&glob val4 Programa Cálculo

 

 Importante: A opção Programa de Cálculo estará disponível apenas para quando utilizar a rotinas de Novos Negócios (GG0103).

    •  Campo gg-comp-preco.nom-programa, quando gg-comp-preco.tipo-tabela = 4 /* programa de cálculo */ deve validar que o programa exista:  IF SEARCH("gg-comp-preco.nom-programa") = "?" THEN “Programa de Cálculo Inválido”, “Não foi localizado programa de cálculo.”.

OBS.: para as opções das literais das includes novas (i02gg017.i 2, i03gg017.i e i04gg017.i), abrir chamado para tradução, caso não tenha ainda os termos traduzidos. Exemplo chamado TTYBCW.

 

  • Nova Na Pag2, terão campos novos:

 Importante: As informações desta pasta serão utilizadas apenas na rotina de Novos Negócios (GG0103). 

gg-comp-preco.log-pre-slip

gg-comp-preco.idi-hedge-dat – usar include {gginc/i01gg017.i 2}. Opções que devem estar na include: Data Pagamento, Data Exportação, Data Embarque. Apresentação em tela como combo-box, conforme opção da include.

gg-comp-preco.num-ord

gg-comp-preco.cod-comp-ext

 

    •  gg-comp-preco.cod-esp-acr (não obrigatório, pode passar em branco, porém se for informado, deve validar contra o cadastro de espécie do contas a receber, pesquisa/zoom, descrição ao lado e validação que existe no cadastro de espécies, ver exemplo programa gg1005, página Vendas, campo cod-esp-fat-vmi). Incluir outra validação para o campo: se gg-comp-preco.cod-esp-acr for informado, e gg-com-preco.ind-calculo <> 5, dar mensagem e não deixar continuar: “Espécie Washout ACR inválido” “Espécie somente deve ser informada quando o tipo de cálculo for Multa Washout”. Cadastar uma nova mensagem.


    •  gg-comp-preco.cod-ser-acr (não obrigatório, deve estar no cadastro de série, ver como exemplo pesquisa/zoom, e validação que existe no cadastro de série no programa GG1005, pasta Vendas, campo c-serie-transf).

 

    •  gg-comp-preco.cod-cta-acr-unif (não obrigatório, pode passar em branco, porém se for informada a espécie cod-esp-acr, passa a ser obrigatório informar a conta, ver exemplo pesquisa/zoom, formato, descrição da conta para mostrar ao lado e validação que existe no cadastro de contas contábeis, ver exemplo programa gg1107, página originação, campo cod-cta-dc-unif).

 

    •  gg-comp-preco.cod-ccusto-acr-unif (não obrigatório, pode passar em branco, porém se for informado o custo deve um válido, ou seja que existe na cadastro de centro de custo, ver exemplo pesquisa/zoom, formatação em tela, descrição ao lado e validação que existe no cadastro de centro de custo, ver exemplo programa gg1107, página originação, campo cod-ccusto-dc-unif).

 

    •  gg-comp-preco.cod-esp-apb (não obrigatório, pode passar em branco, porém se for informado, deve validar contra o cadastro de espécie do contas a pagar, pesquisa/zoom, descrição ao lado e validação que existe no cadastro de espécies, ver exemplo programa gg1107, página originação, campo cod-esp-dc). Incluir outra validação para o campo: se gg-comp-preco.cod-esp-apb for informado, e gg-com-preco.ind-calculo <> 5, dar mensagem e não deixar continuar: “Espécie Washout ACR inválido” “Espécie somente deve ser informada quando o tipo de cálculo for Multa Washout”.

 

    •  gg-comp-preco.cod-ser-apb (não obrigatório, pode passar em branco, não tem pesquisa)

 

    •  gg-comp-preco.cod-cta-apb-unif (não obrigatório, pode passar em branco, porém se for informada a espécie cod-esp-apb, passa a ser obrigatório informar a conta, ver exemplo pesquisa/zoom, formatação em tela, descrição da conta para mostrar ao lado e validação que existe no cadastro de contas contábeis, ver exemplo programa gg1107, página originação, campo cod-cta-dc-unif).

 

    •  gg-comp-preco.cod-ccusto-apb-unif (não obrigatório, pode passar em branco, porém se for informado o custo deve um válido, ou seja que existe na cadastro de centro de custo, ver exemplo pesquisa/zoom, formatação em tela, descrição ao lado e validação que existe no cadastro de centro de custo, ver exemplo programa gg1107, página originação, campo cod-ccusto-dc-unif).

 

 Importante: Somente poderá informar dados para gerar título ou no contas a receber ou contas a pagar. Um componente somente poderá gerar um título no Trade Slip de cancelamento.

 

  • Pasta Componentes:

Estava deixando informar componentes relacionados apenas quando o campo gg-comp-preco.ind-forma = 1 /* % */, alterar para deixar informar componentes relacionados também quando o campo gg-comp-preco.ind-forma = 3 /* Total*/.

Incluir novo atributo:

gg-comp-perc.idi-operac, ver a include (gginc/i01gg016.i) para o radio-set com as opções:

&glob val1 Somar

&glob val2 Diminuir

Obs.: A operação ‘Padrão’ será usada para manter o legado, quando o campo não tiver informação (=0), e neste caso seguirá o tipo de cálculo do componente Preço (+) e Custo (-).

 

  • Incluir nova pasta “Porto” para novo registro filho:

 

    • Esta nova pasta “Porto” terá os botões de Incluir/Eliminar.
    • Quando não tiver nenhum porto relacionado, significa que o componente não tem restrição por porto. Quando tiver algum porto relacionado, significa que o componente somente será utilizado para determinados portos que estão relacionados ao componente.
    • Incluir gg-comp-porto:

 

    •  gg-comp-porto.cod-comp (desabilitado, e deve sempre atualizar com a informação do registro pai gg-comp-preco.cod-comp, conforme selecionado).
    •  gg-comp-porto.cod-porto (obrigatório, não pode incluir sem informar o porto, deve existir na tabela gg-porto-base, usar como exemplo pesquisa/zoom, validação, descrição ao lado do programa gg1107, pasta Geral, campo cod-porto).

Ao incluir a gg-comp-porto, validar que não exista na tabela outro registro com a mesma chave primária e única: cod-comp+ cod-porto.

 

  • Pasta Itens:

Caso a integração de Moeda esteja ativa (can-find (first gg-param-integr no-lock where gg-param-integr.cdn-integr = 2 /* hedge moeda */ and gg-parma-integr.log-ativo = yes)), solicitar novos campos abaixo, caso contrário, esconder os campos da tela.

gg-param-item.log-heddge-moeda (label “Hedge Moeda”)

gg-param-item.ind-hedge (criar include 1 – Manual 2 – Integração)

 

 

 

GG1094 - Limites Aprovação


Objetivo: Incluir NOVOS limites para o registro de negócios (Trade Slip).


Tabelas Utilizadas:

  • Gg-bloqueio

 

Considerações:

  •  Hoje a tabela gg-bloqueio é alimentada apenas no setup-graos, alterar para ser executada a verificação sempre ao entrar no GG1094, e criar os registros que não existem na gg-bloqueio conforme arquivo ggp\gg532.d. Ver exemplo piImportaBloqueio do programa ggp\setup-graos.w.
  • Incluir no arquivo gg532.d as seguintes novas aprovações:

10 "Registrar Trade Slip Pendente" 2 1 1 "" "" 0 0 0 0 no no ? ?

11 "Aprovar Trade Slip Pendente" 2 1 1 "" "" 0 0 0 0 no no ? ?

12 "Alterar Trade Slip" 2 1 1 "" "" 0 0 0 0 no no ? ?

  • OBS: No programa de setup-graos.w continuar fazendo a carga de dados, ou seja não há alterações.



GG1005B - Parâmetros Comerciais Itens Grãos

 

Objetivo: Incluir novos parâmetros para integração com sistema de Hedge Moeda.

 

Tabelas Utilizadas:

  • Gg-param-item.log-hedge-moed
  • Gg-param-item.cod-item-ext: não obrigatório e não há validação com outro cadastro. Quando informado será utilizado para integrar com sistema externo hedge.
  • Caso a integração de Moeda esteja ativa (can-find (first gg-param-integr no-lock where gg-param-integr.cdn-integr = 2 /* hedge moeda */ and gg-param-integr.log-ativo = yes)), solicitar novos campos abaixo, caso contrário, esconder os dois campos novos da tela, bem como o retângulo. Não tem problema ficar o espaço em branco.

 

 

 

GG5010 - Calendário Bolsa

 

Objetivo: Incluir novo atributo Quantidade Contrato na Bolsa.  Exemplo para CBOT Soja: um contrato igual a 27.000 kg.

 

Tabelas Utilizadas:

  • Gg-calendario-bolsa

 

Considerações:

  • Novo campo: gg-calendario-bolsa.qtd-contrato.

 

 

 

GG1067 - Porto Base (GG1067)

 

Objetivo: Incluir novo atributo Nome Abreviado do Porto.

 

Tabelas Utilizadas:

  • Gg-porto-base

 

Considerações:

  • Novo campo: gg-porto-base.nom-abrev, obrigatório, ou seja não passa em branco.

 



GG0103 - Novos Negócios

 

Objetivo: Registrar as propostas de novos negócios, como Compras, Vendas, Fixação de Preço e de Componentes de Preços.

 

Tabelas Principais Utilizadas:

  • Gg-negocio / gg-negocio-comp
  • Gg-negocio-vmi /gg-negocio-vmi-comp
  • Gg-contrato

 

Considerações:

Modelo: Thin maintenance (Thin Template).

Tela: GG0103 – Novos Negócios

Grid: Situação, Tipo Doc (Compra/Venda),  Num Trade Slip, Contrato, Dt Neg, Tp Trade, Tp Fixação, Estabel, Safra, Item, Descr.Item, Prazo Fix., Frete, Taxa, , Componente 1*, Cotação 1*, Componente N*, Cotação N*, F.Porto, Porto, Finalidade, Dat Export, Mes Ano Emb, Dat.Pagto, Qtd Contrato, Qtd Fixada, Qtd a Fixar, Cod. Emit, Nome Fornecedor, Cidade Origem, Estado Orig, Km chão, Km Asfalto, Dt Fim Entr, Dt Ini Entr, Comprador, Moeda, Sigla.

* Obs: componentes serão gerados dinamicamente de acordo com o trade slip listado na grid.

 

Botões da Tela:

  •  VaPara: Permitir posicionar diretamente no contrato ou Trade slip informado ignorando as parametrizações de seleção e parâmetro.

 

  •  Seleção e Filtro: indicar uma faixa de seleção para apresentação dos dados. De acordo com as informações definida nesta tela, a pesquisa pode ocasionar baixa performance.

 

Situações do gg-negocio/gg-negocio-vmi:

=> Trader acabou de incluir, situação passa para: Pendente(1)

=> Aprovador Aprova Proposta do Negócio, situação passa para: Aprov Banking(6) (nesta situação vai para SBM e fica esperando)

=> Recebe Retorno SBM, situação passa para: Aprov Margem(3)

=> Aprovador Aprova Margem, situação passa para: Completar(7) (esta opção apenas para TS Novos Contratos, e está aguardando cadastrar os dados faltantes e atualizar Contrato)

=> Trade Slip a completar é selecionado, complementado as informações e confirma: Atualizado(2) (esta opção já vai estar no contrato quando fixação, cancelamento, alteração. Para novas compras, se utilizar contrato automático também já será efetuada a atualização no contrato).

Obs.: precisa ajustar a include da gg-negocio.ind-situacao e gg-negocio-vmi.ind-situacao para ter a opção 7 – Completar.

 


  •  Parâmetros: Definir as informações para geração do Resumo, tempo para atualização automática, e família de produto/item para filtro.

Criar tela para informar os componentes para margem de compra, margem de venda e componente Resumo as serem utilizados na geração dos resumos a serem apresentados na parte inferior da tela.

O campo familia quando informada irá filtrar os trade slip de acordo com a seleção e que os itens sejam da mesma familia

Para margem de Compra sugerir a margem que está definida no parâmetros originação na pasta Originação. (gg-param.cod-comp-ajuste).
Para margem de Venda sugerir a margem que está definida no parâmetros originação na pasta Vendas. (gg-param.cod-comp).
Para componente Resumo sugerir a informação que está definida no parâmetros originação na pasta Originação (gg-param.char-1,66,15).

O agrupador Atualização, quando manual, será necessário acionar o botão de atualização para refazer as pesquisa dos dados apresentados no browse, porém, quando estiver marcado como automático, o sistema fará a pesquisa automaticamente a cada X segundos conforme definido no campo.

 

  •  Atualizar: Refazer as pesquisas dos dados a serem apresentados em tela;

Caso flag “Compra” estiver marcado será carregada tabela temporária com os dados da gg-negocio. (pode usar como explo: pi-carrega-dados da rotina GG2013)

Caso flag “Venda” estiver marcado será adicionada a tabela temporária com os dados da gg-negocio-vmi. (pode usar como explo: pi-carrega-dados da rotina gg2026).

Caso seja possível, ao efetuar a carga da tabela temporária inserir uma tela de acompanhamento, para caso necessário abotar o processo.

 

  •  Legenda:


  •  Histórico: Exibe os históricos gerados durante as movimentações do Trade Slip
  •  Detalhe Contrato: Permite detalhar os contratos vinculado ao Trade Slip
  •  Email: Permite enviar E-mail refetente a Trade Slip selecionado.
  •  Incluir Compra: Permitir a inclusão de um pré TS para Compra;
  •  Incluir Venda: Permitir a inclusão de um pré TS para Vendas;
  •  Modificar/Completar: Permite modificar um pré TS quando a situação estiver Pendente ou efetivar a geração de um pré trade slip para trade slip quando situação for Completar.
  •  Cancelar: Realiza o cancelamento do TS;
  •  Visualizar: Permite visualizar um TS;
  •  Aprovar:  Realizar a aprovação ou Reprovação de um trade slip; (Pendente para Aprov. Banking; ou Aprovação Margem para Completar) .
  •  Hedge: Abre nova tela (GG0104) para visualização do hedge do TS;

Caso seja acionado duplo click na grid em um contrato, será permitida a fixação do mesmo. Caso seja um TS, será efetuada a visualização.

 


GG0103D - Tela Inclui/Modifica:  (TradeSlip Compra)


Pasta I

 

Agrupador “Negociação”:

Nr Trade Slip/Versão -> gg-negocio.num-trade-slip / gg-negocio.num-versao
Data Negociação -> gg-negocio.dat-trade-slip (padrão a data atual)
Contrato -> gg-negocio.cod-contrato
Estabelecimento -> gg-negocio.cod-estabel (padrão o estabelecimento do usuário gg-ext-param-re)
Fornecedor/Nome -> gg-negocio.cod-emitente / gg-negocio.nom-emit
Produto -> gg-negocio.it-codigo / item.desc-item
Refer Item > gg-negocio.cod-reer-item (somente para os itens com controle por referencia)
Safra -> gg-negocio.des-safra (após digitar o produto, trazer como padrão a safra para a data da negociação, ver exemplo no gg2000
Quantidade Ctr/UN -> gg-negocio.qtd-contrato / gg-negocio.des-un
Tipo TS -> gg-negocio.ind-trade (1-Fixação 2 – Novo 3 – Pendente 4 – Alteração 5 - Washout)
Fixação -> gg-negocio.ind-motivo (1-Preço 2-Componente)

 

Agrupador “Financeiro”

Tipo Preço -> gg-negocio.ind-tip-preco
Moeda Ctr -> gg-negocio.mo-cambio
1ª Data Pagto -> gg-negocio.data-1
Nr Parcelas -> gg-negocio.int-1

 

Agrupador “Logística”

Finalidade -> gg-negocio.cod-finalid (mostar combo-box com tabela gg-finalid)
Tipo Frete -> gg-negocio.ind-frete
Frete Porto -> gg-negocio.ind-frete-porto (1-Empresa 2 – CIF Porto)
Porto -> gg-negocio.des-porto-base
Data Export -> gg-negocio.dat-export
Mês/Ano Embarque -> gg-negocio.cod-mês-ano-emb (trazer como default, após a digitação da dat-export, se o dia da data export for >= 15, inicializar com o mês e ano da data export, se o dia for < 15, trazer o mês anterior, ter atenção no ano, caso seja janeiro, trazer mês 12 e ano anterior).
Cidade -> gg-negocio.nom-cidade-orig
UF -> gg-negocio.estado-orig
KM Adic Chão -> gg-negocio.km-adic-chao
KM Adic Asfalto -> gg-negocio.km-adic-asf

 

Pasta II

 

Agrupador “Financeiro”

  Sequencia        -> gg-negocio-pag.num-seq
  Gera Previsão    -> gg-negocio-pag.log-1
  Fornecedor       -> gg-negocio-pag.cod-emitente
  Nome Fornecedor  -> gg-negocio-pag.nome-abrev
  Data Pgto        -> gg-negocio-pag.dat-pagto
  Portador         -> gg-negocio-pag.portador
  Forma Pagto      -> gg-negocio-pag.forma-pagto
  Moeda            -> gg-negocio-pag.mo-codigo
  Banco            -> gg-negocio-pag.cod-banco
  Agencia          -> gg-negocio-pag.agencia
  Conta Corrente   -> gg-negocio-pag.conta-corrente
  Valor Pago       -> gg-negocio-pag.val-pagto
  Qtde Fixada      -> gg-negocio-pag.qtd-fixada
  Favorecido       -> gg-negocio-pag.favorecido

Obs.: mesmas informações que tem hoje no gg2015, pasta Pagamentos, porém foi incluso um campo gg-negocio-pag.cotação. Nos totais, colocar listando a média ponderada desta cotação. Label “Cot Banking”.  Conforme for preenchida a informação de data de pagamento e quantidade de parcelas, fazer a inclusão automática dos registros, permitindo alterar para informar as outras datas, e valores. Ao informar o valor, se tiver preço proposto, calcular a quantidade, e caso informar a quantidade calcular o valor.


 

Pasta III

 

Agrupador “Geral”

Tipo Compra -> gg-negocio.cod-tipo-compra  / descrição tipo compra

Fim exportação -> gg-negocio.log-exportacao

Prazo Entrega -> gg-negocio.dat-ini-embarque gg-negocio.dat-entrega-final

Estabel Adm -> gg-negocio.cod-establ-adm / descrição do estabel

Limite Fixação -> gg-negocio.dat-prazo-fix (se não tiver informação no gg-param-item, inicializar com 31/12/9999).

Modalidade -> gg-negocio.ind-modal

Referência -> gg-negocio.cod-referencia / descrição referencia

Operação -> gg-negocio.cod-operacao / descrição operação

Comprador -> gg-negocio.cod-comprado / descrição comprador

Endereço -> gg-negocio.des-endereço

 

Agrupador “Corretor”

Fornecedor/Corretor ->  gg-negocio.cod-corretor    / nome do corretor/emitente   

Referência Corretor -> gg-negocio.cod-refer-corretor

Valor Corretagem -> gg-negocio.val-corretagem     

% Comissão -> gg-negocio.val-comis

 

Agrupador “Gerar Contrato Automaticamente”

Descrição -> gg-contrato.des-contrato (Descrição do contrato e quando informado o sistema entenderá que ao ser gerado TS também será gerado contrato automaticamente)

Inscrição -> gg-contrato.cod-inscricao

Matricula -> gg-contrato.cod-matricula

Grupo de Imposto -> gg-contrato.cod-grupo

Flag "Recebe Outras Inscrições?" -> gg-contrato.log-aceita-incr

Flag "Recebe Outras Filiais?" -> gg-contrato.log-aceita-filiais

Compra Disponível -> -> gg-contrato.log-compra-disponivel

Local classificação -> gg-contrato.ind-local-clas

Peso Líquido -> gg-contrato.ind-local-pes


Linha de Alteração dos componentes:

Componente (gg-negocio-comp.cod-comp, somente altera os componentes que podem ser alterados gg-negocio-comp.tipo-entrada = 2 /* Informar */)
Moeda (gg-negocio-comp.mo-codigo, somente altera quando quando gg-negocio-comp.ind-calculo = 7 /* Preço Proposto*/)
Qtd à Fixar (gg-negocio-comp.qtd-a-fixar)
Cotação (gg-negocio-comp.dec-1)

Grid: Componente -> gg-negocio-comp.cod-comp,
        Ano/Mês -> gg-negocio-comp.mes-ano,
        Moeda -> gg-negocio-comp.mo-codigo,
        Un -> gg-negocio-comp.des-un,
        Qtde Fixada -> gg-negocio-comp.qtd-fixada,
        Valor -> gg-negocio-comp.val-fixada,
        Qtde a Fixar -> gg-negocio-comp.qtd-a-fixar,
        Valor -> gg-negocio-comp.val-a-fixar,
        U$/Ton ->Calculado,
        Cotação ->gg-negocio-comp. val-cotac,
        Vl Total -> Calculado,
        Vl Original -> gg-negocio-comp.val-original.          


 

GG1003E  -Tela Inclui/Modifica: (TradeSlip Venda)

 

Pasta trade Slip:

 

Agrupador “Negociação”:

Nr Trade Slip/Versão -> gg-negocio-vmi.num-trade-slip / gg-negocio-vmi.num-versao

Data Negociação -> gg-negocio-vmi.dat-trade-slip (padrão a data atual)

Contrato -> gg-negocio-vmi.cod-contrato / gg-contrato.des-contrato

Estabelecimento -> gg-negocio-vmi.cod-estabel (padrão o estabelecimento do usuário gg-ext-param-re)

Cliente/Nome -> gg-negocio-vmi.cod-emitente / gg-negocio-vmi.nom-emit

Item -> tt-gg-negocio-vmi.it-codigo / item.desc-item  (criar campo na tt it-codigo)

Refer Item -> tt-gg-negocio-vmi.cod-refer-item (somente para itens com controle pro referencia, criar campo na tt cod-refer-item)

gg-negocio-vmi.ind-motivo (1-Preço 2-Componente)

gg-negocio-vmi.ind-trade (1-Fixação 2 – Novo 3 – Pendente 4 – Alteração 5 - Cancelamento)

Quantidade Ctr/UN -> tt-gg-negocio-vmi.qtd-contrato / tt-gg-negocio-vmi.des-un (criar campos na tt).

gg-negocio-vmi.num-trad-slip-relac

gg-negocio-vmi.num-vers-relac

tt-gg-negocio-vmi.val-preco-inf-1  (criar campo na tt)

tt-gg-negocio-vmi.val-comp-marg-fim-2 (criar campo na tt)

 

Agrupador “Financeiro”

 

Tipo Preço -> gg-negocio-vmi.ind-tip-preco

Moeda Ctr -> gg-negocio-vmi.mo-cambio / moeda.descricao

Forma Pagto -> gg-negocio-vmi.ind-tipo-pagto (colocar combo-box)

Cond Pagto -> gg-negocio-vmi.cod-cond-pag / descriçãod a condição

1ª Data Pagto -> gg-negocio-vmi.data-1

Nr Parcelas -> gg-negocio-vmi.int-1

                Somente solicitar data de pagamento e nr de parcelas, se cod-cond-pag = 0. Quando for informado a data de pagamento, incluri registro no browser da Pag2, gg-negocio-vmi-cond.

 

Agrupador “Logística”

 

Finalidade -> gg-negocio-vmi.cod-finalid (mostar combo-box com tabela gg-finalid)

Tipo Frete -> gg-negocio-vmi.ind-frete

Frete Porto -> gg-negocio-vmi.ind-frete-porto (1-Empresa 2 – CIF Porto)

Porto -> gg-negocio-vmi.des-porto-base  / nome porto ao lado

Data Export -> gg-negocio-vmi.dat-export

Safra -> gg-negocio-vmi.des-safra (após digitar o item, trazer como padrão a safra para a data da negociação, ver exemplo no gg2000)

 

Mês/Ano Embarque -> gg-negocio-vmi.cod-mês-ano-emb (trazer como default, após a digitação da dat-export, se o dia da data export for >= 15, inicializar com o mês e ano da data export, se o dia for < 15, trazer o mês anterior, ter atenção no ano, caso seja janeiro, trazer mês 12 e ano anterior).

Local Entrega -> tt-gg-negoico-vmi.local-ent (criar campo na tt e guardar campo livre da gg-negocio-vmi). Se for informado local de entrega, buscar no local a cidade e uf, para inicializar os próximos 2 campos.

Cidade -> tt-gg-negocio-vmi.nom-cidade-orig (criar campo na tt e guardar campo livre da gg-negocio-vmi)

UF -> tt-gg-negocio-vmi.estado-orig (criar campo na tt e guardar campo livre da gg-negocio-vmi)

 

Pasta II

 

Agrupador “Cond Especiais”

 

gg-negocio-vmi-cond.nr-sequencia (auto incremental)

gg-negocio-vmi-cond.data-pagto

gg-negocio-vmi-cond.perc-pagto

gg-negocio-vmi-cond.nr-dias-venc

gg-negocio-vmi-cond.dec-2 (quantidade)

gg-negocio-vmi-cond.vl-pagto

gg-negocio-vmi-cond.dec-1 (cotação)

 

OBs.: Nos totais, colocar listando a média ponderada da cotação.  Conforme for preenchida a informada de data de pagamento e quantidade de parcelas, fazer a inclusão automática dos registros, permitindo alterar para informar as outras datas, e valores. Ao informar o valor, se tiver preço proposto, calcular a quantidade, e caso informar a quantidade calcular o valor.

Exemplo: No gg2027 tem esta tela abaixo, porém fazer conforme o padrão de compras.

Pasta III

 

Cli Rem Tri -> gg-negocio-vmi.cdn-clien-remes-trian / nome emitente.nome-emit

Fim exportação -> gg-negocio-vmi.log-exportacao

Prazo Entrega -> gg-negocio-vmi.dat-ini-embarque gg-negocio-vmi.dat-entrega-final

Estabel Adm -> gg-negocio.cod-establ-adm / descrição do estabel

Limite Fixação -> gg-negocio-vmi.dat-prazo-fix (se não tiver informação no gg-param-item, inicializar com 31/12/9999).

Cadência Cobrança -> gg-negocio-vmi.qtd-cadencia

Cadência Embarque -> gg-negocio-vmi.qtd-cadencia-emb (trazer como padrão a quantidade informada na pasta I)

Contrato Compra -> gg-negocio-vmi.cod-contrato-comp / gg-contrato.des-contrato

% Juros ->gg-negocio-vmi.val-perc-juros 

Dt Início Juros -> gg-negocio-vmi.dat-inicio-juros

Referência -> gg-negocio-vmi.cod-referencia / descrição referencia

Operação -> gg-negocio-vmi.cod-operacao / descrição operação

Região -> gg-negocio-vmi.nome-ab-reg

Vendedor -> gg-negocio-vmi.cod-comprado / descrição comprador (trazer como padrão usuário logado)

Observação -> gg-negocio-vmi.des-observacao

 

Agrupador “Corretor”

 

Corretor ->  gg-negocio-vmi.cod-corretor    / nome do corretor/emitente  

Repres -> gg-negocio-vmi.cod-rep / repres.nome

Referência Corretor -> gg-negocio-vmi.cod-refer-corretor

% Comissão -> gg-negocio-vmi.val-comis         

% Emis -> gg-negocio.perc-emis         

 

                Linha de Alteração dos itens:

 

Fazer um browser conforme o gg2027, porém ao confirmar o TS de vendas, fazer a inclusão automática de uma linha de tt-negocio-vmi-prod. Usar como padrão o local de entrega padrão do cliente. Se o usuário quiser, entra para modificar e ajustar. Os componentes de preço podem ficar ligados ao 1º item, e caso tiver divisão, ao confirmar, replica valores para as divisões.

 

                Linha de Alteração dos componentes:

 

                Componente (gg-negocio-vmi-comp.cod-comp, somente altera os componentes que podem ser alterados gg-negocio-vmi-comp.tipo-entrada = 2 /* Informar */)

  • Moeda (gg-negocio-vmi-comp.mo-codigo, somente altera quando quando gg-negocio-vmi-comp.ind-calculo = 7 /* Preço Proposto*/)
  • Qtd à Fixar (gg-negocio-vmi-comp.qtd-a-fixar), somente pode alterar quando for fixação de componente
  • Cotação (gg-negocio-vmi-comp.dec-1), apenas consulta

 

 

Monitor Hedge (GG0104)

 

Objetivo: Consultar os movimentos de solicitação de Hedge de Moeda, bem como efetuar reenvio, em caso de erro na tentativa de envio quando da aprovação de novos trade slips ou movimentos de baixa.

 

Tabelas Principais Utilizadas:

  • Gg-hedge
  • Gg-hedge-mov

 

Considerações:

  • Esboço Tela:

                                                                                                                                                                                             

 

  • Botão Filtro

 

 

  • Botão Atualizar: Este botão é para fazer carregar os dados da tela, conforme filtro.
  • 1º Browser “Solicitação Hedge”

Trazer todos gg-hedge conforme o filtro:

gg-hedge.idi-modul FORMAT ">9" LABEL “Tp Contrato" (include 1-Compra 2 –Venda)
gg-hedge.num-trad-slip FORMAT ">>>>,>>9" LABEL "Trade Slip"
gg-hedge.num-vers FORMAT ">>>>9" LABEL "Numero da Versão"
gg-hedge.cod-comp FORMAT "x(15)" LABEL "Componente"
gg-hedge.ind-situacao FORMAT "9" LABEL "Situação" (include 1 – Pendente, 2 – Confirmado, 3 – Cancelado)
gg-hedge.dat-hedge FORMAT "99/99/9999" LABEL "Data Hedge"
gg-hedge.val-fixac FORMAT "->>>,>>>,>>9.9999" LABEL "Valor Fixação"
gg-hedge.cod-boleta FORMAT "x(30)" LABEL "Num Boleto"
gg-hedge.val-cotac FORMAT ">>>,>>>,>>9.99999999" LABEL "Cotação"
gg-hedge.dat-mov FORMAT "99/99/9999" LABEL "Data Mov"
gg-hedge.cdn-hr-mov FORMAT ">>>,>>9" LABEL "Hora Mov"
gg-hedge.dat-ret FORMAT "99/99/9999" LABEL "Data Ret"
gg-hedge.cdn-hr-ret FORMAT ">>>,>>9" LABEL "Hora Ret"
gg-hedge.val-sdo-fixac FORMAT "->>>,>>>,>>9.9999" LABEL "Vl Saldo Hedge"
gg-hedge.ind-forma FORMAT "9" LABEL "Forma"
gg-hedge.cod-usuario FORMAT "x(12)" LABEL "Código Usuário"
gg-hedge.qtd-fixac FORMAT "->>>,>>>,>>9.9999" LABEL "Quantidade Fixação"
gg-hedge.qtd-sdo-fixac FORMAT "->>>,>>>,>>9.9999" LABEL "Qtd Sdo Hedge"
gg-hedge.ep-codigo FORMAT "x(03)" LABEL "Empresa"
gg-hedge.cod-contrato FORMAT "x(20)" LABEL "Contrato"
gg-hedge.it-codigo FORMAT "x(16)" LABEL "Item"
gg-hedge.cod-item-ext FORMAT "x(30)" LABEL "Item Ext"
gg-hedge.cod-comp-ext FORMAT "x(30)" LABEL "Comp Ext"
gg-hedge.num-id-hedge FORMAT ">>>>>>>>>9" LABEL "Num id Hedge"

  • 2º Browser “Movimentos Hedge”

Trader todos gg-hedge-mov, referente a solicitação de hedge, que estiver selecionado no 1º browser:
gg-hedge-mov.idi-trans FORMAT ">9" LABEL "Transação" (include 1-Baixa Pagto, 2-Cancelamento)
gg-hedge-mov.ind-situacao FORMAT "9" LABEL "Situação" (include 1 – Pendente, 2 – Confirmado, 3 – Cancelado)
gg-hedge-mov.val-movto FORMAT "->>>,>>>,>>9.9999" LABEL "Val Movto"
gg-hedge-mov.dat-mov FORMAT "99/99/9999" LABEL "Data Movimento"
gg-hedge-mov.cdn-hr-mov FORMAT ">>>,>>9" LABEL "Hora Movimento"
gg-hedge-mov.dat-ret FORMAT "99/99/9999" LABEL "Data"
gg-hedge-mov.cdn-hr-ret FORMAT ">>>,>>9" LABEL "Hora Retorno"
gg-hedge-mov.ind-forma FORMAT "9" LABEL "Forma Cálculo"
gg-hedge-mov.cod-usuario FORMAT "x(12)" LABEL "Código Usuário"
gg-hedge-mov.qtd-movto FORMAT "->>>,>>>,>>9.9999" LABEL "Qdt Mov"
- incluir uma variável para listar o número  do fechamento, ler gg-fecha-contrat com gg-hedge-mov.num-id-fechto-contrat, e ler gg-fecha of gg-fecha-contrat, e listar gg-fecha.num-fechto / gg-fecha.num-revisao.  
gg-hedge-mov.cod-estabel FORMAT "x(5)" LABEL "Estabelecimento"
gg-hedge-mov.cod-esp FORMAT "x(2)" LABEL "Esp"
gg-hedge-mov.serie-docto FORMAT "x(5)" LABEL "Série"
gg-hedge-mov.nro-docto FORMAT "x(16)" LABEL "Nro Docto"
gg-hedge-mov.nat-operacao FORMAT "x(6)" LABEL "Nat Operação"
gg-hedge-mov.cod-emitente FORMAT ">>>>>>>>9" LABEL "Emitente"
gg-hedge-mov.it-codigo FORMAT "x(16)" LABEL "Item"
gg-hedge-mov.cod-parcela FORMAT "x(02)" LABEL "Parcela"
gg-hedge-mov.num-id-hedge-mov FORMAT ">>>>>>>>>9" LABEL "Num id Mov"

 

  • Inicializador para chamada a partir de outras telas:

Esta tela poderá ser chamada a partir de outras telas, como exemplo a GG0103, onde será passado uma global com rowid das tabelas gr-gg-negocio ou gr-gg-negocio-vmi. Ou seja, no initialize, deve verificar se a variável gr-gg-negocio é <> ? e caso sim, efetuar a leitura da tabela gg-negocio, inicializar o filtro com o número do trade slip e também o contrato, e aplicar a leitura para demonstrar os dados. Se não tiver informação na global gr-gg-negocio, fazer o mesmo para gr-gg-negocio-vmi, lendo a tabela e inicializando o filtro com o número do trade slip e contrato.

 

  • Botões Reenvio Solicitação e Reenvio Movimentos:

Este botão irá repetir o envio da solicitação de Hedge ou movimento de Baixa/Cancelamento. Para desenvolver o conteúdo destes botões, aguardar definição da rotina do Web Services, pois será a mesma rotina.

 

  • Botões Retorno Manual da Solicitação de Hedge ou Baixa de Hedge.

Este botão irá abrir uma tela solicitando as informações para retorno manual do Hedge ou movimento de Baixa/Cancelamento. Verificar uma imagem para Atualização Manual.

 

Integração Com Sistema De Hedge 

  • A presente integração tem como finalidade o envio e recebimento de dados do Sistema de Hedge. Deste modo, o módulo de originação de grãos enviará e receberá os dados através da metolodogia SOAP. Para tanto, será necessário criar um serviço para receber tais dados, bem como a construção dos programas para o consumo do serviço do Sistema de Hedge.

 

Envio de Dados: Os métodos para envio de dados deveram estar presente na API ggapi127, comportando nessa API métodos para envio dos dados, bem como para tratamento de erros e verificação de conexão. Os métodos que serão executados são o getPreTaxaSBM, getHedge,  getHedgePayment e getHedgeRollover.


  • Método getPreTaxaSBM
    O referido método tem como finalidade consumir o serviço REQUESTQUOTATIONS do Sistema de Hedge de modo síncrono, com a finalidade de obter a pré-taxa a ser usada no Trade Slip. Assim, o módulo de Originação de Grãos enviará os seguintes campos para o Sistema de Hedge:    

     

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    Identification

    Id da Transação

    Inteiro

    SIM

    PurchaseSell

    Tipo da operação: Compra/ venda

    Logical(True/False)

    SIM

    AdDomain

    Domínio do Solicitante do Hedge

    Char

    Sim

    AdUserName

    Usuário do Solicitante do Hedge

    Char

    Sim

    LISTA DE DATAS

     

    Date

    Data Pagamento, Exportação ou Embarque, conforme configuração do componente.

    Date(YYYYMMDD)

    SIM

     


    Deste modo, na resposta do serviço deverá retornado a confirmação da gravação dos dados através do campo ErrorCode. Ocorrendo do campo ErrorCode ser diferente de “0”, deverá ser preenchido o campo “ErrorMessage” com o erro que ocorreu. Os dados retornados pelo Sistema de Hedge deverão ser:

     

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    Identification

    Id da Transação

    Inteiro

    SIM

    LISTA DE COMPONENTES

    ErrorCode

    Código numérico indicando o resultado da consulta, sendo 0 para sucesso, e demais numerais como código de erro.

    Inteiro

    SIM

    ErrorMessage

    Mensagem do SBM, quando o campo ErrorCode for diferente de 0.

    Varchar(200)

    NÃO

    Date

    Data enviada na solicitação

    Date(YYYYMMDD)

    SIM

    Quotation

    Valor da taxa calculada pelo SBM

    Decimal (6,4)

    SIM

     


    Para enviar e receber corretamente os dados, primeiramente deve ser verificado se o serviço está ativo. Os dados da conexão serão os que estão presente no cadastro do programa GG1024. Não sendo possível conectar ao serviço, deve ser informado para o usuário, assim o mesmo  poderá informar manualmente os dados. Superada a verificação do serviço, deve ser enviado os dados, e aguardada a resposta. A resposta deve ser interpretada, a fim de buscar as informações e verificar o sucesso ou falha da integração. Obetendo sucesso deve ser retornada uma temp-table com os as taxas dos componentes solicitados, ocorrendo erros, deve ser retornada uma temp-table de erros.

 

  •  Método getHedge
    O referido método tem como finalidade consumir o serviço CREATEHEDGE do SBM de modo assíncrono, com a finalidade de solicitar ao SBM a criação do Hedge para o Trade Slip. Assim, enviando os seguintes campos para o Sistema de Hedge:

     

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    PurchaseSell

    Tipo da operação: Compra/ venda no Originação de Grãos

    Logical(True/False)

    SIM

    PtsNumber

    Código do Trade Slip dos componentes que serão enviados para criar o Hedge.

    Char(25)

    SIM

    Company

    Código da empresa no Datasul

    Char(3)

    Sim

    AdDomain

    Domínio do Solicitante do Hedge

    Char

    Sim

    AdUserName

    Usuário do Solicitante do Hedge

    Char

    Sim

    LISTA DE COMPONENTES

     

    Sequence

    Identificador do Hedge criado no Originação de Grãos

    Varchar

    SIM

    Component

    Código Externo do Componente do Trade Slip

    Varchar(30)

    SIM

    ComponentIdentificatonIdentificação do componente, "Multa a pagar" ou "Multa a receber".Varchar(3)SIM

    BusinessUnity

    Código Externo do Produto do Trade Slip

    Varchar(3)

    SIM

    MaturityDate

    Data Pagamento, Exportação ou Embarque, conforme configuração do componente.

    Date(YYYYMMDD)

    SIM

    Amount

    Valor total do componente

    Decimal(11,2)

    Sim

    ProposedExchangeRate

    Taxa que será utilizada na criaçãodo pré-boleto no SBM.

    Decimal(8,6)

    Sim

    WashOutSequenceIdentificação do WashoutVarcharNÃO

     


    Deste modo, na resposta do serviço deverá retornado a confirmação da gravação dos dados através do campo ErrorCode. Ocorrendo do campo ErrorCode ser diferente de “0”, deverá ser preenchido o campo “ErrorMessage” com o erro que ocorreu. Os dados retornados pelo Sistema de Hedge deverão ser:

     

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    PurchaseSell

    Tipo da operação: Compra/ venda no Originação de Grãos

    Logical(True/False)

    SIM

    PtsNumber

    Código do Trade Slip dos componentes que serão enviados para criar o Hedge.

    Char(25)

    SIM

    LISTA DE COMPONENTES

    ErrorCode

    Código numérico indicando o resultado da consulta, sendo 0 para sucesso, e demais numerais como código de erro.

    Inteiro

    SIM

    ErrorMessage

    Mensagem do SBM, quando o campo ErrorCode for diferente de 0.

    Varchar(200)

    NÃO

    Sequence

    Identificador do Hedge criado no Originação de Grãos

    Varchar

    SIM

     


    Para enviar e receber corretamente os dados, primeiramente deve ser verificado se o serviço está ativo. Os dados da conexão serão os que estão presente no cadastro do programa GG1024. Não sendo possível conectar ao serviço, deve ser informado para o usuário o erro, bem como deve ser gravado na tabela gg-hedge-mov os erros da integração. Superada a verificação do serviço, deve ser enviado os dados, e aguardada a resposta. A resposta deve ser interpretada, a fim de buscar as informações e verificar o sucesso ou falha da integração. Obetendo sucesso, o programa deverá seguir seu fluxo normal, ocorrendo erros, deve ser retornada uma temp-table de erros e enviado e-mail para os responsáveis, conforme o GG1024.

  • Método getHedgePayment
    O referido método tem como finalidade consumir o serviço HEDGEREVERSION do Sistema de Hedge de modo assíncrono, com a finalidade de solicitar ao Sistema de Hedge a baixa do Hedge criado para o Trade Slip. Assim, enviando os seguintes campos para o Sistema de Hedge:   

     

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    AdDomain

    Domínio do Solicitante do Hedge

    Char

    Sim

    AdUserName

    Usuário do Solicitante do Hedge

    Char

    Sim

    LISTA DE BOLETOS

     

    SequenceIdentificador da Reversão criado no Originação de GrãosVarcharSIM

    PtsIdentification

    Código do Boleto no Sistema de Hedges

    Varchar(30)

    SIM

    Amount

    Valor a ser Revertido no Sistema de Hedges

    Decimal(11,2)

    SIM

    IntendedAmount

    Quando verdadeiro, a operação será executada. Quando falso, o valor será apenas registrado para controle.

    Decimal(18,2)

    SIM

    WashOutSequenceIdentificação do WashoutVarcharNÃO

     


    Deste modo, na resposta do serviço deverá retornado a confirmação da gravação dos dados através do campo ErrorCode. Ocorrendo do campo ErrorCode ser diferente de “0”, deverá ser preenchido o campo “ErrorMessage” com o erro que ocorreu. Os dados retornados pelo Sistema de Hedge deverão ser:

     

    LISTA DE BOLETOS

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    SequenceIdentificador da Reversão criado no Originação de GrãosVarcharSIM

    PtsIdentification

    Número do novo Pré-boleto criado pelo Sistema de Hedge

    Varchar(9)

    SIM

    Amount

    Valor a ser Revertido no Sistema de Hedges

    Decimal(11,2)

    SIM

    ErrorCode

    Código numérico indicando o resultado da consulta, sendo 0 para sucesso, e demais numerais como código de erro.

    Inteiro

    SIM

    ErrorMessage

    Mensagem do SBM, quando o campo ErrorCode for diferente de 0.

    Varchar(200)

    NÃO

     


    Para enviar e receber corretamente os dados, primeiramente deve ser verificado se o serviço está ativo. Os dados da conexão serão os que estão presente no cadastro do programa GG1024. Não sendo possível conectar ao serviço, deve ser informado para o usuário o erro, bem como deve ser gravado na tabela gg-hedge-mov os erros da integração. Superada a verificação do serviço, deve ser enviado os dados, e aguardada a resposta. A resposta deve ser interpretada, a fim de buscar as informações e verificar o sucesso ou falha da integração. Obetendo sucesso, o programa deverá seguir seu fluxo normal, ocorrendo erros, deve ser retornada uma temp-table de erros e enviado e-mail para os responsáveis, conforme o GG1024.

  • Método getHedgeRollover
    O referido método tem como finalidade consumir o serviço HEDGEROLLOVER do SBM de modo assíncrono, com a finalidade de solicitar ao SBM a rolagem do Hedge criado para o Trade Slip. Assim, enviando os seguintes campos para o Sistema de Hedge:  

     

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    AdDomain

    Domínio do Solicitante do Hedge

    Char

    Sim

    AdUserName

    Usuário do Solicitante do Hedge

    Char

    Sim

    LISTA DE BOLETOS

     

    SequenceIdentificador da Rolagem criado no Originação de GrãosVarcharSIM

    PtsIdentification

    Código do Boleto no Sistema de Hedges

    Varchar(30)

    SIM

    Amount

    Valor a ser Revertido no Sistema de Hedges

    Decimal(11,2)

    SIM

    MaturityDate

    Nova data de vencimento

    Date

    SIM

     


    Deste modo, na resposta do serviço deverá retornado a confirmação da gravação dos dados através do campo ErrorCode. Ocorrendo do campo ErrorCode ser diferente de “0”, deverá ser preenchido o campo “ErrorMessage” com o erro que ocorreu. Os dados retornados pelo Sistema de Hedge deverão ser:

     

    LISTA DE BOLETOS

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    SequenceIdentificador da Rolagem criado no Originação de GrãosVarcharSIM

    PtsIdentification

    Número do novo Pré-boleto criado pelo Sistema de Hedge

    Varchar(9)

    SIM

    Amount

    Valor a ser Revertido no Sistema de Hedges

    Decimal(11,2)

    SIM

    MaturityDate

    Nova data de vencimento

    Date

    SIM

    ErrorCode

    Código numérico indicando o resultado da consulta, sendo 0 para sucesso, e demais numerais como código de erro.

    Inteiro

    SIM

    ErrorMessage

    Mensagem do SBM, quando o campo ErrorCode for diferente de 0.

    Varchar(200)

    NÃO

     


    Para enviar e receber corretamente os dados, primeiramente deve ser verificado se o serviço está ativo. Os dados da conexão serão os que estão presente no cadastro do programa GG1024. Não sendo possível conectar ao serviço, deve ser informado para o usuário o erro, bem como deve ser gravado na tabela gg-hedge-mov os erros da integração. Superada a verificação do serviço, deve ser enviado os dados, e aguardada a resposta. A resposta deve ser interpretada, a fim de buscar as informações e verificar o sucesso ou falha da integração. Obetendo sucesso, o programa deverá seguir seu fluxo normal, ocorrendo erros, deve ser retornada uma temp-table de erros e enviado e-mail para os responsáveis, conforme o GG1024.


Recebimento de Dados: Os programas para recebimento de dados estarão presentes em fontes Java e Progress, em virtude da necessidade de habilitar um serviço WSDL no Totvs Datasul. Os fontes Java estarão responsáveis por habilitar os métodos no WSDL, receber os dados e tratar os mesmos para enviar via REST API para um fonte Progress. Assim, uma api Progress será responsável por gravar as informações pertinentes e fazer as respectivas validações de negócio. Portanto, após fazer os devidos tratamentos, será retornado para os fontes Java as informações de response, as quais serão disponibilizadas para o requisitante do serviço. Para o recebimento dos dados serão criados os métodos confirmHedge, confirmHedgePayment e confirmHedgeRollover disponibilizados através da URL http://servidor_datasul:porta_servidor/WebService/DatasulSBMIntegrationService?wsdl.

 

  • Serviço confirmHedge
    O referido serviço tem como finalidade disponibilizar o método confirmHedge para o consumo do SBM, com a finalidade de receber os dados de retorno da confirmação do Hedge. Assim, recebendo os seguintes campos:

     

    LISTA DE COMPONENTES

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    Sequencia

    Sequencia o Componente

    Inteiro

    SIM

    EmpresaEmpresaVarchar(3)SIM

    IdentificacaoPB

    Número do Pré-boleto criado pelo SBM

    Varchar(9)

    SIM

    Taxa

    Valor da taxa usada pelo SBM

    Decimal(8,6)

    SIM

     


    Deste modo, na resposta do serviço deverá retornado a confirmação da gravação dos dados através do campo CódigoDeErro. Ocorrendo do campo CódigoDeErro ser diferente de “0”, deverá ser preenchido o campo “MensagenDeErro” com o erro que ocorreu. Os dados retornados para o requisitante deverão ser:

     

    LISTA DE COMPONENTES

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    Sequencia

    Sequencia o Componente

    Inteiro

    SIM

    EmpresaEmpresaVarchar(3)SIM

    IdentificacaoPB

    Número do Pré-boleto criado pelo SBM

    Varchar(9)

    SIM

    CodigoDeErro

    Código numérico indicando o resultado da consulta, sendo 0 para sucesso, e demais numerais como código de erro.

    Inteiro

    SIM

    MensagenDeErro

    Mensagem do SBM, quando o campo CódigoDeErro for diferente de 0.

    Varchar(200)

    NÃO

     


    São códigos de erros tratados pela integração:

     

    CÓDIGO

    DESCRIÇÃO

    0

    Sucesso.

    1

    Pré-boleto já existe no sistema

    2

    Componentes não encontrados.

    3

    O dados do hedge para o componente já foram atualizados.

    4

    Situação do pTS não permite receber novos valores.

    100

    O código da sequencia não foi informado

    101

    O código do boleto não foi informado

    102

    O valor da taxa não foi informada

    103

    O código da empresa não foi informado

    999

    Erro de execução interna

     

     

     

     

    Os dados recebidos pelo web service serão tratados pelo programa java DatasulSBMIntegrationServiceImpl.java, que conterá todos métodos disponibilizados pelo WSDL. O referido programa deverá obter os dados recebidos, e enviar os mesmos através do serviço REST API para o programa ggapi900, que conterá a procedure confirmHedge. Assim, os dados poderão ser gravados na tabela gg-hedge-mov. Ocorrendo algum problema na gravação, deverá ser retornada uma temp-table de erros, o qual será disponibilizado pelo web service para o requisitante.

  • Serviço confirmHedgePayment
    O referido serviço tem como finalidade disponibilizar o método confirmHedgePayment para o consumo do SBM, com a finalidade de receber os dados de retorno da confirmação da baixa do Hedge. Assim, recebendo os seguintes campos:

     

    LISTA DE BOLETOS

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    SequenciaSequencia da ReversãoVarchar(25)SIM

    IdentificacaoPB

    Número do Pré-boleto criado pelo  SBM

    Varchar(9)

    SIM

    Valor

    Valor informado pelo Datasul para ser Reevertido

    Decimal(14,2)

    SIM

    Saldo

    Saldo do Pré-boleto no SBM

    Decimal(14,2)

    SIM

    Taxa

    Cotação usada pelo SBM para reversão

    Decimal(8,6)

    SIM

     


    Deste modo, na resposta do serviço deverá retornado a confirmação da gravação dos dados através do campo CódigoDeErro. Ocorrendo do campo CódigoDeErro ser diferente de “0”, deverá ser preenchido o campo “MensagenDeErro” com o erro que ocorreu. Os dados retornados para o requisitante deverão ser:

     

    LISTA DE BOLETOS

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    SequenciaSequencia da ReversãoVarchar(25)SIM

    IdentificacaoPB

    Número do Pré-boleto criado pelo SBM

    Varchar(9)

    SIM

    CodigoDeErro

    Código numérico indicando o resultado da consulta, sendo 0 para sucesso, e demais numerais como código de erro.

    Inteiro

    SIM

    MensagenDeErro

    Mensagem do SBM, quando o campo CódigoDeErro for diferente de 0.

    Varchar(200)

    NÃO

     


    São códigos de erros tratados pela integração:

     

    CÓDIGO

    DESCRIÇÃO

    0

    Sucesso

    1

    O boleto não foi encontrado

    2

    O dados do hedge para o componente já foram atualizados.

    3O dados do movimento não foram encontrados.

    100

    O código do boleto não foi informado

    101

    O valor não foi informado

    102

    O saldo não foi informado

    103

    A cotação utilizada não foi informada

    104O código da sequencia não foi informada

    999

    Erro de execução interna

     



    Os dados recebidos pelo web service serão tratados pelo programa java DatasulSBMIntegrationService.java, que conterá todos métodos disponibilizados pelo WSDL. O referido programa deverá obter os dados recebidos, e enviar os mesmos através do serviço REST API para o programa ggapi900, que conterá a procedure confirmHedgePayment. Assim, os dados poderão ser gravados na tabela gg-hedge-mov. Ocorrendo algum problema na gravação, deverá ser retornada uma temp-table de erros, o qual será disponibilizado pelo web service para o requisitante.

  • Serviço confirmHedgeRollover
    O referido serviço tem como finalidade disponibilizar o método confirmHedgeRollover para o consumo do SBM, com a finalidade de receber os dados de retorno da confirmação da rolagem do Hedge. Assim, recebendo os seguintes campos:

     

    LISTA DE BOLETOS

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    SequenciaSequencia da RolagemVarchar(25)SIM

    IdentificacaoPB

    Número do Pré-boleto antigo do SBM

    Varchar(9)

    SIM

    Valor

    Valor informado pelo Datasul para ser Rolado

    Decimal(14,2)

    SIM

    Saldo

    Saldo do Pré-boleto Antigo no SBM

    Decimal(14,2)

    SIM

    NewIdentificacaoPB

    Número do novo Pré-boleto criado pelo SBM

    Varchar(9)

    SIM

    Taxa

    Cotação utilizada pelo para a reversão do boleto

    Decimal(8,6)

    SIM

    NewTaxaCotação utilizada pelo novo pré-boleto SBMDecimal(8,6)SIM

     


    Deste modo, na resposta do serviço deverá retornado a confirmação da gravação dos dados através do campo CódigoDeErro. Ocorrendo do campo CódigoDeErro ser diferente de “0”, deverá ser preenchido o campo “MensagenDeErro” com o erro que ocorreu. Os dados retornados para o requisitante deverão ser:

     

    LISTA DE BOLETOS

    CAMPO

    DESCRIÇÃO

    FORMATO

    OBRIGATÓRIO

    SequenciaSequencia da RolagemVarchar(25)SIM

    NewIdentificacaoPB

    Número do novo Pré-boleto criado pelo Sistema de Hedge

    Varchar(9)

    SIM

    CodigoDeErro

    Código numérico indicando o resultado da consulta, sendo 0 para sucesso, e demais numerais como código de erro.

    Inteiro

    SIM

    MensagenDeErro

    Mensagem do SBM, quando o campo CódigoDeErro for diferente de 0.

    Varchar(200)

    NÃO

     


    São códigos de erros tratados pela integração:

     

    CÓDIGO

    DESCRIÇÃO

    0

    Sucesso

    1

    Movimentação não encontrada

    2

    O dados do hedge para o componente já foram atualizados.

    3O novo pré boleto já existe no sistema.
    4A movimentação não é do tipo Rolagem

    100

    O código do boleto não foi informado

    101

    O código do novo boleto não foi informado

    102

    A cotação utilizada não foi informada

    103

    O valor da Rolagem não foi informado

    104

    O valor do Saldo do boleto original não foi informado.

    105O código da sequencia não foi informada
    106A taxa da reversão não foi informada

    999

    Erro de execução interna

     



    Os dados recebidos pelo web service serão tratados pelo programa java DatasulSBMIntegrationService.java, que conterá todos métodos disponibilizados pelo WSDL. O referido programa deverá obter os dados recebidos, e enviar os mesmos através do serviço REST API para o programa ggapi900, que conterá a procedure confirmHedgeRollover. Assim, os dados poderão ser gravados na tabela gg-hedge-mov. Ocorrendo algum problema na gravação, deverá ser retornada uma temp-table de erros, o qual será disponibilizado pelo web service para o requisitante.

 

Outros Impactos

 

  •  GG1001B (gg1001b-b03, gg1001b-b05) - aba Comp e aba Fix não permitir modificar e/ou cancelar fixação de componente e/ou fixação de preço caso TS foi gerado pelo novo processso, ou seja quando gg-negocio.dat-export <> ?, emitir mensagem de bloqueio. Pasta III Listar campos novos desabilitados, apenas para consulta, gg-contrato.dat-export, gg-contrato.cod-finalid, gg-contrato.cod-mês-ano-emb.
  •  GG1090 Pasta Geral I, listar campos novos desabilitados, apenas para consulta, gg-contrato.dat-export, gg-contrato.cod-finalid, gg-contrato.cod-mês-ano-emb.
  •  GG4025 (extrato) No extrato gg4025, precisa tratar impacto da trava de cotação.

             Programa a alterar gg5025rp-a.p, tem dois pontos onde faz a verificação:

             IF gg-contrato.mo-cambio <> 0 AND gg-contrato-pre.cotacao <> 0

             Precisa acrescentar mais um teste:

             IF gg-contrato.mo-cambio <> 0 AND gg-contrato-pre.cotacao <> 0 and gg-contrato.mo-cambio = gg-contrato-pre.mo-codigo


 

  •  GG1091 (gg1091-b01 e gg1091-b02) - na aba Comp e aba Fix não permitir modificar fixação de componente e/ou fixação de preço caso TS foi gerado pelo novo processso. Emitir mensagem de bloqueio quando data de exportação estiver informada (gg-negocio-vmi.dat-export <> ?).

  •  GG1095 (gg1095-b04) – Na aba Aprovação de Margem, emitir mensagem de bloqueio e não permitir aprovar margem caso TS tenha data de exportação informada (gg-negocio.dat-export <> ?) .

  •  GG2015 – Não permitir efetuar cancelamento do TS, ou aprovação/Reprovação de Componente de Compra quando gg-negocio.dat-export <> ? emitindo mensagem de bloqueio.

  •  GG2027 – Não permitir efetuar cancelamento do TS, ou aprovação/reprovação banking quando gg-negocio-vmi.dat-export <> ? emitindo mensagem de bloqueio.

  •  gg-negocio.ind-situacao – revisar as rotinas que utilizam este campo para tratar as novas opções. Caso possível, utilizar a include i01gg146.i.

Lista: ggbo/bogg598.p,  ggbo/bogg605.p, gg1001-v25 (Eliminar as variáveis caso não sejam utilizadas), gg1001e-b01.w, gg1001e-b01.w, gg1001e-b05.w, gg1001e-b06.w, gg1095-b04.w, gg2013.w, gg2015a-b01.w, gg2018.w, gg2023c.w, gg8003.i2, ggapi057.p.

 

  •  gg-negocio-vmi.ind-situacao - revisar as rotinas que utilizam este campo para tratar as novas opções. Caso possível, utilizar a include i01gg151.i.

Lista: gg1001-v25.w, gg1001e-b03.w, gg1001e-b04.w, gg2026.w, gg2030.w, gg2028a.p

 

 

Estrutura de Menu

 

Procedimentos

Procedimento

GG0124

GG1034

GG0103

GG0104

Descrição

Parâmetros Integração Grãos

Finalidade Negócio

Registro Negócios

Monitor Hedge

Módulo

 GGP

 GGP

 GGP

GGP

Programa base

 GG0124

 GG1034

 GG0103

GG0104

Nome Menu

Parâmetros Integração Grãos

Finalidade Negócio

Registro Negócios

Monitor Hedge

Interface

GUI/

GUI/

GUI

GUI

Registro padrão

Sim

Sim

Sim

Sim

Visualiza Menu

Sim

Sim

Sim

Sim

Release de Liberação

 12.1.11

 12.1.11

 12.1.11

 12.1.11

 

Programas

Programa

GG0124

GG0134

GG0103

GG0104

Descrição

Parâmetros Integração Grãos

Finalidade Negócio

Registro Negócios

Monitor Hedge

Nome Externo

ggp/gg1024.w 

 ggp/gg1034.w

 ggp/gg0103.w

ggp/gg0104.w

Nome Menu/Programa

Parâmetros Integração Grãos

Finalidade Negócio

Registro Negócios

Monitor Hedge

Nome Verbalizado[1]

Parâmetros Integração Grãos

Finalidade Negócio

Registro Negócios

Monitor Hedge

Procedimento

 GG0124

 GG1034

 GG0103

GG0104

Template

Cadastro Simples

Cadastro Simples

Cadastro Complexo

Cadastro Simples

Tipo[2]

Manutenção

Manutenção

Tarefas

Tarefa

Interface

GUI

GUI

GUI

GUI

Categoria[3]

Não se Aplica

Não se Aplica

Não se AplicaNão se Aplica

Executa via RPC

Não

Não

Não

Não

Registro padrão

Sim

Sim

Sim

Sim

Outro Produto

Não

Não

Não

Não

Visualiza Menu

Sim

Sim

Sim

Sim

Query on-line

Sim

Sim

Sim

Sim

Log Exec.

Não

Não

Não

Não

Rotina (EMS)

Não se Aplica

Não se Aplica 

Não se Aplica 

Não se Aplica

Sub-Rotina (EMS)

Não se Aplica

 Não se Aplica

 Não se Aplica

Não se Aplica

Localização dentro da Sub Rotina (EMS)

Não se Aplica

 Não se Aplica

 Não se Aplica

Não se Aplica

Compact[4]

Não se Aplica

Não se Aplica

Não se Aplica

Não se Aplica

Home[5]

Não se Aplica

Não se Aplica

Não se Aplica

Não se Aplica

Posição do Portlet[6]

Não se Aplica

Não se Aplica

Não se Aplica

Não se Aplica

Informar os papeis com os quais o programa deve ser vinculado

 Não se Aplica

 Não se Aplica

 Não se Aplica

Não se Aplica

 

 

[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

[3] Categorias são obrigatórias para os programas FLEX.

[4] Obrigatório quando o projeto for FLEX

[5] Obrigatório quando o projeto for FLEX

[6] Obrigatório quando o projeto for FLEX

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