1. Introducción


Las presentaciones nos van a permitir aplicar cálculos de unidades en la introducción de líneas de ofertas de venta, pedidos de venta y pedidos de compra.

Un caso representativo es aquel en el que un proveedor nos vende un producto en unidades pero nosotros internamente lo gestionamos en el stock como KILOS y podemos establecer una regla que permita la conversión de manera directa.

 

 

1.1  Objetivo

 

El objetivo de este documento es explicar cómo configurar las presentaciones y en qué parte de la aplicación nos van a afectar.

 

1.2  Activar Presentaciones

 

Si no las tenemos habilitadas, activar el parámetro PRESENTACION = ON. Este parámetro nos activa la colección PRESENTACIONES y ya podremos generar una nueva presentación.

 

 

Colección Presentaciones

Fig. 1 Colección Presentaciones

 

 

1.3  Definición de Presentaciones

 

Veamos un ejemplo de uso en el que relacionamos las unidades con los litros, basándonos en un factor indicado en la ficha de objeto del artículo.

 

Definimos la presentación indicando las unidades que relaciona, cuál es la unidad de stock y cuál es la que se establece por defecto para uso habitual del producto en líneas de documentos.

 

 

Relación de unidades posibles

Fig. 2 Relación de unidades posibles

 

En la pestaña FÓRMULAS, indicaremos la fórmula en visual basic que permita la conversión entre las unidades. En el ejemplo a continuación, puede verse que se usa la propiedad PASO de la ficha del artículo para obtener un factor de conversión establecido directamente en el artículo.

 

Colección Presentaciones


Código VB6:

'No modificar la declaración y el end de la función
'Argumentos:
'  x:     Cantidad
'  aObj:  Objeto artículo
'         Si es una propiedad aObj.Propiedades("NombreProp")
'         Si es un campo      aObj.Propiedades("Presentacion.NombreCampo")
'Rellenar a continuación de f =

Function f(aObj, x)
  l = aObj.Propiedades("Paso")
  if l<> 0 then
    f = round(x / aObj.Propiedades("Paso"), 2)
  else
    f = 0
  end if
End Function


El código de ejemplo a partir de la versión 5.0 sería el siguiente:

Código C#:

using AhoraCl;
using AhoraCore;
using AhoraOCX;
using AhoraSistema;
namespace AhoraScriptsPantalla  
{   
    public partial class ScriptFormulaPresentacion: AhoraOCX.AhoraBaseScript   
    {
      //No modificar la declaración y el end de la función
      //Argumentos:
      //  x:     Cantidad
      //  aObj:  Objeto artículo
      //         Si es una propiedad aObj.Propiedades("NombreProp")
      //         Si es un campo      aObj.Propiedades("Presentacion.NombreCampo")
      //Rellenar a continuación de f =
    public Valor f(IArticulo aObj, decimal x)
    {
       Valor resul = 0;
       Valor l = aObj["Paso"];
       if (l != 0) 
       {
          resul = System.Math.Round((decimal)(x / aObj["Paso"]), 2);
        }        
        return resul; 
      }
    }
}

Fig. 3 Definición de fórmulas

 

Como podemos ver, en  la plantilla de código que ya viene por defecto ya nos orienta de cómo llamar a propiedades del objeto para su uso en el código. También podemos optar por tomar propiedades definidas expresamente en la propia presentación mediante la pestaña Campos, pero en este caso los datos ahí rellenos serán fijos y no dependerán del artículo lo cual se aleja del ejemplo en que nos estamos basando.

 

Lo siguiente será asignar la presentación a la ficha de los artículos que la necesiten. Para ello, acudiremos a la pestaña OTRAS donde vemos que la presentación se asocia en la parte inferior de la ficha del artículo. Podremos establecer también aquí cuál es la unidad de presentación por defecto a la hora de trabajar con el artículo en los pedidos de venta y compra.

 

 

Colección Presentaciones

Fig. 4 Asignación de presentación al artículo

 

Al indicar la presentación,  las unidades de stock quedan bloqueadas porque se le ha asignado al artículo una presentación.

 

 

1.4  Manejo en Documentos

Cuando un artículo trabaja con presentaciones, al introducirlo en las líneas de oferta de cliente, pedido de venta o de compra nos van a aparecer unas columnas adicionales que se destacan a continuación.

 

 

Formulario de pedido

Fig. 5 Formulario de pedido usando presentaciones

 

La columna CANTIDAD ya no se podrá modificar directamente cuando usamos presentaciones, así que habrá que modificar las cantidades sobre la columna CANT PR y siempre podremos elegir en la casilla PR cualquiera entre las diferentes unidades relacionadas en la presentación. En función de la que escojamos y de su definición, así nos calculará la columna CANTIDAD.

 

La aplicación va a calcular siempre el PRECIO € que siempre será el precio referido a la unidad de stock del artículo, y el PRECIO PRES que por defecto se establecerá de manera directa como un cálculo basado en la fórmula de conversión entre unidades.

 

Cuando un artículo tiene asociada una presentación, en las listas de precios de clientes o de proveedores se permite establecer un precio para una de las unidades de la presentación.

Aunque parezca lo contrario, el programa no está preparado a día de hoy para trabajar con precios diferentes en función de la presentación empleada, así que sólo se puede asociar un precio y en teoría este debería ser el precio unitario según la unidad de stock del producto. Si nos interesa otro modo de cálculo habrá que personalizar el cálculo de precios.

 

Por último, destacar que no es obligatorio que todos los artículos de la base de datos manejen presentaciones, sino que pueden coexistir artículos con presentación y artículos sin presentación en las líneas de documentos.