package models.dto;
import dao.DataAccessException;
import models.DaoManager;
import models.entities.Contact;
import models.entities.Order;
import models.entities.OrderState;
import models.entities.User;
import play.Logger;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* Created by NotePad.by on 02.09.2014.
*/
public class OrderDto {
private Integer id = null;
private String state = null;
private String description = null;
private BigDecimal cost = null;
private Integer clientId = null;
private Integer recipientId = null;
private Integer creatorId = null;
private String creatorName = null;
private Integer executorId = null;
private Integer deliveryManagerId = null;
private String comment = null;
public void mapBack(Order order){
order.setCost(getCost());
order.setDescription(getDescription());
order.setComment(getComment());
try {
order.setState(DaoManager.getOrderStateDao().findByName(getState()));
order.setClient(DaoManager.getContactDao().findById(getClientId()));
order.setRecipient(DaoManager.getContactDao().findById(getRecipientId()));
order.setCreator(DaoManager.getUserDao().findById(getCreatorId()));
order.setExecutor(DaoManager.getUserDao().findById(getExecutorId()));
order.setDeliveryManager(DaoManager.getUserDao().findById(getDeliveryManagerId()));
} catch (DataAccessException e) {
Logger.error("failed to retrieve dto data from db", e);
}
}
public static OrderDto createFrom(Order order){
OrderDto dto = new OrderDto();
dto.setId(order.getId());
dto.setState(order.getState().getName());
dto.setDescription(order.getDescription());
dto.setCost(order.getCost());
dto.setClientId(order.getClient().getId());
Contact creator = order.getCreator().getContact();
dto.setCreatorName(creator.getLastName() + " " + creator.getFirstName()
+ (creator.getMiddleName() == null ? "" : creator.getMiddleName()));
dto.setRecipientId(order.getRecipient().getId());
dto.setCreatorId(order.getCreator().getId());
dto.setExecutorId(order.getExecutor().getId());
dto.setDeliveryManagerId(order.getDeliveryManager().getId());
dto.setComment(order.getComment());
return dto;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public BigDecimal getCost() {
return cost;
}
public void setCost(BigDecimal cost) {
this.cost = cost;
}
public Integer getClientId() {
return clientId;
}
public void setClientId(Integer clientId) {
this.clientId = clientId;
}
public Integer getRecipientId() {
return recipientId;
}
public void setRecipientId(Integer recipientId) {
this.recipientId = recipientId;
}
public Integer getCreatorId() {
return creatorId;
}
public void setCreatorId(Integer creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public Integer getExecutorId() {
return executorId;
}
public void setExecutorId(Integer executorId) {
this.executorId = executorId;
}
public Integer getDeliveryManagerId() {
return deliveryManagerId;
}
public void setDeliveryManagerId(Integer deliveryManagerId) {
this.deliveryManagerId = deliveryManagerId;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}