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.
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:
[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]
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 "Sí" 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]
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.
[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:
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:
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.
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). |
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 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:
[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:
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:
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:
[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:
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:
En Otras acciones:
[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:
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..
El listado de propuestas dispone de tags informativas para indicar el estatus de cada propuesta.
Las respectivas tags son:
[Haga clic en la imagen para ampliar]
En el listado de las cotizaciones es posible enviar un e-mail de cotización vía workflow al participante, a partir de la opción Enviar e-mail. Además, también es posible seleccionar las condiciones de pago que el proveedor podrá visualizar en el formulario de respuesta de la cotización.
[Haga clic en la imagen para ampliar]
Es posible enviar el formulario de workflow a múltiples e-mails, es decir, a varios vendedores. Sin embardo, solamente la primera respuesta recibida se considerará y procesará.
Si es necesario, se podrá enviar alguna información complementaria utilizando el campo Observación y seleccionar si desea enviar los archivos adjuntos vinculados a la cotización en este e-mail.
[Haga clic en la imagen para ampliar]
En la lista de proveedores participantes de la cotización, se pueden agregar documentos adjuntos que se vincularán a los proveedores. La opción se encuentra en otras acciones, documento(s) adjunto(s).
[Haga clic en la imagen para ampliar]
Si fuera necesario retirar un proveedor de la cotización, se podrá utilizar la opción de descalificación.
En esta opción, el proveedor no se considerará en las siguientes etapas, así como tendrá valores en cero incluidos en la propuesta.También se puede incluir una justificación u observación para descalificar al proveedor.
[Haga clic en la imagen para ampliar]
Cuando el proveedor se descalifique, no se podrán actualizar los valores de la propuesta. En que solo es posible la visualización.
Si fuera necesario, será posible Calificar el proveedor nuevamente, para que vuelva a participar de la cotización.
Importante: Cuando se califica al proveedor, la propuesta tendrá todos los valores en cero y volverá al estatus Pendiente.
[Haga clic en la imagen para ampliar]
En la pantalla de edición de la cotización, se puede calcular y visualizar una previa del cálculo de los impuestos, sea de la propuesta como un todo o por ítem.
Importante: Para que el cálculo ocurra correctamente, debemos:
Al hacer clic en la opción Calcular impuestos se iniciará el proceso, después de la finalización, será posible visualizar los valores referentes a los impuestos en la sección Impuestos totales y en la sección Ítems de la cotización, como se muestra a continuación. Además, el cálculo considera los valores de los Tributos genéricos, configurados en el Configurador de tributos, si la organización ya estuviera utilizándolo.
Importante: El cálculo de impuestos es solo para poder visualizar, no se pueden modificar valores.
[Haga clic en la imagen para ampliar]
Durante la cumplimentación de una propuesta, tenemos Descuentos por ítem y global.
Descuento por ítem:
El descuento por elemento solo se aplica a uno o más elementos, en que se suman los valores en el campo Descuento en el encabezado.
[Haga clic en la imagen para ampliar]
Descuento global:
El descuento global se disparará al informar el descuento en % o valor, y se tiene el valor de descuento prorrateado para todos los ítems proporcionalmente.
[Haga clic en la imagen para ampliar]
Se puede visualizar una propuesta solo para chequear los datos, sin la posibilidad de modificar, incluir o eliminar datos. Esta opción es muy importante para visualizar propuestas descalificadas o finalizadas.
[Haga clic en la imagen para ampliar]
Se puede generar una nueva propuesta para modificar valores y lograr mantener un historial de negociaciones.
[Haga clic en la imagen para ampliar]
Nueva propuesta manual:
Al seleccionar la opción de crear una nueva propuesta manual, será enviado a una pantalla donde tendrá la opción de mantener los valores de la propuesta actual. Después de esta etapa, tendrá acceso a una nueva pantalla donde podrá informar o modificar los valores antes de finalizar la creación de la nueva propuesta.
[Haga clic en la imagen para ampliar]
Nueva propuesta workflow:
Al seleccionar la opción de nueva propuesta workflow, aparecerá una pantalla donde es posible informar si desea o no mantener los valores de la propuesta actual, seleccionar las condiciones pago, informar uno o más e-mails y la observación. Al hacer clic en enviar e-mail, se generará una nueva propuesta y se enviará un nuevo workflow.
[Haga clic en la imagen para ampliar]
Si el proveedor tuviera más de una propuesta, y si es necesario, se puede efectuar la eliminación de la propuesta vigente, como podemos ver a continuación.
[Haga clic en la imagen para ampliar]
En la pantalla Editar cotización, tenemos un grupo inicial llamado Ítems de la cotización.
Al hacer clic en este grupo, la lista se expande y muestra todos los ítems que están vinculados en la cotización actual, es decir, muestra los productos que están siendo cotizados. Si entiende que un ítem ya no es necesario y desea borrar este ítem de la cotización, tenemos la opción Eliminar, que queda enfrente de cada ítem que consta en la cotización.
Al hacer clic en eliminar, el sistema muestra una modal, informando si realmente desea borrar el ítem de la cotización, detallando el ítem seleccionado e informando que al realizar la eliminación, no es posible revertir el proceso.
Atención
Si el ítem que se borrará fue agrupado, aunque se muestre por separado cada ítem en el grupo Ítems de la cotización, cuando se borre cualquiera de los que estén en la agrupación, todos se borrarán, ya que el sistema graba la agrupación como ítem único en la SC8.
[Haga clic en la imagen para ampliar]
Cuando el estatus de la cotización estuviera igual a Listo para analizar, se podrá iniciar el proceso de análisis, para poder verificar las mejores condiciones ofertadas.
El proceso de análisis, se divide en dos tipos:
Análisis por propuesta:
Consiste en mostrar todas las propuestas completas, es decir, que tienen todos los ítems informados, para analizar las condiciones.
En la pantalla de listado de cotizaciones, al hacer clic en los tres puntos al inicio de la línea, tenemos la opción Analizar.
[Haga clic en la imagen para ampliar]
Las informaciones más relevantes además de los datos del proveedor, se mostrarán dentro del card, como:
[Haga clic en la imagen para ampliar]
Las propuestas se podrán ordenar por:
Por estándar, la ordenación se realiza por medio del mejor precio sin impuestos.
[Haga clic en la imagen para ampliar]
Se pueden obtener más informaciones de la propuesta al hacer clic en la opción detalles. Se listarán todos los datos relevantes de la propuesta, tales como valores, productos, fletes, etc.
[Haga clic en la imagen para ampliar]
Cuando el estatus de la cotización sea Listo para analizar, se podrá iniciar el proceso de análisis, para poder verificar las mejores condiciones.
El proceso de análisis ocurrirá de dos maneras:
Análisis por ítem:
En la pantalla de listado de cotizaciones, al hacer clic en los tres puntos al inicio de la línea, tenemos la opción Analizar.
Consiste en mostrar todas las propuestas, es decir, las que están completas o parciales. El análisis por ítem, permite realizar la compra de productos diferentes con más de un proveedor en la misma cotización.
Ejemplo: Estoy cotizando material para mi oficina. El proveedor A tiene el mejor precio para el PAPEL A4, sin embargo, el lapicero está mucho más caro comparado con el proveedor B.
Al utilizar el análisis por ítem, podemos comprar el Papel A4 con el proveedor A y el Lapicero con el proveedor B en la misma cotización.
[Haga clic en la imagen para ampliar]
La lista se hizo por producto, en cada ítem tendremos las respectivas propuestas de los proveedores para este.
Para ayudar en el análisis, tenemos las informaciones del promedio de los valores unitarios y totales, junto con una tag , mencionando si el valor del ítem está por encima del promedio, dentro del promedio o es el mejor precio para aquel producto.
Además, se listarán las informaciones como la cantidad disponible, valor unitario, días para entrega, flete y total por pagar.
Para facilitar, el sistema marca automáticamente el mejor precio del proveedor en cada producto presentado, tomando en cuenta para el mejor precio la siguiente fórmula: ( (valor unitario + valor flete + valor seguro + valor gasto) - (valor descuento) ).
Atención
Cuando un proveedor ofrezca una cantidad menor que la solicitada por el presupuesto, el sistema no marcará el mejor precio y tampoco colocará las tags de mejor precio/por encima del promedio/abajo del promedio, porque como un proveedor no tiene la cantidad solicitada, entorpece la cuantificación de dichos valores.
De esta manera, tenemos dos escenarios:
En esta situación, el sistema no marcará ningún proveedor y al hacer clic en Generar, para la formalización de la propuesta, el sistema mostrará una modal al comprador, indicando los ítems que están en esta situación y que necesita de la intervención manual del usuario, para seleccionar el proveedor que desee seleccionar, si así lo requiere.
Figura 1 - No se marcó ningún proveedor y no se muestran las tags de mejor precio/por encima del promedio/por debajo del promedio, cuando existen proveedores que informaron una cantidad menor que la solicitada.
Figura 2 - Al intentar generar la formalización, el sistema muestra este modal, informando que existen ítems que necesitan de intervención manual del usuario, ya que existen proveedores que informaron una cantidad menor que la solicitada.
[Haga clic en la imagen para ampliar]
Según se hace el análisis, los ítems seleccionados se suman y muestran en el pie de página, como:
[Haga clic en la imagen para ampliar]
Al acceder a la pantalla de cotización, tenemos el mapa de la cotización, una herramienta utilizada para comparar precios de productos o servicios de diferentes proveedores o fuentes. El principal objetivo del mapa de cotización es suministrar una visión clara y organizada de los precios de productos o servicios ofrecidos por diferentes proveedores. Esto permite que los compradores identifiquen fácilmente las opciones más económicas y competitivas.
Para facilitar el análisis, el mapa de cotización trae de manera simplificada Ítem vs. Proveedor, que muestra las siguientes informaciones:
[Haga clic en la imagen para ampliar]
Al seleccionar la propuesta o los ítems vencedores, se habilitará la opción de Generar para iniciar el proceso de pedido o contrato.
[Haga clic en la imagen para ampliar]
No obstante, si el proveedor seleccionado no presente el mejor precio, se presentará un campo en la pantalla para que el usuario pueda justificar su selección. Esto se muestran en el siguiente ejemplo:
Pantalla de justificación de análisis por propuesta[Haga clic en la imagen para ampliar]
Justificación pantalla análisis por ítem:
Pantalla de justificación análisis por ítem[Haga clic en la imagen para ampliar]
Si el vencedor fuera un proveedor participante (no registrado), se mostrará un aviso de alerta sobre su condición, exigiendo el registro para la finalización del proceso.
[Haga clic en la imagen para ampliar]
La pantalla de registro de proveedor tiene cuatro solapas:
Campos obligatorios se marcarán con asterisco (*) al final de su nombre, y solamente después de obtenerlos la opción Grabar quedará habilitada para registrar al proveedor.
Para obtener algunos campos de informaciones del proveedor después de informar el RCPJ, es necesario utilizar el parámetro MV_APIFOR (con valor .T. ), para habilitar la cumplimentación automática utilizando TOTVS CAROL.
[Haga clic en la imagen para ampliar]
Tras hacer clic en la opción generar, se dirigirá a una pantalla que contiene el resumen de los productos y proveedor/proveedores seleccionados. En esta pantalla el usuario podrá seleccionar si será un pedido o contrato.
La siguiente figura representa al proceso de Análisis por Propuesta, es decir, solamente un proveedor. En este punto, el usuario tendrá la opción de generar un contrato o un pedido para esta cotización. Después de seleccionar, es solo hacer clic en Generar Documentos, de acuerdo con el siguiente ejemplo:
[Haga clic en la imagen para ampliar]
En el caso del proceso de Análisis por Ítem, el usuario tendrá la flexibilidad de generar tanto pedidos como contratos para proveedores diferentes, tal como se mostró en la siguiente imagen:
[Haga clic en la imagen para ampliar]
Para generar contratos, el usuario debe seleccionar la forma de pago y el tipo de contrato, como podemos ver a continuación:
[Haga clic en la imagen para ampliar]
Después de generar el documento y considerar todos los ítems solicitados, el estatus de la cotización se actualiza a "Finalizada". Si en algún ítem no se genera un pedido o contrato, el estatus se modificará a "En análisis" o "Atendido parcialmente", dependiendo del caso.
En la pantalla de lista de cotizaciones, se puede eliminar la cotización al hacer clic en los tres puntos y opción Eliminar. Las cotizaciones eliminadas tendrán sus ítems devueltos para la necesidad de compra.
Importante: No se podrá eliminar una cotización que esté finalizada o En Análisis.
[Haga clic en la imagen para ampliar]
En la pantalla de listado de cotizaciones, se pueden visualizar los pedidos de compras y contratos generados a partir de la cotización, cuando la cotización esté con estatus En Análisis y Finalizada. Para mostrar, es solo hacer clic en la flecha a la izquierda del grid, el sistema mostrará los pedidos de compra y contratos ubicados para la cotización.
Importante: Si existe solo Pedido de Compras, aparecerán solamente los pedidos de compras, al hacer clic en la flecha. Lo mismo ocurre cuando tenemos solo Contratos.
Cuando existan contratos y pedidos de compras, ambos se presentarán.
[Haga clic en la imagen para ampliar]
Es posible migrar cotizaciones generadas por las rutinas "Genera cotización, actualiza cotización y analiza cotización" al Nuevo flujo de compras, por medio del migrador puesto a disposición en la opción del canto superior derecho.
Esta opción realiza la compatibilidad de las cotizaciones existentes en la base para que sean compatibles con el nuevo flujo de compras, para poder continuar con el proceso por medio de las nuevas rutinas del NFC o incluso tener el historial de cotizaciones finalizadas.
Todo el proceso se realiza en segundo plano y el usuario tiene la opción de recibir una notificación por e-mail cuando se finalice la migración. Si el servidor de e-mail necesitara de autenticación, será necesario activar el parámetro MV_RELAUTH.
Importante: La migración es irreversible, no hay cómo deshacer la compatibilidad y regresar las cotizaciones a la rutinas legadas.
Vea a continuación los procesos que se deben configurar:
Acceso embarcado - Protheus
*Embarcado: Acceso vía menú del Protheus.
Es necesario agregar al menú de Compras la rutina PGCA010 para acceder al NFC mediante el menú del Protheus. A partir del release 12.1.2410 la rutina estará en el menú por estándar.
Ejemplo:
WORKFLOW
El Workflow se podrá configurar para enviar la solicitud de cotización, directamente a los proveedores participantes.
Esto permitirá al proveedor, por medio de un formulario recibido en el e-mail, informar precio, plazo y condiciones de oferta de su producto, actualizando automáticamente la cotización en el Protheus.
CÓMO CONFIGURAR EL WORKFLOW
Atención
El Workflow se puede configurar de dos maneras: por Wizard (Configuración del Workflow), que es un asistente paso a paso para facilitar la configuración, disponible en la página del NFC, solamente para usuarios administradores, así como también se puede configurar manualmente, siguiendo las orientaciones del presente documento.
Tenemos también el wizard para crear la caja de e-mail para los compradores - directamente en el workflow - que queda disponible si el parámetro MV_PGCWF estuviera activo en la base o también, la configuración se puede hacer manualmente.
Si desea utilizar el Wizard para configurar el WorkFlow, lea las instrucciones y haga clic en la solapa Por Wizard. Si desea configurar manualmente, lea las instrucciones de la solapa Por Manual.
Sugerencia
Utilice el facilitador de prueba WFTEST estándar del Protheus para validar de manera fácil la configuración y funcionamiento del workflow. Acceda a la documentación: Haga clic aquí | WFTEST
Actualice el appserver.ini de su entorno con configuraciones esenciales, esto permitirá que el proveedor reciba y responda el formulario de solicitud de cotización.
Copie e incluya en su entorno el siguiente ejemplo, modifique las informaciones en negrita a informaciones de su entorno, tales como:
PATH: Camino de las carpetas en su servidor hasta el directorio Protheus_data\http-root (si la carpeta http-root no existe, puede crearla)
PORT: Puerto de comunicación del WebService (Generalmente se inicia con 80)
ENVIRONMENT: Nombre del entorno/RPO
localhost:8091: IP público y puerto abierto para que el proveedor logre enviar la respuesta del formulario de cotización
ONSTART: Si su appserver.ini ya tenía una clave ONSTART, agregue los job JOB_WS_T1,WF_INDEX a esta clave.
EJEMPLO 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
Realice la configuración del parámetro que indicará la URL o nombre del servidor HTTP.
En el paso 1, definimos el IP y Puerta público que se utilizará para recibir la respuesta de la solicitud de cotización de nuestro proveedor, este mismo IP y Puerto se deben informar en el parámetro MV_WFBRWSR.
Importante:
El parámetro se debe informar iniciando con http:// o https://
Ejemplo: http://localhost:8091/wf
Donde el localhost:8091 será su IP y el puerto público es el definido en el paso 1.
Verifique la existencia de la carpeta "workflow" dentro de la carpeta "Protheus_data" en el directorio de instalación del Protheus. Si no existe, se puede crearla.
Ejemplo:
Importante:
Si decide poner a disposición los archivos en otro directorio, no deje de actualizar el parámetro MV_WFDIR del paso 4.
Realice la configuración del parámetro que indicará el directorio donde los archivos HTML del paso 4 se pusieron a disposición.
En el paso 3, definimos el directorio donde se pondrán a disposición los archivos HTML, este mismo directorio se debe informar en el parámetro MV_WFDIR
Ejemplo de contenido del parámetro MV_WFDIR: \workflow
Importante:
Si decide poner a disposición los archivos en otro directorio, no deje de mover los archivos HTML al directorio correcto, siguiendo el paso 3.
Atención - WFTEST
El workflow del NFC se comporta igual a la rutina WFTEST - rutina que busca probar si las configuraciones de workflow están correctas, enviando e-mail de prueba.
Luego, si al ejecutar la rutina WFTEST ocurre un error - el workflow del NFC tampoco se enviará, porque sigue el mismo comportamiento - verifique si las configuraciones de parámetros (SX6) y del appserver.ini del entorno están correctas - verificando las informaciones presentes en este manual - para que el workflow del NFC funcione adecuadamente.
Informaciones sobre la rutina WFTEST están en el tópico Asuntos relacionados.
Realice la configuración del e-mail por el que enviará el formulario al proveedor, solicitando la cotización:
Acceda al módulo de configuración > Entorno > WorkFlow > Cuentas de e-mail > Incluir
Ejemplo de configuración del e-mail do GMAIL:
Observaciones:
Importante:
Dicho proceso no está relacionado a la configuración de e-mail para informes, descrito en la documentación: Configure el SMTP para envío de informes por e-mail.
Se puede enviar la solicitud de cotización al proveedor utilizando el e-mail del comprador, esto permite que el proveedor responda directamente al comprador alguna duda o pregunta.
¿Cómo habilitar este recurso?
Importante:
El valor estándar del parámetro MV_PGCWF se desactiva, donde se utilizará la cuenta de e-mail estándar del Protheus definida en el MV_WFMLBOX.
Puerto multiprotocolo
A continuación se pueden visualizar todas las novedades en cada versión:
A continuación se pueden visualizar los parámetros y tablas utilizados por el NFC:
La rutina automática de edición de cotización se realiza por medio de la instancia del modelo NFCA020.
Esta rutina tiene como objetivo realizar únicamente la edición de la cotización, con los datos que se transfieren a la rutina.
A continuación, un ejemplo de utilización:
Atención
Se trata de un ejemplo básico, que debe adaptarse a las necesidades de la organización. Además, solamente los campos que se muestran en la rutina Edición de cotización MVC pueden editarse por medio de la rutina automática, es decir, si intentar editar/incluir un valor en un campo que no se muestra en la rutina Edición de cotización MVC, no se grabará el campo.
#Include 'TOTVS.ch' #Include 'FWMVCDef.ch' #Include 'Protheus.ch' /*/{Protheus.doc} EdicaoComp Ejemplo de rutina automática con la función NFCA020, para editar una cotización 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 el entorno 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") /*Activar la siguiente función, informando el número de la cotización, código del proveedor, nombre del proveedor y número de la propuesta, para que ocurra la inicialización correcta de los objetos JSON de la rutina. Si no lo hicieran, ocurrirá un error, porque los objetos estarán vacíos y es ESENCIAL llamar a la rutina .*/ NF020SetSup(cNumCotacao, cCodFornec, cLoja, cNomeFornec, cNumProposta) oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() //Editar el valor del Seguro, Gasto y Contacto en la cotización oFormDHU:SetValue('DHU_SEGURO' , 95.79) oFormDHU:SetValue('DHU_DESPESA', 248.41) oFormDHU:SetValue('DHU_CONTATO', 'Antonio Moreira') //Editando los ítems de la cotización 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 //Válido si el formulario está con información correcta y consistente if ( oModel:VldData() ) oModel:commitData() msgalert("¡Cotización 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
Puntos de entrada MVC en la rutina de Edición de cotización híbrida NFCA020
Como es una rutina en MVC, la Edición de cotización híbrida permite a los usuarios la utilización de diversos Puntos de entrada, para que puedan realizar los desvíos y procesamientos personalizados, adecuados a la realidad de la organización.
Breve explicación sobre puntos de entrada MVC:
En los fuentes convencionales tenemos un "nombre" para cada punto de entrada creado, por ejemplo, en la rutina MATA010 – Registro de productos tenemos los puntos de entrada: MT010BRW, MTA010OK, MT010CAN, etc. En MVC, no es de esta manera, creamos un único punto de entrada y este se llama en varios momentos.
Este punto de entrada único debe tener una User Function y tener como nombre el ID del Modelo de datos (Model) del fuente.
Para el funcionamiento del punto de entrada MVC de la edición de la cotización, debe utilizarse el nombre de la función NFCA020:
Sugerencia del nombre del fuente: MYNFCA020.prw
User Function NFCA020() Local aParam := PARAMIXB Local xRet := .T. ... Return xRet
El punto de entrada creado recibe por medio del parámetro (PARAMIXB) un vector con informaciones referentes al fuente. Estos parámetros varían para cada situación, en común todos estos tienen los 3 primeros elementos que se listan a continuación, en el cuadro siguiente existe la lista de parámetros de cada ID:
Posiciones del array de parámetros comunes a todos los ID:
POS. | TIPO | DESCRIPCIÓN |
1 | O (Objeto) | Objeto del formulario o del modelo, según sea el caso |
2 | C | ID del local de ejecución del punto de entrada |
3 | C | ID del formulario |
El punto de entrada se llama en varios momentos dentro del fuente, en la 2ª posición de la estructura del vector se pasa un ID que identifica cuál es este momento. Esta puede tener como contenido:
ID | MOMENTO DE EJECUCIÓN DEL PUNTO DE ENTRADA |
MODELPRE | Antes de la modificación de cualquier campo del modelo. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica |
MODELPOS | En la validación total del modelo. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica |
FORMPRE | Antes de la modificación de cualquier campo del formulario. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica |
FORMPOS | En la validación total del formulario. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica |
FORMLINEPRE | Antes de la modificación de la línea del formulario FWFORMGRID. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario 4 N Número de la línea de la FWFORMGRID 5 C Acción de la FWFORMGRID 6 C Id del campo Devolución: Requiere una devolución lógica |
FORMLINEPOS | En la validación total de la línea del formulario FWFORMGRID. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario 4 N Número de la línea de la FWFORMGRID
Requiere una devolución lógica |
MODELCOMMITTTS | Después de la grabación total del modelo y dentro de la transacción. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: No espera devolución |
MODELCOMMITNTTS | Después de la grabación total del modelo y fuera de la transacción. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: No espera devolución |
FORMCOMMITTTSPRE | Antes de la grabación de la tabla del formulario. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario 4 L Si .T. indica nuevo registro (Inclusión) si .F. registro ya existente (Modificación / Borrado)
No espera devolución |
FORMCOMMITTTSPOS | Después de la grabación de la tabla del formulario. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario 4 L Si .T. indica nuevo registro (Inclusión) si .F. registro ya existente (Modificación / Borrado) Devolución: No espera devolución |
MODELCANCEL | En la anulación de la opción. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario
Requiere una devolución lógica |
BUTTONBAR | Para la inclusión de opciones en la ControlBar. Para crear las opciones debe devolverse un array bidimensional con la siguiente estructura de cada ítem: 1 C Título para la opción 2 C Nombre del bitmap para exhibición 3 B CodeBlock que se ejecutará 4 C ToolTip (Opcional)
1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere un array de devolución con estructura definida previamente |
MODELVLDACTIVE | En la activación del modelo. Parámetros recibidos: 1 El objeto del formulario o del modelo, según sea el caso 2 C ID del local de ejecución del punto de entrada 3 C ID del formulario Devolución: Requiere una devolución lógica. |
Observaciones:
#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 := 'Activación en la validación total del 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 := 'Activación en la validación total del formulário (FORMPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF If ( cClasse == 'FWFORMGRID' ) cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' linha(s).' + CRLF cMsg += 'Situado en la línea ' + Alltrim( Str( nLinha ) ) + CRLF ElseIf ( cClasse == 'FWFORMFIELD' ) cMsg += 'É um FORMFIELD' + CRLF EndIf If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'El FORMPOS devolvió .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'FORMLINEPRE' ) If ( aParam[5] == 'DELETE' ) cMsg := 'Activación en la validación previa de la línea del formulario FORMLINEPRE).' + CRLF cMsg += 'Donde se esta intentando borrar una línea' + CRLF cMsg += 'Es un FORMGRID con ' + Alltrim( Str( nQtdLinhas ) ) + ' líneas(s).' + CRLF cMsg += 'Situado en la línea ' + Alltrim( Str( nLinha ) ) + CRLF cMsg += 'ID ' + cIdModel + CRLF If !( xRet := ApMsgYesNo( cMsg + '¿Continua ?' ) ) Help( ,, 'Help',, 'El FORMLINEPRE devolvió .F.', 1, 0 ) EndIf EndIf ElseIf ( cIdPonto == 'FORMLINEPOS' ) cMsg := 'Activación en la validación de la línea del formulario (FORMLINEPOS).' + CRLF cMsg += 'ID ' + cIdModel + CRLF cMsg += 'É um FORMGRID com ' + Alltrim( Str( nQtdLinhas ) ) + ' líneas(s).' + CRLF cMsg += 'Situado en la línea ' + Alltrim( Str( nLinha ) ) + CRLF If !( xRet := ApMsgYesNo( cMsg + 'Continua ?' ) ) Help( ,, 'Help',, 'El FORMLINEPOS devolvió .F.', 1, 0 ) EndIf ElseIf ( cIdPonto == 'MODELCOMMITTTS' ) ApMsgInfo('Activación después de la grabación total del modelo y dentro de la transacción (MODELCOMMITTTS).' + CRLF + 'ID ' + cIdModel ) ElseIf ( cIdPonto == 'MODELCOMMITNTTS' ) ApMsgInfo('Activación después de la grabación total del modelo y fuera de la transacción (MODELCOMMITNTTS).' + CRLF + 'ID ' + cIdModel) ElseIf ( cIdPonto == 'FORMCOMMITTTSPOS' ) ApMsgInfo('Activación después de la grabación de la tabla del formulario (FORMCOMMITTTSPOS).' + CRLF + 'ID ' + cIdModel) ElseIf ( cIdPonto == 'MODELCANCEL' ) cMsg := 'Activación en la Opción Anular (MODELCANCEL).' + CRLF + '¿Realmente desea salir?' If !( xRet := ApMsgYesNo( cMsg ) ) Help( ,, 'Help',, 'El MODELCANCEL devolvió .F.', 1, 0 ) EndIf ElseIf cIdPonto == 'BUTTONBAR' ApMsgInfo('Incluyendo Opción en la Barra de opciones (BUTTONBAR).' + CRLF + 'ID ' + cIdModel ) xRet := { {'Grabar', 'GRABAR', { || Alert( 'Grabó' ) }, 'Esta opción Graba' } } EndIf EndIf Return xRet
Nombre del punto de entrada: AVALCOT
Objetivo: Permitir la edición de los pedidos de compra generados por medio del análisis de cotización (después de la grabación).
Documentación: Haga clic aquí - Documentación AVALCOT
Nombre del punto de entrada: AVALCOPC
Objetivo: Permitir la edición de los ítems de los pedidos de compra generados por medio del análisis de cotización (después de la grabación).
Documentación: Haga clic aquí - Documentación AVALCOPC