ÍNDICE


01. VISIÓN GENERAL

El Nuevo Flujo de Compras ayuda en la gestión, control y toma de decisiones con relación al área de compras de su empresa.
La herramienta permite adoptar mejores estrategias para la gestión de solicitudes de compras recibidas, además de entregar una nueva experiencia en la jornada de cotizaciones. Durante los meses, otros procesos de compras se modernizarán y se pondrán a disposición con el objetivo de simplificar procesos, optimizar el tiempo de las operaciones y agilizar las tareas de su cotidiano. 

02. EJEMPLO DE UTILIZACIÓN

Aquí se pueden visualizar ejemplos prácticos de las principales funcionalidades del Nuevo Flujo de Compras.


Al acceder a la Página Inicial (Inicio) el usuario puede visualizar el nombre del usuario conectado.

[Haga clic en la imagen para ampliar]

Paso 1: Para iniciar una solicitud de cotización, seleccione en el menú lateral la opción Necesidad de compra.

[Haga clic en la imagen para ampliar]

Paso 2: Después de acceder a la pantalla, es necesario seleccionar los ítems que se cotizarán. A partir de un ítem seleccionado la opción Iniciar cotización, ubicado en el lado inferior derecho de la pantalla, quedará habilitado. Haga clic aquí para el siguiente paso. 

[Haga clic en la imagen para ampliar]

Paso 3: A continuación, se dirigirá a la pantalla Solicitud de cotización. En esta pantalla existen dos campos obligatorios, relacionados a los Datos de la cotización, evidenciados con un asterisco '*'. Es necesario cumplimentar estos para continuar el proceso.

Los respectivos campos son: 

  1. Apodo del grupo de cotización: El usuario definirá cómo se llamará la cotización.
  2. Recepción Cotización: El usuario definirá el plazo para la recepción de cotizaciones.

[Haga clic en la imagen para ampliar]

Paso 4: En esta pantalla se pueden verificar las Informaciones de entrega y productos seleccionados.  
En Productos seleccionados hay un campo de texto en cada ítem, donde se pueden enviar al proveedor observaciones/especificaciones sobre el producto. 


[Haga clic en la imagen para ampliar]

Paso 5: Cuando haya más de una solicitud que tengan productos iguales, con la misma fecha de necesidad, cuenta contable, entre otras similitudes, habrá una agrupación de solicitudes. Por lo tanto, surge en la pantalla un campo llamado Solicitudes agrupadas. Aquí el usuario logrará visualizar a través de un disclaimer azul, el número de la solicitud y el número del ítem que aparecen en esta misma orden Solicitud-Ítem, y suma las cantidades solicitadas a la cantidad total.

[Haga clic en la imagen para ampliar]

Para más información sobre la agrupación de productos haga clic aquí.

Atención: Para visualizar esta pantalla es necesario tener el parámetro MV_SELFOR activo (S).

Paso 1: En la solapa Todos los proveedores aparecerá una lista con todos los proveedores ya registrados en el Protheus, en la solapa Últimos proveedores podemos acceder de manera fácil a los últimos proveedores listados, según las últimas facturas de compras, con el código del producto igual a las encontradas para esta cotización



[Haga clic en la imagen para ampliar]

Para incluir en esta cotización uno o más proveedores participantes (no registrado en el sistema), es necesario hacer clic en la opción Nuevo proveedor, ubicado en la parte superior de la pantalla. Aquí es necesario agregar la razón social y e-mail. Es obligatorio informar la razón social para incluir al nuevo proveedor participante, no se podrá duplicar esta. Este proveedor aun no estará registrado oficialmente en el sistema, solo participará del proceso de cotización.



[Haga clic en la imagen para ampliar]


Paso 2: Por medio del campo de búsqueda se puede encontrar un proveedor específico digitando el RCPF/RCPJ, razón social o nombre de fantasía.


[Haga clic en la imagen para poder ampliar]

Paso 3: Si fuera necesario actualizar el contacto de algún proveedor, se podrá realizar esta tarea sin salir de la pantalla, haciendo clic en la opción Actualizar contacto


[Haga clic en la imagen para poder ampliar]

Paso 4: En la opción Mostrar detalles logrará visualizar más informaciones sobre el proveedor.


[Haga clic en la imagen para poder ampliar]

Paso 5: Después de seleccionar a los proveedores, haga clic en la opción Generar cotización para finalizar el proceso de generación de la cotización

[Haga clic en la imagen para ampliar]

Paso 6: Después de la generación de la cotización, se pondrá a disposición una ventana, que permitirá incluir documentos adjuntos a la cotización y enviar un Workflow por e-mail a los participantes. Si no desear enviar documentos adjuntos o e-mails a los proveedor, basta cerrar la ventana. Si opta por enviar por e-mail, seleccione "" en el campo "¿Enviar cotización por e-mail al proveedor?". Después de seleccionar "Sí", se muestra otro campo, que pregunta si se desea seleccionar las condiciones de pago que se enviarán a los proveedores por medio del Workflow. Si no desea seleccionar las condiciones de pago, todas las condiciones que tienen "Incl WF NFC = Sí" (campo E4_ATVWF de la tabla SE4), determinadas a partir del registro de condiciones de pago en el Protheus, se enviarán a los proveedores.
Después de este proceso, haga clic en la opción "Enviar e-mail(s)".



[Haga clic en la imagen para ampliar]

image-2024-3-13_11-33-18.png
Protheus - Pantalla registro condiciones de pago [Haga clic en la imagen para ampliar]

Si el entorno estuviera configurado con el parámetro MV_SELFOR inactivo (N) la pantalla de Selección de proveedores se modificará y habilitará el vínculo de Producto vs. Proveedor. Mostrando los productos y los proveedores vinculados a este. Para dicho entorno no se podrán agregar proveedores participantes.

[Haga clic en la imagen para ampliar]


Paso 1:  En la pantalla Selección de Proveedores vs. Producto, seleccione los proveedores vinculados al producto como muestra la siguiente imagen.

[Haga clic en la imagen para ampliar]

Paso 2: Si fuera necesario actualizar el contacto de algún proveedor, se podrá realizar esta tarea sin salir de la pantalla, haciendo clic en la opción Actualizar contacto

[Haga clic en la imagen para ampliar]

