Commit 8c179cce authored by Muhammad Suryono's avatar Muhammad Suryono

check order cart

parent 2439ea7b
package com.yono.messeripos; package com.yono.messeripos;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -14,10 +16,16 @@ import android.widget.TextView; ...@@ -14,10 +16,16 @@ import android.widget.TextView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.yono.messeripos.api.client.Client;
import com.yono.messeripos.api.service.PaymentService;
import com.yono.messeripos.models.PaymentsModels; import com.yono.messeripos.models.PaymentsModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.utils.Utils; import com.yono.messeripos.utils.Utils;
import okhttp3.internal.Util; import okhttp3.internal.Util;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class BottomSheets extends BottomSheetDialogFragment { public class BottomSheets extends BottomSheetDialogFragment {
...@@ -26,6 +34,8 @@ public class BottomSheets extends BottomSheetDialogFragment { ...@@ -26,6 +34,8 @@ public class BottomSheets extends BottomSheetDialogFragment {
Button btnCash; Button btnCash;
Utils utils; Utils utils;
String defaultText = "0"; String defaultText = "0";
Client client = new Client();
public static long grossAmount;
PaymentsModels paymentsModels; PaymentsModels paymentsModels;
public BottomSheets(PaymentsModels paymentsModels) { public BottomSheets(PaymentsModels paymentsModels) {
...@@ -43,7 +53,6 @@ public class BottomSheets extends BottomSheetDialogFragment { ...@@ -43,7 +53,6 @@ public class BottomSheets extends BottomSheetDialogFragment {
hargaChange = v.findViewById(R.id.hargaChange); hargaChange = v.findViewById(R.id.hargaChange);
btnCash = v.findViewById(R.id.btnCash); btnCash = v.findViewById(R.id.btnCash);
totalHarga = v.findViewById(R.id.totalHarga); totalHarga = v.findViewById(R.id.totalHarga);
utils = new Utils(); utils = new Utils();
long ga = paymentsModels.getGrossAmount(); long ga = paymentsModels.getGrossAmount();
...@@ -62,7 +71,7 @@ public class BottomSheets extends BottomSheetDialogFragment { ...@@ -62,7 +71,7 @@ public class BottomSheets extends BottomSheetDialogFragment {
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (TextUtils.isEmpty(charSequence)) inputAmount.setText("0"); if (TextUtils.isEmpty(charSequence)) inputAmount.setText("0");
long grossAmount = paymentsModels.getGrossAmount(); grossAmount = paymentsModels.getGrossAmount();
long input = Long.parseLong(inputAmount.getText().toString()); long input = Long.parseLong(inputAmount.getText().toString());
long result = grossAmount - input; long result = grossAmount - input;
...@@ -76,6 +85,34 @@ public class BottomSheets extends BottomSheetDialogFragment { ...@@ -76,6 +85,34 @@ public class BottomSheets extends BottomSheetDialogFragment {
} }
}); });
btnCash.setOnClickListener(view -> bayar());
return v; return v;
} }
private void bayar() {
// String orderId, String paymentType, String bank, long grossAmount
PaymentsModels paymentsModels = new PaymentsModels(
MainActivity.orderId,
"cash",
"none",
grossAmount
);
PaymentService paymentService = client.Client(PaymentService.class);
paymentService.postFromCart(paymentsModels).enqueue(new Callback<DataResponse<PaymentsModels>>() {
@Override
public void onResponse(Call<DataResponse<PaymentsModels>> call, Response<DataResponse<PaymentsModels>> response) {
if (response.body() != null){
}
}
@Override
public void onFailure(Call<DataResponse<PaymentsModels>> call, Throwable t) {
}
});
}
} }
package com.yono.messeripos; package com.yono.messeripos;
import android.app.AlertDialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build; import android.os.Build;
...@@ -24,15 +26,24 @@ import com.google.android.material.appbar.MaterialToolbar; ...@@ -24,15 +26,24 @@ import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.button.MaterialButton; import com.google.android.material.button.MaterialButton;
import com.google.android.material.textview.MaterialTextView; import com.google.android.material.textview.MaterialTextView;
import com.yono.messeripos.adapter.CartAdapter; import com.yono.messeripos.adapter.CartAdapter;
import com.yono.messeripos.api.client.Client;
import com.yono.messeripos.api.service.PaymentService;
import com.yono.messeripos.models.MainViewModelsCart; import com.yono.messeripos.models.MainViewModelsCart;
import com.yono.messeripos.models.PaymentsModels; import com.yono.messeripos.models.PaymentsModels;
import com.yono.messeripos.models.ProductCartModels; import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.response.OrdersResponse; import com.yono.messeripos.response.OrdersResponse;
import com.yono.messeripos.utils.Utils; import com.yono.messeripos.utils.Utils;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import static com.yono.messeripos.MainActivity.CHECKOUT;
import static com.yono.messeripos.MainActivity.ORDER_ID;
import static com.yono.messeripos.MainActivity.orderId; import static com.yono.messeripos.MainActivity.orderId;
public class CartActivity extends AppCompatActivity { public class CartActivity extends AppCompatActivity {
...@@ -47,6 +58,7 @@ public class CartActivity extends AppCompatActivity { ...@@ -47,6 +58,7 @@ public class CartActivity extends AppCompatActivity {
Utils utils = new Utils(); Utils utils = new Utils();
public static long GrandTotal = 0; public static long GrandTotal = 0;
MaterialButton btnSaveCart; MaterialButton btnSaveCart;
Button btnBayar;
@RequiresApi(api = Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.N)
@Override @Override
...@@ -57,7 +69,10 @@ public class CartActivity extends AppCompatActivity { ...@@ -57,7 +69,10 @@ public class CartActivity extends AppCompatActivity {
grandToral = findViewById(R.id.tvHarga); grandToral = findViewById(R.id.tvHarga);
btnSaveCart = findViewById(R.id.btSave); btnSaveCart = findViewById(R.id.btSave);
actionSaveCart(); modelsCart = new ViewModelProvider(this).get(MainViewModelsCart.class);
// actionSaveCart();
btnSaveCart.setOnClickListener(view -> actionSaveCart());
Window w = getWindow(); Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
...@@ -155,21 +170,50 @@ public class CartActivity extends AppCompatActivity { ...@@ -155,21 +170,50 @@ public class CartActivity extends AppCompatActivity {
} }
private void actionSaveCart() { private void actionSaveCart() {
Client client = new Client();
modelsCart.getCartByOrderId(orderId).observe(this, new Observer<List<ProductCartModels>>() { modelsCart.getCartByOrderId(orderId).observe(this, new Observer<List<ProductCartModels>>() {
@Override @Override
public void onChanged(List<ProductCartModels> productCartModels) { public void onChanged(List<ProductCartModels> productCartModels) {
long grossAmount = 0; long grossAmount = 0;
PaymentsModels paymentsModels = new PaymentsModels();
for (ProductCartModels pd:productCartModels){ for (ProductCartModels pd:productCartModels){
grossAmount = grossAmount + (pd.getQuantity_orders()*pd.getPrice_orders()); grossAmount = grossAmount + (pd.getQuantity_orders()*pd.getPrice_orders());
}
PaymentsModels paymentsModels = new PaymentsModels();
paymentsModels.setGrossAmount(grossAmount); paymentsModels.setGrossAmount(grossAmount);
paymentsModels.setBank("None"); }
paymentsModels.setPaymentType("Pending"); paymentsModels.setBank("none");
paymentsModels.setPaymentType("pending");
paymentsModels.setOrderId(orderId); paymentsModels.setOrderId(orderId);
paymentsModels.setTransactionStatus("Pending"); paymentsModels.setTransactionStatus("pending");
Log.i("Convert Input", "onChanged: "+utils.convertGson(paymentsModels));
PaymentService paymentService = client.Client(PaymentService.class);
paymentService.postFromCart(paymentsModels).enqueue(new Callback<DataResponse<PaymentsModels>>() {
@Override
public void onResponse(Call<DataResponse<PaymentsModels>> call, Response<DataResponse<PaymentsModels>> response) {
Log.i("Response simpan_cart", "onResponse: "+utils.convertGson(response.body()));
if (response.body() != null){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ORDER_ID, "");
if (editor.commit()){
startActivity(new Intent(CartActivity.this, MainActivity.class));
finish();
}
}else{
new AlertDialog.Builder(CartActivity.this)
.setCancelable(false)
.setTitle("Save nwe Order")
.setMessage("Erorr save!").show();
}
}
modelsCart.insertPayments(paymentsModels); @Override
public void onFailure(Call<DataResponse<PaymentsModels>> call, Throwable t) {
new AlertDialog.Builder(CartActivity.this)
.setCancelable(false)
.setTitle("Save nwe Order")
.setMessage("Add new order failed, try again!").show();
}
});
} }
}); });
......
...@@ -65,7 +65,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -65,7 +65,7 @@ public class MainActivity extends AppCompatActivity {
public static Boolean checkout; public static Boolean checkout;
public static Boolean selectCategory = false; public static Boolean selectCategory = false;
public static String orderId; public static String orderId;
private static final String ORDER_ID = "orderId"; public static final String ORDER_ID = "orderId";
Client client = new Client(); Client client = new Client();
public static ArrayList<ProductModels> productModelsArrayList = new ArrayList<>(); public static ArrayList<ProductModels> productModelsArrayList = new ArrayList<>();
public static final String DATA_PRODUCT = "DATA_PRODUCT"; public static final String DATA_PRODUCT = "DATA_PRODUCT";
...@@ -273,7 +273,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -273,7 +273,7 @@ public class MainActivity extends AppCompatActivity {
@Override @Override
public void onAddCart(ProductModels product) { public void onAddCart(ProductModels product) {
mainViewModelsCart.getCartById(product.getIdProduct()).observe(MainActivity.this, new Observer<List<ProductCartModels>>() { mainViewModelsCart.checkOrderProduct(product.getIdProduct(), orderId).observe(MainActivity.this, new Observer<List<ProductCartModels>>() {
@RequiresApi(api = Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.N)
@Override @Override
public void onChanged(List<ProductCartModels> productCartModels) { public void onChanged(List<ProductCartModels> productCartModels) {
......
...@@ -7,7 +7,10 @@ import androidx.recyclerview.widget.DividerItemDecoration; ...@@ -7,7 +7,10 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
...@@ -16,21 +19,32 @@ import android.view.Window; ...@@ -16,21 +19,32 @@ import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.appbar.MaterialToolbar; import com.google.android.material.appbar.MaterialToolbar;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.yono.messeripos.adapter.CheckoutAdapter; import com.yono.messeripos.adapter.CheckoutAdapter;
import com.yono.messeripos.adapter.PaymentAdapter; import com.yono.messeripos.adapter.PaymentAdapter;
import com.yono.messeripos.api.client.Client;
import com.yono.messeripos.api.service.PaymentService;
import com.yono.messeripos.models.MainViewModelsCart; import com.yono.messeripos.models.MainViewModelsCart;
import com.yono.messeripos.models.PaymentsModels; import com.yono.messeripos.models.PaymentsModels;
import com.yono.messeripos.models.ProductCartModels; import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.response.PaymentResponse; import com.yono.messeripos.response.PaymentResponse;
import com.yono.messeripos.utils.Utils; import com.yono.messeripos.utils.Utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import static com.yono.messeripos.MainActivity.CHECKOUT;
import static com.yono.messeripos.MainActivity.ORDER_ID;
import static com.yono.messeripos.MainActivity.checkout; import static com.yono.messeripos.MainActivity.checkout;
import static com.yono.messeripos.MainActivity.orderId;
public class PaymentActivity extends AppCompatActivity { public class PaymentActivity extends AppCompatActivity {
...@@ -45,6 +59,8 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -45,6 +59,8 @@ public class PaymentActivity extends AppCompatActivity {
private CheckoutAdapter checkoutAdapter; private CheckoutAdapter checkoutAdapter;
private TextView grandTotal; private TextView grandTotal;
public static BottomSheets bottomSheet; public static BottomSheets bottomSheet;
public static SharedPreferences sharedPreferences;
Button cashBtn;
...@@ -57,6 +73,9 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -57,6 +73,9 @@ public class PaymentActivity extends AppCompatActivity {
Window w = getWindow(); Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
} }
sharedPreferences = getSharedPreferences(SplashScreen.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
paymentsModels = new PaymentsModels(); paymentsModels = new PaymentsModels();
checkoutAdapter = new CheckoutAdapter(); checkoutAdapter = new CheckoutAdapter();
recyclerView = findViewById(R.id.rvItem); recyclerView = findViewById(R.id.rvItem);
...@@ -119,13 +138,45 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -119,13 +138,45 @@ public class PaymentActivity extends AppCompatActivity {
bottomSheet.show(getSupportFragmentManager(), bottomSheet.show(getSupportFragmentManager(),
"ModalBottomSheet"); "ModalBottomSheet");
}else{ }else{
Client client = new Client();
paymentsModels.setPaymentType("bank_transfer"); paymentsModels.setPaymentType("bank_transfer");
paymentsModels.setBank(methodPay); paymentsModels.setBank(methodPay);
paymentsModels.setOrderId(orderId);
Log.i("BANK", "onClick: "+utils.convertGson(paymentsModels)); Log.i("BANK", "onClick: "+utils.convertGson(paymentsModels));
PaymentService paymentService = client.Client(PaymentService.class);
paymentService.postFromCart(paymentsModels).enqueue(new Callback<DataResponse<PaymentsModels>>() {
@Override
public void onResponse(Call<DataResponse<PaymentsModels>> call, Response<DataResponse<PaymentsModels>> response) {
Log.i("Paymen_bank", "onResponse: "+utils.convertGson(response.body()));
if (response.body() != null){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ORDER_ID, "");
editor.putBoolean(CHECKOUT, false);
if (editor.commit()){
startActivity(new Intent(PaymentActivity.this, MainActivity.class));
finish();
}
}else{
new AlertDialog.Builder(PaymentActivity.this)
.setTitle("Payment Order")
.setMessage("Erorr save!").show();
}
}
@Override
public void onFailure(Call<DataResponse<PaymentsModels>> call, Throwable t) {
new AlertDialog.Builder(PaymentActivity.this)
.setCancelable(false)
.setTitle("Payment Order")
.setMessage("Add new payment failed, try again!").show();
}
});
} }
} }
}); });
} }
@Override @Override
...@@ -134,5 +185,14 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -134,5 +185,14 @@ public class PaymentActivity extends AppCompatActivity {
startActivity(new Intent(PaymentActivity.this, MainActivity.class)); startActivity(new Intent(PaymentActivity.this, MainActivity.class));
finish(); finish();
} }
public void savePaymentSuccess(){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ORDER_ID, "");
if (editor.commit()){
startActivity(new Intent(PaymentActivity.this, MainActivity.class));
finish();
}
}
} }
...@@ -21,8 +21,8 @@ public interface CartDaos { ...@@ -21,8 +21,8 @@ public interface CartDaos {
@Query("SELECT * FROM carts WHERE id_product_orders = :idCart") @Query("SELECT * FROM carts WHERE id_product_orders = :idCart")
public LiveData<List<ProductCartModels>> getCartById(long idCart); public LiveData<List<ProductCartModels>> getCartById(long idCart);
@Query("SELECT * FROM carts WHERE id_orders = :orderId") @Query("SELECT * FROM carts WHERE id_orders = :orderId AND id_product_orders = :idOrders")
public LiveData<List<ProductCartModels>> getCartByOrderId(String orderId); public LiveData<List<ProductCartModels>> getCartByOrderId(String orderId, long idOrders);
@Insert(onConflict = OnConflictStrategy.IGNORE) @Insert(onConflict = OnConflictStrategy.IGNORE)
public void insertProduct(ProductCartModels product); public void insertProduct(ProductCartModels product);
......
...@@ -111,8 +111,12 @@ public class MainViewModelsCart extends AndroidViewModel { ...@@ -111,8 +111,12 @@ public class MainViewModelsCart extends AndroidViewModel {
return cartRepositories.getDataById(id); return cartRepositories.getDataById(id);
} }
public LiveData<List<ProductCartModels>> getCartByOrderId(String id){ public LiveData<List<ProductCartModels>> checkOrderProduct(long idProduct, String idOrders){
return cartRepositories.getCartByOrderId(id); return cartRepositories.getCartByOrderId(idOrders, idProduct);
}
public LiveData<List<ProductCartModels>> getCartByOrderId(long id){
return cartRepositories.getDataById(id);
} }
public MutableLiveData<ProductCartModels> getCart(){ public MutableLiveData<ProductCartModels> getCart(){
......
...@@ -46,8 +46,8 @@ public class CartRepositories { ...@@ -46,8 +46,8 @@ public class CartRepositories {
return cartDaos.getCartById(id); return cartDaos.getCartById(id);
} }
public LiveData<List<ProductCartModels>> getCartByOrderId(String id){ public LiveData<List<ProductCartModels>> getCartByOrderId(String idOrder, long idProduct){
return cartDaos.getCartByOrderId(id); return cartDaos.getCartByOrderId(idOrder, idProduct);
} }
public LiveData<List<ProductCartModels>> getDataCart(){ public LiveData<List<ProductCartModels>> getDataCart(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment