Search in sources :

Example 1 with Award

use of org.devgateway.ocds.persistence.mongo.Award in project ocvn by devgateway.

the class ReleaseFlagI019Processor method calculateFlag.

@Override
protected Boolean calculateFlag(FlaggedRelease flaggable, StringBuffer rationale) {
    Optional<Award> award = flaggable.getAwards().stream().filter(a -> a.getDate() != null && Award.Status.active.equals(a.getStatus())).findFirst();
    if (!award.isPresent()) {
        return false;
    }
    Days daysBetween = Days.daysBetween(new DateTime(flaggable.getTender().getTenderPeriod().getEndDate()), new DateTime(award.get().getDate()));
    rationale.append("Days between: ").append(daysBetween.getDays()).append("; Max allowed days: ").append(MAX_ALLOWED_DAYS_TENDER_END_DATE_AWARD_DATE).append(";");
    return daysBetween.getDays() > MAX_ALLOWED_DAYS_TENDER_END_DATE_AWARD_DATE;
}
Also used : Flag(org.devgateway.ocds.persistence.mongo.flags.Flag) Arrays(java.util.Arrays) AbstractFlaggedReleaseFlagProcessor(org.devgateway.ocds.persistence.mongo.flags.AbstractFlaggedReleaseFlagProcessor) FlaggedReleasePredicates(org.devgateway.ocds.persistence.mongo.flags.preconditions.FlaggedReleasePredicates) DateTime(org.joda.time.DateTime) Set(java.util.Set) Award(org.devgateway.ocds.persistence.mongo.Award) FlaggedRelease(org.devgateway.ocds.persistence.mongo.FlaggedRelease) HashSet(java.util.HashSet) Component(org.springframework.stereotype.Component) PostConstruct(javax.annotation.PostConstruct) Days(org.joda.time.Days) Optional(java.util.Optional) FlagType(org.devgateway.ocds.persistence.mongo.flags.FlagType) Collections(java.util.Collections) Award(org.devgateway.ocds.persistence.mongo.Award) Days(org.joda.time.Days) DateTime(org.joda.time.DateTime)

Example 2 with Award

use of org.devgateway.ocds.persistence.mongo.Award in project oc-explorer by devgateway.

the class ReleaseFlagI085Processor method calculateFlag.

@Override
protected Boolean calculateFlag(FlaggedRelease flaggable, StringBuffer rationale) {
    boolean result = false;
    for (Detail bid : flaggable.getBids().getDetails()) {
        for (Award award : flaggable.getAwards()) {
            if (!Award.Status.active.equals(award.getStatus()) || bid.getValue() == null || bid.getValue().getAmount() == null || award.getValue() == null || award.getValue().getAmount() == null || !award.getValue().getCurrency().equals(bid.getValue().getCurrency()) || award.getValue().getAmount().equals(bid.getValue().getAmount())) {
                continue;
            }
            BigDecimal d = award.getValue().getAmount().subtract(bid.getValue().getAmount()).abs().divide(award.getValue().getAmount().max(bid.getValue().getAmount()), 5, BigDecimal.ROUND_HALF_UP);
            if (d.compareTo(I085_HI_THRESH) > 0 || d.compareTo(I085_LOW_THRESH) < 0) {
                continue;
            }
            BigDecimal dLeft = relativeDistanceLeft(bid.getValue().getAmount(), award.getValue().getAmount()).multiply(GenericOCDSController.ONE_HUNDRED);
            BigDecimal dRight = relativeDistanceRight(bid.getValue().getAmount(), award.getValue().getAmount()).multiply(GenericOCDSController.ONE_HUNDRED);
            // using the same logic as owen here...
            if (dLeft.doubleValue() % 1 == 0 || dRight.doubleValue() % 1 == 0) {
                result = true;
                rationale.append("Award=").append(award.getValue().getAmount().setScale(5, BigDecimal.ROUND_HALF_UP)).append(" with bid=").append(bid.getValue().getAmount().setScale(5, BigDecimal.ROUND_HALF_UP)).append("; ");
                break;
            }
        }
    }
    return result;
}
Also used : Award(org.devgateway.ocds.persistence.mongo.Award) Detail(org.devgateway.ocds.persistence.mongo.Detail) BigDecimal(java.math.BigDecimal)

Example 3 with Award

use of org.devgateway.ocds.persistence.mongo.Award in project oc-explorer by devgateway.

the class RecordRepositoryTest method getRelease2.