Al enviar un e-mail por medio del Nuevo flujo de compras, el proveedor recibirá una notificación. En este e-mail, será posible visualizar quién hizo la solicitud y los ítems de la cotización, de acuerdo con el siguiente ejemplo.

[Haga clic en la imagen para ampliar]

Al hacer clic en el enlace para completar, el proveedor abrirá el formulario donde podrá detallar los ítems de la cotización solicitada.

[Haga clic en la imagen para ampliar]

La fecha de entrega es individual por ítem de la cotización, debiendo el proveedor informar la fecha de entrega de cada ítem. Si la fecha fuera única u otro escenario del proveedor, para facilitar la inclusión de este dato, el usuario debe incluir la fecha deseada en el primer ítem de la cotización y a continuación, hacer clic en la opción Copiar fecha, que la fecha del primer ítem se copiará en los demás ítems de la cotización.

Las condiciones de pago mostradas en el formulario se establecen de acuerdo con lo que se seleccionó en el envío del E-mail vía Nuevo flujo de compras, si el usuario no tiene establecido previamente las condiciones que el proveedor podrá visualizar, todas las condiciones que tienen "Incl WF NFC = Sí" (campo E4_ATVWF de la tabla SE4), determinadas a partir del registro de condiciones de pago en el Protheus, se enviarán a los proveedores, como se muestra a continuación.




[Haga clic en la imagen para ampliar]



Protheus - Pantalla registro condiciones de pago [Haga clic en la imagen para ampliar]

Después del envío de la propuesta respondida por el proveedor, la cotización se actualizará con todas las informaciones enviadas en el Nuevo flujo de compras.

 La selección de las condiciones de pago mencionadas anteriormente, estará disponible a partir de la expedición continua del 05/04/2024.

Al seleccionar una solicitud de compras se puede visualizar la solicitud que ya se seleccionó por medio de la opción Registros seleccionados, ubicado en el lado inferior izquierdo de la pantalla. Solamente se podrá realizar la selección de solicitudes Pendiente para iniciar una cotización.


[Haga clic en la imagen para ampliar]


Con la finalidad de permitir el uso de los ítems de solicitud en una sola cotización, al intentar agregar al carrito de compras un ítem de solicitud ya seleccionado anteriormente, el sistema avisará con un mensaje informando que el ítem ya se seleccionó.


[Haga clic en la imagen para ampliar]

La funcionalidad "¿Validar Grupo de Producto?" tiene como objetivo garantizar que el usuario no seleccione un producto que no pertenezca al mismo grupo de producto. Esta validación se activa cuando el interruptor se ejecuta y siempre verifica el grupo de producto del primer ítem seleccionado. Si el ítem no tiene un grupo de producto definido, aparecerá un mensaje informando que solo se pueden seleccionar elementos sin grupo de productos.


[Haga clic en la imagen para ampliar]

Haciendo clic en Necesidad de Compra el usuario se reenviará a las solicitudes de compras disponibles para el proceso de cotización.

[Haga clic en la imagen para ampliar]

En esta página las solicitudes de compras se mostrarán divididas y listadas en tres solapas Pendiente, Parcialmente atendidas y Atendidas.

  • La solapa Pendiente muestra todos los ítems de la solicitud que tengan la cantidad en el pedido de compra igual a cero, y no se hayan eliminado por residuo (C1_RESIDUO).
  • La solapa de parcialmente atendidas mostrará todas las solicitudes que tienen un pedido de compra con cantidad menor que la cantidad solicitada (C1_QUANT).
  • En la solapa de atendidas se mostrarán todos los ítems que tengan cantidad en pedido de compra igual a la cantidad solicitada.

[Haga clic en la imagen para ampliar]

Para mostrar o retirar las columnas de la tabla existe un icono de configuración, en este se pueden realizar la Gestión de columnas dejando marcando solamente las columnas que se visualizarán. Se pueden incluso reordenar la posición de las columnas y restaurar el estándar.


[Haga clic en la imagen para ampliar]

La paginación de la pantalla de Necesidad de Compra funciona con una barra desplegable "infinita" hacia abajo, mientras haya solicitudes el sistema permitirá desplegar la página. Es necesario que el cursor este ubicado sobre la pantalla.  


[Haga clic en la imagen para ampliar]

Encima de la tabla, hay un contador de registros listados que muestra la cantidad de solicitudes ya mostradas y las solicitudes que se mostrarán.


[Clique na imagem para ampliar]

Las solicitudes de compras listadas en la pantalla de Necesidad de Compra, podrán tener adjuntos vinculados, si tuvieran, se mostrarán con el ícono de un clip en la columna Adjuntos.
Al hacer clic en el icono, se abrirá una nueva ventana con la lista de adjuntos, vinculados a la solicitud, esto permite realizar el download al hacer clic en el íconoDescargar adjunto

Atención: Los documentos adjuntos provenientes de las solicitudes de compras no serán automáticamente vinculados a la cotización.
Los archivos vinculados a la cotización se enviarán al proveedor por el workflow y pueden transmitir información confidencial e interna de la empresa.
Por este motivo, los documentos deben adjuntarse a la cotización durante su generación.


[Haga clic en la imagen para ampliar]

Al acceder a una de las listas de las solicitudes de compras, independiente de la solapa (Pendiente, parcialmente atendidas y atendidas), habrá una serie de filtros que las puede utilizar el usuario de manera individual o conjunta.

El Filtro por Fecha funciona con intervalo de dos fechas (inicio y fin), después de seleccionar el filtro buscará solicitudes de compras que tengan la Fecha de necesidad de acuerdo con el período seleccionado.


[Haga clic en la imagen para ampliar]

El filtro de busca por código de producto permite buscar el producto deseado por medio del código, esto permite que el usuario incluya el código completo o parte de este.
Además, esta funcionalidad también está disponible en la lupa que permite realizar una búsqueda avanzada por código, descripción o unidad de medida.

[Haga clic en la imagen para ampliar]

Por medio de la Búsqueda avanzada, se pueden realizar una serie de filtros sobre la solicitud deseada, como: 

  • Solicitud
  • Solicitante
  • Descripción del producto
  • Sucursal solicitante
  • Sucursal de entrega
  • Centro de costo;
  • Cuenta contable
  • Ítem contable
  • Clase de valor

