- Criado por Rafael Duram Santos, última alteração por Renan Martins de Almeida em 23 ago, 2024
Importante
O NFC estará disponível a partir do release 12.1.2210 e será disponibilizado no pacote de expedição contínua maior ou igual a 15/12/2023.
CONTEÚDO
01. VISÃO GERAL
O Novo Fluxo de Compras auxilia na gestão, controle e tomada de decisão referente a área de Compras da sua empresa.
A ferramenta permite adotar melhores estratégias para gerenciamento de solicitações de compras recebidas, além de entregar uma nova experiência na jornada de cotações. Ao longo dos meses, outros processos de compras serão modernizados e disponibilizados com o objetivo de simplificar processos, otimizar o tempo das operações e agilizar as tarefas melhorando o seu dia a dia.
02. EXEMPLO DE UTILIZAÇÃO
Aqui você pode visualizar exemplos práticos das principais funcionalidades do Novo Fluxo de Compras.
Ao acessar a Página Inicial (Início) o Usuário pode visualizar o nome do usuário logado.
[Clique na imagem para ampliar]
Passo 1: Para iniciar uma solicitação de cotação, selecione no menu lateral a opção de Necessidade de Compra.
[Clique na imagem para ampliar]
Passo 2: Após ter acesso a tela é necessário fazer a seleção dos itens que serão cotados. A partir de um item selecionado o botão Iniciar cotação, localizado no canto inferior direito da tela, ficará habilitado. Clique nele para seguir para o próximo passo.
[Clique na imagem para ampliar]
Passo 3: Em seguida será direcionado para a tela de Solicitação de cotação. Nesta tela há dois campos obrigatórios, referentes aos Dados da cotação, evidenciados com um asterisco '*'. Será necessário o preenchimento dos mesmos pra prosseguir o processo.
Os respectivos campos são:
- Apelido do grupo de cotação: O usuário definirá como a cotação será chamada;
- Recebimento cotação: O usuário definirá o prazo para o recebimento de cotações.
[Clique na imagem para ampliar]
Passo 4: Nesta tela ainda é possível conferir as Informações de entrega e Produtos selecionados.
Em Produtos selecionados há um campo de texto em cada item, onde é possível enviar para o fornecedor observações/especificações sobre o produto.
[Clique na imagem para ampliar]
Passo 5: Quando houver mais de uma solicitação possuindo produtos iguais, com a mesma Data de necessidade, conta contábil, entre outras similaridades, haverá um agrupamento de solicitações. Surgindo então na tela um campo chamado Solicitações agrupadas. Nele o usuário conseguirá visualizar através de um disclaimer azul, o número da Solicitação e o número do item, apresentada nesse mesma ordem Solicitação-Item, somando as quantidades solicitadas à quantidade total.
[Clique na imagem para ampliar]
Aglutinação de Produtos
Para maiores informações sobre a aglutinação de produtos clique aqui..
Atenção: Para visualizar essa tela é necessario possuir o parâmetro MV_SELFOR ativo (S).
Passo 1: Na aba Todos os fornecedores será exibido uma lista com todos os fornecedores já cadastrados no Protheus, já na aba Últimos fornecedores podemos acessar de forma fácil os últimos fornecedores listados, conforme as últimas notas fiscais de compras, com o código do produto igual as encontradas para desta cotação.
[Clique na imagem para ampliar]
Para incluir nessa cotação um ou mais fornecedores participantes (não cadastrado no sistema), é necessário clicar no botão Novo fornecedor, localizado na parte superior da tela. Nele será necessário adicionar a razão social e e-mail. É obrigatório o preenchimento da razão social para a inclusão do novo fornecedor participante, não será possível duplicar a mesma. Este fornecedor ainda não estará cadastrado oficialmente no sistema, apenas participará do processo de cotação.
[Clique na imagem para ampliar]
Passo 2: Através do campo de busca é possível localizar um fornecedor específico digitando o CPF/CNPJ, razão social ou nome fantasia.
[Clique na imagem para ampliar]
Passo 3: Caso haja necessidade de atualizar o contato de algum fornecedor poderá realizar esta tarefa sem sair da tela clicando no botão Atualizar Contato.
[Clique na imagem para ampliar]
Passo 4: Na opção Mostrar Detalhes conseguirá visualizar mais informações referente ao fornecedor.
[Clique na imagem para ampliar]
Passo 5: Após selecionar os fornecedores deverá clicar no botão Gerar Cotação para concluir o processo de geração de cotação.
[Clique na imagem para ampliar]
Passo 6: Após a geração da cotação, uma janela será disponibilizada, permitindo adicionar anexos à cotação e enviar um Workflow por e-mail aos participantes. Se não desejar enviar anexos ou e-mails aos fornecedores, basta fechar a janela. Se optar por enviar por e-mail, selecione "Sim" no campo "Enviar cotação por e-mail ao fornecedor?". Após selecionar "Sim", outro campo será exibido, perguntando se deseja selecionar as condições de pagamento a serem enviadas aos fornecedores através do Workflow. Caso não deseje selecionar as condições de pagamento, todas as condições que possuem "Adic WF NFC = Sim" (campo E4_ATVWF da tabela SE4), determinadas a partir do cadastro de condições de pagamento no Protheus, serão enviadas aos fornecedores.
Após esse processo, clique no botão "Enviar e-mail(s)".
[Clique na imagem para ampliar]
Protheus - Tela cadastro condições de pagamento [Clique na imagem para ampliar]
Caso o ambiente esteja configurado com parâmetro MV_SELFOR inativo (N) a tela de Seleção de fornecedores será alterada e habilitará a amarração de produto x fornecedor. Exibindo os produtos e os fornecedores vinculados a ele. Para este ambiente não será possível adicionar fornecedores participantes.
[Clique na imagem para ampliar]
Passo 1: Na tela Seleção de Fornecedores X Produto selecione os fornecedores vinculados ao produto como mostra a imagem abaixo.
[Clique na imagem para ampliar]
Passo 2: Caso haja necessidade de atualizar o contato de algum fornecedor poderá realizar esta tarefa sem sair da tela clicando no botão Atualizar Contato.
[Clique na imagem para ampliar]
Ao enviar um e-mail através do Novo Fluxo de Compras, o fornecedor receberá uma notificação. Nesse e-mail, será possível visualizar quem fez a solicitação e os itens da cotação, conforme exemplificado abaixo.
[Clique na imagem para ampliar]
Ao clicar no link para preenchimento, o fornecedor abrirá o formulário onde poderá detalhar os itens da cotação solicitada.
[Clique na imagem para ampliar]
A data de entrega é individual por item da cotação , devendo o fornecedor informar a data de entrega de cada item. Caso a data de entrega seja única ou outro cenário do fornecedor, para facilitar a inserção desse dado, o usuário deve colocar a data desejada no primeiro item da cotação e na sequência, clicar no botão Replicar data, que a data do primeiro item será replicada para os demais itens da cotação.
As condições de pagamento exibidas no formulário são estabelecidas de acordo com o que foi selecionado no envio do E-mail via Novo Fluxo de Compras, caso o usuário não tenha pré-estabelecido as condições que o fornecedor poderá visualizar, todas as condições que possuem "Adic WF NFC = Sim" (campo E4_ATVWF da tabela SE4), determinadas a partir do cadastro de condições de pagamento no Protheus, serão enviadas aos fornecedores, como ilustrado nas imagens abaixo.
[Clique na imagem para ampliar]
Protheus - Tela cadastro condições de pagamento [Clique na imagem para ampliar]
Após o envio da proposta respondida pelo fornecedor, a cotação será atualizada com todas as informações enviadas no Novo Fluxo de Compras.
A seleção das condições de pagamento mencionadas acima estará disponível a partir da expedição contínua de 05/04/2024.
Ao selecionar uma solicitação de compras é possível visualizar qual solicitação já foi selecionada através do botão Registros selecionados, localizado no canto inferior esquerdo da tela. Apenas será possível fazer seleção de solicitações em aberto para iniciar uma cotação.
[Clique na imagem para ampliar]
A fim de permitir a utilização dos itens de solicitação em apenas uma cotação, ao tentar adicionar ao carrinho um item de solicitação já selecionado anteriormente, o sistema alertará com uma mensagem informado que o item já foi selecionado.
[Clique na imagem para ampliar]
A funcionalidade "Validar Grupo de Produto?" tem como objetivo garantir que o usuário não selecione um produto que não pertença ao mesmo grupo de produto. Essa validação é ativada quando o interruptor é acionado e sempre verifica o grupo de produto do primeiro item selecionado. Se o produto não possuir um grupo de produto definido, será exibida uma mensagem informando que apenas é possível selecionar itens sem grupo de produtos.
[Clique na imagem para ampliar]
Clicando em Necessidade de Compra o usuário será redirecionado as Solicitações de Compras disponíveis para o processo de cotação.
[Clique na imagem para ampliar]
Nessa página as solicitações de compras serão exibidas, divididas e listadas em três abas Em aberto, Parcialmente atendidas e Atendidas.
- A aba em aberto exibe todos os itens de solicitação que possuam a quantidade em pedido de compra igual a zero e não tenham sido eliminadas por resíduo (C1_RESIDUO).
- A aba de parcialmente atendidas irá mostrar todas as solicitações que possuem um pedido de compra com quantidade menor que a quantidade solicitada (C1_QUANT).
- Na aba de atendidas irá mostrar todos os itens que possuam quantidade em pedido de compra igual à quantidade solicitada.
[Clique na imagem para ampliar]
Para a exibição ou remoção de colunas da tabela há um ícone de configuração, nele é possível fazer o Gerenciamento de colunas deixando marcando apenas as colunas que serão visualizadas. É possível ainda reordenar a posição das colunas e restaurar padrão.
[Clique na imagem para ampliar]
A paginação da tela de Necessidade de Compra funciona com uma rolagem "infinita" para baixo, enquanto houver solicitações o sistema permitirá rolar a página. É necessário que o cursor esteja posicionado sobre a tabela.
[Clique na imagem para ampliar]
Acima da tabela, existe um contador de registros listados, evidenciando a quantidade de solicitações já exibidas e as solicitações a serem listadas.
[Clique na imagem para ampliar]
As solicitações de compras listadas na tela de Necessidade de Compra, poderão ter anexos vinculados, caso possuam serão evidenciados com ícone de clipe na coluna Anexos.
Ao clicar no ícone, será aberto uma nova janela com a listagem de anexos vinculados a solicitação, possibilitando o download ao clicar no ícone Baixar anexo
Atenção: Os anexos provenientes das solicitações de compras não serão automaticamente vinculados à cotação.
Os arquivos vinculados a cotação serão enviados ao fornecedor via workflow podendo levar informações confidenciais e internas da empresa.
Por este motivo, os documentos deverão ser anexados na cotação durante a geração da mesma.
[Clique na imagem para ampliar]
Ao acessar uma das listas de solicitações de compras, independente da aba (Em aberto, Parcialmente atendidas e Atendidas), haverá uma série de Filtros que podem ser utilizados pelo usuário de forma individual ou combinada.
O Filtro por Data funciona com intervalo de duas datas (início e fim), após a seleção o filtro buscará solicitações de compras que possuem a Data de necessidade de acordo com o período selecionado.
[Clique na imagem para ampliar]
O filtro de busca por código de produto permite a busca do produto desejado por meio do código, permitindo que o usuário insira o código completo ou parte dele.
Além disso, essa funcionalidade também está disponível na lupa que permite realizar uma busca avançada por código, descrição ou unidade de medida.
[Clique na imagem para ampliar]
Através da Busca avançada, é possível fazer uma série de filtros sobre a solicitação desejada, como:
- Solicitação;
Solicitante;
Descrição do produto;
Filial solicitante;
Filial entrega;
Centro de custo;
Conta contábil;
Item contábil;
- Classe valor;
Todos os filtros possuem a opção de selecionar a "lupa" para fazer uma busca avançada dentro do filtro desejado, mas seu uso é opcional.
[Clique na imagem para ampliar]
Filtros de usuário:
O sistema permite a aplicação de filtros de usuário. Para isso, é necessário cadastrar o comprador na rotina Compradores (COMA087), no botão Botão Outras Ações > Filtro Necess. NFC, especificar o filtro desejado e ativar o parâmetro MV_FILTNFC. Para mais informações sobre como utilizar os filtros, consulte a documentação PCOM09013 - Compradores (COMA087), na sessão Filtro Necessidade de Compra para o Novo Fluxo de Compras (NFC).
Dentro da tela de Necessidade de Compra, existe o botão "Compra centralizada", onde é possível realizar a centralização de solicitações de compras para uma única filial.
Por exemplo: Iremos trocar todos os notebooks das filiais, ao invés de iniciar a cotação em cada filial, nós centralizaremos todas as solicitações em uma única filial para poder cotar de uma só vez, posteriormente gerando pedidos de compra para cada uma das filiais das solicitações de compra.
Na tela de compra centralizada, temos duas listas, sendo elas:
(Esquerda) - Solicitações de todas as filiais - menos a logada/centralizadora
(Direita) - Solicitações selecionadas para serem centralizadas/transferidas para filial logada/centralizadora.
As solicitações que foram transferidas, são zeradas na filial de origem e ficam com status roxo.
Já as novas solicitações criadas na filial centralizadora, ficam com status disponível para cotação, passando a aparecer na listagem de necessidade de compra.
Todo o processo de cotação com itens centralizado é igual, com apenas duas mudanças do processo comum:
1) Não é possível inserir uma quantidade disponível diferente da quantidade solicitada.
2) É possível configurar a geração dos pedidos de compra de acordo com o parâmetro MV_COTFIAP, sendo:
MV_COTFIAP = E → Os pedidos serão gerados conforme filial de entrega na solicitação de compra, ou seja:
Filial Solicitação de Compra: D MG 02
Filial Centralizadora: D MG 01
Filial do pedido de compra: D MG 02
Filial de entrega do pedido de compra: D MG 02
MV_COTFIAP = C → Os pedidos serão gerados na filial centralizadora com filial de entrega de acordo com a origem da solicitação de compra.
Filial Solicitação de Compra: D MG 02
Filial Centralizadora: D MG 01
Filial do pedido de compra: D MG 01
Filial de entrega do pedido de compra: D MG 02
[Clique na imagem para ampliar]
Um novo cadastro de Contatos x Fornecedores foi criado para ser possível vincular diversos contatos a um fornecedor, possibilitando o envio de workflow para todos eles.
Os contatos poderão ser atualizados de duas formas:
1) Direto pelo novo fluxo de compras, durante a seleção de fornecedores:
2) Em outras ações no cadastro de fornecedores comum:
Cada um dos contatos cadastrados serão automaticamente carregados para tela de envio de workflow, uma vez que tenham o campo "Env WF NFC?" = Sim, caso estejam como não, o cadastro será salvo porém não será carregado automaticamente para envio do WF
[Clique na imagem para ampliar]
Passo 1: Para acessar as cotações, clique em Cotações, será exibido uma lista com todas as solicitações. Localize a cotação desejada para a atualização, clique na opção editar, abrirá uma página com todos os fornecedores participantes da cotação selecionada, além de exibir no topo da página, um componente para exibir as Solicitações de Compras relacionadas.
[Clique na imagem para ampliar]
Caso um fornecedor tenha respondido a cotação via Workflow o processo de atualização da cotação ocorrerá automaticamente mediante os valores preenchidos no formulário pelo fornecedor.
[Clique na imagem para ampliar]
Na hipótese de a cotação conter um fornecedor participante (não cadastrado), não será exibido em tela o código do fornecedor, loja e CNPJ/CPF, no lugar desses valores será apresentado uma indicação de Fornecedor não cadastrado
[Clique na imagem para ampliar]
Passo 2: Selecionar o fornecedor que deseja atualizar a cotação e clicar em “Editar”, será direcionado para a página de edição de cotação, como mostra na imagem abaixo.
[Clique na imagem para ampliar]
A tela de adição da cotação é dividida em seções de informações referentes a cotação. São Dados do fornecedor, valores referentes a cotação, informações de entrega, impostos totais, dados dos itens cotados e campos customizados:
[Clique na imagem para ampliar]
Passo 3: Preencher os campos editáveis do cabeçalho e os campos editáveis referente aos produtos solicitados conforme a negociação ocorrida com o fornecedor. O preenchimento da Condição de pagamento é obrigatório para a salvar a atualização da cotação. À medida que o usuário preenche os campos com os valores dos itens, o total é calculado automaticamente, permitindo que o usuário visualize os valores enquanto a cotação está sendo preenchida.
O preenchimento da Condição de pagamento é obrigatória para a salvar a atualização da cotação.
[Clique na imagem para ampliar]
Também é possível utilizar a tabela de preço vinculada ao fornecedor(Cadastro de Produto x Fornecedor) para preencher os preços unitários de forma automática, esse processo pode ser feito de duas formas:
- Digitando manualmente o código da tabela de preço no campo "Cod. Tab - C8_CODTAB", o sistema irá buscar o valor do produto na tabela de preço e preencherá automaticamente na linha.
- Clicando em Outras ações > Tabela de preço, irá buscar a tabela vinculada no cadastro de produto x fornecedor e de forma automática preencherá o valor de todos os produtos da cotação.
Obs: Para ambos os processos, manual ou automático, é necessário o vínculo da tabela de preço com o cadastro de Produto x Fornecedor.
Para calcular os impostos, referentes aos produtos da cotação, clique em "Outras ações" localizado na parte superior da tela, em seguida selecione a opção Calcular impostos. Os impostos serão calculados em tela e somados ao valor total da cotação. O calculo é baseado nas configurações fiscais cadastradas no produto e no fornecedor realizará os cálculos de impostos
[Clique na imagem para ampliar]
Passo 4: Após preencher parcialmente ou totalmente os dados dos produtos solicitados na cotação, o status será atualizado para Parcial ou Completa e a cotação já poderá ser analisada. No exemplo abaixo podemos ver a primeira cotação Completa com zero itens pendentes e a cotação a baixo Parcial com um item pendente.
[Clique na imagem para ampliar]
Passo 5: Caso o ambiente esteja configurado com parâmetro MV_SELFOR inativo (N) ao clicar no botão "Novo participante" será exibida a tela de amarração de Fornecedor x Produto. Exibindo os produtos e os fornecedores vinculados a ele. Para este ambiente não será possível adicionar fornecedores participantes.
[Clique na imagem para ampliar]
Passo 6: Na tela Seleção de Fornecedores X Produto selecione os fornecedores vinculados ao produto como mostra a imagem abaixo.
[Clique na imagem para ampliar]
Passo 7: Caso haja necessidade de atualizar o contato de algum fornecedor poderá realizar esta tarefa sem sair da tela clicando no botão Atualizar Contato.
[Clique na imagem para ampliar]
Passo 8: Após a geração das propostas para o novo fornecedor, será exibida a tela de envio de e-mails e anexos.
[Clique na imagem para ampliar]
Passo 1: Para iniciar uma análise de cotação e necessário que a cotação possua o status Pronto para Analisar. Na tela de listagem de cotações pressione Outras ações e selecione a opção de Analisar.
[Clique na imagem para ampliar]
Passo 2: A análise da cotação poderá ser realizada Por Proposta ou Por Item. A análise por proposta necessita que todos os produtos solicitados tenham passado por atualização da cotação de pelo menos um fornecedor, ou seja, precisam estar com o status Completa apois a edição da cotação.
Através dos cards de proposta pode-se realizar a comparação entre os fornecedores para entender quem tem o Melhor preço sem impostos, Melhor preço com impostos, Menor prazo e Melhor nota.
[Clique na imagem para ampliar]
Passo 3:Após a decisão do fornecedor vencedor da cotação, clique em Gerar para iniciar o processo de pedido de compras.
[Clique na imagem para ampliar]
Passo 3: Na tela de Formalização da proposta o usuario poderá selecionar se será um pedido ou um contrato para essa cotação, após isso clique no botão de Gerar documentos
[Clique na imagem para ampliar]
Passo 1: Ao selecionar a opção de analisar Por Item conseguirá comparar as propostas de cada fornecedor para o item em questão, e poderá utilizar os status referente a média de preços para auxiliar na escolha do vencedor do item da cotação.
Observação: A partir da atualização de Julho/2024 o melhor preço já virá selecionado automaticamente.
[Clique na imagem para ampliar]
Passo 2: Após a decisão do(s) fornecedor(es) vencedor(es) da cotação clique em Gerar, para iniciar o processo de pedido ou contrato;.
[Clique na imagem para ampliar]
Passo 3: Na página de Formalização das propostas, usuário poderá escolher item a item, se será gerado um Pedido de Compra ou um Contrato.
- Para cada item, será exibido o saldo total disponível, bem como o campo Quantidade a ser adquirida, pois quando optado por Item, o comprador pode realizar compras parciais, ou seja, comprar uma determinada quantidade e retornar depois, para comprar o restante da quantidade. Além disso, será exibido o campo de observações, que é exibido ao fornecedor.
Por padrão, o campo Quantidade a ser adquirida já é preenchido com o mesmo valor do saldo disponível. O comprador - nesse campo - pode inserir um valor maior que zero e igual ou menor que o saldo disponível, para fechar o pedido. Logo:
Valor Saldo Valor Quantidade a ser adquirida Resultado 30 30 Ação será realizada, pois a quantidade inserida está de acordo com o saldo existente (quantidade a ser adquirida igual a saldo disponível). 30 31 O usuário será alertado, informando que a quantidade inserida é maior que o saldo disponível. Automaticamente, o sistema irá preencher o campo Quantidade a ser adquirida com o valor 30 (valor do saldo).
30 15 Ação será realizada, pois a quantidade inserida está de acordo com o saldo existente (quantidade a ser adquirida menor que o saldo disponível).
30 0 O usuário será alertado, informando que a quantidade inserida deve ser maior que zero. Automaticamente, o sistema irá preencher o campo Quantidade a ser adquirida com o valor 30 (valor do saldo).
30 -5 O usuário será alertado, informando que a quantidade inserida deve ser maior que zero. Automaticamente, o sistema irá preencher o campo Quantidade a ser adquirida com o valor 30 (valor do saldo).
- O comprador pode colocar a quantidade desejada para cada item em tela, selecionando se deseja gerar Pedido de Compra ou Contrato.
- Após, basta clicar em Gerar documentos, para finalizar o processo.
- Caso tenha realizado uma compra onde a Quantidade a ser adquirida seja menor que o saldo, o sistema automaticamente irá tirar o valor adquirido do saldo do item para ajustar a compra feita pelo comprador.
- Ao tentar realizar uma nova compra, o saldo disponível exibido será menor, visto que já houve compras realizadas anteriormente.
[Clique na imagem para ampliar] - Quando o comprador fechar o pedido ou contrato com valores inferiores ao saldo, a Cotação ficará com o status Atendido Parcialmente, demonstrando que para aquela cotação, o saldo total ainda não foi comprado. Assim, o comprador pode voltar nessa cotação e realizar os mesmos procedimentos descritos nesse item, para realizar a compra do saldo restante, podendo gerar tanto Pedido de Compra ou Contrato, independente de como foi feito a primeira vez.
- Quando a cotação fica no status Atendido Parcialmente, ao tentar editar a cotação, não será possível incluir novas propostas, novo participante ou alterar valores, visto que a cotação já teve compras correspondentes.
- Além disso, quando a compra fica no status Atendido Parcialmente, ao acessar a Análise da Cotação, a aba Por Proposta fica inativa, exibindo uma mensagem e não sendo mais possível fechar a análise por proposta, visto que já temos a análise por item feita.
- A coluna Quantidade Solicitada informa a quantidade solicitada pelo comprador de acordo com a geração da cotação, a coluna Qtd. disponível Fornecedor informa a quantidade de itens disponíveis no fornecedor.
Caso queira reabrir a cotação, é necessário ativar o parâmetro MV_PCEXCOT e, em seguida, realizar a exclusão do Pedido de Compra ou Contrato. Para mais informações clique aqui .
Clicando em Cotações o usuário será direcionado para a listagem de cotações.
A tela de Cotações é possível:
- Buscar cotação por código, apelido da cotação e status.
- Editar, excluir e análisar cotação.
- Download, adição e exclusão de anexos.
[Clique na imagem para ampliar]
As cotações podem ser identificadas por código ou apelido, e a situação pode ser identificada através dos status abaixo:
- Pendente: Situação na qual a cotação ainda não possui nenhuma proposta completa recebida;
- Pronto para analisar: Quando existe pelo menos uma proposta completa para ser analisada;
- Em análise : Quando apenas um item foi cotado deixando assim a cotação parcialmente atendida.
- Finalizada: Quando a cotação tiver sido completamente atendida.
Na tela de listagem de cotações, será possível identificar cotações que possuam anexos através do ícone de clipe na coluna Anexo.
[Clique na imagem para ampliar]
O ícone ficará visível nas seguintes situações:
- Na Necessidade de Compras foi adicionado anexos à cotação no monento da geração.
- Foi adicionado anexo posteriormente na tela de listagem de cotações.
Ao clicar no ícone, será aberta uma nova janela, onde estarão listados todos anexos vinculados aquela cotação, podendo realizar o download e exclusão dos arquivos.
Importante: Os anexos listados estão vinculados a cotação e não aos fornecedores.
[Clique na imagem para ampliar]
É possível adicionar novos anexos a uma cotação. Após a adição caso a cotação não possua anexo, passará a ter o ícone de clipe, evidenciando que a cotação agora possui anexo. Sendo possível anexar um ou mais arquivos de uma vez.
[Clique na imagem para ampliar]
Se um documento a ser anexado já existir na base de conhecimento, será apresentada a mensagem abaixo:
[Clique na imagem para ampliar]
Ao acessar uma das listas de cotações, haverá dois campos de busca que podem ser utilizados pelo usuário de forma individual ou combinada.
O Filtro por número ou apelido da cotação, realiza a busca pelo código da cotação desejado (informado na solicitação de cotação) ou apelido (estabelecido pelo usuário no momento da geração), para esta utilização e possível inserir o código ou apelido inteiro ou apenas parte dele.
[Clique na imagem para ampliar]
[Clique na imagem para ampliar]
O Filtro por Tipo de status, por padrão ao acessar a lista de cotações, já virá pré-estabelecido como Todos. Porém o usuário poderá definir qual status de cotação deseja visualizar, sendo eles:
- Todos;
Pendente;
Pronto para analisar;
Em análise;
Finalizada.
[Clique na imagem para ampliar]
Através da Busca avançada, é possível fazer uma série de filtros combinados sobre a cotação desejada, como:
- Compradores;
- Num. Pedido de Compra (Número do Pedido de Compra);
- Número do Contrato;
O Filtro por Comprador permite a busca com base no(s) Comprador(es) desejado(s). O usuário pode pesquisar todas as solicitações geradas por um ou mais compradores selecionados no filtro como mostra a imagem abaixo.
[Clique na imagem para ampliar]
O Filtro por Número do Pedido de Compra permite a busca com base no(s) Pedido(s) de Compra(s) gerado(s) a partir da Cotação. O usuário pode pesquisar pelo número completo ou pela referência do Pedido selecionado no filtro, como mostra a imagem abaixo.
[Clique na imagem para ampliar]
O Filtro por Número do Contrato permite a busca com base no(s) Contrato(s) gerado(s) a partir da Cotação desejada. O usuário pode pesquisar pelo número completo ou pela referência do Contrato selecionado no filtro, como mostra a imagem abaixo.
[Clique na imagem para ampliar]
Com os orçamentos dos fornecedores em mãos, deverá ser realizada a edição da proposta a fim de inserir os valores passados por orçamento.
Para isto, na tela de listagem de cotações, ao clicar nos três pontos no início linha, existe a opção Editar.
[Clique na imagem para ampliar]
Será apresentada a tela com todos os fornecedores que estão participando do processo com algumas informações pertinentes a proposta, são elas:
- Status da proposta:
- Pendente;
- Completa;
- Completa (E-mail);
- Parcial;
- Parcial (E-mail);
- Desqualificada;
- Recusada;
- Não atende;
- Não atende (E-mail).
- Nome do fornecedor;
- Código e loja do fornecedor;
- CNPJ ou CPF;
- Total da proposta de cotação deste fornecedor(Caso ainda não foi atualizada, estará zero);
- Itens pendentes de atualização de preço.
- Botão de edição.
Em outras ações:
- Visualização da cotação;
- Desqualificar fornecedo;
- Enviar e-mail;
- Anexos;
- Nova proposta manual;
- Nova proposta workflow;
- Excluir proposta.
[Clique na imagem para ampliar]
Se o usuário desejar incorporar um novo participante após a criação da cotação, ele poderá fazê-lo na tela de Edição da Cotação, onde encontrará um botão localizado no canto superior direito com essa finalidade (Novo participante). Ao clicar nesse botão, o usuário será redirecionado para uma página onde poderá inserir as informações do novo fornecedor participante. No caso de um fornecedor já cadastrado, após inserir o código do fornecedor, os dados serão automaticamente preenchidos, como exemplificado na imagem abaixo.
Atenção: Quando uma cotação é gerada com amarração de produto x fornecedor não será possível adicionar um novo participante.
[Clique na imagem para ampliar]
Para fornecedores ainda não cadastrados selecione a opção "Não" no campo "Fornecedor cadastrado?" e preencha o campo de Razão social
[Clique na imagem para ampliar]
Ao clicar em Editar, será aberta a tela de edição da proposta do fornecedor.
[Clique na imagem para ampliar]
Essa tela é dividida em seções de informações , como detalhado abaixo:
1. Dados do Fornecedor:
● Código do fornecedor;
● Loja;
● Nome do contato;
● E-mail;
● Número da proposta.
2. Detalhes de valores referentes a Cotação:
● Total de itens;
● Total da cotação (considerando todos os valores, como itens, frete, descontos, impostos, entre outros);
● Descontos;
● Tipo de frete;
● Valor do frete;
● Despesas;
● Condições de pagamento;
● Moeda;
● Seguro.
3. Informações de entrega:
● Dias para entrega;
● Endereço entrega;
● Cidade;
● Bairro;
● CEP.
4. Impostos totais:
● Valor IPI;
● Valor ICMS ;
● Valor ISS;
● Entre outros impostos.
5. Informações dos Itens da Cotação:
● Código do Produto;
● Descrição;
● Unidade de medida;
● Situação do item (considera, sem estoque, não vende);
● Quantidade solicitada;
● Quantidade disponível;
● Preço unitário;
● Total do item;
● Descontos;
● Tipo de entrada;
● Observações;
● Campos customizados;
● Impostos Item.
Descontos:
- Os descontos poderão ser inseridos de duas formas:
- Global para cotação, ou seja, ao preencher o desconto % ou descontos em valor no cabeçalho, o desconto será rateado para todos os produtos;
[Clique na imagem para ampliar] - Por item, ou seja, ao preencher o desconto no item, o desconto é aplicado somente naquele item e somado no totalizador Descontos no cabeçalho.
[Clique na imagem para ampliar]
Importante¹: Não é possível inserir desconto global em combinação com desconto por item.
Importante²: Os totalizadores serão atualizados automaticamente sempre que um produto for atualizado.
A listagem de propostas dispõe de tags informativas para indicar o status de cada proposta.
As respectivas tags são:
- Pendente: Situação na qual a proposta ainda não possui nenhum item com valor e quantidade preenchido;
- Parcial: Quando existe ao menos um item preenchido;
- Parcial (E-mail): Quando existe ao menos um item preenchido respondido via workflow;
- Completa: Quando todos os itens da proposta estão preenchidos.;
- Completa (E-mail): Quando todos os itens da proposta estão preenchidos e foram respondidos via workflow;
- Desqualificada: Quando um fornecedor for desqualificado da cotação;
- Recusada: Ocorre quando o fornecedor recusa a proposta;
- Não atende: A proposta foi respondida como sem estoque ou Não vende;
- Não atende (E-mail): A proposta foi respondida como sem estoque ou Não vende via Workflow.
[Clique na imagem para ampliar]
Na listagem das cotações é possível enviar um e-mail de cotação via workflow para o participante a partir da opção Enviar e-mail. Além disso é também é possível selecionar as condições de pagamento que o fornecedor poderá visualizar no formulário de resposta da cotação.
[Clique na imagem para ampliar]
É possível enviar o formulário de workflow para múltiplos e-mails, ou seja, para vários vendedores. Contudo, apenas a primeira resposta recebida será considerada e processada.
Caso necessário, poderá ser enviado alguma informação complementar utilizando o campo observação e escolher se deseja enviar os anexos vinculados a cotação neste e-mail.
[Clique na imagem para ampliar]
Na listagem de fornecedores participantes da cotação, é possível adicionar anexos que serão vinculados aos fornecedores. A opção se encontra em outras ações, Anexo(s).
[Clique na imagem para ampliar]
Caso necessário retirar um fornecedor da cotação, poderá ser utilizada a opção de desqualificação.
Nesta opção, o fornecedor não será considerado para as próximas etapas, bem como terá os valores inseridos na proposta zerados.
Também é possível inserir uma justificativa ou observação para desqualificação do fornecedor.
[Clique na imagem para ampliar]
Quando o fornecedor for desqualificado, não será possível atualizar valores da proposta. Sendo possível apenas a visualização.
Caso seja necessário, será possível Qualificar o fornecedor novamente, para que ele volte a participar da cotação.
Importante: Ao Qualificar o fornecedor, a proposta terá todos os valores zerados e voltará para o status Pendente.
[Clique na imagem para ampliar]
Na tela de edição da cotação, é possível calcular e visualizar uma prévia do cálculo dos impostos seja da proposta como um todo ou por item.
Importante: Para o cálculo ocorrer corretamente, devemos:
- Ter uma TES vinculada ao produto em questão (Campo B1_TE)
- Preencher os valores de todos os itens
- Selecionar uma condição de pagamento
Ao clicar no botão Calcular impostos o processo será iniciado, após finalização será possível visualizar os valores referentes aos impostos na seção Impostos totais e na seção de Itens da cotação, como demostrado abaixo. Além disso, o cálculo já considera os valores dos Tributos Genéricos, configurados no Configurador de Tributos, caso a organização já esteja utilizando o mesmo.
Importante: O cálculo de impostos é apenas para visualização, não sendo possível alterar valores.
[Clique na imagem para ampliar]
Durante o preenchimento de uma proposta, temos Descontos por item e global.
Desconto por item:
O desconto por item é aplicado somente a um ou mais itens, sendo somados os valores no campo de Desconto no cabeçalho.
[Clique na imagem para ampliar]
Desconto global:
O desconto global será disparado ao preencher o desconto por % ou valor, tendo o valor de desconto rateado para todos os itens proporcionalmente.
[Clique na imagem para ampliar]
É possível visualizar uma proposta apenas para checagem de dados, sem possibilidade de alterar, inserir ou excluir dados. Esta opção é muito importante para visualizar propostas desqualificadas ou finalizadas.
[Clique na imagem para ampliar]
É possível gerar uma nova proposta para alterar valores e conseguir manter um histórico de negociações.
[Clique na imagem para ampliar]
Nova proposta manual:
Ao escolher a opção de criar uma nova proposta manual, você será direcionado para uma tela onde terá a opção de manter ou não os valores da proposta atual. Após essa etapa, você terá acesso a uma nova tela onde poderá preencher, ou alterar, os valores antes de finalizar a criação da nova proposta.
[Clique na imagem para ampliar]
Nova proposta workflow:
Ao selecionar a opção de nova proposta workflow, será exibida uma tela onde é possível informar se deseja ou não manter os valores da proposta atual, selecionar as condições de pagamento, informar um ou mais e-mails para receber o formulário e a obervação. Ao clicar em enviar e-mail, será gerada uma nova proposta e enviado um novo workflow.
[Clique na imagem para ampliar]
Se o fornecedor tiver mais de uma proposta, e se necessário, é possível fazer a exclusão da proposta vigente, como podemos observar abaixo.
[Clique na imagem para ampliar]
Na tela de Editar Cotação, temos um grupo inicial chamado Itens da Cotação.
Ao clicar nesse grupo, a lista é expandida e exibe todos os itens que estão associados na cotação atual, ou seja, exibe os produtos que estão sendo cotados. Caso entenda que um item não seja mais necessário e deseja excluir esse item da cotação, temos a opção Remover, que fica na frente de cada item constante na cotação.
Ao clicar em remover, o sistema exibe uma modal, informando se deseja realmente excluir o item da cotação, detalhando o item selecionado e informando que ao realizar a remoção, não é possível reverter o processo.
Atenção
Caso o item a ser deletado tenha sido agrupado, apesar de ser mostrado separadamente cada item no grupo Itens da Cotação, ao excluir qualquer um que esteja no agrupamento, todos serão deletados, visto que o sistema grava o agrupamento como item único na SC8.
[Clique na imagem para ampliar]
Quando o status da cotação estiver igual a Pronto para analisar será possível iniciar o processo de análise, a fim de verificar as melhores condições ofertadas.
O processo de análise, se divide em dois tipos:
- Análise por proposta.
- Análise por item.
Análise por proposta:
Consiste em mostrar todas as propostas completas, ou seja, que possuem todos os itens preenchidos, para análise das condições.
Na tela de listagem de cotações, ao clicar nos três pontos no início da linha, temos a opção Analisar.
[Clique na imagem para ampliar]
As informações mais relevantes além dos dados do fornecedor, serão mostradas dentro do card, como:
- Total sem impostos
- Total com impostos
- Valor total de frete
- Prazo de entrega
[Clique na imagem para ampliar]
As propostas poderão ser ordenadas por:
- Melhor preço sem impostos
- Melhor preço com impostos (considera IPI e ICMS Solidário como critério de ordenação)
- Menor prazo
- Melhor nota.
Por padrão, a ordenação é realizada pelo melhor preço sem impostos.
[Clique na imagem para ampliar]
É possível obter mais informações da proposta ao clicar no botão detalhes. Será listado todos dados relevantes da proposta, tais como valores, produtos, fretes, etc.
[Clique na imagem para ampliar]
Quando o status da cotação for Pronto para analisar será possível iniciar o processo de análise, a fim de verificar as melhores condições.
O processo de análise se dará de duas formas:
- Análise por proposta
- Análise por item
Análise por item:
Na tela de listagem de cotações, ao clicar nos três pontos no início da linha, temos a opção Analisar.
Consiste em mostrar todas as propostas, ou seja, as que estão completas ou parciais. A análise por item, permite você realizar a compra de produtos diferentes com mais de um fornecedor na mesma cotação.
Exemplo: Estou cotando material para o meu escritório. O fornecedor A possui o melhor preço para PAPEL A4, porém A Caneta está bem mais caro comparado ao fornecedor B.
Utilizando a análise por item, podemos comprar o Papel A4 com o fornecedor A e a Caneta com o fornecedor B na mesma cotação.
[Clique na imagem para ampliar]
A listagem é feita por produto, em cada item teremos as respectivas propostas dos fornecedores para ele.
Para auxiliar na análise, temos as informações de média de valores unitários e totais, juntamente com uma tag mencionando se o valor do item está acima da média, dentro da média ou é o melhor preço para aquele produto.
Além disso, serão listadas as informações como quantidade disponível, valor unitário, dias para entrega, frete e total a pagar.
[Clique na imagem para ampliar]
Conforme é feita a análise, os itens selecionados são somados e demonstrados no rodapé, como:
- Total dos itens(bruto)
- Frete
- Descontos
- Outro valores (Seguro e/ou despesas)
- Total a pagar (líquido sem impostos)
[Clique na imagem para ampliar]
Ao acessar a tela de análise de cotação, temos o mapa da cotação, uma ferramantea utilizada para comparar preços de produtos ou serviços de diferentes fornecedores ou fontes. O principal objetivo do mapa de cotação é fornecer uma visão clara e organizada dos preços de produtos ou serviços oferecidos por diferentes fornecedores. Isso permite que os compradores identifiquem facilmente as opções mais econômicas e competitivas.
Para facilitar a análise o mapa de cotação traz de forma simplificada Item vs Fornecedor, exibindo as informação abaixo :
- Descrição do item;
- Valor Unitário;
- Valor total do item;
- Quantidade solicitada;
- Unidade de medida;
- Fornecedor e valores referente a proposta feita.
[Clique na imagem para ampliar]
Ao escolher a proposta ou os itens vencedores, será habilitado o botão de Gerar para a inicializar o processo de pedido ou contrato.
[Clique na imagem para ampliar]
No entanto, caso o fornecedor selecionado não apresente o melhor preço, um campo será exibido na tela para que o usuário possa justificar sua escolha. Isso é exemplificado nas imagens abaixo:
Tela de Justificativa Análise por proposta[Clique na imagem para ampliar]
Justificativa tela análise por item:
Tela de Justificativa Análise por item[Clique na imagem para ampliar]
Caso o vencedor seja um fornecedor participante (não cadastrado), será exibido um alerta sobre a condição do mesmo, exigindo cadastro para a conclusão do processo.
[Clique na imagem para ampliar]
A tela de cadastro de fornecedor possui quatro abas:
- Cadastrais: Formulário para preenchimento de dados do fornecedor;
- Adm/fin.: Formulário para preenchimento de dados administrativos e financeiros;
- Fiscais: Formulário para preenchimento de dados fiscais;
- Campos obrigatórios: Formulário para preenchimento de campos obrigatórios.
- Campos customizados: Formulário para preenchimento de campos customizados.
Campos obrigatórios serão sinalizados com asterisco (*) no fim do seu nome, e somente após a obtenção dos mesmos o botão Salvar ficará habilitado para o cadastro do fornecedor.
Para obter alguns campos de informações do fornecedor após o preenchimento do CNPJ, é necessário a utilização do parâmetro MV_APIFOR (com valor .T. ), para habilitar o preenchimento automático utilizando a TOTVS CAROL.
[Clique na imagem para ampliar]
Após clicar no botão gerar será direcinado a uma tela contendo o resumo dos produtos e fornecedor/fornecedores selecionados, Nessa tela o usuário poderá escolher se será um pedido ou contrato.
A figura abaixo representa o processo de Análise por Proposta, ou seja, apenas um fornecedor. Neste ponto, o usuário terá a opção de gerar um contrato ou um pedido para esta cotação. Após fazer sua escolha, basta clicar em Gerar Documentos, conforme exemplificado a seguir:
[Clique na imagem para ampliar]
No caso do processo de Análise por Item, o usuário terá a flexibilidade de gerar tanto pedidos quanto contratos para fornecedores diferentes, como demonstrado na imagem abaixo:
[Clique na imagem para ampliar]
Para a geração de contratos o usuário deverá escolher a forma de pagamento e o tipo de contrato, como podemos ver abaixo:
[Clique na imagem para ampliar]
Após a geração do documento e a contenplação de todos os itens solicitados, o status da cotação é atualizado para "Finalizada". Se algum item não for gerado pedido ou contrato, o status será alterado para "Em análise" ou "Atendido parcialmente", dependendo do caso.
Na tela de listagem de cotações, é possível excluir a cotação ao clicar nos três pontos e opção Excluir. As cotações excluídas terão seus itens retornados para Necessidade de Compra.
Importante: Não será possível excluir uma cotação que esteja Finalizada ou Em análise.
[Clique na imagem para ampliar]
Na tela de listagem de cotações, é possível visualizar os Pedidos de Compras e Contratos gerados a partir da cotação, quando a cotação estiver nos status Em Análise e Finalizada. Para exibir, basta clicar na seta a esquerda do grid, que o sistema irá exibir os Pedidos de Compra e Contratos localizados para a cotação.
Importante: Caso exista apenas Pedido de Compras, será exibido apenas os pedidos de compras, ao clicar na seta. O mesmo ocorre quando temos apenas Contratos.
Quando existir contratos e pedidos de compras, ambos serão exibidos.
[Clique na imagem para ampliar]
É possível migrar cotações geradas pelas rotinas de "Gera cotação, atualiza cotação e analisa cotação" para o Novo Fluxo de Compras através do migrador disponibilizado no botão do canto superior direito.
Esta opção realiza a compatibilização de cotações já existentes na base para que sejam compatíveis com o novo fluxo de compras, podendo então ter o seu processo continuado através das novas rotinas do NFC ou até mesmo possuir o histórico de cotações já finalizadas.
Todo o processo é realizado em segundo plano e o usuário possui a opção de receber uma notificação por e-mail quando a migração for finalizada. Caso o servidor de e-mail necessite de autenticação, será necessário ativar o parâmetro MV_RELAUTH.
Importante: A migração é irreversível, não há como desfazer a compatibilização e voltar as cotações para as rotinas legadas.
03. PRÉ-REQUISITOS MÍNIMOS
O Novo Fluxo de Compras necessita da LIB do Framework Protheus® igual ou superior a data de 27/02/2023 que pode ser baixada no endereço: LIB-download.
04. CONFIGURAÇÕES
Abaixo seguem os processos que devem ser configurados:
Acesso Embarcado - Protheus
*Embarcado: Acesso via menu do Protheus.
Necessário adicionar ao menu do Compras a rotina PGCA010 para acesso ao NFC via menu do Protheus. A partir do release 12.1.2410 a rotina estará no menu por padrão.
Exemplo:
WORKFLOW
O Workflow poderá ser configurado para envio da solicitação de cotação diretamente aos fornecedores participantes.
Possibilitando o fornecedor, através de um formulário recebido no e-mail, informar preço, prazo e condições de oferta de seu produto, atualizando automaticamente a cotação no Protheus.
COMO CONFIGURAR O WORKFLOW
Atenção
O Workflow pode ser configurado de duas maneiras: via Wizard (Configurador do Workflow), que é um assistente passo-a-passo para facilitar a configuração, disponível na página do NFC, somente para usuários administradores; bem como pode ser configurado manualmente, seguindo as orientações do presente documento.
Temos também o wizard para criação da caixa de e-mail para os compradores - direto no workflow - que fica disponível apenas se o parâmetro MV_PGCWF estiver ativo na base ou então, a configuração pode ser de forma manual.
Caso queira utilizar o Wizard para configurar o WorkFlow, leia a instruções contidas clique na aba Via Wizard. Caso queira configurar manualmente, leias as instruções da aba Via Manual.
Dica
Utilize o facilitador de teste WFTEST padrão do Protheus para validar de forma fácil a configuração e funcionamento do workflow. Acesse a documentação: Clique aqui | WFTEST
- Para iniciar o processo de configuração de Workflow via NFC, o usuário logado deve ser do tipo administrador no Protheus. Para configuração, siga as etapas abaixo:
- Acesse o NFC com usuário administrador;
- Clique no botão de perfil (ícone a direita, na parte superior da tela), para exibir os submenus existentes. Clique no menu com o nome Configuração Workflow.
- Siga as etapas do wizard, informando os dados solicitados:
- No primeiro passo do configurador - o sistema irá explicar para que serve o Wizard de WorkFlow e seus objetivos, para que o usuário possa compreender seu funcionamento.
- Na segunda etapa do wizard - Parâmetros e arquivos - informe no campo Diretório de trabalho do Workflow - o local (pasta) onde os arquivos físicos do wizard serão gravados no servidor. Por exemplo, se os arquivos serão gravados na estrutura Protheus_Data\workflow, informe \workflow no campo.
OBS: O valor do campo será armazenado nos parâmetros (SX6) MV_WFDIR e MV_WFDHTTP
Além disso, constará nessa tela links para acesso da documentação de referência do NFC, bem como dos dois arquivos html que são usados para envio do e-mail aos fornecedores. Realize o download desses arquivos e coloque-os na mesma pasta do campo acima.
Clique no botão Próxima Etapa, para avançar no wizard. - Na terceira etapa - Dados do servidor - informe o Endereço (IP) público do servidor de workflow; informe a Porta do Servidor de workflow; informe o Nome do Ambiente onde o workflow é executado e no campo Nome/IP e porta do servidor , o sistema monta automaticamente a sugestão, com o endereço ip, porta e nome do ambiente.
OBS: O valor do campo Nome/IP e porta do servidor de workflow será armazenado no parâmetro (SX6) MV_WFBRWSR.
Clique no botão Próxima Etapa, para avançar no wizard. - Na quarta etapa - Porta Multiprotocolo - o sistema avisará se existe a chave[MULTIPROTOCOL] no ambiente e se está ativa.
Clique no botão Próxima Etapa, para avançar no wizard. - Na quinta etapa - Parâmetros de e-mail dos compradores - informe os dados solicitados na tela, como endereço e porta do servidor SMTP e POP3/MAP, para que quando o parâmetro MV_PGCWF estiver ativo, os usuários não necessitem e informar estes campos no wizard de configuração de e-mail.
- OBS: Os valores dos campos dessa etapa serão gravados nos parâmetro (SX6):
MV_PGCPISV - Servidor de e-mail POP 3/ IMAP dos compradores;
MV_PGCPIPO - Porta de e-mail POP 3/ IMAP dos compradores;
MV_PGCSMSR - Servidor de e-mail SMTP dos compradores;
MV_PGCSMPO - Porta de e-mail SMTP dos compradores;
MV_PGCTAUT - Tipo de autenticação do servidor de e-mail: TLS, SSL ou nenhum
Clique no botão Próxima Etapa, para avançar no wizard. - Na sexta etapa - Finalização - o sistema alerta que ao avançar, os dados serão gravados na base e o sistema irá montar o modelo de appserver.ini, além de apresentar uma notificação de sucesso.
- No primeiro passo do configurador - o sistema irá explicar para que serve o Wizard de WorkFlow e seus objetivos, para que o usuário possa compreender seu funcionamento.
- Para iniciar o processo de configuração de E-mail de comprador via NFC, o parâmetro MV_PGCWF deve estar ativo no ambiente. Para configuração, siga as etapas abaixo:
- Acesse o NFC;
- Clique no botão de perfil (ícone a direita, na parte superior da tela), para exibir os submenus existentes. Clique no menu com o nome Wizard E-mail comprador.
- Siga as etapas do wizard, informando os dados solicitados:
- No primeira etapa do configurador - o sistema irá explicar para que serve o Wizard de e-mail do comprador e seus objetivos, para que o usuário possa compreender seu funcionamento.
- Na segunda etapa do wizard - E-mail do comprador - o sistema permite que o usuário informe o nome da caixa de e-mail (por padrão, será o e-mail do usuário, sem caracteres especiais), o nome do comprador (que irá no e-mail) e o e-mail do usuário (que consta no cadastro de usuários do sistema, não permitindo alteração).
Clique no botão Próxima Etapa, para avançar no wizard. - Na terceira etapa - Autenticação - o campo de e-mail será preenchido automaticamente, conforme e-mail cadastrado no usuário, e deve informar a senha do e-mail, que será usada na autenticação dos servidores de e-mail.
Clique no botão Próxima Etapa, para avançar no wizard. - Na quarta etapa - Servidores SMTP e POP 3/IMAP - caso o usuário administrador tenha usado o wizard de configuração de parâmetros e webservice ou preenchido os parâmetros MV_PGCPISV, MV_PGCPIPO, MV_PGCSMSR, MV_PGCSMPO e MV_PGCTAUT, as informações de servidores SMTP e PO3/IMAP estarão preenchidas automaticamente, bastando seguir para a próxima etapa. Mas caso seja necessário o usuário pode mudar manualmente, conforme sua necessidade.
Clique no botão Próxima Etapa, para avançar no wizard. - Na quinta etapa - Finalização - o sistema alerta que ao avançar, será criada uma nova caixa de e-mail e será disparado um e-mail de teste, para conferência dos dados imputados. No final, será exibido o alerta de sucesso, indicando que a conta foi criada com sucesso.
- Para editar senha ou outra característica do e-mail criado do comprador:
- Basta refazer os passos acima, para que o sistema entenda que se trata de uma alteração e salve os novos valores no sistema. No final, o sistema emitirá um alerta, informando que o e-mail foi alterado com sucesso.
- Importante: Caso altere o nome da caixa de e-mail, o sistema irá verificar se já existe para aquela filial, um nome igual. Se existir, por medida de integridade de dados, o novo nome será desconsiderado e mantido o atual.
- Ao nomear a caixa de e-mail, utilize apenas letras, números e sublinhado (_), para criar o nome. Caso coloque espaço em branco, será automaticamente convertido para sublinhado e outros caracteres especiais serão desconsiderados, além do sistema converter tudo para maiúsculo. Por exemplo, se colocar o nome "Rt 78%#o", o sistema irá converter para "RT_78O".
- Por padrão, o sistema irá trazer como sugestão de nome o e-mail do usuário, mas sem os caracteres especiais (apenas o sublinhado é aceito). Ou seja, se o e-mail do usuário for [email protected], será exibido COMPRASFINANCEIROTESTECOMBR;
- No campo Nome da Caixa de e-mail, serão aceitos apenas letras, números e sublinhado (_, conhecido como underline). Qualquer outro caractere será desconsiderado, ou seja, se for digitado compr.$a_s1@teste, será convertido para COMPRA_S1TESTE;
- Espaço em branco no nome será convertido para sublinhado, por exemplo, minhA CAI2a, será convertido para MINHA_CAI2A.
Atualizar o appserver.ini do seu ambiente com configurações essenciais que possibilitará o fornecedor receber e responder o formulário de solicitação de cotação.
Copie e insira no seu ambiente o exemplo abaixo, altere as informações em negrito para informações do seu ambiente, tais como:
PATH: Caminho de pastas no seu servidor até o diretório Protheus_data\http-root (se a pasta http-root não existir, pode-se cria-la)
PORT: Porta de comunicação do WebService ( Normalmente inicia-se com 80 )
ENVIRONMENT: Nome do ambiente/RPO
localhost:8091: IP público e porta aberta para que o fornecedor consiga enviar a resposta do formulário de cotação
ONSTART: Caso o seu appserver.ini já possua uma chave ONSTART, adicione os jobs JOB_WS_T1,WF_INDEX nesta chave.EXEMPLO WEBSERVICE PGC
;-------------------------------- WEBSERVICE - NFC--------------------------------------------
[HTTP]
ENABLE=1
PATH=C:\TOTVS\Protheus12_2310\Protheus_data\http-root
PORT=8091
ENVIRONMENT=P2310
INSTANCES=1,10
XFRAMEOPTIONS=ALLOW-FROM *
UPLOADPATH=\web[localhost:8091/ws]
ENABLE=1
PATH=C:\TOTVS\Protheus12_2310\Protheus_data\web\ws
ENVIRONMENT=P2310
INSTANCENAME=WS
RESPONSEJOB=JOB_WS_T1
DEFAULTPAGE=wsindex.apw[JOB_WS_T1]
TYPE=WEBEX
ENVIRONMENT=P2310
INSTANCES=1,10
SIGAWEB=WS
INSTANCENAME=WS
ONSTART=__WSSTART
ONCONNECT=__WSCONNECT
PREPAREIN=ALL[localhost:8091/wf]
enable=1
port=8091
PATH=C:\TOTVS\Protheus12_2310\Protheus_data
environment=P2310
responsejob=WF_INDEX
DEFAULTPAGE=wsindex.apw[WF_INDEX]
TYPE=WEB
environment=P2310
INSTANCES=1,10
SIGAWEB=WF
INSTANCENAME=WF
ONSTART=STARTWEBEX
ONCONNECT=CONNECTWEBEX
ONEXIT=FINISHWEBEX[MAIL]
Protocol=SMTP
ExtendSMTP=1
SSLVersion=3
AuthLOGIN=1
AuthPLAIN=1
TLSVersion=3
[OnStart]
jobs=JOB_WS_T1,WF_INDEX
Realizar a configuração do parâmetro que indicará a URL ou nome do servidor HTTP.
No passo 1, definimos o IP e Porta público que será utilizado para receber o retorno da solicitação de cotação do nosso fornecedor, este mesmo IP e Porta deverá ser informado no parâmetro MV_WFBRWSR.
Importante:
O parâmetro deverá ser preenchido iniciado por http:// ou https://
Exemplo: http://localhost:8091/wf
Onde localhost:8091 será o seu IP e porta Público definido no passo 1.
Verificar a existência da pasta "workflow" dentro da pasta "Protheus_data" no diretório de instalação do Protheus. Caso não exista, pode-se cria-la.
- Realizar o download conforme as orientações baixo, descompactar e coloca-los dentro da pasta workflow citada acima.
Exemplo:
Importante:
Caso opte por disponibilizar os arquivos em outro diretório, não deixe de atualizar o parâmetro MV_WFDIR do passo 4.
- Versionamento:
- É essencial verificar a versão correta dos arquivos do formulário workflow. Se não forem encontrados ou estiverem em uma versão incorreta, o sistema apresentará a seguinte mensagem: 'O arquivo pgca030_mailXXX_AAAAMMDD.HTML utilizado pelo workflow não foi encontrado ou está desatualizado. Para baixar o arquivo atual, consulte a documentação do NFC na seção de Workflow'.
- Observações:
- Para pacotes de expedição contínua anteriores a , deve-se utilizar o arquivo formulario_workflow_sem_versao.zip
- Para preservar a integridade da funcionalidade do workflow, é importante não alterar o nome dos arquivos HTML.
- Versões:
- formulario_workflow.zip - última versão
- formulario_workflow_20240415.zip - versão
- formulario_workflow_20240327.zip - versão
- formulario_workflow_sem_versao.zip - sem versão
Realizar a configuração do parâmetro que indicará o diretório onde os arquivos HTMLs do passo 4 foram disponibilizados.
No passo 3, definimos o diretório onde será disponibilizado os arquivos HTMLs, este mesmo diretório deverá ser informado no parâmetro MV_WFDIR
Exemplo de conteúdo do parâmetro MV_WFDIR: \workflowImportante:
Caso opte por disponibilizar os arquivos em outro diretório, não deixe de mover os arquivos HTMLs para o diretório correto, seguindo o passo 3.
Atenção - WFTEST
O workflow do NFC se comporta igual a rotina WFTEST - rotina que visa testar se as configurações de workflow estão corretas, enviando e-mail de teste.
Logo, se ao executar a rotina WFTEST ocorrer erro - o workflow do NFC também não será enviado, por seguir o mesmo comportamento - verificar se as configurações de parâmetros (SX6) e do appserver.ini do ambiente estão corretas - verificando as informações presentes nesse manual - para que o workflow do NFC funcione adequadamente.Informações sobre a rotina WFTEST estão no tópico Assuntos Relacionados.
Realizar a configuração do e-mail que enviará o formulário para o fornecedor solicitando a cotação:
Acessar o módulo do configurador > Ambiente > WorkFlow > Contas de e-mail > Incluir
Exemplo de configuração do e-mail do GMAIL:Observações:
- Atualmente a maioria dos provedores SMTP utilizam uma porta diferente da padrão, geralmente usam a 465 ou 587.
- O Gmail utiliza a porta 465 quando a segurança utilizada é a SSL e a porta 587 quando a segurança é a TLS.
Importante:
O processo acima não está relacionado a configuração de e-mail para relatórios, descrito na documentação: Configurar o SMTP para envio de relatórios por e-mail;
É possível enviar a solicitação de cotação para o fornecedor utilizando o e-mail do Comprador, assim possibilitando ao fornecedor responder diretamente ao comprador alguma dúvida ou pergunta.
Como habilitar este recurso?
- Habilite o parâmetro MV_PGCWF
- Realize o passo 5 da configuração, cadastrando o e-mail do comprador (Esta rotina de cadastro poderá ser disponibilizada no menu do comprador para ele mesmo realizar o cadastro - WFC003).
O e-mail cadastrado deverá constar no cadastro de usuário do mesmo.
Importante:
O valor padrão do parâmetro MV_PGCWF é desativado, onde usará a conta de e-mail padrão do Protheus definida no MV_WFMLBOX.
Porta Multiprotocolo
- Na seção GENERAL, deve-se incluir a chave “App_Environment”, cujo valor deve ser o nome do ambiente onde os serviços serão executados.
- Na seção DRIVERS, deve-se habilitar a porta multiprotocolo na chave “MultiProtocolPort” com o valor = 1.
- Por padrão a conexão SSL está ativa na porta multiprotocolo, os detalhes das configurações estão disponíveis na documentação Application Server - Porta Multiprotocolo. Para desabilitar a conexão por SSL é necessário informar a chave “MultiProtocolPortSecure = 0”
Para mais informações sobre essa configuração acesse a página Application Server - Porta Multiprotocolo.
05. NOTAS DE VERSÃO
Abaixo você pode visualizar todas novidades liberadas em cada versão:
- Atualização para melhor visualização das colunas e seus nomes em tabelas/listagens.
- Implementação de funcionalidade para guardar configuração do usuário em campos selecionados para serem visualizados ou ocultados em tabelas/listagens.
- Implementação de funcionalidade para selecionar automaticamente vencedor com melhor preço na análise por item
- Implementação de "desistência da compra" onde permite remover item da cotação durante o andamento da mesma.
- Implementação do migrador de cotações
- Implementação da funcionalidade de compra centralizada.
- Implementação da funcionalidade de contatos x fornecedores para envio do workflow.
- Implementação de nova interface MVC para edição da cotação
- Implementação da edição de impostos via nova interface de edição da cotação
- Implementação de impostos IPI e ICMS-ST no formulário workflow a serem editados pelo fornecedor
- Implementação de seleção de condição de pagamento flexível no envio do workflow
- Implementação de rotina automática de edição de cotação
- Implementação de possibilidade de pontos de entrada durante a edição da cotação via nova interface.
- Correções gerais de usabilidade e performance
- Implementação da opção "salvar rascunho" no formulário workflow.
- Correções gerais de usabilidade e performance
- Implementação da análise de cotação por item parcial
- Correções gerais de usabilidade e performance
- Implementação da visualização da observação da solicitação de compras
- Implementação de filtro por comprador na listagem de cotações
- Visualização de dados do fornecedor na tela de edição da cotação
- Visualização clara de moeda utilizada na edição da cotação
- Correções gerais de usabilidade
- Implementação de geração de cotação utilizando Produto x Fornecedor e MV_SELFOR = N
- Implementação de visualização de solicitações de compras vinculadas a cotação.
- Implementação de listagem de pedidos e contratos gerados pela cotação.
- Correção de ordenação de proposta por preço considerando impostos.
- Alteração de texto para melhor entendimento de análise por proposta completa.
- Ajuste para permitir alteração da TES quando a cotação foi preenchida por Workflow.
- Implementação de Guia de configuração do e-mail do comprador.
- Implementação de Guia de configuração e sugestão do Workflow.
- Correção no funcionamento do WorkFlow, possibilitando a utilização do "WFTEST" padrão para testar funcionamento.
- Correção na listagem de solicitações de compras quando campo C1_DATPRF marcado como browse.
- Correções gerais de usabilidade e performance.
- Correções diversas nos anexos;
- Correção no filtro da necessidade de compras;
- Correção no cadastro de novo participante;
- Correção no refresh do carrinho de compras;
- Correção no formulário de workflow;
- Correções gerais de performance e usabilidade;
- Implementada funcionalidade para obter informações do CNPJ do fornecedor, através da API da TOTVS Carol.
- Implementada geração de cotação para fornecedor Participantes.
- Incluída nova coluna que exibe a quantidade de respostas dos fornecedores recebidas pela cotação.
- Implementada geração de contrato.
- Implementada funcionalidade para geração de novo fornecedor para a cotação.
- Correção para limpeza do localStorage na inicialização da aplicação.
- Correção para encontrar os anexos corretamente quando o fornecedor for participante.
- Removido carregamento de campos do tipo Memo para a tela de Necessidade de Compras.
- Correção para validar tipo de contrato e planilha fixos independentemente do parâmetro MV_VLDTPFI.
- Correção para que as colunas retornem a quantidade de propostas respondidas e descartadas.
- Implementado Campos customizados no Browse de Necessidade de Compras e Cotações.
- Implementado funcionalidade de salvar preferências de campos do tipo suite em Necessidade de Compras.
- Efetuada melhoria do retorno das mensagens da API de Workflow para facilitar implantação.
- Correção para que após efetuar a busca por código de produto e limpar o campo.
- Correção para remover obrigatoriedade dos campos na atualização dos contatos.
- Correção para que ao declinar Proposta do Workflow o processo ocorra corretamente.
- Correção para que ao utilizar outras moedas no formulário de Workflow a gravação ocorra corretamente.
- Correção para o bloqueio de produtos que ocorria de forma intermitente na Geração de Cotação.
- Correção do ícone de anexo ao visualizar anexos e fechar a lista.
- Correção para considerar os valores de despesa e seguro na Análise Por item.
- Correção para que após efetuar Análise "Por Item" de Cotação Parcial seja possível dar continuidade ao processo com a quantidade restante.
- Correção para que executar a URL correta da API de Análise de Cotação.
- Correção para que ao deletar todos os anexos antes de enviar Workflow, não ocorra validação de Anexo não encontrado.
- Correção para que não seja permitido data de recebimento da cotação inferior a data atual.
- Implementado Mapa de Cotação.
- Implementado Filtro por Grupo de Produto.
- Inclusão do Campo de TES na Edição da Cotação.
- Inclusão de funcionalidade de Exclusão de Proposta.
- Correção de documento Anexo não Encontrado.
- Correção de descrição do Título da Tela de Edição da Cotação.
- Correção do campo de desconto ao utilizar Nova Proposta.
- Correção para não permitir desconto negativo na Edição da Cotação.
- Correção de erro ao desistir de baixar o anexo.
- Correção no Endpoint para retornar propostas parciais de Fornecedores.
- Correção de mensagem de produto bloqueado para produtos liberados.
- Correção de erro exibido ao realizar filtro na aba Atendidas.
- Correção no loading da busca de produto.
- Correção na tela de Demais Campos para não salvar dados ao clicar em Fechar.
- Correção do campo quantidade disponível quando MV_ZERPROP = 1.
- Correção na exibição dos Impostos Complementares na Tela de Impostos por item.
- Correção no campo Tipo de Frete da Edição de Cotação para mesmo comportamento do legado.
- Correção do retorno das cotações por ordem do total da cotação.
- Implementação dos campos de Quantidade de fornecedores participantes e quantidade de produtos cotados na listagem de cotações.
- Implementação de filtro por status "Todos, pendente, em análise e finalizado" na listagem de cotações.
- Implementação dos campos customizados da tabela SC8 na edição de cotação.
- Implementação de edição da observação a ser levado para o pedido de compra na análise de cotação
- Implementação de opção para gerar novas propostas, manual e via workflow.
- Correção no envio de e-mail por workflow.
- Correção para mostrar mensagem de aviso ao atualizar contato de fornecedor que esteja aberto por outro usuário.
- Correções gerais de usabilidade e desempenho.
06. TABELAS E PARÂMETROS
Abaixo você pode visualizar os parâmetros e tabelas utilizados pelo NFC:
- DHU (Cabeçalho da Cotação)
- DHV (Produtos da Cotação)
- SA2 (Fornecedores)
- SB1 (Descrição Genérica do Produto)
- SC1 (Solicitações de Compra)
- SC8 (Cotações)
- AC9 (Relação de Objetos x Entidades)
- ACB (Bancos de Conhecimentos)
- SCE (Encerramento de Cotações)
- SC7 (Pedido de Compra)
- DKI (Contatos x Fornecedores)
- MV_PGCWF - Permite utilizar o e-mail do comprador para enviar o formulário de workflow ao fornecedor.
- MV_SELFOR - Permite o comprador escolher os fornecedores livremente ou somente dentre os amarrados no Produto x Fornecedor.
- MV_PCEXCOT - Habilita a reabertura da cotação ao excluir um Pedido de Compra ou Contrato.
- MV_TPPLA - Tipo da planilha a ser utilizado ao gerar um contrato proveniente da cotação.
- MV_APIFOR - Habilita o preenchimento automático de dados do fornecedor com a API TOTVS Carol (Utilizado preenchendo o CNPJ ao transformar participante da cotação em fornecedor)
- MV_PGCPISV - Servidor de e-mail POP 3/ IMAP dos compradores.
- MV_PGCPIPO - Porta de e-mail POP 3/ IMAP dos compradores.
- MV_PGCSMSR - Servidor de e-mail SMTP dos compradores.
- MV_PGCSMPO - Porta de e-mail SMTP dos compradores.
- MV_PGCTAUT - Tipo de autenticação do servidor de e-mail: TLS, SSL ou nenhum.
- MV_COTFIAP - Em caso de cotação com compra centralizada, os pedidos serão gerados na filial de entrega ou filial de compra.
- MV_GRIMPWF - Informa se deve calcular o IPI e ICMS-ST (mesmo zerado no workflow), de acordo com os valores do sistema, ou considerar apenas os valores vindos do Workflow. O parâmetro é do tipo lógico. Situação: Resposta do workflow do fornecedor com valores de IPI e ICMS-ST zerados: .T. - Sistema calculará os valores e gravar nos respectivos campos SC8 / .F. - Sistema não calculará os valores e os respectivos campos continuarão zerados.
07. PONTOS DE ENTRADA E ROTINA AUTOMÁTICA
A rotina automática de edição de cotação é realizada através do instanciamento do modelo NFCA020.
Esta rotina tem como objetivo realizar somente a edição da cotação com os dados que forem passados para processamento.
Abaixo, um exemplo de utilização:
#Include 'TOTVS.ch' #Include 'FWMVCDef.ch' #Include 'Protheus.ch' Function EdicaoComp() Local aArea := GetArea() Local aDados := {} Local cNumCotacao := "000011" Local oModel := nil Local oGridSC8 := nil local nFor := 0 local cMsg := "" DHU->( DbSetOrder(1) ) //DHU_FILIAL+DHU_NUM if ( DHU->( DbSeek(xFilial("DHU") + cNumCotacao) ) ) oModel := FwLoadModel("NFCA020") oGridSC8 := oModel:GetModel("SC8DETAIL") oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() for nFor := 1 to oGridSC8:Length() oGridSC8:GoLine(nX) oGridSC8:setValue("C8_PRECO", 40.00) oGridSC8:setValue("C8_QTDISP", 1) oGridSC8:LoadValue("C8_CONTATO", "JOAO SANTOS") next nX if ( oModel:VldData() ) oModel:commitData() else cMsg := oModel:getErrorMessage()[6] + " - " + oModel:getErrorMessage()[4] + CRLF cMsg += oModel:getErrorMessage()[8], '') //https://tdn.totvs.com/display/public/framework/FWFormModel - GetErrorMessage endif endif Restarea(aArea) FWFreeObj(oModel) FWFreeObj(oGridSC8) return nil
Pontos de Entrada MVC na rotina de Edição de Cotação híbrida NFCA020
Por ser uma rotina em MVC, a Edição de Cotação híbrida possibilita aos usuários a utilização de diversos Pontos de Entrada, para que possam fazer os desvios e processamentos personalizados, adequados à realidade da organização.
Breve explicação sobre pontos de entrada MVC:
Nos fontes convencionais temos um "nome" para cada ponto de entrada criado, por exemplo, na rotina MATA010 – Cadastro de Produtos temos os pontos de entrada: MT010BRW, MTA010OK, MT010CAN, etc. Em MVC, não é desta forma, criamos um único ponto de entrada e este é chamado em vários momentos.
Este ponto de entrada único deve ser uma User Function e ter como nome o ID do Modelo de Dados (Model) do Fonte.
Para o funcionamento do ponto de entrada MVC da edição da cotação, deve-se utilizar o nome da função NFCA020:
Sugestão do nome do fonte: MYNFCA020.prw
User Function NFCA020() Local aParam := PARAMIXB Local xRet := .T. ... Return xRet
O ponto de entrada criado recebe via parâmetro (PARAMIXB) um vetor com informações referentes ao fonte. Estes parâmetros variam para cada situação, em comum todos eles tem os 3 primeiros elementos que são listados abaixo, no quadro seguinte existe a relação de parâmetros de cada ID:
Posições do array de parâmetros comuns a todos os IDs:
POS. | TIPO | DESCRIÇÃO |
1 | O (Objeto) | Objeto do formulário ou do modelo, conforme o caso |
2 | C | ID do local de execução do ponto de entrada |
3 | C | ID do formulário |
O ponto de entrada é chamado em vários momentos dentro do fonte, na 2ª posição da estrutura do vetor é passado um ID que identifica qual é este momento. Ela pode ter como conteúdo:
ID | MOMENTO DE EXECUÇÃO DO PONTO DE ENTRADA |
MODELPRE | Antes da alteração de qualquer campo do modelo. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Requer um retorno lógico |
MODELPOS | Na validação total do modelo. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Requer um retorno lógico |
FORMPRE | Antes da alteração de qualquer campo do formulário. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Requer um retorno lógico |
FORMPOS | Na validação total do formulário. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Requer um retorno lógico |
FORMLINEPRE | Antes da alteração da linha do formulário FWFORMGRID. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário 4 N Número da Linha da FWFORMGRID 5 C Ação da FWFORMGRID 6 C Id do campo Retorno: Requer um retorno lógico |
FORMLINEPOS | Na validação total da linha do formulário FWFORMGRID. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário 4 N Número da Linha da FWFORMGRID Retorno: Requer um retorno lógico |
MODELCOMMITTTS | Após a gravação total do modelo e dentro da transação. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Não espera retorno |
MODELCOMMITNTTS | Após a gravação total do modelo e fora da transação. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Não espera retorno |
FORMCOMMITTTSPRE | Antes da gravação da tabela do formulário. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário 4 L Se .T. indica novo registro (Inclusão) se .F. registro já existente (Alteração / Exclusão) Retorno: Não espera retorno |
FORMCOMMITTTSPOS | Após a gravação da tabela do formulário. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário 4 L Se .T. indica novo registro (Inclusão) se .F. registro já existente (Alteração / Exclusão) Retorno: Não espera retorno |
MODELCANCEL | No cancelamento do botão. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Requer um retorno lógico |
BUTTONBAR | Para a inclusão de botões na ControlBar. Para criar os botões deve-se retornar um array bi-dimensional com a seguinte estrutura de cada item: 1 C Titulo para o botão 2 C Nome do Bitmap para exibição 3 B CodeBlock a ser executado 4 C ToolTip (Opcional) Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Requer um array de retorno com estrutura pré definida |
MODELVLDACTIVE | Na ativação do modelo. Parâmetros Recebidos: 1 O Objeto do formulário ou do modelo, conforme o caso 2 C ID do local de execução do ponto de entrada 3 C ID do formulário Retorno: Requer um retorno lógico. |
Observações:
- Quando o modelo de dados possui vários componentes (por exemplo, vários FWFORMGRIDs), a 3ª posição do vetor trará o ID deste componente.
- Quando o tipo de retorno de um determinado momento de execução não for passado ou for passado com o tipo errado será exibida uma mensagem no console avisando sobre isso. Todos IDs que esperam retorno devem ser tratados no Ponto de entrada.
- Ao se escrever um fonte em MVC que será uma User Function, cuidado ao se atribuir o ID do modelo de dados (Model), pois ele não poderá ter o mesmo nome do fonte. Se o fonte tiver o nome FONT001, o ID do Modelo de Dados (Model) não poderá ser também FONT001.
#INCLUDE 'PROTHEUS.CH' #INCLUDE 'FWMVCDEF.CH' #INCLUDE "FWEVENTVIEWCONSTS.CH" #INCLUDE 'FWLIBVERSION.CH' #INCLUDE "MATA130.CH" #INCLUDE 'TOPCONN.ch' USER FUNCTION NFCA020() Local aParam := PARAMIXB Local xRet := .T. Local oObj := '' Local cIdPonto := '' Local cIdModel := '' Local lIsGrid := .F. Local nLinha := 0 Local nQtdLinhas := 0 Local cMsg := '' If ( aParam <> NIL ) oObj := aParam[1] cIdPonto := aParam[2] cIdModel := aParam[3] lIsGrid := iif(aParam[3] == "SC8DETAIL", .t., .f.) If ( lIsGrid ) nQtdLinhas := oObj:GetQtdLine() nLinha := oObj:nLine EndIf If ( cIdPonto == 'MODELPOS' ) cMsg := 'Chamada na validação total do modelo (MODELPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'O MODELPOS retornou .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'FORMPOS' ) cMsg := 'Chamada na validação total do formulário (FORMPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF If ( cClasse == 'FWFORMGRID' ) cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLF cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF ElseIf ( cClasse == 'FWFORMFIELD' ) cMsg += 'É um FORMFIELD' + CRLF EndIf If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'O FORMPOS retornou .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'FORMLINEPRE' ) If ( aParam[5] == 'DELETE' ) cMsg := 'Chamada na pre validação da linha do formulário (FORMLINEPRE).' + CRLF cMsg += 'Onde esta se tentando deletar uma linha' + CRLF cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLF cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF cMsg += 'ID ' + cIdModel + CRLF If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'O FORMLINEPRE retornou .F.', 1, 0 ) EndIf EndIf ElseIf ( cIdPonto == 'FORMLINEPOS' ) cMsg := 'Chamada na validação da linha do formulário (FORMLINEPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLF cMsg += 'Posicionado na linha ' + Alltrim( Str( nLinha ) ) + CRLF If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'O FORMLINEPOS retornou .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'MODELCOMMITTTS' ) ApMsgInfo('Chamada apos a gravação total do modelo e dentro da transação (MODELCOMMITTTS).' + CRLF + 'ID ' + cIdModel ) ElseIf ( cIdPonto == 'MODELCOMMITNTTS' ) ApMsgInfo('Chamada apos a gravação total do modelo e fora da transação (MODELCOMMITNTTS).' + CRLF + 'ID ' + cIdModel) ElseIf ( cIdPonto == 'FORMCOMMITTTSPOS' ) ApMsgInfo('Chamada apos a gravação da tabela do formulário (FORMCOMMITTTSPOS).' + CRLF + 'ID ' + cIdModel) ElseIf ( cIdPonto == 'MODELCANCEL' ) cMsg := 'Chamada no Botão Cancelar (MODELCANCEL).' + CRLF + 'Deseja Realmente Sair ?' If !( xRet := ApMsgYesNo( cMsg ) ) Help( ,, 'Help',, 'O MODELCANCEL retornou .F.', 1, 0 ) EndIf ElseIf cIdPonto == 'BUTTONBAR' ApMsgInfo('Adicionando Botao na Barra de Botoes (BUTTONBAR).' + CRLF + 'ID ' + cIdModel ) xRet := { {'Salvar', 'SALVAR', { || Alert( 'Salvou' ) }, 'Este botao Salva' } } EndIf EndIf Return xRet
Nome do ponto de entrada: AVALCOT
Objetivo: Permitir a edição dos pedidos de compra gerados via análise de cotação (depois da gravação).
Documentação: Clique Aqui - Documentação AVALCOT
Nome do ponto de entrada: AVALCOPC
Objetivo: Permitir a edição dos itens dos pedidos de compra gerados via análise de cotação (depois da gravação).
Documentação: Clique Aqui - Documentação AVALCOPC