Tuesday, January 8, 2019

Updating Item Master Mandatory Fields to Class

class ASAPG_UpdateMissingField_ToInventTable
{
}

---------------------------------


public static void Main(Args _args)
{
    Date                              _Currentdate;
    utcDateTime                       _UtcStartPeriod;
    utcDateTime                       _UtcEndPeriod;
    container companieswithCostCenter = ['ASAB','SPDC','ALMA','ASAP','AGAP','AISI','CENT','IMPE','INDP'];
    int                               ItemExists,i;
    CompanyInfo                       companyInfo;
    InventTable                       inventTable;
    InventModelGroupItem              modelGroup,updatemodelgroup;
    InventTableModule                 updateTablemoduel;
    InventModelGroupItem              InventModelGroupItem;
    InventModelGroupItem              InventModelGroupItem2;
    InventitemGroupItem               InventitemGroupItem;
    InventitemGroupItem               InventitemGroupItem2;
    // Legal Entity
    DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage;
    DimensionAttribute                dimensionAttribute;
    DimensionValue                    oldDimensionValue;
    DimensionValue                    newDimensionValue;
    DimensionDefault                  newDimensionDefault;
    #define.dimensionName("LegalEntity")
    // legal Entity

    _currentdate    = today();
    _UtcStartPeriod = DateTimeUtil::newDateTime(_currentdate,0);
    _UtcEndPeriod   = DateTimeUtil::newDateTime(_Currentdate,86400);

   while select companyInfo
    {
      changeCompany ( companyInfo.DataArea)
        {
          while select crossCompany inventTable
            order by inventTable.ItemId
               where inventTable.createdDateTime >= _UtcStartPeriod && inventTable.createdDateTime <= _UtcEndPeriod
                  && inventTable.dataAreaId == companyInfo.DataArea
             {
                       //---------------------------- Legal Enity Starting
                       // Get current value

                        newDimensionValue = inventTable.dataAreaId;

                        // Build DimensionAttributeValueSetStorage
                        dimensionAttributeValueSetStorage = DimensionAttributeValueSetStorage::find(inventTable.DefaultDimension);

                        // Set new dimension value
                        if(newDimensionValue != "")
                        {
                            dimensionAttribute = DimensionAttribute::findByName(#dimensionName);
                            dimensionAttributeValueSetStorage.addItem(DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, newDimensionValue));
                        }

                        newDimensionDefault = dimensionAttributeValueSetStorage.save();

                        ttsbegin;
                        inventTable.selectForUpdate(true);
                        inventTable.DefaultDimension      = newDimensionDefault;
                        inventTable.StandardConfigId      = "Default";
                        inventTable.StandardInventColorId = "Default";
                        inventTable.StandardInventSizeId  = "Default";
                        inventTable.StandardInventStyleId = "Default";

                        inventTable.update();
                        ttscommit;

                        ///-------------------------------- Legal Entity End

                    // --------------------------- brand name inserting
                        ItemExists=0;
                        select firstOnly InventitemGroupItem2
                           where InventitemGroupItem2.ItemId == InventTable.ItemId
                              && InventitemGroupItem2.ItemGroupDataAreaId == InventTable.dataareaid
                              && InventitemGroupItem2.ItemDataAreaId == InventTable.dataAreaId;
                            if (InventitemGroupItem2.RecId)
                              {
                                ItemExists =1;
                              }
                            else
                             {
                                ttsBegin;
                                InventitemGroupItem.clear();
                                InventitemGroupItem.initValue();
                                InventitemGroupItem.ItemDataAreaId      = InventTable.dataAreaId;
                                InventitemGroupItem.ItemGroupDataAreaId = InventTable.dataAreaId;
                                InventitemGroupItem.ItemId              = InventTable.ItemId;
                                InventitemGroupItem.ItemGroupId         = 'BRAND';

                                if (InventitemGroupItem.validateWrite())
                                {
                                    InventitemGroupItem.insert();
                                }
                                ttsCommit;
                            }
                        //---------- brand name end

                        //------------------------------- weighted Avg inseritng

                      /*   ItemExists=0;
                        select firstOnly InventModelGroupItem2
                            where InventModelGroupItem2.ItemId == InventTable.ItemId
                               && InventModelGroupItem2.ItemDataAreaId == InventTable.dataareaid
                               && InventModelGroupItem2.ModelGroupDataAreaId == InventTable.dataAreaId;
                            if (InventModelGroupItem2.RecId)
                             {
                                ItemExists =1;
                             }
                            else
                             {
                                ttsBegin;
                                InventModelGroupItem.clear();
                                InventModelGroupItem.initValue();
                                InventModelGroupItem.ItemDataAreaId       = InventTable.dataareaid;
                                InventModelGroupItem.ModelGroupDataAreaId = InventTable.dataAreaId;
                                InventModelGroupItem.ItemId               = InventTable.ItemId;
                                InventModelGroupItem.ModelGroupId         = 'WAVGDATE';

                                if (InventModelGroupItem.validateWrite())
                                {
                                    InventModelGroupItem.insert();
                                }
                                ttsCommit;
                             }
                        */
                        // ------------- weighted avg ending

                        //--- unit id , price unit , item tax group starting ( purchase , sales and inventory )

                       select  crossCompany updateTablemoduel where updateTablemoduel.ItemId == inventTable.ItemId
                           && updateTablemoduel.ModuleType ==  ModuleInventPurchSales::Invent
                           && updateTablemoduel.dataAreaId == inventTable.dataAreaId;

                            {
                                ttsBegin;
                                updateTablemoduel.selectForUpdate(true);
                                updateTablemoduel.TaxItemGroupId = "ITVAT";
                                updateTablemoduel.UnitId         = "EA";
                                updateTablemoduel.PriceUnit      = 1.00;
                                updateTablemoduel.update();
                                ttsCommit;
                               // info(strFmt("ItemId --%1 ", updateTablemoduel.ItemId));
                            }

                         select crossCompany updateTablemoduel where updateTablemoduel.ItemId == inventTable.ItemId
                           && updateTablemoduel.ModuleType ==  ModuleInventPurchSales::Purch
                           && updateTablemoduel.dataAreaId == inventTable.dataAreaId;

                            {
                                ttsBegin;
                                updateTablemoduel.selectForUpdate(true);
                                updateTablemoduel.TaxItemGroupId = "ITVAT";
                                updateTablemoduel.UnitId         = "EA";
                                updateTablemoduel.PriceUnit      = 1.00;
                                updateTablemoduel.update();
                                ttsCommit;
                               // info(strFmt("ItemId --%1 ", updateTablemoduel.ItemId));
                            }

                         select crossCompany updateTablemoduel where updateTablemoduel.ItemId == inventTable.ItemId
                           && updateTablemoduel.ModuleType ==  ModuleInventPurchSales::Sales
                           && updateTablemoduel.dataAreaId == inventTable.dataAreaId;

                            {
                                ttsBegin;
                                updateTablemoduel.selectForUpdate(true);
                                updateTablemoduel.TaxItemGroupId = "ITVAT";
                                updateTablemoduel.UnitId         = "EA";
                                updateTablemoduel.PriceUnit      = 1.00;
                                updateTablemoduel.update();
                                ttsCommit;
                               // info(strFmt("ItemId --%1 ", updateTablemoduel.ItemId));
                            }

                       //--- unit id , price unit , item tax group ending   ( purchase , sales and inventory )
                     info(strFmt("Item id -- %1 , Legal Enity  -- %2",inventTable.ItemId,inventTable.dataAreaId));

                   }

              }
         }

   info("PROCESS COMPLETED");

 }

No comments:

Post a Comment