package module.mission.domain.activity;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import module.mission.domain.Mission;
import module.mission.domain.MissionFinancer;
import module.mission.domain.MissionProcess;
import module.organization.domain.Person;
import module.workflow.activities.ActivityInformation;
import module.workflow.activities.WorkflowActivity;
import org.fenixedu.bennu.core.domain.User;
import org.fenixedu.bennu.core.security.Authenticate;
public class CommitFundsActivityInformation extends ActivityInformation<MissionProcess> implements Serializable {
private static final long serialVersionUID = 1L;
public static class MissionFinancerCommitFundAllocationBean implements Serializable {
private static final long serialVersionUID = 1L;
private final MissionFinancer missionFinancer;
private String commitmentNumber;
public MissionFinancerCommitFundAllocationBean(final MissionFinancer missionFinancer) {
this.missionFinancer = missionFinancer;
if (missionFinancer != null) {
commitmentNumber = missionFinancer.getCommitmentNumber();
}
}
public String getCommitmentNumber() {
return commitmentNumber;
}
public void setCommitmentNumber(String commitmentNumber) {
this.commitmentNumber = commitmentNumber;
}
public MissionFinancer getMissionFinancer() {
return missionFinancer;
}
}
private final Collection<MissionFinancerCommitFundAllocationBean> missionFinancerCommitFundAllocationBeans =
new ArrayList<MissionFinancerCommitFundAllocationBean>();
public CommitFundsActivityInformation(final MissionProcess missionProcess,
final WorkflowActivity<MissionProcess, ? extends ActivityInformation<MissionProcess>> activity) {
super(missionProcess, activity);
final Mission mission = missionProcess.getMission();
for (final MissionFinancer financer : mission.getFinancerSet()) {
if (canAllocateFunds(financer)) {
missionFinancerCommitFundAllocationBeans.add(new MissionFinancerCommitFundAllocationBean(financer));
}
}
}
public Collection<MissionFinancerCommitFundAllocationBean> getMissionFinancerCommitFundAllocationBeans() {
return missionFinancerCommitFundAllocationBeans;
}
@Override
public boolean hasAllneededInfo() {
return isForwardedFromInput();
}
protected boolean canAllocateFunds(final MissionFinancer missionFinancer) {
final User user = Authenticate.getUser();
final Person person = user.getPerson();
return missionFinancer.canAllocateFunds(person);
}
}