Ignore:
Timestamp:
01/05/22 21:51:57 (2 years ago)
Author:
NikolaCenevski <cenevskinikola@…>
Branches:
master
Children:
a64f926
Parents:
b8dc761
Message:

part 3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/it/finki/charitable/controller/DonationPostController.java

    rb8dc761 r6fa3d09  
    1616import java.time.Duration;
    1717import java.time.LocalDate;
     18import java.time.LocalDateTime;
    1819import java.util.*;
    1920import java.util.stream.Collectors;
     
    6768            return "upload";
    6869        }
     70        if (dateDue.isBefore(LocalDate.now()))
     71        {
     72            model.addAttribute("error", true);
     73            return "upload";
     74        }
    6975
    7076        DonationPost post = new DonationPost();
     
    269275        post.setTotalFundsCollected(post.getTotalFundsCollected() + donatedAmount);
    270276
    271         if(post.getRiskFactor() != 101) {
     277        if(post.getRiskFactor() != 101 && post.getRiskFactor() != 102) {
    272278            post.setRiskFactor(getRisk(post));
    273279        }
     
    317323
    318324    private Integer getRisk(DonationPost post) {
    319         float dailyAverage = post.getTotalFundsCollected() / (Duration.between(post.getCreatedAt().atTime(0, 0, 0), LocalDate.now().atTime(0, 0, 0)).toDays()+1);
    320         float neededAverage = (post.getFundsNeeded() - post.getTotalFundsCollected()) / (Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays()+1);
    321 
    322         System.out.println(dailyAverage + " " + neededAverage);
    323         int risk = (int) (dailyAverage / neededAverage * 100);
    324 
    325         if(risk > 100) {
    326             risk = 100;
    327         }
    328 
    329         if(Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays() == 0) {
    330             risk = 0;
    331         }
    332 
     325        int risk;
    333326        if(post.getFundsNeeded() <= post.getTotalFundsCollected()) {
    334             risk = 101;
    335         }
    336 
     327            risk = 102;
     328        }
     329        else
     330        {
     331            if (LocalDate.now().isAfter(post.getDateDue()))
     332            {
     333                risk=0;
     334            }
     335            else
     336            {
     337                float dailyAverage = post.getTotalFundsCollected() / (Duration.between(post.getCreatedAt().atTime(0, 0, 0), LocalDate.now().atTime(0, 0, 0)).toDays()+1);
     338                float neededAverage = (post.getFundsNeeded() - post.getTotalFundsCollected()) / (Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays()+1);
     339
     340                if(Duration.between(LocalDate.now().atTime(0, 0, 0), post.getDateDue().atTime(0, 0, 0)).toDays() == 0) {
     341                    float hour=(float) LocalDateTime.now().getHour();
     342                    float mins=(float) LocalDateTime.now().getMinute();
     343                    hour=hour+(mins/(float)60);
     344                    float hourlyAverage=(dailyAverage/(float)24);
     345                    float neededhourlyAverage=(post.getFundsNeeded() - post.getTotalFundsCollected())/((float)24-hour);
     346                    risk = (int) (hourlyAverage/neededhourlyAverage*100);
     347                    if (risk>100)
     348                    {
     349                        risk=100;
     350                    }
     351
     352                }
     353                else
     354                {
     355                    System.out.println(dailyAverage + " " + neededAverage);
     356                    risk = (int) (dailyAverage / neededAverage * 100);
     357
     358                    if(risk > 100) {
     359                        risk = 100;
     360                    }
     361                }
     362            }
     363        }
    337364        return risk;
    338365    }
Note: See TracChangeset for help on using the changeset viewer.