ItEr45S14CUActualizarTraballoExportadoPorSubcontrataItEr44S20: Added company NIF to information sent with advances in order to check if it is a registered subcontractor or not.
This commit is contained in:
parent
80160d1af3
commit
39ec3afdbc
5 changed files with 70 additions and 7 deletions
|
|
@ -39,6 +39,7 @@ import org.navalplanner.business.advance.bootstrap.PredefinedAdvancedTypes;
|
|||
import org.navalplanner.business.advance.daos.IAdvanceAssignmentDAO;
|
||||
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
|
||||
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.externalcompanies.entities.ExternalCompany;
|
||||
import org.navalplanner.business.orders.daos.IOrderElementDAO;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
|
|
@ -76,6 +77,9 @@ public class ReportAdvancesModel implements IReportAdvancesModel {
|
|||
@Autowired
|
||||
private IAdvanceAssignmentDAO advanceAssignmentDAO;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public List<Order> getOrdersWithExternalCodeInAnyOrderElement() {
|
||||
|
|
@ -260,8 +264,12 @@ public class ReportAdvancesModel implements IReportAdvancesModel {
|
|||
}
|
||||
}
|
||||
|
||||
return new OrderElementWithAdvanceMeasurementsListDTO(
|
||||
return new OrderElementWithAdvanceMeasurementsListDTO(getCompanyCode(),
|
||||
orderElementWithAdvanceMeasurementsDTOs);
|
||||
}
|
||||
|
||||
private String getCompanyCode() {
|
||||
return configurationDAO.getConfiguration().getCompanyCode();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ package org.navalplanner.ws.subcontract.api;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
|
|
@ -36,14 +37,18 @@ import org.navalplanner.business.orders.entities.OrderElement;
|
|||
@XmlRootElement(name = "order-element-list")
|
||||
public class OrderElementWithAdvanceMeasurementsListDTO {
|
||||
|
||||
@XmlAttribute(name = "external-company-nif")
|
||||
public String externalCompanyNif;
|
||||
|
||||
@XmlElement(name = "order-element")
|
||||
public List<OrderElementWithAdvanceMeasurementsDTO> orderElements = new ArrayList<OrderElementWithAdvanceMeasurementsDTO>();
|
||||
|
||||
public OrderElementWithAdvanceMeasurementsListDTO() {
|
||||
}
|
||||
|
||||
public OrderElementWithAdvanceMeasurementsListDTO(
|
||||
public OrderElementWithAdvanceMeasurementsListDTO(String externalCompanyNif,
|
||||
List<OrderElementWithAdvanceMeasurementsDTO> orderElements) {
|
||||
this.externalCompanyNif = externalCompanyNif;
|
||||
this.orderElements = orderElements;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import javax.ws.rs.POST;
|
|||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.navalplanner.business.advance.bootstrap.PredefinedAdvancedTypes;
|
||||
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
|
||||
|
|
@ -38,6 +39,8 @@ import org.navalplanner.business.advance.exceptions.DuplicateAdvanceAssignmentFo
|
|||
import org.navalplanner.business.advance.exceptions.DuplicateValueTrueReportGlobalAdvanceException;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO;
|
||||
import org.navalplanner.business.externalcompanies.entities.ExternalCompany;
|
||||
import org.navalplanner.business.orders.daos.IOrderElementDAO;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.ws.common.api.AdvanceMeasurementDTO;
|
||||
|
|
@ -66,6 +69,9 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService {
|
|||
@Autowired
|
||||
private IOrderElementDAO orderElementDAO;
|
||||
|
||||
@Autowired
|
||||
private IExternalCompanyDAO externalCompanyDAO;
|
||||
|
||||
private InstanceConstraintViolationsListDTO getErrorMessage(String code,
|
||||
String message) {
|
||||
// FIXME review errors returned
|
||||
|
|
@ -84,6 +90,27 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService {
|
|||
|
||||
InstanceConstraintViolationsDTO instanceConstraintViolationsDTO = null;
|
||||
|
||||
if (StringUtils
|
||||
.isEmpty(orderElementWithAdvanceMeasurementsListDTO.externalCompanyNif)) {
|
||||
return getErrorMessage("", "external company nif not specified");
|
||||
}
|
||||
|
||||
ExternalCompany externalCompany;
|
||||
try {
|
||||
externalCompany = externalCompanyDAO
|
||||
.findUniqueByNif(orderElementWithAdvanceMeasurementsListDTO.externalCompanyNif);
|
||||
} catch (InstanceNotFoundException e1) {
|
||||
return getErrorMessage(
|
||||
orderElementWithAdvanceMeasurementsListDTO.externalCompanyNif,
|
||||
"external company not found");
|
||||
}
|
||||
|
||||
if (!externalCompany.isSubcontractor()) {
|
||||
return getErrorMessage(
|
||||
orderElementWithAdvanceMeasurementsListDTO.externalCompanyNif,
|
||||
"external company is not registered as subcontractor");
|
||||
}
|
||||
|
||||
List<OrderElementWithAdvanceMeasurementsDTO> orderElements = orderElementWithAdvanceMeasurementsListDTO.orderElements;
|
||||
for (OrderElementWithAdvanceMeasurementsDTO orderElementWithAdvanceMeasurementsDTO : orderElements) {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ import java.util.UUID;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.joda.time.LocalDate;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
|
@ -46,6 +47,8 @@ import org.navalplanner.business.IDataBootstrap;
|
|||
import org.navalplanner.business.advance.entities.AdvanceMeasurement;
|
||||
import org.navalplanner.business.advance.entities.DirectAdvanceAssignment;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO;
|
||||
import org.navalplanner.business.externalcompanies.entities.ExternalCompany;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
import org.navalplanner.business.orders.entities.Order;
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
|
|
@ -92,6 +95,26 @@ public class ReportAdvancesServiceTest {
|
|||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
@Autowired
|
||||
private IExternalCompanyDAO externalCompanyDAO;
|
||||
|
||||
@Autowired
|
||||
private SessionFactory sessionFactory;
|
||||
|
||||
private ExternalCompany getSubcontractorExternalCompanySaved(String name,
|
||||
String nif) {
|
||||
ExternalCompany externalCompany = ExternalCompany.create(name, nif);
|
||||
externalCompany.setSubcontractor(true);
|
||||
|
||||
externalCompanyDAO.save(externalCompany);
|
||||
externalCompanyDAO.flush();
|
||||
sessionFactory.getCurrentSession().evict(externalCompany);
|
||||
|
||||
externalCompany.dontPoseAsTransientObjectAnymore();
|
||||
|
||||
return externalCompany;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validAdvancesReport() {
|
||||
Order order = givenValidOrderAlreadyStored();
|
||||
|
|
@ -135,7 +158,11 @@ public class ReportAdvancesServiceTest {
|
|||
advanceMeasurementDTOs.add(new AdvanceMeasurementDTO(date, value));
|
||||
orderElementWithAdvanceMeasurementsDTO.advanceMeasurements = advanceMeasurementDTOs;
|
||||
|
||||
return new OrderElementWithAdvanceMeasurementsListDTO(Arrays
|
||||
ExternalCompany externalCompany = getSubcontractorExternalCompanySaved(
|
||||
"Company", "company-nif");
|
||||
|
||||
return new OrderElementWithAdvanceMeasurementsListDTO(externalCompany
|
||||
.getNif(), Arrays
|
||||
.asList(orderElementWithAdvanceMeasurementsDTO));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ import org.junit.Before;
|
|||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.navalplanner.business.IDataBootstrap;
|
||||
import org.navalplanner.business.common.daos.IConfigurationDAO;
|
||||
import org.navalplanner.business.externalcompanies.daos.IExternalCompanyDAO;
|
||||
import org.navalplanner.business.externalcompanies.entities.ExternalCompany;
|
||||
import org.navalplanner.business.orders.daos.IOrderDAO;
|
||||
|
|
@ -94,9 +93,6 @@ public class SubcontractServiceTest {
|
|||
@Autowired
|
||||
private SessionFactory sessionFactory;
|
||||
|
||||
@Autowired
|
||||
private IConfigurationDAO configurationDAO;
|
||||
|
||||
private OrderLineDTO givenBasicOrderLineDTO(String orderLineCode) {
|
||||
OrderLineDTO orderLineDTO = new OrderLineDTO();
|
||||
orderLineDTO.name = "Test";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue