Opraveno generování e-mailu po odeslání vyúčtování služební cesty ke schválení. Text a URL se nyní vygeneruje správně.
closes #219
This commit is contained in:
@@ -7,6 +7,7 @@ import info.bukova.isspst.data.Requirement;
|
|||||||
import info.bukova.isspst.data.RequirementType;
|
import info.bukova.isspst.data.RequirementType;
|
||||||
import info.bukova.isspst.data.Role;
|
import info.bukova.isspst.data.Role;
|
||||||
import info.bukova.isspst.data.TripBill;
|
import info.bukova.isspst.data.TripBill;
|
||||||
|
import info.bukova.isspst.data.TripBillApproval;
|
||||||
import info.bukova.isspst.data.TripRequirement;
|
import info.bukova.isspst.data.TripRequirement;
|
||||||
import info.bukova.isspst.reporting.Report;
|
import info.bukova.isspst.reporting.Report;
|
||||||
import info.bukova.isspst.reporting.ReportMapping;
|
import info.bukova.isspst.reporting.ReportMapping;
|
||||||
@@ -155,6 +156,7 @@ public class Constants {
|
|||||||
public final static Map<Class<?>, String> URL_MAP = Collections.unmodifiableMap(new HashMap<Class<?>, String>() {{
|
public final static Map<Class<?>, String> URL_MAP = Collections.unmodifiableMap(new HashMap<Class<?>, String>() {{
|
||||||
put(Requirement.class, "/main/orders/");
|
put(Requirement.class, "/main/orders/");
|
||||||
put(TripRequirement.class, "/main/trips/requirements/");
|
put(TripRequirement.class, "/main/trips/requirements/");
|
||||||
|
put(TripBillApproval.class, "/main/trips/requirements/");
|
||||||
put(Order.class, "/main/orders/created/");
|
put(Order.class, "/main/orders/created/");
|
||||||
put(TripBill.class, "/main/trips/bill/");
|
put(TripBill.class, "/main/trips/bill/");
|
||||||
}} );
|
}} );
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package info.bukova.isspst;
|
||||||
|
|
||||||
|
import info.bukova.isspst.data.TripBillApproval;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Pepa Rokos
|
||||||
|
*/
|
||||||
|
public class TripBillAprovalUrlResolver implements EntityUrlResolver {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HttpServletRequest request;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String entityUrl(Object entity) {
|
||||||
|
String defUrl = request.getRequestURL().toString();
|
||||||
|
defUrl = defUrl.substring(0, defUrl.indexOf(request.getServletPath()));
|
||||||
|
|
||||||
|
if (entity instanceof TripBillApproval) {
|
||||||
|
String url = Constants.URL_MAP.get(entity.getClass());
|
||||||
|
|
||||||
|
return defUrl + url + "?select=" + String.valueOf(((TripBillApproval)entity).getBill().getRequirement().getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
return defUrl + "/app";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,7 +14,6 @@ import javax.persistence.Column;
|
|||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.ManyToOne;
|
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
import javax.persistence.OneToOne;
|
import javax.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
@@ -60,7 +59,7 @@ public class TripBill extends BaseData implements EntityWithAttachment {
|
|||||||
@LazyCollection(LazyCollectionOption.TRUE)
|
@LazyCollection(LazyCollectionOption.TRUE)
|
||||||
@IndexedEmbedded
|
@IndexedEmbedded
|
||||||
private List<FileMetainfo> attachedFiles;
|
private List<FileMetainfo> attachedFiles;
|
||||||
@ManyToOne(fetch = FetchType.EAGER)
|
@OneToOne(fetch = FetchType.EAGER)
|
||||||
@JoinColumn(name = "APPROVAL_ID")
|
@JoinColumn(name = "APPROVAL_ID")
|
||||||
private TripBillApproval approval;
|
private TripBillApproval approval;
|
||||||
@Column(name = "SAVED")
|
@Column(name = "SAVED")
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package info.bukova.isspst.data;
|
package info.bukova.isspst.data;
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.FetchType;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
|
import javax.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11,4 +14,15 @@ import javax.persistence.Table;
|
|||||||
@Table(name = "TRIP_BILL_APPROVAL")
|
@Table(name = "TRIP_BILL_APPROVAL")
|
||||||
public class TripBillApproval extends RequirementBase {
|
public class TripBillApproval extends RequirementBase {
|
||||||
|
|
||||||
|
@OneToOne(fetch = FetchType.EAGER)
|
||||||
|
@JoinColumn(name = "TRIPBILL_ID")
|
||||||
|
private TripBill bill;
|
||||||
|
|
||||||
|
public TripBill getBill() {
|
||||||
|
return bill;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBill(TripBill bill) {
|
||||||
|
this.bill = bill;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ import info.bukova.isspst.Constants;
|
|||||||
import info.bukova.isspst.data.NumberSeries;
|
import info.bukova.isspst.data.NumberSeries;
|
||||||
import info.bukova.isspst.data.RequirementState;
|
import info.bukova.isspst.data.RequirementState;
|
||||||
import info.bukova.isspst.data.TripBill;
|
import info.bukova.isspst.data.TripBill;
|
||||||
|
import info.bukova.isspst.data.TripBillApproval;
|
||||||
import info.bukova.isspst.data.TripRequirement;
|
import info.bukova.isspst.data.TripRequirement;
|
||||||
import info.bukova.isspst.data.User;
|
import info.bukova.isspst.data.User;
|
||||||
import info.bukova.isspst.services.LazyLoader;
|
import info.bukova.isspst.services.LazyLoader;
|
||||||
|
import info.bukova.isspst.services.tripbill.TripBillApprovalService;
|
||||||
import info.bukova.isspst.services.tripbill.TripBillService;
|
import info.bukova.isspst.services.tripbill.TripBillService;
|
||||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
|
import info.bukova.isspst.services.workgroups.WorkgroupService;
|
||||||
import org.hibernate.Hibernate;
|
import org.hibernate.Hibernate;
|
||||||
@@ -28,6 +30,8 @@ public class TripRequirementServiceImpl extends RequirementBaseServiceImpl<TripR
|
|||||||
private WorkgroupService workgroupService;
|
private WorkgroupService workgroupService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TripBillService tripBillService;
|
private TripBillService tripBillService;
|
||||||
|
@Autowired
|
||||||
|
private TripBillApprovalService tripBillApprovalService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected TripRequirement createEntity() {
|
protected TripRequirement createEntity() {
|
||||||
@@ -50,6 +54,12 @@ public class TripRequirementServiceImpl extends RequirementBaseServiceImpl<TripR
|
|||||||
TripBill newBill = tripBillService.createTripBill(entity);
|
TripBill newBill = tripBillService.createTripBill(entity);
|
||||||
bill.getBillItems().clear();
|
bill.getBillItems().clear();
|
||||||
bill.getBillItems().addAll(newBill.getBillItems());
|
bill.getBillItems().addAll(newBill.getBillItems());
|
||||||
|
TripBillApproval approval = bill.getApproval();
|
||||||
|
|
||||||
|
if (approval != null) {
|
||||||
|
tripBillApprovalService.delete(approval);
|
||||||
|
}
|
||||||
|
|
||||||
bill.setApproval(null);
|
bill.setApproval(null);
|
||||||
tripBillService.calculate(bill);
|
tripBillService.calculate(bill);
|
||||||
tripBillService.update(bill);
|
tripBillService.update(bill);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package info.bukova.isspst.services.tripbill;
|
package info.bukova.isspst.services.tripbill;
|
||||||
|
|
||||||
import info.bukova.isspst.Constants;
|
import info.bukova.isspst.Constants;
|
||||||
|
import info.bukova.isspst.StringUtils;
|
||||||
import info.bukova.isspst.data.RequirementState;
|
import info.bukova.isspst.data.RequirementState;
|
||||||
import info.bukova.isspst.data.TripBill;
|
import info.bukova.isspst.data.TripBill;
|
||||||
import info.bukova.isspst.data.TripBillApproval;
|
import info.bukova.isspst.data.TripBillApproval;
|
||||||
@@ -33,6 +34,9 @@ public class TripBillApprovalServiceImpl extends RequirementBaseServiceImpl<Trip
|
|||||||
approval.setReqDate(new Date());
|
approval.setReqDate(new Date());
|
||||||
approval.setType(reqTypeService.getTypeById(Constants.REQTYPE_BUSINESSTRIP));
|
approval.setType(reqTypeService.getTypeById(Constants.REQTYPE_BUSINESSTRIP));
|
||||||
approval.setState(RequirementState.NEW);
|
approval.setState(RequirementState.NEW);
|
||||||
|
approval.setNumser(bill.getRequirement().getNumser());
|
||||||
|
approval.setDescription(StringUtils.localize("TravelOrdersFormTitle") + " \"" + bill.getOwnedBy() + "\" - " + bill.getRequirement().getDescription());
|
||||||
|
approval.setBill(bill);
|
||||||
bill.setApproval(approval);
|
bill.setApproval(approval);
|
||||||
return approval;
|
return approval;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class TripBillSummaryVM extends RequirementSubpage<TripBillApproval> {
|
|||||||
|
|
||||||
bills.add(this.bill);
|
bills.add(this.bill);
|
||||||
|
|
||||||
if (bill.getApproval().getState() != RequirementState.APPROVED) {
|
if (bill.getApproval() != null && bill.getApproval().getState() != RequirementState.APPROVED) {
|
||||||
isSelectedTad = true;
|
isSelectedTad = true;
|
||||||
selTab.put(bill.getId(), true);
|
selTab.put(bill.getId(), true);
|
||||||
} else {
|
} else {
|
||||||
@@ -83,7 +83,7 @@ public class TripBillSummaryVM extends RequirementSubpage<TripBillApproval> {
|
|||||||
tripBillService.loadLazyData(b);
|
tripBillService.loadLazyData(b);
|
||||||
bills.add(b);
|
bills.add(b);
|
||||||
|
|
||||||
if (!isSelectedTad && b.getApproval().getState() != RequirementState.APPROVED) {
|
if (!isSelectedTad && b.getApproval() != null && b.getApproval().getState() != RequirementState.APPROVED) {
|
||||||
setBill(b);
|
setBill(b);
|
||||||
isSelectedTad = true;
|
isSelectedTad = true;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -36,12 +36,15 @@
|
|||||||
<bean id="commonUrlResolver" class="info.bukova.isspst.CommonUrlResolver"/>
|
<bean id="commonUrlResolver" class="info.bukova.isspst.CommonUrlResolver"/>
|
||||||
|
|
||||||
<bean id="requirementUrlResolver" class="info.bukova.isspst.RequirementUrlResolver"/>
|
<bean id="requirementUrlResolver" class="info.bukova.isspst.RequirementUrlResolver"/>
|
||||||
|
|
||||||
|
<bean id="tripBillApprovalUrlResolver" class="info.bukova.isspst.TripBillAprovalUrlResolver"/>
|
||||||
|
|
||||||
<bean id="urlResolverHolder" class="info.bukova.isspst.UrlResolverHolder">
|
<bean id="urlResolverHolder" class="info.bukova.isspst.UrlResolverHolder">
|
||||||
<constructor-arg ref="commonUrlResolver"/>
|
<constructor-arg ref="commonUrlResolver"/>
|
||||||
<property name="resolvers">
|
<property name="resolvers">
|
||||||
<map>
|
<map>
|
||||||
<entry key="#{T(info.bukova.isspst.data.Requirement)}" value-ref="requirementUrlResolver"/>
|
<entry key="#{T(info.bukova.isspst.data.Requirement)}" value-ref="requirementUrlResolver"/>
|
||||||
|
<entry key="#{T(info.bukova.isspst.data.TripBillApproval)}" value-ref="tripBillApprovalUrlResolver"/>
|
||||||
</map>
|
</map>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|||||||
Reference in New Issue
Block a user