use of org.hisp.dhis.dataapproval.DataApprovalWorkflow in project dhis2-core by dhis2.
the class DataApprovalController method getApprovalPermissions.
// -------------------------------------------------------------------------
// Get
// -------------------------------------------------------------------------
@RequestMapping(value = APPROVALS_PATH, method = RequestMethod.GET, produces = ContextUtils.CONTENT_TYPE_JSON)
public void getApprovalPermissions(@RequestParam(required = false) String ds, @RequestParam(required = false) String wf, @RequestParam String pe, @RequestParam String ou, HttpServletResponse response) throws IOException, WebMessageException {
DataApprovalWorkflow workflow = getAndValidateWorkflow(ds, wf);
Period period = getAndValidatePeriod(pe);
OrganisationUnit organisationUnit = getAndValidateOrgUnit(ou);
DataElementCategoryOptionCombo optionCombo = categoryService.getDefaultDataElementCategoryOptionCombo();
DataApprovalStatus status = dataApprovalService.getDataApprovalStatusAndPermissions(workflow, period, organisationUnit, optionCombo);
DataApprovalPermissions permissions = status.getPermissions();
permissions.setState(status.getState().toString());
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
renderService.toJson(response.getOutputStream(), status.getPermissions());
}
use of org.hisp.dhis.dataapproval.DataApprovalWorkflow in project dhis2-core by dhis2.
the class DataApprovalController method saveApprovalMultiple.
@PreAuthorize("hasRole('ALL') or hasRole('F_APPROVE_DATA') or hasRole('F_APPROVE_DATA_LOWER_LEVELS')")
@RequestMapping(value = MULTIPLE_SAVE_RESOURCE_PATH, method = RequestMethod.POST)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void saveApprovalMultiple(@RequestBody DataApprovalStateRequests dataApprovalStateRequests, HttpServletResponse response) throws WebMessageException {
List<DataApproval> dataApprovalList = new ArrayList<>();
for (DataApprovalStateRequest approvalStateRequest : dataApprovalStateRequests) {
DataApprovalWorkflow workflow = getAndValidateWorkflow(approvalStateRequest.getDs(), null);
Period period = getAndValidatePeriod(approvalStateRequest.getPe());
OrganisationUnit organisationUnit = getAndValidateOrgUnit(approvalStateRequest.getOu());
DataApprovalLevel dataApprovalLevel = getAndValidateApprovalLevel(organisationUnit);
User user = approvalStateRequest.getAb() == null ? currentUserService.getCurrentUser() : userService.getUserCredentialsByUsername(approvalStateRequest.getAb()).getUserInfo();
Date approvalDate = approvalStateRequest.getAd() == null ? new Date() : approvalStateRequest.getAd();
dataApprovalList.addAll(getApprovalsAsList(dataApprovalLevel, workflow, period, organisationUnit, false, approvalDate, user));
}
dataApprovalService.approveData(dataApprovalList);
}
use of org.hisp.dhis.dataapproval.DataApprovalWorkflow in project dhis2-core by dhis2.
the class DataSetApprovalFrequencyComparatorTest method testD.
@Test
void testD() {
DataSet dsA = new DataSet("EA: Expenditures Site Level", new QuarterlyPeriodType());
DataSet dsB = new DataSet("MER Results: Facility Based", new QuarterlyPeriodType());
DataSet dsC = new DataSet("MER Results: Facility Based - DoD ONLY", new QuarterlyPeriodType());
DataApprovalWorkflow workflow = new DataApprovalWorkflow("Workflow A", new QuarterlyPeriodType(), null);
dsB.assignWorkflow(workflow);
DataElement deA = new DataElement();
dsA.addDataSetElement(deA);
dsB.addDataSetElement(deA);
dsC.addDataSetElement(deA);
assertEquals(dsB, deA.getApprovalDataSet());
}
use of org.hisp.dhis.dataapproval.DataApprovalWorkflow in project dhis2-core by dhis2.
the class DataSetApprovalFrequencyComparatorTest method testA.
@Test
void testA() {
DataSet dsA = new DataSet("DataSetA", new YearlyPeriodType());
DataSet dsB = new DataSet("DataSetB", new YearlyPeriodType());
DataSet dsC = new DataSet("DataSetC", new MonthlyPeriodType());
DataSet dsD = new DataSet("DataSetD", new QuarterlyPeriodType());
DataApprovalWorkflow workflow = new DataApprovalWorkflow("Workflow A", new QuarterlyPeriodType(), null);
dsA.assignWorkflow(workflow);
dsD.assignWorkflow(workflow);
List<DataSet> list = Lists.newArrayList(dsA, dsC, dsB, dsD);
Collections.sort(list, DataSetApprovalFrequencyComparator.INSTANCE);
assertEquals(dsD, list.get(0));
assertEquals(dsA, list.get(1));
assertEquals(dsC, list.get(2));
assertEquals(dsB, list.get(3));
}
use of org.hisp.dhis.dataapproval.DataApprovalWorkflow in project dhis2-core by dhis2.
the class DataOrgUnitSplitHandlerTest method setUpTest.
@Override
public void setUpTest() {
cocA = categoryService.getDefaultCategoryOptionCombo();
deA = createDataElement('A');
deB = createDataElement('B');
idObjectManager.save(deA);
idObjectManager.save(deB);
PeriodType monthly = periodService.getPeriodTypeByClass(MonthlyPeriodType.class);
peA = monthly.createPeriod("202101");
peB = monthly.createPeriod("202102");
periodService.addPeriod(peA);
periodService.addPeriod(peB);
ouA = createOrganisationUnit('A');
ouB = createOrganisationUnit('B');
ouC = createOrganisationUnit('C');
idObjectManager.save(ouA);
idObjectManager.save(ouB);
idObjectManager.save(ouC);
usA = createUser('A');
userService.addUser(usA);
dlA = new DataApprovalLevel("DataApprovalLevelA", 1);
idObjectManager.save(dlA);
dwA = new DataApprovalWorkflow("DataApprovalWorkflowA", monthly, Sets.newHashSet(dlA));
idObjectManager.save(dwA);
}
Aggregations