package cz.cvut.fel.restauracefel.server.service.controllers; import cz.cvut.fel.restauracefel.hibernate.Material; import cz.cvut.fel.restauracefel.hibernate.MenuItem; import cz.cvut.fel.restauracefel.hibernate.UsedMaterial; import java.util.Iterator; import java.util.List; /** * * @author Jarda */ public class UsedMaterialController { private static UsedMaterialController instance = null; private UsedMaterial usedMaterial = null; private UsedMaterialController(){ } public static UsedMaterialController getInstance(){ if (instance == null){ instance = new UsedMaterialController(); } return instance; } //vytvari novy zaznam o pouzitem materialu public void createUsedMaterial(int materialId, int menuItemId, double quantity){ usedMaterial = new UsedMaterial(); usedMaterial.setMaterial(Material.findById(materialId)); usedMaterial.setMenuItem(MenuItem.findById(menuItemId)); usedMaterial.setQuantity(quantity); usedMaterial.create(); } //maze zaznam o pouzitem materialu s danym Id public boolean deleteUsedMaterial(int usedMaterialId){ usedMaterial = UsedMaterial.findById(usedMaterialId); if (usedMaterial == null){ return false; } //usedMaterial.delete(); usedMaterial.setIsDeleted(1); return true; } //aktualizuje zaznam o pouzitem materialu s danym Id public boolean updateUsedMaterial(int usedMaterialId, int materialId, int menuItemId, double quantity){ usedMaterial = UsedMaterial.findById(usedMaterialId); if (usedMaterial == null){ return false; } usedMaterial.setMaterial(Material.findById(materialId)); usedMaterial.setMenuItem(MenuItem.findById(menuItemId)); usedMaterial.setQuantity(quantity); usedMaterial.update(); return true; } //vraci pole typu Object naplnene zaznamy o pouzitych materialech public Object [][] getUsedMaterials(){ List<UsedMaterial> list = UsedMaterial.findAll(); if (list == null || list.isEmpty()) return null; Object [][] array = new Object [list.size()][4]; Iterator it = list.iterator(); int i = 0; while (it.hasNext()){ usedMaterial = (UsedMaterial)it.next(); array [i][0] = usedMaterial.getUsedMaterialId(); array [i][1] = usedMaterial.getMaterial().getName(); array [i][2] = usedMaterial.getQuantity(); array [i][3] = usedMaterial.getMaterial().getUnitType().getAbbreviation(); i++; } return array; } public Object [][] getUsedMaterialsByMenuItem(int menuItemId){ List<UsedMaterial> list = UsedMaterial.findByMenuItem(menuItemId); if (list == null || list.isEmpty()) return null; Object [][] array = new Object [list.size()][4]; Iterator it = list.iterator(); int i = 0; while (it.hasNext()){ usedMaterial = (UsedMaterial)it.next(); array [i][0] = usedMaterial.getUsedMaterialId(); array [i][1] = usedMaterial.getMaterial().getName(); array [i][2] = usedMaterial.getQuantity(); array [i][3] = usedMaterial.getMaterial().getUnitType().getAbbreviation(); i++; } return array; } //navraci zaznam o pouzitem materialu s danym Id public UsedMaterial getUsedMaterialById(int usedMaterialId){ return UsedMaterial.findById(usedMaterialId); } }