Todos los filtros tienen la opción de seleccionar la "lupa" para hacer una búsqueda avanzada dentro del filtro deseado, pero su uso es opcional.


[Haga clic en la imagen para ampliar]

Filtros de usuário:

El sistema permite la aplicación de filtros de usuario. Para ello, es necesario registrar el comprador en la rutina Compradores (COMA087), en la opción Otras acciones > Filtro Neces. NFC, especificar el filtro deseado y activar el parámetro MV_FILTNFC. Para más información sobre cómo utilizar los filtros, consulte la documentación PCOM09013 - Compradores (COMA087), en la sesión Filtro necesidad de compra para el Nuevo flujo de compras (NFC).

Dentro de la pantalla Necesidad de compra, existe la opción "Compra centralizada", donde es posible realizar la centralización de solicitudes de compra para una única sucursal.

Por ejemplo: Cambiaremos todos los notebooks de las sucursales, en lugar de iniciar la cotización en cada sucursal, centralizaremos todas las solicitudes en una única sucursal para poder cotizar de una sola vez, generando posteriormente pedidos de compra para cada una de las sucursales de las solicitudes de compra.
En la pantalla de compra centralizada, tenemos dos listas, las cuales son:
(Izquierda) - Solicitudes de todas las sucursales - menos la conectada/centralizadora
(Derecha) - Solicitudes seleccionadas para centralizar/transferir a la sucursal conectada/centralizadora.

Las solicitudes que se transfirieron, se dejan en cero en la sucursal de origen y quedan con el estatus color morado.

Ya las nuevas solicitudes creadas en la sucursal centralizadora, quedan con el estatus disponible para cotización y aparecerán en el listado de necesidad de compra.



Todo el proceso de cotización con ítems centralizado es igual, con solamente dos cambios del proceso común:

1) No es posible incluir una cantidad disponible diferente de la cantidad solicitada.

2) Es posible configurar la generación de los pedidos de compra de acuerdo con el parámetro MV_COTFIAP:
MV_COTFIAP = E → Los pedidos se generarán de acuerdo con la sucursal de entrega en la solicitud de compra, es decir:

Sucursal Solicitud de compra: D MG 02

Sucursal centralizadora: D MG 01

Sucursal del pedido de compra: D MG 02
Sucursal de entrega del pedido de compra: D MG 02

MV_COTFIAP = C → Los pedidos se generarán en la sucursal centralizadora con la sucursal de entrega de acuerdo con el origen de la solicitud de compra.

Sucursal Solicitud de compra: D MG 02

Sucursal centralizadora: D MG 01

Sucursal del pedido de compra: D MG 01
Sucursal de entrega del pedido de compra: D MG 02


[Haga clic en la imagen para ampliar]

Se creó un nuevo registro de Contactos vs. Proveedores para que sea posible vincular diversos contactos a un proveedor, permitiendo el envío de workflow a todos estos.
Los contactos podrán actualizarse de dos formas: 

1) Directo por el nuevo flujo de compras, durante la selección de proveedores: 


2) En otras acciones en el registro de proveedores común:


Cada uno de los contactos registrados serán automáticamente cargados a la pantalla de envío de workflow, cuando tengan el campo "¿Env WF NFC?" = Sí, si estuviera como no, el registro se grabará, pero no se cargará automáticamente para el envío del WF


[Haga clic en la imagen para ampliar]

Paso 1: Para acceder a las cotizaciones, haga clic en Cotizaciones, aparecerá una lista con todas las solicitudes. Ubique la cotización deseada para actualizar, haga clic en opción editar, se abrirá una página con todos los proveedores participantes de la cotización seleccionada, además de mostrar en el tope de la página, un componente para presentar las Solicitudes de compras relacionadas

[Haga clic en la imagen para ampliar]

Si un proveedor respondió la cotización por Workflow, el proceso de actualización de la cotización ocurrirá automáticamente mediante los valores informados en el formulario por parte del proveedor.

[Haga clic en la imagen para ampliar]


Si la cotización tuviera un proveedor participante (no registrado), no aparecerá en la pantalla el código del proveedor, tienda ni RCPJ/RCPF, en lugar de estos valores aparecerá una indicación de Proveedor no registrado

[Haga clic en la imagen para ampliar]

Paso 2: Seleccione el proveedor del cual desea actualizar la cotización y haga clic en “Editar”, será enviado a la página de edición de cotización, como se muestra en la siguiente imagen.



[Haga clic en la imagen para ampliar]

La pantalla de edición de la cotización se divide en secciones de informaciones referentes a la cotización. Son Datos del proveedor, valores referentes a la cotización, informaciones de entrega, impuestos totales, datos de los ítems cotizados y campos personalizados:

[Haga clic en la imagen para ampliar]

Paso 3: Complete los campos editables del encabezado y los campos editables relacionados a los productos solicitados, según la negociación ocurrida con el proveedor. La cumplimentación de la Condición de pago es obligatoria para grabar la actualización de la cotización. A medida que el usuario completa los campos con los valores de los ítems, el total se calcula automáticamente, permitiendo que el usuario visualice los valores mientas la cotización está completándose.

La cumplimentación de la condición de pago es obligatoria para grabar la actualización de la cotización.


[Haga clic en la imagen para ampliar]

También es posible utilizar la lista de precio vinculada al proveedor (Registro de Producto vs. Proveedor) para completar los precios unitarios de forma automática, este proceso puede realizarse de dos formas:

  • Digitando manualmente el código de la lista de precio en el campo "Cód. Lta - C8_CODTAB", el sistema buscará el valor del producto en la lista de precios y completará automáticamente la línea.
  • Al hacer clic en Otras acciones > Lista de precios, buscará la lista vinculada al registro de Producto vs. Proveedor y de forma automática completará el valor de todos los productos de la cotización.

          Obs: Para ambos procesos, manual o automático, es necesario el vínculo de la lista de precios con el registro de Producto vs. Proveedor.




Para calcular los impuestos, referentes a los productos de la cotización, haga clic en "Otras acciones" ubicada en la parte superior de la pantalla, luego, seleccione la opción Calcular impuestos. Los impuestos se calcularán en pantalla y se sumarán al valor total de la cotización. El cálculo, con base en las configuraciones fiscales registradas en el producto y en el proveedor, realizará el cálculo de los impuestos



