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

check order cart

parent 2439ea7b
package com.yono.messeripos;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
......@@ -14,10 +16,16 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
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.response.DataResponse;
import com.yono.messeripos.utils.Utils;
import okhttp3.internal.Util;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class BottomSheets extends BottomSheetDialogFragment {
......@@ -26,6 +34,8 @@ public class BottomSheets extends BottomSheetDialogFragment {
Button btnCash;
Utils utils;
String defaultText = "0";
Client client = new Client();
public static long grossAmount;
PaymentsModels paymentsModels;
public BottomSheets(PaymentsModels paymentsModels) {
......@@ -43,7 +53,6 @@ public class BottomSheets extends BottomSheetDialogFragment {
hargaChange = v.findViewById(R.id.hargaChange);
btnCash = v.findViewById(R.id.btnCash);
totalHarga = v.findViewById(R.id.totalHarga);
utils = new Utils();
long ga = paymentsModels.getGrossAmount();
......@@ -62,7 +71,7 @@ public class BottomSheets extends BottomSheetDialogFragment {
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (TextUtils.isEmpty(charSequence)) inputAmount.setText("0");
long grossAmount = paymentsModels.getGrossAmount();
grossAmount = paymentsModels.getGrossAmount();
long input = Long.parseLong(inputAmount.getText().toString());
long result = grossAmount - input;
......@@ -76,6 +85,34 @@ public class BottomSheets extends BottomSheetDialogFragment {
}
});
btnCash.setOnClickListener(view -> bayar());
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;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
......@@ -24,15 +26,24 @@ import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textview.MaterialTextView;
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.PaymentsModels;
import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.response.OrdersResponse;
import com.yono.messeripos.utils.Utils;
import java.util.List;
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;
public class CartActivity extends AppCompatActivity {
......@@ -47,6 +58,7 @@ public class CartActivity extends AppCompatActivity {
Utils utils = new Utils();
public static long GrandTotal = 0;
MaterialButton btnSaveCart;
Button btnBayar;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
......@@ -57,7 +69,10 @@ public class CartActivity extends AppCompatActivity {
grandToral = findViewById(R.id.tvHarga);
btnSaveCart = findViewById(R.id.btSave);
actionSaveCart();
modelsCart = new ViewModelProvider(this).get(MainViewModelsCart.class);
// actionSaveCart();
btnSaveCart.setOnClickListener(view -> actionSaveCart());
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
......@@ -155,21 +170,50 @@ public class CartActivity extends AppCompatActivity {
}
private void actionSaveCart() {
Client client = new Client();
modelsCart.getCartByOrderId(orderId).observe(this, new Observer<List<ProductCartModels>>() {
@Override
public void onChanged(List<ProductCartModels> productCartModels) {
long grossAmount = 0;
PaymentsModels paymentsModels = new PaymentsModels();
for (ProductCartModels pd:productCartModels){
grossAmount = grossAmount + (pd.getQuantity_orders()*pd.getPrice_orders());
paymentsModels.setGrossAmount(grossAmount);
}
PaymentsModels paymentsModels = new PaymentsModels();
paymentsModels.setGrossAmount(grossAmount);
paymentsModels.setBank("None");
paymentsModels.setPaymentType("Pending");
paymentsModels.setBank("none");
paymentsModels.setPaymentType("pending");
paymentsModels.setOrderId(orderId);
paymentsModels.setTransactionStatus("Pending");
modelsCart.insertPayments(paymentsModels);
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();
}
}
@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 {
public static Boolean checkout;
public static Boolean selectCategory = false;
public static String orderId;
private static final String ORDER_ID = "orderId";
public static final String ORDER_ID = "orderId";
Client client = new Client();
public static ArrayList<ProductModels> productModelsArrayList = new ArrayList<>();
public static final String DATA_PRODUCT = "DATA_PRODUCT";
......@@ -273,7 +273,7 @@ public class MainActivity extends AppCompatActivity {
@Override
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)
@Override
public void onChanged(List<ProductCartModels> productCartModels) {
......
......@@ -7,7 +7,10 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
......@@ -16,21 +19,32 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.gson.Gson;
import com.yono.messeripos.adapter.CheckoutAdapter;
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.PaymentsModels;
import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.response.PaymentResponse;
import com.yono.messeripos.utils.Utils;
import java.util.ArrayList;
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.orderId;
public class PaymentActivity extends AppCompatActivity {
......@@ -45,6 +59,8 @@ public class PaymentActivity extends AppCompatActivity {
private CheckoutAdapter checkoutAdapter;
private TextView grandTotal;
public static BottomSheets bottomSheet;
public static SharedPreferences sharedPreferences;
Button cashBtn;
......@@ -57,6 +73,9 @@ public class PaymentActivity extends AppCompatActivity {
Window w = getWindow();
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();
checkoutAdapter = new CheckoutAdapter();
recyclerView = findViewById(R.id.rvItem);
......@@ -119,13 +138,45 @@ public class PaymentActivity extends AppCompatActivity {
bottomSheet.show(getSupportFragmentManager(),
"ModalBottomSheet");
}else{
Client client = new Client();
paymentsModels.setPaymentType("bank_transfer");
paymentsModels.setBank(methodPay);
paymentsModels.setOrderId(orderId);
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
......@@ -134,5 +185,14 @@ public class PaymentActivity extends AppCompatActivity {
startActivity(new Intent(PaymentActivity.this, MainActivity.class));
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 {
@Query("SELECT * FROM carts WHERE id_product_orders = :idCart")
public LiveData<List<ProductCartModels>> getCartById(long idCart);
@Query("SELECT * FROM carts WHERE id_orders = :orderId")
public LiveData<List<ProductCartModels>> getCartByOrderId(String orderId);
@Query("SELECT * FROM carts WHERE id_orders = :orderId AND id_product_orders = :idOrders")
public LiveData<List<ProductCartModels>> getCartByOrderId(String orderId, long idOrders);
@Insert(onConflict = OnConflictStrategy.IGNORE)
public void insertProduct(ProductCartModels product);
......
......@@ -111,8 +111,12 @@ public class MainViewModelsCart extends AndroidViewModel {
return cartRepositories.getDataById(id);
}
public LiveData<List<ProductCartModels>> getCartByOrderId(String id){
return cartRepositories.getCartByOrderId(id);
public LiveData<List<ProductCartModels>> checkOrderProduct(long idProduct, String idOrders){
return cartRepositories.getCartByOrderId(idOrders, idProduct);
}
public LiveData<List<ProductCartModels>> getCartByOrderId(long id){
return cartRepositories.getDataById(id);
}
public MutableLiveData<ProductCartModels> getCart(){
......
......@@ -46,8 +46,8 @@ public class CartRepositories {
return cartDaos.getCartById(id);
}
public LiveData<List<ProductCartModels>> getCartByOrderId(String id){
return cartDaos.getCartByOrderId(id);
public LiveData<List<ProductCartModels>> getCartByOrderId(String idOrder, long idProduct){
return cartDaos.getCartByOrderId(idOrder, idProduct);
}
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