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 @@