jira-integration: Several refactorizations in JiraTimesheetSynchronizer
* Extract save part to a separated method as syncJiraTimesheetWithJiraIssues doesn't deal with workReportModel and it could cause misunderstandings. * Move some parts just needed for newly created objects inside the ifs. * Use properly EffortDuration to create a new one from seconds. * Avoid find in another transaction as transaction is already opened. FEA: ItEr77S16JiraAndTimConnectorContributionIntegration
This commit is contained in:
parent
65458cfc9f
commit
851357d760
1 changed files with 9 additions and 10 deletions
|
|
@ -143,6 +143,10 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer {
|
|||
}
|
||||
}
|
||||
|
||||
saveWorkReportIfNotEmpty();
|
||||
}
|
||||
|
||||
private void saveWorkReportIfNotEmpty() {
|
||||
if (workReportModel.getWorkReport().getWorkReportLines().size() > 0) {
|
||||
workReportModel.confirmSave();
|
||||
}
|
||||
|
|
@ -159,13 +163,13 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer {
|
|||
WorkReport workReport = findWorkReport(code);
|
||||
if (workReport == null) {
|
||||
workReportModel.initCreate(workReportType);
|
||||
workReport = workReportModel.getWorkReport();
|
||||
workReport.setCode(code);
|
||||
} else {
|
||||
workReportModel.initEdit(workReport);
|
||||
}
|
||||
workReportModel.setCodeAutogenerated(false);
|
||||
|
||||
workReport = workReportModel.getWorkReport();
|
||||
workReport.setCode(code);
|
||||
return workReport;
|
||||
}
|
||||
|
||||
|
|
@ -192,16 +196,13 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer {
|
|||
+ workLogItem.getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
workReportLine = WorkReportLine.create(workReport);
|
||||
workReport.addWorkReportLine(workReportLine);
|
||||
}
|
||||
|
||||
Resource resource = getWorker(workLogItem.getAuthor().getName());
|
||||
if (resource != null) {
|
||||
|
||||
updateWorkReportLine(workReportLine, orderElement,
|
||||
workLogItem, resource);
|
||||
if (workReportLine.isNewObject()) {
|
||||
workReport.addWorkReportLine(workReportLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -230,9 +231,7 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer {
|
|||
workReportLine.setDate(workLogItem.getStarted());
|
||||
workReportLine.setResource(resource);
|
||||
workReportLine.setOrderElement(orderElement);
|
||||
workReportLine.setEffort(EffortDuration
|
||||
.hours(EffortDuration.Granularity.HOURS
|
||||
.convertFromSeconds(timeSpent)));
|
||||
workReportLine.setEffort(EffortDuration.seconds(timeSpent));
|
||||
workReportLine.setTypeOfWorkHours(typeOfWorkHours);
|
||||
|
||||
updateOrCreateDescriptionValuesAndAddToWorkReportLine(workReportLine,
|
||||
|
|
@ -309,7 +308,7 @@ public class JiraTimesheetSynchronizer implements IJiraTimesheetSynchronizer {
|
|||
*/
|
||||
private WorkReport findWorkReport(String code) {
|
||||
try {
|
||||
return workReportDAO.findByCodeAnotherTransaction(code);
|
||||
return workReportDAO.findByCode(code);
|
||||
} catch (InstanceNotFoundException e) {
|
||||
}
|
||||
return null;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue