Wednesday, November 11, 2020

Updating Sales Group Employee responable and dimension in customer

 static void GH_CustDimension_SalesGroup_Updating(Args _args)

{


    SysExcelApplication                 application;

    SysExcelWorkbooks                   workbooks;

    SysExcelWorkbook                    workbook;

    SysExcelWorksheets                  worksheets;

    SysExcelWorksheet                   worksheet;

    SysExcelCells                       cells;

    COMVariantType                      type;

    Filename                            filename;

    str                                 filePath, fileNameOnly;

    Dialog                              dialog;

    DialogField                         dialogFileName;

    int                                 row;

    container                           record, roles;


    CustTable                         _custTable;

    DimensionAttribute                _dimAttribute;

    DimensionAttributeValueSet        _dimAttributeSet;

    DimensionAttributeValueSetItem    _dimAttributeSetItem;

    DimensionAttributeValue           _dimValue;

    DimensionAttributeValueSetStorage _dimStorage;

    Common                            _dimensionValueEntry;

    CustAccount                       _custAccount;


    ;


    dialog = new Dialog();

    dialog.caption("Pick excel file");

    dialogFileName = dialog.addField(extendedTypeStr(FilenameOpen), "Enter excel file", "Browse excel file");


    if(!dialog.run())

        return;


    filename                = dialogFileName.value();

    [filePath,fileNameOnly] = fileNameSplit(filename);

    application             = SysExcelApplication::construct();

    workbooks               = application.workbooks();


    try

    {

        workbooks.open(filename);

    }

    catch (Exception::Error)

    {

        throw error(strFmt("Filename %1 cannot be blank.",filename));

    }


    workbook   = workbooks.item(1);

    worksheets = workbook.worksheets();

    worksheet  = worksheets.itemFromNum(1);

    cells      = worksheet.cells();


    row = 1;

    do

    {

        try

        {

            row++;

            _custAccount   = cells.item(row, 1).value().bStr();


            if(strLRTrim(cells.item(row, 1).value().bStr())!= "")

                {

                     select forUpdate _custTable where _custTable.AccountNum == _custAccount;

                    {

                         ttsBegin;

                         _custTable.SalesGroup           = 'TES';

                         _custTable.MainContactWorker    = 5637156776;

                         _dimStorage                     = DimensionAttributeValueSetStorage::find(_custTable.DefaultDimension);

                         _dimAttribute                   = DimensionAttribute::findByName("GH01_Salesman");

                         _dimValue                       = DimensionAttributeValue::findByDimensionAttributeAndValue(_dimAttribute, 'TES', true, true);

                         _dimStorage.addItem(_dimValue);

                         _custTable.DefaultDimension     = _dimStorage.save();

                         _custTable.doUpdate();

                        ttsCommit;

                    }

                }


            else

            {

                warning(strFmt("Row %1 not updated.", row));

            }

        }

        catch

        {

            error(strfmt("Row %1 not updated.", row));

        }

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

    }

    while (type != COMVariantType::VT_EMPTY);

    workbook.saved(true);

    application.visible(false);

    application.quit();


    info("Excel uploaded successfully");

}

No comments:

Post a Comment