Search in sources :

Example 1 with Detail

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

the class EBidAwardRowImporter method createReleaseFromReleaseRow.

@Override
public Release createReleaseFromReleaseRow(final String[] row) throws ParseException {
    Release release = repository.findByPlanningBidNo(getRowCell(row, 0));
    if (release == null) {
        release = newReleaseFromAwardFactory(getRowCell(row, 0));
    }
    if (release.getTender() == null) {
        VNTender tender = new VNTender();
        tender.setId(release.getOcid());
        release.setTender(tender);
    }
    release.getTender().getSubmissionMethod().add(Tender.SubmissionMethod.electronicSubmission);
    VNAward award = new VNAward();
    award.setId(release.getOcid() + "-award-" + release.getAwards().size());
    release.getAwards().add(award);
    Amount value = new Amount();
    value.setCurrency("VND");
    value.setAmount(getDecimal(getRowCell(row, 1)));
    award.setValue(value);
    Organization supplier = organizationRepository.findByAllIds(getRowCellUpper(row, 2));
    if (supplier == null) {
        supplier = OrganizationRepositoryUtil.newAndInsertOrganization(Organization.OrganizationType.supplier, getRowCellUpper(row, 2), organizationRepository);
    } else {
        supplier = OrganizationRepositoryUtil.ensureOrgIsOfTypeAndSave(supplier, Organization.OrganizationType.supplier, organizationRepository);
    }
    Organization supplierOrganization = supplier;
    Detail detail = null;
    if (supplierOrganization != null && getRowCell(row, 1) != null) {
        Amount value2 = new Amount();
        value2.setCurrency("VND");
        value2.setAmount(getDecimal(getRowCell(row, 1)));
        VNTendererOrganization tendererOrganization = new VNTendererOrganization(supplier);
        tendererOrganization.setBidValue(value2);
        supplierOrganization = tendererOrganization;
        detail = newBidDetailFromAwardData(getRowCell(row, 0), value2, supplier);
    }
    award.setStatus("Y".equals(getRowCell(row, 5)) ? Award.Status.active : Award.Status.unsuccessful);
    // active=successful awards have suppliers
    if (Award.Status.active.equals(award.getStatus())) {
        award.getSuppliers().add(supplier);
    }
    award.setContractTime(getRowCell(row, 3));
    award.setBidOpenRank(getInteger(getRowCell(row, 4)));
    award.setIneligibleYN(getRowCell(row, 6));
    award.setIneligibleRson(getRowCell(row, 7));
    if (getRowCell(row, 8) != null) {
        award.setAlternateDate(getExcelDate(getRowCell(row, 8)));
    }
    if (getRowCell(row, 10) != null) {
        award.setDate(getExcelDate(getRowCell(row, 10)));
    }
    if (getRowCell(row, 9) != null) {
        award.setPublishedDate(getExcelDate(getRowCell(row, 9)));
    }
    // tenderers
    if (supplierOrganization != null) {
        release.getTender().getTenderers().add(supplierOrganization);
    }
    if (detail != null) {
        release.getBids().getDetails().add(detail);
    }
    release.getTender().setNumberOfTenderers(release.getTender().getTenderers().size());
    // copy items from tender
    award.getItems().addAll(release.getTender().getItems());
    checkForAwardOutliers(release, award);
    return release;
}
Also used : VNTendererOrganization(org.devgateway.ocvn.persistence.mongo.dao.VNTendererOrganization) Organization(org.devgateway.ocds.persistence.mongo.Organization) VNTendererOrganization(org.devgateway.ocvn.persistence.mongo.dao.VNTendererOrganization) Amount(org.devgateway.ocds.persistence.mongo.Amount) VNTender(org.devgateway.ocvn.persistence.mongo.dao.VNTender) VNAward(org.devgateway.ocvn.persistence.mongo.dao.VNAward) Release(org.devgateway.ocds.persistence.mongo.Release) Detail(org.devgateway.ocds.persistence.mongo.Detail)

Example 2 with Detail

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

the class AwardReleaseRowImporter method newBidDetailFromAwardData.

public Detail newBidDetailFromAwardData(String id, Amount amount, Organization tenderer) {
    Detail detail = new Detail();
    detail.setValue(amount);
    detail.getTenderers().add(tenderer);
    detail.setId(id);
    return detail;
}
Also used : Detail(org.devgateway.ocds.persistence.mongo.Detail)

Example 3 with Detail

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

the class OfflineAwardRowImporter method createReleaseFromReleaseRow.

