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

Last change on this file since 412 was 402, checked in by gav, 15 years ago

Add contacts to Person, Supplier, Manufacturer and Site.

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