/app/controllers.scala
Scala | 118 lines | 97 code | 15 blank | 6 comment | 19 complexity | ab6f7f3ad433b26122ff496a9d430038 MD5 | raw file
- package controllers
- import play._
- import play.mvc._
- import models._
- import scala.io.Source._
- import com.mongodb.casbah.Imports._
- import java.util.Locale
- import java.text._
- //http://api.mongodb.org/scala/casbah/current/tutorial.html
- //http://api.mongodb.org/scala/casbah/2.1.5.0/
- object RUC extends Controller {
- import views.Application._
- def index = {
- // val ret = loadRucs
- // Logger.info(ret);
- // flash.clear
- results(null)
- }
- lazy val db = {
- MongoConnection()
- }
- lazy val rucs = {
- db("ruc")("Ruc")
- }
- def loadRucs(): String = {
- rucs.drop()
- var ret = "nada"
- Logger.info("hi: " + rucs.count)
- var l = 0
- var t0 = System.nanoTime();
- var t1 = System.nanoTime();
- if (rucs.count == 0) {
- // cat *.txt > ruc.txt
- val fileName = "conf/rucs/ruc.txt"
- val lines = fromFile(fileName).getLines
- io.Source.fromFile(fileName).getLines.foreach { line =>
- var strArr = line.split("\\|");
- if (0 == l % 100000) {
- Logger.info("" + l + " (" + ((System.nanoTime() - t1) / 1000000000.0) + ") : " + line);
- t1 = System.nanoTime();
- }
- val newObj = MongoDBObject("ruc" -> strArr(0),
- "name" -> strArr(1),
- "dv" -> strArr(2),
- "rucAntique" -> strArr(3))
- rucs.insert(newObj)
- l += 1
- }
- ret = "Inserted " + l + " recs in " + ((System.nanoTime() - t0) / 1000000000.0) + " secs "
- }
- return ret
- }
- import com.codahale.jerkson.Json._
-
- def find4Ruc = {
- val ruc = params.get("ruc")
- val q = MongoDBObject("ruc" -> ruc)
- var rucObj: MongoDBObject = null
- rucs.findOne(q).foreach { x => rucObj = x }
- if(rucObj == null) flash += ("error" -> "Nada encontrado!")
- Logger.info("rucObj: " + rucObj);
- val serialized: String = generate(rucObj)
- Logger.info("serialized: " + serialized);
- serialized
- }
-
- def forRuc = {
- val ruc = params.get("ruc")
- var rucObj: MongoDBObject = null
- flash.clear()
- if (ruc == "") {
- flash += ("error" -> "Oops, no ruc!")
- results(null)
- } else {
- val q = MongoDBObject("ruc" -> ruc)
- rucs.findOne(q).foreach { x => rucObj = x }
- if(rucObj == null) flash += ("error" -> "Nada encontrado!")
- results(rucObj)
- }
- }
-
- def forName = {
- val name = params.get("name")
- var rucObj: MongoDBObject = null
- flash.clear()
- if (name == "") {
- flash += ("error" -> "Oops, no nombre!")
- results(null)
- } else {
- val q = MongoDBObject("name" -> ("(?i).*" + name + ".*").r)
- rucs.findOne(q).foreach { x => rucObj = x }
- if(rucObj == null) flash += ("error" -> "Nada encontrado!")
- results(rucObj)
- }
- }
-
- private def results(ruc: MongoDBObject) = {
- val df = NumberFormat.getInstance(Locale.GERMAN).asInstanceOf[DecimalFormat]
- df.applyPattern( "#,###,##0" );
- val count = df.format(rucs.count)
- if (ruc == null) {
- html.index(count, null, null, null)
- } else {
- html.index(count, ruc.get("ruc"), ruc.get("name"), ruc.get("dv"))
- }
- }
- }