[Haga clic en la imagen para ampliar]


Paso 4: Después de informar parcialmente o totalmente los datos de los productos solicitados en la cotización, el estatus se actualizará a Parcial o Completa y la cotización ya se podrá analizar. En el siguiente ejemplo, podemos ver la primera cotización Completa con cero elementos pendientes, y la siguiente cotización Parcial con un ítem pendiente.

[Haga clic en la imagen para ampliar]

Paso 5: Si el entorno estuviera configurado con el parámetro MV_SELFOR inactivo (N), al hacer clic en la opción "Nuevo participante" se muestra la pantalla de vínculo de Proveedor vs. Producto. Mostrando los productos y los proveedores vinculados a este. Para dicho entorno no se podrán agregar proveedores participantes.

[Haga clic en la imagen para ampliar]

Paso 6: En la pantalla Selección de Proveedores vs. Producto, seleccione los proveedores vinculados al producto como muestra la siguiente imagen.

[Haga clic en la imagen para ampliar]

Paso 7: Si fuera necesario actualizar el contacto de algún proveedor, se podrá realizar esta tarea sin salir de la pantalla, haciendo clic en la opción Actualizar contacto

[Haga clic en la imagen para ampliar]

Paso 8: Después de generar las propuestas para el nuevo proveedor, se mostrará la pantalla de envío de e-mails y documentos adjuntos.

[Haga clic en la imagen para ampliar]


Paso 1: Para iniciar un análisis de cotización, es necesario que la cotización tenga el estatus Listo para analizar. En la pantalla de listado de cotizaciones, pulse en Otras acciones y seleccione la opción de Analizar.


[Haga clic en la imagen para ampliar]

Paso 2: El análisis de la cotización se podrá realizar Por Propuesta o Por Ítem. El análisis por propuesta necesita que todos los productos solicitados, hayan pasado por actualización de la cotización por lo menos de un proveedor, es decir, necesitan estar con el estatus Completa después de editar la cotización.
Por medio de los cards de propuesta se puede realizar la comparación entre los proveedores para entender quien tiene el Mejor precio sin impuestos, Mejor precio con impuestos, Menor plazo y Mejor nota


[Haga clic en la imagen para ampliar]

Paso 3: Después de la decisión del proveedor vencedor de la cotización, haga clic en Generar para iniciar el proceso de pedido de compras.


[Haga clic en la imagen para ampliar]

Paso 3: En la pantalla de Formalización de la propuesta el usuario podrá seleccionar si será un pedido o un contrato para esta cotización, después haga clic en la opción Generar documentos 

[Haga clic en la imagen para ampliar]


Generación del pedido de compra: Después de finalizar el proceso, el sistema muestra un mensaje con el código del pedido generado.


Generación del contrato: Después de hacer clic en "Generar documento" para el tipo Contrato, informe los campos editables de "Condición de pago" y "Tipo de contrato" en el encabezado, después de finalizar el proceso se devolverá el código del contrato generado. 

La cumplimentación de estos campos es obligatoria para grabar la inclusión del contrato.

Si desea considerar los tipos de contrato diferentes del tipo fijo, es necesario desactivar el parámetro MV_VLDTPFI.


Generación del contrato: 

Paso 1: Al seleccionar la opción de analizar Por Ítem se logrará comparar las propuestas de cada proveedor para dicho ítem, y se podrán utilizar los estatus relacionados al promedio de precios para ayudar en la selección del vencedor del ítem de la cotización. 

Observación: A partir de la actualización de Julio/2024, el mejor precio vendrá seleccionado automáticamente. El mejor precio está compuesto por el siguiente cálculo: ( (valor unitario + valor flete + valor seguro + valor gasto) - (valor descuento) ), recordando que los valores de flete + seguro + gasto - descuento es proporcional a los otros ítems de la cotización.

[Haga clic en la imagen para ampliar]

Paso 2: Después de la decisión del(os) proveedor(es) vencedor(es) de la cotización, haga clic en Generar para iniciar el proceso de pedido o contrato.

[Haga clic en la imagen para ampliar]

Paso 3: En la página de Formalización de las propuestas, el usuario podrá seleccionar ítem por ítem, si se generará un Pedido de compra o un Contrato.



  • Para cada ítem, aparecerá el saldo total disponible, así como el campo Cantidad por adquirir, porque cuando se opta por el ítem, el comprador puede realizar compras parciales, es decir, comprar una determinada cantidad y devolver después, para comprar lo que restó de la cantidad. Además, se mostrará el campo de observaciones, que se muestra al proveedor.
  • Por estándar, el campo Cantidad por adquirir ya está informado con el mismo valor del saldo disponible El comprador - en este campo - se puede incluir un valor mayor que cero e igual o menor que el saldo disponible, para cerrar el pedido. Logotipo:

    Valor saldo

    Valor cantidad que se adquirirá

    Resultado

    30

    30

    Esta acción se realizará, porque la cantidad incluida está de acuerdo con el saldo existente (cantidad que se adquirirá igual al saldo disponible).

    30

    31

    El usuario recibirá un aviso, informando que la cantidad incluida es mayor que el saldo disponible. Automáticamente, el sistema informará el campo Cantidad por Adquirir con el valor 30 (valor del saldo).

    30

    15

    Esta acción se realizará, porque la cantidad incluida está de acuerdo con el saldo existente (cantidad que se adquirirá menor que el saldo disponible).

    30

    0

    El usuario recibirá un aviso, informando que la cantidad incluida debe ser mayor que cero. Automáticamente, el sistema informará el campo Cantidad por Adquirir con el valor 30 (valor del saldo).

    30

    -5

    El usuario recibirá un aviso, informando que la cantidad incluida debe ser mayor que cero. Automáticamente, el sistema informará el campo Cantidad por Adquirir con el valor 30 (valor del saldo).

  • El comprador puede colocar la cantidad deseada para cada ítem en la pantalla, seleccionando si desea generar el Pedido de Compra o Contrato.
  • Después, es solo hacer clic en Generar documentos, para finalizar el proceso.
  • Si realizó una compra donde la Cantidad que se adquirió fuera menor que el saldo, el sistema automáticamente retirará el valor adquirido del saldo del ítem, para ajustar la compra realizada por el comprador.
     


  • Al intentar realizar una nueva compra, el saldo disponible mostrado será menor, puesto que ya hubo compras realizadas anteriormente.


    [Haga clic en la imagen para ampliar]
  • Cuando el comprador finaliza el pedido o contrato con valores inferiores al saldo, la cotización quedará con el estatus Atendido parcialmente, mostrando que para aquella cotización, el saldo total aún no se compró. Así, el comprador puede volver a esa cotización y realizar los mismos procedimientos descritos en este ítem, para realizar la compra del saldo restante, esto puede generar el pedido de compra o contrato, independiente de cómo se realizó la primera vez. 
    • Cuando la cotización queda con el estatus Atendido parcialmente, al intentar editar la cotización, no se podrán incluir nuevas propuestas, nuevo participante o modificar valores, puesto que la cotización ya tuvo compras correspondientes.
    • Además, cuando la compra queda con el estatus Atendido Parcialmente, al acceder al Análisis de la Cotización, la solapa Por Propuesta queda inactiva, mostrando un mensaje de que ya no se puede finalizar el análisis por propuesta, puesto que ya tenemos el análisis por ítem realizado.
    • La columna Cantidad solicitada informa la cantidad solicitada por el comprador, de acuerdo con la generación de la cotización, la columna Cant. Disponible proveedor informa la cantidad de ítems disponibles en el proveedor.

