import models._
import beans._
import forms._
+import utils._
+import services._
import scala.collection.mutable.ArrayBuffer
object PartsListController extends Controller{
var partBuffer = ArrayBuffer[PartsListBean]()
inTransaction {
for (parentPart <- PartsListDb.parts.where(p => p.name like key + "%" )) {
- Recursion(parentPart, partBuffer, opt)
+ Recursion().down(parentPart, partBuffer, opt)
}
}
val row = Integer.decode(Messages("list.row"))
var partBuffer = ArrayBuffer[PartsListBean]()
inTransaction {
for (childPart <- PartsListDb.parts.where(p => p.name like key +"%")) {
- UpRecursion(childPart, partBuffer, opt)
+ Recursion().up(childPart, partBuffer, opt)
}
}
val row = Integer.decode(Messages("list.row"))
Ok(views.html.uppartslistshow(partBuffer.drop(page*row).take(row), opt, page, partBuffer.size, key))
}
-
- def Recursion(parentPart:Part, partBuffer:ArrayBuffer[PartsListBean], opt:Int):Unit = {
- for(child <- parentPart.parts) {
- if(parentPart.partRelation(child.id).delDcId==0) {
- if(opt!=3 || opt==3 && child.name.startsWith("Unit")) {
- partBuffer += PartsListBean(parentPart.name, child.name, parentPart.partRelation(child.id).quantity)
- }
- if(opt==1 || opt==2 && !child.name.startsWith("Part") || opt==3) {
- Recursion(child, partBuffer, opt)
- }
- }
- }
- }
-
- def UpRecursion(childPart:Part, partBuffer:ArrayBuffer[PartsListBean], opt:Int):Unit = {
- if(childPart.parentParts.size == 0 && opt == 2) {
- partBuffer += PartsListBean("", childPart.name,0)
- }
- for(parent <- childPart.parentParts) {
- if(parent.partRelation(childPart.id).delDcId == 0 ) {
- if(opt != 2) {
- partBuffer += PartsListBean(childPart.name, parent.name, parent.partRelation(childPart.id).quantity)
- }
- if(opt != 1) {
- UpRecursion(parent, partBuffer, opt)
- }
- }
- }
- }
def createRelation(parent:String) = Action {implicit request =>
Ok(views.html.createRelationForm(relationForm.fill(new PartsListBean(parent, "", 0)),""))
// 子品番正展開配列
var partBuffer = ArrayBuffer[PartsListBean]()
for (parentPart <- PartsListDb.parts.where(p => p.name === data.child )) {
- Recursion(parentPart, partBuffer, 1)
+ Recursion().down(parentPart, partBuffer, 1)
}
// 親品番逆展開配列
var upPartBuffer = ArrayBuffer[PartsListBean]()
for (childPart <- PartsListDb.parts.where(p => p.name === data.parent)) {
- UpRecursion(childPart, upPartBuffer, 0)
+ Recursion().up(childPart, upPartBuffer, 0)
}
var message:String = null
// 部品表ループチェック
}
}
if(message == null) {
- val pr = getPart(data.parent).parts.associate(getPart(data.child))
+ val pr = PartManager().getByName(data.parent).parts.associate(PartManager().getByName(data.child))
pr.quantity = data.quantity
PartsListDb.partRelations.update(pr)
Home.flashing("success" -> "Relation %s has been created".format(data.parent))
if(data.child == childName) {
//PartRelation データ更新処理
inTransaction {
- val pr = getPart(data.parent).parts.assign(getPart(data.child))
+ val pr = PartManager().getByName(data.parent).parts.assign(PartManager().getByName(data.child))
pr.quantity = data.quantity
PartsListDb.partRelations.update(pr)
Home.flashing("success" -> "Relation %s has been created".format(data.parent))
} else {
//PartRelation キー情報(ChildId)の更新なので削除/登録処理
inTransaction {
- PartsListDb.partRelations.deleteWhere(tpr => tpr.parentId === getPart(data.parent).id
- and tpr.childId === getPart(childName).id)
- val pr = getPart(data.parent).parts.associate(getPart(data.child))
+ PartsListDb.partRelations.deleteWhere(tpr => tpr.parentId === PartManager().getByName(data.parent).id
+ and tpr.childId === PartManager().getByName(childName).id)
+ val pr = PartManager().getByName(data.parent).parts.associate(PartManager().getByName(data.child))
pr.quantity = data.quantity
PartsListDb.partRelations.update(pr)
Home.flashing("success" -> "Relation %s has been created".format(data.parent))
def relationDelete(parentName:String, childName:String) = Action {
inTransaction {
- val parent = getPart(parentName)
- val child = getPart(childName)
+ val parent = PartManager().getByName(parentName)
+ val child = PartManager().getByName(childName)
PartsListDb.partRelations.deleteWhere(pl => pl.parentId === parent.id and pl.childId === child.id)
Home.flashing("success" -> "Relation %s has been deleted".format(parent.name + "/" + child.name))
}
data => {
inTransaction {
val dc = PartsListDb.designChanges.where(dc => dc.dcNo === data.dcno).head
- val parent = getPart(data.partsListBeanBefore.parent)
+ val parent = PartManager().getByName(data.partsListBeanBefore.parent)
if(!data.partsListBeanBefore.child.isEmpty()) {
- val delRelation = parent.parts.assign(getPart(data.partsListBeanBefore.child))
+ val delRelation = parent.parts.assign(PartManager().getByName(data.partsListBeanBefore.child))
dc.delPartRelation.assign(delRelation)
delRelation.dcSeq = dc.dcSeq
PartsListDb.partRelations.update(delRelation)
}
if(!data.partsListBeanAfter.child.isEmpty()) {
- val addRelation = parent.parts.associate(getPart(data.partsListBeanAfter.child))
+ val addRelation = parent.parts.associate(PartManager().getByName(data.partsListBeanAfter.child))
dc.addPartRelation.associate(addRelation)
addRelation.quantity = data.partsListBeanAfter.quantity
addRelation.dcSeq = dc.dcSeq
}
)
}
-
- def getPart(partNo:String):Part = {
- PartsListDb.parts.where(p => p.name === partNo).head
- }
-
+
def generatePartsListBean(parentNo:String, childNo:String):PartsListBean = {
if(childNo.isEmpty()) {
PartsListBean(parentNo, childNo, 0)
} else {
- PartsListBean(parentNo, childNo, getPart(parentNo).partRelation(getPart(childNo).id).quantity)
+ PartsListBean(parentNo, childNo, PartManager().getByName(parentNo).partRelation(PartManager().getByName(childNo).id).quantity)
}
}
--- /dev/null
+package utils
+import models._
+import beans._
+import scala.collection.mutable.ArrayBuffer
+case class Recursion() {
+
+ def down(parentPart: Part, partBuffer: ArrayBuffer[PartsListBean], opt: Int):Unit = {
+ for(child <-parentPart.parts) {
+ if(parentPart.partRelation(child.id).delDcId==0) {
+ if(opt!=3 || opt==3 && child.name.startsWith("Unit")) {
+ partBuffer += PartsListBean(parentPart.name, child.name, parentPart.partRelation(child.id).quantity)
+ }
+ if(opt==1 || opt==2 && !child.name.startsWith("Part") || opt==3) {
+ Recursion().down(child, partBuffer, opt)
+ }
+ }
+ }
+ }
+
+ def up(childPart: Part, partBuffer: ArrayBuffer[PartsListBean], opt: Int):Unit = {
+ if(childPart.parentParts.size == 0 && opt == 2) {
+ partBuffer += PartsListBean("", childPart.name,0)
+ }
+ for(parent <- childPart.parentParts) {
+ if(parent.partRelation(childPart.id).delDcId == 0 ) {
+ if(opt != 2) {
+ partBuffer += PartsListBean(childPart.name, parent.name, parent.partRelation(childPart.id).quantity)
+ }
+ if(opt != 1) {
+ Recursion().up(parent, partBuffer, opt)
+ }
+ }
+ }
+
+ }
+
+}
\ No newline at end of file