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

Refactored for new Backend

parent a425f0af
No related branches found
No related tags found
No related merge requests found
Showing
with 163 additions and 39 deletions
...@@ -92,10 +92,10 @@ ...@@ -92,10 +92,10 @@
<orderEntry type="library" exported="" name="converter-gson-2.0.0-beta2" level="project" /> <orderEntry type="library" exported="" name="converter-gson-2.0.0-beta2" level="project" />
<orderEntry type="library" exported="" name="jackson-databind-2.0.1" level="project" /> <orderEntry type="library" exported="" name="jackson-databind-2.0.1" level="project" />
<orderEntry type="library" exported="" name="jackson-annotations-2.0.1" level="project" /> <orderEntry type="library" exported="" name="jackson-annotations-2.0.1" level="project" />
<orderEntry type="library" exported="" name="spring-android-rest-template-1.0.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="okhttp-2.7.5" level="project" /> <orderEntry type="library" exported="" name="okhttp-2.7.5" level="project" />
<orderEntry type="library" exported="" name="antlr4-runtime-4.5.3" level="project" /> <orderEntry type="library" exported="" name="spring-android-rest-template-1.0.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="gson-2.7" level="project" /> <orderEntry type="library" exported="" name="gson-2.7" level="project" />
<orderEntry type="library" exported="" name="antlr4-runtime-4.5.3" level="project" />
<orderEntry type="library" exported="" name="support-v4-22.2.0" level="project" /> <orderEntry type="library" exported="" name="support-v4-22.2.0" level="project" />
<orderEntry type="library" exported="" name="spring-android-core-1.0.1.RELEASE" level="project" /> <orderEntry type="library" exported="" name="spring-android-core-1.0.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="codepath-utils" level="project" /> <orderEntry type="library" exported="" name="codepath-utils" level="project" />
......
...@@ -109,7 +109,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe ...@@ -109,7 +109,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
case R.id.action_learn_card_id: case R.id.action_learn_card_id:
if (this.manager.getCurrentUser() != null){ if (this.manager.getCurrentUser() != null){
new AlertDialog.Builder(this) new AlertDialog.Builder(this)
.setTitle(this.getResources().getString(R.string.confirm_payment_title)) .setTitle(this.getResources().getString(R.string.confirm_learn_card))
.setMessage("Bitte die Karte vorhalten und nach dem Ton auf ok drücken.") .setMessage("Bitte die Karte vorhalten und nach dem Ton auf ok drücken.")
.setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() { .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
......
...@@ -4,6 +4,7 @@ package ms.itsecteam.warpdrink.data; ...@@ -4,6 +4,7 @@ package ms.itsecteam.warpdrink.data;
import java.util.List; import java.util.List;
import ms.itsecteam.warpdrink.data.models.rest.RestProduct; import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
import ms.itsecteam.warpdrink.data.models.rest.RestUser; import ms.itsecteam.warpdrink.data.models.rest.RestUser;
import retrofit.Call; import retrofit.Call;
import retrofit.http.Body; import retrofit.http.Body;
...@@ -29,4 +30,6 @@ public interface RestService { ...@@ -29,4 +30,6 @@ public interface RestService {
@GET("products/") @GET("products/")
Call<List<RestProduct>> getAllProducts(); Call<List<RestProduct>> getAllProducts();
@PUT("transaction/{userid}/")
Call<Void> saveTransaction(@Path("userid") String uid, @Body RestTransaction transaction);
} }
\ No newline at end of file
...@@ -58,6 +58,7 @@ public class SQLiteService { ...@@ -58,6 +58,7 @@ public class SQLiteService {
for (RestProduct anU : body) { for (RestProduct anU : body) {
Product prod = anU.toLocalProduct(); Product prod = anU.toLocalProduct();
prod.save(); prod.save();
Log.d("HALLO",String.valueOf(prod.getPid()));
ret_val.add(prod); ret_val.add(prod);
} }
......
package ms.itsecteam.warpdrink.data.models.rest; package ms.itsecteam.warpdrink.data.models.rest;
import android.util.Log;
import ms.itsecteam.warpdrink.data.models.local.Product; import ms.itsecteam.warpdrink.data.models.local.Product;
import ms.itsecteam.warpdrink.data.models.local.User; import ms.itsecteam.warpdrink.data.models.local.User;
public class RestProduct { public class RestProduct {
private int pid; private int id;
private String name; private String name;
private String category; private String category;
private Float price; private Float price_vk;
private int count; private int stock_count;
public RestProduct() { public RestProduct() {
super(); super();
} }
public RestProduct(int pid, String name, String category, Float price, int count) { public RestProduct(int id, String name, String category, Float price_vk, int stock_count) {
this.pid = pid; this.id = id;
this.name = name; this.name = name;
this.category = category; this.category = category;
this.price = price; this.price_vk = price_vk;
this.count = count; this.stock_count = stock_count;
} }
public int getPid() { public int getId() {
return pid; return this.id;
} }
public void setPid(int pid) { public void setId(int id) {
this.pid = pid; this.id = id;
} }
public String getName() { public String getName() {
...@@ -49,34 +51,34 @@ public class RestProduct { ...@@ -49,34 +51,34 @@ public class RestProduct {
} }
public Float getPrice() { public Float getPrice() {
return price; return price_vk;
} }
public void setPrice(Float price) { public void setPrice(Float price) {
this.price = price; this.price_vk = price_vk;
} }
public int getCount() { public int getCount() {
return count; return stock_count;
} }
public void setCount(int count) { public void setCount(int stock_count) {
this.count = count; this.stock_count = stock_count;
} }
public Product toLocalProduct() { public Product toLocalProduct() {
Product p = new Product(); Product p = new Product();
p.setPid(this.pid); p.setPid(this.id);
p.setName(this.name); p.setName(this.name);
p.setCategory(this.category); p.setCategory(this.category);
p.setPrice(this.price); p.setPrice(this.price_vk);
p.setCount(this.count); p.setCount(this.stock_count);
return p; return p;
} }
public static RestProduct fromLocalProduct(Product product) { public static RestProduct fromLocalProduct(Product product) {
RestProduct restProduct = new RestProduct(); RestProduct restProduct = new RestProduct();
restProduct.setPid(product.getPid()); restProduct.setId(product.getPid());
restProduct.setName(product.getName()); restProduct.setName(product.getName());
restProduct.setCategory(product.getCategory()); restProduct.setCategory(product.getCategory());
restProduct.setCount(product.getCount()); restProduct.setCount(product.getCount());
......
package ms.itsecteam.warpdrink.data.models.rest;
public class RestTransaction {
private int tid;
private int trans_type;
private RestProduct product;
private double amount;
private boolean cash_paid;
public RestTransaction() {
super();
}
public RestTransaction(int tid, int trans_type, RestProduct product, double amount, boolean cash_paid) {
this.tid = tid;
this.trans_type = trans_type;
this.product = product;
this.amount = amount;
this.cash_paid = cash_paid;
}
public int getTid() {
return tid;
}
public int getTrans_type() {
return trans_type;
}
public void setTrans_type(int trans_type) {
this.trans_type = trans_type;
}
public RestProduct getProduct() {
return product;
}
public void setProduct(RestProduct product) {
this.product = product;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public boolean isCash_paid() {
return cash_paid;
}
public void setCash_paid(boolean cash_paid) {
this.cash_paid = cash_paid;
}
}
...@@ -37,6 +37,7 @@ public class NewUserDialog extends Dialog implements ...@@ -37,6 +37,7 @@ public class NewUserDialog extends Dialog implements
@Override @Override
public void onClick(View v) { public void onClick(View v) {
/*
switch (v.getId()) { switch (v.getId()) {
case R.id.btnAddUser: case R.id.btnAddUser:
String username = this.txtUsername.getText().toString(); String username = this.txtUsername.getText().toString();
...@@ -54,5 +55,6 @@ public class NewUserDialog extends Dialog implements ...@@ -54,5 +55,6 @@ public class NewUserDialog extends Dialog implements
default: default:
break; break;
} }
*/
} }
} }
...@@ -2,8 +2,14 @@ package ms.itsecteam.warpdrink.manager; ...@@ -2,8 +2,14 @@ package ms.itsecteam.warpdrink.manager;
import android.util.Log; import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import ms.itsecteam.warpdrink.data.models.local.User; import ms.itsecteam.warpdrink.data.models.local.User;
import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
import ms.itsecteam.warpdrink.data.models.rest.RestUser; import ms.itsecteam.warpdrink.data.models.rest.RestUser;
import ms.itsecteam.warpdrink.orderList.Order;
import retrofit.Callback; import retrofit.Callback;
import retrofit.Response; import retrofit.Response;
import retrofit.Retrofit; import retrofit.Retrofit;
...@@ -11,7 +17,7 @@ import retrofit.Retrofit; ...@@ -11,7 +17,7 @@ import retrofit.Retrofit;
public class DataManager { public class DataManager {
private User currentUser; private User currentUser;
private double totalAmount; private double totalAmount;
private ArrayList<Order> orderList;
private static DataManager ourInstance = new DataManager(); private static DataManager ourInstance = new DataManager();
private String lastCardId; private String lastCardId;
...@@ -20,6 +26,7 @@ public class DataManager { ...@@ -20,6 +26,7 @@ public class DataManager {
} }
private DataManager() { private DataManager() {
this.orderList = new ArrayList<Order>();
} }
public void saveCurrentUser() { public void saveCurrentUser() {
...@@ -39,13 +46,31 @@ public class DataManager { ...@@ -39,13 +46,31 @@ public class DataManager {
public void performPayment() { public void performPayment() {
for (Order order:this.orderList) {
RestTransaction transaction = new RestTransaction();
transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct()));
transaction.setTrans_type(2);
MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transaction).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
}
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
}
this.currentUser.setCredit(this.currentUser.getCredit()-this.totalAmount); this.currentUser.setCredit(this.currentUser.getCredit()-this.totalAmount);
this.saveCurrentUser(); this.currentUser.save();
this.totalAmount = 0.0; this.totalAmount = 0.0;
} }
public void clearCurrentUser() { public void clearCurrentUser() {
this.currentUser = null; this.currentUser = null;
this.totalAmount = 0.0;
this.orderList = new ArrayList<Order>();
} }
public User getCurrentUser() { public User getCurrentUser() {
...@@ -60,10 +85,14 @@ public class DataManager { ...@@ -60,10 +85,14 @@ public class DataManager {
return totalAmount; return totalAmount;
} }
public void addToTotalAmount(double value) { public void addOrder(Order order) {
this.totalAmount += value; this.orderList.add(order);
this.totalAmount += order.getProduct().getPrice();
}
public void removeOrder(Order order) {
this.orderList.remove(order);
this.totalAmount -= order.getProduct().getPrice();
} }
public void setTotalAmount(double totalAmount) { public void setTotalAmount(double totalAmount) {
this.totalAmount = totalAmount; this.totalAmount = totalAmount;
} }
......
...@@ -13,6 +13,7 @@ import ms.itsecteam.warpdrink.data.models.local.Product; ...@@ -13,6 +13,7 @@ import ms.itsecteam.warpdrink.data.models.local.Product;
import ms.itsecteam.warpdrink.data.models.local.User; import ms.itsecteam.warpdrink.data.models.local.User;
import ms.itsecteam.warpdrink.data.RestService; import ms.itsecteam.warpdrink.data.RestService;
import ms.itsecteam.warpdrink.data.models.rest.RestProduct; import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
import ms.itsecteam.warpdrink.data.models.rest.RestUser; import ms.itsecteam.warpdrink.data.models.rest.RestUser;
import ms.itsecteam.warpdrink.orderList.Order; import ms.itsecteam.warpdrink.orderList.Order;
import retrofit.Callback; import retrofit.Callback;
...@@ -43,7 +44,8 @@ public class MainManager { ...@@ -43,7 +44,8 @@ public class MainManager {
private RestService createRestService() { private RestService createRestService() {
Retrofit retrofit = new Retrofit.Builder() Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://infra-test.warpzone.ms/api/") .baseUrl("http://10.0.1.134:8000/api/")
//.baseUrl("https://infra-test.warpzone.ms/api/")
// .baseUrl("http://10.0.2.92:8000/api/") // .baseUrl("http://10.0.2.92:8000/api/")
.addConverterFactory(GsonConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create())
.build(); .build();
...@@ -92,7 +94,7 @@ public class MainManager { ...@@ -92,7 +94,7 @@ public class MainManager {
}); });
} }
/**
public boolean addUser(String name) { public boolean addUser(String name) {
Log.d("USER", "Start"); Log.d("USER", "Start");
if(User.getByName(name) == null) { if(User.getByName(name) == null) {
...@@ -115,7 +117,7 @@ public class MainManager { ...@@ -115,7 +117,7 @@ public class MainManager {
} }
return false; return false;
} }
**/
public void setCurrentUser(User user) { public void setCurrentUser(User user) {
if (user != null) { if (user != null) {
this.dataManager.setCurrentUser(user); this.dataManager.setCurrentUser(user);
...@@ -131,22 +133,47 @@ public class MainManager { ...@@ -131,22 +133,47 @@ public class MainManager {
this.uiManager.clearCurrentUser(); this.uiManager.clearCurrentUser();
} }
public void addOrder(Product product) { public void addOrder(Order order) {
DataManager.getInstance().addToTotalAmount(product.getPrice()); DataManager.getInstance().addOrder(order);
this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount()); this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount());
} }
public void removeOrder(Order order) { public void removeOrder(Order order) {
DataManager.getInstance().addToTotalAmount((-1)*order.getProduct().getPrice()); DataManager.getInstance().removeOrder(order);
this.uiManager.removeOrder(order); this.uiManager.removeOrder(order);
this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount()); this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount());
} }
public void chargeAmount(double amount) { public void chargeAmount(double amount) {
User currentUser = this.dataManager.getCurrentUser(); User currentUser = this.dataManager.getCurrentUser();
currentUser.setCredit(currentUser.getCredit() + amount); RestTransaction t = new RestTransaction();
this.dataManager.saveCurrentUser(); t.setAmount(amount);
MainManager.getInstance().uiManager.refreshCreditTextView(currentUser.getCredit()); t.setTrans_type(1);
t.setCash_paid(true);
MainManager.getInstance().getRestService().saveTransaction(currentUser.getUserid(), t).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
}
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
MainManager.getInstance().getRestService().getSingleUser(currentUser.getUserid()).enqueue(new Callback<RestUser>() {
@Override
public void onResponse(Response<RestUser> response, Retrofit retrofit) {
DataManager.getInstance().getCurrentUser().setCredit(response.body().getCredit());
MainManager.getInstance().uiManager.refreshCreditTextView(DataManager.getInstance().getCurrentUser().getCredit());
}
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
} }
public void performPayment() { public void performPayment() {
User user = DataManager.getInstance().getCurrentUser(); User user = DataManager.getInstance().getCurrentUser();
...@@ -194,7 +221,7 @@ public class MainManager { ...@@ -194,7 +221,7 @@ public class MainManager {
if (card_id != null) { if (card_id != null) {
new AlertDialog.Builder(this.mainActivity) new AlertDialog.Builder(this.mainActivity)
.setTitle(this.mainActivity.getResources().getString(R.string.confirm_payment_title)) .setTitle(this.mainActivity.getResources().getString(R.string.confirm_learn_card))
.setMessage("Die karten id "+card_id+" wird dem Nutzer "+this.getCurrentUser()+" hinzugefügt") .setMessage("Die karten id "+card_id+" wird dem Nutzer "+this.getCurrentUser()+" hinzugefügt")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
......
...@@ -182,8 +182,9 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap ...@@ -182,8 +182,9 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap
switch (parent.getId()) { switch (parent.getId()) {
case R.id.lstProduct: case R.id.lstProduct:
Product p = this.lstProductAdapter.getItem(position); Product p = this.lstProductAdapter.getItem(position);
Order order = new Order(p);
this.lstOrderedAdapter.insert(new Order(p), this.lstOrderedAdapter.getCount()); this.lstOrderedAdapter.insert(new Order(p), this.lstOrderedAdapter.getCount());
MainManager.getInstance().addOrder(p); MainManager.getInstance().addOrder(order);
break; break;
case -1: case -1:
MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(position)); MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(position));
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<string name="btnLogout">Logout</string> <string name="btnLogout">Logout</string>
<string name="please_charge">Bitte lade dein Konto auf!</string> <string name="please_charge">Bitte lade dein Konto auf!</string>
<string name="confirm_payment_title">Bezahlung bestaetigen</string> <string name="confirm_payment_title">Bezahlung bestaetigen</string>
<string name="confirm_learn_card">Karte anlernen</string>
<string name="confirm_payment">Willst du wirklich %1$,.2f Euro bezahlen?</string> <string name="confirm_payment">Willst du wirklich %1$,.2f Euro bezahlen?</string>
<string name="credit">Guthaben: %1$,.2f Euro</string> <string name="credit">Guthaben: %1$,.2f Euro</string>
<string name="total">Gesamt: %1$,.2f Euro</string> <string name="total">Gesamt: %1$,.2f Euro</string>
......
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