7 import play.api.data.Forms._
9 import models.services._
13 import org.squeryl.PrimitiveTypeMode._
14 import scala.collection.mutable.ArrayBuffer
16 object PartsMasterController extends Controller{
18 val Home = Redirect(routes.PartsMasterController.list(0,""))
20 val partRegistForm = Form(
22 "name" -> nonEmptyText,
25 )(AtachForm.apply)(AtachForm.unapply),
26 "projectName" -> nonEmptyText,
28 )(PartForm.apply)(PartForm.unapply)
31 def create = Action { implicit request =>
32 Ok(views.html.createPartForm(partRegistForm))
35 def partRegistration() = Action(parse.multipartFormData) { implicit request =>
36 partRegistForm.bindFromRequest.fold(
37 formWithErrors => BadRequest(views.html.createPartForm(formWithErrors)),
38 // formWithErrors => BadRequest(views.html.error(formWithErrors)),
41 val newPart = PartManager().insert(part)
42 request.body.file("atach").map { atach =>
43 AtachManager().uploadAtach(atach, newPart.atach.grpName, newPart.id, 0, 0)
45 Home.flashing("success" -> "Part %s has been created".format(part.name))
51 def update(id:Long) = Action { implicit request =>
53 val part = PartManager().getById(id)
54 val partForm = PartForm(part.name, null, part.project.assign(part.project.head).name, part.price)
55 Ok(views.html.updatePartForm(partRegistForm.fill(partForm), id, part))
59 def partModification(id:Long) = Action(parse.multipartFormData) { implicit request =>
60 partRegistForm.bindFromRequest.fold(
61 formWithErrors => BadRequest(views.html.updatePartForm(formWithErrors, id , null)),
64 val updPart = PartManager().update(part, id)
65 request.body.file("atach").map { atach =>
66 AtachManager().uploadAtach(atach, part.atach.grpName, updPart.id, 0, 0)
68 Home.flashing("success" -> "Part %s has been created".format(part.name))
74 def partDelete(id:Long) = Action {
76 PartManager().delete(id)
77 Home.flashing("success" -> "Part %s has been created".format(id))
81 def list(page:Int, key:String) = Action { implicit request =>
83 val row = Integer.decode(Messages("list.row"))
84 val buff = PartManager().getByLikeName(key)
85 Ok(views.html.partsmastershow(buff.page(page*row, row), buff.size, key, page))