package cz.cvut.fel.restauracefel.server.service.controllers; import cz.cvut.fel.restauracefel.hibernate.Discount; import cz.cvut.fel.restauracefel.hibernate.DiscountType; import cz.cvut.fel.restauracefel.hibernate.MenuItem; import java.util.Iterator; import java.util.List; /** * * @author Tomas Hnizdil */ public class DiscountController { protected static DiscountController instance = null; protected Discount discount = null; private DiscountController() { } public static DiscountController getInstance() { if (instance == null) { instance = new DiscountController(); } return instance; } //vytvari zaznam o novem typu slevy public boolean createDiscount(int discountTypeId, int menuItemId, double amount, double coefficient) { if(discountTypeId < 1 || menuItemId < 1){ return false; } discount = new Discount(); DiscountType discountType = DiscountType.findById(discountTypeId); discount.setDiscountType(discountType); MenuItem menuItem = MenuItem.findById(menuItemId); discount.setMenuItem(menuItem); discount.setAmount(amount); discount.setCoefficient(coefficient); discount.create(); return true; } //vraci slevu s danym Id public Discount getDiscountById(int id) { return Discount.findById(id); } //vraci vsechny slevy ve forme Listu public List getAllDiscounts() { return Discount.findAll(); } //maze typ slevy s danym Id public boolean deleteDiscount(int discountId) { discount = Discount.findById(discountId); if (discount == null) { return false; } discount.setIsDeleted(1); return true; } public Discount getDiscountByDiscountTypeAndMenuItem(int discountTypeId, int menuItemId) { return Discount.findByDiscountTypeAndMenuItem(discountTypeId, menuItemId); } //v podobe dvojrozmerneho pole typu Object navraci udaje o vsech typech slev public Object[][] getDiscounts() { List<Discount> list = Discount.findAll(); if (list == null || list.isEmpty()) { return null; } Object array[][] = new Object[list.size()][5]; int i = 0; Iterator it = list.iterator(); while (it.hasNext()) { Discount d = (Discount) it.next(); array[i][0] = d.getDiscountId(); array[i][1] = d.getDiscountType(); array[i][2] = d.getMenuItem(); array[i][3] = d.getAmount(); array[i][4] = d.getCoefficient(); i++; } return array; } }