Na formulář požadavku na služební byl přidán checkbox pro vygenerování vyúčtování služební cesty i pro spolucestující. Spolucestující nemůžou vyúčtování měnit.
closes #212
This commit is contained in:
@@ -2,15 +2,14 @@ package info.bukova.isspst.data;
|
||||
|
||||
import info.bukova.isspst.Constants;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.AttributeOverride;
|
||||
import javax.persistence.AttributeOverrides;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Embedded;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Entity
|
||||
@Table(name = "TRIP_BILL_ITEMS")
|
||||
@@ -65,6 +64,35 @@ public class TripBillItem extends BaseData {
|
||||
@Column(name = "ADJUSTED_TOTAL", precision = 15, scale = 4)
|
||||
private BigDecimal adjustedTotal;
|
||||
|
||||
public TripBillItem() {
|
||||
|
||||
}
|
||||
|
||||
public TripBillItem(TripBillItem src) {
|
||||
date = src.getDate();
|
||||
to = src.getTo();
|
||||
back = src.getBack();
|
||||
toDeparture = src.getToDeparture();
|
||||
toArrival = src.getToArrival();
|
||||
backDeparture = src.getBackDeparture();
|
||||
backArrival = src.getBackArrival();
|
||||
toVehicle = src.getToVehicle();
|
||||
backVehicle = src.getBackVehicle();
|
||||
beginWork = src.getBeginWork();
|
||||
endWork = src.getEndWork();
|
||||
freeMealsCount = src.getFreeMealsCount();
|
||||
distance = src.getDistance();
|
||||
fuelConsumption = src.getFuelConsumption();
|
||||
distanceAmount = src.getDistanceAmount();
|
||||
fuelAmount = src.getFuelAmount();
|
||||
carefare = src.getCarefare();
|
||||
housing = src.getHousing();
|
||||
meals = src.getMeals();
|
||||
otherExpenses = src.getOtherExpenses();
|
||||
total = src.getTotal();
|
||||
adjustedTotal = src.getAdjustedTotal();
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
@@ -42,6 +42,8 @@ public class TripRequirement extends RequirementBase implements EntityWithAttach
|
||||
@LazyCollection(LazyCollectionOption.TRUE)
|
||||
@IndexedEmbedded
|
||||
private List<FileMetainfo> attachedFiles;
|
||||
@Column(name = "BILL_FOR_PASSENGERS")
|
||||
private Boolean billForPassengers;
|
||||
|
||||
public TripRequirement() {
|
||||
this.setOwnedBy(new User());
|
||||
@@ -140,4 +142,11 @@ public class TripRequirement extends RequirementBase implements EntityWithAttach
|
||||
attachedFiles.remove(metainfo);
|
||||
}
|
||||
|
||||
public Boolean getBillForPassengers() {
|
||||
return billForPassengers;
|
||||
}
|
||||
|
||||
public void setBillForPassengers(Boolean billForPassengers) {
|
||||
this.billForPassengers = billForPassengers;
|
||||
}
|
||||
}
|
||||
|
||||
+9
-7
@@ -110,13 +110,15 @@ public class TripRequirementServiceImpl extends RequirementBaseServiceImpl<TripR
|
||||
tripBillService.add(bill);
|
||||
bill.setOwnedBy(entity.getOwnedBy());
|
||||
tripBillService.update(bill);
|
||||
|
||||
for (User u : entity.getPassengers()) {
|
||||
if (!u.equals(entity.getOwnedBy())) {
|
||||
TripBill passBill = tripBillService.createTripBill(entity);
|
||||
tripBillService.add(passBill);
|
||||
passBill.setOwnedBy(u);
|
||||
tripBillService.update(passBill);
|
||||
|
||||
if (entity.getBillForPassengers() != null && entity.getBillForPassengers()) {
|
||||
for (User u : entity.getPassengers()) {
|
||||
if (!u.equals(entity.getOwnedBy())) {
|
||||
TripBill passBill = tripBillService.createTripBill(entity);
|
||||
tripBillService.add(passBill);
|
||||
passBill.setOwnedBy(u);
|
||||
tripBillService.update(passBill);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,11 +178,13 @@ public class TripBillServiceImpl extends AbstractOwnedService<TripBill> implemen
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@LazyLoader("print")
|
||||
@LazyLoader({"print", "form"})
|
||||
public void loadOwner(TripBill bill) {
|
||||
TripBill tb = dao.getById(bill.getId());
|
||||
tb.getOwnedBy().getFirstName();
|
||||
tb.getRequirement().getOwnedBy().getFirstName();
|
||||
bill.setOwnedBy(tb.getOwnedBy());
|
||||
bill.getRequirement().setOwnedBy(tb.getRequirement().getOwnedBy());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -196,4 +198,31 @@ public class TripBillServiceImpl extends AbstractOwnedService<TripBill> implemen
|
||||
bill.getRequirement().setPassengers(tr.getPassengers());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@PreAuthorize("hasPermission(this, 'PERM_EDIT') or hasPermission(#entity, this.getUpdateEntityPermission())")
|
||||
public void update(TripBill entity) {
|
||||
super.update(entity);
|
||||
|
||||
TripRequirement req = entity.getRequirement();
|
||||
Query q = dao.getQuery("from TripBill where requirement = :req and id != :id");
|
||||
q.setParameter("req", req);
|
||||
q.setParameter("id", entity.getId());
|
||||
|
||||
List<TripBill> bills = q.list();
|
||||
for (TripBill tb : bills) {
|
||||
tb.getBillItems().clear();
|
||||
|
||||
for (TripBillItem item : entity.getBillItems()) {
|
||||
tb.getBillItems().add(new TripBillItem(item));
|
||||
}
|
||||
|
||||
tb.setFreeCarfare(entity.isFreeCarfare());
|
||||
tb.setFreeHousing(entity.isFreeHousing());
|
||||
tb.setFreeMeals(entity.isFreeMeals());
|
||||
calculate(tb);
|
||||
super.update(tb);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,4 +38,14 @@ public class TripBillForm extends FormWithUpload<TripBill> {
|
||||
return vehicles;
|
||||
}
|
||||
|
||||
public boolean isBillDisabled() {
|
||||
if (getDataBean().getRequirement().getBillForPassengers() != null
|
||||
&& getDataBean().getRequirement().getBillForPassengers()
|
||||
&& !getDataBean().getOwnedBy().equals(getDataBean().getRequirement().getOwnedBy())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user