Mechele

Untitled

Feb 6th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.41 KB | None | 0 0
  1. package com.taxipixi.incarapp.db;
  2.  
  3. import android.content.ContentValues;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteOpenHelper;
  8. import android.util.Log;
  9.  
  10. import com.taxipixi.Constants;
  11. import com.taxipixi.entity.Order;
  12. import com.taxipixi.incarapp.api.Timeformatter;
  13. import com.taxipixi.utils.DecimalFormating;
  14.  
  15. import java.util.ArrayList;
  16. import java.util.Collection;
  17. import java.util.List;
  18.  
  19. /**
  20. * Created by aleksandr on 17.03.15.
  21. */
  22. public class CachedFinishedOrdersDB extends SQLiteOpenHelper {
  23.  
  24. //DATABASE
  25. private static final String DB_NAme = "finishedOrdersDB";
  26. private static final String TABLE_NAME = "finishedOrdersTable";
  27. private static final int DB_VERSION = 1;
  28.  
  29.  
  30. //Column names for DB
  31. private static final String ID = "id";
  32. private static final String TIME = "time";
  33. private static final String COST = "cost";
  34. private static final String DISTANCE = "distance";
  35. private static final String DESTINATION_ADRESS = "destinationAddress";
  36. private static final String PICK_UP_ADDRESS = "pickupAddress";
  37. private static final String LONG_PICK_UP_TIME = "pickUpTime";
  38. private static final String ORDER_ID = "orderId";
  39. private static final String PICK_UP_TIME="";
  40. private static final String CREDIT="credit";
  41. private static final String CASH="cash";
  42. private static final String TOTALTIME="totaltime";
  43. private static final String PICKUPDATE="pickupdate";
  44.  
  45.  
  46.  
  47. private static CachedFinishedOrdersDB instance;
  48.  
  49.  
  50. private CachedFinishedOrdersDB(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
  51. super(context, name, factory, version);
  52. }
  53.  
  54. public static CachedFinishedOrdersDB getInstance(Context context){
  55. if (instance==null){
  56. instance = new CachedFinishedOrdersDB(context, DB_NAme, null, DB_VERSION);
  57. return instance;
  58. }
  59. return instance;
  60. }
  61.  
  62. public ArrayList<ModelFromDBToAdapter> readAll(){ //get all orders from database, sorted by pick up time
  63. ArrayList <ModelFromDBToAdapter> lv = new ArrayList<ModelFromDBToAdapter>();
  64. SQLiteDatabase db = instance.getReadableDatabase();
  65. Cursor c = db.query(TABLE_NAME, null, null, null, null, null, LONG_PICK_UP_TIME + " DESC" );
  66. if (c.moveToFirst()){
  67. do {
  68. ModelFromDBToAdapter mdl = new ModelFromDBToAdapter();
  69. mdl.setTime(c.getString(c.getColumnIndex(TIME)));
  70. mdl.setCost(c.getString(c.getColumnIndex(COST)));
  71. mdl.setDistance(c.getString(c.getColumnIndex(DISTANCE)));
  72. mdl.setDestinationAdress(c.getString(c.getColumnIndex(DESTINATION_ADRESS)));
  73. mdl.setPickUpAdress(c.getString(c.getColumnIndex(PICK_UP_ADDRESS)));
  74. mdl.setOrderId(c.getString(c.getColumnIndex(ORDER_ID)));
  75. mdl.setCredit(c.getString(c.getColumnIndex(CREDIT)));
  76. mdl.setCash(c.getString(c.getColumnIndex(CASH)));
  77. mdl.setTotalTime(c.getString(c.getColumnIndex(TOTALTIME)));
  78. mdl.setPickupDate(c.getString(c.getColumnIndex(PICKUPDATE)));
  79. lv.add(mdl);
  80. } while (c.moveToNext());
  81. }
  82.  
  83. return lv;
  84. }
  85.  
  86. public void addDB(Order order){ // method to adding one order to database upon finishing it
  87. SQLiteDatabase db = instance.getWritableDatabase();
  88. ContentValues cv = new ContentValues();
  89. cv.put(TIME, order.getPickupTime());
  90. cv.put(COST, order.getCurrency() + " " + DecimalFormating.getStringFormatted(order.getActTotFare()));
  91. double dayDistance = order.getActDayDistance();
  92. double nightDistance = order.getActNightDistance();
  93. cv.put(DISTANCE, DecimalFormating.getStringFormatted(dayDistance+nightDistance) + " KM");
  94. if(order.getEndPosition()!=null){
  95. cv.put(DESTINATION_ADRESS, order.getEndPosition());
  96. }
  97. if(order.getBookingType()!=null && order.getBookingType().equals(Constants.HOURLY)) {
  98. String packageDetails = order.getPackageType();
  99. if (packageDetails.equalsIgnoreCase("FULL DAY")) {
  100. int days = order.getDays();
  101. String daysString = " DAYS";
  102. if (days == 1)
  103. daysString = " DAY";
  104. packageDetails = days + daysString;
  105. }
  106.  
  107. if (order.getDistanceEstimatedKilometers() > 0) {
  108. packageDetails = packageDetails + " /" + order.getDistanceEstimatedKilometers() + " KM";
  109. }
  110. cv.put(DESTINATION_ADRESS, packageDetails);
  111. }
  112. cv.put(PICK_UP_ADDRESS, order.getStartPosition());
  113. cv.put(LONG_PICK_UP_TIME, order.getRequestedPickupTime());
  114. cv.put(ORDER_ID, order.getOrderId());
  115. cv.put(CREDIT, order.getCredit());
  116. cv.put(CASH, order.getCash());
  117. cv.put(TOTALTIME, order.getTotalTime());
  118. cv.put(PICKUPDATE, order.getPickupDate());
  119. db.insert(TABLE_NAME, null,cv);
  120. db.close();
  121. }
  122.  
  123. public void addAllDB(List<Order> data){//method for adding all orders to database from server
  124. SQLiteDatabase db = instance.getWritableDatabase();
  125. ContentValues cv = new ContentValues();
  126. for (Order order:data){
  127. String orderId = String .valueOf(order.getOrderId());
  128. Cursor c = (db.query(TABLE_NAME,new String[]{ID},ORDER_ID+" = '" + orderId + "'",null,null,null,null));
  129. if (c!=null){
  130. if (c.getCount()==1) {
  131. continue;// aborts current iteration if there is line with current order id in DB
  132. }
  133. }
  134. cv.put(TIME, order.getPickupTime());
  135. cv.put(COST, order.getCurrency() + " " + DecimalFormating.getStringFormatted(order.getActTotFare()));
  136. double dayDistance = order.getActDayDistance();
  137. double nightDistance = order.getActNightDistance();
  138. cv.put(DISTANCE, DecimalFormating.getStringFormatted(dayDistance+nightDistance) + " KM");
  139.  
  140. if(order.getEndPosition()!=null){
  141. cv.put(DESTINATION_ADRESS, order.getEndPosition());
  142. }
  143. if(order.getBookingType()!=null && order.getBookingType().equals(Constants.HOURLY)){
  144. String packageDetails = order.getPackageType();
  145. if (packageDetails.equalsIgnoreCase("FULL DAY")) {
  146. int days = order.getDays();
  147. String daysString = " DAYS";
  148. if (days == 1)
  149. daysString = " DAY";
  150. packageDetails = days + daysString;
  151. }
  152.  
  153. if (order.getDistanceEstimatedKilometers() > 0) {
  154. packageDetails = packageDetails + " /" + order.getDistanceEstimatedKilometers() + " KM";
  155. }
  156. cv.put(DESTINATION_ADRESS, packageDetails);
  157. }
  158. cv.put(LONG_PICK_UP_TIME, order.getRequestedPickupTime());
  159. cv.put(PICK_UP_ADDRESS, order.getStartPosition());
  160. cv.put(ORDER_ID, order.getOrderId());
  161. cv.put(CREDIT, order.getCredit());
  162. cv.put(CASH, order.getCash());
  163. cv.put(TOTALTIME, order.getTotalTime());
  164. cv.put(PICKUPDATE, order.getPickupDate());
  165. db.insert(TABLE_NAME, null,cv);
  166. }
  167. db.close();
  168. }
  169.  
  170. @Override
  171. public void onCreate(SQLiteDatabase db) {
  172. db.execSQL("create table " + TABLE_NAME + " ( "
  173. + ID + " integer primary key autoincrement,"
  174. + TIME + " text,"
  175. + COST + " text,"
  176. + DISTANCE + " text,"
  177. + DESTINATION_ADRESS + " text,"
  178. + ORDER_ID + " text,"
  179. + PICK_UP_TIME + " text,"
  180. + LONG_PICK_UP_TIME + " INTEGER,"
  181. + PICK_UP_ADDRESS + " text,"
  182. + CREDIT + " text,"
  183. + CASH + " text,"
  184. + TOTALTIME + " text,"
  185. + PICKUPDATE + " text"+");" );
  186.  
  187. }
  188.  
  189. @Override
  190. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  191.  
  192. }
  193.  
  194. public void dropDB(Context context){
  195. SQLiteDatabase db = getWritableDatabase();
  196. db.delete(TABLE_NAME,null,null);
  197. }
  198. }
Advertisement
Add Comment
Please, Sign In to add comment