private int actualizarItemsPedidoDespachados() throws Exception { int cantidadAActualizar = 0; DetallePedidoDAO detallePedidoDAO = new DetallePedidoDAO(getApplicationContext()); Object requestObject; String result; // AlarmPedidoDespaSharedPref.save(mPrefAlarmDespachos, Funciones.getCurrentTimeStamp()); long timeStamp = mPrefAlarmDespachos.getLong( AlarmPedidoDespaSharedPref.FECHA_ULTIMA_SINCRONIZACION, Funciones.addDays(-1).getTime()); String fechaHora = String.valueOf(timeStamp); // fechaHora = URLEncoder.encode(fechaHora, "utf-8"); Log.d(DBHelper.TAG, "LAST TIMESTAMP SAVED:" + fechaHora); String GET_URI = mUrlServer + "restaurante/ObtenerPedidosDespachados/?codMozo=%s&codCia=%s&fechaAux=%s&cadenaConexion=%s"; String url = String.format(GET_URI, mCodMozo, mCodCia, fechaHora, mAmbiente); Log.d(DBHelper.TAG, url); if (Funciones.hasActiveInternetConnection(getApplicationContext())) { RestConnector restConnector = RestUtil.obtainGetConnection(url); requestObject = restConnector.doRequest(url); if (requestObject instanceof String) { // Only if the request was successful parse the returned value otherwise re-throw the // exception result = (String) requestObject; Gson gson = new Gson(); JsonArray jsonArrayResponse = gson.fromJson(result, JsonArray.class); cantidadAActualizar = jsonArrayResponse.size(); if (cantidadAActualizar > 0) { detallePedidoDAO.updateEstadoItemsPedido(jsonArrayResponse, 1, 2); Log.d(DBHelper.TAG, "NEW TIMESTAMP SAVED: " + Funciones.getCurrentTimeStamp()); AlarmPedidoDespaSharedPref.save(mPrefAlarmDespachos, Funciones.getCurrentTimeStamp()); } } else if (requestObject instanceof Exception) { Log.d( DBHelper.TAG, "Error al guardar data de sincronizacion: " + ((Exception) requestObject).getMessage()); throw new Exception(((Exception) requestObject).getMessage()); } } return cantidadAActualizar; }
@Override protected void doWakefulWork(Intent intent) { // get SharedPreferences mPrefConfig = getApplicationContext() .getSharedPreferences(LoginActivity.PREF_CONFIG, Context.MODE_PRIVATE); mPrefLogin = getApplicationContext().getSharedPreferences(LoginSharedPref.NAME, Context.MODE_PRIVATE); mPrefConexion = getApplicationContext().getSharedPreferences(ConexionSharedPref.NAME, Context.MODE_PRIVATE); mPrefAlarmDespachos = getApplicationContext() .getSharedPreferences(AlarmPedidoDespaSharedPref.NAME, Context.MODE_PRIVATE); mAmbiente = mPrefConexion.getString(ConexionSharedPref.AMBIENTE, ""); mCodCia = mPrefConfig.getString("CodCia", ""); mCodMozo = mPrefConfig.getString("CodMozo", ""); mUrlServer = RestUtil.obtainURLServer(getApplicationContext()); int cantidadActualizar = 0; try { mAmbiente = URLEncoder.encode(mAmbiente, "utf-8"); Log.d( DBHelper.TAG, "Llamada a ObtenerPedidosDespachados: " + Funciones.getCurrentDate("yyyy/MM/dd hh:mm:ss")); cantidadActualizar = actualizarItemsPedidoDespachados(); } catch (Exception e) { mensaje = e.getMessage(); exito = false; } Intent event = new Intent(ConsultarPedidosRecogerService.ACTION_CHECK_READY_ORDERS); // --update local data with data retrieved from cocina // TODO: Considerar una fecha 'fecha listo' para que esa fecha se establezca la unica vez que // debo actualizar // el estado a despachado de cocina para luego mostrar en la lista los que llegaron primero osea // ordernarlos x // fecha y hora DESC // sera necesario agregar fecha para esto y creo que tb para confirmarRecivido event.putExtra(PedidosARecogerActivity.EXTRA_CANTIDAD_ACTUALIZAR, cantidadActualizar); if (!LocalBroadcastManager.getInstance(this).sendBroadcast(event)) { if (cantidadActualizar > 0) { Log.d(getClass().getSimpleName(), "I only run when I have to show a notification!"); NotificationCompat.Builder b = new NotificationCompat.Builder(this); Intent ui = new Intent(this, PedidosARecogerActivity.class); b.setAutoCancel(true) .setDefaults(Notification.DEFAULT_SOUND) .setContentTitle(getString(R.string.notif_title)) .setContentText(String.valueOf(cantidadActualizar)) .setContentText(Integer.toHexString(1)) .setSmallIcon(android.R.drawable.stat_notify_more) .setTicker(getString(R.string.notif_title)) .setContentIntent(PendingIntent.getActivity(this, 0, ui, 0)); NotificationManager mgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); mgr.notify(NOTIFY_ID, b.build()); } } }