Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
meser
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Muhammad Suryono
meser
Commits
e689243a
Commit
e689243a
authored
Aug 26, 2020
by
Muhammad Suryono
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix to post order to server
parent
5110f6c3
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
145 additions
and
97 deletions
+145
-97
CartActivity.java
app/src/main/java/com/yono/messeripos/CartActivity.java
+36
-82
LoginActivity.java
app/src/main/java/com/yono/messeripos/LoginActivity.java
+0
-3
MainActivity.java
app/src/main/java/com/yono/messeripos/MainActivity.java
+3
-1
CategoryServise.java
...java/com/yono/messeripos/api/service/CategoryServise.java
+1
-1
OrdersService.java
...n/java/com/yono/messeripos/api/service/OrdersService.java
+18
-0
ProductService.java
.../java/com/yono/messeripos/api/service/ProductService.java
+2
-2
LocalDatabase.java
...main/java/com/yono/messeripos/database/LocalDatabase.java
+1
-1
MainViewModelsCart.java
...n/java/com/yono/messeripos/models/MainViewModelsCart.java
+35
-1
ProductCartModels.java
...in/java/com/yono/messeripos/models/ProductCartModels.java
+6
-6
OrdersResponse.java
...ain/java/com/yono/messeripos/response/OrdersResponse.java
+36
-0
Utils.java
app/src/main/java/com/yono/messeripos/utils/Utils.java
+7
-0
No files found.
app/src/main/java/com/yono/messeripos/CartActivity.java
View file @
e689243a
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
)
{
startActivity
(
new
Intent
(
CartActivity
.
this
,
PaymentActivity
.
class
));
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);
// }
}
}
/**
...
...
app/src/main/java/com/yono/messeripos/LoginActivity.java
View file @
e689243a
...
...
@@ -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
;
...
...
app/src/main/java/com/yono/messeripos/MainActivity.java
View file @
e689243a
...
...
@@ -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
(),
...
...
app/src/main/java/com/yono/messeripos/api/service/CategoryServise.java
View file @
e689243a
...
...
@@ -16,6 +16,6 @@ public interface CategoryServise {
@GET
(
ApiHelper
.
VERSI_API_1
+
"categories"
)
Call
<
DataResponse
<
List
<
CategoryModels
>>>
getCategory
();
@GET
(
ApiHelper
.
VERSI_API_1
+
"product
s-category
/{id}"
)
@GET
(
ApiHelper
.
VERSI_API_1
+
"product
-category-id
/{id}"
)
Call
<
DataResponse
<
List
<
ProductModels
>>>
getCategoryById
(
@Path
(
"id"
)
int
id
);
}
app/src/main/java/com/yono/messeripos/api/service/OrdersService.java
0 → 100644
View file @
e689243a
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
);
}
app/src/main/java/com/yono/messeripos/api/service/ProductService.java
View file @
e689243a
...
...
@@ -14,11 +14,11 @@ import retrofit2.http.Multipart;
import
retrofit2.http.Part
;
public
interface
ProductService
{
@GET
(
ApiHelper
.
VERSI_API_1
+
"product
s-join
"
)
@GET
(
ApiHelper
.
VERSI_API_1
+
"product
-categories
"
)
Call
<
DataResponse
<
List
<
ProductModels
<
CategoryModels
>>>>
getProducts
();
@Multipart
@GET
(
ApiHelper
.
VERSI_API_1
+
"product
s
"
)
@GET
(
ApiHelper
.
VERSI_API_1
+
"product"
)
Call
<
DataResponse
<
ProductModels
>>
postProduct
(
@Part
(
"image\"; filename=\"messer_file.jpg\""
)
RequestBody
image
,
@Part
RequestBody
name
,
...
...
app/src/main/java/com/yono/messeripos/database/LocalDatabase.java
View file @
e689243a
...
...
@@ -32,7 +32,7 @@ public abstract class LocalDatabase extends RoomDatabase {
synchronized
(
LocalDatabase
.
class
){
if
(
INSTANCE
==
null
){
INSTANCE
=
Room
.
databaseBuilder
(
context
.
getApplicationContext
(),
LocalDatabase
.
class
,
"d
atabase_me
ser"
).
build
();
LocalDatabase
.
class
,
"d
b_mes
ser"
).
build
();
}
}
}
...
...
app/src/main/java/com/yono/messeripos/models/MainViewModelsCart.java
View file @
e689243a
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
);
}
...
...
app/src/main/java/com/yono/messeripos/models/ProductCartModels.java
View file @
e689243a
...
...
@@ -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
.
read
Int
();
id_orders
=
in
.
read
String
();
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
.
write
Int
(
id_orders
);
parcel
.
write
String
(
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
;
}
...
...
app/src/main/java/com/yono/messeripos/response/OrdersResponse.java
0 → 100644
View file @
e689243a
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
;
}
}
app/src/main/java/com/yono/messeripos/utils/Utils.java
View file @
e689243a
...
...
@@ -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
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment