1 package de.dhbwloe.campusapp.database;
3 import android.content.ContentValues;
4 import android.database.Cursor;
5 import android.database.sqlite.SQLiteDatabase;
7 import java.util.ArrayList;
9 import de.dhbwloe.campusapp.CampusAppContext;
10 import de.dhbwloe.campusapp.mensaplan.MensaTagesplan;
13 * Created by pk910 on 24.01.2016.
15 public class MensaplanDatabaseHelper {
16 private CampusAppContext AppContext;
17 private SQLiteDatabase database;
19 public MensaplanDatabaseHelper(CampusAppContext context, SQLiteDatabase database) {
20 this.database = database;
24 public void updateMensaTagesplan(MensaTagesplan plan) {
25 boolean isExisting = false;
26 String[] whereArgs = new String[] {
27 Long.toString(plan.getPlanDate()),
30 Cursor resultSet = database.rawQuery("SELECT ChkSum FROM MensaPlan WHERE PlanDate = ? AND MenuName = ?", whereArgs);
31 if(resultSet.moveToFirst()) {
32 long chksum = resultSet.getLong(0);
33 if(plan.getChkSum() == chksum)
34 return; // nothing to update
41 ContentValues updateValues = new ContentValues();
42 updateValues.put("ChkSum", plan.getChkSum());
43 updateValues.put("Name", plan.getName());
44 updateValues.put("NameHtml", plan.getNameHtml());
45 updateValues.put("Additional", plan.getAdditional());
46 updateValues.put("Notes", plan.getNotes());
47 int plainPrice[] = plan.getPlainPrice();
48 updateValues.put("PriceStudents", plainPrice[0]);
49 updateValues.put("PriceEmployees", plainPrice[1]);
50 updateValues.put("PriceGuests", plainPrice[2]);
51 updateValues.put("PriceSchool", plainPrice[3]);
53 database.update("MensaPlan", updateValues, "PlanDate = ? AND MenuName = ?", whereArgs);
54 } catch(Exception e) {
59 ContentValues indexValues = new ContentValues();
60 indexValues.put("PlanDate", plan.getPlanDate());
61 indexValues.put("MenuName", plan.getMenuName());
63 indexValues.put("ChkSum", plan.getChkSum());
64 indexValues.put("Name", plan.getName());
65 indexValues.put("NameHtml", plan.getNameHtml());
66 indexValues.put("Additional", plan.getAdditional());
67 indexValues.put("Notes", plan.getNotes());
68 int plainPrice[] = plan.getPlainPrice();
69 indexValues.put("PriceStudents", plainPrice[0]);
70 indexValues.put("PriceEmployees", plainPrice[1]);
71 indexValues.put("PriceGuests", plainPrice[2]);
72 indexValues.put("PriceSchool", plainPrice[3]);
74 database.insertOrThrow("MensaPlan", null, indexValues);
76 } catch(Exception e) {
83 public MensaTagesplan[] getMensaTagesplan(long timeFrom, long timeTo) {
84 String[] whereArgs = new String[] {
85 Long.toString(timeFrom),
88 Cursor resultSet = database.rawQuery("SELECT PlanDate,MenuName,ChkSum,Name,NameHtml,Additional,Notes,PriceStudents,PriceEmployees,PriceGuests,PriceSchool FROM MensaPlan WHERE PlanDate >= ? AND PlanDate <= ?", whereArgs);
89 ArrayList<MensaTagesplan> results = new ArrayList<MensaTagesplan>();
90 if(resultSet.moveToFirst()) {
91 int[] columnIndexes = {
92 resultSet.getColumnIndex("PlanDate"),
93 resultSet.getColumnIndex("MenuName"),
94 resultSet.getColumnIndex("ChkSum"),
95 resultSet.getColumnIndex("Name"),
96 resultSet.getColumnIndex("NameHtml"),
97 resultSet.getColumnIndex("Additional"),
98 resultSet.getColumnIndex("Notes"),
99 resultSet.getColumnIndex("PriceStudents"),
100 resultSet.getColumnIndex("PriceEmployees"),
101 resultSet.getColumnIndex("PriceGuests"),
102 resultSet.getColumnIndex("PriceSchool")
105 MensaTagesplan plan = new MensaTagesplan(
106 resultSet.getLong(columnIndexes[0]), resultSet.getString(columnIndexes[1]),
107 resultSet.getLong(columnIndexes[2]), resultSet.getString(columnIndexes[3]),
108 resultSet.getString(columnIndexes[4]), resultSet.getString(columnIndexes[5]),
109 resultSet.getString(columnIndexes[6]),
110 resultSet.getInt(columnIndexes[7]), resultSet.getInt(columnIndexes[8]),
111 resultSet.getInt(columnIndexes[9]), resultSet.getInt(columnIndexes[10])
115 } while (resultSet.moveToNext());
119 MensaTagesplan[] resultsArr = new MensaTagesplan[results.size()];
120 resultsArr = results.toArray(resultsArr);
124 public long[] getDaysWithPlanData(long timeFrom, long timeTo) {
125 String[] whereArgs = new String[] {
126 Long.toString(timeFrom),
127 Long.toString(timeTo)
129 Cursor resultSet = database.rawQuery("SELECT PlanDate FROM MensaPlan WHERE PlanDate >= ? AND PlanDate <= ? GROUP BY PlanDate", whereArgs);
130 ArrayList<Long> results = new ArrayList<Long>();
131 if(resultSet.moveToFirst()) {
133 long date = resultSet.getLong(0);
136 } while (resultSet.moveToNext());
140 long[] resultsArr = new long[results.size()];
141 for(int i = 0; i < resultsArr.length; i++) {
142 resultsArr[i] = results.get(i);
147 public long[] getWeeksWithPlanData(long timeFrom, long timeTo) {
148 String[] whereArgs = new String[] {
149 Long.toString(timeFrom),
150 Long.toString(timeTo)
152 Cursor resultSet = database.rawQuery("SELECT MIN(PlanDate) AS PlanDate, strftime(\"%W\", PlanDate, \"unixepoch\") AS PlanWeek FROM MensaPlan WHERE PlanDate >= ? AND PlanDate <= ? GROUP BY PlanWeek", whereArgs);
153 ArrayList<Long> results = new ArrayList<Long>();
154 if(resultSet.moveToFirst()) {
156 long date = resultSet.getLong(0);
159 } while (resultSet.moveToNext());
163 long[] resultsArr = new long[results.size()];
164 for(int i = 0; i < resultsArr.length; i++) {
165 resultsArr[i] = results.get(i);