Mostrando entradas con la etiqueta field. Mostrar todas las entradas
Mostrando entradas con la etiqueta field. Mostrar todas las entradas

miércoles, 7 de febrero de 2018

Codigo X++ para simular depreciación de un activo fijo [AX2012]

Con el siguiente código X++ podemos simular la depreciación de un activo fijo hasta el final de su vida, que guardaremos en una tabla para su posterior análisis.
static void DIPSimularDepreciacionActivo()
{
    TmpDateSum      tmpDateSum;
    AssetTable      assetTable;
    AssetBook       assetBook;
    AssetLedgerAccounts  assetLedgerAccounts;
    MainAccountNum       mainAccountNum;
    DIPSimulacionDepreciacion    simulacion;

    delete_from simulacion;

    while select assetTable join assetBook where
        assetTable.AssetId                      == assetBook.AssetId
    &&  assetBook.Depreciation                  == NoYes::Yes
    &&  assetBook.Status                        == AssetStatus::Open
    &&  assetTable.AssetId                      == "218-000063"
    {
        simulacion.clear();
        assetLedgerAccounts = AssetLedgerAccounts::find(assetBook.BookId,AssetParameters::find().PostingProfile,enum2int(AssetTransType::Depreciation),TableGroupAll::GroupId,assetTable.AssetGroup);
        mainAccountNum =  MainAccount::find(DimensionAttributeValueCombination::find(assetLedgerAccounts.OffsetLedgerDimension).MainAccount).MainAccountId;

        //Metodo de calculo utilizado por AX
        tmpDateSum.setTmpData(assetBook.initDepreciationProfile());

        //Datos comunes de linea
        simulacion.AssetGroupId       = assetTable.AssetGroup;
        simulacion.AssetId            = assetTable.AssetId;
        simulacion.MainAccountId      = mainAccountNum;
        simulacion.ImporteAdquisicion = assetBook.AcquisitionPrice;

        //Recorrer dataset depreciacion
        while select tmpDateSum where tmpDateSum.TmpNumerals01 != 0
        {
            simulacion.Periodo               = tmpDateSum.TransDate;        // Fecha depreciacion
            simulacion.Depreciacion          = tmpDateSum.TmpNumerals01;    // Importe depreciacion del periodo
            simulacion.DepreciacionAcumulada = tmpDateSum.Total;            // Importe depreciacion acumulada
            simulacion.NetBookValue          = tmpDateSum.TmpNumerals02;    // Valor neto en libros
            simulacion.insert();
        }
    }
    info("Simulacion terminada");
}
Resultado:









Espero que os sirva de ayuda

viernes, 29 de agosto de 2014

Usar formularios como LookUp (desplegable) en Dynamics AX 2012

Imaginemos que necesitamos un control StringEdit que nos despliegue una lista de todos los proveedores. Podemos hacerlo de manera automática asignando el ExtendedDataType al campo y estaría listo. Pero si queremos personalizar los campos que nos despliega podemos usar formularios como LookUp.

Empezaremos creando el propio formulario desplegable o LookUp: