package
com.sqlitedb;
import
com.ProjectClass.Product;
import
com.projectConstant.ProjectConstant;
import
android.content.ContentValues;
import
android.content.Context;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
public
class
HistoryDB
extends
SDSQLiteOpenHelper {
private
final
static
String DATABASE_NAME = ProjectConstant.projectDBDirName + ProjectConstant.DB_HISTORY;
private
final
static
int
DATABASE_VERSION =
1
;
private
final
static
String HSTRYBUYTABLE= ProjectConstant.DB_HSTRYTABLE;
public
final
static
String PRODUCT_ID =
"_id"
;
public
final
static
String HISTORY_TYPE = ProjectConstant.DB_HISTORY_TYPE;
public
final
static
String PRODUCT_CLIENT = ProjectConstant.DB_CLIENT_ID;
public
final
static
String PRODUCT_PARENT = ProjectConstant.DB_PARENT;
public
final
static
String PRODUCT_PICTURENAME = ProjectConstant.DB_PICTURENAME;
public
final
static
String PRODUCT_PRUDUCTNAME = ProjectConstant.DB_PRODUCTNAME;
public
final
static
String PRODUCT_PRICE = ProjectConstant.DB_PRICE;
public
final
static
String PRODUCT_NUMBER = ProjectConstant.DB_NUMBER;
public
HistoryDB(Context context) {
super
(context, DATABASE_NAME,
null
, DATABASE_VERSION);
}
@Override
public
void
onCreate(SQLiteDatabase db) {
String sql =
"create table "
+HSTRYBUYTABLE+
" ("
+PRODUCT_ID+
" integer primary key autoincrement, "
+PRODUCT_CLIENT+
" text, "
+HISTORY_TYPE+
" text, "
+PRODUCT_PARENT+
" text, "
+PRODUCT_PRUDUCTNAME+
" text, "
+PRODUCT_PICTURENAME+
" text, "
+PRODUCT_PRICE+
" text, "
+PRODUCT_NUMBER+
" text )"
;
db.execSQL(sql);
}
public
void
onUpgrade(SQLiteDatabase db,
int
oldVersion,
int
newVersion) {
String sql =
"drop table if exists "
+HSTRYBUYTABLE;
db.execSQL(sql);
onCreate(db);
}
public
Cursor selectHProducts(){
SQLiteDatabase db =
this
.getReadableDatabase();
Cursor cursor = db.query(HSTRYBUYTABLE,
null
,
null
,
null
,
null
,
null
,
null
);
return
cursor;
}
public
long
insertHProduct(String clientName, String type, Product myProduct){
SQLiteDatabase db =
this
.getWritableDatabase();
ContentValues cv =
new
ContentValues();
cv.put(PRODUCT_NUMBER, myProduct.getNumber());
cv.put(PRODUCT_CLIENT, clientName);
cv.put(HISTORY_TYPE, type);
cv.put(PRODUCT_PARENT, myProduct.getProductParent());
cv.put(PRODUCT_PRICE, myProduct.getPrice());
cv.put(PRODUCT_PICTURENAME, myProduct.getPictureName());
cv.put(PRODUCT_PRUDUCTNAME, myProduct.getPocductName());
return
db.insert(HSTRYBUYTABLE,
null
, cv);
}
public
void
deleteHProduct(String clientName, String type, Product myProduct){
SQLiteDatabase db =
this
.getWritableDatabase();
String where = PRODUCT_ID+
"=?"
;
String[] whereValues = {getIDByUadate(clientName, myProduct.getPocductName(), type)};
db.delete(HSTRYBUYTABLE, where, whereValues);
}
public
int
operateHProduct(String clientName, String type, Product myProduct){
int
i =
0
;
if
(updateHProduct(clientName, type, myProduct) ==
0
){
i =
1
;
insertHProduct(clientName, type, myProduct);
}
return
i;
}
public
int
updateHProduct(String clientName, String type, Product myProduct){
SQLiteDatabase db =
this
.getWritableDatabase();
String where = PRODUCT_ID+
"=?"
;
String[] whereValues = {getIDByUadate(clientName, myProduct.getPocductName(), type)};
ContentValues cv =
new
ContentValues();
cv.put(HISTORY_TYPE, type);
cv.put(PRODUCT_NUMBER, myProduct.getNumber());
cv.put(PRODUCT_PARENT, myProduct.getProductParent());
cv.put(PRODUCT_PRICE, myProduct.getPrice());
cv.put(PRODUCT_PICTURENAME, myProduct.getPictureName());
return
db.update(HSTRYBUYTABLE, cv, where, whereValues);
}
private
String getIDByUadate(String clientName, String ProductName, String type){
SQLiteDatabase db =
this
.getReadableDatabase();
String where = PRODUCT_PRUDUCTNAME+
"=? and "
+ PRODUCT_CLIENT +
"=? and "
+ HISTORY_TYPE +
"=?"
;
String[] whereValues = {ProductName, clientName, type};
Cursor cursor = db.query(HSTRYBUYTABLE,
null
, where, whereValues,
null
,
null
,
null
);
cursor.moveToFirst();
if
(!cursor.isAfterLast())
return
cursor.getString(cursor.getColumnIndex(PRODUCT_ID));
return
"0"
;
}
}