package fi.otavanopisto.pyramus.dao.resources; import javax.ejb.Stateless; import javax.persistence.EntityManager; import fi.otavanopisto.pyramus.dao.PyramusEntityDAO; import fi.otavanopisto.pyramus.domainmodel.resources.ResourceCategory; import fi.otavanopisto.pyramus.domainmodel.resources.WorkResource; import fi.otavanopisto.pyramus.persistence.usertypes.MonetaryAmount; @Stateless public class WorkResourceDAO extends PyramusEntityDAO<WorkResource> { public WorkResource create(String name, ResourceCategory category, Double costPerUse, Double hourlyCost) { EntityManager entityManager = getEntityManager(); WorkResource workResource = new WorkResource(); workResource.setName(name); if (costPerUse != null) { MonetaryAmount monetaryAmount = new MonetaryAmount(); monetaryAmount.setAmount(costPerUse); workResource.setCostPerUse(monetaryAmount); } if (hourlyCost != null) { MonetaryAmount monetaryAmount = new MonetaryAmount(); monetaryAmount.setAmount(hourlyCost); workResource.setHourlyCost(monetaryAmount); } workResource.setCategory(category); entityManager.persist(workResource); return workResource; } public WorkResource update(WorkResource workResource, String name, ResourceCategory category, Double costPerUse, Double hourlyCost) { EntityManager entityManager = getEntityManager(); workResource.setName(name); workResource.setCategory(category); if (costPerUse != null) { MonetaryAmount monetaryAmount = new MonetaryAmount(); monetaryAmount.setAmount(costPerUse); workResource.setCostPerUse(monetaryAmount); } if (hourlyCost != null) { MonetaryAmount monetaryAmount = new MonetaryAmount(); monetaryAmount.setAmount(hourlyCost); workResource.setHourlyCost(monetaryAmount); } entityManager.persist(workResource); return workResource; } }