[Bug #887] Fix bug
remove advance assignment whose type is quality form, if this quality form is removed or if the progress report is disabled. FEA : ItEr71S04BugFixing
This commit is contained in:
parent
cc9f528a20
commit
42c4948886
4 changed files with 51 additions and 14 deletions
|
|
@ -217,6 +217,13 @@ public class AssignedTaskQualityFormsToOrderElementController extends
|
|||
}
|
||||
|
||||
public void deleteTaskQualityForm(TaskQualityForm taskQualityForm) {
|
||||
try {
|
||||
assignedTaskQualityFormsToOrderElementModel
|
||||
.removeAdvanceAssignmentIfNeeded(taskQualityForm);
|
||||
} catch (ValidationException e) {
|
||||
showInformativeMessage(e.getMessage());
|
||||
return;
|
||||
}
|
||||
assignedTaskQualityFormsToOrderElementModel
|
||||
.deleteTaskQualityForm(taskQualityForm);
|
||||
reloadTaskQualityForms();
|
||||
|
|
@ -291,10 +298,14 @@ public class AssignedTaskQualityFormsToOrderElementController extends
|
|||
assignedTaskQualityFormsToOrderElementModel
|
||||
.addAdvanceAssignmentIfNeeded(taskQualityForm);
|
||||
} else {
|
||||
assignedTaskQualityFormsToOrderElementModel
|
||||
try {
|
||||
assignedTaskQualityFormsToOrderElementModel
|
||||
.removeAdvanceAssignmentIfNeeded(taskQualityForm);
|
||||
} catch (ValidationException e) {
|
||||
showInformativeMessage(e.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
taskQualityForm.setReportAdvance(value);
|
||||
} catch (DuplicateValueTrueReportGlobalAdvanceException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
|
@ -316,6 +327,15 @@ public class AssignedTaskQualityFormsToOrderElementController extends
|
|||
}
|
||||
}
|
||||
|
||||
private void showInformativeMessage(String message) {
|
||||
try {
|
||||
Messagebox.show(message, _("Delete"), Messagebox.OK,
|
||||
Messagebox.ERROR);
|
||||
} catch (InterruptedException e) {
|
||||
messagesForUser.showMessage(Level.ERROR, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void appendDetails(Row row, TaskQualityForm taskQualityForm) {
|
||||
Detail details = new Detail();
|
||||
details.setParent(row);
|
||||
|
|
|
|||
|
|
@ -152,7 +152,16 @@ public class AssignedTaskQualityFormsToOrderElementModel implements
|
|||
|
||||
@Override
|
||||
public void deleteTaskQualityForm(TaskQualityForm taskQualityForm) {
|
||||
orderElement.removeTaskQualityForm(taskQualityForm);
|
||||
orderElement.removeTaskQualityForm(taskQualityForm);
|
||||
}
|
||||
|
||||
private AdvanceAssignment getAdvanceAssignment(
|
||||
TaskQualityForm taskQualityForm) {
|
||||
AdvanceType advanceType = taskQualityForm.getQualityForm()
|
||||
.getAdvanceType();
|
||||
advanceTypeDAO.reattach(advanceType);
|
||||
return taskQualityForm.getOrderElement()
|
||||
.getDirectAdvanceAssignmentByType(advanceType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -309,19 +318,25 @@ public class AssignedTaskQualityFormsToOrderElementModel implements
|
|||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public void removeAdvanceAssignmentIfNeeded(TaskQualityForm taskQualityForm) {
|
||||
AdvanceType advanceType = taskQualityForm.getQualityForm()
|
||||
.getAdvanceType();
|
||||
advanceTypeDAO.reattach(advanceType);
|
||||
AdvanceAssignment advanceAssignment = taskQualityForm.getOrderElement()
|
||||
.getDirectAdvanceAssignmentByType(advanceType);
|
||||
|
||||
public void removeAdvanceAssignmentIfNeeded(TaskQualityForm taskQualityForm)
|
||||
throws ValidationException {
|
||||
AdvanceAssignment advanceAssignment = this
|
||||
.getAdvanceAssignment(taskQualityForm);
|
||||
if (advanceAssignment != null) {
|
||||
taskQualityForm.getOrderElement().removeAdvanceAssignment(
|
||||
if (advanceAssignment.getReportGlobalAdvance()) {
|
||||
showMessageDeleteSpread();
|
||||
} else {
|
||||
taskQualityForm.getOrderElement().removeAdvanceAssignment(
|
||||
advanceAssignment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void showMessageDeleteSpread() throws ValidationException {
|
||||
throw new ValidationException(
|
||||
_("the operation does not perform because the task has progress reports that is spread associated with this quality form."));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAdvancesIfNeeded() {
|
||||
if (orderElement != null) {
|
||||
|
|
|
|||
|
|
@ -150,10 +150,12 @@ public class ManageOrderElementAdvancesModel implements
|
|||
fillVariables();
|
||||
for (AdvanceAssignment advance : listAdvanceAssignmentsCopy) {
|
||||
if ((!listAdvanceAssignments.contains(advance))
|
||||
&& (advance instanceof DirectAdvanceAssignment)) {
|
||||
&& (advance instanceof DirectAdvanceAssignment)
|
||||
&& (!advance.getAdvanceType().isQualityForm())) {
|
||||
listAdvanceAssignments.add(advance);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -273,7 +275,7 @@ public class ManageOrderElementAdvancesModel implements
|
|||
for (IndirectAdvanceAssignment each : orderElement
|
||||
.getIndirectAdvanceAssignments()) {
|
||||
this.listAdvanceAssignments.add(each);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
-->
|
||||
|
||||
<vbox id="${arg.id}"
|
||||
apply="org.navalplanner.web.orders.ManageOrderElementAdvancesController" width="100%">
|
||||
apply="org.navalplanner.web.orders.ManageOrderElementAdvancesController" width="100%">
|
||||
<panel title="${i18n:_('Progress assignments')}" border="normal">
|
||||
<panelchildren>
|
||||
<vbox id="messagesContainerAdvances" />
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue