BillManageView.java 2.13 KB
package fi.insomnia.bortal.view;

import java.util.Calendar;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.PermissionBeanLocal;
import fi.insomnia.bortal.beans.UtilBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.BillLine;
import fi.insomnia.bortal.util.MailMessage;
import fi.insomnia.bortal.utilities.I18n;

@ManagedBean(name = "billManageView")
@SessionScoped
public class BillManageView extends GenericView {

	private static final Logger logger = LoggerFactory.getLogger(BillManageView.class);
	@EJB
	private BillBeanLocal billbean;

	private Bill bill;
	private ListDataModel<Bill> bills;
	
	@EJB
	private PermissionBeanLocal permbean;
	@EJB
	private UtilBeanLocal utilbean;
	private ListDataModel<BillLine> billines;

	public ListDataModel<Bill> getBills() {
		bills = new ListDataModel<Bill>(billbean.findAll());
		return bills;
	}

	public String saveBilline() {
		if (billines != null) {
			logger.debug("Saving bill line {}", billines.getRowData());
		}
		return null;
	}

	public ListDataModel<BillLine> getBillLines() {
		billines = new ListDataModel<BillLine>(bill.getBillLines());

		return billines;
	}

	public String edit() {
		setBill(bills.getRowData());

		return "edit";
	}

	public void setBill(Bill bill) {
		this.bill = bill;
	}

	public Bill getBill() {
		return bill;
	}

	public String markPaid() {

		bill = bills.getRowData();
		billbean.markPaid(bill, Calendar.getInstance());
		MailMessage msg = new MailMessage();
		msg.setSubject(I18n.get("bill.billMarkedPaidMail.subject"));
		msg.setMessage(I18n.get("bill.billMarkedPaidMail.message", (bill.getBillNumber() == null) ? "----" : bill.getBillNumber().toString()));
		msg.setTo(bill.getUser());
		utilbean.sendMail(msg);
		return "";
	}

	public boolean isManage() {
		return permbean.hasPermission(Permission.BILL, RolePermission.WRITE);
	}
}