Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def getOfferWithWarnings( studentId: Int ) = {
- //val lapse = Date.month()
- //val offerIds = Oferta.all().map( x => x.idAsignatura.get.toInt )
- var suggest = List[(Asignatura, String)]()
- val cam = Kardex.calculateCAM( studentId )
- Logger.info( cam.toString )
- val failedSubjects = Kardex.getAllNotAproved( studentId )
- val failedSubjectsMap = failedSubjects.groupBy( x => x.asignaturaId.get.toInt )
- val keysFailedSubjects = failedSubjects.map( x => x.asignaturaId.get.toInt ).distinct
- if( keysFailedSubjects.size <= cam ){
- keysFailedSubjects.foreach( x => {
- val asignatura = Asignatura.findById(x).get
- val extraordinariesBurned = failedSubjectsMap( x ).filter( subject => subject.tipo == EXTRAORDINARY )
- val daysToDoomsday = failedSubjectsMap( x ).map( subject => subject.getDistanceFromDeadLine() ).min
- var message = ""
- if (extraordinariesBurned.size == EXTRAORDINARY_CHANCES){
- message = MANDATORY_SECOND_ORDINARY
- }
- suggest = suggest:+(asignatura, "doomsday in "+daysToDoomsday.toString+" days take extraordinary now."+message)
- } )
- Logger.info( "suggest="+suggest.toString )
- //llenar con las asignaturas restantes
- val offerSubjects = getAvailableSubjects( studentId ).groupBy( x => x.id.get )
- val keySet = offerSubjects.keySet.to[List]
- Logger.info( "getAvailableSubjects="+offerSubjects.toString )
- Logger.info( (cam-suggest.size).toString )
- var limit = cam-suggest.size-1
- if( keySet.size < limit ){
- limit = keySet.size-1
- }
- for( i <- 0 to limit ){
- suggest = suggest:+(offerSubjects(keySet(i))(0), "Ok no problemo")
- //texto += suggest(i).toString+" ,"
- }
- }
- suggest
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement