diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/UnitType.java b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/UnitType.java
index 04e90d096..908ee7619 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/UnitType.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/UnitType.java
@@ -62,6 +62,8 @@ public class UnitType extends IntegrationEntity{
private String measure;
+ private Boolean generateCode = false;
+
// Default constructor, needed by Hibernate
protected UnitType() {
@@ -80,6 +82,14 @@ public class UnitType extends IntegrationEntity{
this.measure = measure;
}
+ public Boolean getGenerateCode() {
+ return generateCode;
+ }
+
+ public void setGenerateCode(Boolean generateCode) {
+ this.generateCode = generateCode;
+ }
+
@AssertTrue(message = "the measure unit type has to be unique. It is already used")
public boolean checkConstraintUniqueName() {
boolean result;
diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/materials/entities/Materials.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/materials/entities/Materials.hbm.xml
index 80c23422f..485e49492 100644
--- a/navalplanner-business/src/main/resources/org/navalplanner/business/materials/entities/Materials.hbm.xml
+++ b/navalplanner-business/src/main/resources/org/navalplanner/business/materials/entities/Materials.hbm.xml
@@ -37,6 +37,7 @@
+
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeController.java
index 8849a6b8b..91adc8e69 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeController.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeController.java
@@ -16,6 +16,7 @@ import org.navalplanner.web.common.Util;
import org.zkoss.util.logging.Log;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.WrongValueException;
+import org.zkoss.zk.ui.event.CheckEvent;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.util.GenericForwardComposer;
@@ -246,4 +247,14 @@ public class UnitTypeController extends GenericForwardComposer {
Util.reloadBindings(listWindow);
getVisibility().showOnly(listWindow);
}
+
+ public void onCheckGenerateCode(Event e) {
+ CheckEvent ce = (CheckEvent) e;
+ if(ce.isChecked()) {
+ //we have to auto-generate the code for new objects
+ if(getUnitType().isNewObject()) {
+ getUnitType().setCodeAutogenerated();
+ }
+ }
+ }
}
diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeModel.java
index 8cb834cd6..dabcee955 100644
--- a/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeModel.java
+++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/materials/UnitTypeModel.java
@@ -6,6 +6,7 @@ import java.util.List;
import org.apache.commons.lang.Validate;
import org.apache.commons.logging.LogFactory;
+import org.navalplanner.business.common.daos.IConfigurationDAO;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.materials.daos.IUnitTypeDAO;
@@ -38,6 +39,9 @@ public class UnitTypeModel implements IUnitTypeModel {
@Autowired
private IUnitTypeDAO unitTypeDAO;
+ @Autowired
+ private IConfigurationDAO configurationDAO;
+
@Override
@Transactional(readOnly=true)
public List getUnitTypes() {
@@ -45,8 +49,17 @@ public class UnitTypeModel implements IUnitTypeModel {
}
@Override
+ @Transactional(readOnly=true)
public void initCreate() {
- this.unitTypeState = UnitType.create();
+ Boolean generateCode = configurationDAO.getConfiguration().
+ getGenerateCodeForUnitTypes();
+ if(generateCode) {
+ this.unitTypeState = UnitType.create();
+ }
+ else {
+ this.unitTypeState = UnitType.create("", "");
+ }
+ this.unitTypeState.setGenerateCode(generateCode);
}
@Override
diff --git a/navalplanner-webapp/src/main/webapp/materials/_editUnitType.zul b/navalplanner-webapp/src/main/webapp/materials/_editUnitType.zul
index 08b1888c6..6db13e0b5 100644
--- a/navalplanner-webapp/src/main/webapp/materials/_editUnitType.zul
+++ b/navalplanner-webapp/src/main/webapp/materials/_editUnitType.zul
@@ -33,11 +33,17 @@
-
+
+
+
+