Refactoring the code for replacing the occurences of comunication by communication.

This commit is contained in:
Susana Montes Pedreira 2011-11-22 16:31:26 +01:00
parent b463d8e42e
commit bfcbcc3011
34 changed files with 689 additions and 620 deletions

View file

@ -24,29 +24,29 @@ import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.libreplan.business.common.daos.GenericDAOHibernate;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;
/**
* Hibernate DAO for {@link CustomerComunication}
* Hibernate DAO for {@link CustomerCommunication}
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
@Repository
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class CustomerComunicationDAO extends GenericDAOHibernate<CustomerComunication, Long>
implements ICustomerComunicationDAO {
public class CustomerCommunicationDAO extends GenericDAOHibernate<CustomerCommunication, Long>
implements ICustomerCommunicationDAO {
@Override
public List<CustomerComunication> getAll(){
return list(CustomerComunication.class);
public List<CustomerCommunication> getAll(){
return list(CustomerCommunication.class);
}
@Override
public List<CustomerComunication> getAllNotReviewed(){
Criteria c = getSession().createCriteria(CustomerComunication.class);
public List<CustomerCommunication> getAllNotReviewed(){
Criteria c = getSession().createCriteria(CustomerCommunication.class);
c.add(Restrictions.eq("reviewed", false));
return c.list();
}

View file

@ -22,18 +22,18 @@ package org.libreplan.business.externalcompanies.daos;
import java.util.List;
import org.libreplan.business.common.daos.IGenericDAO;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
/**
* Interface of the DAO for {@link CustomerComunication}
* Interface of the DAO for {@link CustomerCommunication}
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
public interface ICustomerComunicationDAO extends IGenericDAO<CustomerComunication, Long> {
public interface ICustomerCommunicationDAO extends IGenericDAO<CustomerCommunication, Long> {
List<CustomerComunication> getAll();
List<CustomerCommunication> getAll();
List<CustomerComunication> getAllNotReviewed();
List<CustomerCommunication> getAllNotReviewed();
}

View file

@ -22,17 +22,17 @@ package org.libreplan.business.externalcompanies.entities;
import static org.libreplan.business.i18n.I18nHelper._;
/**
* Enum for specified the type of {@link CustomerComunication}
* Enum for specified the type of {@link CustomerCommunication}
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
public enum ComunicationType {
public enum CommunicationType {
NEW_PROJECT(_("New project")), REPORT_PROGRESS(_("Report advance"));
private String description;
private ComunicationType(String description) {
private CommunicationType(String description) {
this.description = description;
}
@ -40,7 +40,7 @@ public enum ComunicationType {
return this.description;
}
public static ComunicationType getDefault() {
public static CommunicationType getDefault() {
return NEW_PROJECT;
}
}

View file

@ -0,0 +1,136 @@
/*
* This file is part of LibrePlan
*
* Copyright (C) 2011 WirelessGalicia, 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.libreplan.business.externalcompanies.entities;
import java.util.Date;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.NotNull;
import org.libreplan.business.common.BaseEntity;
import org.libreplan.business.orders.entities.Order;
/**
* Entity CustomerCommunication
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
public class CustomerCommunication extends BaseEntity {
private Date deadline;
private CommunicationType communicationType;
private Date communicationDate;
private Boolean reviewed = false;
private Order order;
protected CustomerCommunication() {
this.setCommunicationDate(new Date());
}
private CustomerCommunication(Date deadline) {
this.setDeadline(deadline);
this.setCommunicationDate(new Date());
}
public static CustomerCommunication create() {
return create(new CustomerCommunication());
}
public static CustomerCommunication createToday(Date deadline) {
return create(new CustomerCommunication(deadline));
}
public static CustomerCommunication createTodayNewProject(Date deadline) {
return create(new CustomerCommunication(deadline, new Date(),
CommunicationType.NEW_PROJECT));
}
protected CustomerCommunication(Date deadline, Date communicationDate,
CommunicationType communicationType) {
this.setDeadline(deadline);
this.setCommunicationDate(communicationDate);
this.setCommunicationType(communicationType);
}
protected CustomerCommunication(Date deadline, Date communicationDate,
CommunicationType type, Order order) {
this.setDeadline(deadline);
this.setCommunicationDate(communicationDate);
this.setCommunicationType(type);
this.setOrder(order);
}
public static CustomerCommunication create(Date deadline,
Date communicationDate, CommunicationType communicationType) {
return (CustomerCommunication) create(new CustomerCommunication(
deadline, communicationDate, communicationType));
}
public static CustomerCommunication create(Date deadline,
Date communicationDate, CommunicationType type,
Order order) {
return (CustomerCommunication) create(new CustomerCommunication(
deadline, communicationDate, type, order));
}
public void setDeadline(Date deadline) {
this.deadline = deadline;
}
public Date getDeadline() {
return deadline;
}
public void setCommunicationType(CommunicationType type) {
this.communicationType = type;
}
public CommunicationType getCommunicationType() {
return this.communicationType;
}
public void setCommunicationDate(Date communicationDate) {
this.communicationDate = communicationDate;
}
public Date getCommunicationDate() {
return communicationDate;
}
public void setReviewed(Boolean reviewed) {
this.reviewed = reviewed;
}
public Boolean getReviewed() {
return reviewed;
}
public void setOrder(Order order) {
this.order = order;
}
@NotNull(message = "order not specified")
public Order getOrder() {
return order;
}
}

View file

@ -1,129 +0,0 @@
/*
* This file is part of LibrePlan
*
* Copyright (C) 2011 WirelessGalicia, 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.libreplan.business.externalcompanies.entities;
import java.util.Date;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.NotNull;
import org.libreplan.business.common.BaseEntity;
import org.libreplan.business.orders.entities.Order;
/**
* Entity CustomerComunication
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
public class CustomerComunication extends BaseEntity{
private Date deadline;
private ComunicationType comunicationType;
private Date comunicationDate;
private Boolean reviewed = false;
private Order order;
protected CustomerComunication() {
this.setComunicationDate(new Date());
}
private CustomerComunication(Date deadline) {
this.setDeadline(deadline);
this.setComunicationDate(new Date());
}
public static CustomerComunication create() {
return create(new CustomerComunication());
}
public static CustomerComunication createToday(Date deadline) {
return create(new CustomerComunication(deadline));
}
public static CustomerComunication createTodayNewProject(Date deadline) {
return create(new CustomerComunication(deadline,
new Date(), ComunicationType.NEW_PROJECT));
}
protected CustomerComunication(Date deadline, Date comunicationDate, ComunicationType comunicationType) {
this.setDeadline(deadline);
this.setComunicationDate(comunicationDate);
this.setComunicationType(comunicationType);
}
protected CustomerComunication(Date deadline, Date comunicationDate, ComunicationType comunicationType, Order order) {
this.setDeadline(deadline);
this.setComunicationDate(comunicationDate);
this.setComunicationType(comunicationType);
this.setOrder(order);
}
public static CustomerComunication create(Date deadline, Date comunicationDate, ComunicationType comunicationType) {
return (CustomerComunication) create(new CustomerComunication(deadline, comunicationDate, comunicationType));
}
public static CustomerComunication create(Date deadline, Date comunicationDate, ComunicationType comunicationType, Order order) {
return (CustomerComunication) create(new CustomerComunication(deadline, comunicationDate, comunicationType, order));
}
public void setDeadline(Date deadline) {
this.deadline = deadline;
}
public Date getDeadline() {
return deadline;
}
public void setComunicationType(ComunicationType comunicationType) {
this.comunicationType = comunicationType;
}
public ComunicationType getComunicationType() {
return comunicationType;
}
public void setComunicationDate(Date comunicationDate) {
this.comunicationDate = comunicationDate;
}
public Date getComunicationDate() {
return comunicationDate;
}
public void setReviewed(Boolean reviewed) {
this.reviewed = reviewed;
}
public Boolean getReviewed() {
return reviewed;
}
public void setOrder(Order order) {
this.order = order;
}
@NotNull(message = "order not specified")
public Order getOrder() {
return order;
}
}

View file

@ -41,7 +41,7 @@ import org.libreplan.business.calendars.entities.BaseCalendar;
import org.libreplan.business.common.Registry;
import org.libreplan.business.common.entities.EntitySequence;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
import org.libreplan.business.orders.daos.IOrderDAO;
import org.libreplan.business.planner.entities.DayAssignment;
@ -105,7 +105,7 @@ public class Order extends OrderLineGroup implements Comparable {
private CurrentVersionInfo currentVersionInfo;
private Set<CustomerComunication> customerComunications = new HashSet<CustomerComunication>();
private Set<CustomerCommunication> customerCommunications = new HashSet<CustomerCommunication>();
public enum SchedulingMode {
FORWARD, BACKWARDS;
@ -568,12 +568,12 @@ public class Order extends OrderLineGroup implements Comparable {
return this.getName().compareToIgnoreCase(((Order) o).getName());
}
public void setCustomerComunications(Set<CustomerComunication> customerComunications) {
this.customerComunications = customerComunications;
public void setCustomerCommunications(Set<CustomerCommunication> customerCommunications) {
this.customerCommunications = customerCommunications;
}
public Set<CustomerComunication> getCustomerComunications() {
return customerComunications;
public Set<CustomerCommunication> getCustomerCommunications() {
return customerCommunications;
}
}

View file

@ -22,11 +22,11 @@ package org.libreplan.business.planner.daos;
import java.util.List;
import org.libreplan.business.common.daos.IGenericDAO;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
public interface ISubcontractorComunicationDAO extends IGenericDAO<SubcontractorComunication, Long> {
public interface ISubcontractorCommunicationDAO extends IGenericDAO<SubcontractorCommunication, Long> {
List<SubcontractorComunication> getAll();
List<SubcontractorCommunication> getAll();
List<SubcontractorComunication> getAllNotReviewed();
List<SubcontractorCommunication> getAllNotReviewed();
}

View file

@ -24,29 +24,29 @@ import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.libreplan.business.common.daos.GenericDAOHibernate;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;
/**
* DAO for {@link SubcontractorComunication}
* DAO for {@link SubcontractorCommunication}
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
@Repository
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class SubcontractorComunicationDAO extends GenericDAOHibernate<SubcontractorComunication, Long>
implements ISubcontractorComunicationDAO {
public class SubcontractorCommunicationDAO extends GenericDAOHibernate<SubcontractorCommunication, Long>
implements ISubcontractorCommunicationDAO {
@Override
public List<SubcontractorComunication> getAll() {
return list(SubcontractorComunication.class);
public List<SubcontractorCommunication> getAll() {
return list(SubcontractorCommunication.class);
}
@Override
public List<SubcontractorComunication> getAllNotReviewed(){
Criteria c = getSession().createCriteria(SubcontractorComunication.class);
public List<SubcontractorCommunication> getAllNotReviewed(){
Criteria c = getSession().createCriteria(SubcontractorCommunication.class);
c.add(Restrictions.eq("reviewed", false));
return c.list();
}

View file

@ -0,0 +1,125 @@
/*
* This file is part of LibrePlan
*
* Copyright (C) 2011 WirelessGalicia, 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.libreplan.business.planner.entities;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.hibernate.validator.NotNull;
import org.libreplan.business.common.BaseEntity;
import org.libreplan.business.externalcompanies.entities.CommunicationType;
import org.libreplan.business.qualityforms.entities.QualityFormItem;
/**
* Entity {@link SubcontractorCommunication}.
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia>
*/
public class SubcontractorCommunication extends BaseEntity {
private SubcontractedTaskData subcontractedTaskData;
private CommunicationType communicationType;
private Date communicationDate;
private Boolean reviewed = false;
private List<SubcontractorCommunicationValue> subcontractorCommunicationValues = new ArrayList<SubcontractorCommunicationValue>();
// Default constructor, needed by Hibernate
protected SubcontractorCommunication() {
}
private SubcontractorCommunication ( SubcontractedTaskData subcontractedTaskData, CommunicationType communicationType, Date communicationDate, Boolean reviewed){
this.setSubcontractedTaskData(subcontractedTaskData);
this.setCommunicationType(communicationType);
this.setCommunicationDate(communicationDate);
this.setReviewed(reviewed);
}
public static SubcontractorCommunication create(
SubcontractedTaskData subcontractedTaskData,
CommunicationType communicationType, Date communicationDate,
Boolean reviewed) {
return create(new SubcontractorCommunication(subcontractedTaskData,
communicationType, communicationDate, reviewed));
}
public static SubcontractorCommunication create() {
return create(new SubcontractorCommunication());
}
public void setSubcontractedTaskData(SubcontractedTaskData subcontractedTaskData) {
this.subcontractedTaskData = subcontractedTaskData;
}
@NotNull(message="subcontrated task data not specified")
public SubcontractedTaskData getSubcontractedTaskData() {
return subcontractedTaskData;
}
public void setCommunicationType(CommunicationType communicationType) {
this.communicationType = communicationType;
}
public CommunicationType getCommunicationType() {
return communicationType;
}
public void setCommunicationDate(Date communicationDate) {
this.communicationDate = communicationDate;
}
public Date getCommunicationDate() {
return communicationDate;
}
public void setReviewed(Boolean reviewed) {
this.reviewed = reviewed;
}
public Boolean getReviewed() {
return reviewed;
}
public void setSubcontractorCommunicationValues(
List<SubcontractorCommunicationValue> subcontractorCommunicationValues) {
this.subcontractorCommunicationValues = subcontractorCommunicationValues;
}
public List<SubcontractorCommunicationValue> getSubcontractorCommunicationValues() {
return subcontractorCommunicationValues;
}
public SubcontractorCommunicationValue getLastSubcontractorCommunicationValues(){
if (subcontractorCommunicationValues.isEmpty()){
return null;
}
return subcontractorCommunicationValues.get(subcontractorCommunicationValues.size()-1);
}
public Date getLastSubcontractorCommunicationValueDate(){
SubcontractorCommunicationValue value = getLastSubcontractorCommunicationValues();
return (value == null) ? null : value.getDate();
}
}

View file

@ -27,31 +27,31 @@ import org.hibernate.validator.AssertTrue;
import org.libreplan.business.INewObject;
/**
* Entity to represent each {@SubcontractorComunicationValue}.
* Entity to represent each {@SubcontractorCommunicationValue}.
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia>
*/
public class SubcontractorComunicationValue implements INewObject {
public class SubcontractorCommunicationValue implements INewObject {
public static SubcontractorComunicationValue create() {
SubcontractorComunicationValue subcontractorComunicationValue = new SubcontractorComunicationValue();
subcontractorComunicationValue.setNewObject(true);
return subcontractorComunicationValue;
public static SubcontractorCommunicationValue create() {
SubcontractorCommunicationValue subcontractorCommunicationValue = new SubcontractorCommunicationValue();
subcontractorCommunicationValue.setNewObject(true);
return subcontractorCommunicationValue;
}
public static SubcontractorComunicationValue create(Date date,
public static SubcontractorCommunicationValue create(Date date,
BigDecimal progress) {
SubcontractorComunicationValue subcontractorComunicationValue = new SubcontractorComunicationValue(
SubcontractorCommunicationValue subcontractorCommunicationValue = new SubcontractorCommunicationValue(
date, progress);
subcontractorComunicationValue.setNewObject(true);
return subcontractorComunicationValue;
subcontractorCommunicationValue.setNewObject(true);
return subcontractorCommunicationValue;
}
protected SubcontractorComunicationValue() {
protected SubcontractorCommunicationValue() {
}
private SubcontractorComunicationValue(Date date, BigDecimal progress) {
private SubcontractorCommunicationValue(Date date, BigDecimal progress) {
this.setDate(date);
this.setProgress(progress);
}

View file

@ -1,125 +0,0 @@
/*
* This file is part of LibrePlan
*
* Copyright (C) 2011 WirelessGalicia, 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
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.libreplan.business.planner.entities;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.hibernate.validator.NotNull;
import org.libreplan.business.common.BaseEntity;
import org.libreplan.business.externalcompanies.entities.ComunicationType;
import org.libreplan.business.qualityforms.entities.QualityFormItem;
/**
* Entity {@link SubcontractorComunication}.
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia>
*/
public class SubcontractorComunication extends BaseEntity {
private SubcontractedTaskData subcontractedTaskData;
private ComunicationType comunicationType;
private Date comunicationDate;
private Boolean reviewed = false;
private List<SubcontractorComunicationValue> subcontratorComunicationValues = new ArrayList<SubcontractorComunicationValue>();
// Default constructor, needed by Hibernate
protected SubcontractorComunication() {
}
private SubcontractorComunication ( SubcontractedTaskData subcontractedTaskData, ComunicationType comunicationType, Date comunicationDate, Boolean reviewed){
this.setSubcontractedTaskData(subcontractedTaskData);
this.setComunicationType(comunicationType);
this.setComunicationDate(comunicationDate);
this.setReviewed(reviewed);
}
public static SubcontractorComunication create(
SubcontractedTaskData subcontractedTaskData,
ComunicationType comunicationType, Date comunicationDate,
Boolean reviewed) {
return create(new SubcontractorComunication(subcontractedTaskData,
comunicationType, comunicationDate, reviewed));
}
public static SubcontractorComunication create() {
return create(new SubcontractorComunication());
}
public void setSubcontractedTaskData(SubcontractedTaskData subcontractedTaskData) {
this.subcontractedTaskData = subcontractedTaskData;
}
@NotNull(message="subcontrated task data not specified")
public SubcontractedTaskData getSubcontractedTaskData() {
return subcontractedTaskData;
}
public void setComunicationType(ComunicationType comunicationType) {
this.comunicationType = comunicationType;
}
public ComunicationType getComunicationType() {
return comunicationType;
}
public void setComunicationDate(Date comunicationDate) {
this.comunicationDate = comunicationDate;
}
public Date getComunicationDate() {
return comunicationDate;
}
public void setReviewed(Boolean reviewed) {
this.reviewed = reviewed;
}
public Boolean getReviewed() {
return reviewed;
}
public void setSubcontratorComunicationValues(
List<SubcontractorComunicationValue> subcontratorComunicationValues) {
this.subcontratorComunicationValues = subcontratorComunicationValues;
}
public List<SubcontractorComunicationValue> getSubcontratorComunicationValues() {
return subcontratorComunicationValues;
}
public SubcontractorComunicationValue getLastSubcontratorComunicationValues(){
if (subcontratorComunicationValues.isEmpty()){
return null;
}
return subcontratorComunicationValues.get(subcontratorComunicationValues.size()-1);
}
public Date getLastSubcontratorComunicationValueDate(){
SubcontractorComunicationValue value = getLastSubcontratorComunicationValues();
return (value == null) ? null : value.getDate();
}
}

View file

@ -43,6 +43,51 @@
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
<changeSet id="rename-table-customer_comunication-to-customer_communication" author="smontes">
<comment>Rename table customer_comunication to customer_communication</comment>
<renameTable oldTableName="customer_comunication" newTableName="customer_communication" />
</changeSet>
</databaseChangeLog>
<changeSet id="rename-column-comunication_type-to-communication_type" author="smontes">
<comment>Rename column comunication_type to communication_type</comment>
<renameColumn tableName="customer_communication" oldColumnName="comunication_type"
newColumnName="communication_type"/>
</changeSet>
<changeSet id="rename-column-comunication_date-to-communication_date" author="smontes">
<comment>Rename column comunication_date to communication_date</comment>
<renameColumn tableName="customer_communication" oldColumnName="comunication_date"
newColumnName="communication_date"/>
</changeSet>
<changeSet id="rename-table-subcontractor_comunication" author="smontes">
<comment>Rename table subcontractor_comunication to subcontractor_communication</comment>
<renameTable oldTableName="subcontractor_comunication" newTableName="subcontractor_communication" />
</changeSet>
<changeSet id="rename-column-comunication_type-on-subcontractor-communication" author="smontes">
<comment>Rename column comunication_type to communication_type</comment>
<renameColumn tableName="subcontractor_communication" oldColumnName="comunication_type"
newColumnName="communication_type"/>
</changeSet>
<changeSet id="rename-column-comunication_date-on-subcontractor-communication" author="smontes">
<comment>Rename column comunication_date to communication_date</comment>
<renameColumn tableName="subcontractor_communication" oldColumnName="comunication_date"
newColumnName="communication_date"/>
</changeSet>
<changeSet id="rename-table-subcontractor_comunication_values" author="smontes">
<comment>Rename table subcontractor_comunication_values to subcontractor_communication_values</comment>
<renameTable oldTableName="subcontrator_comunication_values" newTableName="subcontractor_communication_values" />
</changeSet>
<changeSet id="rename-column-subcontractor_comunication_id" author="smontes">
<comment>Rename column subcontractor_comunication_id</comment>
<renameColumn tableName="subcontractor_communication_values" oldColumnName="subcontractor_comunication_id"
newColumnName="subcontractor_communication_id"/>
</changeSet>
</databaseChangeLog>

View file

@ -82,7 +82,7 @@
org/libreplan/business/planner/entities/AdvanceConsolidations.hbm.xml
</value>
<value>
org/libreplan/business/planner/entities/SubcontractorComunication.hbm.xml
org/libreplan/business/planner/entities/SubcontractorCommunication.hbm.xml
</value>
<value>
org/libreplan/business/scenarios/entities/Scenarios.hbm.xml

View file

@ -33,8 +33,8 @@
column="company_user" />
</class>
<!-- CustomerComunication -->
<class name="CustomerComunication" table="customer_comunication">
<!-- CustomerCommunication -->
<class name="CustomerCommunication" table="customer_communication">
<id name="id" type="long" access="property">
<generator class="hilo">
<param name="max_lo">100</param>
@ -43,14 +43,14 @@
<version name="version" access="property" type="long" />
<property name="deadline" access="field"/>
<property name="comunicationType" access="field" column="comunication_type">
<property name="communicationType" access="field" column="communication_type">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">
org.libreplan.business.externalcompanies.entities.ComunicationType
org.libreplan.business.externalcompanies.entities.CommunicationType
</param>
</type>
</property>
<property name="comunicationDate" access="field" column="comunication_date" />
<property name="communicationDate" access="field" column="communication_date" />
<property name="reviewed" access="field" column="reviewed" />
<many-to-one name="order" class="org.libreplan.business.orders.entities.Order" column="order_id" />
</class>

View file

@ -146,9 +146,9 @@
class="org.libreplan.business.scenarios.entities.OrderVersion"/>
</map>
<set name="customerComunications" cascade="delete-orphan" inverse="true" >
<set name="customerCommunications" cascade="delete-orphan" inverse="true" >
<key column="order_id" />
<one-to-many class="org.libreplan.business.externalcompanies.entities.CustomerComunication" />
<one-to-many class="org.libreplan.business.externalcompanies.entities.CustomerCommunication" />
</set>
</joined-subclass>

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.libreplan.business.planner.entities"
default-access="field">
<!-- SubcontractorCommunication -->
<class name="SubcontractorCommunication" table="subcontractor_communication">
<id name="id" type="long" access="property">
<generator class="hilo">
<param name="max_lo">100</param>
</generator>
</id>
<version name="version" access="property" type="long" />
<property name="communicationType" access="field"
column="communication_type">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">
org.libreplan.business.externalcompanies.entities.CommunicationType
</param>
</type>
</property>
<property name="communicationDate" access="field"
column="communication_date" />
<property name="reviewed" access="field" column="reviewed" />
<many-to-one name="subcontractedTaskData"
class="org.libreplan.business.planner.entities.SubcontractedTaskData"
column="Subcontracted_task_data" />
<list name="subcontractorCommunicationValues" table="subcontractor_communication_values">
<key column="subcontractor_communication_id" />
<index column="idx" />
<composite-element
class="org.libreplan.business.planner.entities.SubcontractorCommunicationValue">
<property name="date" access="field" />
<property name="progress" access="field" />
</composite-element>
</list>
</class>
</hibernate-mapping>

View file

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.libreplan.business.planner.entities" default-access="field">
<!-- SubcontractorComunication -->
<class name="SubcontractorComunication" table="subcontractor_comunication">
<id name="id" type="long" access="property">
<generator class="hilo">
<param name="max_lo">100</param>
</generator>
</id>
<version name="version" access="property" type="long" />
<property name="comunicationType" access="field" column="comunication_type">
<type name="org.hibernate.type.EnumType">
<param name="enumClass">
org.libreplan.business.externalcompanies.entities.ComunicationType
</param>
</type>
</property>
<property name="comunicationDate" access="field" column="comunication_date" />
<property name="reviewed" access="field" column="reviewed" />
<many-to-one name="subcontractedTaskData" class="org.libreplan.business.planner.entities.SubcontractedTaskData" column="Subcontracted_task_data" />
<list name="subcontratorComunicationValues" table="subcontrator_comunication_values">
<key column="subcontractor_comunication_id"/>
<index column="idx"/>
<composite-element class="org.libreplan.business.planner.entities.SubcontractorComunicationValue">
<property name="date" access="field"/>
<property name="progress" access="field"/>
</composite-element>
</list>
</class>
</hibernate-mapping>

View file

@ -39,8 +39,8 @@ import org.libreplan.business.common.IAdHocTransactionService;
import org.libreplan.business.common.IOnTransaction;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.externalcompanies.daos.ICustomerComunicationDAO;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.daos.ICustomerCommunicationDAO;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
import org.libreplan.business.orders.daos.IOrderDAO;
import org.libreplan.business.orders.entities.Order;
@ -54,7 +54,7 @@ import org.springframework.transaction.annotation.Transactional;
import static org.junit.Assert.assertTrue;
/**
* Tests for {@link CustomerComunication}
* Tests for {@link CustomerCommunication}
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
@ -62,10 +62,10 @@ import static org.junit.Assert.assertTrue;
@ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE,
BUSINESS_SPRING_CONFIG_TEST_FILE })
@Transactional
public class CustomerComunicationDAOTest {
public class CustomerCommunicationDAOTest {
@Autowired
ICustomerComunicationDAO customerComunicationDAO;
ICustomerCommunicationDAO customerCommunicationDAO;
@Autowired
IOrderDAO orderDAO;
@ -91,12 +91,12 @@ public class CustomerComunicationDAOTest {
return date.toDateTimeAtStartOfDay().toDate();
}
public CustomerComunication createValidCustomerComunication() {
public CustomerCommunication createValidCustomerCommunication() {
Order order = createValidOrder("Order A");
CustomerComunication customerComunication = CustomerComunication
CustomerCommunication customerCommunication = CustomerCommunication
.createTodayNewProject(givenDeadLine(2));
customerComunication.setOrder(order);
return customerComunication;
customerCommunication.setOrder(order);
return customerCommunication;
}
@Test
@ -105,35 +105,35 @@ public class CustomerComunicationDAOTest {
}
@Test
public void testCustomerComunicationDAOInSpringContainer() {
assertNotNull(customerComunicationDAO);
public void testCustomerCommunicationDAOInSpringContainer() {
assertNotNull(customerCommunicationDAO);
}
@Test
public void testSaveCustomerComunication() {
CustomerComunication customerComunication = createValidCustomerComunication();
customerComunicationDAO.save(customerComunication);
assertTrue(customerComunication.getId() != null);
public void testSaveCustomerCommunication() {
CustomerCommunication customerCommunication = createValidCustomerCommunication();
customerCommunicationDAO.save(customerCommunication);
assertTrue(customerCommunication.getId() != null);
}
@Test
public void testRemoveCustomerComunication()
public void testRemoveCustomerCommunication()
throws InstanceNotFoundException {
CustomerComunication customerComunication = createValidCustomerComunication();
customerComunicationDAO.save(customerComunication);
assertTrue(customerComunication.getId() != null);
customerComunicationDAO.remove(customerComunication.getId());
assertFalse(customerComunicationDAO
.exists(customerComunication.getId()));
CustomerCommunication customerCommunication = createValidCustomerCommunication();
customerCommunicationDAO.save(customerCommunication);
assertTrue(customerCommunication.getId() != null);
customerCommunicationDAO.remove(customerCommunication.getId());
assertFalse(customerCommunicationDAO
.exists(customerCommunication.getId()));
}
@Test
public void testSaveCustomerComunicationWithoutOrder()
public void testSaveCustomerCommunicationWithoutOrder()
throws InstanceNotFoundException {
CustomerComunication customerComunication = createValidCustomerComunication();
customerComunication.setOrder(null);
CustomerCommunication customerCommunication = createValidCustomerCommunication();
customerCommunication.setOrder(null);
try {
customerComunicationDAO.save(customerComunication);
customerCommunicationDAO.save(customerCommunication);
fail("It should throw an exception");
} catch (ValidationException e) {
// Ok

View file

@ -43,10 +43,10 @@ import org.libreplan.business.common.IOnTransaction;
import org.libreplan.business.common.daos.IConfigurationDAO;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.externalcompanies.daos.ICustomerComunicationDAO;
import org.libreplan.business.externalcompanies.daos.ICustomerCommunicationDAO;
import org.libreplan.business.externalcompanies.daos.IExternalCompanyDAO;
import org.libreplan.business.externalcompanies.entities.ComunicationType;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.entities.CommunicationType;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
import org.libreplan.business.orders.daos.IOrderDAO;
import org.libreplan.business.orders.entities.HoursGroup;
@ -56,11 +56,11 @@ import org.libreplan.business.orders.entities.SchedulingDataForVersion;
import org.libreplan.business.orders.entities.TaskSource;
import org.libreplan.business.orders.entities.TaskSource.TaskSourceSynchronization;
import org.libreplan.business.planner.daos.ISubcontractedTaskDataDAO;
import org.libreplan.business.planner.daos.ISubcontractorComunicationDAO;
import org.libreplan.business.planner.daos.ISubcontractorCommunicationDAO;
import org.libreplan.business.planner.daos.ITaskElementDAO;
import org.libreplan.business.planner.daos.ITaskSourceDAO;
import org.libreplan.business.planner.entities.SubcontractedTaskData;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
import org.libreplan.business.planner.entities.Task;
import org.libreplan.business.scenarios.IScenarioManager;
import org.libreplan.business.scenarios.bootstrap.IScenariosBootstrap;
@ -75,7 +75,7 @@ import org.springframework.transaction.annotation.Transactional;
import static org.junit.Assert.assertTrue;
/**
* Tests for {@link SubcontractorComunication}
* Tests for {@link SubcontractorCommunication}
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
@ -83,10 +83,10 @@ import static org.junit.Assert.assertTrue;
@ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE,
BUSINESS_SPRING_CONFIG_TEST_FILE })
@Transactional
public class SubcontractorComunicationDAOTest {
public class SubcontractorCommunicationDAOTest {
@Autowired
ISubcontractorComunicationDAO subcontractorComunicationDAO;
ISubcontractorCommunicationDAO subcontractorCommunicationDAO;
@Autowired
ISubcontractedTaskDataDAO subcontractedTaskDataDAO;
@ -204,45 +204,45 @@ public class SubcontractorComunicationDAOTest {
return subcontractedTaskData;
}
public SubcontractorComunication createValidSubcontractorComunication(){
public SubcontractorCommunication createValidSubcontractorCommunication(){
SubcontractedTaskData subcontractedTaskData = createValidSubcontractedTaskData("Task A");
Date comunicationDate = new Date();
SubcontractorComunication subcontractorComunication = SubcontractorComunication
.create(subcontractedTaskData, ComunicationType.NEW_PROJECT,
comunicationDate, false);
return subcontractorComunication;
Date communicationDate = new Date();
SubcontractorCommunication subcontractorCommunication = SubcontractorCommunication
.create(subcontractedTaskData, CommunicationType.NEW_PROJECT,
communicationDate, false);
return subcontractorCommunication;
}
@Test
public void testSubcontractorComunicationDAOInSpringContainer() {
assertNotNull(subcontractorComunicationDAO);
public void testSubcontractorCommunicationDAOInSpringContainer() {
assertNotNull(subcontractorCommunicationDAO);
}
@Test
public void testSaveCustomerComunication() {
SubcontractorComunication subcontractorComunication = createValidSubcontractorComunication();
subcontractorComunicationDAO.save(subcontractorComunication);
assertTrue(subcontractorComunication.getId() != null);
public void testSaveCustomerCommunication() {
SubcontractorCommunication subcontractorCommunication = createValidSubcontractorCommunication();
subcontractorCommunicationDAO.save(subcontractorCommunication);
assertTrue(subcontractorCommunication.getId() != null);
}
@Test
public void testRemoveCustomerComunication()
public void testRemoveCustomerCommunication()
throws InstanceNotFoundException {
SubcontractorComunication customerComunication = createValidSubcontractorComunication();
subcontractorComunicationDAO.save(customerComunication);
assertTrue(customerComunication.getId() != null);
subcontractorComunicationDAO.remove(customerComunication.getId());
assertFalse(subcontractorComunicationDAO
.exists(customerComunication.getId()));
SubcontractorCommunication customerCommunication = createValidSubcontractorCommunication();
subcontractorCommunicationDAO.save(customerCommunication);
assertTrue(customerCommunication.getId() != null);
subcontractorCommunicationDAO.remove(customerCommunication.getId());
assertFalse(subcontractorCommunicationDAO
.exists(customerCommunication.getId()));
}
@Test
public void testSaveCustomerComunicationWithoutSubcontratedTaskData()
public void testSaveCustomerCommunicationWithoutSubcontratedTaskData()
throws InstanceNotFoundException {
SubcontractorComunication subcontractorComunication = createValidSubcontractorComunication();
subcontractorComunication.setSubcontractedTaskData(null);
SubcontractorCommunication subcontractorCommunication = createValidSubcontractorCommunication();
subcontractorCommunication.setSubcontractedTaskData(null);
try {
subcontractorComunicationDAO.save(subcontractorComunication);
subcontractorCommunicationDAO.save(subcontractorCommunication);
fail("It should throw an exception");
} catch (ValidationException e) {
// Ok

View file

@ -88,7 +88,7 @@
org/libreplan/business/planner/entities/AdvanceConsolidations.hbm.xml
</value>
<value>
org/libreplan/business/planner/entities/SubcontractorComunication.hbm.xml
org/libreplan/business/planner/entities/SubcontractorCommunication.hbm.xml
</value>
<value>
org/libreplan/business/scenarios/entities/Scenarios.hbm.xml

View file

@ -299,9 +299,9 @@ public class CustomMenuController extends Div implements IMenuItemsRegister {
}
resourcesItems.add(subItem(_("Subcontracting"), "/subcontract/subcontractedTasks.zul", "",
subItem(_("Subcontracted Tasks"), "/subcontract/subcontractedTasks.zul", ""),
subItem(_("Incoming communications from subcontractors"), "/subcontract/subcontractorComunications.zul",""),
subItem(_("Incoming communications from subcontractors"), "/subcontract/subcontractorCommunications.zul",""),
subItem(_("Report Progress"), "/subcontract/reportAdvances.zul", ""),
subItem(_("Customer subcontracted projects communications"), "/subcontract/customerComunications.zul","")));
subItem(_("Customer subcontracted projects communications"), "/subcontract/customerCommunications.zul","")));
topItem(_("Resources"), "/resources/worker/worker.zul", "", resourcesItems);
if (isScenariosVisible()) {

View file

@ -29,8 +29,8 @@ import javax.annotation.Resource;
import org.apache.commons.logging.LogFactory;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.externalcompanies.entities.ComunicationType;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.entities.CommunicationType;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.web.common.IMessagesForUser;
import org.libreplan.web.common.MessagesForUser;
@ -49,19 +49,19 @@ import org.zkoss.zul.RowRenderer;
import org.zkoss.zul.SimpleListModel;
/**
* Controller for CRUD actions over a {@link CustomerComunication}
* Controller for CRUD actions over a {@link CustomerCommunication}
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
@SuppressWarnings("serial")
public class CustomerComunicationCRUDController extends GenericForwardComposer {
public class CustomerCommunicationCRUDController extends GenericForwardComposer {
private static final org.apache.commons.logging.Log LOG = LogFactory
.getLog(CustomerComunicationCRUDController.class);
.getLog(CustomerCommunicationCRUDController.class);
private ICustomerComunicationModel customerComunicationModel;
private ICustomerCommunicationModel customerCommunicationModel;
private CustomerComunicationRenderer customerComunicationRenderer = new CustomerComunicationRenderer();;
private CustomerCommunicationRenderer customerCommunicationRenderer = new CustomerCommunicationRenderer();;
protected IMessagesForUser messagesForUser;
@ -79,67 +79,67 @@ public class CustomerComunicationCRUDController extends GenericForwardComposer {
messagesForUser = new MessagesForUser(messagesContainer);
}
public void goToEdit(CustomerComunication customerComunication) {
if(customerComunication != null && customerComunication.getOrder() != null){
Order order = customerComunication.getOrder();
public void goToEdit(CustomerCommunication customerCommunication) {
if(customerCommunication != null && customerCommunication.getOrder() != null){
Order order = customerCommunication.getOrder();
globalView.goToOrderDetails(order);
}
}
public FilterComunicationEnum[] getFilterItems(){
return FilterComunicationEnum.values();
public FilterCommunicationEnum[] getFilterItems(){
return FilterCommunicationEnum.values();
}
public FilterComunicationEnum getCurrentFilterItem() {
return customerComunicationModel.getCurrentFilter();
public FilterCommunicationEnum getCurrentFilterItem() {
return customerCommunicationModel.getCurrentFilter();
}
public void setCurrentFilterItem(FilterComunicationEnum selected) {
customerComunicationModel.setCurrentFilter(selected);
public void setCurrentFilterItem(FilterCommunicationEnum selected) {
customerCommunicationModel.setCurrentFilter(selected);
// update the customer comunication list
listing.setModel(new SimpleListModel(getCustomerComunications()));
// update the customer communication list
listing.setModel(new SimpleListModel(getCustomerCommunications()));
listing.invalidate();
}
protected void save(CustomerComunication customerComunication)
protected void save(CustomerCommunication customerCommunication)
throws ValidationException {
customerComunicationModel.confirmSave(customerComunication);
customerCommunicationModel.confirmSave(customerCommunication);
}
public List<CustomerComunication> getCustomerComunications() {
FilterComunicationEnum currentFilter = customerComunicationModel.getCurrentFilter();
public List<CustomerCommunication> getCustomerCommunications() {
FilterCommunicationEnum currentFilter = customerCommunicationModel.getCurrentFilter();
switch(currentFilter){
case ALL: return customerComunicationModel.getCustomerAllComunications();
case NOT_REVIEWED: return customerComunicationModel.getCustomerComunicationWithoutReviewed();
default: return customerComunicationModel.getCustomerAllComunications();
case ALL: return customerCommunicationModel.getCustomerAllCommunications();
case NOT_REVIEWED: return customerCommunicationModel.getCustomerCommunicationWithoutReviewed();
default: return customerCommunicationModel.getCustomerAllCommunications();
}
}
public CustomerComunicationRenderer getCustomerComunicationRenderer() {
return customerComunicationRenderer;
public CustomerCommunicationRenderer getCustomerCommunicationRenderer() {
return customerCommunicationRenderer;
}
private class CustomerComunicationRenderer implements
private class CustomerCommunicationRenderer implements
RowRenderer {
@Override
public void render(Row row, Object data) {
CustomerComunication customerComunication = (CustomerComunication) data;
row.setValue(customerComunication);
CustomerCommunication customerCommunication = (CustomerCommunication) data;
row.setValue(customerCommunication);
final ComunicationType type = customerComunication.getComunicationType();
appendLabel(row, type.toString());
final CommunicationType type = customerCommunication.getCommunicationType();
appendLabel(row, toString(type));
appendLabel(row, customerComunication.getOrder().getName());
appendLabel(row, toString(customerComunication.getDeadline()));
appendLabel(row, customerComunication.getOrder().getCode());
appendLabel(row, customerComunication.getOrder()
appendLabel(row, customerCommunication.getOrder().getName());
appendLabel(row, toString(customerCommunication.getDeadline()));
appendLabel(row, customerCommunication.getOrder().getCode());
appendLabel(row, customerCommunication.getOrder()
.getCustomerReference());
appendLabel(row,
toString(customerComunication.getComunicationDate()));
appendCheckbox(row, customerComunication);
appendOperations(row, customerComunication);
toString(customerCommunication.getCommunicationDate()));
appendCheckbox(row, customerCommunication);
appendOperations(row, customerCommunication);
}
private String toString(Date date) {
@ -150,22 +150,29 @@ public class CustomerComunicationCRUDController extends GenericForwardComposer {
return new SimpleDateFormat("dd/MM/yyyy HH:mm").format(date);
}
private String toString(Object object) {
if (object == null) {
return "";
}
return object.toString();
}
private void appendLabel(Row row, String label) {
row.appendChild(new Label(label));
}
private void appendCheckbox(Row row,
final CustomerComunication customerComunication) {
final CustomerCommunication customerCommunication) {
final Checkbox checkBoxReviewed = new Checkbox();
checkBoxReviewed.setChecked(customerComunication.getReviewed());
checkBoxReviewed.setChecked(customerCommunication.getReviewed());
checkBoxReviewed.addEventListener(Events.ON_CHECK,
new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
customerComunication.setReviewed(checkBoxReviewed.isChecked());
save(customerComunication);
customerCommunication.setReviewed(checkBoxReviewed.isChecked());
save(customerCommunication);
}
});
@ -174,13 +181,13 @@ public class CustomerComunicationCRUDController extends GenericForwardComposer {
}
private void appendOperations(Row row,
final CustomerComunication customerComunication) {
final CustomerCommunication customerCommunication) {
Button buttonEdit = new Button(_("edit"));
buttonEdit.addEventListener(Events.ON_CLICK, new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
goToEdit(customerComunication);
goToEdit(customerCommunication);
}
});

View file

@ -21,8 +21,8 @@ package org.libreplan.web.subcontract;
import java.util.List;
import org.libreplan.business.externalcompanies.daos.ICustomerComunicationDAO;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.daos.ICustomerCommunicationDAO;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
import org.libreplan.web.common.concurrentdetection.OnConcurrentModification;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
@ -32,51 +32,51 @@ import org.springframework.transaction.annotation.Transactional;
@Service
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
@OnConcurrentModification(goToPage = "/subcontract/customerComunication.zul")
public class CustomerComunicationModel implements ICustomerComunicationModel{
@OnConcurrentModification(goToPage = "/subcontract/customerCommunication.zul")
public class CustomerCommunicationModel implements ICustomerCommunicationModel{
@Autowired
private ICustomerComunicationDAO customerComunicationDAO;
private ICustomerCommunicationDAO customerCommunicationDAO;
private FilterComunicationEnum currentFilter = FilterComunicationEnum.NOT_REVIEWED;
private FilterCommunicationEnum currentFilter = FilterCommunicationEnum.NOT_REVIEWED;
@Override
@Transactional
public void confirmSave(CustomerComunication customerComunication){
customerComunicationDAO.save(customerComunication);
public void confirmSave(CustomerCommunication customerCommunication){
customerCommunicationDAO.save(customerCommunication);
}
@Override
@Transactional
public List<CustomerComunication> getCustomerAllComunications(){
List<CustomerComunication> list = customerComunicationDAO.getAll();
public List<CustomerCommunication> getCustomerAllCommunications(){
List<CustomerCommunication> list = customerCommunicationDAO.getAll();
forceLoadAssociatedData(list);
return list;
}
@Override
@Transactional
public List<CustomerComunication> getCustomerComunicationWithoutReviewed(){
List<CustomerComunication> list = customerComunicationDAO.getAllNotReviewed();
public List<CustomerCommunication> getCustomerCommunicationWithoutReviewed(){
List<CustomerCommunication> list = customerCommunicationDAO.getAllNotReviewed();
forceLoadAssociatedData(list);
return list;
}
private void forceLoadAssociatedData(List<CustomerComunication> customerComunicationList){
if (customerComunicationList != null) {
for (CustomerComunication customerComunication : customerComunicationList) {
customerComunication.getOrder().getName();
private void forceLoadAssociatedData(List<CustomerCommunication> customerCommunicationList){
if (customerCommunicationList != null) {
for (CustomerCommunication customerCommunication : customerCommunicationList) {
customerCommunication.getOrder().getName();
}
}
}
@Override
public void setCurrentFilter(FilterComunicationEnum currentFilter) {
public void setCurrentFilter(FilterCommunicationEnum currentFilter) {
this.currentFilter = currentFilter;
}
@Override
public FilterComunicationEnum getCurrentFilter() {
public FilterCommunicationEnum getCurrentFilter() {
return currentFilter;
}
}

View file

@ -20,11 +20,11 @@
package org.libreplan.web.subcontract;
/**
* Enum to filter the {@link CustomerComunication} list.
* Enum to filter the {@link CustomerCommunication} list.
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
public enum FilterComunicationEnum {
public enum FilterCommunicationEnum {
ALL(_("All")), NOT_REVIEWED(_("Not Reviewed"));
/**
@ -36,11 +36,11 @@ public enum FilterComunicationEnum {
private String displayName;
private FilterComunicationEnum(String displayName) {
private FilterCommunicationEnum(String displayName) {
this.displayName = displayName;
}
public static FilterComunicationEnum getDefault() {
public static FilterCommunicationEnum getDefault() {
return ALL;
}

View file

@ -21,18 +21,18 @@ package org.libreplan.web.subcontract;
import java.util.List;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
public interface ICustomerComunicationModel {
public interface ICustomerCommunicationModel {
void confirmSave(CustomerComunication customerComunication);
void confirmSave(CustomerCommunication customerCommunication);
List<CustomerComunication> getCustomerComunicationWithoutReviewed();
List<CustomerCommunication> getCustomerCommunicationWithoutReviewed();
List<CustomerComunication> getCustomerAllComunications();
List<CustomerCommunication> getCustomerAllCommunications();
void setCurrentFilter(FilterComunicationEnum currentFilter);
void setCurrentFilter(FilterCommunicationEnum currentFilter);
FilterComunicationEnum getCurrentFilter();
FilterCommunicationEnum getCurrentFilter();
}

View file

@ -24,19 +24,19 @@ import java.util.List;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.planner.entities.SubcontractedTaskData;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
public interface ISubcontractorComunicationModel {
public interface ISubcontractorCommunicationModel {
void confirmSave(SubcontractorComunication customerComunication);
void confirmSave(SubcontractorCommunication customerCommunication);
List<SubcontractorComunication> getSubcontractorComunicationWithoutReviewed();
List<SubcontractorCommunication> getSubcontractorCommunicationWithoutReviewed();
List<SubcontractorComunication> getSubcontractorAllComunications();
List<SubcontractorCommunication> getSubcontractorAllCommunications();
void setCurrentFilter(FilterComunicationEnum currentFilter);
void setCurrentFilter(FilterCommunicationEnum currentFilter);
FilterComunicationEnum getCurrentFilter();
FilterCommunicationEnum getCurrentFilter();
String getOrderCode(SubcontractedTaskData subcontractedTaskData);

View file

@ -29,17 +29,14 @@ import javax.annotation.Resource;
import org.apache.commons.logging.LogFactory;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.externalcompanies.entities.ComunicationType;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.planner.entities.SubcontractedTaskData;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorComunicationValue;
import org.libreplan.business.planner.entities.Task;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
import org.libreplan.business.planner.entities.SubcontractorCommunicationValue;
import org.libreplan.business.planner.entities.TaskElement;
import org.libreplan.web.common.IMessagesForUser;
import org.libreplan.web.common.MessagesForUser;
import org.libreplan.web.common.Util;
import org.libreplan.web.planner.tabs.IGlobalViewEntryPoints;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
@ -50,26 +47,25 @@ import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Grid;
import org.zkoss.zul.Label;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Popup;
import org.zkoss.zul.Row;
import org.zkoss.zul.RowRenderer;
import org.zkoss.zul.SimpleListModel;
/**
* Controller for CRUD actions over a {@link SubcontractorComunication}
* Controller for CRUD actions over a {@link SubcontractorCommunication}
*
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/
@SuppressWarnings("serial")
public class SubcontractorComunicationCRUDController extends GenericForwardComposer {
public class SubcontractorCommunicationCRUDController extends GenericForwardComposer {
private static final org.apache.commons.logging.Log LOG = LogFactory
.getLog(SubcontractorComunicationCRUDController.class);
.getLog(SubcontractorCommunicationCRUDController.class);
private ISubcontractorComunicationModel subcontractorComunicationModel;
private ISubcontractorCommunicationModel subcontractorCommunicationModel;
private SubcontractorComunicationRenderer subcontractorComunicationRenderer = new SubcontractorComunicationRenderer();;
private SubcontractorCommunicationRenderer subcontractorCommunicationRenderer = new SubcontractorCommunicationRenderer();
protected IMessagesForUser messagesForUser;
@ -93,66 +89,66 @@ public class SubcontractorComunicationCRUDController extends GenericForwardCompo
messagesForUser = new MessagesForUser(messagesContainer);
}
public void goToEdit(SubcontractorComunication subcontractorComunication) {
if(subcontractorComunication != null){
TaskElement task = subcontractorComunication.getSubcontractedTaskData().getTask();
public void goToEdit(SubcontractorCommunication subcontractorCommunication) {
if(subcontractorCommunication != null){
TaskElement task = subcontractorCommunication.getSubcontractedTaskData().getTask();
OrderElement orderElement = task.getOrderElement();
Order order = subcontractorComunicationModel.getOrder(orderElement);
Order order = subcontractorCommunicationModel.getOrder(orderElement);
globalView.goToAdvanceTask(order,task);
}
}
public FilterComunicationEnum[] getFilterItems(){
return FilterComunicationEnum.values();
public FilterCommunicationEnum[] getFilterItems(){
return FilterCommunicationEnum.values();
}
public FilterComunicationEnum getCurrentFilterItem() {
return subcontractorComunicationModel.getCurrentFilter();
public FilterCommunicationEnum getCurrentFilterItem() {
return subcontractorCommunicationModel.getCurrentFilter();
}
public void setCurrentFilterItem(FilterComunicationEnum selected) {
subcontractorComunicationModel.setCurrentFilter(selected);
public void setCurrentFilterItem(FilterCommunicationEnum selected) {
subcontractorCommunicationModel.setCurrentFilter(selected);
// update the subcontractor comunication list
listing.setModel(new SimpleListModel(getSubcontractorComunications()));
// update the subcontractor communication list
listing.setModel(new SimpleListModel(getSubcontractorCommunications()));
listing.invalidate();
}
protected void save(SubcontractorComunication subcontractorComunication)
protected void save(SubcontractorCommunication subcontractorCommunication)
throws ValidationException {
subcontractorComunicationModel.confirmSave(subcontractorComunication);
subcontractorCommunicationModel.confirmSave(subcontractorCommunication);
}
public List<SubcontractorComunication> getSubcontractorComunications() {
FilterComunicationEnum currentFilter = subcontractorComunicationModel.getCurrentFilter();
public List<SubcontractorCommunication> getSubcontractorCommunications() {
FilterCommunicationEnum currentFilter = subcontractorCommunicationModel.getCurrentFilter();
switch(currentFilter){
case ALL: return subcontractorComunicationModel.getSubcontractorAllComunications();
case NOT_REVIEWED: return subcontractorComunicationModel.getSubcontractorComunicationWithoutReviewed();
default: return subcontractorComunicationModel.getSubcontractorAllComunications();
case ALL: return subcontractorCommunicationModel.getSubcontractorAllCommunications();
case NOT_REVIEWED: return subcontractorCommunicationModel.getSubcontractorCommunicationWithoutReviewed();
default: return subcontractorCommunicationModel.getSubcontractorAllCommunications();
}
}
public SubcontractorComunicationRenderer getSubcontractorComunicationRenderer() {
return subcontractorComunicationRenderer;
public SubcontractorCommunicationRenderer getSubcontractorCommunicationRenderer() {
return subcontractorCommunicationRenderer;
}
private class SubcontractorComunicationRenderer implements
private class SubcontractorCommunicationRenderer implements
RowRenderer {
@Override
public void render(Row row, Object data) {
SubcontractorComunication subcontractorComunication = (SubcontractorComunication) data;
row.setValue(subcontractorComunication);
SubcontractorCommunication subcontractorCommunication = (SubcontractorCommunication) data;
row.setValue(subcontractorCommunication);
appendLabel(row, subcontractorComunication.getComunicationType().toString());
appendLabel(row, subcontractorComunication.getSubcontractedTaskData().getTask().getName());
appendLabel(row, getOrderName(subcontractorComunication.getSubcontractedTaskData()));
appendLabel(row, getOrderCode(subcontractorComunication.getSubcontractedTaskData()));
appendLabel(row, subcontractorComunication.getSubcontractedTaskData().getExternalCompany().getName());
appendLabel(row, toString(subcontractorComunication.getComunicationDate()));
appendLabelWitTooltip(row,subcontractorComunication);
appendCheckbox(row, subcontractorComunication);
appendOperations(row, subcontractorComunication);
appendLabel(row, subcontractorCommunication.getCommunicationType().toString());
appendLabel(row, subcontractorCommunication.getSubcontractedTaskData().getTask().getName());
appendLabel(row, getOrderName(subcontractorCommunication.getSubcontractedTaskData()));
appendLabel(row, getOrderCode(subcontractorCommunication.getSubcontractedTaskData()));
appendLabel(row, subcontractorCommunication.getSubcontractedTaskData().getExternalCompany().getName());
appendLabel(row, toString(subcontractorCommunication.getCommunicationDate()));
appendLabelWitTooltip(row,subcontractorCommunication);
appendCheckbox(row, subcontractorCommunication);
appendOperations(row, subcontractorCommunication);
}
private String toString(Date date) {
@ -164,17 +160,17 @@ public class SubcontractorComunicationCRUDController extends GenericForwardCompo
}
private String getOrderCode(SubcontractedTaskData subcontractedTaskData) {
return subcontractorComunicationModel.getOrderCode(subcontractedTaskData);
return subcontractorCommunicationModel.getOrderCode(subcontractedTaskData);
}
private String getOrderName(SubcontractedTaskData subcontractedTaskData) {
return subcontractorComunicationModel.getOrderName(subcontractedTaskData);
return subcontractorCommunicationModel.getOrderName(subcontractedTaskData);
}
private String getLastValue(
SubcontractorComunication subcontractorComunication) {
SubcontractorComunicationValue value = subcontractorComunication
.getLastSubcontratorComunicationValues();
SubcontractorCommunication subcontractorCommunication) {
SubcontractorCommunicationValue value = subcontractorCommunication
.getLastSubcontractorCommunicationValues();
return (value != null) ? value.toString() : "";
}
@ -182,8 +178,8 @@ public class SubcontractorComunicationCRUDController extends GenericForwardCompo
row.appendChild(new Label(label));
}
private void appendLabelWitTooltip(final Row row,final SubcontractorComunication subcontractorComunication) {
String lastValue = getLastValue(subcontractorComunication);
private void appendLabelWitTooltip(final Row row,final SubcontractorCommunication subcontractorCommunication) {
String lastValue = getLastValue(subcontractorCommunication);
final Label compLabel = new Label(lastValue);
compLabel.setTooltip(pp);
@ -191,8 +187,8 @@ public class SubcontractorComunicationCRUDController extends GenericForwardCompo
new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
List<SubcontractorComunicationValue> model = subcontractorComunication
.getSubcontratorComunicationValues();
List<SubcontractorCommunicationValue> model = subcontractorCommunication
.getSubcontractorCommunicationValues();
listingValues.setModel(new SimpleListModel(model));
listingValues.invalidate();
}
@ -201,17 +197,17 @@ public class SubcontractorComunicationCRUDController extends GenericForwardCompo
}
private void appendCheckbox(Row row,
final SubcontractorComunication subcontractorComunication) {
final SubcontractorCommunication subcontractorCommunication) {
final Checkbox checkBoxReviewed = new Checkbox();
checkBoxReviewed.setChecked(subcontractorComunication.getReviewed());
checkBoxReviewed.setChecked(subcontractorCommunication.getReviewed());
checkBoxReviewed.addEventListener(Events.ON_CHECK,
new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
subcontractorComunication.setReviewed(checkBoxReviewed.isChecked());
save(subcontractorComunication);
subcontractorCommunication.setReviewed(checkBoxReviewed.isChecked());
save(subcontractorCommunication);
}
});
@ -220,13 +216,13 @@ public class SubcontractorComunicationCRUDController extends GenericForwardCompo
}
private void appendOperations(Row row,
final SubcontractorComunication subcontractorComunication) {
final SubcontractorCommunication subcontractorCommunication) {
Button buttonEdit = new Button(_("edit"));
buttonEdit.addEventListener(Events.ON_CLICK, new EventListener() {
@Override
public void onEvent(Event arg0) throws Exception {
goToEdit(subcontractorComunication);
goToEdit(subcontractorCommunication);
}
});

View file

@ -24,10 +24,10 @@ import java.util.List;
import org.libreplan.business.orders.daos.IOrderDAO;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.planner.daos.ISubcontractorComunicationDAO;
import org.libreplan.business.planner.daos.ISubcontractorCommunicationDAO;
import org.libreplan.business.planner.entities.SubcontractedTaskData;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorComunicationValue;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
import org.libreplan.business.planner.entities.SubcontractorCommunicationValue;
import org.libreplan.business.planner.entities.Task;
import org.libreplan.web.common.concurrentdetection.OnConcurrentModification;
import org.springframework.beans.factory.annotation.Autowired;
@ -38,53 +38,53 @@ import org.springframework.transaction.annotation.Transactional;
@Service
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
@OnConcurrentModification(goToPage = "/subcontract/subcontractorComunication.zul")
public class SubcontractorComunicationModel implements ISubcontractorComunicationModel{
@OnConcurrentModification(goToPage = "/subcontract/subcontractorCommunication.zul")
public class SubcontractorCommunicationModel implements ISubcontractorCommunicationModel{
@Autowired
private ISubcontractorComunicationDAO subcontractorComunicationDAO;
private ISubcontractorCommunicationDAO subcontractorCommunicationDAO;
@Autowired
IOrderDAO orderDAO;
private FilterComunicationEnum currentFilter = FilterComunicationEnum.NOT_REVIEWED;
private FilterCommunicationEnum currentFilter = FilterCommunicationEnum.NOT_REVIEWED;
@Override
@Transactional
public void confirmSave(SubcontractorComunication subcontractorComunication){
subcontractorComunicationDAO.save(subcontractorComunication);
public void confirmSave(SubcontractorCommunication subcontractorCommunication){
subcontractorCommunicationDAO.save(subcontractorCommunication);
}
@Override
@Transactional
public List<SubcontractorComunication> getSubcontractorAllComunications(){
List<SubcontractorComunication> list = subcontractorComunicationDAO.getAll();
public List<SubcontractorCommunication> getSubcontractorAllCommunications(){
List<SubcontractorCommunication> list = subcontractorCommunicationDAO.getAll();
forceLoadAssociatedData(list);
return list;
}
@Override
@Transactional
public List<SubcontractorComunication> getSubcontractorComunicationWithoutReviewed(){
List<SubcontractorComunication> list = subcontractorComunicationDAO.getAllNotReviewed();
public List<SubcontractorCommunication> getSubcontractorCommunicationWithoutReviewed(){
List<SubcontractorCommunication> list = subcontractorCommunicationDAO.getAllNotReviewed();
forceLoadAssociatedData(list);
return list;
}
private void forceLoadAssociatedData(List<SubcontractorComunication> subcontractorComunicationList){
if (subcontractorComunicationList != null) {
for (SubcontractorComunication subcontractorComunication : subcontractorComunicationList) {
subcontractorComunication.getSubcontractedTaskData().getExternalCompany().getName();
subcontractorComunication.getSubcontractedTaskData().getTask().getName();
subcontractorComunication.getSubcontractedTaskData().getTask().getOrderElement().getName();
subcontractorComunication.getLastSubcontratorComunicationValues().getDate();
private void forceLoadAssociatedData(List<SubcontractorCommunication> subcontractorCommunicationList){
if (subcontractorCommunicationList != null) {
for (SubcontractorCommunication subcontractorCommunication : subcontractorCommunicationList) {
subcontractorCommunication.getSubcontractedTaskData().getExternalCompany().getName();
subcontractorCommunication.getSubcontractedTaskData().getTask().getName();
subcontractorCommunication.getSubcontractedTaskData().getTask().getOrderElement().getName();
subcontractorCommunication.getLastSubcontractorCommunicationValues().getDate();
}
}
}
private void forceLoadAssociatedDataValue(List<SubcontractorComunicationValue> subcontractorComunicationValueList){
if (subcontractorComunicationValueList != null) {
for (SubcontractorComunicationValue value : subcontractorComunicationValueList) {
private void forceLoadAssociatedDataValue(List<SubcontractorCommunicationValue> subcontractorCommunicationValueList){
if (subcontractorCommunicationValueList != null) {
for (SubcontractorCommunicationValue value : subcontractorCommunicationValueList) {
value.getDate();
}
}
@ -109,12 +109,12 @@ public class SubcontractorComunicationModel implements ISubcontractorComunicatio
}
@Override
public void setCurrentFilter(FilterComunicationEnum currentFilter) {
public void setCurrentFilter(FilterCommunicationEnum currentFilter) {
this.currentFilter = currentFilter;
}
@Override
public FilterComunicationEnum getCurrentFilter() {
public FilterCommunicationEnum getCurrentFilter() {
return currentFilter;
}

View file

@ -46,17 +46,17 @@ import org.libreplan.business.advance.exceptions.DuplicateValueTrueReportGlobalA
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.externalcompanies.daos.IExternalCompanyDAO;
import org.libreplan.business.externalcompanies.entities.ComunicationType;
import org.libreplan.business.externalcompanies.entities.CommunicationType;
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
import org.libreplan.business.orders.daos.IOrderDAO;
import org.libreplan.business.orders.daos.IOrderElementDAO;
import org.libreplan.business.orders.entities.Order;
import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.planner.daos.ISubcontractedTaskDataDAO;
import org.libreplan.business.planner.daos.ISubcontractorComunicationDAO;
import org.libreplan.business.planner.daos.ISubcontractorCommunicationDAO;
import org.libreplan.business.planner.entities.SubcontractedTaskData;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorComunicationValue;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
import org.libreplan.business.planner.entities.SubcontractorCommunicationValue;
import org.libreplan.business.planner.entities.Task;
import org.libreplan.business.scenarios.bootstrap.PredefinedScenarios;
import org.libreplan.business.scenarios.entities.OrderVersion;
@ -93,7 +93,7 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService {
private ISubcontractedTaskDataDAO subcontractedTaskDataDAO;
@Autowired
private ISubcontractorComunicationDAO subcontractorComunicationDAO;
private ISubcontractorCommunicationDAO subcontractorCommunicationDAO;
@Autowired
private IOrderDAO orderDAO;
@ -212,10 +212,10 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService {
/*
* If the order element is subcontrated then create the
* subcontrated comunication for the subcontrated task data to
* subcontrated communication for the subcontrated task data to
* which the order element belongs.
*/
createSubcontractorComunication(
createSubcontractorCommunication(
orderElement,
orderElementWithAdvanceMeasurementsDTO.advanceMeasurements);
@ -241,7 +241,7 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService {
instanceConstraintViolationsList);
}
public void createSubcontractorComunication(OrderElement orderElement,
public void createSubcontractorCommunication(OrderElement orderElement,
Set<AdvanceMeasurementDTO> advanceMeasurementDTOs)
throws InstanceNotFoundException {
if (orderElement != null
@ -251,26 +251,26 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService {
SubcontractedTaskData subcontractedTaskData = task
.getSubcontractedTaskData();
if (subcontractedTaskData != null) {
SubcontractorComunication subcontractorComunication = SubcontractorComunication
SubcontractorCommunication subcontractorCommunication = SubcontractorCommunication
.create(subcontractedTaskData,
ComunicationType.REPORT_PROGRESS, new Date(),
CommunicationType.REPORT_PROGRESS, new Date(),
false);
for (AdvanceMeasurementDTO advanceMeasurementDTO : advanceMeasurementDTOs) {
// add subcontractorComunicationValue
addSubcontractorComunicationValue(advanceMeasurementDTO,
subcontractorComunication);
// add subcontractorCommunicationValue
addSubcontractorCommunicationValue(advanceMeasurementDTO,
subcontractorCommunication);
}
subcontractorComunicationDAO.save(subcontractorComunication);
subcontractorCommunicationDAO.save(subcontractorCommunication);
}
}
}
private void addSubcontractorComunicationValue(AdvanceMeasurementDTO advanceMeasurementDTO, SubcontractorComunication subcontractorComunication ){
private void addSubcontractorCommunicationValue(AdvanceMeasurementDTO advanceMeasurementDTO, SubcontractorCommunication subcontractorCommunication ){
Date dateValue = DateConverter.toDate(advanceMeasurementDTO.date);
SubcontractorComunicationValue value = SubcontractorComunicationValue
SubcontractorCommunicationValue value = SubcontractorCommunicationValue
.create(dateValue, advanceMeasurementDTO.value);
subcontractorComunication.getSubcontratorComunicationValues()
subcontractorCommunication.getSubcontractorCommunicationValues()
.add(value);
}

View file

@ -47,10 +47,10 @@ import org.libreplan.business.common.entities.EntityNameEnum;
import org.libreplan.business.common.entities.EntitySequence;
import org.libreplan.business.common.exceptions.InstanceNotFoundException;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.externalcompanies.daos.ICustomerComunicationDAO;
import org.libreplan.business.externalcompanies.daos.ICustomerCommunicationDAO;
import org.libreplan.business.externalcompanies.daos.IExternalCompanyDAO;
import org.libreplan.business.externalcompanies.entities.ComunicationType;
import org.libreplan.business.externalcompanies.entities.CustomerComunication;
import org.libreplan.business.externalcompanies.entities.CommunicationType;
import org.libreplan.business.externalcompanies.entities.CustomerCommunication;
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
import org.libreplan.business.orders.daos.IOrderElementDAO;
import org.libreplan.business.orders.entities.Order;
@ -104,7 +104,7 @@ public class SubcontractServiceREST implements ISubcontractService {
private IScenarioDAO scenarioDAO;
@Autowired
private ICustomerComunicationDAO customerComunicationDAO;
private ICustomerCommunicationDAO customerCommunicationDAO;
@Autowired
private ITaskSourceDAO taskSourceDAO;
@ -240,10 +240,10 @@ public class SubcontractServiceREST implements ISubcontractService {
orderElementDAO.save(order);
/*
* create the customer comunication to a new subcontrating project.
* create the customer communication to a new subcontrating project.
*/
if(!StringUtils.isBlank(order.getExternalCode())){
createCustomerComunication(order);
createCustomerCommunication(order);
}
}
@ -323,12 +323,20 @@ public class SubcontractServiceREST implements ISubcontractService {
Util.generateInstanceId(1, code), message);
}
private void createCustomerComunication(Order order){
private void createCustomerCommunication(Order order){
Date deadline = order.getDeadline();
Date comunicationDate = new Date();
CustomerComunication customerComunication = CustomerComunication
.create(deadline, comunicationDate,
ComunicationType.NEW_PROJECT, order);
customerComunicationDAO.save(customerComunication);
Date communicationDate = new Date();
CustomerCommunication customerCommunication = CustomerCommunication
.create(deadline, communicationDate,
CommunicationType.NEW_PROJECT, order);
if(customerCommunication.getCommunicationType() != null){
System.out.println(" type before "+ customerCommunication.getCommunicationType().toString());
}else{
customerCommunication.setCommunicationType(CommunicationType.NEW_PROJECT);
}
customerCommunicationDAO.save(customerCommunication);
if(customerCommunication.getCommunicationType() != null){
System.out.println(" type after "+ customerCommunication.getCommunicationType().toString());
}
}
}

View file

@ -28,7 +28,7 @@
<zk>
<window self="@{define(content)}"
apply="org.libreplan.web.subcontract.CustomerComunicationCRUDController"
apply="org.libreplan.web.subcontract.CustomerCommunicationCRUDController"
title="${i18n:_('Customer communications List')}">
<vbox id="messagesContainer" />
@ -42,16 +42,16 @@
</div>
<separator bar="false" spacing="20px" orient="horizontal"/>
<grid id="listing"
model="@{controller.customerComunications}"
rowRenderer="@{controller.customerComunicationRenderer}"
model="@{controller.customerCommunications}"
rowRenderer="@{controller.customerCommunicationRenderer}"
mold="paging" pageSize="10" fixedLayout="true">
<columns>
<column label="${i18n:_('Communication Type')}" sort="auto(lower(comunicationType))"/>
<column label="${i18n:_('Communication Type')}" sort="auto(lower(communicationType))"/>
<column label="${i18n:_('Project Name')}" sort="auto(lower(order.name))"/>
<column label="${i18n:_('Deadline')}" width="150px" align="center" sort="auto(lower(deadline))"/>
<column label="${i18n:_('Project Code')}" sort="auto(lower(order.code))"/>
<column label="${i18n:_('Customer')}" sort="auto(lower(order.customerReference))"/>
<column label="${i18n:_('Communication Date')}" width="150px" align="center" sort="auto(lower(comunicationDate))"/>
<column label="${i18n:_('Communication Date')}" width="150px" align="center" sort="auto(lower(communicationDate))"/>
<column label="${i18n:_('Reviewed')}" width="80px" align="center"/>
<column label="${i18n:_('Operations')}" width="80px" align="center"/>
</columns>

View file

@ -28,7 +28,7 @@
<zk>
<window self="@{define(content)}"
apply="org.libreplan.web.subcontract.SubcontractorComunicationCRUDController"
apply="org.libreplan.web.subcontract.SubcontractorCommunicationCRUDController"
title="${i18n:_('Subcontractor communications List')}">
<vbox id="messagesContainer" />
@ -42,17 +42,17 @@
</div>
<separator bar="false" spacing="20px" orient="horizontal"/>
<grid id="listing"
model="@{controller.subcontractorComunications}"
rowRenderer="@{controller.subcontractorComunicationRenderer}"
model="@{controller.subcontractorCommunications}"
rowRenderer="@{controller.subcontractorCommunicationRenderer}"
mold="paging" pageSize="10" fixedLayout="true">
<columns>
<column label="${i18n:_('Communication Type')}" align="center" width="140px" sort="auto(lower(comunicationType))"/>
<column label="${i18n:_('Communication Type')}" align="center" width="140px" sort="auto(lower(communicationType))"/>
<column label="${i18n:_('Subcontrated task')}" align="center" sort="auto(lower(subcontractedTaskData.task.name))"/>
<column label="${i18n:_('Project name')}" width="150px" align="center" sort="auto(lower(subcontractedTaskData.task.orderElement.name))"/>
<column label="${i18n:_('Project Code')}" width="150px" align="center" sort="auto(lower(subcontractedTaskData.task.orderElement.code))"/>
<column label="${i18n:_('Company')}" width="150px" align="center" sort="auto(lower(subcontractedTaskData.externalCompany.name))"/>
<column label="${i18n:_('Communication Date')}" width="150px" align="center" sort="auto(lower(comunicationDate))"/>
<column label="${i18n:_('Value')}" width="200px" align="center" sort="auto(lower(lastSubcontratorComunicationValueDate))"/>
<column label="${i18n:_('Communication Date')}" width="150px" align="center" sort="auto(lower(communicationDate))"/>
<column label="${i18n:_('Value')}" width="200px" align="center" sort="auto(lower(lastSubcontractorCommunicationValueDate))"/>
<column label="${i18n:_('Reviewed')}" width="80px" align="center"/>
<column label="${i18n:_('Operations')}" width="80px" align="center"/>
</columns>
@ -60,13 +60,13 @@
<popup id="pp">
<grid id="listingValues" width="300px" fixedLayout="true">
<grid id="listingValues" width="300px" fixedLayout="true">
<columns>
<column label="${i18n:_('Date')}" width="150px" sort="auto(date)" sortDirection="descending"/>
<column label="${i18n:_('Date')}" width="150px" sort="auto(date)" sortDirection="descending"/>
<column label="${i18n:_('Progress')}" width="150px" sort="auto(progress)" sortDirection="descending"/>
</columns>
<rows>
<row self="@{each='value'}" value="@{value}">
<row self="@{each='value'}" value="@{value}">
<label value="@{value.date,converter='org.libreplan.web.common.typeconverters.DateConverter'}" />
<label value="@{value.progress}"/>
</row>

View file

@ -72,7 +72,7 @@ import org.libreplan.business.orders.entities.SchedulingDataForVersion;
import org.libreplan.business.orders.entities.TaskSource;
import org.libreplan.business.orders.entities.TaskSource.TaskSourceSynchronization;
import org.libreplan.business.planner.daos.ISubcontractedTaskDataDAO;
import org.libreplan.business.planner.daos.ISubcontractorComunicationDAO;
import org.libreplan.business.planner.daos.ISubcontractorCommunicationDAO;
import org.libreplan.business.planner.daos.ITaskElementDAO;
import org.libreplan.business.planner.daos.ITaskSourceDAO;
import org.libreplan.business.planner.entities.SubcontractedTaskData;
@ -86,7 +86,7 @@ import org.libreplan.ws.subcontract.api.IReportAdvancesService;
import org.libreplan.ws.subcontract.api.OrderElementWithAdvanceMeasurementsDTO;
import org.libreplan.ws.subcontract.api.OrderElementWithAdvanceMeasurementsListDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.libreplan.business.planner.entities.SubcontractorComunication;
import org.libreplan.business.planner.entities.SubcontractorCommunication;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
@ -155,7 +155,7 @@ public class ReportAdvancesServiceTest {
private IScenarioManager scenarioManager;
@Autowired
private ISubcontractorComunicationDAO subcontractorComunicationDAO;
private ISubcontractorCommunicationDAO subcontractorCommunicationDAO;
@Autowired
private ISubcontractedTaskDataDAO subcontractorTaskDataDAO;
@ -235,7 +235,7 @@ public class ReportAdvancesServiceTest {
@Test
public void validAdvancesReportToSubcontratedOrderElement() {
int previousComunications = subcontractorComunicationDAO.getAll().size();
int previousCommunications = subcontractorCommunicationDAO.getAll().size();
OrderLine orderLine = createOrderLine();
String orderElementCode = orderLine.getCode();
@ -244,7 +244,7 @@ public class ReportAdvancesServiceTest {
OrderElementWithAdvanceMeasurementsListDTO orderElementWithAdvanceMeasurementsListDTO = givenOrderElementWithAdvanceMeasurementsListDTO(
orderElementCode, values);
SubcontractorComunication subcontractorComunication = SubcontractorComunication.create();
SubcontractorCommunication subcontractorCommunication = SubcontractorCommunication.create();
reportAdvancesService
.updateAdvances(orderElementWithAdvanceMeasurementsListDTO);
@ -270,8 +270,8 @@ public class ReportAdvancesServiceTest {
assertThat(advanceMeasurement.getValue(), equalTo(entry.getValue()));
}
int currentComunications = subcontractorComunicationDAO.getAll().size();
assertThat((previousComunications+1), equalTo(currentComunications));
int currentCommunications = subcontractorCommunicationDAO.getAll().size();
assertThat((previousCommunications+1), equalTo(currentCommunications));
}
@Test

View file

@ -85,7 +85,7 @@
org/libreplan/business/planner/entities/AdvanceConsolidations.hbm.xml
</value>
<value>
org/libreplan/business/planner/entities/SubcontractorComunication.hbm.xml
org/libreplan/business/planner/entities/SubcontractorCommunication.hbm.xml
</value>
<value>
org/libreplan/business/scenarios/entities/Scenarios.hbm.xml