Commit 56b84de0 authored by Muhammad Suryono's avatar Muhammad Suryono

Update with transaksi

parent d720eb45
package com.yono.messeripos; package com.yono.messeripos;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
...@@ -43,6 +44,7 @@ public class BottomSheets extends BottomSheetDialogFragment { ...@@ -43,6 +44,7 @@ public class BottomSheets extends BottomSheetDialogFragment {
String defaultText = "0"; String defaultText = "0";
Client client = new Client(); Client client = new Client();
public static long grossAmount; public static long grossAmount;
SharedPreferences sharedPreferences;
PaymentsModels paymentsModels; PaymentsModels paymentsModels;
public BottomSheets(PaymentsModels paymentsModels) { public BottomSheets(PaymentsModels paymentsModels) {
...@@ -71,6 +73,7 @@ public class BottomSheets extends BottomSheetDialogFragment { ...@@ -71,6 +73,7 @@ public class BottomSheets extends BottomSheetDialogFragment {
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();
// sharedPreferences = getActivity().getSharedPreferences(MainActivity.ORDER_ID, Context.MODE_PRIVATE);
long ga = paymentsModels.getGrossAmount(); long ga = paymentsModels.getGrossAmount();
String setCurrency = utils.convertPrice("Rp.", ga); String setCurrency = utils.convertPrice("Rp.", ga);
......
...@@ -94,17 +94,17 @@ public class CartActivity extends AppCompatActivity { ...@@ -94,17 +94,17 @@ public class CartActivity 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); sharedPreferences = getSharedPreferences(MainActivity.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
Log.i("Id Order on acart", "onCreate: "+orderId); // Log.i("Id Order on acart", "onCreate: "+orderId);
if (orderId.isEmpty()){ // if (orderId.isEmpty()){
SharedPreferences.Editor editor = sharedPreferences.edit(); // SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ORDER_ID, "MES-ORDER"+orderId); // editor.putString(ORDER_ID, "MES-ORDER"+orderId);
//
if (editor.commit()){ // if (editor.commit()){
Toast.makeText(CartActivity.this, orderId, Toast.LENGTH_LONG).show(); // Toast.makeText(CartActivity.this, orderId, Toast.LENGTH_LONG).show();
} // }
} // }
// Toolbars // Toolbars
MaterialToolbar toolbars = findViewById(R.id.cAppBar); MaterialToolbar toolbars = findViewById(R.id.cAppBar);
...@@ -250,4 +250,14 @@ public class CartActivity extends AppCompatActivity { ...@@ -250,4 +250,14 @@ public class CartActivity extends AppCompatActivity {
} }
}); });
} }
@Override
public void onBackPressed() {
if (sharedPreferences.getString(ORDER_ID, "") == null){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ORDER_ID, "MES-ORDER"+utils.timeStamp());
editor.commit();
}
super.onBackPressed();
}
} }
\ No newline at end of file
...@@ -71,6 +71,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -71,6 +71,7 @@ public class FormProductActivity extends AppCompatActivity {
private Utils utils = new Utils(); private Utils utils = new Utils();
ProgressDialog progressDialog; ProgressDialog progressDialog;
Client client = new Client(); Client client = new Client();
ProductModels productModelsIntent;
@Override @Override
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
...@@ -90,7 +91,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -90,7 +91,7 @@ public class FormProductActivity extends AppCompatActivity {
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);
} }
ProductModels productModelsIntent = getIntent().getParcelableExtra(MainActivity.DATA_PRODUCT); productModelsIntent = getIntent().getParcelableExtra(MainActivity.DATA_PRODUCT);
MaterialToolbar toolbars = findViewById(R.id.topAppBarForm); MaterialToolbar toolbars = findViewById(R.id.topAppBarForm);
...@@ -110,6 +111,10 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -110,6 +111,10 @@ public class FormProductActivity extends AppCompatActivity {
productModels.setPriceProduct(productModelsIntent.getPriceProduct()); productModels.setPriceProduct(productModelsIntent.getPriceProduct());
productModels.setStockProduct(productModelsIntent.getStockProduct()); productModels.setStockProduct(productModelsIntent.getStockProduct());
productModels.setImageProduct(productModelsIntent.getImageProduct()); productModels.setImageProduct(productModelsIntent.getImageProduct());
binding.setProductForm(productModelsIntent);
binding.setPhoto(productModelsIntent.getImageProduct());
binding.btnAdd.setText("UPDATE PRODUCT"); binding.btnAdd.setText("UPDATE PRODUCT");
}else{ }else{
productModelsIntent = new ProductModels("",0,0, utils.convertImageBase64Resource(getResources(), R.drawable.logo_32)); productModelsIntent = new ProductModels("",0,0, utils.convertImageBase64Resource(getResources(), R.drawable.logo_32));
...@@ -169,6 +174,50 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -169,6 +174,50 @@ public class FormProductActivity extends AppCompatActivity {
productModels.setStockProduct(Integer.parseInt(binding.etStock.getText().toString())); productModels.setStockProduct(Integer.parseInt(binding.etStock.getText().toString()));
productModels.setCategoryProduct(binding.listCategory.getSelectedIndex()); productModels.setCategoryProduct(binding.listCategory.getSelectedIndex());
if (isUpdate){
Log.i("update_path", "saveProduct: "+locationPath);
if (
!productModels.getProductName().isEmpty() ||
productModels.getPriceProduct() != 0 ||
productModels.getStockProduct() != 0
){
progressDialog.setCancelable(false);
progressDialog.show();
ProductService productService = client.Client(ProductService.class);
Log.i("data_post", "saveProduct: "+utils.convertGson(productModels));
productService.updateProduct(productModels, productModelsIntent.getIdProduct()).enqueue(new Callback<DataResponse<ProductModels>>() {
@Override
public void onResponse(Call<DataResponse<ProductModels>> call, Response<DataResponse<ProductModels>> response) {
Log.i("Success Post", "onResponse: "+utils.convertGson(response.body()));
if (response.body() != null){
new AlertDialog.Builder(FormProductActivity.this)
.setCancelable(false)
.setTitle("Update Product")
.setMessage("Update product success")
.setPositiveButton("Oke", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
startActivity(new Intent(FormProductActivity.this, MainActivity.class));
finish();
}
}).show();
}else{
new AlertDialog.Builder(FormProductActivity.this)
.setTitle("Update Product")
.setMessage("Update product failed, try again!").show();
}
progressDialog.dismiss();
}
@Override
public void onFailure(Call<DataResponse<ProductModels>> call, Throwable t) {
progressDialog.dismiss();
Log.e("Error input", "onFailure: ",t );
}
});
}
}else {
Log.i("save_path", "saveProduct: "+locationPath); Log.i("save_path", "saveProduct: "+locationPath);
if (locationPath != null){ if (locationPath != null){
File fileImage = new File(locationPath); File fileImage = new File(locationPath);
...@@ -218,6 +267,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -218,6 +267,7 @@ public class FormProductActivity extends AppCompatActivity {
} }
} }
} }
}
private void openFile(){ private void openFile(){
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
......
...@@ -66,21 +66,11 @@ public class HistoryActivity extends AppCompatActivity { ...@@ -66,21 +66,11 @@ public class HistoryActivity extends AppCompatActivity {
new Observer<DataResponse<List<PaymentsModels>>>() { new Observer<DataResponse<List<PaymentsModels>>>() {
@Override @Override
public void onChanged(DataResponse<List<PaymentsModels>> listDataResponse) { public void onChanged(DataResponse<List<PaymentsModels>> listDataResponse) {
Log.i("Hasil_transaksi", "onChanged: "+utils.convertGson(listDataResponse.getData()));
ArrayList<PaymentsModels> newData = new ArrayList<>(); ArrayList<PaymentsModels> newData = new ArrayList<>();
newData.addAll(listDataResponse.getData()); newData.addAll(listDataResponse.getData());
transactionAdapter.setTransactionAdapter(HistoryActivity.this, newData); transactionAdapter.setTransactionAdapter(HistoryActivity.this, newData);
/*
* SET RECYCLE VIEW MANAGER DISINI
* GUNAKAN LINEARLAYOUT MANAGER VERTICAL UNTUK SETTING LAYOUT MANAGER
*
* SET RECYCLEVIEW ADAPTER DENGAN TRANSACTION ADAPTER
*
* UNTUK BISA CLICK CARD VIEW NYA
* PANGGIL ADAPTERNYA KEMUDIAN .setList.....
* SILAHKAN PINDAH KE ACTIVITY SELANJUTNYA PADA ON.....
* */
loading.setVisibility(View.GONE); loading.setVisibility(View.GONE);
recyclerView.setLayoutManager(new LinearLayoutManager(HistoryActivity.this,RecyclerView.VERTICAL,false)); recyclerView.setLayoutManager(new LinearLayoutManager(HistoryActivity.this,RecyclerView.VERTICAL,false));
......
...@@ -31,6 +31,7 @@ import androidx.recyclerview.widget.GridLayoutManager; ...@@ -31,6 +31,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.google.android.material.appbar.MaterialToolbar; import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.yono.messeripos.adapter.CategoryAdapter; import com.yono.messeripos.adapter.CategoryAdapter;
...@@ -72,8 +73,9 @@ public class MainActivity extends AppCompatActivity { ...@@ -72,8 +73,9 @@ public class MainActivity extends AppCompatActivity {
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";
public static final String MY_SHARED_PREFERENCES = "my_shared_preferences";
ProgressDialog progressDialog; ProgressDialog progressDialog;
public static Boolean cartOpen; MaterialButton btnAddCart;
@SuppressLint("LongLogTag") @SuppressLint("LongLogTag")
@Override @Override
...@@ -84,13 +86,12 @@ public class MainActivity extends AppCompatActivity { ...@@ -84,13 +86,12 @@ public class MainActivity extends AppCompatActivity {
ProductAdapter adapter = new ProductAdapter(); ProductAdapter adapter = new ProductAdapter();
binding.rvProduct.setAdapter(adapter); binding.rvProduct.setAdapter(adapter);
// binding.appBarUpdate.setVisibility(View.GONE);
showLoading(true); showLoading(true);
categoryAdapter = new CategoryAdapter(); categoryAdapter = new CategoryAdapter();
productAdapter = new ProductAdapter(); productAdapter = new ProductAdapter();
mainViewModelsCart = new ViewModelProvider(MainActivity.this).get(MainViewModelsCart.class); mainViewModelsCart = new ViewModelProvider(MainActivity.this).get(MainViewModelsCart.class);
sharedPreferences = getSharedPreferences(SplashScreen.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE); sharedPreferences = getSharedPreferences(MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
checkout = sharedPreferences.getBoolean(CHECKOUT,false); checkout = sharedPreferences.getBoolean(CHECKOUT,false);
orderId = sharedPreferences.getString(ORDER_ID,""); orderId = sharedPreferences.getString(ORDER_ID,"");
progressDialog = new ProgressDialog(MainActivity.this); progressDialog = new ProgressDialog(MainActivity.this);
...@@ -105,7 +106,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -105,7 +106,7 @@ public class MainActivity extends AppCompatActivity {
SharedPreferences.Editor editor = sharedPreferences.edit(); SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ORDER_ID,"MES-ORDER"+utils.timeStamp()); editor.putString(ORDER_ID,"MES-ORDER"+utils.timeStamp());
if (editor.commit()){ if (editor.commit()){
Toast.makeText(MainActivity.this, orderId, Toast.LENGTH_LONG).show(); // Toast.makeText(MainActivity.this, orderId, Toast.LENGTH_LONG).show();
} }
} }
......
...@@ -77,7 +77,7 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -77,7 +77,7 @@ public class PaymentActivity extends AppCompatActivity {
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); sharedPreferences = getSharedPreferences(MainActivity.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
paymentsModels = new PaymentsModels(); paymentsModels = new PaymentsModels();
checkoutAdapter = new CheckoutAdapter(); checkoutAdapter = new CheckoutAdapter();
...@@ -91,7 +91,7 @@ public class PaymentActivity extends AppCompatActivity { ...@@ -91,7 +91,7 @@ public class PaymentActivity extends AppCompatActivity {
setSupportActionBar(toolbars); setSupportActionBar(toolbars);
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL); DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
mainViewModels = new ViewModelProvider(PaymentActivity.this).get(MainViewModelsCart.class); mainViewModels = new ViewModelProvider(PaymentActivity.this).get(MainViewModelsCart.class);
mainViewModels.getCartProduct().observe(this, new Observer<List<ProductCartModels>>() { mainViewModels.getCartById(orderId).observe(this, new Observer<List<ProductCartModels>>() {
@Override @Override
public void onChanged(List<ProductCartModels> productCartModels) { public void onChanged(List<ProductCartModels> productCartModels) {
String js = new Gson().toJson(productCartModels); String js = new Gson().toJson(productCartModels);
......
...@@ -146,6 +146,12 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo ...@@ -146,6 +146,12 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
binding.setStatus(statusProduct); binding.setStatus(statusProduct);
} }
if (products.getStockProduct() <= 1){
binding.materialBtnAddCart.setEnabled(false);
}else{
binding.materialBtnAddCart.setEnabled(true);
}
binding.materialBtnAddCart.setOnClickListener(new View.OnClickListener() { binding.materialBtnAddCart.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
......
...@@ -16,6 +16,7 @@ import retrofit2.http.DELETE; ...@@ -16,6 +16,7 @@ import retrofit2.http.DELETE;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.Multipart; import retrofit2.http.Multipart;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part; import retrofit2.http.Part;
import retrofit2.http.Path; import retrofit2.http.Path;
...@@ -30,6 +31,9 @@ public interface ProductService { ...@@ -30,6 +31,9 @@ public interface ProductService {
@POST(ApiHelper.VERSI_API_1+"product") @POST(ApiHelper.VERSI_API_1+"product")
Call<DataResponse<ProductModels>> postProduct(@Body ProductModels productModels); Call<DataResponse<ProductModels>> postProduct(@Body ProductModels productModels);
@PUT(ApiHelper.VERSI_API_1+"product/{id}")
Call<DataResponse<ProductModels>> updateProduct(@Body ProductModels productModels, @Path("id") int id);
@Multipart @Multipart
@POST(ApiHelper.VERSI_API_1+"product") @POST(ApiHelper.VERSI_API_1+"product")
Call<DataResponse<ProductModels>> postProducts( Call<DataResponse<ProductModels>> postProducts(
......
...@@ -24,6 +24,10 @@ public class PaymentsModels { ...@@ -24,6 +24,10 @@ public class PaymentsModels {
@SerializedName("updated_at") @SerializedName("updated_at")
private String updatedAt; private String updatedAt;
@SerializedName("va_number")
private String nomorPembayaran;
public PaymentsModels() { public PaymentsModels() {
} }
...@@ -89,4 +93,12 @@ public class PaymentsModels { ...@@ -89,4 +93,12 @@ public class PaymentsModels {
public void setUpdatedAt(String updatedAt) { public void setUpdatedAt(String updatedAt) {
this.updatedAt = updatedAt; this.updatedAt = updatedAt;
} }
public String getNomorPembayaran() {
return nomorPembayaran;
}
public void setNomorPembayaran(String nomorPembayaran) {
this.nomorPembayaran = nomorPembayaran;
}
} }
...@@ -16,6 +16,16 @@ ...@@ -16,6 +16,16 @@
android:textFontWeight="600" android:textFontWeight="600"
android:layout_alignParentStart="true" /> android:layout_alignParentStart="true" />
<TextView
android:id="@+id/changeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change"
android:textSize="20sp"
android:textFontWeight="600"
android:layout_below="@id/totalText"
android:layout_alignParentStart="true" />
<TextView <TextView
android:id="@+id/totalHarga" android:id="@+id/totalHarga"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -25,13 +35,23 @@ ...@@ -25,13 +35,23 @@
android:textFontWeight="600" android:textFontWeight="600"
android:layout_alignParentEnd="true" /> android:layout_alignParentEnd="true" />
<TextView
android:id="@+id/hargaChange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rp. 600.000"
android:textSize="20sp"
android:textFontWeight="600"
android:layout_below="@id/totalHarga"
android:layout_alignParentEnd="true" />
<TextView <TextView
android:id="@+id/label" android:id="@+id/label"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Bayar" android:text="Bayar"
android:textFontWeight="600" android:textFontWeight="600"
android:layout_below="@id/totalHarga" /> android:layout_below="@id/changeText" />
<EditText <EditText
android:id="@+id/etBayar" android:id="@+id/etBayar"
...@@ -42,29 +62,13 @@ ...@@ -42,29 +62,13 @@
android:inputType="number" android:inputType="number"
android:imeOptions="actionDone"/> android:imeOptions="actionDone"/>
<TextView
android:id="@+id/textChange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Change"
android:layout_below="@id/etBayar"
android:layout_alignParentEnd="true" />
<TextView
android:id="@+id/hargaChange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rp.20.000"
android:layout_below="@id/textChange"
android:layout_alignParentEnd="true"/>
<Button <Button
android:id="@+id/btnCash" android:id="@+id/btnCash"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/hint_pay" android:text="@string/hint_pay"
android:hint="Insert Money" android:hint="Insert Money"
android:layout_below="@id/hargaChange" /> android:layout_below="@id/etBayar" />
</RelativeLayout> </RelativeLayout>
......
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