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