private Release getRelease2() {
    final Release release = new Release();
    release.setOcid(ocid);
    final Planning planning = new Planning();
    release.setPlanning(planning);
    final Budget budget = new Budget();
    planning.setBudget(budget);
    final Amount amount = new Amount();
    amount.setAmount(BigDecimal.valueOf(2345));
    amount.setCurrency(Amount.Currency.USD);
    budget.setAmount(amount);
    budget.setDescription("Some description 2");
    budget.setProject("A nice project! 2");
    // budget.setSource("The source! 2");
    final Award award1 = new Award();
    award1.setDescription("SoMe AwArD 2");
    award1.setId("2");
    release.getAwards().add(award1);
    final Award award2 = new Award();
    award2.setDescription("Some award3");
    award2.setId("3");
    release.getAwards().add(award2);
    return release;
}
Also used : Award(org.devgateway.ocds.persistence.mongo.Award) Amount(org.devgateway.ocds.persistence.mongo.Amount) Budget(org.devgateway.ocds.persistence.mongo.Budget) Planning(org.devgateway.ocds.persistence.mongo.Planning) Release(org.devgateway.ocds.persistence.mongo.Release)

Example 4 with Award

use of org.devgateway.ocds.persistence.mongo.Award in project oc-explorer by devgateway.

the class RecordRepositoryTest method getRelease1.

private Release getRelease1() {
    final Release release = new Release();
    release.setOcid(ocid);
    final Planning planning = new Planning();
    release.setPlanning(planning);
    final Budget budget = new Budget();
    planning.setBudget(budget);
    final Amount amount = new Amount();
    amount.setAmount(BigDecimal.valueOf(1234));
    amount.setCurrency(Amount.Currency.VND);
    budget.setAmount(amount);
    budget.setDescription("Some description 1");
    budget.setProject("A nice project! 1");
    // budget.setSource("The source! 1");
    final Award award1 = new Award();
    award1.setDescription("Some award1");
    award1.setId("1");
    release.getAwards().add(award1);
    final Award award2 = new Award();
    award2.setDescription("Some award2");
    award2.setId("2");
    release.getAwards().add(award2);
    return release;
}
Also used : Award(org.devgateway.ocds.persistence.mongo.Award) Amount(org.devgateway.ocds.persistence.mongo.Amount) Budget(org.devgateway.ocds.persistence.mongo.Budget) Planning(org.devgateway.ocds.persistence.mongo.Planning) Release(org.devgateway.ocds.persistence.mongo.Release)

Example 5 with Award

use of org.devgateway.ocds.persistence.mongo.Award in project ocvn by devgateway.

the class RecordRepositoryTest method getRelease2.

private Release getRelease2() {
    final Release release = new Release();
    release.setOcid(ocid);
    final Planning planning = new Planning();
    release.setPlanning(planning);
    final Budget budget = new Budget();
    planning.setBudget(budget);
    final Amount amount = new Amount();
    amount.setAmount(BigDecimal.valueOf(2345));
    amount.setCurrency("USD");
    budget.setAmount(amount);
    budget.setDescription("Some description 2");
    budget.setProject("A nice project! 2");
    budget.setSource("The source! 2");
    final Award award1 = new Award();
    award1.setDescription("SoMe AwArD 2");
    award1.setId("2");
    release.getAwards().add(award1);
    final Award award2 = new Award();
    award2.setDescription("Some award3");
    award2.setId("3");
    release.getAwards().add(award2);
    return release;
}
Also used : Award(org.devgateway.ocds.persistence.mongo.Award) Amount(org.devgateway.ocds.persistence.mongo.Amount) Budget(org.devgateway.ocds.persistence.mongo.Budget) Planning(org.devgateway.ocds.persistence.mongo.Planning) Release(org.devgateway.ocds.persistence.mongo.Release)

Aggregations

Award (org.devgateway.ocds.persistence.mongo.Award)12 Release (org.devgateway.ocds.persistence.mongo.Release)6 BigDecimal (java.math.BigDecimal)4 Amount (org.devgateway.ocds.persistence.mongo.Amount)4 Budget (org.devgateway.ocds.persistence.mongo.Budget)4 Planning (org.devgateway.ocds.persistence.mongo.Planning)4 File (java.io.File)2 Arrays (java.util.Arrays)2 Collections (java.util.Collections)2 HashSet (java.util.HashSet)2 Optional (java.util.Optional)2 Set (java.util.Set)2 PostConstruct (javax.annotation.PostConstruct)2 Detail (org.devgateway.ocds.persistence.mongo.Detail)2 FlaggedRelease (org.devgateway.ocds.persistence.mongo.FlaggedRelease)2 AbstractFlaggedReleaseFlagProcessor (org.devgateway.ocds.persistence.mongo.flags.AbstractFlaggedReleaseFlagProcessor)2 Flag (org.devgateway.ocds.persistence.mongo.flags.Flag)2 FlagType (org.devgateway.ocds.persistence.mongo.flags.FlagType)2 FlaggedReleasePredicates (org.devgateway.ocds.persistence.mongo.flags.preconditions.FlaggedReleasePredicates)2 AbstractMongoTest (org.devgateway.toolkit.persistence.mongo.AbstractMongoTest)2