/* Copyright 2009 - 2010 Under Dusken Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package no.dusken.barweb; import no.dusken.barweb.model.BalanceTransaksjon; import no.dusken.barweb.model.BarPerson; import no.dusken.barweb.model.Gjeng; import no.dusken.barweb.model.Vare; import no.dusken.barweb.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author Marvin B. Lillehaug <lillehau@underdusken.no> * @author Magnus Kirø <magnuskiro@underdusken.no> */ public class ListController extends MultiActionController { private BarPersonService barPersonService; private GjengService gjengService; private VareService vareService; private TransaksjonService transaksjonService; private BalanceTransaksjonService balanceTransaksjonService; private final int pageSize = 300; private String pageLinkPart = ""; private String gjengView; private String personView; private String vareView; private String transaksjonsView; private String balanceTransaksjonView; private Pageable page; public ModelAndView listGjenger(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> map = new HashMap<String, Object>(); List<Gjeng> gjenger = gjengService.findAll( new Sort(new Sort.Order(Sort.Direction.ASC, "name"))); map.put("gjenger", gjenger); return new ModelAndView(gjengView, map); } public ModelAndView listGjeng(HttpServletRequest request, HttpServletResponse response) throws ServletRequestBindingException { Map<String, Object> map = new HashMap<String, Object>(); long gjengID = ServletRequestUtils.getRequiredLongParameter(request, "ID"); Gjeng gjeng = gjengService.findOne(gjengID); map.put("gjeng", gjeng); return new ModelAndView(personView, map); } public ModelAndView listVarer(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> map = new HashMap<String, Object>(); List<Vare> varer = vareService.findAll(); map.put("varer", varer); return new ModelAndView(vareView, map); } public ModelAndView listTransaksjoner(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> map = new HashMap<String, Object>(); long personId = ServletRequestUtils.getLongParameter(request, "personID", 0); long gjengId = ServletRequestUtils.getLongParameter(request, "gjengID", 0); int pageNr = ServletRequestUtils.getIntParameter(request, "pageNr", 0); page = new PageRequest(pageNr, pageSize); if(personId != 0){ BarPerson barPerson = barPersonService.findOne(personId); map.put("transaksjoner", transaksjonService.getByBarPersonOrderByTimeCreatedDesc(barPerson, page)); pageLinkPart = "personID="+personId; }else if(gjengId != 0){ Gjeng gjeng = gjengService.findOne(gjengId); map.put("transaksjoner", transaksjonService.getByBarPerson_GjengOrderByTimeCreatedDesc(gjeng, page)); pageLinkPart = "gjengID="+gjengId; }else{ map.put("transaksjoner", transaksjonService.findAllOrderByTimeCreatedDesc(page)); pageLinkPart = ""; } map.put("pageNr", pageNr); map.put("pageLinkPart", pageLinkPart); map.put("varer", vareService.getByActiveTrueOrderByOrderingAsc()); return new ModelAndView(transaksjonsView, map); } public ModelAndView listBalanceTransaksjons(HttpServletRequest request, HttpServletResponse response) { Map<String, Object> map = new HashMap<String, Object>(); long personID = ServletRequestUtils.getLongParameter(request, "personID", 0); int pageNr = ServletRequestUtils.getIntParameter(request, "pageNr", 0); page = new PageRequest(pageNr, pageSize); List<BalanceTransaksjon> balanceTransaction; if(personID != 0){ BarPerson barPerson = barPersonService.findOne(personID); balanceTransaction = balanceTransaksjonService.getByBarPersonOrderByTimeCreatedDesc(barPerson, page); map.put("barPerson", barPerson); pageLinkPart = "personID="+personID; }else{ balanceTransaction = balanceTransaksjonService.findAllOrderByTimeCreatedDesc(page); pageLinkPart = ""; } String editMessage = ServletRequestUtils.getStringParameter(request, "editMessage", ""); map.put("editMessage", editMessage); map.put("pageNr", pageNr); map.put("pageLinkPart", pageLinkPart); map.put("balanceTransaksjons", balanceTransaction); return new ModelAndView(balanceTransaksjonView, map); } @Autowired public void setBarPersonService(BarPersonService barPersonService) { this.barPersonService = barPersonService; } @Autowired public void setGjengService(GjengService gjengService) { this.gjengService = gjengService; } @Autowired public void setVareService(VareService vareService) { this.vareService = vareService; } @Autowired public void setTransaksjonService(TransaksjonService transaksjonService) { this.transaksjonService = transaksjonService; } public void setGjengView(String gjengView) { this.gjengView = gjengView; } public void setPersonView(String personView) { this.personView = personView; } public void setVareView(String vareView) { this.vareView = vareView; } public void setTransaksjonsView(String transaksjonsView) { this.transaksjonsView = transaksjonsView; } @Autowired public void setBalanceTransaksjonService(BalanceTransaksjonService balanceTransaksjonService) { this.balanceTransaksjonService = balanceTransaksjonService; } public void setBalanceTransaksjonView(String balanceTransaksjonView) { this.balanceTransaksjonView = balanceTransaksjonView; } }