Skip to content
Snippets Groups Projects
Commit 6e4b8937 authored by Christian Dresen's avatar Christian Dresen
Browse files

Anpassung an die Restschnittstelle, Versenden aller Transaktionen als Liste

parent 5e3f117e
No related branches found
No related tags found
No related merge requests found
...@@ -174,8 +174,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe ...@@ -174,8 +174,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
return true; return true;
} }
if(this.manager.getCurrentUser() != null) { if(this.manager.getCurrentUser() != null) {
if (event.getAction() == KeyEvent.ACTION_UP) { if (event.getAction() == KeyEvent.ACTION_UP) {
if (KeyEvent.KEYCODE_ENTER == event.getKeyCode()) { if (KeyEvent.KEYCODE_ENTER == event.getKeyCode()) {
......
package ms.warpzone.warppay.data; package ms.warpzone.warppay.data;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import ms.warpzone.warppay.data.models.rest.RestCategory; import ms.warpzone.warppay.data.models.rest.RestCategory;
...@@ -34,8 +35,8 @@ public interface RestService { ...@@ -34,8 +35,8 @@ public interface RestService {
@GET("categories/") @GET("categories/")
Call<List<RestCategory>> getAllCategories(); Call<List<RestCategory>> getAllCategories();
@PUT("transaction/{userid}/") @PUT("transactions/{userid}/")
Call<Void> saveTransaction(@Path("userid") String uid, @Body RestTransaction transaction); Call<Void> saveTransaction(@Path("userid") String uid, @Body ArrayList<RestTransaction> transaction);
@PUT("products/{productid}/barcode/") @PUT("products/{productid}/barcode/")
Call<Void> saveBarcode(@Path("productid") int pid, @Body RestProduct product); Call<Void> saveBarcode(@Path("productid") int pid, @Body RestProduct product);
......
...@@ -4,6 +4,7 @@ import android.util.Log; ...@@ -4,6 +4,7 @@ import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import ms.warpzone.warppay.data.models.local.User; import ms.warpzone.warppay.data.models.local.User;
import ms.warpzone.warppay.data.models.rest.RestProduct; import ms.warpzone.warppay.data.models.rest.RestProduct;
...@@ -15,12 +16,13 @@ import retrofit.Response; ...@@ -15,12 +16,13 @@ import retrofit.Response;
import retrofit.Retrofit; import retrofit.Retrofit;
public class DataManager { public class DataManager {
private static DataManager ourInstance = new DataManager();
private User currentUser; private User currentUser;
private Boolean is_guest=false; private Boolean is_guest=false;
private double totalAmount; private double totalAmount;
private ArrayList<Order> orderList; private ArrayList<Order> orderList;
private static DataManager ourInstance = new DataManager();
private String lastCardId; private String lastCardId;
public static DataManager getInstance() { public static DataManager getInstance() {
...@@ -32,7 +34,6 @@ public class DataManager { ...@@ -32,7 +34,6 @@ public class DataManager {
} }
public void saveCurrentUser() { public void saveCurrentUser() {
RestUser rest_user = RestUser.fromLocalUser(this.currentUser); RestUser rest_user = RestUser.fromLocalUser(this.currentUser);
MainManager.getInstance().getRestService().saveUser(rest_user.getUserid(), rest_user).enqueue(new Callback<RestUser>() { MainManager.getInstance().getRestService().saveUser(rest_user.getUserid(), rest_user).enqueue(new Callback<RestUser>() {
@Override @Override
...@@ -49,7 +50,6 @@ public class DataManager { ...@@ -49,7 +50,6 @@ public class DataManager {
Log.d("REST", t.getMessage()); Log.d("REST", t.getMessage());
} }
}); });
} }
public Boolean getIs_guest() { public Boolean getIs_guest() {
...@@ -61,24 +61,28 @@ public class DataManager { ...@@ -61,24 +61,28 @@ public class DataManager {
} }
public void performPayment(Boolean cash) { public void performPayment(Boolean cash) {
ArrayList transactions = new ArrayList<>();
for (Order order:this.orderList) { for (Order order:this.orderList) {
RestTransaction transaction = new RestTransaction(); RestTransaction transaction = new RestTransaction();
transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct())); transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct()));
transaction.setTrans_type(2); transaction.setTrans_type(2);
if(this.is_guest || cash) if (this.is_guest || cash)
transaction.setCash_paid(true); transaction.setCash_paid(true);
MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transaction).enqueue(new Callback<Void>() { transactions.add(transaction);
@Override }
public void onResponse(Response<Void> response, Retrofit retrofit) { MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transactions).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
Log.d("REST",String.valueOf(response.code()));
}
} @Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
}
if(!this.is_guest && !cash) { if(!this.is_guest && !cash) {
this.currentUser.setCredit(this.currentUser.getCredit() - this.totalAmount); this.currentUser.setCredit(this.currentUser.getCredit() - this.totalAmount);
this.currentUser.save(); this.currentUser.save();
...@@ -113,10 +117,6 @@ public class DataManager { ...@@ -113,10 +117,6 @@ public class DataManager {
this.orderList.remove(order); this.orderList.remove(order);
this.totalAmount -= order.getProduct().getPrice(); this.totalAmount -= order.getProduct().getPrice();
} }
public void setTotalAmount(double totalAmount) {
this.totalAmount = totalAmount;
}
public void setLastCardId(String lastCardId) { public void setLastCardId(String lastCardId) {
this.lastCardId = lastCardId; this.lastCardId = lastCardId;
} }
......
...@@ -22,6 +22,7 @@ import java.security.KeyStoreException; ...@@ -22,6 +22,7 @@ import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException; import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory; import java.security.cert.CertificateFactory;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
...@@ -49,6 +50,7 @@ import retrofit.Response; ...@@ -49,6 +50,7 @@ import retrofit.Response;
import retrofit.Retrofit; import retrofit.Retrofit;
public class MainManager { public class MainManager {
private static MainManager instance = new MainManager();
private RestService restService; private RestService restService;
private MainActivity mainActivity; private MainActivity mainActivity;
...@@ -57,9 +59,8 @@ public class MainManager { ...@@ -57,9 +59,8 @@ public class MainManager {
private DataManager dataManager; private DataManager dataManager;
private boolean barcodeLearning=false; private boolean barcodeLearning=false;
private Timer timer; private Timer timer;
private static MainManager instance = new MainManager();
private Timer screenSaverTimer; private Timer screenSaverTimer;
public AlertDialog alertAmount;
public static MainManager getInstance() { public static MainManager getInstance() {
return instance; return instance;
} }
...@@ -70,8 +71,9 @@ public class MainManager { ...@@ -70,8 +71,9 @@ public class MainManager {
private RestService createRestService() { private RestService createRestService() {
Retrofit.Builder builder = new Retrofit.Builder() Retrofit.Builder builder = new Retrofit.Builder()
// .baseUrl("http://infra.warpzone:8000/api/")
.baseUrl("https://infra.warpzone/api/") .baseUrl("https://infra.warpzone/api/")
.addConverterFactory(GsonConverterFactory.create()); .addConverterFactory(GsonConverterFactory.create());
OkHttpClient okHttp = new OkHttpClient(); OkHttpClient okHttp = new OkHttpClient();
...@@ -84,7 +86,7 @@ public class MainManager { ...@@ -84,7 +86,7 @@ public class MainManager {
Request newRequest; Request newRequest;
newRequest = request.newBuilder() newRequest = request.newBuilder()
.addHeader("Authorization", "Token 7b6ca8ade59a32cef9b516e91f3bc9545b6c75a7") .addHeader("Authorization", "Token 29e87bab51b9634504b9aee58c1360668e4afd0a")
.build(); .build();
return chain.proceed(newRequest); return chain.proceed(newRequest);
...@@ -95,14 +97,12 @@ public class MainManager { ...@@ -95,14 +97,12 @@ public class MainManager {
} }
Retrofit retrofit = builder.client(okHttp).build(); Retrofit retrofit = builder.client(okHttp).build();
return retrofit.create(RestService.class); return retrofit.create(RestService.class);
} }
private static SSLContext getSSLConfig(Context context) throws CertificateException, IOException, private static SSLContext getSSLConfig(Context context) throws CertificateException, IOException,
KeyStoreException, NoSuchAlgorithmException, KeyManagementException { KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
CertificateFactory cf = null;
String password = "e44r4dv9z1d0vwr9erotafxe66114v31jwhjlvttc8qkoa3nrskcj4ml0pwrh8aw"; String password = "e44r4dv9z1d0vwr9erotafxe66114v31jwhjlvttc8qkoa3nrskcj4ml0pwrh8aw";
KeyStore keyStore = KeyStore.getInstance("BKS"); KeyStore keyStore = KeyStore.getInstance("BKS");
keyStore.load(context.getResources().openRawResource(R.raw.keystore), password.toCharArray()); keyStore.load(context.getResources().openRawResource(R.raw.keystore), password.toCharArray());
...@@ -116,6 +116,7 @@ public class MainManager { ...@@ -116,6 +116,7 @@ public class MainManager {
return sslContext; return sslContext;
} }
public void init(MainActivity mainActivity) { public void init(MainActivity mainActivity) {
this.mainActivity = mainActivity; this.mainActivity = mainActivity;
this.sqLiteService = SQLiteService.getInstance(); this.sqLiteService = SQLiteService.getInstance();
...@@ -283,7 +284,10 @@ public class MainManager { ...@@ -283,7 +284,10 @@ public class MainManager {
t.setAmount(amount); t.setAmount(amount);
t.setTrans_type(1); t.setTrans_type(1);
t.setCash_paid(true); t.setCash_paid(true);
MainManager.getInstance().getRestService().saveTransaction(currentUser.getUserid(), t).enqueue(new Callback<Void>() { ArrayList transactions = new ArrayList<>();
transactions.add(t);
MainManager.getInstance().getRestService().saveTransaction(currentUser.getUserid(), transactions).enqueue(new Callback<Void>() {
@Override @Override
public void onResponse(Response<Void> response, Retrofit retrofit) { public void onResponse(Response<Void> response, Retrofit retrofit) {
} }
...@@ -316,8 +320,33 @@ public class MainManager { ...@@ -316,8 +320,33 @@ public class MainManager {
if (totalAmount > 0.0 && user != null){ if (totalAmount > 0.0 && user != null){
if (DataManager.getInstance().getCurrentUser().getCredit()>=totalAmount || cash){ if (DataManager.getInstance().getCurrentUser().getCredit()>=totalAmount || cash){
DataManager.getInstance().performPayment(cash); DataManager.getInstance().performPayment(cash);
if(!cash) {
AlertDialog.Builder builder = new AlertDialog.Builder(this.mainActivity);
builder.setMessage("Neues Guthaben: " + this.getCurrentUser().getCredit() + " Euro");
alertAmount = builder.create();
alertAmount.show();
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
@Override
public void run() {
if (MainManager.getInstance().alertAmount.isShowing()) {
alertAmount.dismiss();
}
}
};
alertAmount.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
handler.removeCallbacks(runnable);
}
});
handler.postDelayed(runnable, 2500);
}
MainManager.getInstance().clearCurrentUser(); MainManager.getInstance().clearCurrentUser();
} else { } else {
Toast.makeText(mainActivity, mainActivity.getResources().getString(R.string.please_charge), Toast.LENGTH_LONG).show(); Toast.makeText(mainActivity, mainActivity.getResources().getString(R.string.please_charge), Toast.LENGTH_LONG).show();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment