Histórico da Página
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)
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.cc0505a | Criação | Compras --> Consultas --> Consultar Ordens de compra | Consulta de ordens de compra |
CD1700 | Alteração | Cadastros Gerais --> Cadastros --> Manutenção Usuário Materiais | Inclusão de parâmetro para validar inclusão de item em OC |
html.cc0505 | Alteração | Compras --> Consultas --> Consultar Ordem de Compra | Inclusão de consulta de follow-up, informações de ordem recebida parcialmente/total e rejeitada pelo MLA |
CC0104 | Alteração | Compras --> Cadastros --> Manutenção Parâmentros Compras | Inclusã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 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";
- Contrato: Este 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 xxxxxxxxxxxxxxxxxxxx que estejam como Sem Cotação, Em Cotação ou Cotada);
- Definir comprador (considera os registros que estiverem selecionados xxxxxxxxxxxxxxxxxxxxx);
- Para cada registro de ordem, serão disponibilizadas as seguintes opções:
- 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;
- Situação da ordem:
- 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:
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;
- 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.
- 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 se ordem-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
- Prioridade: prioridade-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: xxxxxxxxxxx
- Rejeitada: xxxxxxx
- 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
- O filtro avançado deverá prever as seguintes opções:
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;
- 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.
- 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 se ordem-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
- Prioridade: prioridade-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: xxxxxxxxxxx
- Rejeitada: xxxxxxx
IF ttSummaryPurchRequisition.situacao = 5 THEN DO:
IF AVAIL param-compra AND AVAIL param-aprov THEN DO:
IF (param-compra.log-1 AND param-aprov.aprova-cotac) THEN
ASSIGN ttSummaryPurchRequisition.approved = CAN-FIND(FIRST cotacao-item
WHERE cotacao-item.numero-ordem = ttSummaryPurchRequisition.numero-ordem AND
cotacao-item.it-codigo = ttSummaryPurchRequisition.it-codigo AND
cotacao-item.log-1 = YES).
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)
- 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)
- 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:
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:
- Ao abrir a tela de inclusão de ordem, deve-se chamar a procedure setDefaultsPurchaseRequisition da fch/fchmat/fchmataddpurchaserequisitions.p
- Para salvar chamar o addPurchReqAndChildren
- Split de ordens:
- 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:
- Definir comprador:
- Transferir ordens:
- Follow-up:
- Incluir ordem:
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;
Transferir ordens de compra:
- 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;
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)
Visualizar follow-up, ordem recebida total/parcial e ordem rejeitada na consulta de ordem de compra:
rejeitada colocar
recebida total e parcial
- A partir da tela de consulta de ordens de compra, deverá ser inserida uma opção para consulta de follow-up, abrindo a tela já existente;
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;
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 |
Descrição | Ordens de Compra |
Nome Externo | dts/mcc/purchaseorderline |
Nome Menu/Programa | Ordens de Compra |
Nome Verbalizado[1] | Manter Ordens de Compra |
Procedimento | html.cc0301 |
Template | Programa HTML |
Tipo[2] | Tarefas |
Interface | WEB |
Executa via RPC | Não |
Registro padrão | Sim |
Outro Produto | Não |
Visualiza Menu | Sim |
Query on-line | Não |
Log Exec. | 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. |
---|