Desarrolladores - Removal of Sales Order Remains
Descripción funcional
La extensión Removal of Sales Order Remains permite eliminar de manera automática o semiautomática cantidades de pedidos de venta en los que se hayan quedado líneas parcialmente servidas y que, según los criterios definidos en la aplicación, se considere que ya no se van a servir.
Implementación
La extensión modifica las tablas de Configuración de ventas y cobros (311), Cliente (18) y Cabecera de venta (36) para incluir los campos de configuración que se usarán a la hora de calcular si se deben eliminar o no los restos de un pedido. El código de eliminación coge los valores de la cabecera, si existen, si no los busca en el cliente, y si no, los coge de la configuración de ventas.
Además, en la Cabecera de venta (36) añade un campo (Remains Removed On), y en las Líneas de venta otro (Removed Quantity) que se rellenan cuando un documento es procesado, con el fin de tener una traza de los cambios realizados en un pedido.
Estos últimos campos, junto con los principales de configuración de la cabecera, están duplicados además en las tablas de Histórico de cabeceras de venta (5107) y de Histórico de líneas de venta (5108), para conservar esta traza cuando los documentos se archiven.
Para uso interno de la extensión, la cabecera y el cliente tiene además un campo IDP51 Updated, que se usa de manera interna por la extensión para saber si el registro ha sido ya inicializado con los valores predeterminados de la extensión o no. De esta manera, al instalar la extensión, el código de actualización/instalación recorre todos los registros que no estén marcados como "Updated", y asigna los valores predeterminados.
Las páginas 21 Customer Card, 42 Sales Order, 46 Sales Order Subform, 459 Sales & Receivables Setup, 5159 Sales Order Archive, 5160 Sales Order Archive Subform, y 9305 Sales Order List han sido modificadas para incluir los campos de configuración y de traza mencionados anteriormente, susceptibles de ser editados/visualizados por los usuarios. Además, en el caso de las páginas 42 Sales Order, y 9305 Sales Order List, se han incluido acciones con las que lanzar manualmente la Eliminación de restos en pedidos de venta.
De las CodeUnits incluidas con la extensión, las 7142500-7142505 son relativamente simples y se encargan únicamente de eventos de validación de campos, o de lanzar el proceso de eliminación cuando se pulse la acción correspondiente o se registre un documento. El grueso del código, y la lógica principal de la aplicación se encuentra en la Codeunit 7142506 "IDPROR Removal of Remains Mgt.", que se ejecuta de eliminar los restos de todos los documentos que cumplan las condiciones de selección (método Run de la codeunit), o se encarga de eliminar los restos de un documento concreto (métodos DeleteSalesFromPost o ConfirmDeleteSales, en función de si se llama automáticamente desde el registro del documento, o manualmente desde una acción).
Personalización
Por el tipo de funcionalidad que implementa, en principio no se contempla la opción de personalizar los objetos incluidos. En caso de que surgiera la necesidad, por favor contactad con el departamento de productos, y planteariamos la viabilidad de implementar los eventos necesarios en la extensión para intentar evitar la modificación como tal del código base.