zoukankan      html  css  js  c++  java
  • When you are finished renamed the Item number Jobs

    When you are finished renamed the Item number, you must record original Item number, related configure  and so on!

     

    static void Jimmy_ItemRenamedAfterUpdate(Args _args)
    {
        InventTableCompany      ITCompany,delITCompany;
        InventTable             IT,ITUpdateOrg;
        ConfigTable             ConfigTable;
        InventDimCombination    Combination;
        Dialog                  dlg     = new Dialog("updated to comoany Items infomation");
        DialogField             dlgItem = dlg.addField(types::String,'after rename Items:',"Format such as :Items + ',' + Items + ','  + items");
        ListEnumerator          le;
        ItemId                  ItemConfig;
        InventTrans             InventTrans;
        int                     ITCompanys,Combinations,NoConfig;
    
        SysDataBaseLog          SysDataBaseLog;
        Container               Con;
        fieldId                 fieldId;
        List                    datalist;
        ListEnumerator          enumerator;
    ;
        dlgItem.displayHeight(20);
        dlgItem.displayLength(50);
        dlg.doInit();
        if(!dlg.run())
            return ;
    
        le = global::strSplit(dlgItem.value(),',').getEnumerator();
        while (le.moveNext())
        {
    
            ttsbegin;
            ITUpdateOrg = InventTable::find(le.current(),true);
            if(ITUpdateOrg)
            {
                select firstonly SysDataBaseLog
                        where SysDataBaseLog.table == tablenum(InventTable)
                        && SysDataBaseLog.LogType == DatabaseLogType::RenameKey
                        && SysDataBaseLog.Description like ITUpdateOrg.ItemId + '*';
                if(SysDataBaseLog)
                {
                    datalist = SysDataBaseLog.getDataAslist();
                    enumerator = datalist.getEnumerator();
                    while (enumerator.moveNext())
                    {
                        Con          = enumerator.current();
                        fieldId      = conpeek(Con, 1);
                        ITUpdateOrg.OrgItemId = sysdatabaselog.contents2Str(conpeek(Con, 3), fieldId);
                        break;
                    }
                }
                if(!ITUpdateOrg.OrgItemId)
                    ITUpdateOrg.OrgItemId = ITUpdateOrg.ItemId;
                ITUpdateOrg.Update();
            }
            ttscommit;
    
            select firstonly forupdate IT where IT.ItemId == le.current();
            if(IT)
            {
                /*
                select firstonly InventTrans where InventTrans.ItemId == le.current();
                if(InventTrans)
                    throw Error(StrFmt("The ItemId %1 Exists InventTrans,do not rename of Items!",le.current()));
                */
                select firstonly ConfigTable where ConfigTable.ItemId == IT.ItemId;
                //Have Configuration
                ItemConfig = '';
                if(ConfigTable)
                {
                    ConfigTable.clear();
    
                    while select ConfigTable where ConfigTable.ItemId == IT.ItemId
                    {
                        ItemConfig = IT.ItemId + '_' + ConfigTable.ConfigId;
    
                        ttsbegin;
                        select firstonly forupdate ITCompany where ITCompany.ItemId == ItemConfig;
                        if(!ITCompany)
                        {
                            ITCompany.initValue();
                            ITCompany.ItemId        = ItemConfig;
                            ITCompany.Name          = IT.itemName;
                            ITCompany.OrgItemId     = IT.OrgItemId;
                            ITCompany.NormalItemId  = IT.ItemId;
    
                            ITCompany.insert();
                            ITCompanys++;
                        }
                        else
                        {
                            ITCompany.ItemId        = ItemConfig;
                            ITCompany.Name          = IT.itemName;
                            ITCompany.OrgItemId     = IT.OrgItemId;
                            ITCompany.NormalItemId  = IT.ItemId;
                            ITCompany.update();
                        }
                        ttscommit;
    
                        ttsbegin;
                        delete_from delITCompany where delITCompany.ItemId == IT.OrgItemId + '_' + ConfigTable.ConfigId
                            && delITCompany.OrgItemId == '' && delITCompany.NormalItemId == '';
    
                        ttscommit;
    
                        ttsbegin;
                        select firstonly forupdate Combination
                            where Combination.ItemId == ConfigTable.ItemId
                            &&    Combination.ConfigId == ConfigTable.ConfigId;
                        if(Combination)
                        {
                            Combination.ItemIdCompany = ItemConfig;
                            Combination.update();
                            Combinations++;
                        }
                        ttscommit;
                    }
                }
                else //Have not Configuration
                {
                    ttsbegin;
                    select firstonly forupdate ITCompany where ITCompany.ItemId == IT.ItemId;
                    if(!ITCompany)
                    {
                        ITCompany.initValue();
                        ITCompany.ItemId        = IT.ItemId;
                        ITCompany.Name          = IT.itemName;
                        ITCompany.OrgItemId     = IT.OrgItemId;
                        ITCompany.NormalItemId  = IT.ItemId;
                        ITCompany.insert();
                    }
                    else
                    {
                        ITCompany.ItemId        = IT.ItemId;
                        ITCompany.Name          = IT.itemName;
                        ITCompany.OrgItemId     = IT.OrgItemId;
                        ITCompany.NormalItemId  = IT.ItemId;
                        ITCompany.update();
                    }
                    ttscommit;
                    ttsbegin;
                    IT.ItemIdCompany = it.ItemId;
                    IT.update();
                    ttscommit;
                    NoConfig ++;
                    info(IT.ItemId);
    
                }
            }
            ELSE
               info("Not exists Item detail " + le.current());
        }
        info(strfmt("NoConfig : %1,Combinations : %2,ITCompanys : %3",NoConfig,Combinations,ITCompanys));
    }
    
  • 相关阅读:
    ABP理论学习之Swagger UI集成
    最佳加法表达式
    洛谷 P1736 创意吃鱼法
    洛谷P1387 最大正方形
    1078 最小生成树
    判断元素是否存在
    1531 山峰 【栈的应用】
    洛谷 P2335 [SDOI2005]位图
    矿藏估价
    二分法小结
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2105403.html
Copyright © 2011-2022 走看看