package com.example.barnes.ummo.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Build;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
/**
* Created by barnes on 8/6/15.
*/
public class Db
{
private SQLiteDatabase db;
private final Context context;
private final DbHelper dbhelper;
public Db(Context c)
{
context = c;
dbhelper = new DbHelper(context, Constants.DATABASE_NAME, null, Constants.DATABASE_VERSION);
//dbhelper.onCreate(db);
}
public void close()
{
db.close();
}
public void open() throws SQLiteException
{
db = dbhelper.getWritableDatabase();
try
{
db = dbhelper.getWritableDatabase();
db.execSQL("PRAGMA foreign_keys=ON;");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
{
db.setForeignKeyConstraintsEnabled(true);
}
}
catch(SQLiteException ex)
{
db = dbhelper.getReadableDatabase();
}
}
public long insertServiceTypeQ(int serviceTypeId, String qtypename)
{
long insert;
try
{
ContentValues newTaskValue = new ContentValues();
newTaskValue.put(Constants.Q_SERVICETYPEID, serviceTypeId);
newTaskValue.put(Constants.Q_SERVICETYPENAME, qtypename);
insert = db.insert(Constants.TABLE_Q_SERVICETYPE, null, newTaskValue);
}
catch(SQLiteException ex)
{
Toast.makeText(context, "Not Saved", Toast.LENGTH_LONG).show();
insert = -1;
}
return insert;
}
public long insertServiceProviderQ(int serviceProviderId, String qprovidername, int qserviceTypeId)
{
long insert;
try
{
ContentValues newTaskValue = new ContentValues();
newTaskValue.put(Constants.Q_SERVICEPROVIDERID, serviceProviderId);
newTaskValue.put(Constants.Q_SERVICEPROVIDERNAME, qprovidername);
newTaskValue.put(Constants.Q_SERVICETYPEID, qserviceTypeId);
insert = db.insert(Constants.TABLE_Q_SERVICEPROVIDER, null, newTaskValue);
}
catch(SQLiteException ex)
{
Toast.makeText(context, "Not Saved", Toast.LENGTH_LONG).show();
insert = -1;
}
return insert;
}
public long insertServiceNameQ(int serviceId, String qservicename, int qserviceTypeId, int qserviceProviderId)
{
long insert;
try
{
ContentValues newTaskValue = new ContentValues();
newTaskValue.put(Constants.Q_SERVICENAMEID, serviceId);
newTaskValue.put(Constants.Q_SERVICENAME, qservicename);
newTaskValue.put(Constants.Q_SERVICETYPEID, qserviceTypeId);
newTaskValue.put(Constants.Q_SERVICEPROVIDERID, qserviceProviderId);
insert = db.insert(Constants.TABLE_Q_SERVICE, null, newTaskValue);
}
catch(SQLiteException ex)
{
Toast.makeText(context, "Not Saved", Toast.LENGTH_LONG).show();
insert = -1;
}
return insert;
}
public long insertQ(int qserviceid, String qname, int qtabPositon, String qposition)
{
long insert;
try
{
ContentValues newTaskValue = new ContentValues();
newTaskValue.put(Constants.Q_SERVICENAMEID, qserviceid);
newTaskValue.put(Constants.Q_NAME, qname);
newTaskValue.put(Constants.Q_TAB_POSITION, qtabPositon);
newTaskValue.put(Constants.Q_POSITION, qposition);
insert = db.insert(Constants.TABLE_NAME_Q, null, newTaskValue);
}
catch(SQLiteException ex)
{
Toast.makeText(context, "Not Saved", Toast.LENGTH_LONG).show();
insert = -1;
}
return insert;
}
public boolean deleteQ(String num)
{
return db.delete(Constants.TABLE_NAME_Q,Constants.Q_ID + "=" + num,null) > 0;
}
public List<String> getJoinedQ_id(String qserviceName)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " WHERE " + Constants.Q_NAME + " = '" + qserviceName +"'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(0));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQService_id(String qserviceName)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_Q_SERVICE + " WHERE " + Constants.Q_SERVICENAME + " = '" + qserviceName +"'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(0));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQs_Joined()
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q;
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(3));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQsJoined()
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q;
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(0));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQNameJoined()
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q;
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(2));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQPositionJoined(String qname)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " WHERE " + Constants.Q_NAME + " = '" + qname +"'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(4));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQNameJoinedFromTabPosition(int tabPosition)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " WHERE " + Constants.Q_TAB_POSITION + " = '" + tabPosition + "'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(2));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQPosition()
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q ;
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(4));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQServiceProviderName(int id)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_Q_SERVICEPROVIDER + " WHERE " + Constants.Q_SERVICETYPEID + " = '" + id +"'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(1));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQServicePid(String pname)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_Q_SERVICEPROVIDER + " WHERE " + Constants.Q_SERVICEPROVIDERNAME + " = '" + pname +"'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(0));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getQServiceName(int id)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_Q_SERVICE + " WHERE " + Constants.Q_SERVICEPROVIDERID + " = '" + id +"'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(1));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getAllQServiceTypesName()
{
List<String> labels = new ArrayList<String>();
try
{
// Select All Query
String selectQuery = "SELECT * FROM " + Constants.TABLE_Q_SERVICETYPE + " ORDER BY " + Constants.Q_SERVICETYPEID + " DESC";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
//Cursor c = db.query(Constants.TABLE_NAME_2, null, null, null, null, null, null);
// looping through all rows and adding to list
if (c.moveToFirst())
{
do
{
labels.add(c.getString(1));
}
while (c.moveToNext());
}
// closing connection
c.close();
//db.close();
}
catch(SQLiteException ex)
{
//return -1;
}
// returning lables
return labels;
}
public List<String> getQServiceTypeid(String tname)
{
List<String> labels = new ArrayList<String>();
try
{
// Select All Query
String selectQuery = "SELECT * FROM " + Constants.TABLE_Q_SERVICETYPE + " WHERE " + Constants.Q_SERVICETYPENAME + " = '" + tname + "';";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
//Cursor c = db.query(Constants.TABLE_NAME_2, null, null, null, null, null, null);
// looping through all rows and adding to list
if (c.moveToFirst())
{
do
{
labels.add(c.getString(0));
}
while (c.moveToNext());
}
// closing connection
c.close();
//db.close();
}
catch(SQLiteException ex)
{
//return -1;
}
// returning lables
return labels;
}
public Cursor getQTabPosition()
{
//Cursor c = db.query(Constants.TABLE_NAME_1, null, null, null, null, null, null);
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " ORDER BY " + Constants.Q_TAB_POSITION + " DESC";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
return c;
}
public List<String> getAllQTabPosition()
{
List<String> labels = new ArrayList<String>();
try
{
// Select All Query
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " ORDER BY " + Constants.Q_TAB_POSITION + " DESC";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
//Cursor c = db.query(Constants.TABLE_NAME_2, null, null, null, null, null, null);
// looping through all rows and adding to list
if (c.moveToFirst())
{
do
{
labels.add(c.getString(1));
}
while (c.moveToNext());
}
// closing connection
c.close();
//db.close();
}
catch(SQLiteException ex)
{
//return -1;
}
// returning lables
return labels;
}
public List<String> getAllQId()
{
List<String> labels = new ArrayList<String>();
try
{
// Select All Query
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " ORDER BY " + Constants.Q_TAB_POSITION + " DESC";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
//Cursor c = db.query(Constants.TABLE_NAME_2, null, null, null, null, null, null);
// looping through all rows and adding to list
if (c.moveToFirst())
{
do
{
labels.add(c.getString(0));
}
while (c.moveToNext());
}
// closing connection
c.close();
//db.close();
}
catch(SQLiteException ex)
{
//return -1;
}
// returning lables
return labels;
}
public List<String> getQName(String name)
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " WHERE " + Constants.Q_NAME + " = '" + name +"'";
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(1));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getJoinedQName()
{
List<String> qName = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q;
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
if (c.moveToFirst())
{
do
{
qName.add(c.getString(1));
}
while(c.moveToNext());
}
else
{
}
c.close();
}
catch(SQLiteException ex)
{
}
return qName;
}
public List<String> getAllQs()
{
List<String> labels = new ArrayList<String>();
try
{
String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME_Q + " ORDER BY " + Constants.Q_TAB_POSITION;
db = dbhelper.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (c.moveToFirst())
{
do
{
labels.add(c.getString(2));
}
while (c.moveToNext());
}
c.close();
}
catch(SQLiteException ex)
{
}
return labels;
}
public boolean updateQPosition(String qid, String qname, String qtabPosition, String qposition)
{
ContentValues value = new ContentValues();
value.put(Constants.Q_NAME, qname);
value.put(Constants.Q_TAB_POSITION, qtabPosition);
value.put(Constants.Q_POSITION, qposition);
return db.update(Constants.TABLE_NAME_Q,value, Constants.Q_ID + "=" + qid,null) > 0;
}
}