Ignore:
Timestamp:
Oct 6, 2010, 4:23:46 AM (14 years ago)
Author:
gav
Message:

Add admin feature to create recommended extended attributes for assets and level 1 assetSubItems.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/services/AssetSubItemService.groovy

    r387 r688  
    11
     2import net.kromhouts.HqlBuilder
    23import org.apache.commons.lang.WordUtils
    34
     
    56
    67    boolean transactional = false
     8
     9    def sessionFactory
    710
    811    /**
     
    120123    } // save()
    121124
     125    /**
     126    * Get a list of level 1 assetSubItems.
     127    * @returns By default all level 1 assetSubItems are returned.
     128    */
     129    def getLevel1AssetSubItems(params) {
     130
     131        // A result is returned for every level 1 assetSubItem.
     132        def q = new HqlBuilder().query {
     133            select 'assetSubItem'
     134            from 'AssetSubItem assetSubItem',
     135                    'inner join assetSubItem.assets as asset'
     136            where 'asset != null' // ensure that only level 1 assetSubItems are returned.
     137        }
     138        def assetSubItems = AssetSubItem.executeQuery(q.query, q.namedParams)
     139
     140    }
     141
     142    /**
     143    * Create recommended extended attributes for all level 1 subItems.
     144    */
     145    def createRecommendedExtendedAttributes() {
     146        def result = [:]
     147
     148        def hibernateSession = sessionFactory.currentSession
     149
     150        def assetSubItems = getLevel1AssetSubItems()
     151
     152        def manufacturer = ExtendedAttributeType.get(8)
     153        def modelNumber = ExtendedAttributeType.get(1)
     154        def serialNumber = ExtendedAttributeType.get(3)
     155        def manufacturedDate = ExtendedAttributeType.get(4)
     156
     157        for(assetSubItem in assetSubItems) {
     158
     159            def attributeTypes = assetSubItem.assetSubItemExtendedAttributes.collect {it.extendedAttributeType}
     160
     161            //AssetSubItemExtendedAttribute
     162            def assetSubItemExtendedAttributeInstance
     163
     164            if(!attributeTypes.contains(manufacturer)) {
     165                //AssetSubItemExtendedAttribute #1
     166                assetSubItemExtendedAttributeInstance = new AssetSubItemExtendedAttribute(value: "Not Specified",
     167                                                                                                                    assetSubItem: assetSubItem,
     168                                                                                                                    extendedAttributeType: manufacturer)
     169                assetSubItemExtendedAttributeInstance.save()
     170            }
     171
     172            if(!attributeTypes.contains(modelNumber)) {
     173                //AssetSubItemExtendedAttribute #2
     174                assetSubItemExtendedAttributeInstance = new AssetSubItemExtendedAttribute(value: "Not Specified",
     175                                                                                                                    assetSubItem: assetSubItem,
     176                                                                                                                    extendedAttributeType: modelNumber)
     177                assetSubItemExtendedAttributeInstance.save()
     178            }
     179
     180            if(!attributeTypes.contains(serialNumber)) {
     181                //AssetSubItemExtendedAttribute #3
     182                assetSubItemExtendedAttributeInstance = new AssetSubItemExtendedAttribute(value: "Not Specified",
     183                                                                                                                    assetSubItem: assetSubItem,
     184                                                                                                                    extendedAttributeType: serialNumber)
     185                assetSubItemExtendedAttributeInstance.save()
     186            }
     187
     188            if(!attributeTypes.contains(manufacturedDate)) {
     189                //AssetSubItemExtendedAttribute #4
     190                assetSubItemExtendedAttributeInstance = new AssetSubItemExtendedAttribute(value: "Not Specified",
     191                                                                                                                    assetSubItem: assetSubItem,
     192                                                                                                                    extendedAttributeType: manufacturedDate)
     193                assetSubItemExtendedAttributeInstance.save()
     194            }
     195
     196            hibernateSession.flush()
     197
     198        } // for
     199
     200        // Success.
     201        return result
     202
     203    } // createRecommendedExtendedAttributes()
     204
    122205} // end class
Note: See TracChangeset for help on using the changeset viewer.