From a7868b07aa258ecde09cd20db13d71683406dcf6 Mon Sep 17 00:00:00 2001
From: Christian Dresen <c.dresen@fh-muenster.de>
Date: Mon, 27 Mar 2017 09:46:23 +0200
Subject: [PATCH] =?UTF-8?q?PayChoice=20Dialog=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../warpdrink/dialogs/PayChoiceDialog.java    | 56 +++++++++++++++++
 .../warpdrink/manager/DataManager.java        | 14 ++++-
 .../warpdrink/manager/MainManager.java        | 22 ++-----
 .../warpdrink/manager/UiManager.java          |  7 ++-
 .../src/main/res/layout/pay_choice_dialog.xml | 61 +++++++++++++++++++
 .../src/main/res/layout/product_list_item.xml | 12 +++-
 .../app/src/main/res/values/strings.xml       |  5 +-
 7 files changed, 153 insertions(+), 24 deletions(-)
 create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java
 create mode 100644 WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml

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 0000000..d84a667
--- /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 3ad51c4..2c88b38 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 aabd249..add1061 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 37e7e50..8800139 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 0000000..4dcbaab
--- /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 0a3efed..bfd5024 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 3eaa85d..89002c7 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>
-- 
GitLab