16 package emlab.gen.role.operating;
18 import org.springframework.beans.factory.annotation.Autowired;
19 import org.springframework.transaction.annotation.Transactional;
21 import agentspring.role.AbstractRole;
22 import agentspring.role.Role;
23 import agentspring.role.RoleComponent;
38 public class PayForLoansRole extends AbstractRole<EnergyProducer> implements Role<EnergyProducer> {
48 logger.info(
"Process accepted bids to cash flow now");
52 Loan loan = plant.getLoan();
54 logger.info(
"Found a loan: {}", loan);
55 if (loan.getNumberOfPaymentsDone() < loan.getTotalNumberOfPayments()) {
57 double payment = loan.getAmountPerPayment();
58 reps.nonTransactionalCreateRepository.createCashFlow(producer, loan.getTo(), payment,
59 CashFlow.LOAN, getCurrentTick(), loan.getRegardingPowerPlant());
61 loan.setNumberOfPaymentsDone(loan.getNumberOfPaymentsDone() + 1);
63 logger.info(
"Paying {} (euro) for loan {}", payment, loan);
64 logger.info(
"Number of payments done {}, total needed: {}", loan.getNumberOfPaymentsDone(),
65 loan.getTotalNumberOfPayments());
68 Loan downpayment = plant.getDownpayment();
69 if (downpayment != null) {
70 logger.info(
"Found downpayment");
71 if (downpayment.getNumberOfPaymentsDone() < downpayment.getTotalNumberOfPayments()) {
72 double payment = downpayment.getAmountPerPayment();
73 reps.nonTransactionalCreateRepository.createCashFlow(producer, downpayment.getTo(), payment,
74 CashFlow.DOWNPAYMENT, getCurrentTick(),
75 downpayment.getRegardingPowerPlant());
76 downpayment.setNumberOfPaymentsDone(downpayment.getNumberOfPaymentsDone() + 1);
77 logger.info(
"Paying {} (euro) for downpayment {}", payment, downpayment);
78 logger.info(
"Number of payments done {}, total needed: {}", downpayment.getNumberOfPaymentsDone(),
79 downpayment.getTotalNumberOfPayments());
Iterable< PowerPlant > findPowerPlantsByOwner(@Param("owner") EnergyProducer owner)