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

Originação de Grãos

Projeto1

Romaneio com Múltiplas Referências

IRM1

PCREQ-8036

Requisito1

PCREQ-8037

Subtarefa1

PDR_AGR_ORI004-29

Chamado2

 

Release de Entrega Planejada

12.1.9

Réplica

Não se Aplica

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

 

 Adequar as rotinas de compras para atender a compra e recepção de múltiplas referências.

 

Definição da Regra de Negócio


Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

GG1089 - Parâmetros Grãos Grupo Estoque

Alteração

Cadastros

-

GG1001 - Contratos

Alteração

Tarefas

-

GG1001B - Detalhe Contrato

Alteração

Tarefas

-

GG2015 - Trade Slip ComprasAlteraçãoNão se Aplica-
GG1013 - Transferência TitularidadeAlteraçãoTarefas-
GG2074 - Pendências Fiscais OriginaçãoAlteraçãoTarefas-
GG4025 - Extrato Contrato CompraAlteraçãoRelatórios-
GG4164 - Resumo Contrato CompraAlteraçãoRelatórios-
GG4089A - Extrato FornecedorAlteraçãoRelatórios-
GG8000 - Fechamento Financeiro CompraAlteraçãoTarefas-
GGAPI005B - Api para estorno das apropriações dos contratosAlteraçãoNão se Aplica-
GGAPI009 - Confirmar NotaAlteraçãoNão se Aplica-
GGAPI6004 - Pendência FiscaisAlteraçãoNão se Aplica-
GGAPI813 - Api Criar Entregas no Fechamento após alteração de quantidadeAlteraçãoNão se Aplica-
GGAPI816 - Api Criar Entregas no Fechamento após alteração de valorAlteraçãoNão se Aplica-
    



GG1089 – Parâmetro Grãos Grupo Estoque


 

Ao inserir ou modificar um grupo de estoque que tenha tipo controle for "Originação", solicitar dois novos campos conforme modelo acima.

Caso campo "Múltiplas Referências" estiver marcado, o campo "Permite Recebimento por Grupo" deverá ser desmarcado, e vice-versa.

  • O campo "Considera Preço Entrada" significa que ao receber uma Entrega/Compra via romaneio, não haverá fixação, vale para o fechamento financeiro o preço de entrada da nota fiscal, caso o contrato seja a fixar; (gg-ext-grup-estoque.log-consid-preco-entr)
  • O campo "Múltiplas Referências" significa que ao receber uma Entrega/Compra via romaneio, quando o item tiver o contrato por referência, antes de buscar a apropriação de contratos será permitido informar mais de uma referência e para cada uma efetuar a divisão de quantidade. (gg-ext-grup-estoque.log-consid-multi-refer)

 

 

GG1001 – Contratos


Ao criar um contrato do tipo originação, se o item pertencer a um grupo de estoque (gg1089) que esteja marcado para Considerar Preço Entrada, buscar a código da tabela na rotina de parâmetro grãos estabelecimento "GG1107" e gravar no novo campo da tabela (gg-contrato.cod-tab-preco-orig). Os programas que criam contratos são gg1001-v25.w, ggapi060.p, ggapi407.p.

 

 

GG1001B – Detalhe Contratos Compra


Inserir novo campo (gg-contrato.cod-tab-preco-orig) na pasta "I" e se o item pertencer a um grupo de estoque(gg1089) que esteja marcado para Considerar Preço Entrada, então deixar o campo ser alterado, obedecendo outras condições, como situação do contrato, permissão usuário, como já faz com outros campos, como o preço de pauta.

Na pasta "Mov", ao acionar o botão transferência de uma entrega que o item seja por preço da entrada, pode ser transferida entre contratos. Realizar teste de impacto.  Se for múltiplas referencias, verificar se o contrato destino tem o mesmo item. Ainda nesta pasta, inserir novos campos para consulta: (gg-contrato-mov.it-codigo) e (gg-contrato-mov.cod-refer - label Refer Item).

Na pasta "Totais" se o item estiver marcado como Considera Preço Entrada, então no campo calculado para Saldo a Fixar, mostrar sempre = 0 (zero), porque não há fixação para este caso.  Também tem este saldo na pasta Fix, mostrar 0 (zero).

 

 

GG2015 – Trade Slip Compra


