Commit e689243a authored by Muhammad Suryono's avatar Muhammad Suryono

fix to post order to server

parent 5110f6c3
package com.yono.messeripos;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
......@@ -16,42 +8,33 @@ import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Filter;
import android.widget.ImageButton;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.google.gson.Gson;
import com.yono.messeripos.adapter.CartAdapter;
import com.yono.messeripos.models.CartModels;
import com.yono.messeripos.models.MainViewModelsCart;
import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.models.ProductModels;
import java.lang.reflect.Array;
import java.security.Key;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import com.yono.messeripos.response.OrdersResponse;
import com.google.android.material.snackbar.Snackbar;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
public class CartActivity extends AppCompatActivity {
CartAdapter cartAdapter;
MainViewModelsCart modelsCart;
RecyclerView recyclerView;
List<ProductCartModels> dataCart = null;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
......@@ -87,6 +70,7 @@ public class CartActivity extends AppCompatActivity {
public void onChanged(List<ProductCartModels> productCartModels) {
if (productCartModels != null){
dataCart = productCartModels;
cartAdapter.setCartAdapter(CartActivity.this, productCartModels);
recyclerView.setAdapter(cartAdapter);
}
......@@ -119,63 +103,33 @@ public class CartActivity extends AppCompatActivity {
});
//
// counter = Integer.parseInt(tvQtyView.getText().toString());
// prices = Integer.parseInt(tvPrice.getText().toString());
//
// tvTotal.setText(setToRp().format((double) Integer.parseInt(tvTotal.getText().toString())));
//
// btMinus.setOnClickListener(new View.OnClickListener() {
// @SuppressLint("SetTextI18n")
// @Override
// public void onClick(View view) {
// if (counter > 1){
// counter--;
// tiQty.setText(Integer.toString(counter));
// tvQtyView.setText(Integer.toString(counter));
//
// countTotal();
// }
// }
// });
//
// btPlus.setOnClickListener(new View.OnClickListener() {
// @SuppressLint("SetTextI18n")
// @Override
// public void onClick(View view) {
// counter++;
// tiQty.setText(Integer.toString(counter));
// tvQtyView.setText(Integer.toString(counter));
//
// countTotal();
// }
// });
btnCheckout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ProgressDialog progressDialog = new ProgressDialog(CartActivity.this);
progressDialog.setMessage("Creating your orders....");
progressDialog.show();
OrdersResponse ordersResponse = new OrdersResponse();
List<ProductCartModels> productCartModels;
Log.d("Data cart checkout", "onClick: "+dataCart);
for (ProductCartModels pd : dataCart){
ordersResponse.setOrders_id(pd.getId_orders());
}
ordersResponse.setProduct_cart(dataCart);
if(modelsCart.insertOrders(ordersResponse)){
progressDialog.dismiss();
startActivity(new Intent(CartActivity.this, PaymentActivity.class));
}else{
progressDialog.dismiss();
Snackbar.make(view, "Your orders failed create!", Snackbar.LENGTH_LONG).show();
}
});
}
//
// private void countTotal() {
// int price = prices;
// int qtyView = Integer.parseInt(tvQtyView.getText().toString());
// int count = price*qtyView;
//// String result = Integer.toString(price*qtyView);
//
//// set to view
// tvTotal.setText(setToRp().format((double) count));
// }
//
// private NumberFormat setToRp() {
// Locale ID = new Locale("in", "ID");
//
// return NumberFormat.getCurrencyInstance(ID);
// }
});
}
}
/**
......
......@@ -2,8 +2,6 @@ package com.yono.messeripos;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
......@@ -13,7 +11,6 @@ import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
......
......@@ -37,6 +37,7 @@ import com.yono.messeripos.models.MainViewModelsCart;
import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.models.ProductModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.utils.Utils;
import java.util.ArrayList;
import java.util.List;
......@@ -49,6 +50,7 @@ public class MainActivity extends AppCompatActivity {
ProductAdapter productAdapter;
CartAdapter cartAdapter;
TextView txtBadge;
Utils utils = new Utils();
public static Boolean status_update = false;
MainViewModelsCart mainViewModelsCart;
public static Boolean cartIsEmpty;
......@@ -203,7 +205,7 @@ public class MainActivity extends AppCompatActivity {
public void onChanged(List<ProductCartModels> productCartModels) {
if (productCartModels.isEmpty() && cartIsEmpty){
mainViewModelsCart.insertCart(new ProductCartModels(
1233,
"MES-ORDER-"+utils.timeStamp(),
1,
product.getIdProduct(),
product.getProductName(),
......
......@@ -16,6 +16,6 @@ public interface CategoryServise {
@GET(ApiHelper.VERSI_API_1+"categories")
Call<DataResponse<List<CategoryModels>>> getCategory();
@GET(ApiHelper.VERSI_API_1+"products-category/{id}")
@GET(ApiHelper.VERSI_API_1+"product-category-id/{id}")
Call<DataResponse<List<ProductModels>>> getCategoryById(@Path("id") int id);
}
package com.yono.messeripos.api.service;
import com.yono.messeripos.api.ApiHelper;
import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.response.OrdersResponse;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.Path;
public interface OrdersService {
@POST(ApiHelper.VERSI_API_1+"order")
Call<DataResponse> postOrders(@Body OrdersResponse cartPost);
}
......@@ -14,11 +14,11 @@ import retrofit2.http.Multipart;
import retrofit2.http.Part;
public interface ProductService {
@GET(ApiHelper.VERSI_API_1+"products-join")
@GET(ApiHelper.VERSI_API_1+"product-categories")
Call<DataResponse<List<ProductModels<CategoryModels>>>> getProducts();
@Multipart
@GET(ApiHelper.VERSI_API_1+"products")
@GET(ApiHelper.VERSI_API_1+"product")
Call<DataResponse<ProductModels>> postProduct(
@Part("image\"; filename=\"messer_file.jpg\"")RequestBody image,
@Part RequestBody name,
......
......@@ -32,7 +32,7 @@ public abstract class LocalDatabase extends RoomDatabase {
synchronized (LocalDatabase.class){
if (INSTANCE == null){
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
LocalDatabase.class, "database_meser").build();
LocalDatabase.class, "db_messer").build();
}
}
}
......
package com.yono.messeripos.models;
import android.annotation.SuppressLint;
import android.app.Application;
import android.util.Log;
......@@ -10,12 +11,20 @@ import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.Transformations;
import com.google.gson.Gson;
import com.yono.messeripos.api.client.Client;
import com.yono.messeripos.api.service.OrdersService;
import com.yono.messeripos.repositories.CartRepositories;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.response.OrdersResponse;
import java.util.List;
public class MainViewModelsCart extends AndroidViewModel {
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MainViewModelsCart extends AndroidViewModel {
Boolean statusPost = false;
private MutableLiveData<ProductCartModels> cart = new MutableLiveData<>();
private LiveData<List<ProductCartModels>> productsLive;
......@@ -44,6 +53,31 @@ public class MainViewModelsCart extends AndroidViewModel {
public void updateQtyCart(long qty, long id){cartRepositories.updateQty(qty, id);}
public Boolean insertOrders(OrdersResponse ordersResponse){
Client client = new Client();
OrdersService ordersService = client.Client(OrdersService.class);
ordersService.postOrders(ordersResponse).enqueue(new Callback<DataResponse>() {
@Override
public void onResponse(Call<DataResponse> call, Response<DataResponse> response) {
Log.i("Response post orders", "onResponse: "+response.body());
if (response.body() != null){
statusPost = true;
}else{
statusPost = false;
}
}
@SuppressLint("LongLogTag")
@Override
public void onFailure(Call<DataResponse> call, Throwable t) {
Log.e("Error response post orders", "onFailure: ",t );
statusPost = false;
}
});
return statusPost;
}
public LiveData<List<ProductCartModels>> getCartById(long id){
return cartRepositories.getDataById(id);
}
......
......@@ -15,7 +15,7 @@ public class ProductCartModels implements Parcelable {
private long id;
@SerializedName("id_orders")
private int id_orders;
private String id_orders;
@SerializedName("quantity")
private long quantity_orders;
......@@ -36,7 +36,7 @@ public class ProductCartModels implements Parcelable {
}
public ProductCartModels(int id_orders,
public ProductCartModels(String id_orders,
long quantity_orders,
int id_product_orders,
String product_name_orders,
......@@ -52,7 +52,7 @@ public class ProductCartModels implements Parcelable {
protected ProductCartModels(Parcel in) {
id = in.readLong();
id_orders = in.readInt();
id_orders = in.readString();
quantity_orders = in.readLong();
id_product_orders = in.readInt();
product_name_orders = in.readString();
......@@ -80,7 +80,7 @@ public class ProductCartModels implements Parcelable {
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeLong(id);
parcel.writeInt(id_orders);
parcel.writeString(id_orders);
parcel.writeLong(quantity_orders);
parcel.writeLong(price_orders);
parcel.writeString(product_name_orders);
......@@ -95,11 +95,11 @@ public class ProductCartModels implements Parcelable {
this.id = id;
}
public int getId_orders() {
public String getId_orders() {
return id_orders;
}
public void setId_orders(int id_orders) {
public void setId_orders(String id_orders) {
this.id_orders = id_orders;
}
......
package com.yono.messeripos.response;
import com.google.gson.annotations.SerializedName;
public class OrdersResponse<T> {
@SerializedName("code")
private String orders_id;
@SerializedName("products")
private T product_cart;
public OrdersResponse(){
}
public OrdersResponse(String orders_id, T product_cart) {
this.orders_id = orders_id;
this.product_cart = product_cart;
}
public String getOrders_id() {
return orders_id;
}
public void setOrders_id(String orders_id) {
this.orders_id = orders_id;
}
public T getProduct_cart() {
return product_cart;
}
public void setProduct_cart(T product_cart) {
this.product_cart = product_cart;
}
}
......@@ -2,6 +2,8 @@ package com.yono.messeripos.utils;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Utils {
public String convertPrice(String mataUang, int nilai ){
......@@ -29,4 +31,9 @@ public class Utils {
return rupiah.format(nilai);
}
public String timeStamp(){
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
return timeStamp;
}
}
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