Cómo restar dos valores de tiempo en Navision utilizando una Codeunit

En este artículo, te mostrare cómo crear y utilizar una Codeunit en Navision para restar dos valores de tiempo. Explicare paso a paso el código que permite calcular la diferencia entre dos tiempos y convertir el resultado a un formato legible. Este tutorial es ideal para quienes necesitan manejar operaciones con tiempos en sus aplicaciones de Navision.

Introducción

En el mundo de la programación, a menudo necesitamos realizar operaciones con valores de tiempo. Una de las operaciones comunes es la resta de dos tiempos para obtener la diferencia entre ellos. En este post, te mostraré cómo crear una Codeunit en Navision que resta dos valores de tiempo y convierte el resultado a un formato legible.

Vamos manos a la obra 😍

Explicación del Código

El código que vamos a analizar es una Codeunit en Navision llamada RestarDosTime. A continuación, se muestra el código completo y una explicación detallada de cada parte.

OBJECT Codeunit 62000 RestarDosTime
{
  OBJECT-PROPERTIES
  {
    Date=26/01/22;
    Time=[ 8:16:18];
    Modified=Yes;
    Version List=;
  }
  PROPERTIES
  {
    OnRun=BEGIN
            Restar();
          END;
  }
  CODE
  {
    LOCAL PROCEDURE Restar@1000000001();
    VAR
      t1@1000000000 : Time;
      t2@1000000001 : Time;
      t3@1000000002 : Time;
      i@1000000003 : Decimal;
    BEGIN
      t1 := 115000T;
      t2 := 125100T;
      i := t2 - t1;
      t3 := 000000T;

      // lo convierto a segundos
      i := i / 1000;
      t3 := t3 + (i MOD 60) * 1000;

      // lo convierto a minutos
      i := i DIV 60;
      t3 := t3 + (i MOD 60) * 1000 * 60;

      // lo convierto a horas
      i := i DIV 60;
      t3 := t3 + (i MOD 60) * 1000 * 60 * 60;

      MESSAGE(FORMAT(t3));
    END;
  }
}

Detalle del Código

  1. Definición del objeto: La Codeunit RestarDosTime se define con el número 62000 y tiene algunas propiedades básicas como la fecha y hora de modificación.
  2. Evento OnRun: Dentro del evento OnRun, se llama al procedimiento local Restar.
  3. Procedimiento Local Restar:
  • Se declaran tres variables de tiempo t1, t2 y t3, y una variable decimal i.
  • t1 y t2 se inicializan con los tiempos 11:50:00 y 12:51:00 respectivamente.
  • Se calcula la diferencia entre t2 y t1 y se almacena en i.
  • t3 se inicializa en 00:00:00.
  • La diferencia en milisegundos se convierte a segundos, minutos y horas utilizando operaciones de división y módulo.
  • Finalmente, se muestra el resultado formateado en un mensaje.

Conclusión

Este código es un ejemplo sencillo pero efectivo de cómo manejar operaciones con tiempos en Navision. La lógica utilizada para convertir la diferencia de tiempo a un formato legible es fundamental para aplicaciones que requieren cálculos precisos de tiempo. Además, es un gran punto de partida para personalizar y ampliar según las necesidades específicas de tu proyecto.

Como siempre el código esta en mi GitHub

Espero que este post sea útil. Si necesitas más ayuda o deseas hacer algún comentario, ¡házmelo saber!

Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *