diff --git a/app/models/models.scala b/app/models/models.scala index 027d814..9d359c0 100644 --- a/app/models/models.scala +++ b/app/models/models.scala @@ -401,8 +401,9 @@ class RankingTableToJson(implicit in: Injections) { * * * @param decoder 対象のサマリーシート + * @param in 依存性注入 */ -class SheetDecoderToJson(decoder: SheetDecoder) { +class SheetDecoderToJson(decoder: SheetDecoder)(implicit in: Injections) { val postal = "[\\u3012\\u3020]\\s*?\\d{3}-?\\d{4}".r /** @@ -416,9 +417,22 @@ class SheetDecoderToJson(decoder: SheetDecoder) { "post" -> post(decoder.getString("ADDRESS"))._1.trim, "addr" -> post(decoder.getString("ADDRESS"))._2.trim, "mail" -> decoder.getString("EMAIL"), - "note" -> decoder.getString("COMMENTS") + "note" -> decoder.getString("COMMENTS"), + "sect" -> section.name(), + "city" -> section.getCityBase().recommend(decoder.getString("OPPLACE")).name(), ))) + /** + * 指定された名前に適合する部門を検索して返します。 + * + * @return 部門 + */ + def section: Section = { + val name = decoder.getString("CATEGORYNAME") + val code = decoder.getString("CATEGORYCODE") + in.rule.similar(Option(name).getOrElse(code)) + } + /** * 住所から郵便番号と残りの文字列を抽出します。 * diff --git a/app/tasks/tasks.scala b/app/tasks/tasks.scala index 495a9f4..106cd0b 100644 --- a/app/tasks/tasks.scala +++ b/app/tasks/tasks.scala @@ -188,8 +188,9 @@ class VerifyTask(implicit req: Request[AnyContent], in: Injections) { * * * @param req サマリーシートを含むリクエスト + * @param in 依存性注入 */ -class FillInTask(implicit req: Request[AnyContent]) { +class FillInTask(implicit req: Request[AnyContent], in: Injections) { /** * サマリーシートを読み取るデコーダです。 */ diff --git a/app/views/comps/file.scala.html b/app/views/comps/file.scala.html index 5ac7a1a..5293c9f 100644 --- a/app/views/comps/file.scala.html +++ b/app/views/comps/file.scala.html @@ -46,12 +46,18 @@