Thursday, July 27, 2017

X++ code for Import Fixed Asset

static void FIxedAssetImport(Args _args)
{
    SysExcelApplication    Application;
    SysExcelWorkbooks    workbooks;
    SysExcelWorkbook     workbook;
    SysExcelWorkSheets   worksheets;
    SysExcelWorksheet    worksheet;
    SysExcelCells            cells;
    COMVariantType       type;
    Name                         Descriptions;
    //Filename                 fileName;
    AssetTable                 AssetTable;
    Dialog                        dialog;
    DialogField                dialogField;
    FilenameOpen            filename;
    int row =1 ;
    str AssetCategory,AssetId,AssetSubCategory,SerialNum,Status,AcquisitionYear,AssetLife,DepriciableDays;
    real NetBook,originalAssetCost,Yearly,AccumulatedDepriciation;
    int i=0 ;
    //  COMVariantType type;
    date DateOfIstallations,DateOfPurchase;
    FileIOPermission        permission;
    #File

    str COMVariant2Str(COMVariant _cv, int _decimals = 0, int _characters = 0, int _separator1 = 0, int _separator2 = 0)
    {
    switch (_cv.variantType())
    {
    case (COMVariantType::VT_BSTR):
    return _cv.bStr();
    case (COMVariantType::VT_R4):
    return num2str(_cv.float(),_characters,_decimals,_separator1,_separator2);
    case (COMVariantType::VT_R8):
    return num2str(_cv.double(),_characters,_decimals,_separator1,_separator2);
    case (COMVariantType::VT_DECIMAL):
    return num2str(_cv.decimal(),_characters,_decimals,_separator1,_separator2);
    case (COMVariantType::VT_DATE):
    return date2str(_cv.date(),123,2,1,2,1,4);
    case (COMVariantType::VT_EMPTY):
    return "";
    default:
    throw error(strfmt("@SYS26908", _cv.variantType()));
    }
    return "";
    }

    //importing from excel
    dialog = new Dialog("FixedAsset Import");
    dialogField = dialog.addField(ExtendedTypeStr("FilenameOpen"),"Source file");

    if (dialog.run())
    {
    filename = dialogField.value();
    permission = new fileIOpermission(filename,"r");
    permission.assert();
    Application = SysExcelApplication::construct();
    workbooks   = Application.workbooks();

    try
    {
        workbooks.open(fileName);
    }
    catch
    {
        throw error("File cannot be opened");
    }

    workbook = workbooks.item(1);
    worksheets = workbook.worksheets();
    worksheet = worksheets.itemFromNum(1);
    cells = worksheet.cells();
    do
    {
        i++;
        row++;
        AcquisitionYear        = COMVariant2str(cells.item(row,2).value());
        AssetId                = cells.item(row,3).value().bStr();
        AssetCategory          = cells.item(row,4).value().bStr();
        AssetSubCategory       = cells.item(row,5).value().bStr();
        Descriptions           = cells.item(row,6).value().bStr();
        SerialNum              = cells.item(row,7).value().bStr();
        DateOfIstallations     = cells.item(row,8).value().date();
        DateOfPurchase         = cells.item(row,9).value().date();
        originalAssetCost      = cells.item(row,10).value().double();
        AssetLife              = COMVariant2str(cells.item(row,11).value());
        Yearly                 = cells.item(row,12).value().double();
        NetBook                = cells.item(row,13).value().double();
        Status                 = cells.item(row,14).value().bStr();
        DepriciableDays        = COMVariant2str(cells.item(row,16).value());
        AccumulatedDepriciation= cells.item(row,17).value().double();


        AssetTable.AcquisitionYear                 = AcquisitionYear  ;
        AssetTable.AssetId                               = AssetId  ;
        AssetTable.AssetCategory                    = AssetCategory  ;
        AssetTable.AssetSubCategory              = AssetSubCategory  ;
        AssetTable.Name                                  = Descriptions  ;
        AssetTable.SerialNum                          = SerialNum  ;
        AssetTable.DateOfInstallations            = DateOfIstallations  ;
        AssetTable.DateOfPurchase                 = DateOfPurchase  ;
        AssetTable.OriginalAssetCost              = originalAssetCost  ;
        AssetTable.AssetLife                            = AssetLife  ;
        AssetTable.YearlyDepriciation             = Yearly  ;
        AssetTable.NetBookValueason             = NetBook  ;
        AssetTable.Status                                  = Status  ;
        AssetTable.DepriciableDays                 = DepriciableDays;
        AssetTable.AccumulatedDepriciations = AccumulatedDepriciation;
        AssetTable.insert();
         //info(strFmt("DATAiMPORTED"));

         type = cells.item(row+1,2).value().variantType();
    }

    while(type != COMVariantType::VT_EMPTY);
    Application.quit();
    //info(strFmt("%1",i));

}
}

No comments:

Post a Comment