Si desea reabrir la cotización, es necesario activar el parámetro MV_PCEXCOT y, a continuación, realizar el borrado del Pedido de compra o Contrato. Para más informaciones Haga clic aquí.


Generación del pedido de compra: Después de finalizar el proceso, el sistema muestra un mensaje con el código del pedido generado.


Generación del contrato: Después de hacer clic en "Generar documento" para el tipo Contrato, complete los campos editables de "Condición de pago" y "Tipo de contrato" en el encabezado, después de finalizar el proceso, se devolverá el código del contrato generado. 
La cumplimentación de estos campos es obligatoria para grabar la inclusión del contrato.

Si se selecciona más de un proveedor el sistema abrirá las siguientes opciones para adición del contrato, siendo estas: 

  • Contrato único: Se generará un único contrato para todos los proveedores seleccionados en la formalización de la propuesta.



  • Contrato separado: Se generará un contrato por cada proveedor seleccionado en la formalización de la propuesta.

    Si desea considerar los tipos de contrato diferentes del tipo fijo, es necesario desactivar el parámetro MV_VLDTPFI.

Haciendo clic en Cotizaciones el usuario se dirigirá al listado de cotizaciones.


En la pantalla de cotizaciones se puede:

  • Buscar la cotización por código, apodo de la cotización y estatus.
  • Editar, eliminar y analizar cotización.
  • Descarga (download), adición y eliminación de adjuntos.


[Haga clic en la imagen para ampliar]

Las cotizaciones se pueden identificar por código o apodo, y la situación se puede identificar a través de los siguientes estatus

  1. Pendiente: Situación en la que la cotización aún no tiene ninguna propuesta completa recibida.
  2. Listo para analizar: Cuando existe por lo menos una propuesta completa para analizarla.
  3. En análisis: Cuando solamente un ítem se cotizó dejando así la cotización parcialmente atendida.
  4. Finalizada: Cuando la cotización haya sido completamente atendida

En la pantalla de listado de cotizaciones, se podrán identificar cotizaciones que tengan adjuntos del icono Clip en la columna adjunta.


[Haga clic en la imagen para ampliar]

El icono quedará visible en las siguientes situaciones:

  1. En la Necesidad de compras se adjuntaron documentos a la cotización en el momento de la generación.
  2. Se agregó un adjunto posteriormente en la pantalla del listado de cotizaciones.

Al hacer clic en el icono, se abrirá una nueva ventana, donde estarán listados todos los adjuntos vinculados a dicha cotización, y se pueden realizar descargas (download) y eliminación de archivos.

Importante: Los documentos adjuntos listados están vinculados a la cotización y no a los proveedores.


[Haga clic en la imagen para ampliar]

Se pueden agregar nuevos adjuntos a una cotización. Después de agregar, si la cotización no tuviera un documento adjunto, tendrá el ícono de clip mostrando que la cotización ahora tiene un documento adjunto. Así se puede adjuntar uno o más archivos de una vez.


[Haga clic en la imagen para ampliar]


Si un documento que se adjuntará ya existe en la base de conocimiento, aparecerá el siguiente mensaje:


[Haga clic en la imagen para ampliar]

Al acceder a una de las listas de cotizaciones, tendremos dos campos de búsqueda que pueden ser utilizados por el usuario de manera individual o combinada.


El Filtro por número o apodo de la cotización, realiza la búsqueda por el código de la cotización deseado (informado en la solicitud de cotización) o apodo (establecido por el usuario en el momento de generar), para esta utilización se puede incluir el código o apodo completo o solamente parte de este.


[Haga clic en la imagen para ampliar]


[Haga clic en la imagen para ampliar]

El filtro por Tipo de estatus, por estándar al acceder a la lista de cotizaciones, vendrá informado previamente como Todos. Pero el usuario podrá definir el estatus de la cotización que desea visualizar, donde:

  • Todos
  • Pendiente
  • Listo para analizar
  • En análisis
  • Finalizada.

[Haga clic en la imagen para ampliar]


Por medio de la Búsqueda avanzada, es posible hacer una serie de filtros combinados sobre la cotización deseada, como: 

  • Comprdores
  • Nº Pedido de compra (Número del pedido de compra);
  • Número del contrato;


El Filtro por Comprador permite buscar con base en el(os) Comprador(es) deseado(s). El usuario puede buscar todas las solicitudes generadas por uno o más compradores seleccionados en el filtro, como muestra la siguiente imagen.

[Haga clic en la imagen para ampliar]


El Filtro por número de pedido de compra permite la búsqueda con base en el/los Pedido(s) de compra(s) generado(s) a partir de la Cotización. El usuario puede buscar por el número completo o por la referencia del Pedido seleccionado en el filtro, como muestra la siguiente imagen.

[Haga clic en la imagen para ampliar]


El Filtro por número del contrato permite la búsqueda con base en el/los Contrato(s) generado(s) a partir de la Cotización deseada. El usuario puede buscar por el número completo o por la referencia del Contrato seleccionado en el filtro, como muestra la siguiente imagen.

[Haga clic en la imagen para ampliar]


Con los presupuestos de los proveedores en manos, se debe realizar la edición de la propuesta con la finalidad de incluir los valores pasados por presupuesto.

Para esto, en la pantalla del listado de cotizaciones, al hacer clic en los tres puntos al inicio de la línea, existe la opción Editar.


[Haga clic en la imagen para ampliar]

Se mostrará la pantalla con todos los proveedores que están participando del proceso con algunas informaciones pertinentes a la propuesta, son estas:

  • Estatus de la propuesta:
    • Pendiente
    • Completa
    • Completa (E-mail)
    • Parcial
    • Parcial (E-mail)
    • Descalificada
    • Rechazada
    • No cumple
    • No cumple (E-mail)
  • Nombre del proveedor
  • Código y tienda del proveedor.
  • RCPJ o RCPF
  • Total de la propuesta de cotización de este proveedor(si aún no se actualizó, estará en cero).
  • Ítems pendientes de actualización de precio.
  • Opción de edición.

En Otras acciones:

  • Visualización de la cotización.
  • Descalificar proveedor.
  • Enviar e-mail
  • Adjuntos
  • Nueva propuesta manual
  • Nueva propuesta workflow
  • Eliminar propuesta.


[Haga clic en la imagen para ampliar]

Si el usuario desea incorporar un nuevo participante después de crear la cotización, este podrá hacerlo en la pantalla de Edición de la Cotización, donde encontrará una opción ubicada en el lado superior derecho con esta finalidad (Nuevo participante). Al hacer clic en esta opción, el usuario se dirigirá a una página donde podrá incluir las informaciones del nuevo proveedor participante. En el caso de un proveedor ya registrado, después de incluir el código del proveedor, los datos se completarán automáticamente, como el ejemplo de la siguiente imagen.

Atención: Cuando una cotización se genera con vínculo de producto vs. proveedor no se podrá agregar un nuevo participante


[Haga clic en la imagen para ampliar]

Para proveedor aún no registrados, seleccione la opción "No" en el campo "¿Proveedor registrado?" y complete el campo Razón social


[Haga clic en la imagen para ampliar]

Al hacer clic en Editar, se abrirá la pantalla de edición de la propuesta del proveedor.


[Haga clic en la imagen para ampliar]

Esta pantalla se divide en secciones de informaciones, como se detalla a continuación:

1.    Datos del proveedor:

     ●    Código del proveedor;
     ●    Tienda;
     ●    Nombre del contacto;
     ●    E-mail;
     ●    Número de la propuesta.

2.    Detallles de valores referentes a la Cotización:
     ●    Total de ítems;
     ●    Total de la cotización (considerando todos los valores, como ítems, flete, descuentos, impuestos, entre otros);
     ●    Descuentos;
     ●    Tipo de flete;
     ●    Valor del flete;
     ●    Gastos;
     ●    Condiciones de pago;
     ●    Moneda;
     ●    Seguro.

3.    Informaciones de entrega:
     ●    Días para entrega;
     ●    Dirección de entrega;
     ●    Ciudad;
     ●    Barrio;
     ●    CP.


4.    Impuestos totales:
     ●    Valor IPI;
     ●    Valor ICMS ;
     ●    Valor ISS;
     ●    Entre otros impuestos.
 

5.    Informaciones de los ítems de la cotización:

     ●   Código del producto;
     ●    Descripción;
     ●    Unidad de medida;
     ●    Situación del ítem (considera, sin stock, no vende);
     ●    Cantidad solicitada;
     ●    Cantidad disponible;
     ●    Precio unitario;
     ●    Total del ítem;
     ●    Descuentos;
     ●    Tipo de entrada;
     ●    Observaciones;
     ●    Campos personalizados;
     ●    Impuestos ítem.

Descuentos:

  • Los descuentos se podrán incluir de dos maneras:
  1. Global para cotización, es decir, al completar el descuento % o los descuentos en valor en el encabezado, el descuento se prorrateará para todos los productos.


    [Haga clic en la imagen para ampliar]

  2. Por ítem, es decir, al informar el descuento en el ítem, el descuento se aplica solamente en dicho ítem y se suma al totalizador Descuentos en el encabezado.


    [Haga clic en la imagen para ampliar]

Importante¹: No se puede incluir el descuento global en conjunto con el descuento por ítem.

Importante²: Los totalizadores se actualizarán automáticamente siempre que un producto se actualice..

A listagem de propostas dispõe de tags informativas para indicar o status de cada proposta.

As respectivas tags são: 

  1. Pendente: Situação na qual a proposta ainda não possui nenhum item com valor e quantidade preenchido;
  2. Parcial: Quando existe ao menos um item preenchido;
  3. Parcial (E-mail): Quando existe ao menos um item preenchido respondido via workflow;
  4. Completa: Quando todos os itens da proposta estão preenchidos.;
  5. Completa (E-mail): Quando todos os itens da proposta estão preenchidos e foram respondidos via workflow;
  6. Desqualificada: Quando um fornecedor for desqualificado da cotação;
  7. Recusada: Ocorre quando o fornecedor recusa a proposta;
  8. Não atende: A proposta foi respondida como sem estoque ou Não vende;
  9. 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. 

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: 

  1. Análise por proposta.
  2. 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: 

  1. Análise por proposta
  2. 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.

Para facilitar, o sistema marca automaticamente o melhor preço de fornecedor em cada produto apresentado, levando em consideração para o melhor preço a seguinte fórmula: ( (valor unitário + valor frete + valor seguro + valor despesa) - (valor desconto) ).

Quando ocorrer de um fornecedor ofertar uma quantidade menor que a solicitada pelo orçamento, o sistema não irá marcar o melhor preço e nem colocar as tags de melhor preço/acima da média/abaixo da média, pois como um fornecedor não possui a quantidade solicitada, atrapalha na quantificação de tais valores.

