/**
* Copyright (C) 2007 Julien Revault d'Allonnes
*
* This file is part of DruideCave.
*
* DruideCave is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* DruideCave is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DruideCave; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
package com.ledruide.druidecave.business;
import com.ledruide.druidecave.dao.Bottle;
import com.ledruide.druidecave.dao.BottlePeer;
import com.ledruide.druidecave.gui.BottleAdd;
import com.ledruide.druidecave.gui.Home;
import com.ledruide.druidecave.helpers.I18nScreens;
import com.ledruide.druidegui.SwapFrame;
import com.ledruide.druidegui.helpers.Session;
import com.ledruide.druidegui.helpers.TextTools;
import com.ledruide.druidegui.tools.ComponentTools;
import java.util.Calendar;
import java.util.List;
/**
* @author Julien
* @since 14 oct. 2006
*/
public class BottlesProxy {
/**
* Cette m�thode permet de sauvegarder tout ce qui concerne une nouvelle bouteille :)
*
* @param ihm l'IHM de la bouteille en question
* @return true si tout se passe correctement, false sinon.
*/
public static boolean ajout(BottleAdd ihm) {
// Proc�dons � quelques v�rifications
// le nom doit �tre renseign�
if (TextTools.isNullOrEmpty(ihm.getFieldName().getText())) {
ihm.addMessages(ihm.getFieldName(), I18nScreens.getInstance().get("screen.bottle.add.error.name"));
return false;
}
Bottle boutanche = new Bottle();
boutanche.setYear(ihm.getFieldYear().getText());
boutanche.setAwakening(ihm.getFieldAwakening().getText());
boutanche.setDenomination_id(ComponentTools.getClefFromCombo(ihm.getComboDenomination()));
boutanche.setClassification_id(ComponentTools.getClefFromCombo(ihm.getComboClassification()));
boutanche.setFormat_id(ComponentTools.getClefFromCombo(ihm.getComboFormat()));
boutanche.setName(ihm.getFieldName().getText());
boutanche.setCountry_id(ComponentTools.getClefFromCombo(ihm.getComboCountry()));
boutanche.setPrice(ihm.getFieldPrice().getText());
boutanche.setQuantity(ihm.getFieldQuantity().getText());
boutanche.setVigneron_id(ComponentTools.getClefFromCombo(ihm.getComboVigneron()));
boutanche.setRegion_id(ComponentTools.getClefFromCombo(ihm.getComboRegion()));
boutanche.setColor_id(ComponentTools.getClefFromCombo(ihm.getComboColor()));
try {
return boutanche.save();
}
catch (Exception e) {
ihm.addMessages(null, I18nScreens.getInstance().get("screen.bottle.add.error.name"));
return false;
}
}
/**
* Cette m�thode retourne le nombre de bouteilles
* qui sont actuellement stock�es dans la cave.
* @return le nombre total de bouteilles en cave
*/
public static int getNombreDeBouteillesDifferentesEnCave() {
try {
List bouteilles = BottlePeer.findAll();
if (bouteilles != null) return bouteilles.size();
}
catch (Exception e) { /* rien � faire ici */ }
return 0;
}
/**
* Cette m�thode retourne le nombre de bouteilles
* qui sont actuellement stock�es dans la cave.
* @return le nombre total de bouteilles en cave
*/
public static String getNombreDeBouteillesEnCave() {
int quantite = 0;
try {
List bouteilles = BottlePeer.findAll();
if (bouteilles != null) {
// Ici il faut parcourir et r�cup�rer chaque quantit�
for (int i = 0; i < bouteilles.size(); i++) {
Bottle bout = (Bottle) bouteilles.get(i);
String boutQ = bout.getQuantity();
if (TextTools.isNullOrEmpty(boutQ)) {
boutQ = "0";
}
quantite += Integer.parseInt(boutQ);
}
}
}
catch (Exception e) {
quantite = 0;
}
return String.valueOf(quantite);
}
/**
* Cette m�thode retourne le nombre de bouteilles
* dont l'ann�e d'�veil est l'ann�e courante
* @return le nombre de bouteilles � boire cette ann�e
*/
public static String getNombreDeBouteillesEveilCetteAnnee() {
String annee = String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
int quantite = 0;
try {
List bouteilles = BottlePeer.findAll();
if (bouteilles != null) {
// Ici il faut parcourir et r�cup�rer chaque quantit�
for (int i = 0; i < bouteilles.size(); i++) {
Bottle bout = (Bottle) bouteilles.get(i);
// Si l'ann�e d'�veil est cette ann�e
if (annee.equals(bout.getAwakening())) {
String boutQ = bout.getQuantity();
if (TextTools.isNullOrEmpty(boutQ)) {
boutQ = "0";
}
quantite += Integer.parseInt(boutQ);
}
}
}
}
catch (Exception e) {
quantite = 0;
}
return String.valueOf(quantite);
}
public static Bottle getSessionBouteilleFromID() throws Exception {
String recoltant_pk = (String) Session.getInstance().getAttribute("BOUTEILLE_ID");
Bottle bouteille = BottlePeer.findByPK(recoltant_pk);
if (bouteille == null) {
// On repart vers la page d'accueil !
// ERREUR
SwapFrame.getInstance().init(Home.class);
}
return bouteille;
}
}