Incluir validação nas API's (ggapi057 e/ou ggapi058) para caso o item pertença ao grupo de estoque cujo tipo de controle seja de Originação (GG1089), e estiver marcado para Considerar Preço Entrada = SIM, emitir uma mensagem de bloqueio e não permitir utilizar o Trade Slip para fixar preço. Poderá utilizar como sugestão a seguinte mensagem: 54577 ( Texto:Fixação não pode ser efetuada, Help: Grupo de Estoque do item considera Preço Entrada).

Esta mensagem de bloqueio deve ser feita quando o tipo de trade slip for de fixação de preço, ou fixação de componente ou um novo negócio com preço fixo.  Novo negócio com preço a fixar deve passar sem emitir a mensagem, pois não está fixando preço.

Incluir validação para caso o grupo de estoque do item esteja marcado para considerar o preço de entrada = sim, a moeda sempre deve ser a corrente (= zero).

 

Nota: Um Trade Slip pode ser usado para um item cujo grupo de estoque considera preço da entrada, quando NOVO e tipo de preço a fixar. Isso porque para incluir um contrato é obrigatório fazer um Trade Slip. Um item cujo grupo de estoque considera preço de entrada, não deve ter componentes de preço relacionados (GG1014).

 

 

GG2000 – Romaneio

 

Se o item tiver controle por referência e for de múltiplas referencias, não permitir informar o campo de referência da pasta classificação, mesmo que o usuário tenha permissão, pois as referências serão informadas no botão contrato.

Ajustar o programa ggapi100.p verificando se o item não tiver controle por referencia ou for referência múltiplas, fazer um desvio para não executar a api, pois não é necessário.

Ao informar os resultados de classificação na rotina gg2000-v03.w, verificar se o produto tiver controle por referencia e for múltiplas referencias, executar também o programa ggapi403.p, como acontece quando o fornecedor não é informado (= zero). Com isso, já vai ter o desconto de classificação e a quantidade líquida menos desconto do romaneio atualizado.

Na ggapi012.p efetuar um desvio para quando o contrato for à fixar e no gg1089 estiver marcado para considerar o preço de entrada, buscar o preço da seguinte forma:

 

FIND FIRST preco-item NO-LOCK

        WHERE preco-item.it-codigo  = pItem

          AND preco-item.cod-refer  = pReferencia

          AND preco-item.nr-tabpre  = gg-contrato.nr-tabpre-orig

          AND preco-item.dt-inival <= gg-mov.dat-mov-sai

          AND preco-item.situacao   = 1 /*Ativo*/ NO-ERROR.

IF AVAIL preco-item THEN DO:

        FIND FIRST tb-preco NO-LOCK

             WHERE tb-preco.nr-tabpre = pTabela no-error.

        IF AVAIL tb-preco THEN DO:

            IF tb-preco.situacao <> 1 THEN DO:

                ASSIGN pDescricaoErro = "Situação de tabela de preços " + pTabela + " deve ser Ativa.".

                RETURN "OK":U.

            END.

           

            ASSIGN pPrecoPauta = preco-item.preco-venda.

        END.

END.

ELSE

    Se não encontrar então considerar gg-contrato.val-preco-pad



Ao acionar o botão Contrato localizado na pasta contrato, caso o item esteja em um grupo de estoque que tenha tipo controle for "Originação", controle do item seja por referência (item.tipo-con-est = 4) e múltiplas referências no gg1089 = SIM, não chamar o ggapi004.p (dentro do gg2000-v04.i2) e sim um novo programa/tela para solicitar as quantidades por referência.

