OSDN Git Service

Refactoring to PartsListController
[open-pdm-light/PartList.git] / PartsList / PartsList / app / models / services / PartRelationManager.scala
1 package models.services
2 import beans._
3 import models._
4 import org.squeryl._
5 import org.squeryl.PrimitiveTypeMode._
6 case class PartRelationManager() {
7   def insert(data:PartsListBean) = {
8     val pr = PartManager().getByName(data.parent).parts.associate(PartManager().getByName(data.child))
9     // insertの後、attributeの更新
10     updatePr(pr, data)
11   }
12   
13   def update(data:PartsListBean, childName:String) = {
14     if(data.child == childName) {
15       //PartRelation データ更新処理
16       val pr = PartManager().getByName(data.parent).parts.assign(PartManager().getByName(data.child))
17       updatePr(pr, data)
18     } else {
19       //PartRelation キー情報(ChildId)の更新なので削除/登録処理
20       delete(data, childName)
21       insert(data)
22       
23      }
24   }
25   
26   def updatePr(pr: PartRelation, data: PartsListBean) = {
27     pr.quantity = data.quantity
28     PartsListDb.partRelations.update(pr)    
29   }
30   
31   def delete(data: PartsListBean, childName: String) = {
32       PartsListDb.partRelations.deleteWhere(tpr => tpr.parentId === PartManager().getByName(data.parent).id 
33           and tpr.childId === PartManager().getByName(childName).id)    
34   }
35   
36 }