package info.bukova.isspst.ui.main.invoicing;

import info.bukova.isspst.data.Invoicing;
import info.bukova.isspst.data.User;
import info.bukova.isspst.data.Workgroup;
import info.bukova.isspst.filters.InvoicingFilter;
import info.bukova.isspst.services.invoicing.InvoicingService;
import info.bukova.isspst.services.users.UserService;
import info.bukova.isspst.services.workgroups.WorkgroupService;
import info.bukova.isspst.ui.ListViewModel;

import java.util.List;

import org.zkoss.bind.annotation.GlobalCommand;
import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zk.ui.select.annotation.WireVariable;

public class InvoicingList extends ListViewModel<Invoicing> {

	@WireVariable
	protected InvoicingService invoicingService;
	@WireVariable
	private WorkgroupService workgroupService;
	@WireVariable
	private UserService userService;

	@Init(superclass = true)
	public void initInvoicing() {
		service = invoicingService;
		dataClass = Invoicing.class;
		dataFilter = new InvoicingFilter(getFilterTemplate());
	}

	@Override
	public boolean isAbleToAdd() {
		return false;
	}

	@Override
	public boolean isAbleToDelete() {
		return false;
	}
	
	public List<Workgroup> getCentres() {
		return workgroupService.getCentres();
	}
	
	public List<Workgroup> getWorkgroups() {
		return workgroupService.getWorkgroups();
	}
	
	public List<User> getUsers() {
		return userService.getUsersForCombo();
	}
	
	@GlobalCommand
	@NotifyChange({ "dataList", "dataBean", "ableToDelete" })
	public void refreshTabs()
	{
		// Změnou hodnoty Vyřízeno se záznam přesunul do jiné záložky
		// Aby se editovaný záznam nerefreshoval, protože tam už nebude, nastaví
		// se na null
		this.setEditBean(null);
		// Provede přenačtení všech záložek
		this.reload();
	}
}
