diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java new file mode 100644 index 0000000000000000000000000000000000000000..d84a6676638979eda5cd3cc19a2d7ac8d30c3381 --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java @@ -0,0 +1,56 @@ +package ms.itsecteam.warpdrink.dialogs; + +import android.app.Dialog; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; + +import ms.itsecteam.warpdrink.MainActivity; +import ms.itsecteam.warpdrink.R; +import ms.itsecteam.warpdrink.manager.DataManager; +import ms.itsecteam.warpdrink.manager.MainManager; + +public class PayChoiceDialog extends Dialog implements + View.OnClickListener { + private Button btnCredit,btnCash; + + public PayChoiceDialog() { + super(MainManager.getInstance().getMainActivity()); + + ; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.pay_choice_dialog); + + btnCredit = (Button) findViewById(R.id.btnCredit); + btnCash = (Button) findViewById(R.id.btnCash); + + + btnCredit.setOnClickListener(this); + btnCash.setOnClickListener(this); + + if(DataManager.getInstance().getIs_guest()) + btnCredit.setEnabled(false); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.btnCredit: + MainManager.getInstance().performPayment(true); + break; + case R.id.btnCash: + MainManager.getInstance().performPayment(false); + break; + + default: + break; + } + dismiss(); + } +} 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 3ad51c4b76a08d5eff8651c2fd0acb207e1f9242..2c88b387d94430bf5fec4ee0fce8431515bd2248 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 @@ -16,6 +16,8 @@ import retrofit.Retrofit; public class DataManager { private User currentUser; + + private Boolean is_guest=false; private double totalAmount; private ArrayList<Order> orderList; private static DataManager ourInstance = new DataManager(); @@ -44,12 +46,21 @@ public class DataManager { }); } + public Boolean getIs_guest() { + return is_guest; + } + + public void setIs_guest(Boolean is_guest) { + this.is_guest = is_guest; + } - public void performPayment() { + public void performPayment(Boolean cash) { for (Order order:this.orderList) { RestTransaction transaction = new RestTransaction(); transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct())); transaction.setTrans_type(2); + if(this.is_guest || cash) + transaction.setCash_paid(true); MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transaction).enqueue(new Callback<Void>() { @Override public void onResponse(Response<Void> response, Retrofit retrofit) { @@ -70,6 +81,7 @@ public class DataManager { public void clearCurrentUser() { this.currentUser = null; this.totalAmount = 0.0; + this.is_guest=false; this.orderList = new ArrayList<Order>(); } 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 aabd249d34e5fa0517d25319037d0b32f99f75dc..add1061285c0ff93ad5352acec720a60fc14bc37 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 @@ -191,28 +191,14 @@ public class MainManager { } - public void performPayment() { + public void performPayment(Boolean cash) { User user = DataManager.getInstance().getCurrentUser(); double totalAmount = DataManager.getInstance().getTotalAmount(); if (totalAmount > 0.0 && user != null){ - if (DataManager.getInstance().getCurrentUser().getCredit()>=totalAmount){ - new AlertDialog.Builder(mainActivity) - .setTitle(mainActivity.getResources().getString(R.string.confirm_payment_title)) - .setMessage(mainActivity.getResources().getString(R.string.confirm_payment, totalAmount)) - .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - DataManager.getInstance().performPayment(); - MainManager.getInstance().clearCurrentUser(); - - } - }) - .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - } - }) - .setIcon(android.R.drawable.ic_dialog_alert) - .show(); + if (DataManager.getInstance().getCurrentUser().getCredit()>=totalAmount || cash){ + DataManager.getInstance().performPayment(true); + MainManager.getInstance().clearCurrentUser(); } else { Toast.makeText(mainActivity, mainActivity.getResources().getString(R.string.please_charge), Toast.LENGTH_LONG).show(); } 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 37e7e50eac8ac28c427269d969a456dd261dd558..8800139033e1bf9b4073e8a7cc3dcfdd2100b0b1 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 @@ -27,6 +27,7 @@ import ms.itsecteam.warpdrink.data.models.local.Product; import ms.itsecteam.warpdrink.data.models.local.User; import ms.itsecteam.warpdrink.dialogs.ChargeDialog; import ms.itsecteam.warpdrink.dialogs.NewUserDialog; +import ms.itsecteam.warpdrink.dialogs.PayChoiceDialog; import ms.itsecteam.warpdrink.listener.CategoryOnClickListener; import ms.itsecteam.warpdrink.orderList.ListViewAdapter; import ms.itsecteam.warpdrink.orderList.ListViewAdapterProducts; @@ -152,7 +153,7 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap new ChargeDialog().show(); break; case R.id.btnPay: - MainManager.getInstance().performPayment(); + new PayChoiceDialog().show(); break; case R.id.btnLogout: MainManager.getInstance().clearCurrentUser(); @@ -163,6 +164,9 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap case R.id.btnRefresh: MainManager.getInstance().refreshData(); break; + case R.id.btnGuest: + MainManager.getInstance().setCurrentUser(new User("Guest",0,"")); + DataManager.getInstance().setIs_guest(true); } } // @ToDo: Key handling für beide Fälle (BarCode und Username) @@ -178,6 +182,7 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(0)); this.atxvName.setText(this.atxvAdapter.getItem(0).toString()); this.atxvName.dismissDropDown(); + DataManager.getInstance().setIs_guest(false); } return true; } diff --git a/WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml b/WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml new file mode 100644 index 0000000000000000000000000000000000000000..4dcbaab427cb6469c18537d62b9d04c2ed7ac14e --- /dev/null +++ b/WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <Space + android:layout_width="match_parent" + android:layout_height="30dp" + android:layout_weight="0.38" /> + + <TextView + android:id="@+id/txtTotalAmountConfirm" + android:layout_width="644dp" + android:layout_height="wrap_content" + android:text="@string/txtTotalAmountConfirm" + android:textSize="50sp" /> + + <Space + android:layout_width="match_parent" + android:layout_height="30dp" + android:layout_weight="0.38" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="0.38" + android:orientation="horizontal"> + + <Button + android:id="@+id/btnCash" + style="@style/ButtonText" + android:layout_width="150dp" + android:layout_height="150dp" + android:layout_column="1" + android:layout_row="3" + android:layout_weight="1" + android:width="10dp" + android:background="@color/flatui_blue" + android:text="@string/btnCash" /> + + <Space + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="0.34" /> + + <Button + android:id="@+id/btnCredit" + style="@style/ButtonText" + android:layout_width="150dp" + android:layout_height="150dp" + android:layout_column="1" + android:layout_row="3" + android:layout_weight="1" + android:width="10dp" + android:background="@color/flatui_blue" + android:text="@string/btnCredit" /> + </LinearLayout> + + +</LinearLayout> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml b/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml index 0a3efeded494a5d4d3da71f0564abdea9c3a52ed..bfd5024f2cf1cc85c94828f61eeb14ec19a6ea50 100644 --- a/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml +++ b/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > @@ -10,7 +11,7 @@ android:layout_height="match_parent"> <TextView - android:layout_width="wrap_content" + android:layout_width="386dp" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Large Text" @@ -18,7 +19,7 @@ android:layout_gravity="center_horizontal" /> <TextView - android:layout_width="68dp" + android:layout_width="229dp" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="1.0" @@ -26,4 +27,11 @@ </LinearLayout> + <ImageButton + android:id="@+id/imageButton" + android:layout_width="match_parent" + android:layout_height="63dp" + android:onClick="removeOrderOnClickHandler" + app:srcCompat="@android:color/holo_red_dark" /> + </LinearLayout> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/values/strings.xml b/WarpDrinkApp/app/src/main/res/values/strings.xml index 3eaa85ded1b5eb00c68e40601fca6e3897bcac7f..89002c7ec19921b20b05f8c4ede611cbb13e885b 100644 --- a/WarpDrinkApp/app/src/main/res/values/strings.xml +++ b/WarpDrinkApp/app/src/main/res/values/strings.xml @@ -1,10 +1,11 @@ <resources> <string name="app_name">WarpDrink</string> - <string name="hello_world">Hello world!</string> + <string name="txtTotalAmountConfirm">Gesamtbetrag: %1$,.2f </string> <string name="action_settings">Settings</string> - + <string name="btnCash">Bar</string> + <string name="btnCredit">Guthaben</string> <string name="btnFiveEuro">5 €</string> <string name="btnTenEuro">10 €</string> <string name="btnTwentyEuro">20 €</string>