Á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

Compras

Segmento Executor

Manufatura

Projeto1

MANMAT01

IRM1

MANMAT01-1140

Requisito1

MANMAT01-1144

Subtarefa1

MANMAT01-1423

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

(Obrigatório)

 

- definir comprador
- regras para grupo de compra
- Zoom operação
- Zoom contrato e item de contrato
- Zoom de item de pedido de venda
- Campo quantidade da entrega

- Regras divisão entre fornecedores
- Regras mostra divisão entre fornecedores
- Regras parâmetros de parcelas
- Regras para inclusão de itens com permissão
- Regras para sugestão de narrativa conforme narrativa do item
- Regras para sugestão de usuário logado como requisitante

- Regras inclusão OC
- Regras split OC
- Regras alteração OC
- Regras Cópia OC
- Regras entregas

- Gravar usuário que criou a ordem

- ppt



Objetivo

 Desenvolver as telas para gerenciamento de ordens de compra do módulo de compras em HTML.


Requisitos:

  • Listar ordens de compra;
  • Definir comprador para ordem de compra;
  • Manutenir ordem de compra;
  • Gerenciar o Split de ordens de ordens de compra;
  • Consultar ordens de compra;
  • Transferir ordens de compra (HCOR);
  • Validar de inclusão de OC somente para itens que o comprador possui permissão (HCOR);
  • Identificar ordens de compra rejeitadas pelo MLA (TUDPUW);
  • Visualizar follow-up na consulta de ordem de compra (TUGAKZ);
  • Identificar ordens de compra recebidas parcial e total (TUOSSK);
  • Sugerir narrativa da ordem de compra com a narrativa do item (TUVKPU);
  • Sugerir usuário logado como requisitante na inclusão de ordem de compra;


Requisitos que não serão atendidos:

  • Opções na listagem de ordens que dizem respeito a cotações, pacotes e pedidos não serão inseridas neste momento (somente serão colocadas em tela quando os respectivos requisitos forem desenvolvidos);
  • Gravação de usuário de inclui ordem de compra no progress;
  • Validação de inclusão de itens que não são de responsabilidade do comprador no progress;
  • Sugestão de narrativa da ordem conforme narrativa do item no progress;
  • Sugestão de requisitante conforme usuário logado no progress;

(Obrigatório)

Definição da Regra de Negócio

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

html.cc0301

Criação

Compras --> Tarefas --> Manter Ordens de compra

Listagem/manutenção de ordens de compra
html.cc0505aCriaçãoCompras --> Consultas --> Consultar Ordens de compraConsulta de ordens de compra
CD1700AlteraçãoCadastros Gerais --> Cadastros --> Manutenção Usuário MateriaisInclusão de parâmetro para validar inclusão de item em OC
html.cc0505 AlteraçãoCompras --> Consultas --> Consultar Ordem de CompraInclusão de consulta de follow-up, informações de ordem recebida parcialmente/total e rejeitada pelo MLA
CC0104AlteraçãoCompras --> Cadastros --> Manutenção Parâmentros ComprasInclusão de parâmetro para sugerir narrativa da ordem conforme o item e sugestão de requisitante



Exemplo de Aplicação:

  • Alguns navegadores deixarão de suportar plug-ins em breve, como é o caso do Flash Player, utilizado para execução das interfaces Flex. Com isso existe a necessidade de migrar as interfaces para uma tecnologia compatível com os navegadores.


Detalhamento das regras de negócio

A solução proposta consiste em desenvolver as telas propostas com o novo Framework HTML da TOTVS, com as mesmas funcionalidades existentes no Flex atualmente, assim como incluir alguns pequenos itens de melhoria sugeridos por clientes e citados nos requisitos. 


1) Listagem de ordens de compra:

 

  • Consiste na conversão da tela existente em Flex, de listagem de ordens de compra para a tecnologia HTML, considerando todas as funcionalidades existentes;
  • A tela de ordens de compra em Flex apresenta somente as ordens que o comprador precisa gerenciar no processo de compra, sem mostrar por exemplo, ordem recebidas ou eliminadas, a nova interface em HTML irá que prever a apresentação e filtros de ordens em qualquer situação;
  • No flex também é possível visualizar apenas as ordens de compra referente ao comprador logado no sistema, no HTML haverá opções de filtro para que tenha acesso a ordens de outros compradores também;
  • Deverá ser respeitada a segurança por estabelecimento para apresentação das ordens;
  • Deverá ser desenvolvida a tela para definição de comprador;
  • Deverão ser previstas buscas para facilitar encontrar as ordens por narrativa e por narrativa do item;
  • A tela de listagem que terá todas as opções para manutenir as ordens de compra será utilizada também para realizar a consulta de ordens, ou seja, deverá funcionar com a listagem/consulta de requisições (html.cd1406), com duas chamadas distintas para menu;
  • Na nova listagem será possível identificar ordens de compra rejeitadas pelo MLA (ou seja, cotação rejeitada) e também se a ordem está recebida parcialmente ou totalmente. Essas opções não existiam no Flex.