A nova tela deve apresentar um browser com a temp-table:  Referência, quantidade física, quantidade fiscal, quantidade de unidades (fardos), fornecedor e inscrição.

 

 

  • Campo referencia utilizar a pesquisa referência do item: Z01IN375. (CD0415 - Programa de cadastro das referencias);
  • Campos Fornecedor e inscrição sempre sugerir os que estão no romaneio (gg-mov). O usuário pode mudar, a partir da segunda sequencia de inclusão. Por via de regra, pelo menos a 1ª linha tem que ser do fornecedor do romaneio.
  • A soma da quantidade física tem que bater com a quantidade do romaneio (gg-mov.qtd-liq-clas). Então ao incluir, poderia sugerir sempre esta quantidade como quantidade física, descontando os registros já inclusos na temp-table.
  • Conforme a natureza de operação para o fornecedor/inscrição (exemplo leitura natur-oper ggapi004.p), permitir mudar o campo de qt fiscal se natur-oper.imp-nota = no, e deixar sempre desabilitado e a quantidade fiscal será igual à quantidade física se = yes.
  • As quantidades não poderão ser zeradas, seja física ou fiscal.
  • A quantidade de unidades é opcional, pode ser zero, este campo é apenas informativo/gerencial.
  • Poderá ser mostrado um total em tela, para os totais e acompanhamento da digitação:

         Total Físico: 10.000 kg       Total informado: 4.000 kg                 Saldo a informar: 6.000 kg

  • Ao confirmar a tela, fazer as validações e efetuar a atualização:
      1. Para cada linha da temp-table, executar a ggapi011.p, em seguida ggapi011a.w, e depois ggapi013.p, onde poderá ter divisão de uma linha da temp informada em tela, para mais de um contrato. A tt-contrato-aprop terá que ser atualizada com a referência da temp-table informada em tela.
        Obs.: estas apis podem exigir efetuar validações, ver exemplo na ggapi004.p;
      2. Fazer a apropriação de contratos, poderia ser a procedure pi-contratos da ggapi004.p, transformar a procedure em include e usar neste novo programa;
      3. Na ggapi004.i1, verificar se tem a referência na tt-contrato-aprop, se tiver usar desta, se não então continuar buscando do contrato. Também neste programa ao criar gg-mov-contr-lote, buscar a referencia da gg-mov-contr.referencia;
      4. Na ggapi004.i1, tem uma chamada a ggapi076.p, porém se o item considera o preço da entrada, então não é necessário executar. Esta verificação pode ser feita dentro da ggapi076.p, assim em outros pontos que chama a ggapi076.p, já estará tratando.
      5. Verificar um campo para gravar a quantidade de unidades (gg-mov-contr.qtd-unid-refer), porém se quebrar em mais de um contrato,  fazer um rateio.

Ao acionar o botão Produtores localizado na pasta contrato, caso item seja controlado por múltiplas referências, não permitir utilizar esta opção emitindo mensagem de bloqueio.

Nota: Para que o item possa assumir o preço da entrada, teria que testar e verificar possíveis impactos.

 

 

GGAPI005B – Estorno da Apropriação  de Contratos

 

Ao efetuar o estorno de um movimento (gg-mov-contr), quando o item for controle por referência e estiver marcado como múltiplas referências, estornar todos os movimentos do romaneio. Atualmente já faz este tratamento para estornar tudo, apenas certificar que os movimentos por referência também são considerados.

Se dentro da ggapi076, houver um desvio para não executar, o restante do estorno está ok.

 

 

GGAPI009 – Confirmar Nota

 

API já utiliza gg-mov-contr.referencia, desta forma, não haverá impacto. A rotina possui uma verificação no saldo de terceiros, que utiliza a referencia da gg-mov, porém esta opção não é usada em compras, somente para retorno de terceiros. Também não terá impacto. 

 

 

GGAPI6004 – Pendências Fiscais

 

Revisar a API para acumular as pendências também por referência (gg-pendencia.cod-refer-item), para tal, a referencia é obtida da tabela gg-mov-contr-lote da mesma forma como é obtido campo item.

 

 

GG1013 – Transferência de Titularidade

 

A rotina não deve permitir a transferência quando o contrato de origem tiver item com controle por referencia e for de múltiplas referências, para tal, inserir validação no programa emitindo mensagem de bloqueio.

 

 

GG2074 – Pendências Fiscais

 

Ao solucionar uma pendência fiscal de complemento de quantidade, caso contrato que está vinculado a pendência não tiver saldo suficiente, será aberta nova tela para seleção de outro contrato e caso não haja novos contratos, será gerado um contrato balcão. Esse processo dar-se-á na rotina gg2074a(Dados Nota) através da procedure pi-busca-contratos.

Na confirmação da pendência fiscal (gg2074e), ao criar registro temporário dos movimentos do contrato, atualizar o campo referência (tt-gg-mov-contr.referencia) conforme a referência que está na pendência (gg-pendencia.cod-refer-item).

 

 

GGAPI6008A – API Criação de Romaneio

 

Evoluir a API para adicionar o campo referência na tabela temporária de contratos do movimento de entrada/saída de grãos (gg-mov-contr), e atualizar a tabela temporária (tt-contrato-aprop), com o campo da referencia, pois será chamado na procedure da ggapi004.i1.

Na procedure piCriarRomaneios a atualização da referência (gg-mov-contr.referencia = gg-mov.referencia) somente deve ser efetuada caso campo (gg-mov-contr.referencia) estiver em branco. Isto, porque o campo pode conter valor de alguma referencia informada manualmente.