Assim, temos dois cenários:

  1. Ao realizar a análise por item, todos os fornecedores responderam que possuem disponível a quantidade solicitada pelo comprador: Dessa maneira, o sistema vai se comportar de forma nromal, marcando o melhor preço e colocando as tags melhor preço/acima da média/abaixo da média;
  2. Ao realizar a análise por item, um ou mais fornecedores responderam que possuem disponível quantidade menor que a solicitada pelo comprador: Quando ocorrer esse cenário, o sistema não vai marcar o melhor preço e nem vai fornecer informações de acima ou na média de preços, visto que um dos fornecedores tem uma quantidade menor que a solicitada pelo comprador, não sendo possível determinar um melhor preço.
    Nessa situação, o sistema não irá marcar nenhum fornecedor e ao clicar em Gerar - para a formalização da proposta - o sistema vai exibir uma modal ao comprador, indicando quais itens estão nessa situação e que necessita da intervenção manual do usuário, para selecionar qual fornecedor vai escolher ou nenhum, caso seja sua escolha.


 Figura 1 - Nenhum fornecedor é marcado e não exibe as tags de melhor preço/acima da média/abaixo da média, quando existe fornecedores que informaram uma quantidade menor que a solicitada.



 Figura 2 - Ao tentar gerar a formalização, o sistema exibe essa modal, informando que existem itens que necessitam de intervenção manual do usuário, já que existe fornecedores que informaram uma quantidade menor que a solicitada.


  

[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:
Justificativa 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: 

  1. Cadastrais: Formulário para preenchimento de dados do fornecedor;
  2. Adm/fin.: Formulário para preenchimento de dados administrativos e financeiros;
  3. Fiscais: Formulário para preenchimento de dados fiscais;
  4. Campos obrigatórios: Formulário para preenchimento de campos obrigatórios.
  5. 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

  1. 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.
  2. Para o correto funcionamento do Workflow na Jornada de Compras, deve ser aplicado o pacote de Expedição Contínua do módulo do BI, por conter os fontes responsáveis pelo funcionamento do workflow. Baixe o pacote de expedição contínua no link: Pacotes de Atualização - Workflow.


04. CONFIGURAÇÕES

Abaixo seguem os processos que devem ser configurados:

*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:

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.

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.

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.

  • 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:
    • 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.
    • 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.
  • 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.

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

    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:


  • 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:

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: \workflow



    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.                                                                                                                                           

    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:

    mceclip0.png

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

    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?

  1. Habilite o parâmetro MV_PGCWF
  2. 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).
  3. O e-mail cadastrado deverá constar no cadastro de usuário do mesmo.

    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.

  • 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:

  1. Implementado possibilidade de inserir data de entrega por item, edição manual e workflow;
  2. Implementado possibilidade de gerar contrato fixo;
  3. Implementado tabela de preços na edição da cotação com preenchimento automático dos valores;
  1. Atualização para melhor visualização das colunas e seus nomes em tabelas/listagens.
  2. Implementação de funcionalidade para guardar configuração do usuário em campos selecionados para serem visualizados ou ocultados em tabelas/listagens.
  3. Implementação de funcionalidade para selecionar automaticamente vencedor com melhor preço na análise por item
  4. Implementação de "desistência da compra" onde permite remover item da cotação durante o andamento da mesma.
  5. Implementação do migrador de cotações
  1. Implementação da funcionalidade de compra centralizada.
  2. Implementação da funcionalidade de contatos x fornecedores para envio do workflow.
  1. Implementação de nova interface MVC para edição da cotação
  2. Implementação da edição de impostos via nova interface de edição da cotação
  3. Implementação de impostos IPI e ICMS-ST no formulário workflow a serem editados pelo fornecedor
  4. Implementação de seleção de condição de pagamento flexível no envio do workflow
  5. Implementação de rotina automática de edição de cotação
  6. Implementação de possibilidade de pontos de entrada durante a edição da cotação via nova interface.
  7. Correções gerais de usabilidade e performance
  1. Implementação da opção "salvar rascunho" no formulário workflow.
  2. Correções gerais de usabilidade e performance
  1. Implementação da análise de cotação por item parcial
  2. Correções gerais de usabilidade e performance
  1. Implementação da visualização da observação da solicitação de compras
  2. Implementação de filtro por comprador na listagem de cotações
  3. Visualização de dados do fornecedor na tela de edição da cotação
  4. Visualização clara de moeda utilizada na edição da cotação
  5. Correções gerais de usabilidade
  1. Implementação de geração de cotação utilizando Produto x Fornecedor e MV_SELFOR = N
  2. Implementação de visualização de solicitações de compras vinculadas a cotação.
  3. Implementação de listagem de pedidos e contratos gerados pela cotação.
  4. Correção de ordenação de proposta por preço considerando impostos.
  5. Alteração de texto para melhor entendimento de análise por proposta completa.
  6. Ajuste para permitir alteração da TES quando a cotação foi preenchida por Workflow.
  7. Implementação de Guia de configuração do e-mail do comprador.
  8. Implementação de Guia de configuração e sugestão do Workflow.
  1. Correção no funcionamento do WorkFlow, possibilitando a utilização do "WFTEST" padrão para testar funcionamento.
  2. Correção na listagem de solicitações de compras quando campo C1_DATPRF marcado como browse.
  3. Correções gerais de usabilidade e performance.
  1. Correções diversas nos anexos;
  2. Correção no filtro da necessidade de compras;
  3. Correção no cadastro de novo participante;
  4. Correção no refresh do carrinho de compras;
  5. Correção no formulário de workflow;
  6. Correções gerais de performance e usabilidade;
  1. Implementada funcionalidade para obter informações do CNPJ do fornecedor, através da API da TOTVS Carol.
  2. Implementada geração de cotação para fornecedor Participantes.
  3. Incluída nova coluna que exibe a quantidade de respostas dos fornecedores recebidas pela cotação.
  4. Implementada geração de contrato.
  5. Implementada funcionalidade para geração de novo fornecedor para a cotação.
  6. Correção para limpeza do localStorage na inicialização da aplicação.
  7. Correção para encontrar os anexos corretamente quando o fornecedor for participante.
  8. Removido carregamento de campos do tipo Memo para a tela de Necessidade de Compras.
  9. Correção para validar tipo de contrato e planilha fixos independentemente do parâmetro MV_VLDTPFI.
  10. Correção para que as colunas retornem a quantidade de propostas respondidas e descartadas.
  1. Implementado Campos customizados no Browse de Necessidade de Compras e Cotações.
  2. Implementado funcionalidade de salvar preferências de campos do tipo suite em Necessidade de Compras.
  3. Efetuada melhoria do retorno das mensagens da API de Workflow para facilitar implantação.
  4. Correção para que após efetuar a busca por código de produto e limpar o campo.
  5. Correção para remover obrigatoriedade dos campos na atualização dos contatos.
  6. Correção para que ao declinar Proposta do Workflow o processo ocorra corretamente.
  7. Correção para que ao utilizar outras moedas no formulário de Workflow a gravação ocorra corretamente.
  8. Correção para o bloqueio de produtos que ocorria de forma intermitente na Geração de Cotação.
  9. Correção do ícone de anexo ao visualizar anexos e fechar a lista.
  10. Correção para considerar os valores de despesa e seguro na Análise Por item.
  11. 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.
  12. Correção para que executar a URL correta da API de Análise de Cotação.
  13. Correção para que ao deletar todos os anexos antes de enviar Workflow, não ocorra validação de Anexo não encontrado.
  14. Correção para que não seja permitido data de recebimento da cotação inferior a data atual.
  1. Implementado Mapa de Cotação.
  2. Implementado Filtro por Grupo de Produto.
  3. Inclusão do Campo de TES na Edição da Cotação.
  4. Inclusão de funcionalidade de Exclusão de Proposta.
  5. Correção de documento Anexo não Encontrado.
  6. Correção de descrição do Título da Tela de Edição da Cotação.
  7. Correção do campo de desconto ao utilizar Nova Proposta.
  8. Correção para não permitir desconto negativo na Edição da Cotação.
  9. Correção de erro ao desistir de baixar o anexo.
  10. Correção no Endpoint para retornar propostas parciais de Fornecedores.
  11. Correção de mensagem de produto bloqueado para produtos liberados.
  12. Correção de erro exibido ao realizar filtro na aba Atendidas.
  13. Correção no loading da busca de produto.
  14. Correção na tela de Demais Campos para não salvar dados ao clicar em Fechar.
  15. Correção do campo quantidade disponível quando MV_ZERPROP = 1.
  16. Correção na exibição dos Impostos Complementares na Tela de Impostos por item.
  17. Correção no campo Tipo de Frete da Edição de Cotação para mesmo comportamento do legado.
  18. Correção do retorno das cotações por ordem do total da cotação.
  1. Implementação dos campos de Quantidade de fornecedores participantes e quantidade de produtos cotados na listagem de cotações.
  2. Implementação de filtro por status "Todos, pendente, em análise e finalizado" na listagem de cotações.
  3. Implementação dos campos customizados da tabela SC8 na edição de cotação.
  4. Implementação de edição da observação a ser levado para o pedido de compra na análise de cotação
  5. Implementação de opção para gerar novas propostas, manual e via workflow.
  6. Correção no envio de e-mail por workflow.
  7. Correção para mostrar mensagem de aviso ao atualizar contato de fornecedor que esteja aberto por outro usuário.
  8. 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 são passados par a rotina.

