Opraveno generovani vyuctovani sluzebni cesty spolucestujicich, pokud je pozadovana zaloha- zaloha se nyni neprenese.

closes #229
Po schvaleni pozadavku na sluzebni cestu se spolucestujicimi se posle mail o schvaleni i spolucestujicim.
closes #228
This commit is contained in:
2015-06-13 00:00:00 +02:00
parent aaa89a2653
commit c2ca2e45ec
10 changed files with 96 additions and 22 deletions
@@ -14,6 +14,7 @@ public class SettingsData {
private MailMessage newReqTemplate;
private MailMessage authReqTemplate;
private MailMessage confReqTemplate;
private MailMessage confReqTripPassenger;
private Address mainAddress;
private List<Address> shippingAddrs;
private String bankName;
@@ -28,6 +29,7 @@ public class SettingsData {
newReqTemplate = new MailMessage();
authReqTemplate = new MailMessage();
confReqTemplate = new MailMessage();
confReqTripPassenger = new MailMessage();
mainAddress = new Address();
shippingAddrs = new ArrayList<Address>();
vehicles = new ArrayList<Vehicle>();
@@ -150,4 +152,12 @@ public class SettingsData {
{
this.logoFile = logoFile;
}
public MailMessage getConfReqTripPassenger() {
return confReqTripPassenger;
}
public void setConfReqTripPassenger(MailMessage confReqTripPassenger) {
this.confReqTripPassenger = confReqTripPassenger;
}
}
@@ -7,10 +7,14 @@ import info.bukova.isspst.data.TripBill;
import info.bukova.isspst.data.TripBillApproval;
import info.bukova.isspst.data.TripRequirement;
import info.bukova.isspst.data.User;
import info.bukova.isspst.mail.MailMessage;
import info.bukova.isspst.mail.Mailer;
import info.bukova.isspst.mail.MessageBuilder;
import info.bukova.isspst.services.LazyLoader;
import info.bukova.isspst.services.settings.GlobalSettingsService;
import info.bukova.isspst.services.tripbill.TripBillApprovalService;
import info.bukova.isspst.services.tripbill.TripBillService;
import info.bukova.isspst.services.workgroups.WorkgroupService;
import info.bukova.isspst.services.users.UserService;
import org.hibernate.Hibernate;
import org.hibernate.LazyInitializationException;
import org.hibernate.Query;
@@ -27,11 +31,17 @@ public class TripRequirementServiceImpl extends RequirementBaseServiceImpl<TripR
@Autowired
private RequirementTypeService reqTypeService;
@Autowired
private WorkgroupService workgroupService;
@Autowired
private TripBillService tripBillService;
@Autowired
private TripBillApprovalService tripBillApprovalService;
@Autowired
private Mailer mailer;
@Autowired
private MessageBuilder messageBuilder;
@Autowired
private GlobalSettingsService settingsService;
@Autowired
private UserService userService;
@Override
protected TripRequirement createEntity() {
@@ -125,12 +135,19 @@ public class TripRequirementServiceImpl extends RequirementBaseServiceImpl<TripR
if (entity.getBillForPassengers() != null && entity.getBillForPassengers()) {
for (User u : entity.getPassengers()) {
if (!u.equals(entity.getOwnedBy())) {
TripBill passBill = tripBillService.createTripBill(entity);
TripBill passBill = tripBillService.createPassengersBill(entity);
tripBillService.add(passBill);
passBill.setOwnedBy(u);
tripBillService.update(passBill);
}
}
if (!entity.getPassengers().isEmpty() && settingsService.getSettings().getConfReqTripPassenger() != null) {
MailMessage message = messageBuilder.buildMessage(settingsService.getSettings().getConfReqTripPassenger(), entity);
message.setFrom(userService.getCurrent().getEmail());
message.setTo(userService.getEmailsForSend(entity.getPassengers()));
mailer.send(message);
}
}
}
}
@@ -9,6 +9,7 @@ import java.util.List;
public interface TripBillService extends Service<TripBill> {
public TripBill createTripBill(TripRequirement requirement);
public TripBill createPassengersBill(TripRequirement requirement);
public void loadItems(TripBill bill);
public void calculate(TripBill bill);
public List<TripBill> getMy();
@@ -33,13 +33,26 @@ public class TripBillServiceImpl extends AbstractOwnedService<TripBill> implemen
@Override
public TripBill createTripBill(TripRequirement requirement) {
return createBill(requirement, false);
}
@Override
public TripBill createPassengersBill(TripRequirement requirement) {
return createBill(requirement, true);
}
private TripBill createBill(TripRequirement requirement, boolean passengers) {
TripBill bill = new TripBill();
bill.setRequirement(requirement);
int daysCount = Days.daysBetween((new DateTime(requirement.getTripDate())).withTimeAtStartOfDay(),
if (!passengers) {
bill.setDownPayment(requirement.getDownPayment());
}
int daysCount = Days.daysBetween((new DateTime(requirement.getTripDate())).withTimeAtStartOfDay(),
(new DateTime(requirement.getEndDate())).withTimeAtStartOfDay()).getDays() + 1;
for (int i = 0 ; i < daysCount ; i++) {
TripBillItem item = new TripBillItem();
if (i == 0) {
@@ -50,17 +63,17 @@ public class TripBillServiceImpl extends AbstractOwnedService<TripBill> implemen
item.setBack(requirement.getTo() + " - " + requirement.getFrom());
item.setBackVehicle(requirement.getVehicle());
}
Calendar calTripDate = Calendar.getInstance();
calTripDate.setTime(requirement.getTripDate());
calTripDate.add(Calendar.DATE, i);
item.setDate(calTripDate.getTime());
bill.getBillItems().add(item);
}
this.calculate(bill);
return bill;
}
@@ -102,8 +115,8 @@ public class TripBillServiceImpl extends AbstractOwnedService<TripBill> implemen
bill.setTotal(bill.getTotal().add(item.getTotal()));
}
if (bill.getRequirement().getDownPayment() != null) {
bill.setTotal(bill.getTotal().subtract(bill.getRequirement().getDownPayment()));
if (bill.getDownPayment() != null) {
bill.setTotal(bill.getTotal().subtract(bill.getDownPayment()));
}
}