Há uma situação que pode ocorrer quando o tipo de controle de quantidade nos contratos estiver como Fiscal e ocorrer entrada via romaneio com quantidade física maior, no momento de solucionar a pendência,o contrato não terá mais saldo, e não há outro contrato com as mesma características para ser selecionado, assim a rotina irá apropriar em contrato balcão. Após a chamada da pi-balcao, se gg-mov-contr estiver disponível atualizar a referencia se na tabela temporária houver referencia (ttGGmovContr.referencia <> "").

 

 

GG4002 – Impressão Romaneio


Imprimir a quantidade de unidades (gg-mov-contr.qtd-unid-refer)  conforme modelo acima.

 

 

GG4025 – Extrato Contrato Compra

 

Ajustar o relatório para que nos campos de saldo a fixar, se o item considerar o preço da entrada, mostrar sempre 0 (zero).

Inserir o campo referencia na impressão dos lotes das entregas, assim como na impressão das pendências não solucionadas.

 

 

GG4164 - Resumo Contrato Compra

 

Nos campos de Valor a fixar, se o item considerar o preço da entrada, mostrar sempre 0 (zero).

 

 

GG4089A - Extrato Produtor

 

 

Inserir nas entregas(gg4089arp.i6) o campo de referencia. Na impressão das entregas acrescentar na leitura a quebra por referencia.

Nos campos de saldo a fixar, se o item considerar o preço da entrada, mostrar sempre 0 (zero).

 

 

GG8000 - Fechamento Financeiro


    1. bogg585 (gg-fecha-contrat):
      Quando o item considera preço da entrada(gg-ext-grup-estoque.log-consid-preco-entr), a procedure piQtdAFixar, sempre deve retornar = 0 (zero) para a quantidade a fixar.  O mesmo quando for a opção de fixação na procedure piQtdDisponivel, ou seja retornar = 0 a quantidade a fixar.

    2. ggapi802.p (fixações):
      No início do programa, caso o item considera o preço de entrada, retornar (sem dar erros).

      1. ggapi805.p (valorizar fechamento):
        Como não terá fixação, será necessário buscar os preços das notas de entrada, para tal, criar um desvio para não executar a piCalcularValorBrutoContrat, quando o item considera preço de entrada.
        Após a leitura da ttFechaContratPre (FOR EACH ttFechaContratPre), se item considera preço de entrada, o valor bruto será:  assign de-val-receb = de-val-bruto.

      2. bogg583.p (gg-fecha)
        Ao processar a atualização dos valores do fechamento verificar onde cria a gg-fecha-item e fazer com base na gg-fecha-contrat-entr e a referencia com base na gg-contrato-mov.cod-refer, mas somente quando for pagamento(gg-fecha.idi-tip-fechto = 1) e considera preço entrada(gg-ext-grup-estoque.log-consid-preco-entr).

    3. ggapi801.p (Manutenção dos Contratos no Fechamento):
      incluir validação para não permitir ter um contrato no fechamento que tenha referencias múltiplas e o outro não.

    4. gg8002b (Seleção de Contratos):


      Na seleção de entregas, mostrar o campo de referencia (gg-mov-contr.referencia)

    5. gg8002bb (Filtro):


      Na opção de selecionar as entregas, incluir opção de filtro por referência


    6. ggapi813.p (alterar a quantidade do item )
      Não há impacto na rotina

    7. ggapi816.p (alterar a quantidade do valor líquido) 
      Adequar a rotina para que o cálculo do valor bruto da entrega quando não houver informação na "tt-gg-fecha-contrat-pre" buscar as informações através da "gg-mov-contr" conforme exemplo.

      FOR FIRST gg-mov-contr FIELDS (val-mercad qtd-fiscal) NO-LOCK

          WHERE gg-mov-contr.cod-estabel  = gg-contrato-mov.cod-estabel

            AND gg-mov-contr.num-romaneio = gg-contrato-mov.num-romaneio

            AND gg-mov-contr.num-seq      = INT(gg-contrato-mov.referencia):

          CREATE tt-valor-bruto.

          ASSIGN tt-valor-bruto.num-ord-priorid = 0

                 tt-valor-bruto.qtd-fiscal  = gg-mov-contr.qtd-fiscal

                 tt-valor-bruto.val-bruto   = gg-mov-contr.val-mercad.

      END.



 

 

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

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))