@Override
public Release createReleaseFromReleaseRow(final String[] row) throws ParseException {
    Release release = repository.findByPlanningBidNo(getRowCell(row, 0));
    if (release == null) {
        release = newReleaseFromAwardFactory(getRowCell(row, 0));
    }
    if (release.getTender() == null) {
        VNTender tender = new VNTender();
        tender.setId(release.getOcid());
        release.setTender(tender);
    }
    release.getTender().getSubmissionMethod().add(Tender.SubmissionMethod.written);
    VNAward award = new VNAward();
    award.setId(release.getOcid() + "-award-" + release.getAwards().size());
    release.getAwards().add(award);
    award.setTitle(getRowCell(row, 1));
    if (getRowCell(row, 2) != null) {
        Amount value = new Amount();
        value.setCurrency("VND");
        value.setAmount(getDecimal(getRowCell(row, 2)));
        award.setValue(value);
    }
    Organization supplier = null;
    if (getRowCell(row, 3) != null) {
        supplier = organizationRepository.findByName(getRowCellUpper(row, 3));
        if (supplier == null) {
            supplier = OrganizationRepositoryUtil.newAndInsertOrganization(Organization.OrganizationType.supplier, getRowCellUpper(row, 3), organizationRepository);
        } else {
            supplier = OrganizationRepositoryUtil.ensureOrgIsOfTypeAndSave(supplier, Organization.OrganizationType.supplier, organizationRepository);
        }
    }
    award.setStatus("Y".equals(getRowCell(row, 5)) ? Award.Status.active : Award.Status.unsuccessful);
    // active=successful awards have suppliers
    if (supplier != null && Award.Status.active.equals(award.getStatus())) {
        award.getSuppliers().add(supplier);
    }
    award.setContractTime(getRowCell(row, 4));
    award.setIneligibleYN(getRowCell(row, 6));
    award.setIneligibleRson(getRowCell(row, 7));
    award.setBidType(getInteger(getRowCell(row, 8)));
    award.setBidSuccMethod(getInteger(getRowCell(row, 9)));
    Organization supplierOrganization = supplier;
    Detail detail = null;
    if (supplierOrganization != null && getRowCell(row, 10) != null) {
        Amount value2 = new Amount();
        value2.setCurrency("VND");
        value2.setAmount(getDecimal(getRowCell(row, 10)));
        VNTendererOrganization tendererOrganization = new VNTendererOrganization(supplier);
        tendererOrganization.setBidValue(value2);
        supplierOrganization = tendererOrganization;
        detail = newBidDetailFromAwardData(getRowCell(row, 0), value2, supplier);
    }
    if (getRowCell(row, 12) != null) {
        award.setDate(getExcelDate(getRowCell(row, 12)));
        award.setPublishedDate(getExcelDate(getRowCell(row, 12)));
    }
    if (getRowCell(row, 11) != null) {
        award.setAlternateDate(getExcelDate(getRowCell(row, 11)));
        detail.setDate(award.getAlternateDate());
    }
    // tenderers
    if (supplierOrganization != null) {
        release.getTender().getTenderers().add(supplierOrganization);
    }
    release.getTender().setNumberOfTenderers(release.getTender().getTenderers().size());
    if (detail != null) {
        release.getBids().getDetails().add(detail);
    }
    // copy items from tender
    award.getItems().addAll(release.getTender().getItems());
    checkForAwardOutliers(release, award);
    return release;
}
Also used : VNTendererOrganization(org.devgateway.ocvn.persistence.mongo.dao.VNTendererOrganization) Organization(org.devgateway.ocds.persistence.mongo.Organization) VNTendererOrganization(org.devgateway.ocvn.persistence.mongo.dao.VNTendererOrganization) Amount(org.devgateway.ocds.persistence.mongo.Amount) VNTender(org.devgateway.ocvn.persistence.mongo.dao.VNTender) VNAward(org.devgateway.ocvn.persistence.mongo.dao.VNAward) Release(org.devgateway.ocds.persistence.mongo.Release) Detail(org.devgateway.ocds.persistence.mongo.Detail)

Example 4 with Detail

use of org.devgateway.ocds.persistence.mongo.Detail in project ocvn 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 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()).append(" with bid=").append(bid.getValue().getAmount()).append("; ");
                break;
            }
        }
    }
    return result;
}
Also used : Award(org.devgateway.ocds.persistence.mongo.Award) Detail(org.devgateway.ocds.persistence.mongo.Detail) BigDecimal(java.math.BigDecimal)

Aggregations

Detail (org.devgateway.ocds.persistence.mongo.Detail)4 Amount (org.devgateway.ocds.persistence.mongo.Amount)2 Organization (org.devgateway.ocds.persistence.mongo.Organization)2 Release (org.devgateway.ocds.persistence.mongo.Release)2 VNAward (org.devgateway.ocvn.persistence.mongo.dao.VNAward)2 VNTender (org.devgateway.ocvn.persistence.mongo.dao.VNTender)2 VNTendererOrganization (org.devgateway.ocvn.persistence.mongo.dao.VNTendererOrganization)2 BigDecimal (java.math.BigDecimal)1 Award (org.devgateway.ocds.persistence.mongo.Award)1