package auktion;
import java.sql.*;
import java.util.*;

public class Gebot {

  public boolean putGebot(int bieter, int item) {
    String sql = "SELECT * FROM auktionskatalog WHERE snr=" + item;
    try {
      Statement s = Verbindung.getConnection().createStatement();
      ResultSet rset = s.executeQuery(sql);
      if (rset.next()) {
        double limit = rset.getDouble("limit");
        Calendar bis = Calendar.getInstance();
        bis.setTime(rset.getTimestamp("bis"));
        Calendar lst = Calendar.getInstance();
        lst.setTime(rset.getTimestamp("gebotsdatum"));
        Calendar akt = Calendar.getInstance();
        akt.setTime(new java.util.Date());
        long delay = akt.getTime().getTime() - lst.getTime().getTime();
        if (akt.getTime().getTime() > bis.getTime().getTime() && delay/1000 > 5*60) {        // 5 Minuten
          return false;
        }
        double gebot, vorgebot = rset.getDouble("gebot");
        if (limit < 1.0) limit = 1.0;                // Kleinstes Limit ist 1.0 Euro
        if (vorgebot < limit)
          gebot = limit;         // Beginn bei Limit (1. Gebot)
        else 
          gebot = Math.ceil(vorgebot * 1.025);     // 2,5% mehr und nächste ganze Mark
        String datum = "" + akt.get(akt.YEAR) + "-" + (akt.get(akt.MONTH)+1) + "-" + akt.get(akt.DAY_OF_MONTH);
               datum+= " " + akt.get(akt.HOUR_OF_DAY) + ":" + akt.get(akt.MINUTE)+ ":" + akt.get(akt.SECOND);
        sql = "UPDATE auktionskatalog SET gebot=" + gebot + 
                                  ",gebotsdatum='" + datum + "'" +
                                  ",bieter=" + bieter + " " +
              "WHERE  snr=" + item;
        s = Verbindung.getConnection().createStatement();
        s.executeUpdate(sql);
      }
      return true;
    }
    catch (Exception ex) { return false; }
  }
}

