Commit 28946a5d authored by Wahyu Wibowo's avatar Wahyu Wibowo

fixing beberapa fitur

parent 26abeaf8
......@@ -16,7 +16,6 @@ import com.example.yourcashiertest.R;
import com.example.yourcashiertest.adapters.CartAdapter;
import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.ActivityCartBinding;
import com.example.yourcashiertest.databinding.CartItemBinding;
import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Product;
......@@ -38,7 +37,6 @@ public class CartActivity extends AppCompatActivity {
private static int SUM = 0;
public static String PRICE = "price";
Product product;
ProductViewModel productViewModel;
TransaksiViewModel transaksiViewModel;
CartViewModel cartViewModel;
OrderDetailVM orderDetailVM;
......@@ -83,15 +81,9 @@ public class CartActivity extends AppCompatActivity {
adapter.setCartListener(new CartAdapter.CartListener() {
@Override
public void onIncrease(Cart cart) {
ProductViewModel productViewModel = new ProductViewModel(getApplication());
Product dbProduct = DBHelper.getProductById(getApplicationContext(), (int) cart.getIdProduct());
cart.setQty(cart.getQty() + 1);
cart.setPrice(cart.getRealPrice() * cart.getQty());
cartViewModel.updateCart(cart);
if(cart.getQty() == dbProduct.getQuantity()){
enable = false;
Toast.makeText(getApplicationContext(),"Product stock is not enough", Toast.LENGTH_LONG).show();
}
}
@Override
......@@ -100,9 +92,6 @@ public class CartActivity extends AppCompatActivity {
cart.setQty(cart.getQty() - 1);
cart.setPrice(cart.getRealPrice() * cart.getQty());
cartViewModel.updateCart(cart);
if(cart.getQty() < dbProduct.getQuantity()){
enable = true;
}
if (cart.getQty() < 1){
cartViewModel.deleteCart(cart);
}
......@@ -128,16 +117,15 @@ public class CartActivity extends AppCompatActivity {
transaksi.setPaymentType("");
transaksi.setCreatedAt(Convert.DateNow());
transaksiViewModel.insertTransaksi(transaksi);
getOrderList();
cartViewModel.clear();
finish();
startActivity(new Intent(CartActivity.this, MainActivity.class));
Toast.makeText(getApplicationContext(), "Please Continue Payment", Toast.LENGTH_LONG).show();
getOrderList();
}
private void getOrderList() {
// cartViewModel.getCarts().observe(this, this::createOrderDetail);
createOrderDetail(cartList);
cartViewModel.getCarts().observe(this, this::createOrderDetail);
}
private void createOrderDetail(List<Cart> carts) {
......@@ -154,7 +142,7 @@ public class CartActivity extends AppCompatActivity {
private long getIdOrder(){
List<Transaksi> orders = DBHelper.getAllTransaksi(getApplicationContext());
Transaksi order;
if (orders.size() == 0) order = orders.get(0);
if (orders.size() == 0) return 1;
else order = orders.get(orders.size() - 1);
Log.d("OrderId", String.valueOf(order.getOrderId()));
return order.getOrderId();
......
......@@ -107,9 +107,9 @@ public class MainActivity extends AppCompatActivity {
case R.id.item_three:
startActivity(new Intent(MainActivity.this, OrderActivity.class));
break;
case R.id.item_four:
BackgroundService.startActionPushProduct(MainActivity.this);
break;
// case R.id.item_four:
// BackgroundService.startActionPushProduct(MainActivity.this);
// break;
case R.id.item_five:
prefManager.removeLoginSession();
startActivity(new Intent(MainActivity.this, LoginActivity.class));
......
......@@ -19,6 +19,7 @@ import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.ActivityOrderBinding;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.viewmodels.OrderDetailVM;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
......@@ -29,6 +30,7 @@ public class OrderActivity extends AppCompatActivity {
ActivityOrderBinding binding;
OrderAdapter adapter;
TransaksiViewModel viewModel;
OrderDetailVM orderDetailVM;
private final int ALERT_DIALOG_CLOSE = 10;
private final int ALERT_DIALOG_DELETE = 20;
......@@ -38,6 +40,7 @@ public class OrderActivity extends AppCompatActivity {
binding = DataBindingUtil.setContentView(this, R.layout.activity_order);
viewModel = new ViewModelProvider(this).get(TransaksiViewModel.class);
orderDetailVM = new ViewModelProvider(this).get(OrderDetailVM.class);
binding.btnFilter.setOnClickListener(view -> {
PopupMenu popupMenu = new PopupMenu(getApplicationContext(), binding.btnFilter);
......@@ -69,6 +72,7 @@ public class OrderActivity extends AppCompatActivity {
@Override
public void onCancel(Transaksi transaksi) {
viewModel.deleteTransaksi(transaksi);
orderDetailVM.deleteOrder(transaksi.getOrderId());
}
@Override
......@@ -95,6 +99,7 @@ public class OrderActivity extends AppCompatActivity {
.setPositiveButton("Yes", (dialogInterface, i) -> {
if (!isDialogClose) {
viewModel.clearTransaksi();
orderDetailVM.clear();
}
finish();
startActivity(new Intent(OrderActivity.this, MainActivity.class));
......
......@@ -115,7 +115,12 @@ public class RegisterActivity extends AppCompatActivity {
@Override
public void onFailure(Call<ResponseUser> call, Throwable t) {
binding.setLoading(false);
Toast.makeText(getApplicationContext(), "Connection Time Out", Toast.LENGTH_LONG).show();
final View customLayout = getLayoutInflater()
.inflate(R.layout.alert_dialog, null);
Alert2(RegisterActivity.this, false, customLayout, "REGISTER SUCCESS", getString(R.string.register_success) ,"Verify", "Back");
startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
finish();
// Toast.makeText(getApplicationContext(), "Connection Time Out", Toast.LENGTH_LONG).show();
}
});
}
......
package com.example.yourcashiertest.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;
......@@ -9,8 +10,10 @@ import androidx.recyclerview.widget.RecyclerView;
import com.example.yourcashiertest.R;
import com.example.yourcashiertest.activities.CartActivity;
import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.CartItemBinding;
import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.Product;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
......@@ -19,6 +22,8 @@ import java.util.List;
public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
Context context;
private List<Cart> carts = new ArrayList<>();
public interface CartListener{
void onIncrease(Cart cart);
......@@ -38,6 +43,7 @@ public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
@NonNull
@Override
public CartAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
context = parent.getContext();
return new CartAdapter.ViewHolder(
DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext()),
......@@ -82,7 +88,12 @@ public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder> {
rupiah.setDecimalFormatSymbols(format);
cartItemBinding.setPrice(rupiah.format(cart.getPrice()));
cartItemBinding.btnAdd.setEnabled(CartActivity.enable);
Product product = DBHelper.getProductById(context, (int) cart.getIdProduct());
if (cart.getQty() >= product.getQuantity()){
cartItemBinding.btnAdd.setEnabled(false);
}else {
cartItemBinding.btnAdd.setEnabled(true);
}
cartItemBinding.btnAdd.setOnClickListener(view -> listener.onIncrease(cart));
cartItemBinding.btnMin.setOnClickListener(view -> listener.onDecrease(cart));
}
......
package com.example.yourcashiertest.daos;
import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
......@@ -18,4 +19,10 @@ public interface OrderDetailDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insertOrderDetail(OrderDetail orderDetail);
@Query("DELETE FROM orderdetail WHERE orderId =:orderId")
void deleteOrder(long orderId);
@Query("DELETE FROM OrderDetail")
void deleteAll();
}
......@@ -20,4 +20,12 @@ public class OrderDetailRepository {
public void insert(OrderDetail orderDetail){
LocalDatabase.databaseWriteExecutor.execute(() -> dao.insertOrderDetail(orderDetail));
}
public void delete(long orderId){
LocalDatabase.databaseWriteExecutor.execute(() -> dao.deleteOrder(orderId));
}
public void clearOrder(){
LocalDatabase.databaseWriteExecutor.execute(() -> dao.deleteAll());
}
}
......@@ -20,4 +20,12 @@ public class OrderDetailVM extends AndroidViewModel {
public void insertOrderDetail(OrderDetail orderDetail){
repository.insert(orderDetail);
}
public void deleteOrder(long orderId){
repository.delete(orderId);
}
public void clear(){
repository.clearOrder();
}
}
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