Abaixo, um exemplo de utilização:

Trata-se de exemplo básico, que deve ser adaptado para as necessidades da organização. Além disso, apenas os campos que são exibidos na rotina de Edição de Cotação MVC podem ser editados via rotina automática, ou seja, se tentar editar/inserir valor em campo que não é exibido na rotina de Edição de Cotação MVC, o campo não será gravado.

#Include 'TOTVS.ch'
#Include 'FWMVCDef.ch'
#Include 'Protheus.ch'

/*/{Protheus.doc} EdicaoComp
	Exemplo de rotina automática com a função NFCA020, para editar uma cotação existente
@author equipe
@since 10/10/2024
@return nil, nil, nil.
/*/
User Function EdicaoComp()
Local cNumCotacao   := "000204"
Local cCodFornec    := "000001"
Local cLoja         := "00"
Local cNomeFornec   := "TESTE IT"
Local cNumProposta  := "01"
Local oModel        := nil
Local oGridSC8      := nil
Local oFormDHU      := nil
Local nFor          := 0
Local cMsg          := ""

//Inicializando o ambiente
RpcSetEnv( "T1", "D MG 01 ",,, "COM") 
     
DHU->( DbSetOrder(1) ) //DHU_FILIAL+DHU_NUM
if ( DHU->( DbSeek(xFilial("DHU") + cNumCotacao) ) )

    oModel   := FwLoadModel("NFCA020")
    oFormDHU := oModel:GetModel("DHUMASTER")
    oGridSC8 := oModel:GetModel("SC8DETAIL")
    
    /*Chamar a seguinte função, informando número da cotação, código do fornecedor, nome do fornecedor e número da proposta, para que
    ocorra a inicialização correta dos objetos JSON da rotina. Se não fizer, ocorrerá erro, pois os objetos estarão vazios e é ESSENCIAL chama a rotina.*/
    NF020SetSup(cNumCotacao, cCodFornec, cLoja, cNomeFornec, cNumProposta)

    oModel:SetOperation(MODEL_OPERATION_UPDATE)    
    oModel:Activate()
 
    //Editar o valor do  Seguro, Despesa e Contato na cotação
    oFormDHU:SetValue('DHU_SEGURO' , 95.79)
    oFormDHU:SetValue('DHU_DESPESA', 248.41)
    oFormDHU:SetValue('DHU_CONTATO', 'Antonio Moreira')

    //Editando os itens da cotação
    for nFor := 1 to oGridSC8:Length()
        oGridSC8:GoLine(nFor)
        oGridSC8:setValue("C8_PRECO", 47.56)
        oGridSC8:setValue("C8_QTDISP", 1) 
        oGridSC8:LoadValue("C8_ALIIPI", 5.00)
    next nFor  

    //Valido se o form está com informações corretas e consistentes
    if ( oModel:VldData() )
        oModel:commitData()
        msgalert("Cotação editada!" )
    else 
        cMsg := oModel:getErrorMessage()[6] + " - " + oModel:getErrorMessage()[4] + CRLF
        cMsg += oModel:getErrorMessage()[8] //https://tdn.totvs.com/display/public/framework/FWFormModel - GetErrorMessage
        msgalert("ERRO: " + cMsg)
    endif
 
endif

FWFreeObj(oModel)
FWFreeObj(oGridSC8)
FWFreeObj(oFormDHU)
 
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

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çãoClique 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çãoClique Aqui - Documentação AVALCOPC


08. ASSUNTOS RELACIONADOS


<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>