Advertisement
Guest User

Untitled

a guest
Apr 5th, 2014
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.78 KB | None | 0 0
  1. def getOfferWithWarnings( studentId: Int ) =  {
  2.  
  3.             //val lapse = Date.month()
  4.             //val offerIds = Oferta.all().map( x => x.idAsignatura.get.toInt )
  5.  
  6.  
  7.  
  8.             var suggest = List[(Asignatura, String)]()
  9.  
  10.             val cam = Kardex.calculateCAM( studentId )
  11.             Logger.info( cam.toString )
  12.  
  13.  
  14.  
  15.             val failedSubjects = Kardex.getAllNotAproved( studentId )
  16.             val failedSubjectsMap = failedSubjects.groupBy( x => x.asignaturaId.get.toInt )
  17.  
  18.             val keysFailedSubjects = failedSubjects.map( x => x.asignaturaId.get.toInt ).distinct
  19.  
  20.             if( keysFailedSubjects.size <= cam ){
  21.                 keysFailedSubjects.foreach( x => {
  22.                         val asignatura = Asignatura.findById(x).get
  23.                         val extraordinariesBurned = failedSubjectsMap( x ).filter( subject => subject.tipo == EXTRAORDINARY )
  24.                         val daysToDoomsday = failedSubjectsMap( x ).map( subject => subject.getDistanceFromDeadLine() ).min
  25.  
  26.                         var message = ""
  27.                         if (extraordinariesBurned.size == EXTRAORDINARY_CHANCES){
  28.                             message = MANDATORY_SECOND_ORDINARY
  29.                         }
  30.  
  31.                         suggest = suggest:+(asignatura, "doomsday in "+daysToDoomsday.toString+" days take extraordinary now."+message)
  32.                     } )
  33.  
  34.                 Logger.info( "suggest="+suggest.toString )
  35.                 //llenar con las asignaturas restantes
  36.                 val offerSubjects = getAvailableSubjects( studentId ).groupBy( x => x.id.get )
  37.                 val keySet = offerSubjects.keySet.to[List]
  38.                 Logger.info( "getAvailableSubjects="+offerSubjects.toString )
  39.                 Logger.info( (cam-suggest.size).toString )
  40.  
  41.                 var limit = cam-suggest.size-1
  42.                 if( keySet.size < limit ){
  43.                     limit = keySet.size-1
  44.                 }
  45.  
  46.                 for( i <- 0 to limit ){
  47.                     suggest = suggest:+(offerSubjects(keySet(i))(0), "Ok no problemo")
  48.                     //texto += suggest(i).toString+" ,"
  49.                 }
  50.  
  51.  
  52.  
  53.             }
  54.  
  55.          suggest
  56.  
  57.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement