diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java
index 9ec0c1374..e8018b6d4 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderElement.java
@@ -108,7 +108,7 @@ public abstract class OrderElement extends IntegrationEntity implements
private Boolean dirtyLastAdvanceMeasurementForSpreading = true;
- private SumChargedEffort sumChargedEffort = SumChargedEffort.create();
+ private SumChargedEffort sumChargedEffort;
public OrderElementTemplate getTemplate() {
return template;
diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/SumChargedEffort.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/SumChargedEffort.java
index bbb782ec9..e23b89689 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/SumChargedEffort.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/SumChargedEffort.java
@@ -3,7 +3,7 @@
*
* Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
* Desenvolvemento Tecnolóxico de Galicia
- * Copyright (C) 2010-2011 Igalia, S.L.
+ * Copyright (C) 2010-2012 Igalia, S.L.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -33,6 +33,8 @@ import org.libreplan.business.workingday.EffortDuration;
*/
public class SumChargedEffort extends BaseEntity {
+ private OrderElement orderElement;
+
private EffortDuration directChargedEffort = EffortDuration.zero();
private EffortDuration indirectChargedEffort = EffortDuration.zero();
@@ -43,6 +45,10 @@ public class SumChargedEffort extends BaseEntity {
return create(new SumChargedEffort());
}
+ public OrderElement getOrderElement() {
+ return orderElement;
+ }
+
public void addDirectChargedEffort(EffortDuration directChargedEffort) {
this.directChargedEffort = this.directChargedEffort
.plus(directChargedEffort);
diff --git a/libreplan-business/src/main/resources/db.changelog-1.2.xml b/libreplan-business/src/main/resources/db.changelog-1.2.xml
index faec5121f..368f1ea96 100644
--- a/libreplan-business/src/main/resources/db.changelog-1.2.xml
+++ b/libreplan-business/src/main/resources/db.changelog-1.2.xml
@@ -92,4 +92,81 @@
columnName="budget" defaultValueNumeric="0" />
+
+
+
+
+ Change mapping between OrderElement and SumChargedEffort in MySQL
+
+
+
+
+
+ CREATE OR REPLACE FUNCTION chageMappingBetweenOrderElementAndSumChargedEffort() RETURNS VOID AS $$
+ DECLARE
+ sce RECORD;
+ BEGIN
+ FOR sce IN SELECT sum_charged_effort_id AS id FROM order_element
+ LOOP
+ EXECUTE 'UPDATE sum_charged_effort '
+ || 'SET order_element '
+ || ' = (SELECT id FROM order_element '
+ || 'WHERE sum_charged_effort_id '
+ || ' = '
+ || quote_literal(sce.id)
+ || ') '
+ || 'WHERE id '
+ || ' = '
+ || quote_literal(sce.id);
+ END LOOP;
+ END;
+ $$ LANGUAGE plpgsql;
+
+ SELECT chageMappingBetweenOrderElementAndSumChargedEffort()
+
+
+
+
+
+
+
+
+ Change mapping between OrderElement and SumChargedEffort in PostgreSQL
+
+
+
+
+ DROP PROCEDURE IF EXISTS chageMappingBetweenOrderElementAndSumChargedEffort
+
+ CREATE PROCEDURE chageMappingBetweenOrderElementAndSumChargedEffort()
+ BEGIN
+ DECLARE done INT DEFAULT FALSE;
+ DECLARE sce_id INT;
+ DECLARE cursor_sce_ids CURSOR FOR SELECT sum_charged_effort_id AS id FROM order_element;
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ OPEN cursor_sce_ids;
+
+ ids_loop: LOOP
+ FETCH cursor_sce_ids INTO sce_id;
+ IF done THEN
+ LEAVE ids_loop;
+ END IF;
+ UPDATE sum_charged_effort SET order_element = (SELECT id FROM order_element WHERE sum_charged_effort_id = sce_id) WHERE id = sce_id;
+ END LOOP;
+
+ CLOSE cursor_sce_ids;
+ END;
+
+ CALL chageMappingBetweenOrderElementAndSumChargedEffort()
+
+
+
+
diff --git a/libreplan-business/src/main/resources/org/libreplan/business/orders/entities/Orders.hbm.xml b/libreplan-business/src/main/resources/org/libreplan/business/orders/entities/Orders.hbm.xml
index 380863f58..d1ada6218 100644
--- a/libreplan-business/src/main/resources/org/libreplan/business/orders/entities/Orders.hbm.xml
+++ b/libreplan-business/src/main/resources/org/libreplan/business/orders/entities/Orders.hbm.xml
@@ -74,12 +74,8 @@
column="scheduling_state_for_version_id" />
-
+
@@ -246,6 +242,9 @@
+
+