6 import play.api.data.Forms._
11 import org.squeryl.PrimitiveTypeMode._
12 import org.squeryl.annotations.Column
13 import scala.collection.mutable.ArrayBuffer
15 object DesignChangeController extends Controller{
16 val Home = Redirect(routes.DesignChangeController.list(0,""))
18 val designChangeRegistForm = Form(
20 "dcNo" -> nonEmptyText,
21 "dcDescription" -> nonEmptyText
22 )(DesignChangeForm.apply)(DesignChangeForm.unapply)
25 def create = Action { implicit request =>
26 Ok(views.html.createDesignChangeForm(designChangeRegistForm))
29 def designChangeCoverRegistration() = Action { implicit request =>
30 designChangeRegistForm.bindFromRequest.fold(
31 formWithErrors => BadRequest(views.html.createDesignChangeForm(formWithErrors)),
34 PartsListDb.designChanges.insert(DesignChange(designChange.dcNo, designChange.dcDescription, 1))
36 Home.flashing("success" -> "Design Change %s has been created".format(designChange.dcNo))
41 def designChangeCoverModify(id: Long) = Action { implicit request =>
43 var designChangeBuffer = ArrayBuffer[DesignChangeListBean]()
44 val designChange = getDesignChange(id)
45 val designChangeForm = DesignChangeForm(designChange.dcNo, designChange.dcDescription)
46 for(delPart <- designChange.delPartRelation) {
47 for(addPart <- designChange.addPartRelation) {
48 if(delPart.dcSeq == addPart.dcSeq) {
49 designChangeBuffer += DesignChangeListBean(delPart.dcSeq, delPart.parent.head.name, delPart.child.head.name, addPart.parent.head.name, addPart.child.head.name)
53 for(addPart <- designChange.addPartRelation) {
55 for(designChange <- designChangeBuffer) {
56 if(designChange.dcSeq == addPart.dcSeq) {
61 designChangeBuffer += DesignChangeListBean(addPart.dcSeq, "", "", addPart.parent.head.name, addPart.child.head.name)
64 Ok(views.html.updateDesignChangeForm(designChangeRegistForm.fill(designChangeForm), id, designChangeBuffer, designChange.addPartRelation))
68 def designChangeCoverModification(id: Long) = Action{ implicit request =>
69 designChangeRegistForm.bindFromRequest.fold(
70 formWithErrors => BadRequest(views.html.updateDesignChangeForm(formWithErrors, id, null, null)),
73 val updDesignChange = getDesignChange(id)
74 updDesignChange.dcNo = designChange.dcNo
75 updDesignChange.dcDescription = designChange.dcDescription
76 PartsListDb.designChanges.update(updDesignChange)
78 Home.flashing("success" -> "Design Change %s has been created".format(designChange.dcNo))
83 def list(page: Int, key: String) = Action { implicit request =>
85 val row = Integer.decode(Messages("list.row"))
86 val buff = PartsListDb.designChanges.where(dc => dc.dcNo like key + "%")
87 Ok(views.html.designchangelist(buff.page(page*row, row), buff.size, key, page))
91 def designChangeCancel(id: Long) = Action {
93 val cancelDesignChange = getDesignChange(id)
94 PartsListDb.partRelations.deleteWhere(pr => pr.addDcId === cancelDesignChange.id)
95 PartsListDb.partRelations.update(pr =>
96 where(pr.delDcId === cancelDesignChange.id)
97 set(pr.delDcId := 0L))
98 Redirect(routes.DesignChangeController.designChangeCoverModify(id))
102 def getDesignChange(id: Long):DesignChange = {
103 PartsListDb.designChanges.where(dc => dc.id === id).head