O protótipo da tela é apresentado na sequência:


 

Sobre as funcionalidades e informações disponíveis na tela:

  • As ordens serão categorizadas na tela, conforme sua situação (sendo apresentadas com cores diferenciadas), teremos as seguintes situações:
    • Sem Cotação: a ordem está com situação de "Não confirmada", ou seja, ainda não possui nenhuma cotação cadastrada;
    • Em Cotação: a ordem está com situação de "Em cotação", ou seja, já possui cotações cadastradas, porém ainda não foi aprovada nenhuma;
    • Cotada: a ordem está com a situação de "Cotada", ou seja, já possui uma cotação que foi aprovada;
    • Com Pedido: a ordem está com situação de "Confirmada", ou seja, está vinculada a um pedido de compra;
    • Recebida Parcial: a ordem está com situação de "Confirmada", ou seja, está vinculada a algum pedido de compra que já teve algum recebimento, porém ainda não está totalmente recebido;
    • Recebida Total: a ordem está com situação de "Recebida", ou seja, a ordem de compra está totalmente recebida;
    • Eliminada: a ordem está com situação de "Eliminada", ou seja, a ordem de compra estava vinculada a um pedido de compra que já estava impresso e a ordem foi eliminada do mesmo.
  • Sobre as informações apresentadas na listagem, elas serão as seguintes, sendo que variam conforme a situação da ordem:
    • Número da ordem: será a informação principal, que possui um link de detalhe para a tela já existente de consulta de ordem (html.cc0505);
    • Item (código e descrição);
    • Estabelecimento;
    • Prioridade: apresentada a prioridade de aprovação da ordem;
    • Quantidade;
    • Data de entrega: Caso a ordem possua apenas uma entrega, apresenta a data de entrega em questão, caso contrário deve apresentar "Parcelada";
    • UM;
    • Requisitante;
    • Comprador;
    • Pacote;
    • Cotar até: Caso já tenha sido solicitado cotação para a ordem, apresenta a data que foi informada como limite para os fornecedores responderem. Este campo somente deve ser apresentada para as situações "Sem Cotação" e "Em Cotação";
    • Pendente Aprovador: Indica que existe cotação pendente de aprovação para esta ordem. Este campo somente deve ser apresentada para a situação "Em Cotação";
    • Rejeitada: Indica que a cotação da ordem foi rejeitada no processo de aprovação. Este campo somente deve ser apresentada para a situação "Em Cotação";
    • Pedido: Este campo somente deve ser apresentada para as situações "Com Pedido" , "Recebida Parcial", "Recebida Total" e "Eliminada";
    • Fornecedor (código e nome abreviado): Este campo somente deve ser apresentada para as situações "Cotada", "Com Pedido" , "Recebida Parcial", "Recebida Total" e "Eliminada";
    • ContratoEste campo somente deve ser apresentada para as situações "Com Pedido" , "Recebida Parcial", "Recebida Total" e "Eliminada";
    • Informações apresentadas no "Exibir detalhes":
      • Descrição complementar;
      • Narrativa do Item;
      • Quantidade recebida: Apresenta a quantidade total da ordem que já foi recebida. Este campo somente deve ser apresentada para as situações "Recebida Parcial", "Recebida Total";
      • Comprador original: Apresentar somente se houver um comprador original para a ordem.
  • O filtro deverá fazer a busca por:
    • Ordem (igualdade);
    • Item (igualdade);
    • Descrição do Item (inicia com);
  • A ordenação poderá ser feita por:
    • Ordem (padrão da maior para menor);
    • Data de emissão;
    • Data de entrega (quando houver mais de uma considerar a data de entrega da mais antiga);
    • Estab;
    • Situação;
    • Prioridade;
  • Sobre as ações disponíveis na tela:
    • Para cada registro de ordem, serão disponibilizadas as seguintes opções:
      • Detalhar (através do link do número da ordem);
      • Editar (somente para ordens com situação Sem Cotação e Em Cotação);
      • Excluir (somente para ordens com situação Sem Cotação e Em Cotação);
      • Copiar;
      • Definir Comprador (somente para ordens que estiverem sem um comprador informado);
      • Transferir (somente para ordens que já tiverem um comprador definido e situação Sem Cotação, Em Cotação ou Cotada);
      • Follow-up;
    • Na parte superior da tela estarão disponíveis as seguintes ações:
      • Adicionar;
      • Transferir (considera os registros que estiverem selecionados que estejam como Sem Cotação, Em Cotação ou Cotada);
      • Definir comprador (considera os registros que estiverem selecionados xxxxxxxxxxxxxxxxxxxxx);
  • A tela deverá prever o contador de ordens para os filtros utilizados, assim como paginação de 50 em 50 registros;
  • O filtro avançado deverá prever as seguintes opções:
    • Situação da ordem: 
      • Sem Cotação (por padrão marcado);
      • Em Cotação (por padrão marcado);
      • Cotada (por padrão marcado);
      • Com Pedido;
      • Recebida Parcial;
      • Recebida Total;
      • Eliminada;
    • Prioridade de aprovação (por padrão todas marcadas):
      • Baixa;
      • Média;
      • Alta;
      • Muito Alta;
    • Pendente de aprovação (por padrão marcado);
    • Aprovada (por padrão marcado) - parâmetro aplicado somente para ordens em "Em cotação";
    • Rejeitada (por padrão marcado) - parâmetro aplicado somente para ordens em "Em cotação";
    • Expectativa (por padrão marcado) - parâmetro aplicado somente para ordens em "Em cotação";
    • Faixa de número de ordem;
    • Faixa de data de emissão (por padrão apresenta o período de um mês)
    • Faixa de data de entrega (Se alguma parcela da ordem estiver na faixa deve apresentar a ordem);
    • Faixa de estabelecimento;
    • Faixa de requisitante;
    • Faixa de pacote;
    • Faixa de contrato;
    • Faixa de pedido;
    • Faixa de nome abreviado do fornecedor;
    • Descrição complementar da ordem (conteúdo deve ser buscado como "contém";
    • Faixa de código de item;
    • Faixa de descrição de item;
    • Faixa de código complementar do item;
    • Faixa de informação complementar do item;
    • Narrativa do item (conteúdo deve ser buscado como "contém";
    • Faixa de comprador;
    • Faixa de grupo de compra (xxxxxxxx);
    • Faixa de comprador original;

Protótipo da pesquisa avançada:


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

Como será possível gerar ordens de compra para um comprador alternativo durante o processo de geração de ordens, deverá existir uma rotina para transferência de ordens de compra. Neste caso o usuário procura as ordens de compra a serem transferidas, as seleciona e utiliza a rotina de transferência.

Ao confirmar a transferência, deverá ser verificado se o usuário selecionou alguma ordem de compra que esteja em uma situação diferente de "Sem Cotação", "Em cotação", e "Cotada", ou que tenha o comprador igual ao comprador selecionado para transferência. Se confirmada essa situação, emitir um aviso: "Ordens de compra que estejam em situação diferente de Sem Cotação, Em Cotação, Cotada e que sejam do comprador xxxxxxx foram desconsideradas".

A transferência mudará o comprador das ordens selecionadas (que estejam definidas conforme regra acima), para o comprador informado em tela.

Caso a ordem de compra "transferida" não tenha o campo de comprador original preenchido, o mesmo deverá ser atualizado com o comprador antes da transferência.

Informações técnicas sobre a listagem de ordens:

  • Para carregar as informações de tela, deverá ser criada uma nova API ccp/ccapi360.p, a exemplo da ccp/ccapi354.p criada para o programa html.mcc.cd1406;
  • Em todas as temp-tables que for possível, acrescentar o "epc-value" para seja possível customizar.
  • A tabela base para leitura das informações é a ordem-compra, e tabela de entregas é prazo-compra. Para carregar os dados de tela montar uma query dinâmica com DataSet.
  • Para a segurança por estabelecimentos, deve definir no início do programa o seguinte:

    &scoped-define TTONLY YES 
    {include/i-estab-security.i} 

    Dessa forma a leitura deverá ser feita (sempre considerando a tabela de estabelecimentos como tabela pai): 

    FOR EACH {&ESTAB-SEC-TT} NO-LOCK:
            FOR EACH ordem-compra WHERE ordem-compra.cod-estabel = {&ESTAB-SEC-TT-FIELD}  <demais condições> NO-LOCK:
                   (...)
            END.
    END.

  • Sobre as situações da ordem:
    • Sem Cotação: ordem-compra.situacao = 1
    • Em Cotação: ordem-compra.situacao = 5
    • Cotada: ordem-compra.situacao = 3
    • Com Pedido: ordem-compra.situacao = 2 sordem-compra.qt-acum-receb = 0
    • Recebida Parcial: ordem-compra.situacao = 2 e ordem-compra.qt-acum-receb > 0
    • Recebida Total: ordem-compra.situacao = 6
    • Eliminada: ordem-compra.situacao = 4
  • Sobre as informações apresentadas na listagem:
    • Número da ordem: ordem-compra.numero-ordem
    • Item (código e descrição): ordem-compra.it-codigo e item.desc-item
    • Estabelecimento: ordem-compra.cod-estabel
    • Prioridadeprioridade-aprov (mostrar descrição - Verificar como é feito na fch/fchmat/fchmataddpurchaserequisitions.p)
    • Quantidade: ordem-compra.qt-solic
    • Data de entrega: Caso a ordem possua apenas uma entrega prazo-compra.data-entrega, apresenta a data de entrega em questão, caso contrário deve apresentar "Parcelada";
    • UM: prazo-compra.un (da primeira entrega)
    • Requisitante: ordem-compra.requisitante
    • Comprador: ordem-compra.cod-comprado
    • Pacote: ordem-compra.nr-processo
    • Cotar até: ordem-compra.dat-fim-leilao-rfq e ordem-compra.hra-fim-leilao-rfq
    • Pendente Aprovador: regras abaixo
    • Rejeitada: regras abaixo

Os dois campos "Pendente Aprovador" e "Rejeitada" somente devem ser apresentados caso seja utilizada aprovação para cotação, ou seja (param-compra.log-1 = yes e param-aprov.aprovac-cotac = yes).

Neste caso utilizar a lap/mlaapi015.p (procedure pi-retorna-pendencia) para verificar o status da pendência.


FIND FIRST cotacao-item WHERE cotacao-item.numero-ordem = ordem-compra.numero-ordem AND (cotacao-item.cot-aprovada OR cotacao-item.log-1) NO-LOCK NO-ERROR.

FIND estabelec WHERE estabelec.cod-estabel = ordem-compra.cod-estabel NO-LOCK NO-ERROR.

IF AVAIL estabelec THEN
       run cdp/cd9970.p (input ROWID(estabelec), output i-empresa).

create tt-mla-chave.

assign tt-mla-chave.valor[1] = string(cotacao-item.numero-ordem)
tt-mla-chave.valor[2] = string(cotacao-item.cod-emitente)
tt-mla-chave.valor[3] = cotacao-item.it-codigo
tt-mla-chave.valor[4] = string(cotacao-item.seq-cotac).

RUN  pi-retorna-pendencia IN h-handle(INPUT 5, INPUT i-empresa,INPUT ordem-compra.cod-estabel, INPUT TABLE tt-mla-chave, INPUT NO, INPUT NO, OUTPUT TABLE tt-pendencias).

FIND FIRST tt-pendencias WHERE tt-pendencias.ind-situacao = 3  NO-LOCK NO-ERROR.

IF AVAIL tt-pendencias THEN DO:

     <não pendente, rejeitada>

 

END.

ELSE DO:

    FIND FIRST tt-pendencias WHERE tt-pendencias.ind-situacao = 1  NO-LOCK NO-ERROR.

    IF AVAIL tt-pendencias THEN DO:

        <Pendente, Não rejeitada>

    END.

    ELSE DO:

         <Não pendente, Não rejeitada>

    END.

END.

    • Pedido: ordem-compra.num-pedido
    • Fornecedor (código e nome abreviado): ordem-compra.cod-emitente e emitente.nome-abrev
    • Contrato: ordem-compra.nr-contrato
    • Informações apresentadas no "Exibir detalhes":
      • Descrição complementar: ordem-compra.narrativa
      • Narrativa do Item: item.narrativa
      • Quantidade recebida: ordem-compra.qt-acum-receb
      • Comprador original: ordem-compra.char-1 (posição inicial 195, 12 posições)
  • O filtro avançado deverá prever as seguintes opções:
    • Aprovada (por padrão marcado) - parâmetro aplicado somente para ordens em "Em cotação";
    • Rejeitada (por padrão marcado) - parâmetro aplicado somente para ordens em "Em cotação";
    • Expectativa (por padrão marcado): ordem-compra.expectativa;
    • Faixa de contrato;
    • Faixa de pedido;
    • Faixa de nome abreviado do fornecedor;
    • Descrição complementar da ordem (conteúdo deve ser buscado como "contém";
    • Faixa de código de item;
    • Faixa de descrição de item;
    • Faixa de código complementar do item;
    • Informação complementar do item: 
    • Grupo de compra (xxxxxxxx);

Comprador original: ordem-compra.char-1 (posição inicial 195, 12 posições)

Incluir pontos de epc progress para listagem conforme as informações da tabela abaixo. Para a parte HTML, incluir os pontos necessários que manipular o preenchimento de campos existentes e também novos (exemplos em: http://tdn.totvs.com.br/pages/viewpage.action?pageId=185738044).

Nome do Evento
Onde deve ser colocado
Parâmetro
Valor do Parâmetro
afterLoadListApós o preenchimento da listaHandle_tt<nome tt>Handle da temp-table <nome tt>

 

  • Ações:
    • Definir comprador:
    • Transferir ordens:
      • Criar uma procedure para transferência das ordens na ccp/ccap360.p;
      • A API deverá receber uma lista de ordens (ordem-compra.numero-ordem), o comprador para qual serão transferidas as ordens e deverá retornar uma temp-table de erros (RowErrors);
      • Verificar se o comprador destino existe, se não existir criar um erro na RowErrors e finalizar a execução;
      • Para cada ordem de compra:
        • Verificar se a ordem existe, se não existir criar um erro na RowErrors e continuar o processo;
        • Se a ordem estiver com situação (situacao) como sem cotação (1), em cotação (5) ou cotada (3) e com o comprador (cod-comprador) diferente do comprador destino, efetuar a transferência:
          • Se o comprador origem não estiver informado ordem-compra.char-1 (posição inicial 195, 12 posições) = "", atualizar o campo com o comprador atual da ordem (cod-comprado);
          • Na sequência, atualizar o comprador (cod-comprado) com o comprador destino;
      • Se alguma das ordens não tiver em situação que possa ser transferida, retornar a mensagem: Ordens de compra que estejam em situação diferente de Sem Cotação, Em Cotação, Cotada e que sejam do comprador xxxxxxx foram desconsideradas
    • Follow-up:
      • Para o follow-up utilizar a mesma tela que já é chamada na requisição (html.mcc.cd1406), atentar apenas para os parâmetros a serem passados (no caso de dúvidas,verificar as documentações dos parâmetros na boin638.p);

Manutenir ordem de compra:

 

  • Deverá ser prevista a interface de inclusão de ordem de compra, com as mesmas funcionalidades existentes no Flex, ou seja, inclusão, alteração, habilitar/desabilitar campos, validações, integrações com outros módulos, split de ordens, parâmetros para configuração de parcelas, etc;
  • Deverá ser gravado o usuário que incluiu a ordem de compra para se ter um maior controle;

A tela de inclusão/alteração de ordem de compra, deverá ser desenvolvida conforme o protótipo apresentado na sequência, ela conterá alguns agrupadores de informações que virão fechados inicialmente. O usuário poderá abrir um a um, ou todos de uma única vez através da opção "Expandir todos". 

 

 

Sobre os campos em tela:

  • Ordem;
  • Situação (não editável);
  • Origem (não editável);
  • Expectativa (não editável);
  • Item (deverá utilizar o zoom já existente);
  • Quantidade;
  • Unidade de Medida (deverá utilizar o zoom já existente);
  • Entrega Única (Se informado, será gerada uma entrega única para a ordem com essa data. Se forem informadas entregas, a informação deste campo é desconsiderada);
  • Estabelecimento (deverá utilizar o zoom já existente que utiliza segurança por estabelecimento);
  • Depósito (deverá utilizar o zoom já existente no módulo de estoque);
  • Natureza;
  • ICMS;
  • Responsáveis:
    • Requisitante (deverá utilizar o zoom já existente);
    • Comprador (deverá utilizar o zoom construído no requisito anterior - Requisições);
  • Complementos:
    • Estabelecimento Gestor (utilizar o zoom já existente);
    • Imprime ficha Cotação;
    • Ordem emitida;
    • Prioridade de aprovação;
  • Entregas:
    • Sequência;
    • Data entrega;
    • Quantidade;
    • Referência;
    • Pedido;
    • Ato Concessório;
    • Quantidade Total: Indica a quantidade total das entregas inseridas;
    • Ações (As entregas são editadas/inclusas somente em tela, e são efetivas juntamente com a ordem de compra):
      • Adicionar: Abre a tela para inclusão de uma nova entrega (tela detalhada na sequência);
      • Configurar Regras: Abre a tela para configurar as opções de inclusão de ordem (tela detalhada na sequência);
      • Editar: Abre a tela para alteração da entrega;
      • Excluir: Permite a exclusão da ordem, após apresentação de mensagem de exclusão.
  • Integrações:
    • Ordem de investimento (utilizar o zoom já existente);
    • Empresa: Apresenta a empresa da ordem de investimento selecionada
    • Ordem de serviço (utilizar o zoom já existente); 
    • Operação:
    • Conta contábil (utilizar o zoom já existente);
    • Centro de Custo (utilizar o zoom já existente);
    • Tipo de Despesa: Criar um zoom, apresentando os campos: Código, descrição e tipo. Filtros pelos três campos.
    • Contrato de compra: Criar um zoom de item de contrato, apresentando os campos: Contrato, Fornecedor (código e nome abreviado), Sequência do Item, Item (código e descrição), Tipo controle contrato e Situação. Filtros: Contrato, código do item e código )
    • Sequência do item: 
    • Pacote de compra: Criar um zoom, apresentando os campos: número, descrição, comprador, data de início. Deve possuir filtro por todos os campos.
  • Descrição complementar;
  • Unidades de negócio (deverá funcionar da mesma forma que na tela html.mcc.cd1406):
    • Unidade de negócio;
    • Percentual
    • Total: Apresenta o percentual total das unidades de negócio cadastradas inclusas
    • Ações:
      • Adicionar: Permite a inclusão de uma unidade de negócio
      • Eliminar: Elimina uma unidade de negócio

 

Protótipo da tela de inclusão/alteração de entrega:

Sobre os campos:

  • Ordem (campo não editável)
  • Quantidade da Ordem (campo não editável)
  • Quantidade (quando inclusão o campo é quantidade, quando é alteração de ser o saldo);
  • Data Entrega;
  • Referência (deverá utilizar o zoom já existente);
  • Cliente (deverá utilizar o zoom já existente);
  • Pedido (deverá utilizar o zoom já existente);
  • Sequência 

 

Protótipo da tela dos parâmetros para inclusão de entregas:

Protótipo da tela de questionamento de divisão de entrega entre fornecedores:

Protótipo da tela de apresentação da divisão das entregas entre fornecedores, lembrando que neste caso o campo de quantidade é editável:

 

Validar de inclusão de OC somente para itens que o comprador possui permissão:

 

    • Deverá ser criada um parâmetro no programa de usuário de materiais para indicar se o usuário pode ou não incluir itens em ordens de compra para os quais não é comprador;
    • Esse controle deverá ser feito na inclusão de ordem.

Compra somente itens pré-definidos (usuar-mater.char-1. posição inicial: 17, 1 posição)

Sugerir narrativa da ordem de compra com a narrativa do item:

 

    • Deverá ser incluso um parâmetro nos programa de parâmetros de compras CC0104 para se possa sugerir a narrativa da ordem de compra conforme a narrativa do item;
    • Esse parâmetro deverá ser tratado na tela de inclusão de ordens;

 

Sugere narrativa do item na ordem: param-compra.char-2 (posição inicial 138, 1 posição)

Sugere usuário logado como requisitante da OC: param-compra.char-2 (posição inicial 139, 1 posição).

 

Sugerir usuário logado como requisitante na inclusão de ordem de compra:

 

    • Deverá ser incluso um parâmetro nos programa de parâmetros de compras CC0104 para se possa sugerir o requisitante da OC como o usuário logado (caso o mesmo seja requisitante);
    • Esse parâmetro deverá ser tratado na tela de inclusão de ordens;

Informações técnicas sobre manutenir ordem de compra:

    • Sobre os campos em tela da ordem de compra (ordem-compra):
    • Ordem (numero-ordem);
    • Situação (situacao - Utilizar o descritivo para apresentação);
    • Origem (origem - Utilizar o descritivo para apresentação);
    • Expectativa (expectativa);
    • Item (it-codigo - Utilizar o zoom item.js (módulo men));
    • Quantidade (qt-solic);
    • Unidade de Medida (Somente em tela - Será repassado internamente para todas as entregas prazo-compra.un - Utilizar o zoom tab-unidade.js (módulo mcc));
    • Entrega Única (Somente em tela - Será repassado internamente para prazo-compra.data-entrega, no caso de entrega única);
    • Estabelecimento (cod-estabel - Utilizar o zoom estabelec.js (módulo mpd));
    • Depósito (dep-almoxar - Utilizar o zoom deposito.js (módulo mce));
    • Natureza (natureza - mostrar as opções disponíveis para o campo);
    • ICMS (codigo-icm - mostrar as opções disponíveis para o campo);
    • Responsáveis:
      • Requisitante (requisitante - Utilizar o zoom requisitante.js (módulo mcc));
      • Comprador (cod-comprado - Utilizar o zoom comprador.js (módulo mcc));
    • Complementos:
      • Estabelecimento Gestor (cod-estab-gestor - Utilizar o zoom estabelec.js (módulo mpd));
      • Imprime ficha Cotação (impr-ficha);
      • Ordem emitida (ordem-emitida);
      • Prioridade de aprovação (prioridade-aprov - Apresentar as opções);
    • Entregas (tabele prazo-compra):
      • Sequência (parcela);
      • Data entrega (data-entrega);
      • Quantidade (quantidade);
      • Referência (cod-refer);
      • Pedido (pedido-clien);
      • Ato Concessório (substring(prazo-compra.char-2,11,30));
      • Quantidade Total: Somatório do campo quantidade de todas as entregas;
    • Integrações:
      • Ordem de investimento (num-ord-inv - Utilizar o zoom sub-div-ordem.js (módulo mcc));
      • Empresa (ep-codigo)
      • Ordem de serviço (ordem-servic - Utilizar o zoom ord-prod.js (módulo mcp)); 
      • Operação (op-codigo - Zoom)
      • Conta contábil (ct-codigo - Utilizar o zoom cta-ctbl-integr.js (módulo utb));
      • Centro de Custo (sc-codigo - ccusto.js (módulo utb));
      • Tipo de Despesa: Criar um zoom (tabela tipo-rec-desp, apresentando os campos: Código (tp-codigo), descrição (descricao) e tipo (tipo - apresentar a descrição). Filtros pelos três campos.
      • Contrato de compra: Criar um zoom de item de contrato (item-contrat), apresentando os campos: Contrato (nr-contrato), Fornecedor (cod-emitente e emitente.nome-abrev), Sequência do Item (num-seq-item), Item (it-codigo e item.descricao), Tipo controle contrato e Situação. Filtros: Contrato, código do item e código )
      • Sequência do item: 
      • Pacote de compra: Criar um zoom (tabela proc-compra), apresentando os campos: número (nr-processo), descrição (descricao), comprador (cod-comprado), data de início (dt-inicio). Deve possuir filtro por todos os campos.
    • Descrição complementar (narrativa);
    • Unidades de negócio (utilizar o mesmo componente da tela html.mcc.cd1406).
  • Sobre os campos em tela da entregas (prazo-compra):
    • Ordem (prazo.compra.numero-ordem)
    • Quantidade da Ordem (ordem-compra.qt-solic)
    • Quantidade (quantidade para inclusão e qtd-sal-forn para alteração);
    • Data Entrega (data-entrega) ;
    • Referência (cod-refer - referencia.js (módulo mcc));
    • Cliente (cliente.js (módulo mpd));
    • Pedido (ped-venda.js (módulo mpd));
    • Sequência 

 

  • Ações:
    • Incluir ordem:
      • Para sugestão dos dados iniciais para inclusão da ordem deverá ser criada uma nova procedure que englobe a execução/retornos das seguintes rotinas:Ao abrir a tela de inclusão de ordem, deve-se chamar a procedure setDefaultsPurchaseRequisition da 
        • Procedure setDefaultsPurchaseRequisition da 
        • fch/fchmat/fchmataddpurchaserequisitions.p
        Para salvar chamar o addPurchReqAndChildren
        • para sugerir os dados iniciais para a tela. 
          • Passar "CREATE" para o parâmetro "pType", deixar em branco o valor para o parâmetro "pFieldName".
          • Para a ttPurchaseRequisition e ttGenericBusinessUnitOriginal neste caso passar apenas objetos "novos" e "vazios" (com valores padrões).
          • ttPurchaseRequisitionDefault conterá os campos a serem apresentados em tela referente a ordem de compra. 
          • A ttEnableFields conterá os campos que possuem alguma regra para habilitar ou desabilitar em tela. Utilizar essa informação para habilitar ou não ou campos. Obs.: Verificar como foi feito para inclusão de requisição.
          • A ttGenericBusinessUnit conterá as unidades de negócio a serem apresentadas em tela.
          • O parâmetro "pVisibleBusinessUnit" indica se a unidade de negócio deve ou não ficar habilitada em tela.
        • Procedure, "getIntegrationAccountCostCenterFilter" da fch/fchmat/fchmatintegrationaccountcostcenter.p para obter os "filtros" para conta/centro de custo. Na temp-table de entrada preencher o campo "site" com ttPurchaseRequisitionDefault.cod-estabel e o campo "module" com "CEP". Providenciar o retorno até a interface do HTML, pois essa informações serão necessárias para chamar o zoom de conta e centro de custo posteriormente.
        • Procedure "enableCostCenter" da fch/fchmat/fchmatintegrationaccountcostcenter.p, com o retorno dessa procedure será necessário criar um registro na ttEnableFields com as seguintes informações:
          ttEnableFields.tabela = "ordem-compra"
          ttEnableFields.campo = "sc-codigo"
          ttEnableFields.habilitado = <retorno da procedure acima>.
        • Procedure "getCostCenter" da fch/fchmat/fchmatintegrationaccountcostcenter.p passando ttPurchaseRequisitionDefault.cod-estabel e ttPurchaseRequisitionDefault.ct-codigo, o retorno deve ser atualizado em ttPurchaseRequisitionDefault.sc-codigo.
    • Salvar ordem de compra: addPurchReqAndChildren --> Ver questão da entrega única
    • Leave de campos:

    • Split de ordens:
    • pergunta split:
    • visão split
    • Alterar ordem:
      • Ao abrir a tela deve-se chamar o getPurchaseRequisition
      • Para salvar chamar o addPurchReqAndChildren
    • Copiar ordem:
      • Ao abrir a tela deve-se chamar o copyRequisition
    • Eliminar ordem: Confirmar a eliminação. Utilizar a procedure deleteRequisitions da fch/fchmat/fchmatdetailpurchaserequisitions.p 
    • Incluir entrega: 
    • Alterar entrega:
    • Eliminar entrega:

 

Pesquisar ordens de compra:

A tela de pesquisa de ordens de compra no Flex é uma interface separada da listagem, porém no HTML deverá ser aproveitada a mesma interface para as duas funcionalidades, da mesma forma como foi feito nas requisições.

Neste caso não é apresentada nenhuma opção referente a manutenção de ordens de compra, somente consulta e follow-up.

No menu serão dois programas separados, para que seja possível colocar permissões diferenciadas por programa.

 

 

Visualizar follow-up, ordem recebida total/parcial e ordem rejeitada na consulta de ordem de compra:

Na tela de consulta individual de ordem já existente, serão realizadas algumas alterações para melhoria da mesma:

  • Inclusão do botão para abertura da tela de follow-up;
  • Ao apresentar a situação da ordem de compra, deverá ser prevista a situação de Recebida parcial e Recebida total;
  • Apresentar o comprador original (caso exista);
  • Caso a ordem esteja como rejeitada no processo de aprovação, apresentar também.

 

 

Opcional

Protótipo de Tela

 Apresentados juntamente com as regras de negócio.

Opcional

Fluxo do Processo

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

Dicionário de Dados

Reserva de campos livres:

  • Sugere narrativa do item na ordem: param-compra.char-2 (posição inicial 138, 1 posição)
  • Sugere usuário logado como requisitante da OC: param-compra.char-2 (posição inicial 139, 1 posição)
  • Compra somente itens pré-definidos: usuar-mater.char-1 (posição inicial 17, 1 posição)

 

(Opcional)

Estrutura de Menu

 

<Informações utilizadas na linha Datasul>.

 

Procedimentos

 

Procedimento

 html.cc0301

Descrição

Ordens de Compra

Módulo

 mcc

Programa base

 html.cc0301

Nome Menu

Ordens de Compra

Interface

WEB

Registro padrão

Sim

Visualiza Menu

Sim

Release de Liberação

 12.1.14

 

Programas

 

Programa

 html.cc0301

html.cc0505a

Descrição

Ordens de Compra

Consulta de Ordens de Compra

Nome Externo

 dts/mcc/purchaseorderline

dts/mcc/purchaseorderline/search

Nome Menu/Programa

Ordens de Compra

Consulta Ordens de Compra

Nome Verbalizado[1]

Manter Ordens de Compra

Consultar Ordens de Compra

Procedimento

 html.cc0301

html.cc0505

Template

Programa HTML

Programa HTML

Tipo[2]

Tarefas

Consulta

Interface

WEB

WEB

Executa via RPC

Não

Não

Registro padrão

Sim

Sim

Outro Produto

Não

Não

Visualiza Menu

Sim

Sim

Query on-line

Não

Não

Log Exec.

Não

Não

 


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