diff --git a/WarpDrinkApp/app/app.iml b/WarpDrinkApp/app/app.iml index 4fefdc2fca88c2f45b961f7d6ef8e6a958aae205..96e0f1d40326d10448d188cd8e4dc17638cefbd1 100644 --- a/WarpDrinkApp/app/app.iml +++ b/WarpDrinkApp/app/app.iml @@ -92,10 +92,10 @@ <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-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="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="antlr4-runtime-4.5.3" 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="codepath-utils" level="project" /> diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java index 7ed3ff00bd05883b2bcaa665ad48b98dff1d5e20..3e879c3cbf8997176386c916cbac37b03f64270e 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java @@ -109,7 +109,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe case R.id.action_learn_card_id: if (this.manager.getCurrentUser() != null){ 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.") .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java index 0789d59bf43ea55091a827d5dacdbe985fe06ca0..9a960e846fd5afb96ce9df1c88bb05cbb936ea07 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/RestService.java @@ -4,6 +4,7 @@ package ms.itsecteam.warpdrink.data; import java.util.List; 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 retrofit.Call; import retrofit.http.Body; @@ -29,4 +30,6 @@ public interface RestService { @GET("products/") Call<List<RestProduct>> getAllProducts(); + @PUT("transaction/{userid}/") + Call<Void> saveTransaction(@Path("userid") String uid, @Body RestTransaction transaction); } \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java index 4b510927e570375fb33343dfecf46291b7b0af6c..d6c2445fdf9564e43ff5340e7ba523f1d14c1590 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/SQLiteService.java @@ -58,6 +58,7 @@ public class SQLiteService { for (RestProduct anU : body) { Product prod = anU.toLocalProduct(); prod.save(); + Log.d("HALLO",String.valueOf(prod.getPid())); ret_val.add(prod); } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java index 2613bf7f2c60536f105789f67c68b40bc5447f91..c3f8cfcf88a9eb814322f0ebed5440700e342e7a 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestProduct.java @@ -1,35 +1,37 @@ 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.User; public class RestProduct { - private int pid; + private int id; private String name; private String category; - private Float price; - private int count; + private Float price_vk; + private int stock_count; public RestProduct() { super(); } - public RestProduct(int pid, String name, String category, Float price, int count) { - this.pid = pid; + public RestProduct(int id, String name, String category, Float price_vk, int stock_count) { + this.id = id; this.name = name; this.category = category; - this.price = price; - this.count = count; + this.price_vk = price_vk; + this.stock_count = stock_count; } - public int getPid() { - return pid; + public int getId() { + return this.id; } - public void setPid(int pid) { - this.pid = pid; + public void setId(int id) { + this.id = id; } public String getName() { @@ -49,34 +51,34 @@ public class RestProduct { } public Float getPrice() { - return price; + return price_vk; } public void setPrice(Float price) { - this.price = price; + this.price_vk = price_vk; } public int getCount() { - return count; + return stock_count; } - public void setCount(int count) { - this.count = count; + public void setCount(int stock_count) { + this.stock_count = stock_count; } public Product toLocalProduct() { Product p = new Product(); - p.setPid(this.pid); + p.setPid(this.id); p.setName(this.name); p.setCategory(this.category); - p.setPrice(this.price); - p.setCount(this.count); + p.setPrice(this.price_vk); + p.setCount(this.stock_count); return p; } public static RestProduct fromLocalProduct(Product product) { RestProduct restProduct = new RestProduct(); - restProduct.setPid(product.getPid()); + restProduct.setId(product.getPid()); restProduct.setName(product.getName()); restProduct.setCategory(product.getCategory()); restProduct.setCount(product.getCount()); diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestTransaction.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestTransaction.java new file mode 100644 index 0000000000000000000000000000000000000000..97db60eac4e61252cfba285a92d8a082eb053d95 --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/models/rest/RestTransaction.java @@ -0,0 +1,58 @@ +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; + } +} diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java index b517a9ffcbad6b67b3829d9bfb5eef6d072b618c..e0cc8ba19c31900693310afb79168b1511b092b4 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java @@ -37,6 +37,7 @@ public class NewUserDialog extends Dialog implements @Override public void onClick(View v) { + /* switch (v.getId()) { case R.id.btnAddUser: String username = this.txtUsername.getText().toString(); @@ -54,5 +55,6 @@ public class NewUserDialog extends Dialog implements default: break; } + */ } } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java index e660d3bfd669c0534b003768202f30ae3a790123..3ad51c4b76a08d5eff8651c2fd0acb207e1f9242 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java @@ -2,8 +2,14 @@ package ms.itsecteam.warpdrink.manager; 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.rest.RestProduct; +import ms.itsecteam.warpdrink.data.models.rest.RestTransaction; import ms.itsecteam.warpdrink.data.models.rest.RestUser; +import ms.itsecteam.warpdrink.orderList.Order; import retrofit.Callback; import retrofit.Response; import retrofit.Retrofit; @@ -11,7 +17,7 @@ import retrofit.Retrofit; public class DataManager { private User currentUser; private double totalAmount; - + private ArrayList<Order> orderList; private static DataManager ourInstance = new DataManager(); private String lastCardId; @@ -20,6 +26,7 @@ public class DataManager { } private DataManager() { + this.orderList = new ArrayList<Order>(); } public void saveCurrentUser() { @@ -39,13 +46,31 @@ public class DataManager { 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.saveCurrentUser(); + this.currentUser.save(); this.totalAmount = 0.0; } public void clearCurrentUser() { this.currentUser = null; + this.totalAmount = 0.0; + this.orderList = new ArrayList<Order>(); } public User getCurrentUser() { @@ -60,10 +85,14 @@ public class DataManager { return totalAmount; } - public void addToTotalAmount(double value) { - this.totalAmount += value; + public void addOrder(Order order) { + 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) { this.totalAmount = totalAmount; } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java index 8d445661da6a11a4cc7fff539113976cdef6872c..f1ba28eb72f7e00eb8fa9de37a740546ea6a2410 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java @@ -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.RestService; 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.orderList.Order; import retrofit.Callback; @@ -43,7 +44,8 @@ public class MainManager { private RestService createRestService() { 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/") .addConverterFactory(GsonConverterFactory.create()) .build(); @@ -92,7 +94,7 @@ public class MainManager { }); } - +/** public boolean addUser(String name) { Log.d("USER", "Start"); if(User.getByName(name) == null) { @@ -115,7 +117,7 @@ public class MainManager { } return false; } - +**/ public void setCurrentUser(User user) { if (user != null) { this.dataManager.setCurrentUser(user); @@ -131,22 +133,47 @@ public class MainManager { this.uiManager.clearCurrentUser(); } - public void addOrder(Product product) { - DataManager.getInstance().addToTotalAmount(product.getPrice()); + public void addOrder(Order order) { + DataManager.getInstance().addOrder(order); this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount()); } public void removeOrder(Order order) { - DataManager.getInstance().addToTotalAmount((-1)*order.getProduct().getPrice()); + DataManager.getInstance().removeOrder(order); this.uiManager.removeOrder(order); this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount()); } public void chargeAmount(double amount) { User currentUser = this.dataManager.getCurrentUser(); - currentUser.setCredit(currentUser.getCredit() + amount); - this.dataManager.saveCurrentUser(); - MainManager.getInstance().uiManager.refreshCreditTextView(currentUser.getCredit()); + RestTransaction t = new RestTransaction(); + t.setAmount(amount); + 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() { User user = DataManager.getInstance().getCurrentUser(); @@ -194,7 +221,7 @@ public class MainManager { if (card_id != null) { 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") .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java index 20d6c50a5e126b25d6a86a1444d5b3a39af38c64..f3177ccc612dd51acf5151c313d22247f7160a44 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java @@ -182,8 +182,9 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap switch (parent.getId()) { case R.id.lstProduct: Product p = this.lstProductAdapter.getItem(position); + Order order = new Order(p); this.lstOrderedAdapter.insert(new Order(p), this.lstOrderedAdapter.getCount()); - MainManager.getInstance().addOrder(p); + MainManager.getInstance().addOrder(order); break; case -1: MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(position)); diff --git a/WarpDrinkApp/app/src/main/res/values/strings.xml b/WarpDrinkApp/app/src/main/res/values/strings.xml index 96343036826a2e7e39b5302ef1df9b31eed3856c..3eaa85ded1b5eb00c68e40601fca6e3897bcac7f 100644 --- a/WarpDrinkApp/app/src/main/res/values/strings.xml +++ b/WarpDrinkApp/app/src/main/res/values/strings.xml @@ -18,6 +18,7 @@ <string name="btnLogout">Logout</string> <string name="please_charge">Bitte lade dein Konto auf!</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="credit">Guthaben: %1$,.2f Euro</string> <string name="total">Gesamt: %1$,.2f Euro</string>