source: trunk/grails-app/services/CreateDataService.groovy @ 532

Last change on this file since 532 was 529, checked in by gav, 15 years ago

Tweak CreateDataService to prevent issues during testing.
Repair getBudgetTasks() search.
Complete testGetBudgetTasks() test.

File size: 64.8 KB
Line 
1/**
2* Provides a data service to create base and demo data.
3* Beware that most, if not all, base data is referenced by "Id" throughout the program.
4* This allows changing the text of the 'name' property to something of the same meaning.
5* But be sure to maintain the correct Id during creation, indicated by #1, #2 etc.
6*/
7class  CreateDataService {
8
9    boolean transactional = false
10
11    def authService
12    def taskService
13    def dateUtilService
14    def appConfigService
15    def assignedGroupService
16    def assignedPersonService
17
18/*******************************************
19Start of Group methods.
20Generally use these methods to create data.
21*******************************************/
22
23    /**
24    * Always call this at startup to ensure that we have admin access
25    * and that the system pseudo person is available.
26    */
27    def ensureSystemAndAdminAccess() {
28        if(!Authority.findByAuthority("ROLE_AppAdmin") ) {
29            log.warn "ROLE_AppAdmin not found, calling createAdminAuthority()."
30            createAdminAuthority()
31        }
32        if(!Person.findByloginName("system") ) {
33            log.warn "LoginName 'system' not found, calling createSystemPerson()."
34            createSystemPerson()
35        }
36        if(!Person.findByloginName("admin") ) {
37            log.warn "LoginName 'admin' not found, calling createAdminPerson()."
38            createAdminPerson()
39        }
40    }
41
42    /**
43    * Create the base data required for the application to function.
44    */
45    def createBaseData() {
46
47        if(appConfigService.exists("baseDataCreated")) {
48            log.info "Base data previously created."
49            return false
50        }
51
52        log.info "Creating base data."
53
54        // Person and Utils
55        createBaseAuthorities()
56        createBasePersonGroupTypes()
57        createBasePersonGroups()
58        createBaseDefinitions()
59        createBaseUnitsOfMeasure()
60        createBasePeriods()
61        createBaseSupplierTypes()
62        createBaseManufacturerTypes()
63        createBaseAddressTypes()
64        createBaseContactTypes()
65        createBaseInventoryItemPurchaseTypes()
66
67        // Tasks
68        createBaseTaskGroups()
69        createBaseTaskStatus()
70        createBaseTaskPriorities()
71        createBaseTaskBudgetStatus()
72        createBaseTaskTypes()
73        createBaseTaskModificationTypes()
74        createBaseEntryTypes()
75
76        // Inventory
77        createBaseInventoryTypes()
78        createBaseInventoryMovementTypes()
79
80        // Assets
81        createBaseExtenededAttributeTypes()
82        createBaseMaintenancePolicies()
83
84        // Record that data has been created.
85        appConfigService.set("baseDataCreated")
86    }
87
88    /**
89    * Create demo data for some example sites.
90    */
91    def createDemoData() {
92
93        if(!appConfigService.exists("baseDataCreated")) {
94            log.error "Demo data cannot be created until base data has been created."
95            return false
96        }
97
98        if(appConfigService.exists("demoDataCreated")) {
99            log.error "Demo data has already been created, will NOT recreate."
100            return false
101        }
102
103        if(appConfigService.exists("demoDataCreationDisabled")) {
104            log.error "Demo data creation has been disabled, will NOT create."
105            return false
106        }
107
108        log.info "Creating demo data..."
109
110        // Person and Utils
111        createDemoPersons()
112        createDemoSites()
113        createDemoDepartments()
114        createDemoSuppliers()
115        createDemoManufacturers()
116        createDemoProductionReference()
117        createDemoCostCodes()
118
119        // Tasks
120        createDemoTasks()
121        createDemoEntries()
122        createDemoAssignedGroups()
123        createDemoAssignedPersons()
124        createDemoTaskRecurringSchedules()
125
126        // Inventory
127        createDemoInventoryStores()  /// @todo: Perhaps a 'createQuickStartData' method?
128        createDemoInventoryLocations()
129        createDemoInventoryGroups() /// @todo: Perhaps a 'createQuickStartData' method?
130        createDemoInventoryItems()
131
132        // Assets
133        createDemoLifePlan()
134        createDemoTaskProcedure()
135        createDemoMaintenanceActions()
136        createDemoSections()
137        createDemoAssetTree()
138        createDemoAssetExtenedAttributes()
139
140        // Record that data has been created.
141        appConfigService.set("demoDataCreated")
142    }
143
144/******************
145Start of Person
146*******************/
147
148    def createAdminAuthority() {
149        def authInstance
150
151        // Authority #1
152        authInstance = new Authority(description:"Application Admin, not required for daily use! \
153                                                                                Grants full admin access to the application.",
154                                        authority:"ROLE_AppAdmin")
155        saveAndTest(authInstance)
156    }
157
158    def createBaseAuthorities() {
159
160        def authInstance
161
162        // Authority #2
163        authInstance = new Authority(description:"Business Manager, grants full management access.",
164                                                            authority:"ROLE_Manager")
165        saveAndTest(authInstance)
166
167        // Authority #3
168        authInstance = new Authority(description:"Application User, all application users need this base role \
169                                                                                    to allow login.",
170                                                            authority:"ROLE_AppUser")
171        saveAndTest(authInstance)
172
173        // Authority #4
174        authInstance = new Authority(description:"Task Manager",
175                                                            authority:"ROLE_TaskManager")
176        saveAndTest(authInstance)
177
178        // Authority #5
179        authInstance = new Authority(description:"Task User",
180                                                            authority:"ROLE_TaskUser")
181        saveAndTest(authInstance)
182
183        // Authority #6
184        authInstance = new Authority(description:"Inventory Manager",
185                                                            authority:"ROLE_InventoryManager")
186        saveAndTest(authInstance)
187
188        // Authority #7
189        authInstance = new Authority(description:"Inventory User",
190                                                            authority:"ROLE_InventoryUser")
191        saveAndTest(authInstance)
192
193        // Authority #8
194        authInstance = new Authority(description:"Asset Manager",
195                                                            authority:"ROLE_AssetManager")
196        saveAndTest(authInstance)
197
198        // Authority #9
199        authInstance = new Authority(description:"Asset User",
200                                                            authority:"ROLE_AssetUser")
201        saveAndTest(authInstance)
202
203        // Authority #10
204        authInstance = new Authority(description:"Production Manager",
205                                                            authority:"ROLE_ProductionManager")
206        saveAndTest(authInstance)
207
208        // Authority #11
209        authInstance = new Authority(description:"Production User",
210                                                            authority:"ROLE_ProductionUser")
211        saveAndTest(authInstance)
212    }
213
214    void createBasePersonGroupTypes() {
215
216        //PersonGroupType.
217        def personGroupTypeInstance
218        personGroupTypeInstance = new PersonGroupType(name:"Team")
219        saveAndTest(personGroupTypeInstance)
220        personGroupTypeInstance = new PersonGroupType(name:"Contractor")
221        saveAndTest(personGroupTypeInstance)
222        personGroupTypeInstance = new PersonGroupType(name:"Project Team")
223        saveAndTest(personGroupTypeInstance)
224    }
225
226    void createBasePersonGroups() {
227
228        //PersonGroup
229        def personGroupInstance
230        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
231                                                                                name:"Electrical - General")
232        saveAndTest(personGroupInstance)
233        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
234                                                                                name:"Mechanical - General")
235        saveAndTest(personGroupInstance)
236        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
237                                                                                name:"Production")
238        saveAndTest(personGroupInstance)
239        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(2),
240                                                                                name:"AirCon Contractor")
241        saveAndTest(personGroupInstance)
242        personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(3),
243                                                                                name:"gnuMims")
244        saveAndTest(personGroupInstance)
245    }
246
247    def createSystemPerson() {
248        //Person
249        def passClearText = "pass"
250        def passwordEncoded = authService.encodePassword(passClearText)
251        def personInstance
252
253        //Person #1
254        personInstance = new Person(loginName:"system",
255                                    firstName:"gnuMims",
256                                    lastName:"System",
257                                    description:'''This is a pseudo person that the application uses to insert data. DO NOT
258                                                        assign login authorities or change the details of this person.''',
259                                    pass:passClearText,
260                                    password:passwordEncoded)
261        saveAndTest(personInstance)
262    }
263
264    def createAdminPerson() {
265        //Person
266        def passClearText = "pass"
267        def passwordEncoded = authService.encodePassword(passClearText)
268        def personInstance
269
270        //Person #2
271        personInstance = new Person(loginName:"admin",
272                                    firstName:"Admin",
273                                    lastName:"Powers",
274                                    description:'''Every time the application starts it ensures that the 'admin' login name is available.
275                                                        DO update the password and other details but keep the login name as 'admin'. ''',
276                                    pass:passClearText,
277                                    password:passwordEncoded)
278        saveAndTest(personInstance)
279        personInstance.addToAuthorities(Authority.get(1))
280    }
281
282    def createBasePersons() {
283    }
284
285    def createDemoPersons() {
286        //Person
287        def passClearText = "pass"
288        def passwordEncoded = authService.encodePassword(passClearText)
289        def personInstance
290
291        //Person #1 is system.
292        //Person #2 is admin.
293
294        //Person #3
295        personInstance = new Person(loginName:"manager",
296                                    firstName:"Demo",
297                                    lastName:"Manager",
298                                    pass:passClearText,
299                                    password:passwordEncoded)
300        saveAndTest(personInstance)
301        personInstance.addToAuthorities(Authority.get(2)) // ROLE_Manager.
302        personInstance.addToAuthorities(Authority.get(3)) // ROLE_AppUser.
303
304        //Person #4
305        personInstance = new Person(loginName:"user",
306                                    firstName:"Demo",
307                                    lastName:"User",
308                                    pass:passClearText,
309                                    password:passwordEncoded)
310        saveAndTest(personInstance)
311        personInstance.addToAuthorities(Authority.get(3)) // ROLE_AppUser.
312        personInstance.addToAuthorities(Authority.get(5)) // ROLE_TaskManager.
313        personInstance.addToAuthorities(Authority.get(7)) // ROLE_InventoryUser.
314        personInstance.addToAuthorities(Authority.get(9)) // ROLE_AssetUser.
315        personInstance.addToPersonGroups(PersonGroup.get(1))
316
317        //Person #5
318        personInstance = new Person(loginName:"craig",
319                                    firstName:"Craig",
320                                    lastName:"SuperSparky",
321                                    pass:passClearText,
322                                    password:passwordEncoded)
323        saveAndTest(personInstance)
324        personInstance.addToAuthorities(Authority.get(3))
325        personInstance.addToAuthorities(Authority.get(5))
326        personInstance.addToAuthorities(Authority.get(7))
327        personInstance.addToAuthorities(Authority.get(9))
328        personInstance.addToPersonGroups(PersonGroup.get(1))
329
330        //Person #6
331        personInstance = new Person(loginName:"john",
332                                    firstName:"John",
333                                    lastName:"SuperFitter",
334                                    pass:passClearText,
335                                    password:passwordEncoded)
336        saveAndTest(personInstance)
337        personInstance.addToAuthorities(Authority.get(3))
338        personInstance.addToAuthorities(Authority.get(5))
339        personInstance.addToAuthorities(Authority.get(7))
340        personInstance.addToAuthorities(Authority.get(9))
341        personInstance.addToPersonGroups(PersonGroup.get(2))
342
343        //Person #7
344        personInstance = new Person(loginName:"production manager",
345                                    firstName:"Production",
346                                    lastName:"Manager",
347                                    pass:passClearText,
348                                    password:passwordEncoded)
349        saveAndTest(personInstance)
350        personInstance.addToAuthorities(Authority.get(3)) // ROLE_AppUser.
351        personInstance.addToAuthorities(Authority.get(10)) // ROLE_ProductionManager.
352        personInstance.addToPersonGroups(PersonGroup.get(3))
353
354        //Person #8
355        personInstance = new Person(loginName:"production",
356                                    firstName:"Production",
357                                    lastName:"User",
358                                    pass:passClearText,
359                                    password:passwordEncoded)
360        saveAndTest(personInstance)
361        personInstance.addToAuthorities(Authority.get(3)) // ROLE_AppUser.
362        personInstance.addToAuthorities(Authority.get(11)) // ROLE_ProductionUser.
363        personInstance.addToPersonGroups(PersonGroup.get(3))
364
365        //Person #9
366        personInstance = new Person(loginName:"testmanager",
367                                    firstName:"Test",
368                                    lastName:"Manager",
369                                    pass:passClearText,
370                                    password:passwordEncoded)
371        saveAndTest(personInstance)
372        personInstance.addToAuthorities(Authority.get(3)) // ROLE_AppUser.
373        personInstance.addToAuthorities(Authority.get(4)) // ROLE_TaskManager.
374        personInstance.addToAuthorities(Authority.get(6)) // ROLE_InventoryManager.
375        personInstance.addToAuthorities(Authority.get(8)) // ROLE_AssetManager.
376        personInstance.addToPersonGroups(PersonGroup.get(3))
377    }
378
379/***********************
380START OF UTILITIES
381***********************/
382
383    //These can redefined by the site at deployment time.
384    /// @todo: build an admin view so that only the value (definition) can be changed.
385    def createBaseDefinitions() {
386        appConfigService.set("Department Definition", "A department as recongised by accounting.")
387        appConfigService.set("Site Definition", "The plant, work or production site.")
388        appConfigService.set("Section Definition", "A logical grouping of assets, which may be an area, system or process \
389                                            as determined by design.")
390        appConfigService.set("Asset Definition",
391                                            "The complete asset as it is known on the site. \
392                                            Often purchased as a whole with the primary purpose of returning value by performing a function. \
393                                            An asset is made up of 1 or more sub assets and performs a complete function as specified by the designer.")
394        appConfigService.set("Asset Sub Item 1 Name",
395                                            "Sub Asset")
396        appConfigService.set("Asset Sub Item 1 Definition",
397                                            "A machine that performs part of a complete asset's function and often has a model number.")
398        appConfigService.set("Asset Sub Item 2 Name",
399                                            "Functional Assembly")
400        appConfigService.set("Asset Sub Item 2 Definition",
401                                            "Functional Assemblies are taken from the designer's functional list for the sub asset and are made up of sub \
402                                            assemblies that together perform that function.")
403        appConfigService.set("Asset Sub Item 3 Name",
404                                            "Sub Assembly Group")
405        appConfigService.set("Asset Sub Item 3 Definition",
406                                            "Group or type of part.")
407        appConfigService.set("Asset Sub Item 4 Name",
408                                            "Component Item")
409        appConfigService.set("Asset Sub Item 4 Definition",
410                                            "The smallest part that would be analysed for failure.")
411    }
412
413    def createDemoSites() {
414        //Site
415        def siteInstance
416
417        siteInstance = new Site(name: "CSM",
418                                                    description: "Creek Side Mill")
419        saveAndTest(siteInstance)
420
421        siteInstance = new Site(name: "Jasper Street Depot",
422                                                    description: "Storage depot on Jasper Street.")
423        saveAndTest(siteInstance)
424
425        siteInstance = new Site(name: "River Press",
426                                                    description: "Printing press site")
427        saveAndTest(siteInstance)
428    }
429
430    def createDemoDepartments() {
431
432        //Department
433        def departmentInstance
434
435        //Department #1
436        departmentInstance = new Department(name: "Print Centre",
437                                                                                description: "Printing Department",
438                                                                                site: Site.get(1))
439        saveAndTest(departmentInstance)
440
441        //Department #2
442        departmentInstance = new Department(name: "Pulp Mill",
443                                                                                description: "Business Department",
444                                                                                site: Site.get(2))
445        saveAndTest(departmentInstance)
446    }
447
448    def createBaseUnitsOfMeasure() {
449
450        //UnitOfMeasure
451        def unitOfMeasureInstance
452
453        //UnitOfMeasure #1
454        unitOfMeasureInstance = new UnitOfMeasure(name: "each")
455        saveAndTest(unitOfMeasureInstance)
456
457        //UnitOfMeasure #2
458        unitOfMeasureInstance = new UnitOfMeasure(name: "meter(s)")
459        saveAndTest(unitOfMeasureInstance)
460
461        //UnitOfMeasure #3
462        unitOfMeasureInstance = new UnitOfMeasure(name: "box(es)")
463        saveAndTest(unitOfMeasureInstance)
464
465        //UnitOfMeasure #4
466        unitOfMeasureInstance = new UnitOfMeasure(name: "litre(s)")
467        saveAndTest(unitOfMeasureInstance)
468
469        //UnitOfMeasure #5
470        unitOfMeasureInstance = new UnitOfMeasure(name: "kilogram(s)")
471        saveAndTest(unitOfMeasureInstance)
472    }
473
474    def createBasePeriods() {
475
476        //Period
477        def periodInstance
478
479        //Period #1
480        periodInstance = new Period(period: "Day(s)")
481        saveAndTest(periodInstance)
482
483        //Period #2
484        periodInstance = new Period(period: "Week(s)")
485        saveAndTest(periodInstance)
486
487        //Period #3
488        periodInstance = new Period(period: "Month(s)")
489        saveAndTest(periodInstance)
490
491        //Period #4
492        periodInstance = new Period(period: "Year(s)")
493        saveAndTest(periodInstance)
494    }
495
496    def createBaseSupplierTypes() {
497
498        // SupplierType
499        def supplierTypeInstance
500
501        // SupplierType #1
502        supplierTypeInstance = new SupplierType(name: "Unknown",
503                                                                    description: "Unknown supplier type")
504        saveAndTest(supplierTypeInstance)
505
506        // SupplierType #2
507        supplierTypeInstance = new SupplierType(name: "OEM",
508                                                                    description: "Original equipment supplier")
509        saveAndTest(supplierTypeInstance)
510
511        // SupplierType #3
512        supplierTypeInstance = new SupplierType(name: "Local",
513                                                                    description: "Local supplier")
514        saveAndTest(supplierTypeInstance)
515    }
516
517    def createBaseManufacturerTypes() {
518
519        // ManufacturerType
520        def manufacturerTypeInstance
521
522        // ManufacturerType #1
523        manufacturerTypeInstance = new ManufacturerType(name: "Unknown",
524                                                                        description: "Unknown manufacturer type")
525        saveAndTest(manufacturerTypeInstance)
526
527        // ManufacturerType #2
528        manufacturerTypeInstance = new ManufacturerType(name: "OEM",
529                                                                        description: "Original equipment manufacturer")
530        saveAndTest(manufacturerTypeInstance)
531
532        // ManufacturerType #3
533        manufacturerTypeInstance = new ManufacturerType(name: "Alternate",
534                                                                        description: "Not original equipment manufacturer")
535        saveAndTest(manufacturerTypeInstance)
536
537    }
538
539    def createBaseAddressTypes() {
540
541        // AddressType
542        def addressTypeInstance
543
544        // AddressType #1
545        addressTypeInstance = new AddressType(name: "Postal",
546                                                                                description: "A postal address.")
547        saveAndTest(addressTypeInstance)
548
549        // AddressType #2
550        addressTypeInstance = new AddressType(name: "Physical",
551                                                                                description: "A physical address.")
552        saveAndTest(addressTypeInstance)
553
554        // AddressType #3
555        addressTypeInstance = new AddressType(name: "Postal & Physical",
556                                                                                description: "An address that is both the postal and physical address.")
557        saveAndTest(addressTypeInstance)
558
559        // AddressType #4
560        addressTypeInstance = new AddressType(name: "Invoice",
561                                                                                description: "An address to send invoices to.")
562        saveAndTest(addressTypeInstance)
563
564        // AddressType #5
565        addressTypeInstance = new AddressType(name: "Delivery",
566                                                                                description: "An address to send deliveries to.")
567        saveAndTest(addressTypeInstance)
568    }
569
570    def createBaseContactTypes() {
571
572        // ContactType
573        def contactTypeInstance
574
575        // ContactType #1
576        contactTypeInstance = new ContactType(name: "Email",
577                                                                                description: "Email address.")
578        saveAndTest(contactTypeInstance)
579
580        // ContactType #2
581        contactTypeInstance = new ContactType(name: "Alternate Email",
582                                                                                description: "Alternate email address.")
583        saveAndTest(contactTypeInstance)
584
585        // ContactType #3
586        contactTypeInstance = new ContactType(name: "Mobile",
587                                                                                description: "Modile phone number.")
588        saveAndTest(contactTypeInstance)
589
590        // ContactType #4
591        contactTypeInstance = new ContactType(name: "Work Phone",
592                                                                                description: "Work phone number.")
593        saveAndTest(contactTypeInstance)
594
595        // ContactType #5
596        contactTypeInstance = new ContactType(name: "Home Phone",
597                                                                                description: "Home phone number.")
598        saveAndTest(contactTypeInstance)
599
600        // ContactType #6
601        contactTypeInstance = new ContactType(name: "Work Fax",
602                                                                                description: "Work fax number.")
603        saveAndTest(contactTypeInstance)
604
605        // ContactType #7
606        contactTypeInstance = new ContactType(name: "Home Fax",
607                                                                                description: "Home fax number.")
608        saveAndTest(contactTypeInstance)
609
610        // ContactType #8
611        contactTypeInstance = new ContactType(name: "Web Site",
612                                                                                description: "Web site address.")
613        saveAndTest(contactTypeInstance)
614
615        // ContactType #9
616        contactTypeInstance = new ContactType(name: "Person",
617                                                                                description: "Contact person.")
618        saveAndTest(contactTypeInstance)
619    }
620
621    def createBaseInventoryItemPurchaseTypes() {
622
623        // InventoryItemPurchaseType
624        def inventoryItemPurchaseTypeInstance
625
626        // InventoryItemPurchaseType #1
627        inventoryItemPurchaseTypeInstance = new InventoryItemPurchaseType(name: "Order Placed",
628                                                                                description: "Order has been placed.")
629        saveAndTest(inventoryItemPurchaseTypeInstance)
630
631        // InventoryItemPurchaseType #2
632        inventoryItemPurchaseTypeInstance = new InventoryItemPurchaseType(name: "Received B/order To Come",
633                                                                                description: "Order has been partially received.")
634        saveAndTest(inventoryItemPurchaseTypeInstance)
635        // InventoryItemPurchaseType #3
636        inventoryItemPurchaseTypeInstance = new InventoryItemPurchaseType(name: "Received Complete",
637                                                                                description: "Order has been partially received.")
638        saveAndTest(inventoryItemPurchaseTypeInstance)
639
640        // InventoryItemPurchaseType #4
641        inventoryItemPurchaseTypeInstance = new InventoryItemPurchaseType(name: "Invoice Approved",
642                                                                                description: "Invoice approved for payment.")
643        saveAndTest(inventoryItemPurchaseTypeInstance)
644    }
645
646    def createDemoSuppliers() {
647
648        // Supplier
649        def supplierInstance
650
651        // Supplier #1
652        supplierInstance = new Supplier(name: "OEM Distributors",
653                                                                        supplierType: SupplierType.get(2))
654        saveAndTest(supplierInstance)
655
656        // Supplier #2
657        supplierInstance = new Supplier(name: "Mex Holdings",
658                                                                        supplierType: SupplierType.get(3))
659        saveAndTest(supplierInstance)
660    }
661
662    def createDemoManufacturers() {
663
664        // Manufacturer
665        def manufacturerInstance
666
667        // Manufacturer #1
668        manufacturerInstance = new Manufacturer(name: "OEM Manufacturer",
669                                                                        manufacturerType: ManufacturerType.get(2))
670        saveAndTest(manufacturerInstance)
671
672        // Manufacturer #2
673        manufacturerInstance = new Manufacturer(name: "Laser Cutting Services Pty",
674                                                                        manufacturerType: ManufacturerType.get(3))
675        saveAndTest(manufacturerInstance)
676    }
677
678    def createDemoProductionReference() {
679
680        // ProductionReference
681        def productionReferenceInstance
682
683        // ProductionReference #1
684        productionReferenceInstance = new ProductionReference(name: "Monday Production")
685        saveAndTest(productionReferenceInstance)
686
687        // ProductionReference #2
688        productionReferenceInstance = new ProductionReference(name: "Tuesday Production")
689        saveAndTest(productionReferenceInstance)
690    }
691
692    def createDemoCostCodes() {
693
694        // CostCode
695        def costCodeInstance
696
697        // CostCode #1
698        costCodeInstance = new CostCode(name: "RM Reelstand")
699        saveAndTest(costCodeInstance)
700
701        // CostCode #2
702        costCodeInstance = new CostCode(name: "CAPEX Reelstand")
703        saveAndTest(costCodeInstance)
704    }
705
706/*********************
707START OF TASK
708*********************/
709
710    def createBaseTaskGroups() {
711        //TaskGroup
712        def taskGroupInstance
713
714        //TaskGroup #1
715        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
716                                                                            description:"Engineering daily activities")
717        saveAndTest(taskGroupInstance)
718
719        //TaskGroup #2
720        taskGroupInstance = new TaskGroup(name:"Production Activites",
721                                                                            description:"Production daily activities")
722        saveAndTest(taskGroupInstance)
723
724        //TaskGroup #3
725        taskGroupInstance = new TaskGroup(name:"New Projects",
726                                                                            description:" ")
727        saveAndTest(taskGroupInstance)
728    }
729
730    def createBaseTaskStatus() {
731
732        //TaskStatus
733        def taskStatusInstance
734
735        taskStatusInstance = new TaskStatus(name:"Not Started") // #1
736        saveAndTest(taskStatusInstance)
737
738        taskStatusInstance = new TaskStatus(name:"In Progress") // #2
739        saveAndTest(taskStatusInstance)
740
741        taskStatusInstance = new TaskStatus(name:"Complete") // #3
742        saveAndTest(taskStatusInstance)
743    }
744
745    def createBaseTaskPriorities() {
746
747        //TaskPriority
748        def taskPriorityInstance
749
750        taskPriorityInstance = new TaskPriority(name:"0 - Immediate") // #1
751        saveAndTest(taskPriorityInstance)
752
753        taskPriorityInstance = new TaskPriority(name:"1 - Very High") // #2
754        saveAndTest(taskPriorityInstance)
755
756        taskPriorityInstance = new TaskPriority(name:"2 - High") // #3
757        saveAndTest(taskPriorityInstance)
758
759        taskPriorityInstance = new TaskPriority(name:"3 - Normal") // #4
760        saveAndTest(taskPriorityInstance)
761
762        taskPriorityInstance = new TaskPriority(name:"4 - Low") // #5
763        saveAndTest(taskPriorityInstance)
764
765        taskPriorityInstance = new TaskPriority(name:"5 - Minor") //  #6
766        saveAndTest(taskPriorityInstance)
767    }
768
769    def createBaseTaskBudgetStatus() {
770
771        //TaskBudgetStatus
772        def taskBudgetStatusInstance
773
774        taskBudgetStatusInstance = new TaskBudgetStatus(name:"Unplanned") // #1
775        saveAndTest(taskBudgetStatusInstance)
776
777        taskBudgetStatusInstance = new TaskBudgetStatus(name:"Planned") // #2
778        saveAndTest(taskBudgetStatusInstance)
779    }
780
781    def createBaseTaskTypes() {
782
783        //TaskType
784        def taskTypeInstance
785
786        taskTypeInstance = new TaskType(name:"Immediate Callout") // #1
787        saveAndTest(taskTypeInstance)
788
789        taskTypeInstance = new TaskType(name:"Unscheduled Breakin") // #2
790        saveAndTest(taskTypeInstance)
791
792        taskTypeInstance = new TaskType(name:"Scheduled") // #3
793        saveAndTest(taskTypeInstance)
794
795        taskTypeInstance = new TaskType(name:"Preventative Maintenance") // #4
796        saveAndTest(taskTypeInstance)
797
798        taskTypeInstance = new TaskType(name:"Project") // #5
799        saveAndTest(taskTypeInstance)
800    }
801
802    def createBaseTaskModificationTypes() {
803
804        //ModificationType
805        def taskModificationTypeInstance
806        taskModificationTypeInstance = new TaskModificationType(name:"Created").save()  // #1
807        taskModificationTypeInstance = new TaskModificationType(name:"Started").save()  // #2
808        taskModificationTypeInstance = new TaskModificationType(name:"Modified").save()  // #3
809        taskModificationTypeInstance = new TaskModificationType(name:"Completed").save()  // #4
810        taskModificationTypeInstance = new TaskModificationType(name:"Reopened").save()  // #5
811        taskModificationTypeInstance = new TaskModificationType(name:"Trashed").save()  // #6
812        taskModificationTypeInstance = new TaskModificationType(name:"Restored").save()  // #7
813        taskModificationTypeInstance = new TaskModificationType(name:"Approved").save()  // #8
814        taskModificationTypeInstance = new TaskModificationType(name:"Renege approval").save()  // #9
815        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Groups)").save()  // #10
816        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Persons)").save()  // #11
817        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Flagged for attention)").save()  // #12
818        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Attention flag cleared)").save()  // #13
819    }
820
821    def createDemoTasks() {
822
823        def taskResult
824        def p = [:]
825
826        //Task #1
827        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
828                taskPriority:TaskPriority.get(2),
829                taskType:TaskType.get(1),
830                leadPerson:Person.get(2),
831                description:"Level sensor not working",
832                comment:"Has been noted as problematic, try recalibrating.",
833                targetStartDate: dateUtilService.today,
834                targetCompletionDate: dateUtilService.today]
835
836        taskResult = taskService.save(p)
837
838        //Task #2
839        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
840                taskPriority:TaskPriority.get(2),
841                taskType:TaskType.get(3),
842                leadPerson:Person.get(5),
843                description:"Some follow-up work",
844                comment:"Some help required",
845                targetStartDate: dateUtilService.tomorrow,
846                targetCompletionDate: dateUtilService.tomorrow,
847                parentTask: Task.list()[0]]
848
849        taskResult = taskService.save(p)
850
851        //Task #3
852        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
853                taskPriority:TaskPriority.get(2),
854                taskType:TaskType.get(3),
855                leadPerson:Person.get(5),
856                description:"A Sub Task can be created from the 'Sub Task' tab.",
857                comment:"Some help required",
858                targetStartDate: dateUtilService.yesterday,
859                targetCompletionDate: dateUtilService.yesterday,
860                parentTask: Task.list()[0]]
861
862        taskResult = taskService.save(p)
863
864        //Task #4
865        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
866                 taskPriority:TaskPriority.get(2),
867                 taskType:TaskType.get(2),
868                 leadPerson:Person.get(4),
869                 description:"Please replace sensor at next available opportunity.",
870                 comment:"Nothing else has worked. So we now require the part to be replaced.",
871                targetStartDate: dateUtilService.today,
872                targetCompletionDate: dateUtilService.oneWeekFromNow,
873                parentTask: Task.list()[0]]
874
875        taskResult = taskService.save(p)
876
877        //Task #5
878        p = [taskGroup:TaskGroup.findByName("Production Activites"),
879                 taskPriority:TaskPriority.get(2),
880                 taskType:TaskType.get(3),
881                 leadPerson:Person.get(6),
882                 description:"Production Task",
883                 comment:"Production task for specific production run or shift",
884                targetStartDate: dateUtilService.today - 6,
885                targetCompletionDate: dateUtilService.today - 6]
886
887        taskResult = taskService.save(p)
888
889        //Task #6
890        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
891                 taskPriority:TaskPriority.get(4),
892                 taskType:TaskType.get(3),
893                 leadPerson:Person.get(4),
894                 description:"This is a recurring preventative maintenance task.",
895                 comment:"If there is a parent task specified then this is a generated sub task, if there is a recurring schedule specified then this is a parent task.",
896                targetStartDate: dateUtilService.today,
897                targetCompletionDate: dateUtilService.today + 30]
898
899        taskResult = taskService.save(p)
900    }
901
902    def createBaseEntryTypes() {
903
904        //EntryType
905        def entryTypeInstance
906
907        entryTypeInstance = new EntryType(name:"Fault") // #1
908        saveAndTest(entryTypeInstance)
909
910        entryTypeInstance = new EntryType(name:"Cause") // #2
911        saveAndTest(entryTypeInstance)
912
913        entryTypeInstance = new EntryType(name:"Work Done") // #3
914        saveAndTest(entryTypeInstance)
915
916        entryTypeInstance = new EntryType(name:"Production Note") // #4
917        saveAndTest(entryTypeInstance)
918
919        entryTypeInstance = new EntryType(name:"Work Request") // #5
920        saveAndTest(entryTypeInstance)
921    }
922
923    def createDemoEntries() {
924
925        def entryResult
926        def p = [:]
927
928        //Entry #1
929        p = [task: Task.list()[0],
930                entryType: EntryType.get(1),
931                comment: "This level sensor is causing us trouble.",
932                durationMinute: 20]
933
934        entryResult = taskService.saveEntry(p)
935
936        //Entry #2
937        p = [task: Task.list()[0],
938                entryType: EntryType.get(3),
939                comment: "Cleaned sensor, see how it goes.",
940                durationMinute: 30]
941
942        entryResult = taskService.saveEntry(p)
943
944        //Entry #3
945        p = [task: Task.list()[0],
946                entryType: EntryType.get(3),
947                comment: "Checked up on it later and sensor is dropping out intermittently, created sub task to replace sensor.",
948                durationMinute: 20]
949
950        entryResult = taskService.saveEntry(p)
951    }
952
953    def createDemoAssignedGroups() {
954
955        def result
956        def p = [:]
957
958        //AssignedGroup #1
959        p = [personGroup: PersonGroup.get(1),
960                task: Task.list()[0],
961                estimatedHour: 2,
962                estimatedMinute: 30]
963        result = assignedGroupService.save(p)
964
965        //AssignedGroup #2
966        p = [personGroup: PersonGroup.get(2),
967                task: Task.list()[0],
968                estimatedHour: 1,
969                estimatedMinute: 0]
970        result = assignedGroupService.save(p)
971    }
972
973    def createDemoAssignedPersons() {
974
975        def result
976        def p = [:]
977
978        //AssignedPerson #1
979        p = [person: Person.get(4),
980                task: Task.list()[0],
981                estimatedHour: 1,
982                estimatedMinute: 20]
983        result = assignedPersonService.save(p)
984
985        //AssignedPerson #2
986        p = [person: Person.get(5),
987                task: Task.list()[0],
988                estimatedHour: 3,
989                estimatedMinute: 30]
990        result = assignedPersonService.save(p)
991    }
992
993    def createDemoTaskRecurringSchedules() {
994
995        //TaskRecurringSchedule
996        def taskRecurringScheduleInstance
997
998        //TaskRecurringSchedule #1
999        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.list()[0],
1000                                                                                                    recurEvery: 1,
1001                                                                                                    recurPeriod: Period.get(2),
1002                                                                                                    nextTargetStartDate: dateUtilService.today,
1003                                                                                                    generateAhead: 1,
1004                                                                                                    taskDuration: 2,
1005                                                                                                    taskDurationPeriod: Period.get(1),
1006                                                                                                    enabled: false)
1007        saveAndTest(taskRecurringScheduleInstance)
1008
1009        //TaskRecurringSchedule #2
1010        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.list()[0],
1011                                                                                                    recurEvery: 1,
1012                                                                                                    recurPeriod: Period.get(1),
1013                                                                                                    nextTargetStartDate: dateUtilService.today,
1014                                                                                                    generateAhead: 1,
1015                                                                                                    taskDuration: 1,
1016                                                                                                    taskDurationPeriod: Period.get(1),
1017                                                                                                    enabled: true)
1018        saveAndTest(taskRecurringScheduleInstance)
1019    }
1020
1021/*************************
1022START OF INVENTORY
1023**************************/
1024
1025    def createDemoInventoryStores() {
1026
1027        //InventoryStore
1028        def inventoryStoreInstance
1029
1030        inventoryStoreInstance = new InventoryStore(site: Site.get(1), name: "Store #1")
1031        saveAndTest(inventoryStoreInstance)
1032
1033        inventoryStoreInstance = new InventoryStore(site: Site.get(2), name: "Store #2")
1034        saveAndTest(inventoryStoreInstance)
1035    }
1036
1037    def createDemoInventoryLocations() {
1038
1039        // InventoryLocation
1040        def inventoryLocation
1041
1042        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "A1-2")
1043        saveAndTest(inventoryLocation)
1044
1045        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(2), name: "C55")
1046        saveAndTest(inventoryLocation)
1047    }
1048
1049    def createDemoInventoryGroups() {
1050
1051        //InventoryGroup
1052        def inventoryGroupInstance
1053
1054        //InventoryGroup #1
1055        inventoryGroupInstance = new InventoryGroup(name: "Misc")
1056        saveAndTest(inventoryGroupInstance)
1057
1058        //InventoryGroup #2
1059        inventoryGroupInstance = new InventoryGroup(name: "Electrical")
1060        saveAndTest(inventoryGroupInstance)
1061
1062        //InventoryGroup #3
1063        inventoryGroupInstance = new InventoryGroup(name: "Mechanical")
1064        saveAndTest(inventoryGroupInstance)
1065
1066        //InventoryGroup #4
1067        inventoryGroupInstance = new InventoryGroup(name: "Production")
1068        saveAndTest(inventoryGroupInstance)
1069    }
1070
1071    def createBaseInventoryTypes() {
1072
1073        //InventoryType
1074        def inventoryTypeInstance
1075
1076        inventoryTypeInstance = new InventoryType(name: "Consumable")
1077        saveAndTest(inventoryTypeInstance)
1078
1079        inventoryTypeInstance = new InventoryType(name: "Repairable")
1080        saveAndTest(inventoryTypeInstance)
1081    }
1082
1083    def createBaseInventoryMovementTypes() {
1084
1085        // InventoryMovementType
1086        def inventoryMovementTypeInstance
1087
1088        // InventoryMovementType #1
1089        inventoryMovementTypeInstance = new InventoryMovementType(name: "Used",
1090                                                                                                                        incrementsInventory: false)
1091        saveAndTest(inventoryMovementTypeInstance)
1092
1093        // InventoryMovementType #2
1094        inventoryMovementTypeInstance = new InventoryMovementType(name: "Repaired",
1095                                                                                                                        incrementsInventory: true)
1096        saveAndTest(inventoryMovementTypeInstance)
1097
1098        // InventoryMovementType #3
1099        inventoryMovementTypeInstance = new InventoryMovementType(name: "Purchase Received",
1100                                                                                                                        incrementsInventory: true)
1101        saveAndTest(inventoryMovementTypeInstance)
1102
1103        // InventoryMovementType #4
1104        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Increase",
1105                                                                                                                        incrementsInventory: true)
1106        saveAndTest(inventoryMovementTypeInstance)
1107
1108        // InventoryMovementType #5
1109        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Decrease",
1110                                                                                                                        incrementsInventory: false)
1111        saveAndTest(inventoryMovementTypeInstance)
1112    }
1113
1114    def createDemoInventoryItems() {
1115
1116        //InventoryItem
1117        def inventoryItemInstance
1118
1119        //InventoryItem #1
1120        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
1121                                                                                    inventoryType: InventoryType.get(1),
1122                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
1123                                                                                    inventoryLocation: InventoryLocation.get(1),
1124                                                                                    name: "Hemp rope",
1125                                                                                    description: "Natural hemp rope.",
1126                                                                                    unitsInStock: 2,
1127                                                                                    reorderPoint: 0)
1128        saveAndTest(inventoryItemInstance)
1129
1130        //InventoryItem #2
1131        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
1132                                                                                    inventoryType: InventoryType.get(1),
1133                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
1134                                                                                    inventoryLocation: InventoryLocation.get(1),
1135                                                                                    name: "Cotton Rope 12mm",
1136                                                                                    description: "A soft natural rope made from cotton.",
1137                                                                                    alternateItems: InventoryItem.get(1),
1138                                                                                    unitsInStock: 2,
1139                                                                                    reorderPoint: 0)
1140        saveAndTest(inventoryItemInstance)
1141
1142        //InventoryItem #3
1143        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
1144                                                                                    inventoryType: InventoryType.get(1),
1145                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
1146                                                                                    inventoryLocation: InventoryLocation.get(2),
1147                                                                                    name: "2305-2RS",
1148                                                                                    description: "Bearing 25x62x24mm double row self aligning ball",
1149                                                                                    unitsInStock: 3,
1150                                                                                    reorderPoint: 2)
1151        saveAndTest(inventoryItemInstance)
1152
1153        //InventoryItem #4
1154        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(2),
1155                                                                                    inventoryType: InventoryType.get(1),
1156                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
1157                                                                                    inventoryLocation: InventoryLocation.get(2),
1158                                                                                    name: "L1592-K10",
1159                                                                                    description: "10kW contactor",
1160                                                                                    unitsInStock: 4,
1161                                                                                    reorderPoint: 0)
1162        saveAndTest(inventoryItemInstance)
1163
1164        //InventoryItem #5
1165        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
1166                                                                                    inventoryType: InventoryType.get(1),
1167                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
1168                                                                                    inventoryLocation: InventoryLocation.get(2),
1169                                                                                    name: "6205-ZZ",
1170                                                                                    description: "Bearing 25x52x15mm single row ball shielded",
1171                                                                                    unitsInStock: 5,
1172                                                                                    reorderPoint: 2)
1173        saveAndTest(inventoryItemInstance)
1174    }
1175
1176/*******************
1177START OF ASSET
1178*******************/
1179
1180    def createDemoLifePlan() {
1181
1182        //LifePlan
1183        def lifeplanInstance
1184
1185        lifeplanInstance = new LifePlan(name: "Initial Plan")
1186        saveAndTest(lifeplanInstance)
1187    }
1188
1189    def createBaseExtenededAttributeTypes() {
1190
1191        //ExtendedAttributeType
1192        def extendedAttributeTypeInstance
1193
1194        //ExtendedAttributeType #1
1195        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Model Number")
1196        saveAndTest(extendedAttributeTypeInstance)
1197
1198        //ExtendedAttributeType #2
1199        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Purchase Cost")
1200        saveAndTest(extendedAttributeTypeInstance)
1201
1202        //ExtendedAttributeType #3
1203        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Serial Number")
1204        saveAndTest(extendedAttributeTypeInstance)
1205
1206        //ExtendedAttributeType #4
1207        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Manufactured Date")
1208        saveAndTest(extendedAttributeTypeInstance)
1209
1210        //ExtendedAttributeType #5
1211        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Location Description")
1212        saveAndTest(extendedAttributeTypeInstance)
1213
1214        //ExtendedAttributeType #6
1215        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Cost Centre")
1216        saveAndTest(extendedAttributeTypeInstance)
1217
1218        //ExtendedAttributeType #7
1219        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Cost Code")
1220        saveAndTest(extendedAttributeTypeInstance)
1221
1222        //ExtendedAttributeType #8
1223        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Manufacturer's Number")
1224        saveAndTest(extendedAttributeTypeInstance)
1225
1226        //ExtendedAttributeType #9
1227        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Inventory Number")
1228        saveAndTest(extendedAttributeTypeInstance)
1229    }
1230
1231    def createBaseMaintenancePolicies() {
1232
1233        //MaintenancePolicy
1234        def maintenancePolicyInstance
1235
1236        //MaintenancePolicy #1
1237        maintenancePolicyInstance = new MaintenancePolicy(name: "Fixed Time")
1238        saveAndTest(maintenancePolicyInstance)
1239
1240        //MaintenancePolicy #2
1241        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Online")
1242        saveAndTest(maintenancePolicyInstance)
1243
1244        //MaintenancePolicy #3
1245        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Offline")
1246        saveAndTest(maintenancePolicyInstance)
1247
1248        //MaintenancePolicy #4
1249        maintenancePolicyInstance = new MaintenancePolicy(name: "Design Out")
1250        saveAndTest(maintenancePolicyInstance)
1251
1252        //MaintenancePolicy #5
1253        maintenancePolicyInstance = new MaintenancePolicy(name: "Operate To Failure")
1254        saveAndTest(maintenancePolicyInstance)
1255
1256        //MaintenancePolicy #6
1257        maintenancePolicyInstance = new MaintenancePolicy(name: "Regulatory Requirement")
1258        saveAndTest(maintenancePolicyInstance)
1259
1260        //MaintenancePolicy #7
1261        maintenancePolicyInstance = new MaintenancePolicy(name: "Hidden Function Test")
1262        saveAndTest(maintenancePolicyInstance)
1263    }
1264
1265    def createDemoTaskProcedure() {
1266
1267        //TaskProcedure
1268        def taskProcedureInstance
1269
1270        taskProcedureInstance = new TaskProcedure(name: "Daily check")
1271        saveAndTest(taskProcedureInstance)
1272        taskProcedureInstance.addToTasks(Task.list()[0])
1273    }
1274
1275    def createDemoMaintenanceActions() {
1276
1277        //MaintenanceAction
1278        def maintenanceActionInstance
1279
1280        //MaintenanceAction #1
1281        maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, activate E-stops S1-S12 and ensure machine cannot run",
1282                                                                                                        procedureStepNumber: 1,
1283                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1284                                                                                                        taskProcedure: TaskProcedure.get(1))
1285        saveAndTest(maintenanceActionInstance)
1286
1287        //MaintenanceAction #2
1288        maintenanceActionInstance = new MaintenanceAction(description: "Do more pushups",
1289                                                                                                        procedureStepNumber: 2,
1290                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1291                                                                                                        taskProcedure: TaskProcedure.get(1))
1292        saveAndTest(maintenanceActionInstance)
1293
1294        //MaintenanceAction #3
1295        maintenanceActionInstance = new MaintenanceAction(description: "Ok just one more pushup",
1296                                                                                                        procedureStepNumber: 3,
1297                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1298                                                                                                        taskProcedure: TaskProcedure.get(1))
1299        saveAndTest(maintenanceActionInstance)
1300    }
1301
1302    def createDemoSections() {
1303
1304        //Section
1305        def sectionInstance
1306
1307        //Section #1
1308        sectionInstance = new Section(name: "Press",
1309                                                                description: "Press Section",
1310                                                                site: Site.get(3),
1311                                                                department: Department.get(1))
1312        saveAndTest(sectionInstance)
1313
1314        //Section #2
1315        sectionInstance = new Section(name: "CSM-Delig",
1316                                                                description: "Pulp Delignification",
1317                                                                site: Site.get(1),
1318                                                                department: Department.get(2))
1319        saveAndTest(sectionInstance)
1320
1321        //Section #3
1322        sectionInstance = new Section(name: "CSM-Aux",
1323                                                                description: "Auxilliary Section",
1324                                                                site: Site.get(1),
1325                                                                department: Department.get(1))
1326        saveAndTest(sectionInstance)
1327    }
1328
1329    def createDemoAssetTree() {
1330
1331        //Asset
1332        def assetInstance
1333
1334        //Asset #1
1335        def assetInstance1 = new Asset(name: "Print Tower 22",
1336                                                                description: "Complete Printing Asset #22",
1337                                                                section: Section.get(1))
1338        saveAndTest(assetInstance1)
1339//        assetInstance.addToMaintenanceActions(MaintenanceAction.get(1))
1340
1341        //Asset #2
1342        def assetInstance2 = new Asset(name: "Print Tower 21",
1343                                                                description: "Complete Printing Asset #21",
1344                                                                section: Section.get(1))
1345        saveAndTest(assetInstance2)
1346
1347        //Asset #3
1348        def assetInstance3 = new Asset(name: "Print Tower 23",
1349                                                                description: "Complete Printing Asset #23",
1350                                                                section: Section.get(1))
1351        saveAndTest(assetInstance3)
1352
1353        //Asset #4
1354        def assetInstance4 = new Asset(name: "C579",
1355                                                                description: "RO #1",
1356                                                                section: Section.get(2))
1357        saveAndTest(assetInstance4)
1358
1359        //AssetSubItem
1360        def assetSubItemInstance
1361
1362        //AssetSubItem #1 Level1
1363        def assetSubItemInstance1 = new AssetSubItem(name: "Print Tower",
1364                                                                                            description: "Common sub asset.")
1365        saveAndTest(assetSubItemInstance1)
1366
1367        // Add assetSubItemInstance1 to some assets.
1368        assetInstance1.addToAssetSubItems(assetSubItemInstance1)
1369        assetInstance2.addToAssetSubItems(assetSubItemInstance1)
1370        assetInstance3.addToAssetSubItems(assetSubItemInstance1)
1371
1372        //AssetSubItem #2 Level1
1373        def assetSubItemInstance2 = new AssetSubItem(name: "C579-44",
1374                                                                                            description: "Tanks and towers")
1375        saveAndTest(assetSubItemInstance2)
1376
1377        // Add assetSubItemInstance2 to some assets.
1378        assetInstance4.addToAssetSubItems(assetSubItemInstance2)
1379
1380        //AssetSubItem #3 Level1
1381        def assetSubItemInstance3 = new AssetSubItem(name: "C579-20",
1382                                                                                            description: "Control Loops")
1383        saveAndTest(assetSubItemInstance3)
1384
1385        // Add assetSubItemInstance3 to some assets.
1386        assetInstance4.addToAssetSubItems(assetSubItemInstance3)
1387
1388        //AssetSubItem #4 Level2
1389        assetSubItemInstance = new AssetSubItem(name: "C579-TK-0022",
1390                                                                                            description: "Blow Tank",
1391                                                                                            parentItem: AssetSubItem.get(2))
1392        saveAndTest(assetSubItemInstance)
1393
1394        //AssetSubItem #5 Level2
1395        assetSubItemInstance = new AssetSubItem(name: "C579-TK-0023",
1396                                                                                            description: "Reactor Tower",
1397                                                                                            parentItem: AssetSubItem.get(2))
1398        saveAndTest(assetSubItemInstance)
1399
1400        //AssetSubItem #6 Level2
1401        assetSubItemInstance = new AssetSubItem(name: "Print Unit",
1402                                                                                    description: "Print Unit - Common Level 2 sub item.",
1403                                                                                    parentItem: AssetSubItem.get(1))
1404        saveAndTest(assetSubItemInstance)
1405
1406        //AssetSubItem #7 Level2
1407        assetSubItemInstance = new AssetSubItem(name: "1925365",
1408                                                                                    description: "Agitator",
1409                                                                                    parentItem: AssetSubItem.get(4))
1410        saveAndTest(assetSubItemInstance)
1411
1412        //AssetSubItem #8 Level2
1413        assetSubItemInstance = new AssetSubItem(name: "1925366",
1414                                                                                    description: "Scraper",
1415                                                                                    parentItem: AssetSubItem.get(4))
1416        saveAndTest(assetSubItemInstance)
1417
1418        //AssetSubItem #9 Level3
1419        assetSubItemInstance = new AssetSubItem(name: "Motor",
1420                                                                                    description: "Motor - Level 3 sub item",
1421                                                                                    parentItem: AssetSubItem.get(6))
1422        saveAndTest(assetSubItemInstance)
1423
1424        //AssetSubItem #10 Level3
1425        assetSubItemInstance = new AssetSubItem(name: "Gearbox",
1426                                                                                    description: "Gearbox - Level 3 sub item, gearbox",
1427                                                                                    parentItem: AssetSubItem.get(6))
1428        saveAndTest(assetSubItemInstance)
1429
1430        //AssetSubItem #11 Level4
1431        assetSubItemInstance = new AssetSubItem(name: "DS Bearing",
1432                                                                                    description: "Drive Side Bearing",
1433                                                                                    parentItem: AssetSubItem.get(9))
1434        saveAndTest(assetSubItemInstance)
1435
1436        //AssetSubItem #12 Level4
1437        assetSubItemInstance = new AssetSubItem(name: "NDS Bearing",
1438                                                                                    description: "Non Drive Side Bearing",
1439                                                                                    parentItem: AssetSubItem.get(9))
1440        saveAndTest(assetSubItemInstance)
1441
1442        //AssetSubItem #13 Level2
1443        assetSubItemInstance = new AssetSubItem(name: "C579-F-0001",
1444                                                                                    description: "Weak Caustic Flow",
1445                                                                                    parentItem: AssetSubItem.get(3))
1446        saveAndTest(assetSubItemInstance)
1447
1448        //AssetSubItem #14 Level3
1449        assetSubItemInstance = new AssetSubItem(name: "C579-FT-0002",
1450                                                                                    description: "Weak Caustic Flow Transmitter",
1451                                                                                    parentItem: AssetSubItem.get(13))
1452        saveAndTest(assetSubItemInstance)
1453
1454        //AssetSubItem #15 Level3
1455        assetSubItemInstance = new AssetSubItem(name: "C579-PT-0003",
1456                                                                                    description: "Weak Caustic Pressure Transmitter",
1457                                                                                    parentItem: AssetSubItem.get(13))
1458        saveAndTest(assetSubItemInstance)
1459    } // createDemoAssetTree()
1460
1461    def createDemoAssetExtenedAttributes() {
1462
1463        //AssetExtendedAttribute
1464        def assetExtendedAttributeInstance
1465
1466        //AssetExtendedAttribute #1
1467        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "PU Mark 2",
1468                                                                                                                    asset: Asset.get(1),
1469                                                                                                                    extendedAttributeType: ExtendedAttributeType.get(1))
1470        saveAndTest(assetExtendedAttributeInstance)
1471
1472        //AssetExtendedAttribute #2
1473        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "On the far side of Tank 5",
1474                                                                                                                    asset: Asset.get(1),
1475                                                                                                                    extendedAttributeType: ExtendedAttributeType.get(5))
1476        saveAndTest(assetExtendedAttributeInstance)
1477    }
1478
1479
1480/****************************************
1481Call this function instead of .save()
1482*****************************************/
1483    private boolean saveAndTest(object) {
1484        if(!object.save()) {
1485//             DemoDataSuccessful = false
1486            log.error "'${object}' failed to save!"
1487            log.error object.errors
1488            return false
1489        }
1490        return true
1491    }
1492}
Note: See TracBrowser for help on using the repository browser.