Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class IndicatorManagerService {

private final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");

public static final String FILTER_BY_PROGRAM = "Filter By Program";
public static final String FILTER_BY_PROGRAM = "Filter by Program";

public static final String FILTER_BY_SECTOR = "Filter By Sector";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ public class SettingsConstants {
put(YEAR_ALL, "All");
put(PROGRAM_SETTINGS, "Program Settings");
put(INDICATOR_FILTER_BY_SECTOR, "Filter By Sector");
put(INDICATOR_FILTER_BY_PROGRAM, "Filter By Program");
put(INDICATOR_FILTER_BY_PROGRAM, "Filter by Program");
put(NUMBER_OF_INDICATORS_IN_DASHBOARD, "Number of indicators in M&E Dashboard");
put(SORT_COLUMN, GlobalSettingsConstants.DEFAULT_RESOURCES_SORT_COLUMN);
put(MAXIMUM_FILE_SIZE, GlobalSettingsConstants.CR_MAX_FILE_SIZE );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.dgfoundation.amp.ar.ArConstants;
import org.dgfoundation.amp.ar.ColumnConstants;
import org.dgfoundation.amp.ar.ARUtil;
import org.digijava.kernel.ampapi.endpoints.activity.ActivityImportRules;
import org.digijava.kernel.ampapi.endpoints.activity.ActivityInterchangeUtils;
Expand All @@ -26,7 +24,6 @@
import org.digijava.module.aim.dbentity.*;
import org.digijava.module.aim.util.CurrencyUtil;
import org.digijava.module.aim.util.DbUtil;
import org.digijava.module.aim.util.FeaturesUtil;
import org.digijava.module.aim.util.ProgramUtil;
import org.digijava.module.aim.util.SectorUtil;
import org.digijava.module.aim.util.TeamUtil;
Expand Down Expand Up @@ -338,7 +335,7 @@ private static String getFundingDate(String dateString) {
}
if (dateString != null && dateString.trim().matches("\\d{4}")) {
int year = Integer.parseInt(dateString.trim());
return LocalDate.of(year, 12, 31).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
return LocalDate.of(year, 1, 1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}
LocalDate date = LocalDate.now();
if (isCommonDateFormat(dateString)) {
Expand Down Expand Up @@ -651,6 +648,32 @@ private static boolean transactionExists(List<Transaction> transactions, Transac
);
}

private static Set<Funding> mergeFundingsByDonor(Set<Funding> fundings) {
if (fundings == null || fundings.size() <= 1) return fundings;
Map<String, Funding> merged = new LinkedHashMap<>();
for (Funding f : fundings) {
String key = f.getDonor_organization_id() + "|"
+ f.getSource_role() + "|"
+ f.getType_of_assistance() + "|"
+ f.getFinancing_instrument();
Funding existing = merged.get(key);
if (existing == null) {
merged.put(key, f);
} else {
for (Transaction t : f.getCommitments()) {
if (!transactionExists(existing.getCommitments(), t)) existing.getCommitments().add(t);
}
for (Transaction t : f.getDisbursements()) {
if (!transactionExists(existing.getDisbursements(), t)) existing.getDisbursements().add(t);
}
for (Transaction t : f.getExpenditures()) {
if (!transactionExists(existing.getExpenditures(), t)) existing.getExpenditures().add(t);
}
}
}
return new LinkedHashSet<>(merged.values());
}

/**
* Creates a corresponding disbursement transaction for each commitment transaction.
* The disbursement will have the same amount, currency, and date as the commitment.
Expand Down Expand Up @@ -965,6 +988,7 @@ public static Long importTheData(ImportDataModel importDataModel, Session sessio
objectMapper.configure(ESCAPE_NON_ASCII, false); // Disable escaping of non-ASCII characters during serialization
objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);

importDataModel.setFundings(mergeFundingsByDonor(importDataModel.getFundings()));
pruneParentLocationsWhenChildPresent(importDataModel, session);
normalizeLocationPercentages(importDataModel);
Map<String, Object> map = objectMapper
Expand Down
Loading
Loading